manga-renderer 1.0.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.
Files changed (148) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +118 -0
  3. package/dist/index.d.ts +28 -0
  4. package/dist/index.js +184 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/book/book.d.ts +133 -0
  7. package/dist/lib/book/book.js +329 -0
  8. package/dist/lib/book/book.js.map +1 -0
  9. package/dist/lib/book/envelope.d.ts +26 -0
  10. package/dist/lib/book/envelope.js +158 -0
  11. package/dist/lib/book/envelope.js.map +1 -0
  12. package/dist/lib/book/imagePacking.d.ts +10 -0
  13. package/dist/lib/book/imagePacking.js +213 -0
  14. package/dist/lib/book/imagePacking.js.map +1 -0
  15. package/dist/lib/book/layout.d.ts +41 -0
  16. package/dist/lib/book/layout.js +14 -0
  17. package/dist/lib/book/layout.js.map +1 -0
  18. package/dist/lib/book/notebook.d.ts +72 -0
  19. package/dist/lib/book/notebook.js +30 -0
  20. package/dist/lib/book/notebook.js.map +1 -0
  21. package/dist/lib/book/richChat.d.ts +36 -0
  22. package/dist/lib/book/richChat.js +87 -0
  23. package/dist/lib/book/richChat.js.map +1 -0
  24. package/dist/lib/book/storyboard.d.ts +125 -0
  25. package/dist/lib/book/storyboard.js +44 -0
  26. package/dist/lib/book/storyboard.js.map +1 -0
  27. package/dist/lib/layeredCanvas/dataModels/bubble.d.ts +96 -0
  28. package/dist/lib/layeredCanvas/dataModels/bubble.js +630 -0
  29. package/dist/lib/layeredCanvas/dataModels/bubble.js.map +1 -0
  30. package/dist/lib/layeredCanvas/dataModels/effect.d.ts +25 -0
  31. package/dist/lib/layeredCanvas/dataModels/effect.js +104 -0
  32. package/dist/lib/layeredCanvas/dataModels/effect.js.map +1 -0
  33. package/dist/lib/layeredCanvas/dataModels/film.d.ts +44 -0
  34. package/dist/lib/layeredCanvas/dataModels/film.js +172 -0
  35. package/dist/lib/layeredCanvas/dataModels/film.js.map +1 -0
  36. package/dist/lib/layeredCanvas/dataModels/frameTree.d.ts +99 -0
  37. package/dist/lib/layeredCanvas/dataModels/frameTree.js +861 -0
  38. package/dist/lib/layeredCanvas/dataModels/frameTree.js.map +1 -0
  39. package/dist/lib/layeredCanvas/dataModels/media.d.ts +39 -0
  40. package/dist/lib/layeredCanvas/dataModels/media.js +69 -0
  41. package/dist/lib/layeredCanvas/dataModels/media.js.map +1 -0
  42. package/dist/lib/layeredCanvas/layers/SampleLayer.d.ts +6 -0
  43. package/dist/lib/layeredCanvas/layers/SampleLayer.js +22 -0
  44. package/dist/lib/layeredCanvas/layers/SampleLayer.js.map +1 -0
  45. package/dist/lib/layeredCanvas/layers/arrayLayer.d.ts +49 -0
  46. package/dist/lib/layeredCanvas/layers/arrayLayer.js +364 -0
  47. package/dist/lib/layeredCanvas/layers/arrayLayer.js.map +1 -0
  48. package/dist/lib/layeredCanvas/layers/bubbleLayer.d.ts +97 -0
  49. package/dist/lib/layeredCanvas/layers/bubbleLayer.js +1418 -0
  50. package/dist/lib/layeredCanvas/layers/bubbleLayer.js.map +1 -0
  51. package/dist/lib/layeredCanvas/layers/floorLayer.d.ts +13 -0
  52. package/dist/lib/layeredCanvas/layers/floorLayer.js +64 -0
  53. package/dist/lib/layeredCanvas/layers/floorLayer.js.map +1 -0
  54. package/dist/lib/layeredCanvas/layers/frameLayer.d.ts +106 -0
  55. package/dist/lib/layeredCanvas/layers/frameLayer.js +1283 -0
  56. package/dist/lib/layeredCanvas/layers/frameLayer.js.map +1 -0
  57. package/dist/lib/layeredCanvas/layers/inlinePainterLayer.d.ts +33 -0
  58. package/dist/lib/layeredCanvas/layers/inlinePainterLayer.js +222 -0
  59. package/dist/lib/layeredCanvas/layers/inlinePainterLayer.js.map +1 -0
  60. package/dist/lib/layeredCanvas/layers/paperRendererLayer.d.ts +64 -0
  61. package/dist/lib/layeredCanvas/layers/paperRendererLayer.js +443 -0
  62. package/dist/lib/layeredCanvas/layers/paperRendererLayer.js.map +1 -0
  63. package/dist/lib/layeredCanvas/layers/undoLayer.d.ts +8 -0
  64. package/dist/lib/layeredCanvas/layers/undoLayer.js +24 -0
  65. package/dist/lib/layeredCanvas/layers/undoLayer.js.map +1 -0
  66. package/dist/lib/layeredCanvas/system/keyCache.d.ts +4 -0
  67. package/dist/lib/layeredCanvas/system/keyCache.js +61 -0
  68. package/dist/lib/layeredCanvas/system/keyCache.js.map +1 -0
  69. package/dist/lib/layeredCanvas/system/layeredCanvas.d.ts +172 -0
  70. package/dist/lib/layeredCanvas/system/layeredCanvas.js +597 -0
  71. package/dist/lib/layeredCanvas/system/layeredCanvas.js.map +1 -0
  72. package/dist/lib/layeredCanvas/system/paperArray.d.ts +29 -0
  73. package/dist/lib/layeredCanvas/system/paperArray.js +108 -0
  74. package/dist/lib/layeredCanvas/system/paperArray.js.map +1 -0
  75. package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.d.ts +7 -0
  76. package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.js +728 -0
  77. package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.js.map +1 -0
  78. package/dist/lib/layeredCanvas/tools/draw/clickableIcon.d.ts +42 -0
  79. package/dist/lib/layeredCanvas/tools/draw/clickableIcon.js +129 -0
  80. package/dist/lib/layeredCanvas/tools/draw/clickableIcon.js.map +1 -0
  81. package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.d.ts +4 -0
  82. package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.js +53 -0
  83. package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.js.map +1 -0
  84. package/dist/lib/layeredCanvas/tools/draw/drawText.d.ts +8 -0
  85. package/dist/lib/layeredCanvas/tools/draw/drawText.js +45 -0
  86. package/dist/lib/layeredCanvas/tools/draw/drawText.js.map +1 -0
  87. package/dist/lib/layeredCanvas/tools/draw/richText.d.ts +15 -0
  88. package/dist/lib/layeredCanvas/tools/draw/richText.js +172 -0
  89. package/dist/lib/layeredCanvas/tools/draw/richText.js.map +1 -0
  90. package/dist/lib/layeredCanvas/tools/draw/selectionFrame.d.ts +5 -0
  91. package/dist/lib/layeredCanvas/tools/draw/selectionFrame.js +63 -0
  92. package/dist/lib/layeredCanvas/tools/draw/selectionFrame.js.map +1 -0
  93. package/dist/lib/layeredCanvas/tools/draw/typeSetting.d.ts +16 -0
  94. package/dist/lib/layeredCanvas/tools/draw/typeSetting.js +2 -0
  95. package/dist/lib/layeredCanvas/tools/draw/typeSetting.js.map +1 -0
  96. package/dist/lib/layeredCanvas/tools/draw/verticalText.d.ts +3 -0
  97. package/dist/lib/layeredCanvas/tools/draw/verticalText.js +230 -0
  98. package/dist/lib/layeredCanvas/tools/draw/verticalText.js.map +1 -0
  99. package/dist/lib/layeredCanvas/tools/focusKeeper.d.ts +8 -0
  100. package/dist/lib/layeredCanvas/tools/focusKeeper.js +15 -0
  101. package/dist/lib/layeredCanvas/tools/focusKeeper.js.map +1 -0
  102. package/dist/lib/layeredCanvas/tools/frameExamples.d.ts +382 -0
  103. package/dist/lib/layeredCanvas/tools/frameExamples.js +758 -0
  104. package/dist/lib/layeredCanvas/tools/frameExamples.js.map +1 -0
  105. package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.d.ts +12 -0
  106. package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.js +117 -0
  107. package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.js.map +1 -0
  108. package/dist/lib/layeredCanvas/tools/geometry/convertPoint.d.ts +2 -0
  109. package/dist/lib/layeredCanvas/tools/geometry/convertPoint.js +25 -0
  110. package/dist/lib/layeredCanvas/tools/geometry/convertPoint.js.map +1 -0
  111. package/dist/lib/layeredCanvas/tools/geometry/geometry.d.ts +69 -0
  112. package/dist/lib/layeredCanvas/tools/geometry/geometry.js +408 -0
  113. package/dist/lib/layeredCanvas/tools/geometry/geometry.js.map +1 -0
  114. package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.d.ts +1 -0
  115. package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.js +58 -0
  116. package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.js.map +1 -0
  117. package/dist/lib/layeredCanvas/tools/geometry/quickHull.d.ts +10 -0
  118. package/dist/lib/layeredCanvas/tools/geometry/quickHull.js +91 -0
  119. package/dist/lib/layeredCanvas/tools/geometry/quickHull.js.map +1 -0
  120. package/dist/lib/layeredCanvas/tools/geometry/trapezoid.d.ts +18 -0
  121. package/dist/lib/layeredCanvas/tools/geometry/trapezoid.js +105 -0
  122. package/dist/lib/layeredCanvas/tools/geometry/trapezoid.js.map +1 -0
  123. package/dist/lib/layeredCanvas/tools/grid.d.ts +7 -0
  124. package/dist/lib/layeredCanvas/tools/grid.js +16 -0
  125. package/dist/lib/layeredCanvas/tools/grid.js.map +1 -0
  126. package/dist/lib/layeredCanvas/tools/haiku.d.ts +1 -0
  127. package/dist/lib/layeredCanvas/tools/haiku.js +17 -0
  128. package/dist/lib/layeredCanvas/tools/haiku.js.map +1 -0
  129. package/dist/lib/layeredCanvas/tools/imageUtil.d.ts +8 -0
  130. package/dist/lib/layeredCanvas/tools/imageUtil.js +58 -0
  131. package/dist/lib/layeredCanvas/tools/imageUtil.js.map +1 -0
  132. package/dist/lib/layeredCanvas/tools/kinsoku.d.ts +26 -0
  133. package/dist/lib/layeredCanvas/tools/kinsoku.js +124 -0
  134. package/dist/lib/layeredCanvas/tools/kinsoku.js.map +1 -0
  135. package/dist/lib/layeredCanvas/tools/misc.d.ts +25 -0
  136. package/dist/lib/layeredCanvas/tools/misc.js +46 -0
  137. package/dist/lib/layeredCanvas/tools/misc.js.map +1 -0
  138. package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.d.ts +2 -0
  139. package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.js +21 -0
  140. package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.js.map +1 -0
  141. package/dist/lib/layeredCanvas/tools/pictureControl.d.ts +4 -0
  142. package/dist/lib/layeredCanvas/tools/pictureControl.js +24 -0
  143. package/dist/lib/layeredCanvas/tools/pictureControl.js.map +1 -0
  144. package/dist/lib/layeredCanvas/tools/rectHandle.d.ts +6 -0
  145. package/dist/lib/layeredCanvas/tools/rectHandle.js +17 -0
  146. package/dist/lib/layeredCanvas/tools/rectHandle.js.map +1 -0
  147. package/dist/tsconfig.tsbuildinfo +1 -0
  148. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubbleLayer.js","sourceRoot":"","sources":["../../../../src/lib/layeredCanvas/layers/bubbleLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { LayerBase } from "../system/layeredCanvas";
