@neta-art/cohub 11.0.0 → 11.1.0
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 +31 -5
- package/dist/board/editor/creation.d.ts +2 -2
- package/dist/board/editor/creation.js +3 -3
- package/dist/board/editor/editor.d.ts +4 -4
- package/dist/board/editor/editor.js +1 -1
- package/dist/board/editor/index.d.ts +2 -2
- package/dist/board/editor/interaction.d.ts +8 -2
- package/dist/board/editor/interaction.js +34 -1
- package/dist/board/editor/snapshots.d.ts +0 -2
- package/dist/board/editor/snapshots.js +4 -20
- package/dist/board/export/scene.js +4 -1
- package/dist/board/model/image-key.js +1 -1
- package/dist/board/model/index.d.ts +8 -7
- package/dist/board/model/index.js +6 -5
- package/dist/board/model/items/create.d.ts +16 -3
- package/dist/board/model/items/create.js +125 -5
- package/dist/board/model/items/index.d.ts +2 -2
- package/dist/board/model/items/index.js +2 -2
- package/dist/board/model/media-playback.js +1 -1
- package/dist/board/model/overlay-placement.d.ts +25 -0
- package/dist/board/model/overlay-placement.js +35 -0
- package/dist/board/model/replay.d.ts +1 -1
- package/dist/board/model/replay.js +1 -0
- package/dist/board/model/script-hit.d.ts +20 -3
- package/dist/board/model/script-hit.js +81 -24
- package/dist/board/model/script-observers.d.ts +18 -0
- package/dist/board/model/script-observers.js +92 -0
- package/dist/board/model/script-scene.d.ts +1 -1
- package/dist/board/model/script-scene.js +35 -8
- package/dist/board/model/script.d.ts +51 -7
- package/dist/board/render/board-background.js +5 -4
- package/dist/board/render/index.d.ts +2 -2
- package/dist/board/render/index.js +2 -2
- package/dist/board/render/media-interaction.js +1 -1
- package/dist/board/render/renderers/board-renderer-registry.d.ts +17 -2
- package/dist/board/render/renderers/board-renderer-registry.js +8 -1
- package/dist/board/render/renderers/custom-card-renderer.js +2 -1
- package/dist/board/render/renderers/task-card-renderer.d.ts +2 -1
- package/dist/board/render/renderers/task-card-renderer.js +220 -71
- package/dist/board/render/script-host.d.ts +1 -1
- package/dist/board/render/script-host.js +53 -28
- package/dist/board/render/script-runtime.js +13 -3
- package/dist/board/render/script-texture.d.ts +11 -0
- package/dist/board/render/script-texture.js +33 -0
- package/dist/board/stage/assets.js +1 -1
- package/dist/board/stage/scene.d.ts +2 -0
- package/dist/board/stage/scene.js +17 -1
- package/dist/board/stage/script-pointer.d.ts +1 -0
- package/dist/board/stage/script-pointer.js +8 -2
- package/dist/board/stage/stage.d.ts +11 -3
- package/dist/board/stage/stage.js +118 -21
- package/dist/chunks/environment.d.ts +40 -5
- package/dist/chunks/environment.js +12 -4
- package/dist/chunks/http.d.ts +3 -1
- package/dist/chunks/http.js +2 -1
- package/dist/chunks/transport.js +1 -1
- package/dist/chunks/websocket.d.ts +1 -1
- package/dist/http.d.ts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +151 -139
- package/dist/protocol/dist/board-model.d.ts +36 -1
- package/dist/protocol/dist/board-model.js +14 -4
- package/dist/protocol/dist/board-task.d.ts +22 -0
- package/dist/{board/model/task.js → protocol/dist/board-task.js} +34 -7
- package/dist/protocol/dist/generation/blocks.d.ts +8 -0
- package/dist/{generation-blocks.js → protocol/dist/generation/blocks.js} +14 -15
- package/dist/protocol/dist/index.d.ts +5 -2
- package/dist/protocol/dist/task/index.d.ts +4 -0
- package/package.json +1 -1
- package/dist/board/model/task.d.ts +0 -11
- package/dist/types.d.ts +0 -36
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import { BoardItem, BoardPatch, BoardScript, BoardVec2 } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../protocol/dist/index.js";
|
|
3
3
|
//#region src/board/model/script.d.ts
|
|
4
|
+
type BoardScriptView = {
|
|
5
|
+
camera: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
zoom: number;
|
|
9
|
+
};
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
safeRect: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
type BoardScriptAnchor = {
|
|
20
|
+
item: string;
|
|
21
|
+
point?: BoardVec2;
|
|
22
|
+
};
|
|
23
|
+
type BoardScriptSceneOptions = {
|
|
24
|
+
space?: "world" | "screen";
|
|
25
|
+
anchor?: BoardScriptAnchor;
|
|
26
|
+
};
|
|
4
27
|
type BoardScriptEvent = {
|
|
5
28
|
type: string;
|
|
6
29
|
target?: string;
|
|
@@ -17,6 +40,22 @@ type BoardScriptEvent = {
|
|
|
17
40
|
metaKey?: boolean;
|
|
18
41
|
data?: unknown;
|
|
19
42
|
};
|
|
43
|
+
type BoardScriptHostEvents = {
|
|
44
|
+
viewchange: BoardScriptView;
|
|
45
|
+
selectionchange: {
|
|
46
|
+
ids: string[];
|
|
47
|
+
};
|
|
48
|
+
transformend: {
|
|
49
|
+
ids: string[];
|
|
50
|
+
operation: "move" | "resize" | "rotate" | "arrow";
|
|
51
|
+
cancelled: boolean;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
type BoardScriptEventOf<Type extends string> = BoardScriptEvent & {
|
|
55
|
+
type: Type;
|
|
56
|
+
} & (Type extends keyof BoardScriptHostEvents ? {
|
|
57
|
+
data: BoardScriptHostEvents[Type];
|
|
58
|
+
} : unknown);
|
|
20
59
|
type BoardScriptFrame = {
|
|
21
60
|
t: number;
|
|
22
61
|
dt: number;
|
|
@@ -33,11 +72,16 @@ type BoardScriptItemPatch = Partial<Pick<BoardItem, "position" | "scale" | "rota
|
|
|
33
72
|
};
|
|
34
73
|
props?: Record<string, unknown>;
|
|
35
74
|
};
|
|
36
|
-
type BoardScriptHit = {
|
|
75
|
+
type BoardScriptHit = ({
|
|
37
76
|
x: number;
|
|
38
77
|
y: number;
|
|
39
78
|
width: number;
|
|
40
79
|
height: number;
|
|
80
|
+
} | {
|
|
81
|
+
target: "self";
|
|
82
|
+
} | {
|
|
83
|
+
item: string;
|
|
84
|
+
}) & {
|
|
41
85
|
label?: string;
|
|
42
86
|
cursor?: string;
|
|
43
87
|
};
|
|
@@ -46,7 +90,7 @@ type BoardScriptSnapshot = {
|
|
|
46
90
|
time: number;
|
|
47
91
|
random: number;
|
|
48
92
|
configuration?: string;
|
|
49
|
-
effects?: Pick<BoardScriptOutput, "patches" | "items" | "hits" | "space">;
|
|
93
|
+
effects?: Pick<BoardScriptOutput, "patches" | "items" | "hits" | "space" | "anchor">;
|
|
50
94
|
};
|
|
51
95
|
type BoardScriptParameter = {
|
|
52
96
|
type: "number" | "boolean" | "string" | "color";
|
|
@@ -59,6 +103,7 @@ type BoardScriptParameter = {
|
|
|
59
103
|
type BoardScriptOutput = {
|
|
60
104
|
parameters?: Record<string, BoardScriptParameter>;
|
|
61
105
|
space?: "world" | "screen";
|
|
106
|
+
anchor?: BoardScriptAnchor;
|
|
62
107
|
patches: Record<string, Record<string, unknown>>;
|
|
63
108
|
items: Record<string, unknown>;
|
|
64
109
|
hits: Record<string, BoardScriptHit>;
|
|
@@ -78,16 +123,15 @@ type BoardScriptContext = {
|
|
|
78
123
|
emit(target: string, type: string, data?: unknown): Promise<void>;
|
|
79
124
|
readonly state: Record<string, unknown>;
|
|
80
125
|
readonly frame: BoardScriptFrame;
|
|
126
|
+
readonly view: BoardScriptView | null;
|
|
81
127
|
random(): number;
|
|
82
|
-
on(type:
|
|
128
|
+
on<Type extends string>(type: Type, handler: (event: BoardScriptEventOf<Type>) => void): () => void;
|
|
83
129
|
onFrame(handler: (frame: BoardScriptFrame) => void): () => void;
|
|
84
130
|
onDispose(handler: () => void): void;
|
|
85
131
|
invalidate(): void;
|
|
86
132
|
get(id: string): BoardItem | undefined;
|
|
87
133
|
present(id: string, patch: BoardScriptItemPatch | null): void;
|
|
88
|
-
scene(items: Record<string, unknown>, options?:
|
|
89
|
-
space?: "world" | "screen";
|
|
90
|
-
}): void;
|
|
134
|
+
scene(items: Record<string, unknown>, options?: BoardScriptSceneOptions): void;
|
|
91
135
|
hitRegions(hits: Record<string, BoardScriptHit>): void;
|
|
92
136
|
commit(patch: BoardPatch): Promise<void>;
|
|
93
137
|
capabilities: {
|
|
@@ -102,4 +146,4 @@ type BoardScriptModule = {
|
|
|
102
146
|
animated?: boolean;
|
|
103
147
|
};
|
|
104
148
|
//#endregion
|
|
105
|
-
export { BoardScriptContext, BoardScriptEvent, BoardScriptFrame, BoardScriptHit, BoardScriptItemPatch, BoardScriptModule, BoardScriptOutput, BoardScriptParameter, BoardScriptSnapshot };
|
|
149
|
+
export { BoardScriptAnchor, BoardScriptContext, BoardScriptEvent, BoardScriptEventOf, BoardScriptFrame, BoardScriptHit, BoardScriptHostEvents, BoardScriptItemPatch, BoardScriptModule, BoardScriptOutput, BoardScriptParameter, BoardScriptSceneOptions, BoardScriptSnapshot, BoardScriptView };
|
|
@@ -12,7 +12,7 @@ function buildGridTexture(context, size, color, opacity, kind) {
|
|
|
12
12
|
width: 1,
|
|
13
13
|
alpha: opacity
|
|
14
14
|
});
|
|
15
|
-
else graphics.circle(
|
|
15
|
+
else graphics.circle(size / 2, size / 2, 1.1).fill({
|
|
16
16
|
color,
|
|
17
17
|
alpha: opacity
|
|
18
18
|
});
|
|
@@ -49,8 +49,9 @@ function sync(parts, context) {
|
|
|
49
49
|
const kind = settings.background.kind === "grid" ? "grid" : "dots";
|
|
50
50
|
const visible = settings.grid?.visible === true;
|
|
51
51
|
const size = Math.max(4, settings.grid?.size ?? 24);
|
|
52
|
-
const
|
|
53
|
-
const
|
|
52
|
+
const color = kind === "grid" ? palette.border : palette.muted;
|
|
53
|
+
const opacity = kind === "grid" ? .9 : .4;
|
|
54
|
+
const key = `${kind}|${size}|${color}|${opacity}`;
|
|
54
55
|
if (!visible) {
|
|
55
56
|
if (parts.sprite) parts.sprite.visible = false;
|
|
56
57
|
return;
|
|
@@ -61,7 +62,7 @@ function sync(parts, context) {
|
|
|
61
62
|
parts.sprite.destroy();
|
|
62
63
|
previousTexture.destroy(true);
|
|
63
64
|
}
|
|
64
|
-
const texture = buildGridTexture(context, size,
|
|
65
|
+
const texture = buildGridTexture(context, size, color, opacity, kind);
|
|
65
66
|
parts.sprite = new TilingSprite({
|
|
66
67
|
texture,
|
|
67
68
|
width,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoardCardRenderer, BoardCardRendererResolver, BoardRenderContext, BoardRenderPalette, BoardScriptHost, createBoardCardRendererResolver, getBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
1
|
+
import { BoardCardRenderer, BoardCardRendererResolver, BoardRenderContext, BoardRenderLabels, BoardRenderPalette, BoardScriptHost, DEFAULT_BOARD_RENDER_LABELS, createBoardCardRendererResolver, getBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
2
2
|
import { createBoardRenderSampler } from "./sampling.js";
|
|
3
3
|
import { BoardRenderDiagnostic, inspectBoardScene, measureBoardText } from "./diagnostics.js";
|
|
4
4
|
import { BoardBackgroundContext, createBoardBackground, updateBoardBackground } from "./board-background.js";
|
|
@@ -14,4 +14,4 @@ import { TASK_CARD_FULL_DETAIL_ZOOM } from "./renderers/task-card-renderer.js";
|
|
|
14
14
|
import { BOARD_FONT_STACKS, ensureBoardTextMeasurement, installBoardTextMeasurement } from "./text-measurement.js";
|
|
15
15
|
import { getBoardResolution, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket } from "./text-resolution.js";
|
|
16
16
|
import { VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, loadVideoThumbnailTexture, videoTextureNaturalSize, videoThumbnailSize } from "./video-thumbnail.js";
|
|
17
|
-
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, BoardBackgroundContext, BoardCardRenderer, BoardCardRendererResolver, BoardCssPaint, BoardMediaAction, BoardRenderContext, BoardRenderDiagnostic, BoardRenderPalette, BoardScriptHost, BoardScriptHostOptions, BrowserBoardScriptHost, ClipGroup, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, boardMediaActionAt, clippingAncestor, createBoardBackground, createBoardCardRendererResolver, createBoardRenderSampler, createBoardScriptHost, dashPattern, defaultBoardPalette, endAngle, ensureBoardTextMeasurement, getBoardCardRenderer, getBoardResolution, inspectBoardScene, installBoardTextMeasurement, isClippingFrame, itemAlpha, itemColor, loadVideoThumbnailTexture, measureBoardText, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, parseBoardCssPaint, prepareBrowserBoardScripts, roundRectPoints, syncClipGroup, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, traceArrowhead, traceFrameOutline, tracePolyline, trimPolyline, updateBoardBackground, videoTextureNaturalSize, videoThumbnailSize };
|
|
17
|
+
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, BoardBackgroundContext, BoardCardRenderer, BoardCardRendererResolver, BoardCssPaint, BoardMediaAction, BoardRenderContext, BoardRenderDiagnostic, BoardRenderLabels, BoardRenderPalette, BoardScriptHost, BoardScriptHostOptions, BrowserBoardScriptHost, ClipGroup, DEFAULT_BOARD_RENDER_LABELS, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, boardMediaActionAt, clippingAncestor, createBoardBackground, createBoardCardRendererResolver, createBoardRenderSampler, createBoardScriptHost, dashPattern, defaultBoardPalette, endAngle, ensureBoardTextMeasurement, getBoardCardRenderer, getBoardResolution, inspectBoardScene, installBoardTextMeasurement, isClippingFrame, itemAlpha, itemColor, loadVideoThumbnailTexture, measureBoardText, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, parseBoardCssPaint, prepareBrowserBoardScripts, roundRectPoints, syncClipGroup, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, traceArrowhead, traceFrameOutline, tracePolyline, trimPolyline, updateBoardBackground, videoTextureNaturalSize, videoThumbnailSize };
|
|
@@ -10,8 +10,8 @@ import { TASK_CARD_FULL_DETAIL_ZOOM } from "./renderers/task-card-renderer.js";
|
|
|
10
10
|
import { boardMediaActionAt, mediaPlayBadgeHit, mediaPlayBadgeVisible } from "./media-interaction.js";
|
|
11
11
|
import { dashPattern, endAngle, roundRectPoints, traceArrowhead, tracePolyline, trimPolyline } from "./stroke.js";
|
|
12
12
|
import { BOARD_EFFECT_MAX_PARTICLES } from "./renderers/effect-card-renderer.js";
|
|
13
|
-
import { createBoardCardRendererResolver, getBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
13
|
+
import { DEFAULT_BOARD_RENDER_LABELS, createBoardCardRendererResolver, getBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
14
14
|
import { createBoardScriptHost } from "./script-host.js";
|
|
15
15
|
import { prepareBrowserBoardScripts } from "./script-export.js";
|
|
16
16
|
import { VIDEO_THUMBNAIL_MAX_EDGE, loadVideoThumbnailTexture, videoTextureNaturalSize, videoThumbnailSize } from "./video-thumbnail.js";
|
|
17
|
-
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, boardMediaActionAt, clippingAncestor, createBoardBackground, createBoardCardRendererResolver, createBoardRenderSampler, createBoardScriptHost, dashPattern, defaultBoardPalette, endAngle, ensureBoardTextMeasurement, getBoardCardRenderer, getBoardResolution, inspectBoardScene, installBoardTextMeasurement, isClippingFrame, itemAlpha, itemColor, loadVideoThumbnailTexture, measureBoardText, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, parseBoardCssPaint, prepareBrowserBoardScripts, roundRectPoints, syncClipGroup, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, traceArrowhead, traceFrameOutline, tracePolyline, trimPolyline, updateBoardBackground, videoTextureNaturalSize, videoThumbnailSize };
|
|
17
|
+
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, DEFAULT_BOARD_RENDER_LABELS, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, boardMediaActionAt, clippingAncestor, createBoardBackground, createBoardCardRendererResolver, createBoardRenderSampler, createBoardScriptHost, dashPattern, defaultBoardPalette, endAngle, ensureBoardTextMeasurement, getBoardCardRenderer, getBoardResolution, inspectBoardScene, installBoardTextMeasurement, isClippingFrame, itemAlpha, itemColor, loadVideoThumbnailTexture, measureBoardText, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, parseBoardCssPaint, prepareBrowserBoardScripts, roundRectPoints, syncClipGroup, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, traceArrowhead, traceFrameOutline, tracePolyline, trimPolyline, updateBoardBackground, videoTextureNaturalSize, videoThumbnailSize };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { featuredTaskArtifact } from "
|
|
1
|
+
import { featuredTaskArtifact } from "../../protocol/dist/board-task.js";
|
|
2
2
|
import "./renderers/task-card-renderer.js";
|
|
3
3
|
//#region src/board/render/media-interaction.ts
|
|
4
4
|
function mediaPlayBadgeVisible(item, zoom, options) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoardCustomItem, BoardDocument, BoardSettings } from "../../../protocol/dist/board-model.js";
|
|
1
|
+
import { BoardCustomItem, BoardDocument, BoardSettings, BoardTaskItem } from "../../../protocol/dist/board-model.js";
|
|
2
2
|
import { BoardFrame } from "../../../protocol/dist/board-layout.js";
|
|
3
3
|
import "../../../protocol/dist/index.js";
|
|
4
4
|
import { BoardScene, BoardSceneItem, SceneItem } from "../../model/scene.js";
|
|
@@ -25,6 +25,14 @@ type BoardScriptHost = {
|
|
|
25
25
|
error: (id: string) => string | null;
|
|
26
26
|
release: (id: string) => void;
|
|
27
27
|
};
|
|
28
|
+
type BoardRenderLabels = {
|
|
29
|
+
queued: string;
|
|
30
|
+
generating: string;
|
|
31
|
+
failed: string;
|
|
32
|
+
previewUnavailable: string;
|
|
33
|
+
noPreview: string;
|
|
34
|
+
};
|
|
35
|
+
declare const DEFAULT_BOARD_RENDER_LABELS: BoardRenderLabels;
|
|
28
36
|
type BoardRenderContext = {
|
|
29
37
|
settings: BoardSettings;
|
|
30
38
|
scene: BoardScene;
|
|
@@ -37,6 +45,12 @@ type BoardRenderContext = {
|
|
|
37
45
|
rendererType: "gpu" | "canvas";
|
|
38
46
|
zoom: number;
|
|
39
47
|
time: number;
|
|
48
|
+
reducedMotion: boolean;
|
|
49
|
+
labels: BoardRenderLabels;
|
|
50
|
+
taskRun: (taskRunId: string) => {
|
|
51
|
+
status: BoardTaskItem["props"]["snapshot"]["status"];
|
|
52
|
+
startedAt?: string;
|
|
53
|
+
} | null;
|
|
40
54
|
frameAt?: (id: string, time: number) => BoardFrame | undefined;
|
|
41
55
|
scripts?: BoardScriptHost;
|
|
42
56
|
assetKey: (item: BoardSceneItem) => string | null;
|
|
@@ -50,6 +64,7 @@ type BoardCardRenderer = {
|
|
|
50
64
|
id: string;
|
|
51
65
|
canRender: (item: BoardSceneItem, context: BoardRenderContext) => boolean;
|
|
52
66
|
animated?: boolean;
|
|
67
|
+
tick?: (container: Container, clock: number) => number | null;
|
|
53
68
|
create: (item: BoardSceneItem, context: BoardRenderContext) => Container;
|
|
54
69
|
update: (container: Container, item: BoardSceneItem, context: BoardRenderContext) => void;
|
|
55
70
|
renderFar?: (graphics: Graphics, item: BoardSceneItem, context: BoardRenderContext) => void;
|
|
@@ -64,4 +79,4 @@ declare function createBoardCardRendererResolver(renderers?: Iterable<BoardCardR
|
|
|
64
79
|
/** The built-in renderers alone. */
|
|
65
80
|
declare const getBoardCardRenderer: BoardCardRendererResolver;
|
|
66
81
|
//#endregion
|
|
67
|
-
export { BoardCardRenderer, BoardCardRendererResolver, BoardRenderContext, BoardRenderPalette, BoardScriptHost, createBoardCardRendererResolver, getBoardCardRenderer };
|
|
82
|
+
export { BoardCardRenderer, BoardCardRendererResolver, BoardRenderContext, BoardRenderLabels, BoardRenderPalette, BoardScriptHost, DEFAULT_BOARD_RENDER_LABELS, createBoardCardRendererResolver, getBoardCardRenderer };
|
|
@@ -13,6 +13,13 @@ import { textCardRenderer } from "./text-card-renderer.js";
|
|
|
13
13
|
import { unknownCardRenderer } from "./unknown-card-renderer.js";
|
|
14
14
|
import { videoCardRenderer } from "./video-card-renderer.js";
|
|
15
15
|
//#region src/board/render/renderers/board-renderer-registry.ts
|
|
16
|
+
const DEFAULT_BOARD_RENDER_LABELS = {
|
|
17
|
+
queued: "Queued",
|
|
18
|
+
generating: "Generating",
|
|
19
|
+
failed: "Failed",
|
|
20
|
+
previewUnavailable: "Preview unavailable",
|
|
21
|
+
noPreview: "No preview"
|
|
22
|
+
};
|
|
16
23
|
const builtinCardRenderers = [
|
|
17
24
|
textCardRenderer,
|
|
18
25
|
imageCardRenderer,
|
|
@@ -41,4 +48,4 @@ function createBoardCardRendererResolver(renderers = []) {
|
|
|
41
48
|
/** The built-in renderers alone. */
|
|
42
49
|
const getBoardCardRenderer = createBoardCardRendererResolver();
|
|
43
50
|
//#endregion
|
|
44
|
-
export { createBoardCardRendererResolver, getBoardCardRenderer };
|
|
51
|
+
export { DEFAULT_BOARD_RENDER_LABELS, createBoardCardRendererResolver, getBoardCardRenderer };
|
|
@@ -18,7 +18,8 @@ function sync(container, item, context) {
|
|
|
18
18
|
const texture = context.scripts?.frame(item, context.time, resolution) ?? null;
|
|
19
19
|
const error = context.scripts?.error(item.id) ?? null;
|
|
20
20
|
parts.sprite.visible = Boolean(texture);
|
|
21
|
-
|
|
21
|
+
const display = texture ?? Texture.EMPTY;
|
|
22
|
+
if (parts.sprite.texture !== display) parts.sprite.texture = display;
|
|
22
23
|
parts.sprite.width = width;
|
|
23
24
|
parts.sprite.height = height;
|
|
24
25
|
const selected = context.selectedIds.has(item.id);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BoardCardRenderer } from "./board-renderer-registry.js";
|
|
2
2
|
//#region src/board/render/renderers/task-card-renderer.d.ts
|
|
3
3
|
declare const TASK_CARD_FULL_DETAIL_ZOOM = 0.55;
|
|
4
|
+
declare function formatTaskElapsed(ms: number): string;
|
|
4
5
|
declare function containTaskPreviewRect(width: number, height: number, imageWidth: number, imageHeight: number): {
|
|
5
6
|
x: number;
|
|
6
7
|
y: number;
|
|
@@ -9,4 +10,4 @@ declare function containTaskPreviewRect(width: number, height: number, imageWidt
|
|
|
9
10
|
};
|
|
10
11
|
declare const taskCardRenderer: BoardCardRenderer;
|
|
11
12
|
//#endregion
|
|
12
|
-
export { TASK_CARD_FULL_DETAIL_ZOOM, containTaskPreviewRect, taskCardRenderer };
|
|
13
|
+
export { TASK_CARD_FULL_DETAIL_ZOOM, containTaskPreviewRect, formatTaskElapsed, taskCardRenderer };
|