modern-canvas 0.12.8 → 0.12.10

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
@@ -7152,7 +7152,7 @@ exports.Timeline = class Timeline extends exports.Node {
7152
7152
  }
7153
7153
  _process(delta) {
7154
7154
  super._process(delta);
7155
- if (!this.stoped) {
7155
+ if (!this.paused) {
7156
7156
  this.addTime(delta);
7157
7157
  }
7158
7158
  }
@@ -7171,7 +7171,7 @@ __decorateClass$H([
7171
7171
  ], exports.Timeline.prototype, "loop", 2);
7172
7172
  __decorateClass$H([
7173
7173
  modernIdoc.property({ fallback: false })
7174
- ], exports.Timeline.prototype, "stoped", 2);
7174
+ ], exports.Timeline.prototype, "paused", 2);
7175
7175
  exports.Timeline = __decorateClass$H([
7176
7176
  customNode("Timeline")
7177
7177
  ], exports.Timeline);
@@ -10335,7 +10335,7 @@ __decorateClass$f([
10335
10335
  modernIdoc.property({ alias: "base.fonts" })
10336
10336
  ], BaseElement2DText.prototype, "fonts");
10337
10337
  __decorateClass$f([
10338
- modernIdoc.property({ internal: true, fallback: "auto" })
10338
+ modernIdoc.property({ fallback: "auto" })
10339
10339
  ], BaseElement2DText.prototype, "drawMode");
10340
10340
 
10341
10341
  var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
@@ -14095,7 +14095,16 @@ async function start(sleep = 100) {
14095
14095
  starting = false;
14096
14096
  }