2
+ import type { Vector } from '../tools/geometry/geometry';
3
+ import type { Viewport } from "../system/layeredCanvas";
4
+ import type { FocusKeeper } from "../tools/focusKeeper";
5
+ export declare class FloorLayer extends LayerBase {
6
+ private focusKeeper;
7
+ viewport: Viewport;
8
+ onViewportChanged: () => void;
9
+ constructor(viewport: Viewport, onViewportChanged: () => void, focusKeeper: FocusKeeper);
10
+ wheel(_position: Vector, delta: number): boolean;
11
+ accepts(_point: Vector, button: number, depth: number): any;
12
+ pointer(p: Vector): Generator<undefined, void, Vector>;
13
+ }
@@ -0,0 +1,64 @@
1
+ import { LayerBase, sequentializePointer } from "../system/layeredCanvas";
2
+ import { keyDownFlags } from "../system/keyCache";
3
+ export class FloorLayer extends LayerBase {
4
+ focusKeeper;
5
+ viewport;
6
+ onViewportChanged; // ここで責任とれないこと(例えばsvelteUI)
7
+ constructor(viewport, onViewportChanged, focusKeeper) {
8
+ super();
9
+ this.focusKeeper = focusKeeper;
10
+ this.viewport = viewport;
11
+ this.onViewportChanged = onViewportChanged;
12
+ }
13
+ wheel(_position, delta) {
14
+ let scale = this.viewport.scale;
15
+ scale -= delta * 0.0001;
16
+ if (scale < 0.1)
17
+ scale = 0.1;
18
+ if (scale > 10)
19
+ scale = 10;
20
+ scale = Math.round(scale * 100) / 100;
21
+ this.viewport.translate[0] *= scale / this.viewport.scale;
22
+ this.viewport.translate[1] *= scale / this.viewport.scale;
23
+ this.viewport.scale = scale;
24
+ this.viewport.dirty = true;
25
+ this.redraw();
26
+ this.onViewportChanged();
27
+ return true;
28
+ }
29
+ accepts(_point, button, depth) {
30
+ if (0 < depth)
31
+ return null;
32
+ return keyDownFlags["Space"] || 0 < button;
33
+ }
34
+ *pointer(p) {
35
+ const dragStart = p;
36
+ const scale = this.viewport.scale;
37
+ try {
38
+ while (p = yield) {
39
+ const dragOffset = [
40
+ (p[0] - dragStart[0]) * scale,
41
+ (p[1] - dragStart[1]) * scale
42
+ ];
43
+ this.viewport.viewTranslate = dragOffset;
44
+ this.viewport.dirty = true;
45
+ this.redraw();
46
+ }
47
+ }
48
+ catch (e) {
49
+ if (e === 'cancel') {
50
+ }
51
+ else {
52
+ throw e;
53
+ }
54
+ }
55
+ const t = this.viewport.translate;
56
+ const v = this.viewport.viewTranslate;
57
+ this.viewport.translate = [t[0] + v[0], t[1] + v[1]];
58
+ this.viewport.viewTranslate = [0, 0];
59
+ this.viewport.dirty = true;
60
+ this.onViewportChanged();
61
+ }
62
+ }
63
+ sequentializePointer(FloorLayer);
64
+ //# sourceMappingURL=floorLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floorLayer.js","sourceRoot":"","sources":["../../../../src/lib/layeredCanvas/layers/floorLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { type Layer, LayerBase, type Picked } from "../system/layeredCanvas";
2
+ import { FrameElement, type Layout, type Border, type PaddingHandle } from "../dataModels/frameTree";
3
+ import { type Media } from "../dataModels/media";
4
+ import { ClickableSlate, ClickableIcon, ClickableSelfRenderer } from "../tools/draw/clickableIcon";
5
+ import { type Vector, type Rect } from '../tools/geometry/geometry';
6
+ import type { PaperRendererLayer } from "./paperRendererLayer";
7
+ import type { Trapezoid } from "../tools/geometry/trapezoid";
8
+ import type { FocusKeeper } from "../tools/focusKeeper";
9
+ import { Grid } from "../tools/grid";
10
+ export declare class FrameLayer extends LayerBase {
11
+ private renderLayer;
12
+ private focusKeeper;
13
+ private frameTree;
14
+ private onFocus;
15
+ private onCommit;
16
+ private onRevert;
17
+ private onShift;
18
+ private onUnshift;
19
+ private onSwap;
20
+ private onInsert;
21
+ cursorPosition: Vector;
22
+ splitHorizontalIcon: ClickableIcon;
23
+ splitVerticalIcon: ClickableIcon;
24
+ deleteIcon: ClickableIcon;
25
+ duplicateIcon: ClickableIcon;
26
+ shiftIcon: ClickableIcon;
27
+ unshiftIcon: ClickableIcon;
28
+ resetPaddingIcon: ClickableIcon;
29
+ zplusIcon: ClickableIcon;
30
+ zminusIcon: ClickableIcon;
31
+ visibilityIcon: ClickableIcon;
32
+ scaleIcon: ClickableIcon;
33
+ rotateIcon: ClickableIcon;
34
+ flipHorizontalIcon: ClickableIcon;
35
+ flipVerticalIcon: ClickableIcon;
36
+ fitIcon: ClickableIcon;
37
+ expandHorizontalIcon: ClickableIcon;
38
+ slantHorizontalIcon: ClickableIcon;
39
+ insertHorizontalIcon: ClickableIcon;
40
+ expandVerticalIcon: ClickableIcon;
41
+ slantVerticalIcon: ClickableIcon;
42
+ insertVerticalIcon: ClickableIcon;
43
+ swapIcon: ClickableIcon;
44
+ zvalue: ClickableSelfRenderer;
45
+ frameIcons: ClickableSlate[];
46
+ borderIcons: ClickableSlate[];
47
+ litIcons: ClickableSlate[];
48
+ litLayout: Layout | null;
49
+ litBorder: Border | null;
50
+ selectedLayout: Layout | null;
51
+ selectedBorder: Border | null;
52
+ focusedPadding: PaddingHandle | null;
53
+ pointerHandler: any;
54
+ canvasPattern: CanvasPattern;
55
+ constructor(renderLayer: PaperRendererLayer, focusKeeper: FocusKeeper, frameTree: FrameElement, onFocus: (layout: Layout | null) => void, onCommit: () => void, onRevert: () => void, onShift: (element: FrameElement) => void, onUnshift: (element: FrameElement) => void, onSwap: (element0: FrameElement, element1: FrameElement) => void, onInsert: (border: Border) => void);
56
+ calculateRootLayout(): Layout;
57
+ rebuildPageLayouts(matrix: DOMMatrix): void;
58
+ makeCanvasPattern(): void;
59
+ prerender(): void;
60
+ render(ctx: CanvasRenderingContext2D, depth: number): void;
61
+ calculateSheetRect(corners: Trapezoid): Rect;
62
+ drawSheet(ctx: CanvasRenderingContext2D, corners: Trapezoid): void;
63
+ dropped(position: Vector, media: HTMLCanvasElement | HTMLVideoElement): boolean;
64
+ updateLit(point: Vector): void;
65
+ pointerHover(position: Vector): boolean;
66
+ decideHint(position: Vector): boolean;
67
+ keyDown(position: Vector, event: KeyboardEvent): Promise<boolean>;
68
+ pick(point: Vector): Picked[];
69
+ acceptDepths(): number[];
70
+ accepts(point: Vector, button: number, depth: number): any;
71
+ acceptsForeground(point: Vector, _button: number): any;
72
+ acceptsOnSelectedBorder(p: Vector): any;
73
+ acceptsOnSelectedFrameIcons(point: Vector): any;
74
+ acceptsBackground(point: Vector, _button: number): any;
75
+ acceptsOnFrame(layout: Layout): any;
76
+ changeFocus(layer: Layer | null): void;
77
+ pointer(p: Vector, payload: any): AsyncGenerator<undefined, "done" | undefined, Vector>;
78
+ scaleImage(p: Vector, layout: Layout): Generator<undefined, void, Vector>;
79
+ rotateImage(p: Vector, layout: Layout): Generator<undefined, void, Vector>;
80
+ translateImage(p: Vector, layout: Layout): Generator<undefined, void, Vector>;
81
+ moveBorder(p: Vector, border: Border): Generator<undefined, void, Vector>;
82
+ expandBorder(p: Vector, border: Border): Generator<undefined, void, Vector>;
83
+ slantBorder(p: Vector, border: Border): Generator<undefined, void, Vector>;
84
+ expandPadding(p: Vector, padding: PaddingHandle): Generator<undefined, void, Vector>;
85
+ constraintAll(): void;
86
+ importMedia(layoutlet: Layout, media: Media): void;
87
+ updateSelectedLayout(): void;
88
+ updateBorder(border: Border): void;
89
+ updateBorderTrapezoid(border: Border): void;
90
+ relayoutIcons(): void;
91
+ relayoutFrameIcons(layout: Layout): void;
92
+ makeGrid(layout: Layout): Grid;
93
+ relayoutBorderIcons(border: Border): void;
94
+ relayoutLitIcons(layout: Layout): void;
95
+ resetPadding(): void;
96
+ swapContent(a: FrameElement, b: FrameElement): void;
97
+ beforeDoubleClick(p: Vector): boolean;
98
+ videoRedrawInterval: ReturnType<typeof setTimeout> | undefined;
99
+ doSelectLayout(layout: Layout | null): void;
100
+ selectLayout(layout: Layout | null): void;
101
+ drawFilmBorders(ctx: CanvasRenderingContext2D, layout: Layout): void;
102
+ transposeBorder(border: Border): void;
103
+ renderDepths(): number[];
104
+ get interactable(): boolean;
105
+ }
106
+ export declare function getTrapezoidPath(t: Trapezoid, margin: number, ignoresInverted: boolean): Path2D;