textmode.export.js 0.0.1
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 +166 -0
- package/dist/textmode.export.esm.js +2061 -0
- package/dist/textmode.export.umd.js +3 -0
- package/dist/types/exporters/base/DataExtractor.d.ts +23 -0
- package/dist/types/exporters/base/DataExtractor.d.ts.map +1 -0
- package/dist/types/exporters/base/FileHandler.d.ts +24 -0
- package/dist/types/exporters/base/FileHandler.d.ts.map +1 -0
- package/dist/types/exporters/base/index.d.ts +3 -0
- package/dist/types/exporters/base/index.d.ts.map +1 -0
- package/dist/types/exporters/gif/GIFExporter.d.ts +30 -0
- package/dist/types/exporters/gif/GIFExporter.d.ts.map +1 -0
- package/dist/types/exporters/gif/GIFRecorder.d.ts +24 -0
- package/dist/types/exporters/gif/GIFRecorder.d.ts.map +1 -0
- package/dist/types/exporters/gif/index.d.ts +4 -0
- package/dist/types/exporters/gif/index.d.ts.map +1 -0
- package/dist/types/exporters/gif/types.d.ts +69 -0
- package/dist/types/exporters/gif/types.d.ts.map +1 -0
- package/dist/types/exporters/image/ImageExporter.d.ts +40 -0
- package/dist/types/exporters/image/ImageExporter.d.ts.map +1 -0
- package/dist/types/exporters/image/index.d.ts +4 -0
- package/dist/types/exporters/image/index.d.ts.map +1 -0
- package/dist/types/exporters/image/types.d.ts +45 -0
- package/dist/types/exporters/image/types.d.ts.map +1 -0
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts +70 -0
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +1 -0
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts +34 -0
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +1 -0
- package/dist/types/exporters/svg/SVGExporter.d.ts +29 -0
- package/dist/types/exporters/svg/SVGExporter.d.ts.map +1 -0
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts +50 -0
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +1 -0
- package/dist/types/exporters/svg/index.d.ts +6 -0
- package/dist/types/exporters/svg/index.d.ts.map +1 -0
- package/dist/types/exporters/svg/types.d.ts +111 -0
- package/dist/types/exporters/svg/types.d.ts.map +1 -0
- package/dist/types/exporters/txt/TXTExporter.d.ts +36 -0
- package/dist/types/exporters/txt/TXTExporter.d.ts.map +1 -0
- package/dist/types/exporters/txt/index.d.ts +3 -0
- package/dist/types/exporters/txt/index.d.ts.map +1 -0
- package/dist/types/exporters/txt/types.d.ts +37 -0
- package/dist/types/exporters/txt/types.d.ts.map +1 -0
- package/dist/types/exporters/video/VideoExporter.d.ts +30 -0
- package/dist/types/exporters/video/VideoExporter.d.ts.map +1 -0
- package/dist/types/exporters/video/VideoRecorder.d.ts +28 -0
- package/dist/types/exporters/video/VideoRecorder.d.ts.map +1 -0
- package/dist/types/exporters/video/index.d.ts +4 -0
- package/dist/types/exporters/video/index.d.ts.map +1 -0
- package/dist/types/exporters/video/types.d.ts +64 -0
- package/dist/types/exporters/video/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +35 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/overlay/blades/Blade.d.ts +20 -0
- package/dist/types/overlay/blades/Blade.d.ts.map +1 -0
- package/dist/types/overlay/blades/GIFBlade.d.ts +23 -0
- package/dist/types/overlay/blades/GIFBlade.d.ts.map +1 -0
- package/dist/types/overlay/blades/ImageBlade.d.ts +14 -0
- package/dist/types/overlay/blades/ImageBlade.d.ts.map +1 -0
- package/dist/types/overlay/blades/SVGBlade.d.ts +16 -0
- package/dist/types/overlay/blades/SVGBlade.d.ts.map +1 -0
- package/dist/types/overlay/blades/TextBlade.d.ts +14 -0
- package/dist/types/overlay/blades/TextBlade.d.ts.map +1 -0
- package/dist/types/overlay/blades/VideoBlade.d.ts +22 -0
- package/dist/types/overlay/blades/VideoBlade.d.ts.map +1 -0
- package/dist/types/overlay/blades/index.d.ts +7 -0
- package/dist/types/overlay/blades/index.d.ts.map +1 -0
- package/dist/types/overlay/components/actions/Button.d.ts +19 -0
- package/dist/types/overlay/components/actions/Button.d.ts.map +1 -0
- package/dist/types/overlay/components/base/Component.d.ts +18 -0
- package/dist/types/overlay/components/base/Component.d.ts.map +1 -0
- package/dist/types/overlay/components/base/Container.d.ts +9 -0
- package/dist/types/overlay/components/base/Container.d.ts.map +1 -0
- package/dist/types/overlay/components/base/Field.d.ts +17 -0
- package/dist/types/overlay/components/base/Field.d.ts.map +1 -0
- package/dist/types/overlay/components/display/Header.d.ts +8 -0
- package/dist/types/overlay/components/display/Header.d.ts.map +1 -0
- package/dist/types/overlay/components/display/StatusDisplay.d.ts +19 -0
- package/dist/types/overlay/components/display/StatusDisplay.d.ts.map +1 -0
- package/dist/types/overlay/components/inputs/CheckboxInput.d.ts +20 -0
- package/dist/types/overlay/components/inputs/CheckboxInput.d.ts.map +1 -0
- package/dist/types/overlay/components/inputs/NumberInput.d.ts +32 -0
- package/dist/types/overlay/components/inputs/NumberInput.d.ts.map +1 -0
- package/dist/types/overlay/components/inputs/RangeInput.d.ts +35 -0
- package/dist/types/overlay/components/inputs/RangeInput.d.ts.map +1 -0
- package/dist/types/overlay/components/inputs/SelectInput.d.ts +25 -0
- package/dist/types/overlay/components/inputs/SelectInput.d.ts.map +1 -0
- package/dist/types/overlay/components/inputs/TextInput.d.ts +19 -0
- package/dist/types/overlay/components/inputs/TextInput.d.ts.map +1 -0
- package/dist/types/overlay/core/EventBus.d.ts +10 -0
- package/dist/types/overlay/core/EventBus.d.ts.map +1 -0
- package/dist/types/overlay/core/OverlayController.d.ts +46 -0
- package/dist/types/overlay/core/OverlayController.d.ts.map +1 -0
- package/dist/types/overlay/core/StateManager.d.ts +11 -0
- package/dist/types/overlay/core/StateManager.d.ts.map +1 -0
- package/dist/types/overlay/formatRegistry.d.ts +4 -0
- package/dist/types/overlay/formatRegistry.d.ts.map +1 -0
- package/dist/types/overlay/index.d.ts +13 -0
- package/dist/types/overlay/index.d.ts.map +1 -0
- package/dist/types/overlay/models/FormatDefinition.d.ts +9 -0
- package/dist/types/overlay/models/FormatDefinition.d.ts.map +1 -0
- package/dist/types/overlay/models/OverlayEvents.d.ts +26 -0
- package/dist/types/overlay/models/OverlayEvents.d.ts.map +1 -0
- package/dist/types/overlay/models/OverlayState.d.ts +16 -0
- package/dist/types/overlay/models/OverlayState.d.ts.map +1 -0
- package/dist/types/overlay/services/ClipboardService.d.ts +8 -0
- package/dist/types/overlay/services/ClipboardService.d.ts.map +1 -0
- package/dist/types/overlay/services/ExportService.d.ts +18 -0
- package/dist/types/overlay/services/ExportService.d.ts.map +1 -0
- package/dist/types/overlay/services/PositionService.d.ts +14 -0
- package/dist/types/overlay/services/PositionService.d.ts.map +1 -0
- package/dist/types/overlay/types.d.ts +14 -0
- package/dist/types/overlay/types.d.ts.map +1 -0
- package/dist/types/overlay/utils/classes.d.ts +35 -0
- package/dist/types/overlay/utils/classes.d.ts.map +1 -0
- package/dist/types/types.d.ts +63 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils/pixels.d.ts +13 -0
- package/dist/types/utils/pixels.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FramebufferData, SVGCellData } from './types';
|
|
2
|
+
import { DataExtractor } from '../base';
|
|
3
|
+
import type { TextmodeGrid } from 'textmode.js';
|
|
4
|
+
/**
|
|
5
|
+
* Extracts and processes data from framebuffers for SVG generation.
|
|
6
|
+
* This class handles the conversion of raw pixel data into structured data objects.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SVGDataExtractor extends DataExtractor {
|
|
9
|
+
/**
|
|
10
|
+
* Extracts transform data from transform pixels
|
|
11
|
+
* @param transformPixels Transform framebuffer pixels
|
|
12
|
+
* @param rotationPixels Rotation framebuffer pixels
|
|
13
|
+
* @param pixelIndex Pixel index in the array
|
|
14
|
+
* @returns Transform data object
|
|
15
|
+
*/
|
|
16
|
+
private _extractTransformData;
|
|
17
|
+
/**
|
|
18
|
+
* Calculates cell position information
|
|
19
|
+
* @param x Grid X coordinate
|
|
20
|
+
* @param y Grid Y coordinate
|
|
21
|
+
* @param gridInfo Grid information
|
|
22
|
+
* @returns Position data object
|
|
23
|
+
*/
|
|
24
|
+
private _calculateCellPosition;
|
|
25
|
+
/**
|
|
26
|
+
* Processes all grid cells and extracts SVG cell data
|
|
27
|
+
* @param framebufferData Raw pixel data from framebuffers
|
|
28
|
+
* @param grid Grid information
|
|
29
|
+
* @param font Font information
|
|
30
|
+
* @returns Array of SVG cell data objects
|
|
31
|
+
*/
|
|
32
|
+
$extractSVGCellData(framebufferData: FramebufferData, grid: TextmodeGrid): SVGCellData[];
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=SVGDataExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGDataExtractor.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGDataExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAA+B,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAE/C;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;;;OAMG;IACI,mBAAmB,CACtB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,YAAY,GACnB,WAAW,EAAE;CAiDnB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SVGExportOptions } from './types';
|
|
2
|
+
import type { Textmodifier } from 'textmode.js';
|
|
3
|
+
/**
|
|
4
|
+
* Main SVG exporter for the textmode.js library.
|
|
5
|
+
* Orchestrates the SVG export process by coordinating data extraction,
|
|
6
|
+
* content generation, and file handling.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SVGExporter {
|
|
9
|
+
/**
|
|
10
|
+
* Applies default values to SVG export options
|
|
11
|
+
* @param options User-provided options
|
|
12
|
+
* @returns Complete options with defaults applied
|
|
13
|
+
*/
|
|
14
|
+
private _applyDefaultOptions;
|
|
15
|
+
/**
|
|
16
|
+
* Generates SVG content from textmode rendering data without saving to file
|
|
17
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
18
|
+
* @param options Export options
|
|
19
|
+
* @returns SVG content as string
|
|
20
|
+
*/
|
|
21
|
+
$generateSVG(textmodifier: Textmodifier, options?: SVGExportOptions): string;
|
|
22
|
+
/**
|
|
23
|
+
* Exports SVG content to a downloadable file
|
|
24
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
25
|
+
* @param options Export options
|
|
26
|
+
*/
|
|
27
|
+
$saveSVG(textmodifier: Textmodifier, options?: SVGExportOptions): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=SVGExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGExporter.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,SAAS,CAAC;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;GAIG;AACH,qBAAa,WAAW;IAEpB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;;OAKG;IACI,YAAY,CACf,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,gBAAqB,GAC/B,MAAM;IAsBT;;;;OAIG;IACI,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;CAMpF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { TextmodeFont } from 'textmode.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles SVG path generation for character glyphs.
|
|
4
|
+
* This class is responsible for converting font glyph data into SVG path strings.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SVGPathGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a path object for a glyph
|
|
9
|
+
* @param fontData Font data object
|
|
10
|
+
* @param glyphData Glyph data from font
|
|
11
|
+
* @param x X position
|
|
12
|
+
* @param y Y position
|
|
13
|
+
* @param fontSize Font size
|
|
14
|
+
* @returns Path object with bounding box and SVG methods
|
|
15
|
+
*/
|
|
16
|
+
private _createGlyphPath;
|
|
17
|
+
/**
|
|
18
|
+
* Converts glyph data to SVG path string
|
|
19
|
+
* @param glyphData Glyph data from font
|
|
20
|
+
* @param x X position
|
|
21
|
+
* @param y Y position
|
|
22
|
+
* @param scale Scale factor
|
|
23
|
+
* @returns SVG path data string
|
|
24
|
+
*/
|
|
25
|
+
private _glyphToSVGPath;
|
|
26
|
+
/**
|
|
27
|
+
* Generates an SVG path for a character glyph
|
|
28
|
+
* @param character The character to generate a path for
|
|
29
|
+
* @param fontData The font data object
|
|
30
|
+
* @param x X position
|
|
31
|
+
* @param y Y position
|
|
32
|
+
* @param fontSize Font size
|
|
33
|
+
* @returns Path object with SVG generation methods
|
|
34
|
+
*/
|
|
35
|
+
private _generateCharacterPath;
|
|
36
|
+
/**
|
|
37
|
+
* Generates SVG path data for a character with positioning calculations
|
|
38
|
+
* @param character The character to render
|
|
39
|
+
* @param fontData The font data
|
|
40
|
+
* @param cellX Cell X position
|
|
41
|
+
* @param cellY Cell Y position
|
|
42
|
+
* @param cellWidth Cell width
|
|
43
|
+
* @param cellHeight Cell height
|
|
44
|
+
* @param fontSize Font size
|
|
45
|
+
* @param advanceWidth Character advance width
|
|
46
|
+
* @returns SVG path data string or null if generation fails
|
|
47
|
+
*/
|
|
48
|
+
$generatePositionedCharacterPath(character: string, font: TextmodeFont, cellX: number, cellY: number, cellWidth: number, cellHeight: number, fontSize: number, advanceWidth: number): string | null;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=SVGPathGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGPathGenerator.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGPathGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoChD;;;GAGG;AACH,qBAAa,gBAAgB;IACzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;;;;;;;;;;OAWG;IACI,gCAAgC,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI;CAmBnB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { SVGExporter } from './SVGExporter';
|
|
2
|
+
export { SVGDataExtractor } from './SVGDataExtractor';
|
|
3
|
+
export { SVGContentGenerator } from './SVGContentGenerator';
|
|
4
|
+
export { SVGPathGenerator } from './SVGPathGenerator';
|
|
5
|
+
export type { SVGExportOptions, SVGGenerationOptions, SVGCellData, FramebufferData, RGBA, Position, CellPosition, CellTransform, GlyphPath } from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,SAAS,EACZ,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RGBA color representation.
|
|
3
|
+
*/
|
|
4
|
+
export interface RGBA {
|
|
5
|
+
r: number;
|
|
6
|
+
g: number;
|
|
7
|
+
b: number;
|
|
8
|
+
a: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 2D position coordinates.
|
|
12
|
+
*/
|
|
13
|
+
export interface Position {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Cell position in grid coordinates.
|
|
19
|
+
*/
|
|
20
|
+
export interface CellPosition {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
cellX: number;
|
|
24
|
+
cellY: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Cell transformation data.
|
|
28
|
+
*/
|
|
29
|
+
export interface CellTransform {
|
|
30
|
+
isInverted: boolean;
|
|
31
|
+
flipHorizontal: boolean;
|
|
32
|
+
flipVertical: boolean;
|
|
33
|
+
rotation: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Complete data for a single SVG cell.
|
|
37
|
+
*/
|
|
38
|
+
export interface SVGCellData {
|
|
39
|
+
charIndex: number;
|
|
40
|
+
primaryColor: RGBA;
|
|
41
|
+
secondaryColor: RGBA;
|
|
42
|
+
transform: CellTransform;
|
|
43
|
+
position: CellPosition;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Framebuffer data extracted for SVG generation.
|
|
47
|
+
*/
|
|
48
|
+
export interface FramebufferData {
|
|
49
|
+
characterPixels: Uint8Array;
|
|
50
|
+
primaryColorPixels: Uint8Array;
|
|
51
|
+
secondaryColorPixels: Uint8Array;
|
|
52
|
+
transformPixels: Uint8Array;
|
|
53
|
+
rotationPixels: Uint8Array;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Options for exporting the textmode content to SVG format.
|
|
57
|
+
*/
|
|
58
|
+
export type SVGExportOptions = {
|
|
59
|
+
/**
|
|
60
|
+
* The filename to save the SVG file as.
|
|
61
|
+
*
|
|
62
|
+
* If not provided, a default filename is used.
|
|
63
|
+
*/
|
|
64
|
+
filename?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Whether to include cell background rectangles in the SVG output.
|
|
67
|
+
*
|
|
68
|
+
* When `false`, only the character paths are included.
|
|
69
|
+
*
|
|
70
|
+
* Defaults to `true`.
|
|
71
|
+
*/
|
|
72
|
+
includeBackgroundRectangles?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* The drawing mode for ASCII characters.
|
|
75
|
+
*
|
|
76
|
+
* When set to `'fill'`, characters are rendered as filled shapes.
|
|
77
|
+
*
|
|
78
|
+
* When set to `'stroke'`, characters are rendered as outlines.
|
|
79
|
+
*
|
|
80
|
+
* Defaults to `'fill'`.
|
|
81
|
+
*/
|
|
82
|
+
drawMode?: 'fill' | 'stroke';
|
|
83
|
+
/**
|
|
84
|
+
* The stroke width to use when drawMode is set to `'stroke'`.
|
|
85
|
+
*
|
|
86
|
+
* Defaults to `1.0`.
|
|
87
|
+
*/
|
|
88
|
+
strokeWidth?: number;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Path object interface for character glyphs.
|
|
92
|
+
*/
|
|
93
|
+
export interface GlyphPath {
|
|
94
|
+
getBoundingBox(): {
|
|
95
|
+
x1: number;
|
|
96
|
+
y1: number;
|
|
97
|
+
x2: number;
|
|
98
|
+
y2: number;
|
|
99
|
+
};
|
|
100
|
+
toSVG(): string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Internal options used by SVG generation (with all defaults applied).
|
|
104
|
+
*/
|
|
105
|
+
export interface SVGGenerationOptions {
|
|
106
|
+
includeBackgroundRectangles: boolean;
|
|
107
|
+
drawMode: 'fill' | 'stroke';
|
|
108
|
+
strokeWidth: number;
|
|
109
|
+
filename?: string;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,eAAe,EAAE,UAAU,CAAC;IAC5B,kBAAkB,EAAE,UAAU,CAAC;IAC/B,oBAAoB,EAAE,UAAU,CAAC;IACjC,eAAe,EAAE,UAAU,CAAC;IAC5B,cAAc,EAAE,UAAU,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,cAAc,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,KAAK,IAAI,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,2BAA2B,EAAE,OAAO,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TXTExportOptions } from './types';
|
|
2
|
+
import type { Textmodifier } from 'textmode.js';
|
|
3
|
+
/**
|
|
4
|
+
* TXT exporter for the textmode.js library.
|
|
5
|
+
* Orchestrates the TXT export process by coordinating data extraction,
|
|
6
|
+
* content generation, and file handling.
|
|
7
|
+
*/
|
|
8
|
+
export declare class TXTExporter {
|
|
9
|
+
/**
|
|
10
|
+
* Applies default values to TXT export options
|
|
11
|
+
* @param options User-provided options
|
|
12
|
+
* @returns Complete options with defaults applied
|
|
13
|
+
*/
|
|
14
|
+
private _applyDefaultOptions;
|
|
15
|
+
/**
|
|
16
|
+
* Generates TXT content from textmode rendering data
|
|
17
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
18
|
+
* @param options Export options with defaults applied
|
|
19
|
+
* @returns TXT content as string
|
|
20
|
+
*/
|
|
21
|
+
private _createTXTContent;
|
|
22
|
+
/**
|
|
23
|
+
* Generates TXT content from textmode rendering data without saving to file
|
|
24
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
25
|
+
* @param options Export options
|
|
26
|
+
* @returns TXT content as string
|
|
27
|
+
*/
|
|
28
|
+
$generateTXT(textmodifier: Textmodifier, options?: TXTExportOptions): string;
|
|
29
|
+
/**
|
|
30
|
+
* Exports TXT content to a downloadable file
|
|
31
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
32
|
+
* @param options Export options
|
|
33
|
+
*/
|
|
34
|
+
$saveTXT(textmodifier: Textmodifier, options?: TXTExportOptions): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=TXTExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TXTExporter.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/TXTExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,SAAS,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;GAIG;AACH,qBAAa,WAAW;IACpB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;;;;OAKG;IACI,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM;IAIvF;;;;OAIG;IACI,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;CAOpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EAClB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for exporting the textmode content to TXT format.
|
|
3
|
+
*/
|
|
4
|
+
export type TXTExportOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* The filename to save the TXT file as.
|
|
7
|
+
*
|
|
8
|
+
* If not provided, a default filename is used.
|
|
9
|
+
*/
|
|
10
|
+
filename?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Whether to preserve trailing spaces on each line.
|
|
13
|
+
*
|
|
14
|
+
* When `false`, trailing spaces are trimmed from each line.
|
|
15
|
+
*
|
|
16
|
+
* Defaults to `false`.
|
|
17
|
+
*/
|
|
18
|
+
preserveTrailingSpaces?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Character to use for empty cells *(when no character is rendered in it)*.
|
|
21
|
+
* Defaults to space `' '`.
|
|
22
|
+
*/
|
|
23
|
+
emptyCharacter?: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Internal options used by TXT generation (with all defaults applied).
|
|
27
|
+
*/
|
|
28
|
+
export interface TXTGenerationOptions {
|
|
29
|
+
preserveTrailingSpaces: boolean;
|
|
30
|
+
emptyCharacter: string;
|
|
31
|
+
filename?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Re-export shared types from SVG module that are also used by TXT exporter
|
|
35
|
+
*/
|
|
36
|
+
export type { FramebufferData } from '../svg/types';
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,YAAY,EAAG,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TextmodePluginAPI, Textmodifier } from 'textmode.js';
|
|
2
|
+
import type { VideoExportOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Main video exporter for the textmode.js library.
|
|
5
|
+
* Orchestrates the video export process by coordinating canvas capture,
|
|
6
|
+
* frame processing, and file handling.
|
|
7
|
+
*/
|
|
8
|
+
export declare class VideoExporter {
|
|
9
|
+
private readonly _recorder;
|
|
10
|
+
private readonly _textmodifier;
|
|
11
|
+
private readonly _registerPostDrawHook;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an instance of VideoExporter.
|
|
14
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
15
|
+
* @param registerPostDrawHook The function to register post-draw hooks
|
|
16
|
+
*/
|
|
17
|
+
constructor(textmodifier: Textmodifier, registerPostDrawHook: TextmodePluginAPI['registerPostDrawHook']);
|
|
18
|
+
/**
|
|
19
|
+
* Captures frames and saves them as a WEBM file
|
|
20
|
+
* @param options Export options
|
|
21
|
+
*/
|
|
22
|
+
$saveWEBM(options?: VideoExportOptions): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Applies default values to video export options
|
|
25
|
+
* @param options User-provided options
|
|
26
|
+
* @returns Complete options with defaults applied
|
|
27
|
+
*/
|
|
28
|
+
private _applyDefaultOptions;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=VideoExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoExporter.d.ts","sourceRoot":"","sources":["../../../../src/exporters/video/VideoExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAA0B,MAAM,SAAS,CAAC;AAG1E;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4C;IAElF;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,sBAAsB,CAAC;IAMvG;;;OAGG;IACU,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvE;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAW7B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { TextmodePluginAPI } from 'textmode.js';
|
|
2
|
+
import type { VideoExportProgress, VideoGenerationOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Records frames from a canvas to create WEBM video files.
|
|
5
|
+
* Captures frames at specified intervals using textmode.js post-draw hooks
|
|
6
|
+
* and encodes them into a WEBM video format.
|
|
7
|
+
*/
|
|
8
|
+
export declare class VideoRecorder {
|
|
9
|
+
/**
|
|
10
|
+
* Records a sequence of frames from the provided canvas and encodes them as a WEBM video.
|
|
11
|
+
*
|
|
12
|
+
* @param canvas - Source canvas to capture frames from
|
|
13
|
+
* @param options - Video generation options
|
|
14
|
+
* @param registerPostDrawHook - Hook registration function from textmode.js API
|
|
15
|
+
* @param onProgress - Optional callback for recording progress updates
|
|
16
|
+
* @returns Promise resolving to a Blob containing the encoded WEBM video
|
|
17
|
+
* @throws Error if frame capture or encoding fails
|
|
18
|
+
*/
|
|
19
|
+
$record(canvas: HTMLCanvasElement, options: VideoGenerationOptions, registerPostDrawHook: TextmodePluginAPI['registerPostDrawHook'], onProgress?: (progress: VideoExportProgress) => void): Promise<Blob>;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a reusable snapshot function for capturing canvas frames.
|
|
22
|
+
* Uses a cached canvas and context to avoid repeated allocations.
|
|
23
|
+
*
|
|
24
|
+
* @returns Function that takes a canvas and returns a snapshot canvas
|
|
25
|
+
*/
|
|
26
|
+
private _createSnapshotSurface;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=VideoRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoRecorder.d.ts","sourceRoot":"","sources":["../../../../src/exporters/video/VideoRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAG3E;;;;GAIG;AACH,qBAAa,aAAa;IACxB;;;;;;;;;OASG;IACU,OAAO,CAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,sBAAsB,EAC/B,oBAAoB,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,EAC/D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,GACnD,OAAO,CAAC,IAAI,CAAC;IAuIhB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CAsD/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exporters/video/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export type VideoRecordingState = 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
|
|
2
|
+
/**
|
|
3
|
+
* Progress information emitted during the video export process.
|
|
4
|
+
*/
|
|
5
|
+
export type VideoExportProgress = {
|
|
6
|
+
/**
|
|
7
|
+
* Current state of the recording process.
|
|
8
|
+
*/
|
|
9
|
+
state: 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
|
|
10
|
+
/**
|
|
11
|
+
* Number of frames that have been recorded so far.
|
|
12
|
+
*/
|
|
13
|
+
frameIndex?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Total number of frames planned for the recording.
|
|
16
|
+
*/
|
|
17
|
+
totalFrames?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Optional status message for UI consumption.
|
|
20
|
+
*/
|
|
21
|
+
message?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Options for exporting the textmode content to video format.
|
|
25
|
+
*/
|
|
26
|
+
export type VideoExportOptions = {
|
|
27
|
+
/**
|
|
28
|
+
* Target filename without extension. Defaults to an auto-generated value.
|
|
29
|
+
*/
|
|
30
|
+
filename?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Desired total number of frames to capture. Defaults to `300`.
|
|
33
|
+
*/
|
|
34
|
+
frameCount?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Target frame rate for the export, in frames per second. Defaults to `60`.
|
|
37
|
+
*/
|
|
38
|
+
frameRate?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Encoder quality between 0.0 and 1.0. Higher values request higher fidelity. Defaults to `1.0` *(lossless)*.
|
|
41
|
+
*/
|
|
42
|
+
quality?: number;
|
|
43
|
+
/**
|
|
44
|
+
* When true, attempts to preserve alpha data in the recording *(experimental)*. Defaults to `false`.
|
|
45
|
+
*/
|
|
46
|
+
transparent?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Progress callback invoked throughout the recording lifecycle.
|
|
49
|
+
*/
|
|
50
|
+
onProgress?: (progress: VideoExportProgress) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Enables verbose logging. Defaults to `false`.
|
|
53
|
+
*/
|
|
54
|
+
debugLogging?: boolean;
|
|
55
|
+
};
|
|
56
|
+
export interface VideoGenerationOptions {
|
|
57
|
+
filename?: string;
|
|
58
|
+
frameRate: number;
|
|
59
|
+
frameCount: number;
|
|
60
|
+
quality: number;
|
|
61
|
+
transparent: boolean;
|
|
62
|
+
debugLogging: boolean;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/video/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,WAAW,GACX,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACjE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;MAEE;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrD;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TextmodePlugin } from 'textmode.js';
|
|
2
|
+
import type { TextmodeExportPluginOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Initializes the export plugin for `textmode.js` use.
|
|
5
|
+
* @param options Plugin options
|
|
6
|
+
* @returns The export plugin instance to pass to `textmode.js`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { textmode } from 'textmode.js';
|
|
11
|
+
* import { createExportPlugin } from 'textmode.export.js';
|
|
12
|
+
*
|
|
13
|
+
* const exportPlugin = createExportPlugin({ overlay: true });
|
|
14
|
+
*
|
|
15
|
+
* const textmodifier = textmode.create({
|
|
16
|
+
* plugins: [exportPlugin],
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Now textmodifier has export methods like saveSVG, saveCanvas, etc.
|
|
20
|
+
* // textmodifier.saveSVG({ filename: 'my-artwork' });
|
|
21
|
+
* // textmodifier.saveCanvas({ format: 'png', scale: 2.0 });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Creates and returns a textmode export plugin instance.
|
|
26
|
+
* In UMD builds, this is also available globally as `createTextmodeExportPlugin`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const createTextmodeExportPlugin: (options?: TextmodeExportPluginOptions) => TextmodePlugin;
|
|
29
|
+
export type { TextmodeExportAPI, TextmodeExportPluginOptions } from './types';
|
|
30
|
+
export type { ImageExportOptions } from './exporters/image';
|
|
31
|
+
export type { SVGExportOptions } from './exporters/svg';
|
|
32
|
+
export type { TXTExportOptions } from './exporters/txt';
|
|
33
|
+
export type { GIFExportOptions, GIFExportProgress } from './exporters/gif';
|
|
34
|
+
export type { VideoExportOptions, VideoExportProgress } from './exporters/video';
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,aAAa,CAAC;AAQnF,OAAO,KAAK,EAAqB,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,UAAS,2BAAgC,KACxC,cA4HF,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExportFormat } from '../types';
|
|
2
|
+
import { Component } from '../components/base/Component';
|
|
3
|
+
export interface BladeConfig<TOptions> {
|
|
4
|
+
label: string;
|
|
5
|
+
supportsClipboard: boolean;
|
|
6
|
+
format: ExportFormat;
|
|
7
|
+
defaultOptions: TOptions;
|
|
8
|
+
}
|
|
9
|
+
export declare abstract class Blade<TOptions> extends Component<void> {
|
|
10
|
+
protected readonly _config: BladeConfig<TOptions>;
|
|
11
|
+
private readonly _managedComponents;
|
|
12
|
+
constructor(config: BladeConfig<TOptions>);
|
|
13
|
+
abstract getOptions(): TOptions;
|
|
14
|
+
abstract reset(): void;
|
|
15
|
+
abstract validate(): boolean;
|
|
16
|
+
protected _manageComponent<TComponent extends Component<any>>(component: TComponent): TComponent;
|
|
17
|
+
protected _onUnmount(): void;
|
|
18
|
+
protected _onDestroy(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Blade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Blade.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/Blade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,8BAAsB,KAAK,CAAC,QAAQ,CAAE,SAAQ,SAAS,CAAC,IAAI,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;gBAEpD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;IAKzC,QAAQ,CAAC,UAAU,IAAI,QAAQ;IAC/B,QAAQ,CAAC,KAAK,IAAI,IAAI;IACtB,QAAQ,CAAC,QAAQ,IAAI,OAAO;IAE5B,SAAS,CAAC,gBAAgB,CAAC,UAAU,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU;IAKhG,SAAS,CAAC,UAAU,IAAI,IAAI;IAM5B,SAAS,CAAC,UAAU,IAAI,IAAI;CAM7B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { GIFExportOptions, GIFExportProgress, GIFRecordingState } from '../../exporters/gif';
|
|
2
|
+
import type { BladeConfig } from './Blade';
|
|
3
|
+
import { Blade } from './Blade';
|
|
4
|
+
export declare class GIFBlade extends Blade<GIFExportOptions> {
|
|
5
|
+
private frameCountInput;
|
|
6
|
+
private frameRateInput;
|
|
7
|
+
private scaleInput;
|
|
8
|
+
private repeatInput;
|
|
9
|
+
private status;
|
|
10
|
+
private recordingState;
|
|
11
|
+
constructor(config: BladeConfig<GIFExportOptions>);
|
|
12
|
+
render(): HTMLElement;
|
|
13
|
+
getOptions(): GIFExportOptions;
|
|
14
|
+
reset(): void;
|
|
15
|
+
validate(): boolean;
|
|
16
|
+
isRecording(): boolean;
|
|
17
|
+
setRecordingState(state: GIFRecordingState, progress?: GIFExportProgress): void;
|
|
18
|
+
handleProgress(progress: GIFExportProgress): void;
|
|
19
|
+
private applyDefaults;
|
|
20
|
+
private safeParseInt;
|
|
21
|
+
private safeParseFloat;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=GIFBlade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GIFBlade.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/GIFBlade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMlG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAShC,qBAAa,QAAS,SAAQ,KAAK,CAAC,gBAAgB,CAAC;IACnD,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,UAAU,CAKhB;IAEF,OAAO,CAAC,WAAW,CAWjB;IAEF,OAAO,CAAC,MAAM,CAOZ;IAEF,OAAO,CAAC,cAAc,CAA6B;gBAEvC,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAIjD,MAAM,IAAI,WAAW;IAmDrB,UAAU,IAAI,gBAAgB;IAU9B,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,OAAO;IAWnB,WAAW,IAAI,OAAO;IAItB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAiC/E,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAUjD,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;CAIvB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ImageExportOptions } from '../../exporters/image';
|
|
2
|
+
import type { BladeConfig } from './Blade';
|
|
3
|
+
import { Blade } from './Blade';
|
|
4
|
+
export declare class ImageBlade extends Blade<ImageExportOptions> {
|
|
5
|
+
private formatSelect;
|
|
6
|
+
private scaleInput;
|
|
7
|
+
constructor(config: BladeConfig<ImageExportOptions>);
|
|
8
|
+
render(): HTMLElement;
|
|
9
|
+
getOptions(): ImageExportOptions;
|
|
10
|
+
reset(): void;
|
|
11
|
+
validate(): boolean;
|
|
12
|
+
private applyDefaults;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ImageBlade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageBlade.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/ImageBlade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,uBAAuB,CAAC;AAO7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,UAAW,SAAQ,KAAK,CAAC,kBAAkB,CAAC;IACvD,OAAO,CAAC,YAAY,CAUlB;IAEF,OAAO,CAAC,UAAU,CAKhB;gBAEU,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC;IAInD,MAAM,IAAI,WAAW;IA2BrB,UAAU,IAAI,kBAAkB;IAQhC,KAAK,IAAI,IAAI;IAKb,QAAQ,IAAI,OAAO;IAKnB,OAAO,CAAC,aAAa;CAMtB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SVGExportOptions } from '../../exporters/svg';
|
|
2
|
+
import type { BladeConfig } from './Blade';
|
|
3
|
+
import { Blade } from './Blade';
|
|
4
|
+
export declare class SVGBlade extends Blade<SVGExportOptions> {
|
|
5
|
+
private includeBackground;
|
|
6
|
+
private drawMode;
|
|
7
|
+
private strokeWidth;
|
|
8
|
+
constructor(config: BladeConfig<SVGExportOptions>);
|
|
9
|
+
render(): HTMLElement;
|
|
10
|
+
getOptions(): SVGExportOptions;
|
|
11
|
+
reset(): void;
|
|
12
|
+
validate(): boolean;
|
|
13
|
+
private updateStrokeControls;
|
|
14
|
+
private applyDefaults;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=SVGBlade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGBlade.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/SVGBlade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,QAAS,SAAQ,KAAK,CAAC,gBAAgB,CAAC;IACnD,OAAO,CAAC,iBAAiB,CAMvB;IAEF,OAAO,CAAC,QAAQ,CASd;IAEF,OAAO,CAAC,WAAW,CAKjB;gBAEU,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAIjD,MAAM,IAAI,WAAW;IAgCrB,UAAU,IAAI,gBAAgB;IAQ9B,KAAK,IAAI,IAAI;IAKb,QAAQ,IAAI,OAAO;IAQnB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,aAAa;CAQtB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TXTExportOptions } from '../../exporters/txt';
|
|
2
|
+
import type { BladeConfig } from './Blade';
|
|
3
|
+
import { Blade } from './Blade';
|
|
4
|
+
export declare class TextBlade extends Blade<TXTExportOptions> {
|
|
5
|
+
private trailingSpaces;
|
|
6
|
+
private emptyCharacter;
|
|
7
|
+
constructor(config: BladeConfig<TXTExportOptions>);
|
|
8
|
+
render(): HTMLElement;
|
|
9
|
+
getOptions(): TXTExportOptions;
|
|
10
|
+
reset(): void;
|
|
11
|
+
validate(): boolean;
|
|
12
|
+
private applyDefaults;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=TextBlade.d.ts.map
|