modern-canvas 0.9.5 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const modernIdoc = require('modern-idoc');
4
+ const modernFont = require('modern-font');
4
5
  const colord = require('colord');
5
6
  const namesPlugin = require('colord/plugins/names');
6
7
  const modernPath2d = require('modern-path2d');
@@ -871,6 +872,10 @@ class Input extends modernIdoc.Observable {
871
872
  this.setCursor(this.event.cursor);
872
873
  }
873
874
  };
875
+ destroy() {
876
+ this.removeEventListeners();
877
+ super.destroy();
878
+ }
874
879
  }
875
880
 
876
881
  let IID = 0;
@@ -2092,13 +2097,13 @@ class Vector3 extends Vector {
2092
2097
  }
2093
2098
  }
2094
2099
 
2095
- var __defProp$Q = Object.defineProperty;
2096
- var __decorateClass$Z = (decorators, target, key, kind) => {
2100
+ var __defProp$T = Object.defineProperty;
2101
+ var __decorateClass$$ = (decorators, target, key, kind) => {
2097
2102
  var result = void 0 ;
2098
2103
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
2099
2104
  if (decorator = decorators[i])
2100
2105
  result = (decorator(target, key, result) ) || result;
2101
- if (result) __defProp$Q(target, key, result);
2106
+ if (result) __defProp$T(target, key, result);
2102
2107
  return result;
2103
2108
  };
2104
2109
  class MainLoop extends CoreObject {
@@ -2111,9 +2116,10 @@ class MainLoop extends CoreObject {
2111
2116
  get spf() {
2112
2117
  return this.fps ? Math.floor(1e3 / this.fps) : 0;
2113
2118
  }
2114
- constructor() {
2119
+ constructor(properties) {
2115
2120
  super();
2116
- this._onNextTick = this._onNextTick.bind(this);
2121
+ this._onTicker = this._onTicker.bind(this);
2122
+ this.setProperties(properties);
2117
2123
  }
2118
2124
  start(process) {
2119
2125
  if (!this._starting) {
@@ -2123,16 +2129,16 @@ class MainLoop extends CoreObject {
2123
2129
  }
2124
2130
  this._startedProcess = process;
2125
2131
  this.on("process", process);
2126
- Ticker.on(this._onNextTick, { sort: 0 });
2132
+ Ticker.on(this._onTicker, { sort: 0 });
2127
2133
  }
2128
2134
  }
2129
2135
  stop() {
2130
2136
  if (this._starting) {
2131
2137
  this._starting = false;
2132
- Ticker.off(this._onNextTick, { sort: 0 });
2138
+ Ticker.off(this._onTicker, { sort: 0 });
2133
2139
  }
2134
2140
  }
2135
- _onNextTick() {
2141
+ _onTicker() {
2136
2142
  const elapsed = Ticker.elapsed * this.speed;
2137
2143
  const time = this._nextDeltaTime -= elapsed;
2138
2144
  if (time <= 0) {
@@ -2141,22 +2147,40 @@ class MainLoop extends CoreObject {
2141
2147
  }
2142
2148
  }
2143
2149
  destroy() {
2144
- super.destroy();
2145
2150
  this.stop();
2151
+ super.destroy();
2146
2152
  }
2147
2153
  }
2148
- __decorateClass$Z([
2154
+ __decorateClass$$([
2149
2155
  modernIdoc.property({ fallback: 60 })
2150
2156
  ], MainLoop.prototype, "fps");
2151
- __decorateClass$Z([
2157
+ __decorateClass$$([
2152
2158
  modernIdoc.property({ fallback: 1 })
2153
2159
  ], MainLoop.prototype, "speed");
2154
2160
 
2155
- class Renderer {
2156
- view;
2157
- pixelRatio = DEVICE_PIXEL_RATIO;
2161
+ var __defProp$S = Object.defineProperty;
2162
+ var __decorateClass$_ = (decorators, target, key, kind) => {
2163
+ var result = void 0 ;
2164
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2165
+ if (decorator = decorators[i])
2166
+ result = (decorator(target, key, result) ) || result;
2167
+ if (result) __defProp$S(target, key, result);
2168
+ return result;
2169
+ };
2170
+ class Renderer extends modernIdoc.Reactivable {
2158
2171
  screen = { x: 0, y: 0, width: 0, height: 0 };
2159
2172
  related = new RawWeakMap();
2173
+ _updateProperty(key, newValue, oldValue) {
2174
+ super._updateProperty(key, newValue, oldValue);
2175
+ switch (key) {
2176
+ case "view":
2177
+ case "pixelRatio":
2178
+ if (this.view) {
2179
+ this.view.dataset.pixelRatio = String(this.pixelRatio);
2180
+ }
2181
+ break;
2182
+ }
2183
+ }
2160
2184
  getRelated(source, createFn) {
2161
2185
  let related = this.related.get(source);
2162
2186
  if (related)
@@ -2180,7 +2204,16 @@ class Renderer {
2180
2204
  this.view.style.height = `${height}px`;
2181
2205
  }
2182
2206
  }
2207
+ destroy() {
2208
+ super.destroy();
2209
+ }
2183
2210
  }
2211
+ __decorateClass$_([
2212
+ modernIdoc.property({ fallback: DEVICE_PIXEL_RATIO })
2213
+ ], Renderer.prototype, "pixelRatio");
2214
+ __decorateClass$_([
2215
+ modernIdoc.property({ internal: true })
2216
+ ], Renderer.prototype, "view");
2184
2217
 
2185
2218
  var WebGLBlendMode = /* @__PURE__ */ ((WebGLBlendMode2) => {
2186
2219
  WebGLBlendMode2["NORMAL"] = "normal";
@@ -2887,8 +2920,7 @@ class WebGLFramebufferModule extends WebGLModule {
2887
2920
  throw new Error("Unable to create framebuffer");
2888
2921
  }
2889
2922
  if (options) {
2890
- this.bind(framebuffer);
2891
- this.update(options);
2923
+ this.update(framebuffer, options);
2892
2924
  }
2893
2925
  return framebuffer;
2894
2926
  }
@@ -2898,11 +2930,15 @@ class WebGLFramebufferModule extends WebGLModule {
2898
2930
  width: 0,
2899
2931
  height: 0,
2900
2932
  mipLevel: 0,
2933
+ msaa: false,
2901
2934
  stencil: false,
2902
2935
  depth: false,
2903
2936
  depthTexture: null,
2904
2937
  colorTextures: [],
2905
- multisample: 0
2938
+ multisample: 4,
2939
+ stencilBuffer: null,
2940
+ msaaRenderBuffers: [],
2941
+ framebuffer: null
2906
2942
  };
2907
2943
  });
2908
2944
  }
@@ -2922,6 +2958,7 @@ class WebGLFramebufferModule extends WebGLModule {
2922
2958
  if (!("drawBuffers" in gl)) {
2923
2959
  count = Math.min(count, 1);
2924
2960
  }
2961
+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
2925
2962
  for (let i = 0; i < count; i++) {
2926
2963
  const texture = meta.colorTextures[i];
2927
2964
  this._renderer.texture.bind({
@@ -2944,6 +2981,36 @@ class WebGLFramebufferModule extends WebGLModule {
2944
2981
  meta.colorTextures.map((_, i) => gl.COLOR_ATTACHMENT0 + i)
2945
2982
  );
2946
2983
  }
2984
+ if (meta.msaa) {
2985
+ if (!meta.framebuffer) {
2986
+ const gl2 = this._renderer.gl;
2987
+ meta.framebuffer = gl2.createFramebuffer();
2988
+ gl2.bindFramebuffer(gl2.FRAMEBUFFER, meta.framebuffer);
2989
+ meta.colorTextures.forEach((_, i) => {
2990
+ meta.msaaRenderBuffers[i] = gl2.createRenderbuffer();
2991
+ });
2992
+ }
2993
+ gl.bindFramebuffer(gl.FRAMEBUFFER, meta.framebuffer);
2994
+ meta.colorTextures.forEach((texture, i) => {
2995
+ this._renderer.texture.bind({ value: texture, location: 0 });
2996
+ const msaaRenderBuffer = meta.msaaRenderBuffers[i];
2997
+ gl.bindRenderbuffer(gl.RENDERBUFFER, msaaRenderBuffer);
2998
+ gl.renderbufferStorageMultisample(
2999
+ gl.RENDERBUFFER,
3000
+ 4,
3001
+ gl.RGBA8,
3002
+ // TODO
3003
+ meta.width * this._renderer.pixelRatio,
3004
+ meta.height * this._renderer.pixelRatio
3005
+ );
3006
+ gl.framebufferRenderbuffer(
3007
+ gl.FRAMEBUFFER,
3008
+ gl.COLOR_ATTACHMENT0 + i,
3009
+ gl.RENDERBUFFER,
3010
+ msaaRenderBuffer
3011
+ );
3012
+ });
3013
+ }
2947
3014
  if (meta.depthTexture && (this._renderer.version > 1 || this._renderer.extensions.depthTexture)) {
2948
3015
  this._renderer.texture.bind({
2949
3016
  location: 0,
@@ -2964,7 +3031,7 @@ class WebGLFramebufferModule extends WebGLModule {
2964
3031
  meta.stencilBuffer ??= gl.createRenderbuffer();
2965
3032
  gl.bindRenderbuffer(gl.RENDERBUFFER, meta.stencilBuffer);
2966
3033
  const { attachment, format } = this._getAttachmentAndFormat(meta);
2967
- if (meta.msaaBuffer) {
3034
+ if (meta.msaa) {
2968
3035
  gl.renderbufferStorageMultisample(
2969
3036
  gl.RENDERBUFFER,
2970
3037
  meta.multisample,
@@ -3012,7 +3079,7 @@ class WebGLFramebufferModule extends WebGLModule {
3012
3079
  if (meta.stencil) {
3013
3080
  const { format } = this._getAttachmentAndFormat(meta);
3014
3081
  gl.bindRenderbuffer(gl.RENDERBUFFER, meta.stencil);
3015
- if (meta.msaaBuffer) {
3082
+ if (meta.msaa) {
3016
3083
  gl.renderbufferStorageMultisample(
3017
3084
  gl.RENDERBUFFER,
3018
3085
  meta.multisample,
@@ -3024,30 +3091,6 @@ class WebGLFramebufferModule extends WebGLModule {
3024
3091
  gl.renderbufferStorage(gl.RENDERBUFFER, format, meta.width, meta.height);
3025
3092
  }
3026
3093
  }
3027
- let count = meta.colorTextures.length;
3028
- if (!gl.drawBuffers) {
3029
- count = Math.min(count, 1);
3030
- }
3031
- for (let i = 0; i < count; i++) {
3032
- const texture = meta.colorTextures[i];
3033
- this._renderer.texture.update(texture, {
3034
- value: {
3035
- pixels: null,
3036
- width: meta.width,
3037
- height: meta.height
3038
- }
3039
- });
3040
- if (i === 0 && meta.msaaBuffer) {
3041
- gl.bindRenderbuffer(gl.RENDERBUFFER, meta.msaaBuffer);
3042
- gl.renderbufferStorageMultisample(
3043
- gl.RENDERBUFFER,
3044
- meta.multisample,
3045
- gl.RGBA,
3046
- meta.width,
3047
- meta.height
3048
- );
3049
- }
3050
- }
3051
3094
  if (meta.depthTexture) {
3052
3095
  this._renderer.texture.update(meta.depthTexture, {
3053
3096
  value: {
@@ -3058,19 +3101,65 @@ class WebGLFramebufferModule extends WebGLModule {
3058
3101
  });
3059
3102
  }
3060
3103
  }
3104
+ finishRenderPass(framebuffer) {
3105
+ const meta = this.getMeta(framebuffer);
3106
+ if (!meta.msaa || !meta.framebuffer)
3107
+ return;
3108
+ const gl = this._renderer.gl;
3109
+ gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, framebuffer);
3110
+ gl.bindFramebuffer(gl.READ_FRAMEBUFFER, meta.framebuffer);
3111
+ const width = meta.width * this._renderer.pixelRatio;
3112
+ const height = meta.height * this._renderer.pixelRatio;
3113
+ gl.blitFramebuffer(
3114
+ 0,
3115
+ 0,
3116
+ width,
3117
+ height,
3118
+ 0,
3119
+ 0,
3120
+ width,
3121
+ height,
3122
+ gl.COLOR_BUFFER_BIT,
3123
+ gl.NEAREST
3124
+ );
3125
+ gl.bindFramebuffer(gl.FRAMEBUFFER, meta.framebuffer);
3126
+ }
3127
+ copyToTexture(framebuffer, texture) {
3128
+ const gl = this._renderer.gl;
3129
+ const meta = this.getMeta(framebuffer);
3130
+ this.finishRenderPass(framebuffer);
3131
+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
3132
+ this._renderer.texture.bind({
3133
+ value: texture,
3134
+ location: 0
3135
+ });
3136
+ gl.copyTexSubImage2D(
3137
+ gl.TEXTURE_2D,
3138
+ 0,
3139
+ 0,
3140
+ 0,
3141
+ 0,
3142
+ 0,
3143
+ meta.width,
3144
+ meta.height
3145
+ );
3146
+ }
3061
3147
  bind(framebuffer) {
3062
3148
  const gl = this._renderer.gl;
3149
+ const meta = framebuffer ? this.getMeta(framebuffer) : void 0;
3063
3150
  const value = framebuffer;
3064
3151
  const oldValue = this.boundFramebuffer;
3065
3152
  const changed = {
3066
3153
  value: oldValue !== value
3067
3154
  };
3068
3155
  if (changed.value) {
3069
- gl.bindFramebuffer(gl.FRAMEBUFFER, value);
3156
+ gl.bindFramebuffer(
3157
+ gl.FRAMEBUFFER,
3158
+ meta?.msaa && meta.framebuffer ? meta.framebuffer : value
3159
+ );
3070
3160
  this.boundFramebuffer = value;
3071
3161
  }
3072
- if (value) {
3073
- const meta = this.getMeta(value);
3162
+ if (meta) {
3074
3163
  for (let i = 0; i < meta.colorTextures.length; i++) {
3075
3164
  this._renderer.texture.unbind(meta.colorTextures[i]);
3076
3165
  }
@@ -3118,7 +3207,7 @@ class WebGLFramebufferModule extends WebGLModule {
3118
3207
  attachment = gl.STENCIL_ATTACHMENT;
3119
3208
  format = gl.STENCIL_INDEX8;
3120
3209
  }
3121
- if (meta.msaaBuffer) {
3210
+ if (meta.msaa) {
3122
3211
  gl.renderbufferStorageMultisample(
3123
3212
  gl.RENDERBUFFER,
3124
3213
  meta.multisample,
@@ -4197,6 +4286,7 @@ class WebGLRenderer extends Renderer {
4197
4286
  this.view?.removeEventListener("webglcontextlost", this._onContextLost, false);
4198
4287
  this.view?.removeEventListener("webglcontextrestored", this._onContextRestored, false);
4199
4288
  this.extensions.loseContext?.loseContext();
4289
+ super.destroy();
4200
4290
  }
4201
4291
  toPixels(x = 0, y = 0, width = this.gl.drawingBufferWidth, height = this.gl.drawingBufferHeight) {
4202
4292
  const length = width * height * 4;
@@ -4321,13 +4411,13 @@ class Geometry extends Resource {
4321
4411
  }
4322
4412
  }
4323
4413
 
4324
- var __defProp$P = Object.defineProperty;
4325
- var __decorateClass$Y = (decorators, target, key, kind) => {
4414
+ var __defProp$R = Object.defineProperty;
4415
+ var __decorateClass$Z = (decorators, target, key, kind) => {
4326
4416
  var result = void 0 ;
4327
4417
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4328
4418
  if (decorator = decorators[i])
4329
4419
  result = (decorator(target, key, result) ) || result;
4330
- if (result) __defProp$P(target, key, result);
4420
+ if (result) __defProp$R(target, key, result);
4331
4421
  return result;
4332
4422
  };
4333
4423
  class IndexBuffer extends Resource {
@@ -4371,20 +4461,20 @@ class IndexBuffer extends Resource {
4371
4461
  return result;
4372
4462
  }
4373
4463
  }
4374
- __decorateClass$Y([
4464
+ __decorateClass$Z([
4375
4465
  modernIdoc.property({ internal: true, fallback: null })
4376
4466
  ], IndexBuffer.prototype, "data");
4377
- __decorateClass$Y([
4467
+ __decorateClass$Z([
4378
4468
  modernIdoc.property({ internal: true, fallback: false })
4379
4469
  ], IndexBuffer.prototype, "dynamic");
4380
4470
 
4381
- var __defProp$O = Object.defineProperty;
4382
- var __decorateClass$X = (decorators, target, key, kind) => {
4471
+ var __defProp$Q = Object.defineProperty;
4472
+ var __decorateClass$Y = (decorators, target, key, kind) => {
4383
4473
  var result = void 0 ;
4384
4474
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4385
4475
  if (decorator = decorators[i])
4386
4476
  result = (decorator(target, key, result) ) || result;
4387
- if (result) __defProp$O(target, key, result);
4477
+ if (result) __defProp$Q(target, key, result);
4388
4478
  return result;
4389
4479
  };
4390
4480
  class VertexBuffer extends Resource {
@@ -4428,20 +4518,20 @@ class VertexBuffer extends Resource {
4428
4518
  return result;
4429
4519
  }
4430
4520
  }
4431
- __decorateClass$X([
4521
+ __decorateClass$Y([
4432
4522
  modernIdoc.property({ internal: true, default: null })
4433
4523
  ], VertexBuffer.prototype, "data");
4434
- __decorateClass$X([
4524
+ __decorateClass$Y([
4435
4525
  modernIdoc.property({ internal: true, fallback: false })
4436
4526
  ], VertexBuffer.prototype, "dynamic");
4437
4527
 
4438
- var __defProp$N = Object.defineProperty;
4439
- var __decorateClass$W = (decorators, target, key, kind) => {
4528
+ var __defProp$P = Object.defineProperty;
4529
+ var __decorateClass$X = (decorators, target, key, kind) => {
4440
4530
  var result = void 0 ;
4441
4531
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4442
4532
  if (decorator = decorators[i])
4443
4533
  result = (decorator(target, key, result) ) || result;
4444
- if (result) __defProp$N(target, key, result);
4534
+ if (result) __defProp$P(target, key, result);
4445
4535
  return result;
4446
4536
  };
4447
4537
  class VertexAttribute extends Resource {
@@ -4475,25 +4565,25 @@ class VertexAttribute extends Resource {
4475
4565
  return result;
4476
4566
  }
4477
4567
  }
4478
- __decorateClass$W([
4568
+ __decorateClass$X([
4479
4569
  modernIdoc.property({ internal: true })
4480
4570
  ], VertexAttribute.prototype, "buffer");
4481
- __decorateClass$W([
4571
+ __decorateClass$X([
4482
4572
  modernIdoc.property({ fallback: 0 })
4483
4573
  ], VertexAttribute.prototype, "size");
4484
- __decorateClass$W([
4574
+ __decorateClass$X([
4485
4575
  modernIdoc.property({ fallback: false })
4486
4576
  ], VertexAttribute.prototype, "normalized");
4487
- __decorateClass$W([
4577
+ __decorateClass$X([
4488
4578
  modernIdoc.property({ fallback: "float" })
4489
4579
  ], VertexAttribute.prototype, "type");
4490
- __decorateClass$W([
4580
+ __decorateClass$X([
4491
4581
  modernIdoc.property()
4492
4582
  ], VertexAttribute.prototype, "stride");
4493
- __decorateClass$W([
4583
+ __decorateClass$X([
4494
4584
  modernIdoc.property()
4495
4585
  ], VertexAttribute.prototype, "offset");
4496
- __decorateClass$W([
4586
+ __decorateClass$X([
4497
4587
  modernIdoc.property()
4498
4588
  ], VertexAttribute.prototype, "divisor");
4499
4589
 
@@ -4737,13 +4827,13 @@ class UvGeometry extends Geometry {
4737
4827
  }
4738
4828
  }
4739
4829
 
4740
- var __defProp$M = Object.defineProperty;
4741
- var __decorateClass$V = (decorators, target, key, kind) => {
4830
+ var __defProp$O = Object.defineProperty;
4831
+ var __decorateClass$W = (decorators, target, key, kind) => {
4742
4832
  var result = void 0 ;
4743
4833
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4744
4834
  if (decorator = decorators[i])
4745
4835
  result = (decorator(target, key, result) ) || result;
4746
- if (result) __defProp$M(target, key, result);
4836
+ if (result) __defProp$O(target, key, result);
4747
4837
  return result;
4748
4838
  };
4749
4839
  class Texture2D extends Resource {
@@ -4799,7 +4889,9 @@ class Texture2D extends Resource {
4799
4889
  /** @internal */
4800
4890
  _glTexture(renderer, options) {
4801
4891
  return renderer.getRelated(this, () => {
4802
- return renderer.texture.create(this._glTextureOptions(renderer, options));
4892
+ return renderer.texture.create(
4893
+ this._glTextureOptions(renderer, options)
4894
+ );
4803
4895
  });
4804
4896
  }
4805
4897
  _updateProperty(key, value, oldValue) {
@@ -4869,27 +4961,31 @@ class Texture2D extends Resource {
4869
4961
  }
4870
4962
  }
4871
4963
  }
4872
- __decorateClass$V([
4964
+ __decorateClass$W([
4873
4965
  modernIdoc.property({ internal: true })
4874
4966
  ], Texture2D.prototype, "source");
4875
- __decorateClass$V([
4967
+ __decorateClass$W([
4876
4968
  modernIdoc.property({ fallback: 0 })
4877
4969
  ], Texture2D.prototype, "width");
4878
- __decorateClass$V([
4970
+ __decorateClass$W([
4879
4971
  modernIdoc.property({ fallback: 0 })
4880
4972
  ], Texture2D.prototype, "height");
4881
- __decorateClass$V([
4973
+ __decorateClass$W([
4882
4974
  modernIdoc.property({ fallback: "linear" })
4883
4975
  ], Texture2D.prototype, "filterMode");
4884
- __decorateClass$V([
4976
+ __decorateClass$W([
4885
4977
  modernIdoc.property({ fallback: "clamp_to_edge" })
4886
4978
  ], Texture2D.prototype, "wrapMode");
4887
- __decorateClass$V([
4979
+ __decorateClass$W([
4888
4980
  modernIdoc.property({ fallback: 1 })
4889
4981
  ], Texture2D.prototype, "pixelRatio");
4890
4982
 
4891
4983
  class AnimatedTexture extends Resource {
4892
4984
  frames;
4985
+ frameIndex = 0;
4986
+ get currentFrame() {
4987
+ return this.frames[this.frameIndex];
4988
+ }
4893
4989
  constructor(source) {
4894
4990
  super();
4895
4991
  let frames;
@@ -4914,13 +5010,13 @@ class AnimatedTexture extends Resource {
4914
5010
  }
4915
5011
  }
4916
5012
 
4917
- var __defProp$L = Object.defineProperty;
4918
- var __decorateClass$U = (decorators, target, key, kind) => {
5013
+ var __defProp$N = Object.defineProperty;
5014
+ var __decorateClass$V = (decorators, target, key, kind) => {
4919
5015
  var result = void 0 ;
4920
5016
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4921
5017
  if (decorator = decorators[i])
4922
5018
  result = (decorator(target, key, result) ) || result;
4923
- if (result) __defProp$L(target, key, result);
5019
+ if (result) __defProp$N(target, key, result);
4924
5020
  return result;
4925
5021
  };
4926
5022
  class CanvasTexture extends Texture2D {
@@ -4939,7 +5035,7 @@ class CanvasTexture extends Texture2D {
4939
5035
  super._updateProperty(key, value, oldValue);
4940
5036
  }
4941
5037
  }
4942
- __decorateClass$U([
5038
+ __decorateClass$V([
4943
5039
  modernIdoc.property({ fallback: 2 })
4944
5040
  ], CanvasTexture.prototype, "pixelRatio");
4945
5041
 
@@ -5161,13 +5257,13 @@ class PixelsTexture extends Texture2D {
5161
5257
  }
5162
5258
  }
5163
5259
 
5164
- var __defProp$K = Object.defineProperty;
5165
- var __decorateClass$T = (decorators, target, key, kind) => {
5260
+ var __defProp$M = Object.defineProperty;
5261
+ var __decorateClass$U = (decorators, target, key, kind) => {
5166
5262
  var result = void 0 ;
5167
5263
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
5168
5264
  if (decorator = decorators[i])
5169
5265
  result = (decorator(target, key, result) ) || result;
5170
- if (result) __defProp$K(target, key, result);
5266
+ if (result) __defProp$M(target, key, result);
5171
5267
  return result;
5172
5268
  };
5173
5269
  function resolveOptions(options) {
@@ -5411,10 +5507,10 @@ const _VideoTexture = class _VideoTexture extends Texture2D {
5411
5507
  }
5412
5508
  }
5413
5509
  };
5414
- __decorateClass$T([
5510
+ __decorateClass$U([
5415
5511
  modernIdoc.property({ internal: true, fallback: true })
5416
5512
  ], _VideoTexture.prototype, "autoUpdate");
5417
- __decorateClass$T([
5513
+ __decorateClass$U([
5418
5514
  modernIdoc.property({ internal: true, fallback: 0 })
5419
5515
  ], _VideoTexture.prototype, "fps");
5420
5516
  let VideoTexture = _VideoTexture;
@@ -5663,14 +5759,14 @@ class Children {
5663
5759
  }
5664
5760
  }
5665
5761
 
5666
- var __defProp$J = Object.defineProperty;
5762
+ var __defProp$L = Object.defineProperty;
5667
5763
  var __getOwnPropDesc$J = Object.getOwnPropertyDescriptor;
5668
- var __decorateClass$S = (decorators, target, key, kind) => {
5764
+ var __decorateClass$T = (decorators, target, key, kind) => {
5669
5765
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$J(target, key) : target;
5670
5766
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
5671
5767
  if (decorator = decorators[i])
5672
5768
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5673
- if (kind && result) __defProp$J(target, key, result);
5769
+ if (kind && result) __defProp$L(target, key, result);
5674
5770
  return result;
5675
5771
  };
5676
5772
  const iidMap = {};
@@ -6179,45 +6275,45 @@ exports.Node = class Node extends CoreObject {
6179
6275
  return node;
6180
6276
  }
6181
6277
  };
6182
- __decorateClass$S([
6278
+ __decorateClass$T([
6183
6279
  modernIdoc.property({ fallback: modernIdoc.idGenerator() })
6184
6280
  ], exports.Node.prototype, "id", 2);
6185
- __decorateClass$S([
6281
+ __decorateClass$T([
6186
6282
  modernIdoc.property({ fallback: modernIdoc.idGenerator() })
6187
6283
  ], exports.Node.prototype, "name", 2);
6188
- __decorateClass$S([
6284
+ __decorateClass$T([
6189
6285
  modernIdoc.property({ default: () => ({}) })
6190
6286
  ], exports.Node.prototype, "meta", 2);
6191
- __decorateClass$S([
6287
+ __decorateClass$T([
6192
6288
  modernIdoc.property({ internal: true, fallback: "inherit" })
6193
6289
  ], exports.Node.prototype, "processMode", 2);
6194
- __decorateClass$S([
6290
+ __decorateClass$T([
6195
6291
  modernIdoc.property({ internal: true, fallback: "default" })
6196
6292
  ], exports.Node.prototype, "processSortMode", 2);
6197
- __decorateClass$S([
6293
+ __decorateClass$T([
6198
6294
  modernIdoc.property({ internal: true, fallback: "inherit" })
6199
6295
  ], exports.Node.prototype, "renderMode", 2);
6200
- __decorateClass$S([
6296
+ __decorateClass$T([
6201
6297
  modernIdoc.property({ internal: true, fallback: "inherit" })
6202
6298
  ], exports.Node.prototype, "inputMode", 2);
6203
- __decorateClass$S([
6299
+ __decorateClass$T([
6204
6300
  modernIdoc.property({ internal: true, fallback: "default" })
6205
6301
  ], exports.Node.prototype, "internalMode", 2);
6206
- __decorateClass$S([
6302
+ __decorateClass$T([
6207
6303
  modernIdoc.property({ internal: true })
6208
6304
  ], exports.Node.prototype, "mask", 2);
6209
- exports.Node = __decorateClass$S([
6305
+ exports.Node = __decorateClass$T([
6210
6306
  customNode("Node")
6211
6307
  ], exports.Node);
6212
6308
 
6213
- var __defProp$I = Object.defineProperty;
6309
+ var __defProp$K = Object.defineProperty;
6214
6310
  var __getOwnPropDesc$I = Object.getOwnPropertyDescriptor;
6215
- var __decorateClass$R = (decorators, target, key, kind) => {
6311
+ var __decorateClass$S = (decorators, target, key, kind) => {
6216
6312
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$I(target, key) : target;
6217
6313
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6218
6314
  if (decorator = decorators[i])
6219
6315
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6220
- if (kind && result) __defProp$I(target, key, result);
6316
+ if (kind && result) __defProp$K(target, key, result);
6221
6317
  return result;
6222
6318
  };
6223
6319
  exports.TimelineNode = class TimelineNode extends exports.Node {
@@ -6277,30 +6373,30 @@ exports.TimelineNode = class TimelineNode extends exports.Node {
6277
6373
  this._updateCurrentTime();
6278
6374
  }
6279
6375
  };
6280
- __decorateClass$R([
6376
+ __decorateClass$S([
6281
6377
  modernIdoc.property({ fallback: 0 })
6282
6378
  ], exports.TimelineNode.prototype, "delay", 2);
6283
- __decorateClass$R([
6379
+ __decorateClass$S([
6284
6380
  modernIdoc.property({ fallback: 0 })
6285
6381
  ], exports.TimelineNode.prototype, "duration", 2);
6286
- __decorateClass$R([
6382
+ __decorateClass$S([
6287
6383
  modernIdoc.property({ fallback: false })
6288
6384
  ], exports.TimelineNode.prototype, "paused", 2);
6289
- __decorateClass$R([
6385
+ __decorateClass$S([
6290
6386
  modernIdoc.property({ internal: true, fallback: false })
6291
6387
  ], exports.TimelineNode.prototype, "insideTimeRange", 2);
6292
- exports.TimelineNode = __decorateClass$R([
6388
+ exports.TimelineNode = __decorateClass$S([
6293
6389
  customNode("TimelineNode")
6294
6390
  ], exports.TimelineNode);
6295
6391
 
6296
- var __defProp$H = Object.defineProperty;
6392
+ var __defProp$J = Object.defineProperty;
6297
6393
  var __getOwnPropDesc$H = Object.getOwnPropertyDescriptor;
6298
- var __decorateClass$Q = (decorators, target, key, kind) => {
6394
+ var __decorateClass$R = (decorators, target, key, kind) => {
6299
6395
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$H(target, key) : target;
6300
6396
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6301
6397
  if (decorator = decorators[i])
6302
6398
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6303
- if (kind && result) __defProp$H(target, key, result);
6399
+ if (kind && result) __defProp$J(target, key, result);
6304
6400
  return result;
6305
6401
  };
6306
6402
  exports.CanvasItem = class CanvasItem extends exports.TimelineNode {
@@ -6394,10 +6490,11 @@ exports.CanvasItem = class CanvasItem extends exports.TimelineNode {
6394
6490
  }
6395
6491
  _repaint(batchables) {
6396
6492
  this.log(this.name, "painting");
6493
+ const globalOpacity = this.globalOpacity;
6397
6494
  return batchables.map((batchable) => {
6398
6495
  return {
6399
6496
  ...batchable,
6400
- modulate: this._modulate.toInt8Array(),
6497
+ modulate: this._modulate.toInt8Array().map((v) => v * globalOpacity),
6401
6498
  blendMode: this.blendMode
6402
6499
  };
6403
6500
  });
@@ -6452,30 +6549,30 @@ exports.CanvasItem = class CanvasItem extends exports.TimelineNode {
6452
6549
  super._render(renderer);
6453
6550
  }
6454
6551
  };
6455
- __decorateClass$Q([
6552
+ __decorateClass$R([
6456
6553
  modernIdoc.property()
6457
6554
  ], exports.CanvasItem.prototype, "modulate", 2);
6458
- __decorateClass$Q([
6555
+ __decorateClass$R([
6459
6556
  modernIdoc.property()
6460
6557
  ], exports.CanvasItem.prototype, "blendMode", 2);
6461
- __decorateClass$Q([
6558
+ __decorateClass$R([
6462
6559
  modernIdoc.property({ internal: true, fallback: true })
6463
6560
  ], exports.CanvasItem.prototype, "visible", 2);
6464
- __decorateClass$Q([
6561
+ __decorateClass$R([
6465
6562
  modernIdoc.property({ internal: true, fallback: 1 })
6466
6563
  ], exports.CanvasItem.prototype, "opacity", 2);
6467
- exports.CanvasItem = __decorateClass$Q([
6564
+ exports.CanvasItem = __decorateClass$R([
6468
6565
  customNode("CanvasItem")
6469
6566
  ], exports.CanvasItem);
6470
6567
 
6471
- var __defProp$G = Object.defineProperty;
6568
+ var __defProp$I = Object.defineProperty;
6472
6569
  var __getOwnPropDesc$G = Object.getOwnPropertyDescriptor;
6473
- var __decorateClass$P = (decorators, target, key, kind) => {
6570
+ var __decorateClass$Q = (decorators, target, key, kind) => {
6474
6571
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$G(target, key) : target;
6475
6572
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6476
6573
  if (decorator = decorators[i])
6477
6574
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6478
- if (kind && result) __defProp$G(target, key, result);
6575
+ if (kind && result) __defProp$I(target, key, result);
6479
6576
  return result;
6480
6577
  };
6481
6578
  exports.Viewport = class Viewport extends exports.Node {
@@ -6517,6 +6614,7 @@ exports.Viewport = class Viewport extends exports.Node {
6517
6614
  return {
6518
6615
  width,
6519
6616
  height,
6617
+ msaa: this.msaa,
6520
6618
  colorTextures: [this.texture._glTexture(renderer)]
6521
6619
  };
6522
6620
  }
@@ -6543,6 +6641,9 @@ exports.Viewport = class Viewport extends exports.Node {
6543
6641
  this.projection.resize(this.width, this.height);
6544
6642
  this.emit("updateRect");
6545
6643
  break;
6644
+ case "msaa":
6645
+ this.requestUpload();
6646
+ break;
6546
6647
  }
6547
6648
  }
6548
6649
  requestUpload() {
@@ -6622,30 +6723,33 @@ exports.Viewport = class Viewport extends exports.Node {
6622
6723
  return this.canvasTransform.apply(globalPos, newPos);
6623
6724
  }
6624
6725
  };
6625
- __decorateClass$P([
6726
+ __decorateClass$Q([
6626
6727
  modernIdoc.property({ fallback: 0 })
6627
6728
  ], exports.Viewport.prototype, "x", 2);
6628
- __decorateClass$P([
6729
+ __decorateClass$Q([
6629
6730
  modernIdoc.property({ fallback: 0 })
6630
6731
  ], exports.Viewport.prototype, "y", 2);
6631
- __decorateClass$P([
6732
+ __decorateClass$Q([
6632
6733
  modernIdoc.property({ fallback: 0 })
6633
6734
  ], exports.Viewport.prototype, "width", 2);
6634
- __decorateClass$P([
6735
+ __decorateClass$Q([
6635
6736
  modernIdoc.property({ fallback: 0 })
6636
6737
  ], exports.Viewport.prototype, "height", 2);
6637
- exports.Viewport = __decorateClass$P([
6738
+ __decorateClass$Q([
6739
+ modernIdoc.property({ internal: true, fallback: false })
6740
+ ], exports.Viewport.prototype, "msaa", 2);
6741
+ exports.Viewport = __decorateClass$Q([
6638
6742
  customNode("Viewport")
6639
6743
  ], exports.Viewport);
6640
6744
 
6641
- var __defProp$F = Object.defineProperty;
6745
+ var __defProp$H = Object.defineProperty;
6642
6746
  var __getOwnPropDesc$F = Object.getOwnPropertyDescriptor;
6643
- var __decorateClass$O = (decorators, target, key, kind) => {
6747
+ var __decorateClass$P = (decorators, target, key, kind) => {
6644
6748
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$F(target, key) : target;
6645
6749
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6646
6750
  if (decorator = decorators[i])
6647
6751
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6648
- if (kind && result) __defProp$F(target, key, result);
6752
+ if (kind && result) __defProp$H(target, key, result);
6649
6753
  return result;
6650
6754
  };
6651
6755
  exports.Effect = class Effect extends exports.TimelineNode {
@@ -6887,19 +6991,19 @@ exports.Effect = class Effect extends exports.TimelineNode {
6887
6991
  }
6888
6992
  }
6889
6993
  };
6890
- __decorateClass$O([
6994
+ __decorateClass$P([
6891
6995
  modernIdoc.property({ internal: true })
6892
6996
  ], exports.Effect.prototype, "material", 2);
6893
- __decorateClass$O([
6997
+ __decorateClass$P([
6894
6998
  modernIdoc.property()
6895
6999
  ], exports.Effect.prototype, "effectMode", 2);
6896
- __decorateClass$O([
7000
+ __decorateClass$P([
6897
7001
  modernIdoc.property({ fallback: "" })
6898
7002
  ], exports.Effect.prototype, "glsl", 2);
6899
- __decorateClass$O([
7003
+ __decorateClass$P([
6900
7004
  modernIdoc.property({ fallback: "" })
6901
7005
  ], exports.Effect.prototype, "glslSrc", 2);
6902
- exports.Effect = __decorateClass$O([
7006
+ exports.Effect = __decorateClass$P([
6903
7007
  customNode("Effect")
6904
7008
  ], exports.Effect);
6905
7009
 
@@ -6929,14 +7033,14 @@ class RenderStack {
6929
7033
  }
6930
7034
  }
6931
7035
 
6932
- var __defProp$E = Object.defineProperty;
7036
+ var __defProp$G = Object.defineProperty;
6933
7037
  var __getOwnPropDesc$E = Object.getOwnPropertyDescriptor;
6934
- var __decorateClass$N = (decorators, target, key, kind) => {
7038
+ var __decorateClass$O = (decorators, target, key, kind) => {
6935
7039
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$E(target, key) : target;
6936
7040
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6937
7041
  if (decorator = decorators[i])
6938
7042
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6939
- if (kind && result) __defProp$E(target, key, result);
7043
+ if (kind && result) __defProp$G(target, key, result);
6940
7044
  return result;
6941
7045
  };
6942
7046
  exports.Timeline = class Timeline extends exports.Node {
@@ -6981,52 +7085,54 @@ exports.Timeline = class Timeline extends exports.Node {
6981
7085
  this.addTime(delta);
6982
7086
  }
6983
7087
  };
6984
- __decorateClass$N([
7088
+ __decorateClass$O([
6985
7089
  modernIdoc.property({ fallback: 0 })
6986
7090
  ], exports.Timeline.prototype, "startTime", 2);
6987
- __decorateClass$N([
7091
+ __decorateClass$O([
6988
7092
  modernIdoc.property({ fallback: 0 })
6989
7093
  ], exports.Timeline.prototype, "currentTime", 2);
6990
- __decorateClass$N([
7094
+ __decorateClass$O([
6991
7095
  modernIdoc.property({ fallback: Number.MAX_SAFE_INTEGER })
6992
7096
  ], exports.Timeline.prototype, "endTime", 2);
6993
- __decorateClass$N([
7097
+ __decorateClass$O([
6994
7098
  modernIdoc.property({ fallback: false })
6995
7099
  ], exports.Timeline.prototype, "loop", 2);
6996
- exports.Timeline = __decorateClass$N([
7100
+ exports.Timeline = __decorateClass$O([
6997
7101
  customNode("Timeline")
6998
7102
  ], exports.Timeline);
6999
7103
 
7104
+ var __defProp$F = Object.defineProperty;
7000
7105
  var __getOwnPropDesc$D = Object.getOwnPropertyDescriptor;
7001
- var __decorateClass$M = (decorators, target, key, kind) => {
7106
+ var __decorateClass$N = (decorators, target, key, kind) => {
7002
7107
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$D(target, key) : target;
7003
7108
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7004
7109
  if (decorator = decorators[i])
7005
- result = (decorator(result)) || result;
7110
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7111
+ if (kind && result) __defProp$F(target, key, result);
7006
7112
  return result;
7007
7113
  };
7008
7114
  exports.Window = class Window extends exports.Viewport {
7009
- //
7010
7115
  };
7011
- exports.Window = __decorateClass$M([
7116
+ __decorateClass$N([
7117
+ modernIdoc.property({ fallback: false })
7118
+ ], exports.Window.prototype, "msaa", 2);
7119
+ exports.Window = __decorateClass$N([
7012
7120
  customNode("Window")
7013
7121
  ], exports.Window);
7014
7122
 
7015
- var __defProp$D = Object.defineProperty;
7016
- var __decorateClass$L = (decorators, target, key, kind) => {
7123
+ var __defProp$E = Object.defineProperty;
7124
+ var __decorateClass$M = (decorators, target, key, kind) => {
7017
7125
  var result = void 0 ;
7018
7126
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7019
7127
  if (decorator = decorators[i])
7020
7128
  result = (decorator(target, key, result) ) || result;
7021
- if (result) __defProp$D(target, key, result);
7129
+ if (result) __defProp$E(target, key, result);
7022
7130
  return result;
7023
7131
  };
7024
7132
  class SceneTree extends MainLoop {
7025
- fonts;
7026
7133
  input = new Input();
7027
7134
  renderStack = new RenderStack();
7028
7135
  root = new exports.Window(true).setTree(this);
7029
- timeline;
7030
7136
  _backgroundColor = new Color();
7031
7137
  _currentViewport;
7032
7138
  getCurrentViewport() {
@@ -7035,9 +7141,9 @@ class SceneTree extends MainLoop {
7035
7141
  setCurrentViewport(viewport) {
7036
7142
  this._currentViewport = viewport;
7037
7143
  }
7038
- constructor(timeline = new exports.Timeline()) {
7144
+ constructor(properties) {
7039
7145
  super();
7040
- this.timeline = timeline.setTree(this);
7146
+ this.setProperties(properties);
7041
7147
  }
7042
7148
  _updateProperty(key, value, oldValue) {
7043
7149
  super._updateProperty(key, value, oldValue);
@@ -7045,6 +7151,9 @@ class SceneTree extends MainLoop {
7045
7151
  case "backgroundColor":
7046
7152
  this._backgroundColor.value = value;
7047
7153
  break;
7154
+ case "timeline":
7155
+ this.timeline.setTree(this);
7156
+ break;
7048
7157
  }
7049
7158
  }
7050
7159
  log(...args) {
@@ -7065,8 +7174,14 @@ class SceneTree extends MainLoop {
7065
7174
  this.emit("rendered");
7066
7175
  }
7067
7176
  _renderScreen(renderer) {
7177
+ if (this.root.msaa) {
7178
+ renderer.framebuffer.finishRenderPass(
7179
+ this.root._glFramebuffer(renderer)
7180
+ );
7181
+ }
7068
7182
  renderer.state.reset();
7069
7183
  renderer.framebuffer.bind(null);
7184
+ renderer.gl.bindFramebuffer(renderer.gl.FRAMEBUFFER, null);
7070
7185
  renderer.viewport.bind({
7071
7186
  x: 0,
7072
7187
  y: 0,
@@ -7086,23 +7201,29 @@ class SceneTree extends MainLoop {
7086
7201
  renderer.texture.unbind(texture);
7087
7202
  }
7088
7203
  destroy() {
7089
- super.destroy();
7090
7204
  this.root.destroy();
7091
- this.input.removeEventListeners();
7205
+ this.input.destroy();
7206
+ super.destroy();
7092
7207
  }
7093
7208
  }
7094
- __decorateClass$L([
7095
- modernIdoc.property({ internal: true, fallback: false })
7096
- ], SceneTree.prototype, "processPaused");
7097
- __decorateClass$L([
7209
+ __decorateClass$M([
7098
7210
  modernIdoc.property()
7099
7211
  ], SceneTree.prototype, "backgroundColor");
7100
- __decorateClass$L([
7212
+ __decorateClass$M([
7101
7213
  modernIdoc.property({ internal: true, fallback: false })
7102
7214
  ], SceneTree.prototype, "debug");
7215
+ __decorateClass$M([
7216
+ modernIdoc.property({ internal: true, fallback: false })
7217
+ ], SceneTree.prototype, "processPaused");
7218
+ __decorateClass$M([
7219
+ modernIdoc.property({ internal: true, fallback: modernFont.fonts })
7220
+ ], SceneTree.prototype, "fonts");
7221
+ __decorateClass$M([
7222
+ modernIdoc.property({ internal: true, default: () => new exports.Timeline() })
7223
+ ], SceneTree.prototype, "timeline");
7103
7224
 
7104
7225
  var __getOwnPropDesc$C = Object.getOwnPropertyDescriptor;
7105
- var __decorateClass$K = (decorators, target, key, kind) => {
7226
+ var __decorateClass$L = (decorators, target, key, kind) => {
7106
7227
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$C(target, key) : target;
7107
7228
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7108
7229
  if (decorator = decorators[i])
@@ -7115,7 +7236,7 @@ exports.Transition = class Transition extends exports.Effect {
7115
7236
  this.setProperties(properties).append(children);
7116
7237
  }
7117
7238
  };
7118
- exports.Transition = __decorateClass$K([
7239
+ exports.Transition = __decorateClass$L([
7119
7240
  customNode("Transition", {
7120
7241
  effectMode: "transition",
7121
7242
  processMode: "pausable",
@@ -7123,14 +7244,14 @@ exports.Transition = __decorateClass$K([
7123
7244
  })
7124
7245
  ], exports.Transition);
7125
7246
 
7126
- var __defProp$C = Object.defineProperty;
7247
+ var __defProp$D = Object.defineProperty;
7127
7248
  var __getOwnPropDesc$B = Object.getOwnPropertyDescriptor;
7128
- var __decorateClass$J = (decorators, target, key, kind) => {
7249
+ var __decorateClass$K = (decorators, target, key, kind) => {
7129
7250
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$B(target, key) : target;
7130
7251
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7131
7252
  if (decorator = decorators[i])
7132
7253
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7133
- if (kind && result) __defProp$C(target, key, result);
7254
+ if (kind && result) __defProp$D(target, key, result);
7134
7255
  return result;
7135
7256
  };
7136
7257
  exports.Node2D = class Node2D extends exports.CanvasItem {
@@ -7234,24 +7355,24 @@ exports.Node2D = class Node2D extends exports.CanvasItem {
7234
7355
  return this.globalTransform.apply(localPos, newPos);
7235
7356
  }
7236
7357
  };
7237
- __decorateClass$J([
7358
+ __decorateClass$K([
7238
7359
  modernIdoc.property({ internal: true, fallback: 0 })
7239
7360
  ], exports.Node2D.prototype, "rotation", 2);
7240
- __decorateClass$J([
7361
+ __decorateClass$K([
7241
7362
  modernIdoc.property({ internal: true, fallback: 0 })
7242
7363
  ], exports.Node2D.prototype, "globalRotation", 2);
7243
- exports.Node2D = __decorateClass$J([
7364
+ exports.Node2D = __decorateClass$K([
7244
7365
  customNode("Node2D")
7245
7366
  ], exports.Node2D);
7246
7367
 
7247
- var __defProp$B = Object.defineProperty;
7368
+ var __defProp$C = Object.defineProperty;
7248
7369
  var __getOwnPropDesc$A = Object.getOwnPropertyDescriptor;
7249
- var __decorateClass$I = (decorators, target, key, kind) => {
7370
+ var __decorateClass$J = (decorators, target, key, kind) => {
7250
7371
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$A(target, key) : target;
7251
7372
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7252
7373
  if (decorator = decorators[i])
7253
7374
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7254
- if (kind && result) __defProp$B(target, key, result);
7375
+ if (kind && result) __defProp$C(target, key, result);
7255
7376
  return result;
7256
7377
  };
7257
7378
  exports.Camera2D = class Camera2D extends exports.Node2D {
@@ -7364,13 +7485,13 @@ exports.Camera2D = class Camera2D extends exports.Node2D {
7364
7485
  return viewport.toCanvasScreen(globalPos, newPos);
7365
7486
  }
7366
7487
  };
7367
- __decorateClass$I([
7488
+ __decorateClass$J([
7368
7489
  modernIdoc.property({ internal: true, fallback: false })
7369
7490
  ], exports.Camera2D.prototype, "spaceKey", 2);
7370
- __decorateClass$I([
7491
+ __decorateClass$J([
7371
7492
  modernIdoc.property({ internal: true, fallback: false })
7372
7493
  ], exports.Camera2D.prototype, "grabbing", 2);
7373
- exports.Camera2D = __decorateClass$I([
7494
+ exports.Camera2D = __decorateClass$J([
7374
7495
  customNode("Camera2D", {
7375
7496
  processMode: "disabled",
7376
7497
  renderMode: "disabled"
@@ -7523,15 +7644,15 @@ function parseCSSTransformOrigin(transformOrigin) {
7523
7644
  });
7524
7645
  }
7525
7646
 
7526
- var __defProp$A = Object.defineProperty;
7647
+ var __defProp$B = Object.defineProperty;
7527
7648
  var __getOwnPropDesc$z = Object.getOwnPropertyDescriptor;
7528
- var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$A(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7529
- var __decorateClass$H = (decorators, target, key, kind) => {
7649
+ var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$B(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7650
+ var __decorateClass$I = (decorators, target, key, kind) => {
7530
7651
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$z(target, key) : target;
7531
7652
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7532
7653
  if (decorator = decorators[i])
7533
7654
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7534
- if (kind && result) __defProp$A(target, key, result);
7655
+ if (kind && result) __defProp$B(target, key, result);
7535
7656
  return result;
7536
7657
  };
7537
7658
  var __publicField$i = (obj, key, value) => __defNormalProp$i(obj, key + "" , value);
@@ -7591,43 +7712,43 @@ void main(void) {
7591
7712
  gl_FragColor = c * alpha;
7592
7713
  }`
7593
7714
  }));
7594
- __decorateClass$H([
7715
+ __decorateClass$I([
7595
7716
  modernIdoc.property({ fallback: 1 })
7596
7717
  ], exports.ColorAdjustEffect.prototype, "saturation", 2);
7597
- __decorateClass$H([
7718
+ __decorateClass$I([
7598
7719
  modernIdoc.property({ fallback: 1 })
7599
7720
  ], exports.ColorAdjustEffect.prototype, "contrast", 2);
7600
- __decorateClass$H([
7721
+ __decorateClass$I([
7601
7722
  modernIdoc.property({ fallback: 1 })
7602
7723
  ], exports.ColorAdjustEffect.prototype, "brightness", 2);
7603
- __decorateClass$H([
7724
+ __decorateClass$I([
7604
7725
  modernIdoc.property({ fallback: 1 })
7605
7726
  ], exports.ColorAdjustEffect.prototype, "red", 2);
7606
- __decorateClass$H([
7727
+ __decorateClass$I([
7607
7728
  modernIdoc.property({ fallback: 1 })
7608
7729
  ], exports.ColorAdjustEffect.prototype, "green", 2);
7609
- __decorateClass$H([
7730
+ __decorateClass$I([
7610
7731
  modernIdoc.property({ fallback: 1 })
7611
7732
  ], exports.ColorAdjustEffect.prototype, "blue", 2);
7612
- __decorateClass$H([
7733
+ __decorateClass$I([
7613
7734
  modernIdoc.property({ fallback: 1 })
7614
7735
  ], exports.ColorAdjustEffect.prototype, "alpha", 2);
7615
- __decorateClass$H([
7736
+ __decorateClass$I([
7616
7737
  modernIdoc.property({ fallback: 1 })
7617
7738
  ], exports.ColorAdjustEffect.prototype, "gamma", 2);
7618
- exports.ColorAdjustEffect = __decorateClass$H([
7739
+ exports.ColorAdjustEffect = __decorateClass$I([
7619
7740
  customNode("ColorAdjustEffect")
7620
7741
  ], exports.ColorAdjustEffect);
7621
7742
 
7622
- var __defProp$z = Object.defineProperty;
7743
+ var __defProp$A = Object.defineProperty;
7623
7744
  var __getOwnPropDesc$y = Object.getOwnPropertyDescriptor;
7624
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$z(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7625
- var __decorateClass$G = (decorators, target, key, kind) => {
7745
+ var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$A(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7746
+ var __decorateClass$H = (decorators, target, key, kind) => {
7626
7747
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$y(target, key) : target;
7627
7748
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7628
7749
  if (decorator = decorators[i])
7629
7750
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7630
- if (kind && result) __defProp$z(target, key, result);
7751
+ if (kind && result) __defProp$A(target, key, result);
7631
7752
  return result;
7632
7753
  };
7633
7754
  var __publicField$h = (obj, key, value) => __defNormalProp$h(obj, key + "" , value);
@@ -7707,22 +7828,22 @@ void main(void) {
7707
7828
  );
7708
7829
  }`
7709
7830
  }));
7710
- __decorateClass$G([
7831
+ __decorateClass$H([
7711
7832
  modernIdoc.property()
7712
7833
  ], exports.ColorFilterEffect.prototype, "filter", 2);
7713
- exports.ColorFilterEffect = __decorateClass$G([
7834
+ exports.ColorFilterEffect = __decorateClass$H([
7714
7835
  customNode("ColorFilterEffect")
7715
7836
  ], exports.ColorFilterEffect);
7716
7837
 
7717
- var __defProp$y = Object.defineProperty;
7838
+ var __defProp$z = Object.defineProperty;
7718
7839
  var __getOwnPropDesc$x = Object.getOwnPropertyDescriptor;
7719
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7720
- var __decorateClass$F = (decorators, target, key, kind) => {
7840
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$z(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7841
+ var __decorateClass$G = (decorators, target, key, kind) => {
7721
7842
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$x(target, key) : target;
7722
7843
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7723
7844
  if (decorator = decorators[i])
7724
7845
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7725
- if (kind && result) __defProp$y(target, key, result);
7846
+ if (kind && result) __defProp$z(target, key, result);
7726
7847
  return result;
7727
7848
  };
7728
7849
  var __publicField$g = (obj, key, value) => __defNormalProp$g(obj, key + "" , value);
@@ -7798,25 +7919,25 @@ void main(void) {
7798
7919
  gl_FragColor = vec4(mix(color.rgb, mask.rgb, color.a * mask.a), color.a);
7799
7920
  }`
7800
7921
  }));
7801
- __decorateClass$F([
7922
+ __decorateClass$G([
7802
7923
  modernIdoc.property({ default: () => [] })
7803
7924
  ], exports.ColorOverlayEffect.prototype, "colors", 2);
7804
- __decorateClass$F([
7925
+ __decorateClass$G([
7805
7926
  modernIdoc.property({ fallback: 0.5 })
7806
7927
  ], exports.ColorOverlayEffect.prototype, "alpha", 2);
7807
- exports.ColorOverlayEffect = __decorateClass$F([
7928
+ exports.ColorOverlayEffect = __decorateClass$G([
7808
7929
  customNode("ColorOverlayEffect")
7809
7930
  ], exports.ColorOverlayEffect);
7810
7931
 
7811
- var __defProp$x = Object.defineProperty;
7932
+ var __defProp$y = Object.defineProperty;
7812
7933
  var __getOwnPropDesc$w = Object.getOwnPropertyDescriptor;
7813
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7814
- var __decorateClass$E = (decorators, target, key, kind) => {
7934
+ var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7935
+ var __decorateClass$F = (decorators, target, key, kind) => {
7815
7936
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$w(target, key) : target;
7816
7937
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7817
7938
  if (decorator = decorators[i])
7818
7939
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7819
- if (kind && result) __defProp$x(target, key, result);
7940
+ if (kind && result) __defProp$y(target, key, result);
7820
7941
  return result;
7821
7942
  };
7822
7943
  var __publicField$f = (obj, key, value) => __defNormalProp$f(obj, key + "" , value);
@@ -7883,25 +8004,25 @@ void main(void) {
7883
8004
  gl_FragColor = color;
7884
8005
  }`
7885
8006
  }));
7886
- __decorateClass$E([
8007
+ __decorateClass$F([
7887
8008
  modernIdoc.property({ default: () => [] })
7888
8009
  ], exports.ColorRemoveEffect.prototype, "colors", 2);
7889
- __decorateClass$E([
8010
+ __decorateClass$F([
7890
8011
  modernIdoc.property({ fallback: 0.5 })
7891
8012
  ], exports.ColorRemoveEffect.prototype, "epsilon", 2);
7892
- exports.ColorRemoveEffect = __decorateClass$E([
8013
+ exports.ColorRemoveEffect = __decorateClass$F([
7893
8014
  customNode("ColorRemoveEffect")
7894
8015
  ], exports.ColorRemoveEffect);
7895
8016
 
7896
- var __defProp$w = Object.defineProperty;
8017
+ var __defProp$x = Object.defineProperty;
7897
8018
  var __getOwnPropDesc$v = Object.getOwnPropertyDescriptor;
7898
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$w(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7899
- var __decorateClass$D = (decorators, target, key, kind) => {
8019
+ var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8020
+ var __decorateClass$E = (decorators, target, key, kind) => {
7900
8021
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$v(target, key) : target;
7901
8022
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7902
8023
  if (decorator = decorators[i])
7903
8024
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7904
- if (kind && result) __defProp$w(target, key, result);
8025
+ if (kind && result) __defProp$x(target, key, result);
7905
8026
  return result;
7906
8027
  };
7907
8028
  var __publicField$e = (obj, key, value) => __defNormalProp$e(obj, key + "" , value);
@@ -7990,25 +8111,25 @@ void main(void) {
7990
8111
  }
7991
8112
  }`
7992
8113
  }));
7993
- __decorateClass$D([
8114
+ __decorateClass$E([
7994
8115
  modernIdoc.property({ default: () => [] })
7995
8116
  ], exports.ColorReplaceEffect.prototype, "colors", 2);
7996
- __decorateClass$D([
8117
+ __decorateClass$E([
7997
8118
  modernIdoc.property({ fallback: 0.05 })
7998
8119
  ], exports.ColorReplaceEffect.prototype, "epsilon", 2);
7999
- exports.ColorReplaceEffect = __decorateClass$D([
8120
+ exports.ColorReplaceEffect = __decorateClass$E([
8000
8121
  customNode("ColorReplaceEffect")
8001
8122
  ], exports.ColorReplaceEffect);
8002
8123
 
8003
- var __defProp$v = Object.defineProperty;
8124
+ var __defProp$w = Object.defineProperty;
8004
8125
  var __getOwnPropDesc$u = Object.getOwnPropertyDescriptor;
8005
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$v(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8006
- var __decorateClass$C = (decorators, target, key, kind) => {
8126
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$w(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8127
+ var __decorateClass$D = (decorators, target, key, kind) => {
8007
8128
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$u(target, key) : target;
8008
8129
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8009
8130
  if (decorator = decorators[i])
8010
8131
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8011
- if (kind && result) __defProp$v(target, key, result);
8132
+ if (kind && result) __defProp$w(target, key, result);
8012
8133
  return result;
8013
8134
  };
8014
8135
  var __publicField$d = (obj, key, value) => __defNormalProp$d(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -8114,25 +8235,25 @@ void main(void) {
8114
8235
  }`,
8115
8236
  frag: frag$2
8116
8237
  }));
8117
- __decorateClass$C([
8238
+ __decorateClass$D([
8118
8239
  modernIdoc.property({ fallback: 4 })
8119
8240
  ], exports.GaussianBlurEffect.prototype, "strength", 2);
8120
- __decorateClass$C([
8241
+ __decorateClass$D([
8121
8242
  modernIdoc.property({ fallback: 3 })
8122
8243
  ], exports.GaussianBlurEffect.prototype, "quality", 2);
8123
- exports.GaussianBlurEffect = __decorateClass$C([
8244
+ exports.GaussianBlurEffect = __decorateClass$D([
8124
8245
  customNode("GaussianBlurEffect")
8125
8246
  ], exports.GaussianBlurEffect);
8126
8247
 
8127
- var __defProp$u = Object.defineProperty;
8248
+ var __defProp$v = Object.defineProperty;
8128
8249
  var __getOwnPropDesc$t = Object.getOwnPropertyDescriptor;
8129
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$u(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8130
- var __decorateClass$B = (decorators, target, key, kind) => {
8250
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$v(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8251
+ var __decorateClass$C = (decorators, target, key, kind) => {
8131
8252
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$t(target, key) : target;
8132
8253
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8133
8254
  if (decorator = decorators[i])
8134
8255
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8135
- if (kind && result) __defProp$u(target, key, result);
8256
+ if (kind && result) __defProp$v(target, key, result);
8136
8257
  return result;
8137
8258
  };
8138
8259
  var __publicField$c = (obj, key, value) => __defNormalProp$c(obj, key + "" , value);
@@ -8196,34 +8317,34 @@ void main(void) {
8196
8317
  gl_FragColor = sample;
8197
8318
  }`
8198
8319
  }));
8199
- __decorateClass$B([
8320
+ __decorateClass$C([
8200
8321
  modernIdoc.property({ fallback: "#000000FF" })
8201
8322
  ], exports.DropShadowEffect.prototype, "color", 2);
8202
- __decorateClass$B([
8323
+ __decorateClass$C([
8203
8324
  modernIdoc.property({ fallback: 4 })
8204
8325
  ], exports.DropShadowEffect.prototype, "blur", 2);
8205
- __decorateClass$B([
8326
+ __decorateClass$C([
8206
8327
  modernIdoc.property({ fallback: 4 })
8207
8328
  ], exports.DropShadowEffect.prototype, "offsetX", 2);
8208
- __decorateClass$B([
8329
+ __decorateClass$C([
8209
8330
  modernIdoc.property({ fallback: 4 })
8210
8331
  ], exports.DropShadowEffect.prototype, "offsetY", 2);
8211
- __decorateClass$B([
8332
+ __decorateClass$C([
8212
8333
  modernIdoc.property({ fallback: false })
8213
8334
  ], exports.DropShadowEffect.prototype, "shadowOnly", 2);
8214
- exports.DropShadowEffect = __decorateClass$B([
8335
+ exports.DropShadowEffect = __decorateClass$C([
8215
8336
  customNode("DropShadowEffect")
8216
8337
  ], exports.DropShadowEffect);
8217
8338
 
8218
- var __defProp$t = Object.defineProperty;
8339
+ var __defProp$u = Object.defineProperty;
8219
8340
  var __getOwnPropDesc$s = Object.getOwnPropertyDescriptor;
8220
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$t(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8221
- var __decorateClass$A = (decorators, target, key, kind) => {
8341
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$u(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8342
+ var __decorateClass$B = (decorators, target, key, kind) => {
8222
8343
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$s(target, key) : target;
8223
8344
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8224
8345
  if (decorator = decorators[i])
8225
8346
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8226
- if (kind && result) __defProp$t(target, key, result);
8347
+ if (kind && result) __defProp$u(target, key, result);
8227
8348
  return result;
8228
8349
  };
8229
8350
  var __publicField$b = (obj, key, value) => __defNormalProp$b(obj, key + "" , value);
@@ -8268,22 +8389,22 @@ void main(void) {
8268
8389
  gl_FragColor = vec4(color.rgb * alpha, alpha);
8269
8390
  }`
8270
8391
  }));
8271
- __decorateClass$A([
8392
+ __decorateClass$B([
8272
8393
  modernIdoc.property({ fallback: 5 })
8273
8394
  ], exports.EmbossEffect.prototype, "strength", 2);
8274
- exports.EmbossEffect = __decorateClass$A([
8395
+ exports.EmbossEffect = __decorateClass$B([
8275
8396
  customNode("EmbossEffect")
8276
8397
  ], exports.EmbossEffect);
8277
8398
 
8278
- var __defProp$s = Object.defineProperty;
8399
+ var __defProp$t = Object.defineProperty;
8279
8400
  var __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;
8280
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$s(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8281
- var __decorateClass$z = (decorators, target, key, kind) => {
8401
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$t(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8402
+ var __decorateClass$A = (decorators, target, key, kind) => {
8282
8403
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$r(target, key) : target;
8283
8404
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8284
8405
  if (decorator = decorators[i])
8285
8406
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8286
- if (kind && result) __defProp$s(target, key, result);
8407
+ if (kind && result) __defProp$t(target, key, result);
8287
8408
  return result;
8288
8409
  };
8289
8410
  var __publicField$a = (obj, key, value) => __defNormalProp$a(obj, key + "" , value);
@@ -8457,46 +8578,46 @@ void main(void) {
8457
8578
  gl_FragColor.a = texture2D(sampler, coord).a;
8458
8579
  }`
8459
8580
  }));
8460
- __decorateClass$z([
8581
+ __decorateClass$A([
8461
8582
  modernIdoc.property({ fallback: 10 })
8462
8583
  ], exports.GlitchEffect.prototype, "slices", 2);
8463
- __decorateClass$z([
8584
+ __decorateClass$A([
8464
8585
  modernIdoc.property({ fallback: 512 })
8465
8586
  ], exports.GlitchEffect.prototype, "sampleSize", 2);
8466
- __decorateClass$z([
8587
+ __decorateClass$A([
8467
8588
  modernIdoc.property({ fallback: 100 })
8468
8589
  ], exports.GlitchEffect.prototype, "offset", 2);
8469
- __decorateClass$z([
8590
+ __decorateClass$A([
8470
8591
  modernIdoc.property({ fallback: 0 })
8471
8592
  ], exports.GlitchEffect.prototype, "direction", 2);
8472
- __decorateClass$z([
8593
+ __decorateClass$A([
8473
8594
  modernIdoc.property({ fallback: 2 })
8474
8595
  ], exports.GlitchEffect.prototype, "fillMode", 2);
8475
- __decorateClass$z([
8596
+ __decorateClass$A([
8476
8597
  modernIdoc.property({ fallback: 0 })
8477
8598
  ], exports.GlitchEffect.prototype, "seed", 2);
8478
- __decorateClass$z([
8599
+ __decorateClass$A([
8479
8600
  modernIdoc.property({ default: () => [2, 2] })
8480
8601
  ], exports.GlitchEffect.prototype, "red", 2);
8481
- __decorateClass$z([
8602
+ __decorateClass$A([
8482
8603
  modernIdoc.property({ default: () => [-10, 4] })
8483
8604
  ], exports.GlitchEffect.prototype, "green", 2);
8484
- __decorateClass$z([
8605
+ __decorateClass$A([
8485
8606
  modernIdoc.property({ default: () => [10, -4] })
8486
8607
  ], exports.GlitchEffect.prototype, "blue", 2);
8487
- exports.GlitchEffect = __decorateClass$z([
8608
+ exports.GlitchEffect = __decorateClass$A([
8488
8609
  customNode("GlitchEffect")
8489
8610
  ], exports.GlitchEffect);
8490
8611
 
8491
- var __defProp$r = Object.defineProperty;
8612
+ var __defProp$s = Object.defineProperty;
8492
8613
  var __getOwnPropDesc$q = Object.getOwnPropertyDescriptor;
8493
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$r(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8494
- var __decorateClass$y = (decorators, target, key, kind) => {
8614
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$s(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8615
+ var __decorateClass$z = (decorators, target, key, kind) => {
8495
8616
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$q(target, key) : target;
8496
8617
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8497
8618
  if (decorator = decorators[i])
8498
8619
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8499
- if (kind && result) __defProp$r(target, key, result);
8620
+ if (kind && result) __defProp$s(target, key, result);
8500
8621
  return result;
8501
8622
  };
8502
8623
  var __publicField$9 = (obj, key, value) => __defNormalProp$9(obj, key + "" , value);
@@ -8674,39 +8795,39 @@ void main(void) {
8674
8795
  gl_FragColor = vec4(color.rgb + mist.rgb, color.a);
8675
8796
  }`
8676
8797
  }));
8677
- __decorateClass$y([
8798
+ __decorateClass$z([
8678
8799
  modernIdoc.property({ fallback: 0 })
8679
8800
  ], exports.GodrayEffect.prototype, "time", 2);
8680
- __decorateClass$y([
8801
+ __decorateClass$z([
8681
8802
  modernIdoc.property({ fallback: 30 })
8682
8803
  ], exports.GodrayEffect.prototype, "angle", 2);
8683
- __decorateClass$y([
8804
+ __decorateClass$z([
8684
8805
  modernIdoc.property({ fallback: 0.5 })
8685
8806
  ], exports.GodrayEffect.prototype, "gain", 2);
8686
- __decorateClass$y([
8807
+ __decorateClass$z([
8687
8808
  modernIdoc.property({ fallback: 2.5 })
8688
8809
  ], exports.GodrayEffect.prototype, "lacunarity", 2);
8689
- __decorateClass$y([
8810
+ __decorateClass$z([
8690
8811
  modernIdoc.property({ fallback: true })
8691
8812
  ], exports.GodrayEffect.prototype, "parallel", 2);
8692
- __decorateClass$y([
8813
+ __decorateClass$z([
8693
8814
  modernIdoc.property({ default: () => [0, 0] })
8694
8815
  ], exports.GodrayEffect.prototype, "center", 2);
8695
- __decorateClass$y([
8816
+ __decorateClass$z([
8696
8817
  modernIdoc.property({ fallback: 1 })
8697
8818
  ], exports.GodrayEffect.prototype, "alpha", 2);
8698
- exports.GodrayEffect = __decorateClass$y([
8819
+ exports.GodrayEffect = __decorateClass$z([
8699
8820
  customNode("GodrayEffect")
8700
8821
  ], exports.GodrayEffect);
8701
8822
 
8702
- var __defProp$q = Object.defineProperty;
8823
+ var __defProp$r = Object.defineProperty;
8703
8824
  var __getOwnPropDesc$p = Object.getOwnPropertyDescriptor;
8704
- var __decorateClass$x = (decorators, target, key, kind) => {
8825
+ var __decorateClass$y = (decorators, target, key, kind) => {
8705
8826
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$p(target, key) : target;
8706
8827
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8707
8828
  if (decorator = decorators[i])
8708
8829
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8709
- if (kind && result) __defProp$q(target, key, result);
8830
+ if (kind && result) __defProp$r(target, key, result);
8710
8831
  return result;
8711
8832
  };
8712
8833
  const frag$1 = `varying vec2 vUv;
@@ -8796,28 +8917,28 @@ void main() {
8796
8917
  });
8797
8918
  }
8798
8919
  };
8799
- __decorateClass$x([
8920
+ __decorateClass$y([
8800
8921
  modernIdoc.property({ fallback: 4 })
8801
8922
  ], exports.KawaseBlurEffect.prototype, "strength", 2);
8802
- __decorateClass$x([
8923
+ __decorateClass$y([
8803
8924
  modernIdoc.property({ fallback: 3 })
8804
8925
  ], exports.KawaseBlurEffect.prototype, "quality", 2);
8805
- __decorateClass$x([
8926
+ __decorateClass$y([
8806
8927
  modernIdoc.property({ default: () => [1, 1] })
8807
8928
  ], exports.KawaseBlurEffect.prototype, "pixelSize", 2);
8808
- exports.KawaseBlurEffect = __decorateClass$x([
8929
+ exports.KawaseBlurEffect = __decorateClass$y([
8809
8930
  customNode("KawaseBlurEffect")
8810
8931
  ], exports.KawaseBlurEffect);
8811
8932
 
8812
- var __defProp$p = Object.defineProperty;
8933
+ var __defProp$q = Object.defineProperty;
8813
8934
  var __getOwnPropDesc$o = Object.getOwnPropertyDescriptor;
8814
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8815
- var __decorateClass$w = (decorators, target, key, kind) => {
8935
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8936
+ var __decorateClass$x = (decorators, target, key, kind) => {
8816
8937
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$o(target, key) : target;
8817
8938
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8818
8939
  if (decorator = decorators[i])
8819
8940
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8820
- if (kind && result) __defProp$p(target, key, result);
8941
+ if (kind && result) __defProp$q(target, key, result);
8821
8942
  return result;
8822
8943
  };
8823
8944
  var __publicField$8 = (obj, key, value) => __defNormalProp$8(obj, key + "" , value);
@@ -8905,25 +9026,25 @@ void main(void) {
8905
9026
  }
8906
9027
  }`
8907
9028
  }));
8908
- __decorateClass$w([
9029
+ __decorateClass$x([
8909
9030
  modernIdoc.property({ internal: true })
8910
9031
  ], exports.MaskEffect.prototype, "texture", 2);
8911
- __decorateClass$w([
9032
+ __decorateClass$x([
8912
9033
  modernIdoc.property({ fallback: "" })
8913
9034
  ], exports.MaskEffect.prototype, "src", 2);
8914
- exports.MaskEffect = __decorateClass$w([
9035
+ exports.MaskEffect = __decorateClass$x([
8915
9036
  customNode("MaskEffect")
8916
9037
  ], exports.MaskEffect);
8917
9038
 
8918
- var __defProp$o = Object.defineProperty;
9039
+ var __defProp$p = Object.defineProperty;
8919
9040
  var __getOwnPropDesc$n = Object.getOwnPropertyDescriptor;
8920
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8921
- var __decorateClass$v = (decorators, target, key, kind) => {
9041
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9042
+ var __decorateClass$w = (decorators, target, key, kind) => {
8922
9043
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$n(target, key) : target;
8923
9044
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
8924
9045
  if (decorator = decorators[i])
8925
9046
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8926
- if (kind && result) __defProp$o(target, key, result);
9047
+ if (kind && result) __defProp$p(target, key, result);
8927
9048
  return result;
8928
9049
  };
8929
9050
  var __publicField$7 = (obj, key, value) => __defNormalProp$7(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -9010,40 +9131,40 @@ void main() {
9010
9131
  };
9011
9132
  __publicField$7(exports.OutlineEffect, "MIN_SAMPLES", 1);
9012
9133
  __publicField$7(exports.OutlineEffect, "MAX_SAMPLES", 100);
9013
- __decorateClass$v([
9134
+ __decorateClass$w([
9014
9135
  modernIdoc.property({ fallback: "#000000ff" })
9015
9136
  ], exports.OutlineEffect.prototype, "color", 2);
9016
- __decorateClass$v([
9137
+ __decorateClass$w([
9017
9138
  modernIdoc.property({ fallback: 1 })
9018
9139
  ], exports.OutlineEffect.prototype, "width", 2);
9019
- __decorateClass$v([
9140
+ __decorateClass$w([
9020
9141
  modernIdoc.property({ fallback: "solid" })
9021
9142
  ], exports.OutlineEffect.prototype, "style", 2);
9022
- __decorateClass$v([
9143
+ __decorateClass$w([
9023
9144
  modernIdoc.property()
9024
9145
  ], exports.OutlineEffect.prototype, "image", 2);
9025
- __decorateClass$v([
9146
+ __decorateClass$w([
9026
9147
  modernIdoc.property({ fallback: 1 })
9027
9148
  ], exports.OutlineEffect.prototype, "opacity", 2);
9028
- __decorateClass$v([
9149
+ __decorateClass$w([
9029
9150
  modernIdoc.property({ fallback: 0.1 })
9030
9151
  ], exports.OutlineEffect.prototype, "quality", 2);
9031
- __decorateClass$v([
9152
+ __decorateClass$w([
9032
9153
  modernIdoc.property({ fallback: false })
9033
9154
  ], exports.OutlineEffect.prototype, "knockout", 2);
9034
- exports.OutlineEffect = __decorateClass$v([
9155
+ exports.OutlineEffect = __decorateClass$w([
9035
9156
  customNode("OutlineEffect")
9036
9157
  ], exports.OutlineEffect);
9037
9158
 
9038
- var __defProp$n = Object.defineProperty;
9159
+ var __defProp$o = Object.defineProperty;
9039
9160
  var __getOwnPropDesc$m = Object.getOwnPropertyDescriptor;
9040
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9041
- var __decorateClass$u = (decorators, target, key, kind) => {
9161
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9162
+ var __decorateClass$v = (decorators, target, key, kind) => {
9042
9163
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$m(target, key) : target;
9043
9164
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9044
9165
  if (decorator = decorators[i])
9045
9166
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9046
- if (kind && result) __defProp$n(target, key, result);
9167
+ if (kind && result) __defProp$o(target, key, result);
9047
9168
  return result;
9048
9169
  };
9049
9170
  var __publicField$6 = (obj, key, value) => __defNormalProp$6(obj, key + "" , value);
@@ -9099,22 +9220,22 @@ void main(void) {
9099
9220
  gl_FragColor = texture2D(sampler, coord);
9100
9221
  }`
9101
9222
  }));
9102
- __decorateClass$u([
9223
+ __decorateClass$v([
9103
9224
  modernIdoc.property({ fallback: 10 })
9104
9225
  ], exports.PixelateEffect.prototype, "strength", 2);
9105
- exports.PixelateEffect = __decorateClass$u([
9226
+ exports.PixelateEffect = __decorateClass$v([
9106
9227
  customNode("PixelateEffect")
9107
9228
  ], exports.PixelateEffect);
9108
9229
 
9109
- var __defProp$m = Object.defineProperty;
9230
+ var __defProp$n = Object.defineProperty;
9110
9231
  var __getOwnPropDesc$l = Object.getOwnPropertyDescriptor;
9111
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9112
- var __decorateClass$t = (decorators, target, key, kind) => {
9232
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9233
+ var __decorateClass$u = (decorators, target, key, kind) => {
9113
9234
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target;
9114
9235
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9115
9236
  if (decorator = decorators[i])
9116
9237
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9117
- if (kind && result) __defProp$m(target, key, result);
9238
+ if (kind && result) __defProp$n(target, key, result);
9118
9239
  return result;
9119
9240
  };
9120
9241
  var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, key + "" , value);
@@ -9227,19 +9348,19 @@ void main() {
9227
9348
  gl_FragColor = color;
9228
9349
  }`
9229
9350
  }));
9230
- __decorateClass$t([
9351
+ __decorateClass$u([
9231
9352
  modernIdoc.property()
9232
9353
  ], exports.ZoomBlurEffect.prototype, "center", 2);
9233
- __decorateClass$t([
9354
+ __decorateClass$u([
9234
9355
  modernIdoc.property({ fallback: 20 })
9235
9356
  ], exports.ZoomBlurEffect.prototype, "innerRadius", 2);
9236
- __decorateClass$t([
9357
+ __decorateClass$u([
9237
9358
  modernIdoc.property({ fallback: -1 })
9238
9359
  ], exports.ZoomBlurEffect.prototype, "radius", 2);
9239
- __decorateClass$t([
9360
+ __decorateClass$u([
9240
9361
  modernIdoc.property({ fallback: 0.1 })
9241
9362
  ], exports.ZoomBlurEffect.prototype, "strength", 2);
9242
- exports.ZoomBlurEffect = __decorateClass$t([
9363
+ exports.ZoomBlurEffect = __decorateClass$u([
9243
9364
  customNode("ZoomBlurEffect")
9244
9365
  ], exports.ZoomBlurEffect);
9245
9366
 
@@ -9287,13 +9408,13 @@ function getDrawOptions(fill, box) {
9287
9408
  return { disableWrapMode, uvTransform };
9288
9409
  }
9289
9410
 
9290
- var __defProp$l = Object.defineProperty;
9291
- var __decorateClass$s = (decorators, target, key, kind) => {
9411
+ var __defProp$m = Object.defineProperty;
9412
+ var __decorateClass$t = (decorators, target, key, kind) => {
9292
9413
  var result = void 0 ;
9293
9414
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9294
9415
  if (decorator = decorators[i])
9295
9416
  result = (decorator(target, key, result) ) || result;
9296
- if (result) __defProp$l(target, key, result);
9417
+ if (result) __defProp$m(target, key, result);
9297
9418
  return result;
9298
9419
  };
9299
9420
  class BaseElement2DFill extends CoreObject {
@@ -9302,6 +9423,7 @@ class BaseElement2DFill extends CoreObject {
9302
9423
  this.parent = parent;
9303
9424
  }
9304
9425
  _texture;
9426
+ _animatedTexture;
9305
9427
  _setProperties(properties) {
9306
9428
  return super.setProperties(properties);
9307
9429
  }
@@ -9332,25 +9454,27 @@ class BaseElement2DFill extends CoreObject {
9332
9454
  }
9333
9455
  async loadTexture() {
9334
9456
  if (this.linearGradient || this.radialGradient) {
9335
- return new GradientTexture(
9457
+ this._texture = new GradientTexture(
9336
9458
  this.linearGradient ?? this.radialGradient,
9337
9459
  this.parent.size.width,
9338
9460
  this.parent.size.height
9339
9461
  );
9340
9462
  } else if (!modernIdoc.isNone(this.image)) {
9341
9463
  this.parent.tree?.log(`load image ${this.image}`);
9342
- return await assets.texture.load(this.image);
9343
- } else {
9344
- return void 0;
9464
+ if (this.image.split("?")[0].endsWith(".gif")) {
9465
+ this._animatedTexture = await assets.gif.load(this.image);
9466
+ } else {
9467
+ this._texture = await assets.texture.load(this.image);
9468
+ }
9345
9469
  }
9346
9470
  }
9347
9471
  async _updateTexture() {
9348
- this._texture = await this.loadTexture();
9472
+ await this.loadTexture();
9349
9473
  this.parent.requestRedraw();
9350
9474
  }
9351
9475
  canDraw() {
9352
9476
  return Boolean(
9353
- this.enabled && (this._texture || this.color)
9477
+ this.enabled && (this._texture || this._animatedTexture || this.color)
9354
9478
  );
9355
9479
  }
9356
9480
  draw() {
@@ -9363,53 +9487,84 @@ class BaseElement2DFill extends CoreObject {
9363
9487
  }
9364
9488
  );
9365
9489
  ctx.uvTransform = uvTransform;
9366
- ctx.fillStyle = this._texture ?? this.color;
9490
+ ctx.fillStyle = this._animatedTexture?.currentFrame.texture ?? this._texture ?? this.color;
9367
9491
  ctx.fill({
9368
9492
  disableWrapMode
9369
9493
  });
9370
9494
  }
9495
+ _getFrameCurrentTime() {
9496
+ const duration = this._animatedTexture?.duration ?? 0;
9497
+ if (!duration)
9498
+ return 0;
9499
+ const currentTime = this.parent._currentTime;
9500
+ if (currentTime < 0)
9501
+ return 0;
9502
+ return currentTime % duration;
9503
+ }
9504
+ updateFrameIndex() {
9505
+ if (!this._animatedTexture)
9506
+ return this;
9507
+ const currentTime = this._getFrameCurrentTime();
9508
+ const frames = this._animatedTexture.frames;
9509
+ const len = frames.length;
9510
+ if (len <= 1 && this._animatedTexture.frameIndex === 0)
9511
+ return this;
9512
+ let index = len - 1;
9513
+ for (let time = 0, i = 0; i < len; i++) {
9514
+ time += frames[i].duration ?? 0;
9515
+ if (time >= currentTime) {
9516
+ index = i;
9517
+ break;
9518
+ }
9519
+ }
9520
+ if (this._animatedTexture.frameIndex !== index) {
9521
+ this._animatedTexture.frameIndex = index;
9522
+ this.parent.requestRedraw();
9523
+ }
9524
+ return this;
9525
+ }
9371
9526
  }
9372
- __decorateClass$s([
9527
+ __decorateClass$t([
9373
9528
  modernIdoc.property({ fallback: true })
9374
9529
  ], BaseElement2DFill.prototype, "enabled");
9375
- __decorateClass$s([
9530
+ __decorateClass$t([
9376
9531
  modernIdoc.property()
9377
9532
  ], BaseElement2DFill.prototype, "color");
9378
- __decorateClass$s([
9533
+ __decorateClass$t([
9379
9534
  modernIdoc.property()
9380
9535
  ], BaseElement2DFill.prototype, "image");
9381
- __decorateClass$s([
9536
+ __decorateClass$t([
9382
9537
  modernIdoc.property()
9383
9538
  ], BaseElement2DFill.prototype, "linearGradient");
9384
- __decorateClass$s([
9539
+ __decorateClass$t([
9385
9540
  modernIdoc.property()
9386
9541
  ], BaseElement2DFill.prototype, "radialGradient");
9387
- __decorateClass$s([
9542
+ __decorateClass$t([
9388
9543
  modernIdoc.property()
9389
9544
  ], BaseElement2DFill.prototype, "cropRect");
9390
- __decorateClass$s([
9545
+ __decorateClass$t([
9391
9546
  modernIdoc.property()
9392
9547
  ], BaseElement2DFill.prototype, "stretchRect");
9393
- __decorateClass$s([
9548
+ __decorateClass$t([
9394
9549
  modernIdoc.property()
9395
9550
  ], BaseElement2DFill.prototype, "dpi");
9396
- __decorateClass$s([
9551
+ __decorateClass$t([
9397
9552
  modernIdoc.property()
9398
9553
  ], BaseElement2DFill.prototype, "rotateWithShape");
9399
- __decorateClass$s([
9554
+ __decorateClass$t([
9400
9555
  modernIdoc.property()
9401
9556
  ], BaseElement2DFill.prototype, "tile");
9402
- __decorateClass$s([
9557
+ __decorateClass$t([
9403
9558
  modernIdoc.property()
9404
9559
  ], BaseElement2DFill.prototype, "opacity");
9405
9560
 
9406
- var __defProp$k = Object.defineProperty;
9407
- var __decorateClass$r = (decorators, target, key, kind) => {
9561
+ var __defProp$l = Object.defineProperty;
9562
+ var __decorateClass$s = (decorators, target, key, kind) => {
9408
9563
  var result = void 0 ;
9409
9564
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9410
9565
  if (decorator = decorators[i])
9411
9566
  result = (decorator(target, key, result) ) || result;
9412
- if (result) __defProp$k(target, key, result);
9567
+ if (result) __defProp$l(target, key, result);
9413
9568
  return result;
9414
9569
  };
9415
9570
  class BaseElement2DBackground extends BaseElement2DFill {
@@ -9427,17 +9582,17 @@ class BaseElement2DBackground extends BaseElement2DFill {
9427
9582
  }
9428
9583
  }
9429
9584
  }
9430
- __decorateClass$r([
9585
+ __decorateClass$s([
9431
9586
  modernIdoc.property()
9432
9587
  ], BaseElement2DBackground.prototype, "fillWithShape");
9433
9588
 
9434
- var __defProp$j = Object.defineProperty;
9435
- var __decorateClass$q = (decorators, target, key, kind) => {
9589
+ var __defProp$k = Object.defineProperty;
9590
+ var __decorateClass$r = (decorators, target, key, kind) => {
9436
9591
  var result = void 0 ;
9437
9592
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9438
9593
  if (decorator = decorators[i])
9439
9594
  result = (decorator(target, key, result) ) || result;
9440
- if (result) __defProp$j(target, key, result);
9595
+ if (result) __defProp$k(target, key, result);
9441
9596
  return result;
9442
9597
  };
9443
9598
  class BaseElement2DForeground extends BaseElement2DFill {
@@ -9455,17 +9610,17 @@ class BaseElement2DForeground extends BaseElement2DFill {
9455
9610
  }
9456
9611
  }
9457
9612
  }
9458
- __decorateClass$q([
9613
+ __decorateClass$r([
9459
9614
  modernIdoc.property()
9460
9615
  ], BaseElement2DForeground.prototype, "fillWithShape");
9461
9616
 
9462
- var __defProp$i = Object.defineProperty;
9463
- var __decorateClass$p = (decorators, target, key, kind) => {
9617
+ var __defProp$j = Object.defineProperty;
9618
+ var __decorateClass$q = (decorators, target, key, kind) => {
9464
9619
  var result = void 0 ;
9465
9620
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9466
9621
  if (decorator = decorators[i])
9467
9622
  result = (decorator(target, key, result) ) || result;
9468
- if (result) __defProp$i(target, key, result);
9623
+ if (result) __defProp$j(target, key, result);
9469
9624
  return result;
9470
9625
  };
9471
9626
  class BaseElement2DOutline extends BaseElement2DFill {
@@ -9508,29 +9663,29 @@ class BaseElement2DOutline extends BaseElement2DFill {
9508
9663
  ctx.stroke({ disableWrapMode });
9509
9664
  }
9510
9665
  }
9511
- __decorateClass$p([
9666
+ __decorateClass$q([
9512
9667
  modernIdoc.property({ fallback: "#00000000" })
9513
9668
  ], BaseElement2DOutline.prototype, "color");
9514
- __decorateClass$p([
9669
+ __decorateClass$q([
9515
9670
  modernIdoc.property({ fallback: 0 })
9516
9671
  ], BaseElement2DOutline.prototype, "width");
9517
- __decorateClass$p([
9672
+ __decorateClass$q([
9518
9673
  modernIdoc.property({ fallback: "solid" })
9519
9674
  ], BaseElement2DOutline.prototype, "style");
9520
- __decorateClass$p([
9675
+ __decorateClass$q([
9521
9676
  modernIdoc.property({ fallback: "butt" })
9522
9677
  ], BaseElement2DOutline.prototype, "lineCap");
9523
- __decorateClass$p([
9678
+ __decorateClass$q([
9524
9679
  modernIdoc.property({ fallback: "miter" })
9525
9680
  ], BaseElement2DOutline.prototype, "lineJoin");
9526
9681
 
9527
- var __defProp$h = Object.defineProperty;
9528
- var __decorateClass$o = (decorators, target, key, kind) => {
9682
+ var __defProp$i = Object.defineProperty;
9683
+ var __decorateClass$p = (decorators, target, key, kind) => {
9529
9684
  var result = void 0 ;
9530
9685
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9531
9686
  if (decorator = decorators[i])
9532
9687
  result = (decorator(target, key, result) ) || result;
9533
- if (result) __defProp$h(target, key, result);
9688
+ if (result) __defProp$i(target, key, result);
9534
9689
  return result;
9535
9690
  };
9536
9691
  class BaseElement2DShadow extends CoreObject {
@@ -9570,29 +9725,29 @@ class BaseElement2DShadow extends CoreObject {
9570
9725
  }
9571
9726
  }
9572
9727
  }
9573
- __decorateClass$o([
9728
+ __decorateClass$p([
9574
9729
  modernIdoc.property({ fallback: true })
9575
9730
  ], BaseElement2DShadow.prototype, "enabled");
9576
- __decorateClass$o([
9731
+ __decorateClass$p([
9577
9732
  modernIdoc.property({ fallback: "#000000FF" })
9578
9733
  ], BaseElement2DShadow.prototype, "color");
9579
- __decorateClass$o([
9734
+ __decorateClass$p([
9580
9735
  modernIdoc.property({ fallback: 0 })
9581
9736
  ], BaseElement2DShadow.prototype, "blur");
9582
- __decorateClass$o([
9737
+ __decorateClass$p([
9583
9738
  modernIdoc.property({ fallback: 0 })
9584
9739
  ], BaseElement2DShadow.prototype, "offsetY");
9585
- __decorateClass$o([
9740
+ __decorateClass$p([
9586
9741
  modernIdoc.property({ fallback: 0 })
9587
9742
  ], BaseElement2DShadow.prototype, "offsetX");
9588
9743
 
9589
- var __defProp$g = Object.defineProperty;
9590
- var __decorateClass$n = (decorators, target, key, kind) => {
9744
+ var __defProp$h = Object.defineProperty;
9745
+ var __decorateClass$o = (decorators, target, key, kind) => {
9591
9746
  var result = void 0 ;
9592
9747
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9593
9748
  if (decorator = decorators[i])
9594
9749
  result = (decorator(target, key, result) ) || result;
9595
- if (result) __defProp$g(target, key, result);
9750
+ if (result) __defProp$h(target, key, result);
9596
9751
  return result;
9597
9752
  };
9598
9753
  class BaseElement2DShape extends CoreObject {
@@ -9667,19 +9822,19 @@ class BaseElement2DShape extends CoreObject {
9667
9822
  }
9668
9823
  }
9669
9824
  }
9670
- __decorateClass$n([
9825
+ __decorateClass$o([
9671
9826
  modernIdoc.property({ fallback: true })
9672
9827
  ], BaseElement2DShape.prototype, "enabled");
9673
- __decorateClass$n([
9828
+ __decorateClass$o([
9674
9829
  modernIdoc.property()
9675
9830
  ], BaseElement2DShape.prototype, "preset");
9676
- __decorateClass$n([
9831
+ __decorateClass$o([
9677
9832
  modernIdoc.property()
9678
9833
  ], BaseElement2DShape.prototype, "svg");
9679
- __decorateClass$n([
9834
+ __decorateClass$o([
9680
9835
  modernIdoc.property()
9681
9836
  ], BaseElement2DShape.prototype, "viewBox");
9682
- __decorateClass$n([
9837
+ __decorateClass$o([
9683
9838
  modernIdoc.property()
9684
9839
  ], BaseElement2DShape.prototype, "paths");
9685
9840
 
@@ -9695,13 +9850,13 @@ for (const key in defaultStyles$1) {
9695
9850
  modernIdoc.defineProperty(BaseElement2DStyle, key, { fallback });
9696
9851
  }
9697
9852
 
9698
- var __defProp$f = Object.defineProperty;
9699
- var __decorateClass$m = (decorators, target, key, kind) => {
9853
+ var __defProp$g = Object.defineProperty;
9854
+ var __decorateClass$n = (decorators, target, key, kind) => {
9700
9855
  var result = void 0 ;
9701
9856
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9702
9857
  if (decorator = decorators[i])
9703
9858
  result = (decorator(target, key, result) ) || result;
9704
- if (result) __defProp$f(target, key, result);
9859
+ if (result) __defProp$g(target, key, result);
9705
9860
  return result;
9706
9861
  };
9707
9862
  class BaseElement2DText extends CoreObject {
@@ -9881,38 +10036,43 @@ class BaseElement2DText extends CoreObject {
9881
10036
  ctx.stroke();
9882
10037
  }
9883
10038
  }
10039
+ } else {
10040
+ ctx.addPath(path);
10041
+ ctx.style = { ...path.style };
10042
+ ctx.vertTransform = this._getVertTransform();
10043
+ ctx.fill();
9884
10044
  }
9885
10045
  });
9886
10046
  });
9887
10047
  }
9888
10048
  }
9889
- __decorateClass$m([
10049
+ __decorateClass$n([
9890
10050
  modernIdoc.property({ fallback: true })
9891
10051
  ], BaseElement2DText.prototype, "enabled");
9892
- __decorateClass$m([
10052
+ __decorateClass$n([
9893
10053
  modernIdoc.property({ fallback: () => [] })
9894
10054
  ], BaseElement2DText.prototype, "content");
9895
- __decorateClass$m([
10055
+ __decorateClass$n([
9896
10056
  modernIdoc.property({ alias: "parent.style.json" })
9897
10057
  ], BaseElement2DText.prototype, "style");
9898
- __decorateClass$m([
10058
+ __decorateClass$n([
9899
10059
  modernIdoc.property()
9900
10060
  ], BaseElement2DText.prototype, "effects");
9901
- __decorateClass$m([
10061
+ __decorateClass$n([
9902
10062
  modernIdoc.property()
9903
10063
  ], BaseElement2DText.prototype, "fill");
9904
- __decorateClass$m([
10064
+ __decorateClass$n([
9905
10065
  modernIdoc.property()
9906
10066
  ], BaseElement2DText.prototype, "outline");
9907
- __decorateClass$m([
10067
+ __decorateClass$n([
9908
10068
  modernIdoc.property({ alias: "base.measureDom" })
9909
10069
  ], BaseElement2DText.prototype, "measureDom");
9910
- __decorateClass$m([
10070
+ __decorateClass$n([
9911
10071
  modernIdoc.property({ alias: "base.fonts" })
9912
10072
  ], BaseElement2DText.prototype, "fonts");
9913
10073
 
9914
10074
  var __getOwnPropDesc$k = Object.getOwnPropertyDescriptor;
9915
- var __decorateClass$l = (decorators, target, key, kind) => {
10075
+ var __decorateClass$m = (decorators, target, key, kind) => {
9916
10076
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target;
9917
10077
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
9918
10078
  if (decorator = decorators[i])
@@ -10080,6 +10240,13 @@ exports.BaseElement2D = class BaseElement2D extends exports.Node2D {
10080
10240
  break;
10081
10241
  }
10082
10242
  }
10243
+ _process(delta) {
10244
+ this.foreground.updateFrameIndex();
10245
+ this.fill.updateFrameIndex();
10246
+ this.outline.updateFrameIndex();
10247
+ this.background.updateFrameIndex();
10248
+ super._process(delta);
10249
+ }
10083
10250
  _updateMaskImage() {
10084
10251
  const nodePath = "__$style.maskImage";
10085
10252
  const maskImage = this.style.maskImage;
@@ -10325,7 +10492,7 @@ exports.BaseElement2D = class BaseElement2D extends exports.Node2D {
10325
10492
  });
10326
10493
  }
10327
10494
  };
10328
- exports.BaseElement2D = __decorateClass$l([
10495
+ exports.BaseElement2D = __decorateClass$m([
10329
10496
  customNode("BaseElement2D")
10330
10497
  ], exports.BaseElement2D);
10331
10498
 
@@ -10353,7 +10520,7 @@ class FlexElement2DStyle extends BaseElement2DStyle {
10353
10520
  }
10354
10521
 
10355
10522
  var __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;
10356
- var __decorateClass$k = (decorators, target, key, kind) => {
10523
+ var __decorateClass$l = (decorators, target, key, kind) => {
10357
10524
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;
10358
10525
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
10359
10526
  if (decorator = decorators[i])
@@ -10405,7 +10572,7 @@ exports.Element2D = class Element2D extends exports.BaseElement2D {
10405
10572
  }
10406
10573
  }
10407
10574
  };
10408
- exports.Element2D = __decorateClass$k([
10575
+ exports.Element2D = __decorateClass$l([
10409
10576
  customNode("Element2D")
10410
10577
  ], exports.Element2D);
10411
10578
 
@@ -10716,7 +10883,7 @@ class FlexLayout {
10716
10883
  }
10717
10884
 
10718
10885
  var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
10719
- var __decorateClass$j = (decorators, target, key, kind) => {
10886
+ var __decorateClass$k = (decorators, target, key, kind) => {
10720
10887
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;
10721
10888
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
10722
10889
  if (decorator = decorators[i])
@@ -10794,18 +10961,18 @@ exports.FlexElement2D = class FlexElement2D extends exports.BaseElement2D {
10794
10961
  }
10795
10962
  }
10796
10963
  };
10797
- exports.FlexElement2D = __decorateClass$j([
10964
+ exports.FlexElement2D = __decorateClass$k([
10798
10965
  customNode("FlexElement2D")
10799
10966
  ], exports.FlexElement2D);
10800
10967
 
10801
- var __defProp$e = Object.defineProperty;
10968
+ var __defProp$f = Object.defineProperty;
10802
10969
  var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
10803
- var __decorateClass$i = (decorators, target, key, kind) => {
10970
+ var __decorateClass$j = (decorators, target, key, kind) => {
10804
10971
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;
10805
10972
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
10806
10973
  if (decorator = decorators[i])
10807
10974
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10808
- if (kind && result) __defProp$e(target, key, result);
10975
+ if (kind && result) __defProp$f(target, key, result);
10809
10976
  return result;
10810
10977
  };
10811
10978
  exports.Image2D = class Image2D extends exports.Element2D {
@@ -10941,19 +11108,19 @@ exports.Image2D = class Image2D extends exports.Element2D {
10941
11108
  });
10942
11109
  }
10943
11110
  };
10944
- __decorateClass$i([
11111
+ __decorateClass$j([
10945
11112
  modernIdoc.property({ internal: true })
10946
11113
  ], exports.Image2D.prototype, "texture", 2);
10947
- __decorateClass$i([
11114
+ __decorateClass$j([
10948
11115
  modernIdoc.property({ fallback: "" })
10949
11116
  ], exports.Image2D.prototype, "src", 2);
10950
- __decorateClass$i([
11117
+ __decorateClass$j([
10951
11118
  modernIdoc.property()
10952
11119
  ], exports.Image2D.prototype, "srcRect", 2);
10953
- __decorateClass$i([
11120
+ __decorateClass$j([
10954
11121
  modernIdoc.property({ fallback: false })
10955
11122
  ], exports.Image2D.prototype, "gif", 2);
10956
- exports.Image2D = __decorateClass$i([
11123
+ exports.Image2D = __decorateClass$j([
10957
11124
  customNode("Image2D")
10958
11125
  ], exports.Image2D);
10959
11126
 
@@ -10977,14 +11144,14 @@ class TextureRect2D extends exports.Element2D {
10977
11144
  }
10978
11145
  }
10979
11146
 
10980
- var __defProp$d = Object.defineProperty;
11147
+ var __defProp$e = Object.defineProperty;
10981
11148
  var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
10982
- var __decorateClass$h = (decorators, target, key, kind) => {
11149
+ var __decorateClass$i = (decorators, target, key, kind) => {
10983
11150
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;
10984
11151
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
10985
11152
  if (decorator = decorators[i])
10986
11153
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10987
- if (kind && result) __defProp$d(target, key, result);
11154
+ if (kind && result) __defProp$e(target, key, result);
10988
11155
  return result;
10989
11156
  };
10990
11157
  exports.Lottie2D = class Lottie2D extends TextureRect2D {
@@ -11027,20 +11194,20 @@ exports.Lottie2D = class Lottie2D extends TextureRect2D {
11027
11194
  super._process(delta);
11028
11195
  }
11029
11196
  };
11030
- __decorateClass$h([
11197
+ __decorateClass$i([
11031
11198
  modernIdoc.property({ fallback: "" })
11032
11199
  ], exports.Lottie2D.prototype, "src", 2);
11033
- exports.Lottie2D = __decorateClass$h([
11200
+ exports.Lottie2D = __decorateClass$i([
11034
11201
  customNode("Lottie2D")
11035
11202
  ], exports.Lottie2D);
11036
11203
 
11037
- var __defProp$c = Object.defineProperty;
11038
- var __decorateClass$g = (decorators, target, key, kind) => {
11204
+ var __defProp$d = Object.defineProperty;
11205
+ var __decorateClass$h = (decorators, target, key, kind) => {
11039
11206
  var result = void 0 ;
11040
11207
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
11041
11208
  if (decorator = decorators[i])
11042
11209
  result = (decorator(target, key, result) ) || result;
11043
- if (result) __defProp$c(target, key, result);
11210
+ if (result) __defProp$d(target, key, result);
11044
11211
  return result;
11045
11212
  };
11046
11213
  class TransformRect2D extends exports.Element2D {
@@ -11086,18 +11253,18 @@ class TransformRect2D extends exports.Element2D {
11086
11253
  this._drawEllipse(width, height / 2);
11087
11254
  }
11088
11255
  }
11089
- __decorateClass$g([
11256
+ __decorateClass$h([
11090
11257
  modernIdoc.property({ fallback: 6 })
11091
11258
  ], TransformRect2D.prototype, "handleSize");
11092
11259
 
11093
- var __defProp$b = Object.defineProperty;
11260
+ var __defProp$c = Object.defineProperty;
11094
11261
  var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
11095
- var __decorateClass$f = (decorators, target, key, kind) => {
11262
+ var __decorateClass$g = (decorators, target, key, kind) => {
11096
11263
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
11097
11264
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
11098
11265
  if (decorator = decorators[i])
11099
11266
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11100
- if (kind && result) __defProp$b(target, key, result);
11267
+ if (kind && result) __defProp$c(target, key, result);
11101
11268
  return result;
11102
11269
  };
11103
11270
  exports.Video2D = class Video2D extends TextureRect2D {
@@ -11150,21 +11317,21 @@ exports.Video2D = class Video2D extends TextureRect2D {
11150
11317
  super._process(delta);
11151
11318
  }
11152
11319
  };
11153
- __decorateClass$f([
11320
+ __decorateClass$g([
11154
11321
  modernIdoc.property({ fallback: "" })
11155
11322
  ], exports.Video2D.prototype, "src", 2);
11156
- exports.Video2D = __decorateClass$f([
11323
+ exports.Video2D = __decorateClass$g([
11157
11324
  customNode("Video2D")
11158
11325
  ], exports.Video2D);
11159
11326
 
11160
- var __defProp$a = Object.defineProperty;
11327
+ var __defProp$b = Object.defineProperty;
11161
11328
  var __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;
11162
- var __decorateClass$e = (decorators, target, key, kind) => {
11329
+ var __decorateClass$f = (decorators, target, key, kind) => {
11163
11330
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;
11164
11331
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
11165
11332
  if (decorator = decorators[i])
11166
11333
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11167
- if (kind && result) __defProp$a(target, key, result);
11334
+ if (kind && result) __defProp$b(target, key, result);
11168
11335
  return result;
11169
11336
  };
11170
11337
  const linear = (amount) => amount;
@@ -11483,19 +11650,19 @@ exports.Animation = class Animation extends exports.TimelineNode {
11483
11650
  });
11484
11651
  }
11485
11652
  };
11486
- __decorateClass$e([
11653
+ __decorateClass$f([
11487
11654
  modernIdoc.property({ fallback: "parent" })
11488
11655
  ], exports.Animation.prototype, "effectMode", 2);
11489
- __decorateClass$e([
11656
+ __decorateClass$f([
11490
11657
  modernIdoc.property({ fallback: false })
11491
11658
  ], exports.Animation.prototype, "loop", 2);
11492
- __decorateClass$e([
11659
+ __decorateClass$f([
11493
11660
  modernIdoc.property({ default: () => [] })
11494
11661
  ], exports.Animation.prototype, "keyframes", 2);
11495
- __decorateClass$e([
11662
+ __decorateClass$f([
11496
11663
  modernIdoc.property()
11497
11664
  ], exports.Animation.prototype, "easing", 2);
11498
- exports.Animation = __decorateClass$e([
11665
+ exports.Animation = __decorateClass$f([
11499
11666
  customNode("Animation", {
11500
11667
  renderMode: "disabled",
11501
11668
  processMode: "pausable",
@@ -12376,10 +12543,10 @@ class WebAudio extends AudioPipeline {
12376
12543
  }
12377
12544
  }
12378
12545
 
12379
- var __defProp$9 = Object.defineProperty;
12546
+ var __defProp$a = Object.defineProperty;
12380
12547
  var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
12381
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12382
- var __decorateClass$d = (decorators, target, key, kind) => {
12548
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12549
+ var __decorateClass$e = (decorators, target, key, kind) => {
12383
12550
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
12384
12551
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12385
12552
  if (decorator = decorators[i])
@@ -12591,7 +12758,7 @@ exports.Audio = class Audio extends exports.TimelineNode {
12591
12758
  }
12592
12759
  };
12593
12760
  __publicField$4(exports.Audio, "_soundPool", []);
12594
- exports.Audio = __decorateClass$d([
12761
+ exports.Audio = __decorateClass$e([
12595
12762
  customNode("Audio")
12596
12763
  ], exports.Audio);
12597
12764
 
@@ -12599,14 +12766,14 @@ class AudioSpectrum extends exports.Node2D {
12599
12766
  //
12600
12767
  }
12601
12768
 
12602
- var __defProp$8 = Object.defineProperty;
12769
+ var __defProp$9 = Object.defineProperty;
12603
12770
  var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
12604
- var __decorateClass$c = (decorators, target, key, kind) => {
12771
+ var __decorateClass$d = (decorators, target, key, kind) => {
12605
12772
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
12606
12773
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12607
12774
  if (decorator = decorators[i])
12608
12775
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12609
- if (kind && result) __defProp$8(target, key, result);
12776
+ if (kind && result) __defProp$9(target, key, result);
12610
12777
  return result;
12611
12778
  };
12612
12779
  exports.AudioWaveform = class AudioWaveform extends exports.Element2D {
@@ -12697,21 +12864,21 @@ exports.AudioWaveform = class AudioWaveform extends exports.Element2D {
12697
12864
  }
12698
12865
  }
12699
12866
  };
12700
- __decorateClass$c([
12867
+ __decorateClass$d([
12701
12868
  modernIdoc.property()
12702
12869
  ], exports.AudioWaveform.prototype, "src", 2);
12703
- __decorateClass$c([
12870
+ __decorateClass$d([
12704
12871
  modernIdoc.property({ fallback: 0 })
12705
12872
  ], exports.AudioWaveform.prototype, "gap", 2);
12706
- __decorateClass$c([
12873
+ __decorateClass$d([
12707
12874
  modernIdoc.property({ fallback: "#000000" })
12708
12875
  ], exports.AudioWaveform.prototype, "color", 2);
12709
- exports.AudioWaveform = __decorateClass$c([
12876
+ exports.AudioWaveform = __decorateClass$d([
12710
12877
  customNode("AudioWaveform")
12711
12878
  ], exports.AudioWaveform);
12712
12879
 
12713
12880
  var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
12714
- var __decorateClass$b = (decorators, target, key, kind) => {
12881
+ var __decorateClass$c = (decorators, target, key, kind) => {
12715
12882
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
12716
12883
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12717
12884
  if (decorator = decorators[i])
@@ -12759,18 +12926,18 @@ exports.Control = class Control extends exports.Element2D {
12759
12926
  _guiInput(event, key) {
12760
12927
  }
12761
12928
  };
12762
- exports.Control = __decorateClass$b([
12929
+ exports.Control = __decorateClass$c([
12763
12930
  customNode("Control")
12764
12931
  ], exports.Control);
12765
12932
 
12766
- var __defProp$7 = Object.defineProperty;
12933
+ var __defProp$8 = Object.defineProperty;
12767
12934
  var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
12768
- var __decorateClass$a = (decorators, target, key, kind) => {
12935
+ var __decorateClass$b = (decorators, target, key, kind) => {
12769
12936
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
12770
12937
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12771
12938
  if (decorator = decorators[i])
12772
12939
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12773
- if (kind && result) __defProp$7(target, key, result);
12940
+ if (kind && result) __defProp$8(target, key, result);
12774
12941
  return result;
12775
12942
  };
12776
12943
  exports.Range = class Range extends exports.Control {
@@ -12793,39 +12960,39 @@ exports.Range = class Range extends exports.Control {
12793
12960
  }
12794
12961
  }
12795
12962
  };
12796
- __decorateClass$a([
12963
+ __decorateClass$b([
12797
12964
  modernIdoc.property({ fallback: false })
12798
12965
  ], exports.Range.prototype, "allowGreater", 2);
12799
- __decorateClass$a([
12966
+ __decorateClass$b([
12800
12967
  modernIdoc.property({ fallback: false })
12801
12968
  ], exports.Range.prototype, "allowLesser", 2);
12802
- __decorateClass$a([
12969
+ __decorateClass$b([
12803
12970
  modernIdoc.property({ fallback: 1 })
12804
12971
  ], exports.Range.prototype, "page", 2);
12805
- __decorateClass$a([
12972
+ __decorateClass$b([
12806
12973
  modernIdoc.property({ fallback: 0 })
12807
12974
  ], exports.Range.prototype, "minValue", 2);
12808
- __decorateClass$a([
12975
+ __decorateClass$b([
12809
12976
  modernIdoc.property({ fallback: 100 })
12810
12977
  ], exports.Range.prototype, "maxValue", 2);
12811
- __decorateClass$a([
12978
+ __decorateClass$b([
12812
12979
  modernIdoc.property({ fallback: 0.01 })
12813
12980
  ], exports.Range.prototype, "step", 2);
12814
- __decorateClass$a([
12981
+ __decorateClass$b([
12815
12982
  modernIdoc.property({ fallback: 0 })
12816
12983
  ], exports.Range.prototype, "value", 2);
12817
- exports.Range = __decorateClass$a([
12984
+ exports.Range = __decorateClass$b([
12818
12985
  customNode("Range")
12819
12986
  ], exports.Range);
12820
12987
 
12821
- var __defProp$6 = Object.defineProperty;
12988
+ var __defProp$7 = Object.defineProperty;
12822
12989
  var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
12823
- var __decorateClass$9 = (decorators, target, key, kind) => {
12990
+ var __decorateClass$a = (decorators, target, key, kind) => {
12824
12991
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
12825
12992
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12826
12993
  if (decorator = decorators[i])
12827
12994
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12828
- if (kind && result) __defProp$6(target, key, result);
12995
+ if (kind && result) __defProp$7(target, key, result);
12829
12996
  return result;
12830
12997
  };
12831
12998
  exports.Ruler = class Ruler extends exports.Control {
@@ -12973,45 +13140,45 @@ exports.Ruler = class Ruler extends exports.Control {
12973
13140
  }
12974
13141
  }
12975
13142
  };
12976
- __decorateClass$9([
13143
+ __decorateClass$a([
12977
13144
  modernIdoc.property({ fallback: 0 })
12978
13145
  ], exports.Ruler.prototype, "offsetX", 2);
12979
- __decorateClass$9([
13146
+ __decorateClass$a([
12980
13147
  modernIdoc.property({ fallback: 0 })
12981
13148
  ], exports.Ruler.prototype, "offsetY", 2);
12982
- __decorateClass$9([
13149
+ __decorateClass$a([
12983
13150
  modernIdoc.property({ fallback: 20 })
12984
13151
  ], exports.Ruler.prototype, "thickness", 2);
12985
- __decorateClass$9([
13152
+ __decorateClass$a([
12986
13153
  modernIdoc.property({ fallback: 3 })
12987
13154
  ], exports.Ruler.prototype, "markHeight", 2);
12988
- __decorateClass$9([
13155
+ __decorateClass$a([
12989
13156
  modernIdoc.property({ fallback: "#b2b6bc" })
12990
13157
  ], exports.Ruler.prototype, "color", 2);
12991
- __decorateClass$9([
13158
+ __decorateClass$a([
12992
13159
  modernIdoc.property({ fallback: "#f9f9fa" })
12993
13160
  ], exports.Ruler.prototype, "markBackgroundColor", 2);
12994
- __decorateClass$9([
13161
+ __decorateClass$a([
12995
13162
  modernIdoc.property({ fallback: "#b2b6bc" })
12996
13163
  ], exports.Ruler.prototype, "markColor", 2);
12997
- __decorateClass$9([
13164
+ __decorateClass$a([
12998
13165
  modernIdoc.property({ fallback: 300 })
12999
13166
  ], exports.Ruler.prototype, "gap", 2);
13000
- __decorateClass$9([
13167
+ __decorateClass$a([
13001
13168
  modernIdoc.property({ fallback: 1 })
13002
13169
  ], exports.Ruler.prototype, "gapScale", 2);
13003
- exports.Ruler = __decorateClass$9([
13170
+ exports.Ruler = __decorateClass$a([
13004
13171
  customNode("Ruler")
13005
13172
  ], exports.Ruler);
13006
13173
 
13007
- var __defProp$5 = Object.defineProperty;
13174
+ var __defProp$6 = Object.defineProperty;
13008
13175
  var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
13009
- var __decorateClass$8 = (decorators, target, key, kind) => {
13176
+ var __decorateClass$9 = (decorators, target, key, kind) => {
13010
13177
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
13011
13178
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13012
13179
  if (decorator = decorators[i])
13013
13180
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13014
- if (kind && result) __defProp$5(target, key, result);
13181
+ if (kind && result) __defProp$6(target, key, result);
13015
13182
  return result;
13016
13183
  };
13017
13184
  exports.ScrollBar = class ScrollBar extends exports.Range {
@@ -13070,15 +13237,15 @@ exports.ScrollBar = class ScrollBar extends exports.Range {
13070
13237
  return false;
13071
13238
  }
13072
13239
  };
13073
- __decorateClass$8([
13240
+ __decorateClass$9([
13074
13241
  modernIdoc.property({ fallback: "vertical" })
13075
13242
  ], exports.ScrollBar.prototype, "direction", 2);
13076
- exports.ScrollBar = __decorateClass$8([
13243
+ exports.ScrollBar = __decorateClass$9([
13077
13244
  customNode("ScrollBar")
13078
13245
  ], exports.ScrollBar);
13079
13246
 
13080
13247
  var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
13081
- var __decorateClass$7 = (decorators, target, key, kind) => {
13248
+ var __decorateClass$8 = (decorators, target, key, kind) => {
13082
13249
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
13083
13250
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13084
13251
  if (decorator = decorators[i])
@@ -13091,14 +13258,14 @@ exports.XScrollBar = class XScrollBar extends exports.ScrollBar {
13091
13258
  this.setProperties(properties).append(children);
13092
13259
  }
13093
13260
  };
13094
- exports.XScrollBar = __decorateClass$7([
13261
+ exports.XScrollBar = __decorateClass$8([
13095
13262
  customNode("XScrollBar", {
13096
13263
  direction: "horizontal"
13097
13264
  })
13098
13265
  ], exports.XScrollBar);
13099
13266
 
13100
13267
  var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
13101
- var __decorateClass$6 = (decorators, target, key, kind) => {
13268
+ var __decorateClass$7 = (decorators, target, key, kind) => {
13102
13269
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
13103
13270
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13104
13271
  if (decorator = decorators[i])
@@ -13111,20 +13278,20 @@ exports.YScrollBar = class YScrollBar extends exports.ScrollBar {
13111
13278
  this.setProperties(properties).append(children);
13112
13279
  }
13113
13280
  };
13114
- exports.YScrollBar = __decorateClass$6([
13281
+ exports.YScrollBar = __decorateClass$7([
13115
13282
  customNode("YScrollBar", {
13116
13283
  direction: "vertical"
13117
13284
  })
13118
13285
  ], exports.YScrollBar);
13119
13286
 
13120
- var __defProp$4 = Object.defineProperty;
13287
+ var __defProp$5 = Object.defineProperty;
13121
13288
  var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
13122
- var __decorateClass$5 = (decorators, target, key, kind) => {
13289
+ var __decorateClass$6 = (decorators, target, key, kind) => {
13123
13290
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
13124
13291
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13125
13292
  if (decorator = decorators[i])
13126
13293
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13127
- if (kind && result) __defProp$4(target, key, result);
13294
+ if (kind && result) __defProp$5(target, key, result);
13128
13295
  return result;
13129
13296
  };
13130
13297
  exports.Scaler = class Scaler extends exports.Node {
@@ -13185,32 +13352,32 @@ exports.Scaler = class Scaler extends exports.Node {
13185
13352
  }
13186
13353
  }
13187
13354
  };
13188
- __decorateClass$5([
13355
+ __decorateClass$6([
13189
13356
  modernIdoc.property({ default: 1 })
13190
13357
  ], exports.Scaler.prototype, "translateX", 2);
13191
- __decorateClass$5([
13358
+ __decorateClass$6([
13192
13359
  modernIdoc.property({ default: 1 })
13193
13360
  ], exports.Scaler.prototype, "translateY", 2);
13194
- __decorateClass$5([
13361
+ __decorateClass$6([
13195
13362
  modernIdoc.property({ default: 1 })
13196
13363
  ], exports.Scaler.prototype, "scale", 2);
13197
- __decorateClass$5([
13364
+ __decorateClass$6([
13198
13365
  modernIdoc.property({ default: 0.05 })
13199
13366
  ], exports.Scaler.prototype, "minScale", 2);
13200
- __decorateClass$5([
13367
+ __decorateClass$6([
13201
13368
  modernIdoc.property({ default: 10 })
13202
13369
  ], exports.Scaler.prototype, "maxScale", 2);
13203
- exports.Scaler = __decorateClass$5([
13370
+ exports.Scaler = __decorateClass$6([
13204
13371
  customNode("Scaler", {
13205
13372
  processMode: "disabled",
13206
13373
  renderMode: "disabled"
13207
13374
  })
13208
13375
  ], exports.Scaler);
13209
13376
 
13210
- var __defProp$3 = Object.defineProperty;
13377
+ var __defProp$4 = Object.defineProperty;
13211
13378
  var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
13212
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13213
- var __decorateClass$4 = (decorators, target, key, kind) => {
13379
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13380
+ var __decorateClass$5 = (decorators, target, key, kind) => {
13214
13381
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
13215
13382
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13216
13383
  if (decorator = decorators[i])
@@ -13299,14 +13466,14 @@ void main(void) {
13299
13466
  gl_FragColor = color;
13300
13467
  }`
13301
13468
  }));
13302
- exports.KawaseTransition = __decorateClass$4([
13469
+ exports.KawaseTransition = __decorateClass$5([
13303
13470
  customNode("KawaseTransition")
13304
13471
  ], exports.KawaseTransition);
13305
13472
 
13306
- var __defProp$2 = Object.defineProperty;
13473
+ var __defProp$3 = Object.defineProperty;
13307
13474
  var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
13308
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13309
- var __decorateClass$3 = (decorators, target, key, kind) => {
13475
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13476
+ var __decorateClass$4 = (decorators, target, key, kind) => {
13310
13477
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
13311
13478
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13312
13479
  if (decorator = decorators[i])
@@ -13352,14 +13519,14 @@ void main() {
13352
13519
  gl_FragColor = mix(src2Color, src1Color, mixPercent);
13353
13520
  }`
13354
13521
  }));
13355
- exports.LeftEraseTransition = __decorateClass$3([
13522
+ exports.LeftEraseTransition = __decorateClass$4([
13356
13523
  customNode("LeftEraseTransition")
13357
13524
  ], exports.LeftEraseTransition);
13358
13525
 
13359
- var __defProp$1 = Object.defineProperty;
13526
+ var __defProp$2 = Object.defineProperty;
13360
13527
  var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
13361
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13362
- var __decorateClass$2 = (decorators, target, key, kind) => {
13528
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13529
+ var __decorateClass$3 = (decorators, target, key, kind) => {
13363
13530
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
13364
13531
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13365
13532
  if (decorator = decorators[i])
@@ -13459,14 +13626,14 @@ void main(void) {
13459
13626
  gl_FragColor = color;
13460
13627
  }`
13461
13628
  }));
13462
- exports.TiltShiftTransition = __decorateClass$2([
13629
+ exports.TiltShiftTransition = __decorateClass$3([
13463
13630
  customNode("TiltShiftTransition")
13464
13631
  ], exports.TiltShiftTransition);
13465
13632
 
13466
- var __defProp = Object.defineProperty;
13633
+ var __defProp$1 = Object.defineProperty;
13467
13634
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
13468
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13469
- var __decorateClass$1 = (decorators, target, key, kind) => {
13635
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13636
+ var __decorateClass$2 = (decorators, target, key, kind) => {
13470
13637
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
13471
13638
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13472
13639
  if (decorator = decorators[i])
@@ -13553,7 +13720,7 @@ void main(void) {
13553
13720
  gl_FragColor = texture2D(sampler, coord);
13554
13721
  }`
13555
13722
  }));
13556
- exports.TwistTransition = __decorateClass$1([
13723
+ exports.TwistTransition = __decorateClass$2([
13557
13724
  customNode("TwistTransition")
13558
13725
  ], exports.TwistTransition);
13559
13726
 
@@ -13918,7 +14085,7 @@ class Assets {
13918
14085
  const assets = new Assets().use(new FontLoader()).use(new GifLoader()).use(new JsonLoader()).use(new LottieLoader()).use(new TextLoader()).use(new TextureLoader()).use(new VideoLoader());
13919
14086
 
13920
14087
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13921
- var __decorateClass = (decorators, target, key, kind) => {
14088
+ var __decorateClass$1 = (decorators, target, key, kind) => {
13922
14089
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13923
14090
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
13924
14091
  if (decorator = decorators[i])
@@ -14127,10 +14294,19 @@ exports.CanvasItemEditor = class CanvasItemEditor extends exports.Control {
14127
14294
  }
14128
14295
  }
14129
14296
  };
14130
- exports.CanvasItemEditor = __decorateClass([
14297
+ exports.CanvasItemEditor = __decorateClass$1([
14131
14298
  customNode("CanvasItemEditor")
14132
14299
  ], exports.CanvasItemEditor);
14133
14300
 
14301
+ var __defProp = Object.defineProperty;
14302
+ var __decorateClass = (decorators, target, key, kind) => {
14303
+ var result = void 0 ;
14304
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
14305
+ if (decorator = decorators[i])
14306
+ result = (decorator(target, key, result) ) || result;
14307
+ if (result) __defProp(target, key, result);
14308
+ return result;
14309
+ };
14134
14310
  const defaultOptions = {
14135
14311
  alpha: true,
14136
14312
  stencil: true,
@@ -14162,9 +14338,6 @@ class Engine extends SceneTree {
14162
14338
  set pixelRatio(val) {
14163
14339
  this.renderer.pixelRatio = val;
14164
14340
  this.resize(this.width, this.height);
14165
- if (this.view) {
14166
- this.view.dataset.pixelRatio = String(val);
14167
- }
14168
14341
  }
14169
14342
  _resizeObserver = SUPPORTS_RESIZE_OBSERVER ? new ResizeObserver((entries) => {
14170
14343
  const entry = entries[0];
@@ -14173,36 +14346,30 @@ class Engine extends SceneTree {
14173
14346
  this.resize(width, height);
14174
14347
  }
14175
14348
  }) : void 0;
14176
- constructor(options = {}) {
14349
+ constructor(properties = {}) {
14177
14350
  const {
14178
- debug = false,
14179
14351
  view,
14180
14352
  width,
14181
14353
  height,
14182
14354
  pixelRatio = DEVICE_PIXEL_RATIO,
14183
- backgroundColor = 0,
14184
- fonts,
14185
- autoResize,
14186
- autoStart,
14187
- timeline,
14188
- ...glOptions
14189
- } = options;
14190
- super(timeline);
14191
- this.debug = debug;
14355
+ autoResize
14356
+ } = properties;
14357
+ super();
14192
14358
  this.renderer = new WebGLRenderer(view, {
14193
- ...defaultOptions,
14194
- ...glOptions
14359
+ alpha: defaultOptions.alpha ?? properties.alpha,
14360
+ stencil: defaultOptions.stencil ?? properties.stencil,
14361
+ antialias: defaultOptions.antialias ?? properties.antialias,
14362
+ premultipliedAlpha: defaultOptions.premultipliedAlpha ?? properties.premultipliedAlpha,
14363
+ preserveDrawingBuffer: defaultOptions.preserveDrawingBuffer ?? properties.preserveDrawingBuffer,
14364
+ powerPreference: defaultOptions.powerPreference ?? properties.powerPreference
14195
14365
  });
14196
14366
  this._setupInput();
14197
14367
  this.pixelRatio = pixelRatio;
14198
- this.backgroundColor = backgroundColor;
14199
- this.fonts = fonts;
14200
14368
  if (autoResize) {
14201
14369
  if (!view && this.renderer.view) {
14202
14370
  this.renderer.view.style.width = "100%";
14203
14371
  this.renderer.view.style.height = "100%";
14204
14372
  }
14205
- this.enableAutoResize(autoResize);
14206
14373
  } else {
14207
14374
  this.resize(
14208
14375
  width || this.gl.drawingBufferWidth || this.view?.clientWidth || 200,
@@ -14210,7 +14377,26 @@ class Engine extends SceneTree {
14210
14377
  !view
14211
14378
  );
14212
14379
  }
14213
- autoStart && this.start();
14380
+ this.setProperties(properties);
14381
+ }
14382
+ _updateProperty(key, value, oldValue) {
14383
+ super._updateProperty(key, value, oldValue);
14384
+ switch (key) {
14385
+ case "autoResize":
14386
+ if (this.view) {
14387
+ if (this.autoResize) {
14388
+ this._resizeObserver?.observe(this.view);
14389
+ } else {
14390
+ this._resizeObserver?.unobserve(this.view);
14391
+ }
14392
+ }
14393
+ break;
14394
+ case "autoStart":
14395
+ if (this.autoStart) {
14396
+ this.start();
14397
+ }
14398
+ break;
14399
+ }
14214
14400
  }
14215
14401
  _setupInput() {
14216
14402
  if (this.view) {
@@ -14233,16 +14419,6 @@ class Engine extends SceneTree {
14233
14419
  }
14234
14420
  return this;
14235
14421
  }
14236
- enableAutoResize(enable = true) {
14237
- if (this.view) {
14238
- if (enable) {
14239
- this._resizeObserver?.observe(this.view);
14240
- } else {
14241
- this._resizeObserver?.unobserve(this.view);
14242
- }
14243
- }
14244
- return this;
14245
- }
14246
14422
  resize(width, height, updateCss = false) {
14247
14423
  this.renderer.resize(width, height, updateCss);
14248
14424
  this.root.width = width;
@@ -14275,11 +14451,6 @@ class Engine extends SceneTree {
14275
14451
  this._render(this.renderer);
14276
14452
  });
14277
14453
  }
14278
- destroy() {
14279
- super.destroy();
14280
- this.enableAutoResize(false);
14281
- this.renderer.destroy();
14282
- }
14283
14454
  toPixels() {
14284
14455
  return this.renderer.toPixels();
14285
14456
  }
@@ -14322,7 +14493,21 @@ class Engine extends SceneTree {
14322
14493
  }
14323
14494
  return canvas2;
14324
14495
  }
14496
+ destroy() {
14497
+ this._resizeObserver?.disconnect();
14498
+ this.renderer.destroy();
14499
+ super.destroy();
14500
+ }
14325
14501
  }
14502
+ __decorateClass([
14503
+ modernIdoc.property({ alias: "root.msaa" })
14504
+ ], Engine.prototype, "msaa");
14505
+ __decorateClass([
14506
+ modernIdoc.property({ fallback: false })
14507
+ ], Engine.prototype, "autoResize");
14508
+ __decorateClass([
14509
+ modernIdoc.property({ fallback: false })
14510
+ ], Engine.prototype, "autoStart");
14326
14511
 
14327
14512
  let engine;
14328
14513
  const queue = [];