14097
14097
  async function task(options) {
14098
- const { debug = false, fonts, width, height, time = 0, data } = options;
14098
+ const {
14099
+ debug = false,
14100
+ fonts,
14101
+ width,
14102
+ height,
14103
+ data,
14104
+ keyframes = [],
14105
+ onBefore,
14106
+ onFrame
14107
+ } = options;
14099
14108
  engine ??= new Engine({
14100
14109
  pixelRatio: 1,
14101
14110
  width: 1,
@@ -14104,8 +14113,8 @@ async function task(options) {
14104
14113
  });
14105
14114
  engine.debug = debug;
14106
14115
  engine.fonts = fonts;
14116
+ engine.timeline.currentTime = 0;
14107
14117
  engine.root.removeChildren();
14108
- engine.timeline.currentTime = time;
14109
14118
  engine.resize(width, height, true);
14110
14119
  (Array.isArray(data) ? data : [data]).forEach((v) => {
14111
14120
  if (v instanceof exports.Node) {
@@ -14115,8 +14124,29 @@ async function task(options) {
14115
14124
  engine.root.appendChild(exports.Node.parse(v));
14116
14125
  }
14117
14126
  });
14118
- await options.onBeforeRender?.(engine);
14127
+ await onBefore?.(engine);
14119
14128
  await engine.waitAndRender();
14129
+ await new Promise((resolve) => {
14130
+ let i = 0;
14131
+ const len = keyframes.length;
14132
+ const last = keyframes[len - 1];
14133
+ async function handle() {
14134
+ if (i === len)
14135
+ return resolve();
14136
+ const currentTime = keyframes[i++];
14137
+ const next = keyframes[i] || currentTime;
14138
+ const duration = next - currentTime;
14139
+ engine.timeline.currentTime = currentTime;
14140
+ engine.render();
14141
+ await onFrame?.(engine.toPixels(), {
14142
+ currentTime,
14143
+ duration,
14144
+ progress: currentTime / last
14145
+ });
14146
+ requestAnimationFrame(handle);
14147
+ }
14148
+ handle();
14149
+ });
14120
14150
  return engine.toCanvas2D();
14121
14151
  }
14122
14152
  async function render(options) {
package/dist/index.d.cts CHANGED
@@ -1554,7 +1554,7 @@ interface TimelineProperties extends NodeProperties {
1554
1554
  currentTime: number;
1555
1555
  endTime: number;
1556
1556
  loop: boolean;
1557
- stoped: boolean;
1557
+ paused: boolean;
1558
1558
  }
1559
1559
  interface Timeline {
1560
1560
  on: <K extends keyof TimelineEvents & string>(event: K, listener: (...args: TimelineEvents[K]) => void) => this;
@@ -1567,7 +1567,7 @@ declare class Timeline extends Node {
1567
1567
  currentTime: number;
1568
1568
  endTime: number;
1569
1569
  loop: boolean;
1570
- stoped: boolean;
1570
+ paused: boolean;
1571
1571
  static from(range: number | number[], loop?: boolean): Timeline;
1572
1572
  constructor(properties?: Partial<TimelineProperties>);
1573
1573
  protected _updateProperty(key: string, value: any, oldValue: any): void;
@@ -3256,9 +3256,14 @@ interface RenderOptions {
3256
3256
  width: number;
3257
3257
  height: number;
3258
3258
  debug?: boolean;
3259
- time?: number;
3260
3259
  fonts?: Fonts;
3261
- onBeforeRender?: (engine: Engine) => void | Promise<void>;
3260
+ keyframes?: number[];
3261
+ onBefore?: (engine: Engine) => void | Promise<void>;
3262
+ onFrame?: (frame: Uint8ClampedArray, ctx: {
3263
+ currentTime: number;
3264
+ duration: number;
3265
+ progress: number;
3266
+ }) => Promise<void>;
3262
3267
  }
3263
3268
  declare function render(options: RenderOptions): Promise<HTMLCanvasElement>;
3264
3269
 
package/dist/index.d.mts CHANGED
@@ -1554,7 +1554,7 @@ interface TimelineProperties extends NodeProperties {
1554
1554
  currentTime: number;
1555
1555
  endTime: number;
1556
1556
  loop: boolean;
1557
- stoped: boolean;
1557
+ paused: boolean;
1558
1558
  }
1559
1559
  interface Timeline {
1560
1560
  on: <K extends keyof TimelineEvents & string>(event: K, listener: (...args: TimelineEvents[K]) => void) => this;
@@ -1567,7 +1567,7 @@ declare class Timeline extends Node {
1567
1567
  currentTime: number;
1568
1568
  endTime: number;
1569
1569
  loop: boolean;
1570
- stoped: boolean;
1570
+ paused: boolean;
1571
1571
  static from(range: number | number[], loop?: boolean): Timeline;
1572
1572
  constructor(properties?: Partial<TimelineProperties>);
1573
1573
  protected _updateProperty(key: string, value: any, oldValue: any): void;
@@ -3256,9 +3256,14 @@ interface RenderOptions {
3256
3256
  width: number;
3257
3257
  height: number;
3258
3258
  debug?: boolean;
3259
- time?: number;
3260
3259
  fonts?: Fonts;
3261
- onBeforeRender?: (engine: Engine) => void | Promise<void>;
3260
+ keyframes?: number[];
3261
+ onBefore?: (engine: Engine) => void | Promise<void>;
3262
+ onFrame?: (frame: Uint8ClampedArray, ctx: {
3263
+ currentTime: number;
3264
+ duration: number;
3265
+ progress: number;
3266
+ }) => Promise<void>;
3262
3267
  }
3263
3268
  declare function render(options: RenderOptions): Promise<HTMLCanvasElement>;
3264
3269
 
package/dist/index.d.ts CHANGED
@@ -1554,7 +1554,7 @@ interface TimelineProperties extends NodeProperties {
1554
1554
  currentTime: number;
1555
1555
  endTime: number;
1556
1556
  loop: boolean;
1557
- stoped: boolean;
1557
+ paused: boolean;
1558
1558
  }
1559
1559
  interface Timeline {
1560
1560
  on: <K extends keyof TimelineEvents & string>(event: K, listener: (...args: TimelineEvents[K]) => void) => this;
@@ -1567,7 +1567,7 @@ declare class Timeline extends Node {
1567
1567
  currentTime: number;
1568
1568
  endTime: number;
1569
1569
  loop: boolean;
1570
- stoped: boolean;
1570
+ paused: boolean;
1571
1571
  static from(range: number | number[], loop?: boolean): Timeline;
1572
1572
  constructor(properties?: Partial<TimelineProperties>);
1573
1573
  protected _updateProperty(key: string, value: any, oldValue: any): void;
@@ -3256,9 +3256,14 @@ interface RenderOptions {
3256
3256
  width: number;
3257
3257
  height: number;
3258
3258
  debug?: boolean;
3259
- time?: number;
3260
3259
  fonts?: Fonts;
3261
- onBeforeRender?: (engine: Engine) => void | Promise<void>;
3260
+ keyframes?: number[];
3261
+ onBefore?: (engine: Engine) => void | Promise<void>;
3262
+ onFrame?: (frame: Uint8ClampedArray, ctx: {
3263
+ currentTime: number;
3264
+ duration: number;
3265
+ progress: number;
3266
+ }) => Promise<void>;
3262
3267
  }
3263
3268
  declare function render(options: RenderOptions): Promise<HTMLCanvasElement>;
3264
3269