@smoove/core 0.1.3 → 0.1.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/README.md +1 -1
- package/dist/engine/sequence.d.ts +20 -4
- package/dist/engine/sequence.d.ts.map +1 -1
- package/dist/engine/sequence.js +26 -6
- package/dist/engine/sequence.js.map +1 -1
- package/dist/layout/text/font.d.ts +11 -1
- package/dist/layout/text/font.d.ts.map +1 -1
- package/dist/layout/text/font.js +14 -2
- package/dist/layout/text/font.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ const comp = new Composition({
|
|
|
41
41
|
});
|
|
42
42
|
|
|
43
43
|
// A sequence covering the whole composition, like a "root" layer.
|
|
44
|
-
const main = new Sequence(
|
|
44
|
+
const main = new Sequence();
|
|
45
45
|
const circle = new Circle({ x: 100, y: 300, radius: 40, fill: "tomato" });
|
|
46
46
|
main.add(circle);
|
|
47
47
|
comp.add(main);
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import Konva from "konva";
|
|
2
2
|
export type SequenceOptions = Konva.LayerConfig & {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** Composition frame this sequence starts on. Defaults to `0`. */
|
|
4
|
+
from?: number;
|
|
5
|
+
/**
|
|
6
|
+
* How many frames the sequence spans. When omitted it defaults to the host
|
|
7
|
+
* composition's `durationInFrames` — i.e. a layer spanning the whole comp.
|
|
8
|
+
* Resolved live once added (see {@link Sequence.durationInFrames}).
|
|
9
|
+
*/
|
|
10
|
+
durationInFrames?: number;
|
|
5
11
|
};
|
|
6
12
|
export type Updater = (localFrame: number) => void;
|
|
7
13
|
/**
|
|
@@ -15,12 +21,22 @@ export type SequenceProvider = {
|
|
|
15
21
|
};
|
|
16
22
|
export declare class Sequence extends Konva.Layer {
|
|
17
23
|
readonly from: number;
|
|
18
|
-
|
|
24
|
+
/** Explicit span, or `undefined` to default to the host comp's duration. */
|
|
25
|
+
private readonly _durationInFrames?;
|
|
19
26
|
private readonly _updaters;
|
|
20
27
|
private _active;
|
|
21
28
|
private _media;
|
|
22
29
|
private _lastLocal;
|
|
23
|
-
constructor(opts
|
|
30
|
+
constructor(opts?: SequenceOptions);
|
|
31
|
+
/**
|
|
32
|
+
* Frames this sequence spans. When constructed without an explicit
|
|
33
|
+
* `durationInFrames`, this resolves **live** to the host composition's
|
|
34
|
+
* `durationInFrames` — a layer that spans the whole comp. Before the sequence
|
|
35
|
+
* is added to a composition (no reachable stage) it reports `Infinity`,
|
|
36
|
+
* meaning "unbounded"; `_apply` is only ever driven by the comp, so by then
|
|
37
|
+
* the real duration is reachable.
|
|
38
|
+
*/
|
|
39
|
+
get durationInFrames(): number;
|
|
24
40
|
register(updater: Updater): () => void;
|
|
25
41
|
/**
|
|
26
42
|
* Internal — called by Composition on each frame change.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,GAAG;IAChD,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,IAAI,QAAQ,EAAE,CAAA;CAAE,CAAC;AAQ3D,qBAAa,QAAS,SAAQ,KAAK,CAAC,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAmB;IAIjC,OAAO,CAAC,UAAU,CAAM;gBAEZ,IAAI,GAAE,eAAoB;IAkBtC;;;;;;;OAOG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAK7B;IAED,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI;IAOtC;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,IAAI;IAsC1C;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAOhB"}
|
package/dist/engine/sequence.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import Konva from "konva";
|
|
2
2
|
import { isKMLayoutRoot } from "../layout/contract.js";
|
|
3
3
|
import { MEDIA_MARK, TICK_MARK } from "../media/media-marker.js";
|
|
4
|
+
import { getComposition } from "./composition.js";
|
|
4
5
|
export class Sequence extends Konva.Layer {
|
|
5
6
|
from;
|
|
6
|
-
|
|
7
|
+
/** Explicit span, or `undefined` to default to the host comp's duration. */
|
|
8
|
+
_durationInFrames;
|
|
7
9
|
_updaters = new Set();
|
|
8
10
|
_active = false;
|
|
9
11
|
_media = [];
|
|
@@ -11,17 +13,35 @@ export class Sequence extends Konva.Layer {
|
|
|
11
13
|
// (updaters + layout + draw) when nothing about the playhead changed. `-1` is
|
|
12
14
|
// a sentinel that never equals a real local frame, so the first apply always runs.
|
|
13
15
|
_lastLocal = -1;
|
|
14
|
-
constructor(opts) {
|
|
15
|
-
|
|
16
|
+
constructor(opts = {}) {
|
|
17
|
+
const { from = 0, durationInFrames, ...layerOpts } = opts;
|
|
18
|
+
if (!Number.isInteger(from) || from < 0) {
|
|
16
19
|
throw new Error("Sequence: from must be a non-negative integer");
|
|
17
20
|
}
|
|
18
|
-
|
|
21
|
+
// durationInFrames is optional: when omitted it resolves to the host comp's
|
|
22
|
+
// duration (see the getter). Only validate an explicitly provided value.
|
|
23
|
+
if (durationInFrames !== undefined &&
|
|
24
|
+
(!Number.isInteger(durationInFrames) || durationInFrames <= 0)) {
|
|
19
25
|
throw new Error("Sequence: durationInFrames must be a positive integer");
|
|
20
26
|
}
|
|
21
|
-
const { from, durationInFrames, ...layerOpts } = opts;
|
|
22
27
|
super({ ...layerOpts, visible: false });
|
|
23
28
|
this.from = from;
|
|
24
|
-
this.
|
|
29
|
+
this._durationInFrames = durationInFrames;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Frames this sequence spans. When constructed without an explicit
|
|
33
|
+
* `durationInFrames`, this resolves **live** to the host composition's
|
|
34
|
+
* `durationInFrames` — a layer that spans the whole comp. Before the sequence
|
|
35
|
+
* is added to a composition (no reachable stage) it reports `Infinity`,
|
|
36
|
+
* meaning "unbounded"; `_apply` is only ever driven by the comp, so by then
|
|
37
|
+
* the real duration is reachable.
|
|
38
|
+
*/
|
|
39
|
+
get durationInFrames() {
|
|
40
|
+
if (this._durationInFrames !== undefined)
|
|
41
|
+
return this._durationInFrames;
|
|
42
|
+
const stage = this.getStage();
|
|
43
|
+
const comp = stage && getComposition(stage);
|
|
44
|
+
return comp ? comp.durationInFrames.get() : Number.POSITIVE_INFINITY;
|
|
25
45
|
}
|
|
26
46
|
register(updater) {
|
|
27
47
|
this._updaters.add(updater);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,10 +58,20 @@ export declare class Font extends Konva.Group {
|
|
|
58
58
|
constructor(config: FontConfig);
|
|
59
59
|
/** True once every face has finished loading. */
|
|
60
60
|
get isLoaded(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Load one face into the active text backend. The default delegates to
|
|
63
|
+
* {@link loadFontFace}: the browser `FontFace` API in preview, or the server
|
|
64
|
+
* renderer's loader under a headless render. Subclasses override this to
|
|
65
|
+
* change how a face loads (skip the fetch when the host page preloads fonts,
|
|
66
|
+
* route through an authenticated host, rewrite the `src`) while `load()`
|
|
67
|
+
* keeps the load-once promise, the `isLoaded` flag, and the composition's
|
|
68
|
+
* buffer gate.
|
|
69
|
+
*/
|
|
70
|
+
protected loadFace(face: FontFaceDescriptor): Promise<void>;
|
|
61
71
|
/**
|
|
62
72
|
* Load every face (environment-aware, deduped, idempotent). Returns the shared
|
|
63
73
|
* load promise; resolves even if a face fails (the error is logged) so a single
|
|
64
|
-
* bad face can't wedge playback.
|
|
74
|
+
* bad face can't wedge playback. Per-face loading goes through {@link loadFace}.
|
|
65
75
|
*/
|
|
66
76
|
load(): Promise<void>;
|
|
67
77
|
/** Resolves when the font has loaded — alias of {@link load} for {@link FontFaceRef}. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font.d.ts","sourceRoot":"","sources":["../../../src/layout/text/font.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,KAAK,kBAAkB,EAAgB,MAAM,kCAAkC,CAAC;AAGzF,8BAA8B;AAC9B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5D,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,sCAAsC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,gGAAgG;IAChG,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF,wEAAwE;AACxE,KAAK,YAAY,GAAG,kBAAkB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,2DAA2D;IAC3D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAgBF;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,KAAK,CAAC,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,UAAU;IA8B9B,iDAAiD;IACjD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,yFAAyF;IACzF,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B;;;;;;;OAOG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW;IAcpC,OAAO,CAAC,OAAO;IA0Bf,OAAO,CAAC,SAAS;IAIjB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAYpC,gGAAgG;IAChG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAQlC,gBAAgB;IAChB,aAAa,IAAI,IAAI;CACtB"}
|
|
1
|
+
{"version":3,"file":"font.d.ts","sourceRoot":"","sources":["../../../src/layout/text/font.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,KAAK,kBAAkB,EAAgB,MAAM,kCAAkC,CAAC;AAGzF,8BAA8B;AAC9B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5D,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,sCAAsC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,gGAAgG;IAChG,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF,wEAAwE;AACxE,KAAK,YAAY,GAAG,kBAAkB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,2DAA2D;IAC3D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAgBF;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,KAAK,CAAC,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,UAAU;IA8B9B,iDAAiD;IACjD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,yFAAyF;IACzF,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B;;;;;;;OAOG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW;IAcpC,OAAO,CAAC,OAAO;IA0Bf,OAAO,CAAC,SAAS;IAIjB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAYpC,gGAAgG;IAChG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAQlC,gBAAgB;IAChB,aAAa,IAAI,IAAI;CACtB"}
|
package/dist/layout/text/font.js
CHANGED
|
@@ -64,15 +64,27 @@ export class Font extends Konva.Group {
|
|
|
64
64
|
get isLoaded() {
|
|
65
65
|
return this._loaded;
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Load one face into the active text backend. The default delegates to
|
|
69
|
+
* {@link loadFontFace}: the browser `FontFace` API in preview, or the server
|
|
70
|
+
* renderer's loader under a headless render. Subclasses override this to
|
|
71
|
+
* change how a face loads (skip the fetch when the host page preloads fonts,
|
|
72
|
+
* route through an authenticated host, rewrite the `src`) while `load()`
|
|
73
|
+
* keeps the load-once promise, the `isLoaded` flag, and the composition's
|
|
74
|
+
* buffer gate.
|
|
75
|
+
*/
|
|
76
|
+
loadFace(face) {
|
|
77
|
+
return loadFontFace(this.family, face);
|
|
78
|
+
}
|
|
67
79
|
/**
|
|
68
80
|
* Load every face (environment-aware, deduped, idempotent). Returns the shared
|
|
69
81
|
* load promise; resolves even if a face fails (the error is logged) so a single
|
|
70
|
-
* bad face can't wedge playback.
|
|
82
|
+
* bad face can't wedge playback. Per-face loading goes through {@link loadFace}.
|
|
71
83
|
*/
|
|
72
84
|
load() {
|
|
73
85
|
if (this._loadPromise)
|
|
74
86
|
return this._loadPromise;
|
|
75
|
-
this._loadPromise = Promise.all(this.faces.map((f) =>
|
|
87
|
+
this._loadPromise = Promise.all(this.faces.map((f) => this.loadFace(f)))
|
|
76
88
|
.then(() => {
|
|
77
89
|
this._loaded = true;
|
|
78
90
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font.js","sourceRoot":"","sources":["../../../src/layout/text/font.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"font.js","sourceRoot":"","sources":["../../../src/layout/text/font.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED