textmode.export.js 1.5.2 → 1.6.0-beta.2
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/LICENSE +21 -0
- package/README.md +97 -152
- package/dist/textmode.export.esm.js +1 -5890
- package/dist/textmode.export.umd.js +1 -68
- package/dist/types/augmentations/index.d.ts +0 -1
- package/dist/types/augmentations/textmode.d.ts +0 -1
- package/dist/types/exporters/base/CharacterResolver.d.ts +0 -1
- package/dist/types/exporters/base/DataExtractor.d.ts +0 -1
- package/dist/types/exporters/base/FileHandler.d.ts +0 -1
- package/dist/types/exporters/base/FramePreparation.d.ts +10 -0
- package/dist/types/exporters/base/LayerTarget.d.ts +4 -3
- package/dist/types/exporters/base/index.d.ts +1 -1
- package/dist/types/exporters/gif/GIFEncoderWorker.d.ts +1 -0
- package/dist/types/exporters/gif/GIFExporter.d.ts +7 -27
- package/dist/types/exporters/gif/GIFRecorder.d.ts +0 -1
- package/dist/types/exporters/gif/GIFWorkerClient.d.ts +15 -0
- package/dist/types/exporters/gif/index.d.ts +0 -1
- package/dist/types/exporters/gif/types.d.ts +19 -1
- package/dist/types/exporters/image/ImageExporter.d.ts +2 -1
- package/dist/types/exporters/image/index.d.ts +0 -1
- package/dist/types/exporters/image/types.d.ts +2 -1
- package/dist/types/exporters/json/JSONDataExtractor.d.ts +0 -1
- package/dist/types/exporters/json/JSONExporter.d.ts +0 -1
- package/dist/types/exporters/json/index.d.ts +0 -1
- package/dist/types/exporters/json/types.d.ts +8 -1
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts +0 -1
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts +0 -1
- package/dist/types/exporters/svg/SVGExporter.d.ts +0 -1
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts +0 -1
- package/dist/types/exporters/svg/index.d.ts +0 -1
- package/dist/types/exporters/svg/types.d.ts +2 -1
- package/dist/types/exporters/txt/TXTExporter.d.ts +0 -1
- package/dist/types/exporters/txt/index.d.ts +0 -1
- package/dist/types/exporters/txt/types.d.ts +2 -1
- package/dist/types/exporters/video/VideoExporter.d.ts +2 -2
- package/dist/types/exporters/video/VideoFrameDriver.d.ts +0 -1
- package/dist/types/exporters/video/VideoRecorder.d.ts +0 -1
- package/dist/types/exporters/video/errors.d.ts +0 -1
- package/dist/types/exporters/video/index.d.ts +0 -1
- package/dist/types/exporters/video/types.d.ts +27 -1
- package/dist/types/exporters/video/withAbortableTimeout.d.ts +0 -1
- package/dist/types/index.d.ts +16 -56
- package/dist/types/overlay/blades/Blade.d.ts +9 -3
- package/dist/types/overlay/blades/GIFBlade.d.ts +1 -1
- package/dist/types/overlay/blades/ImageBlade.d.ts +1 -1
- package/dist/types/overlay/blades/JSONBlade.d.ts +1 -1
- package/dist/types/overlay/blades/RecordingBlade.d.ts +7 -0
- package/dist/types/overlay/blades/SVGBlade.d.ts +1 -1
- package/dist/types/overlay/blades/TextBlade.d.ts +1 -1
- package/dist/types/overlay/blades/VideoBlade.d.ts +1 -1
- package/dist/types/overlay/blades/index.d.ts +3 -1
- package/dist/types/overlay/components/actions/Button.d.ts +0 -1
- package/dist/types/overlay/components/base/Component.d.ts +0 -1
- package/dist/types/overlay/components/base/Container.d.ts +0 -1
- package/dist/types/overlay/components/base/Field.d.ts +0 -1
- package/dist/types/overlay/components/display/Header.d.ts +3 -1
- package/dist/types/overlay/components/display/StatusDisplay.d.ts +0 -1
- package/dist/types/overlay/components/inputs/CheckboxInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts +0 -1
- package/dist/types/overlay/components/inputs/NumberInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/RangeInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/SelectInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/TextInput.d.ts +0 -1
- package/dist/types/overlay/config/DefaultsStore.d.ts +11 -0
- package/dist/types/overlay/config/ExportDefaults.d.ts +3 -0
- package/dist/types/overlay/core/EventBus.d.ts +0 -1
- package/dist/types/overlay/core/OverlayController.d.ts +29 -6
- package/dist/types/overlay/core/StateManager.d.ts +0 -1
- package/dist/types/overlay/formatRegistry.d.ts +3 -2
- package/dist/types/overlay/index.d.ts +0 -2
- package/dist/types/overlay/models/FormatDefinition.d.ts +0 -1
- package/dist/types/overlay/models/OverlayEvents.d.ts +0 -1
- package/dist/types/overlay/models/OverlayState.d.ts +1 -2
- package/dist/types/overlay/services/ClipboardService.d.ts +1 -5
- package/dist/types/overlay/services/ExportService.d.ts +0 -2
- package/dist/types/overlay/services/OverlayPositionStorage.d.ts +12 -0
- package/dist/types/overlay/services/PositionService.d.ts +33 -3
- package/dist/types/overlay/types.d.ts +36 -2
- package/dist/types/overlay/utils/classes.d.ts +3 -1
- package/dist/types/types.d.ts +273 -34
- package/dist/types/utils/pixels.d.ts +0 -1
- package/dist/types/version.d.ts +0 -1
- package/package.json +87 -53
- package/dist/types/augmentations/index.d.ts.map +0 -1
- package/dist/types/augmentations/textmode.d.ts.map +0 -1
- package/dist/types/augmentations/textmode.test.d.ts +0 -2
- package/dist/types/augmentations/textmode.test.d.ts.map +0 -1
- package/dist/types/exporters/base/CharacterResolver.d.ts.map +0 -1
- package/dist/types/exporters/base/DataExtractor.d.ts.map +0 -1
- package/dist/types/exporters/base/FileHandler.d.ts.map +0 -1
- package/dist/types/exporters/base/LayerTarget.d.ts.map +0 -1
- package/dist/types/exporters/base/index.d.ts.map +0 -1
- package/dist/types/exporters/gif/GIFExporter.d.ts.map +0 -1
- package/dist/types/exporters/gif/GIFRecorder.d.ts.map +0 -1
- package/dist/types/exporters/gif/index.d.ts.map +0 -1
- package/dist/types/exporters/gif/types.d.ts.map +0 -1
- package/dist/types/exporters/image/ImageExporter.d.ts.map +0 -1
- package/dist/types/exporters/image/index.d.ts.map +0 -1
- package/dist/types/exporters/image/types.d.ts.map +0 -1
- package/dist/types/exporters/json/JSONDataExtractor.d.ts.map +0 -1
- package/dist/types/exporters/json/JSONExporter.d.ts.map +0 -1
- package/dist/types/exporters/json/JSONExporter.test.d.ts +0 -2
- package/dist/types/exporters/json/JSONExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/json/index.d.ts.map +0 -1
- package/dist/types/exporters/json/types.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGExporter.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGExporter.test.d.ts +0 -2
- package/dist/types/exporters/svg/SVGExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +0 -1
- package/dist/types/exporters/svg/index.d.ts.map +0 -1
- package/dist/types/exporters/svg/types.d.ts.map +0 -1
- package/dist/types/exporters/txt/TXTExporter.d.ts.map +0 -1
- package/dist/types/exporters/txt/TXTExporter.test.d.ts +0 -2
- package/dist/types/exporters/txt/TXTExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/txt/index.d.ts.map +0 -1
- package/dist/types/exporters/txt/types.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoExporter.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoExporter.test.d.ts +0 -2
- package/dist/types/exporters/video/VideoExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoFrameDriver.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoFrameDriver.test.d.ts +0 -2
- package/dist/types/exporters/video/VideoFrameDriver.test.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoRecorder.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoRecorder.test.d.ts +0 -2
- package/dist/types/exporters/video/VideoRecorder.test.d.ts.map +0 -1
- package/dist/types/exporters/video/errors.d.ts.map +0 -1
- package/dist/types/exporters/video/index.d.ts.map +0 -1
- package/dist/types/exporters/video/types.d.ts.map +0 -1
- package/dist/types/exporters/video/withAbortableTimeout.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/overlay/blades/Blade.d.ts.map +0 -1
- package/dist/types/overlay/blades/GIFBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/ImageBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/JSONBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/SVGBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/TextBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/VideoBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/index.d.ts.map +0 -1
- package/dist/types/overlay/components/actions/Button.d.ts.map +0 -1
- package/dist/types/overlay/components/base/Component.d.ts.map +0 -1
- package/dist/types/overlay/components/base/Container.d.ts.map +0 -1
- package/dist/types/overlay/components/base/Field.d.ts.map +0 -1
- package/dist/types/overlay/components/display/Header.d.ts.map +0 -1
- package/dist/types/overlay/components/display/StatusDisplay.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/CheckboxInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/NumberInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/RangeInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/SelectInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/TextInput.d.ts.map +0 -1
- package/dist/types/overlay/core/EventBus.d.ts.map +0 -1
- package/dist/types/overlay/core/OverlayController.d.ts.map +0 -1
- package/dist/types/overlay/core/StateManager.d.ts.map +0 -1
- package/dist/types/overlay/formatRegistry.d.ts.map +0 -1
- package/dist/types/overlay/formatRegistry.test.d.ts +0 -2
- package/dist/types/overlay/formatRegistry.test.d.ts.map +0 -1
- package/dist/types/overlay/index.d.ts.map +0 -1
- package/dist/types/overlay/models/FormatDefinition.d.ts.map +0 -1
- package/dist/types/overlay/models/OverlayEvents.d.ts.map +0 -1
- package/dist/types/overlay/models/OverlayState.d.ts.map +0 -1
- package/dist/types/overlay/services/ClipboardService.d.ts.map +0 -1
- package/dist/types/overlay/services/ExportService.d.ts.map +0 -1
- package/dist/types/overlay/services/PositionService.d.ts.map +0 -1
- package/dist/types/overlay/types.d.ts.map +0 -1
- package/dist/types/overlay/utils/classes.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/utils/pixels.d.ts.map +0 -1
- package/dist/types/version.d.ts.map +0 -1
|
@@ -5,6 +5,11 @@ interface ManagedComponent {
|
|
|
5
5
|
unmount(): void;
|
|
6
6
|
destroy(): void;
|
|
7
7
|
}
|
|
8
|
+
export interface BladeCapabilities {
|
|
9
|
+
clipboard: boolean;
|
|
10
|
+
layerTarget: boolean;
|
|
11
|
+
recording: boolean;
|
|
12
|
+
}
|
|
8
13
|
export interface BladeConfig<TOptions> {
|
|
9
14
|
label: string;
|
|
10
15
|
supportsClipboard: boolean;
|
|
@@ -13,15 +18,16 @@ export interface BladeConfig<TOptions> {
|
|
|
13
18
|
layerTargetProvider?: LayerTargetProvider;
|
|
14
19
|
}
|
|
15
20
|
export declare abstract class Blade<TOptions> extends Component<void> {
|
|
16
|
-
|
|
21
|
+
readonly capabilities: BladeCapabilities;
|
|
22
|
+
protected _config: BladeConfig<TOptions>;
|
|
17
23
|
private readonly _managedComponents;
|
|
18
|
-
constructor(config: BladeConfig<TOptions>);
|
|
24
|
+
constructor(config: BladeConfig<TOptions>, capabilities?: Partial<BladeCapabilities>);
|
|
19
25
|
abstract getOptions(): TOptions;
|
|
20
26
|
abstract reset(): void;
|
|
21
27
|
abstract validate(): boolean;
|
|
28
|
+
abstract setDefaults(values: Partial<TOptions>): void;
|
|
22
29
|
protected _manageComponent<TComponent extends ManagedComponent>(component: TComponent): TComponent;
|
|
23
30
|
protected _onUnmount(): void;
|
|
24
31
|
protected _onDestroy(): void;
|
|
25
32
|
}
|
|
26
33
|
export {};
|
|
27
|
-
//# sourceMappingURL=Blade.d.ts.map
|
|
@@ -11,6 +11,7 @@ export declare class GIFBlade extends Blade<GIFExportOptions> {
|
|
|
11
11
|
constructor(config: BladeConfig<GIFExportOptions>);
|
|
12
12
|
render(): HTMLElement;
|
|
13
13
|
getOptions(): GIFExportOptions;
|
|
14
|
+
setDefaults(values: Partial<GIFExportOptions>): void;
|
|
14
15
|
reset(): void;
|
|
15
16
|
validate(): boolean;
|
|
16
17
|
isRecording(): boolean;
|
|
@@ -20,4 +21,3 @@ export declare class GIFBlade extends Blade<GIFExportOptions> {
|
|
|
20
21
|
private safeParseInt;
|
|
21
22
|
private safeParseFloat;
|
|
22
23
|
}
|
|
23
|
-
//# sourceMappingURL=GIFBlade.d.ts.map
|
|
@@ -7,8 +7,8 @@ export declare class ImageBlade extends Blade<ImageExportOptions> {
|
|
|
7
7
|
constructor(config: BladeConfig<ImageExportOptions>);
|
|
8
8
|
render(): HTMLElement;
|
|
9
9
|
getOptions(): ImageExportOptions;
|
|
10
|
+
setDefaults(values: Partial<ImageExportOptions>): void;
|
|
10
11
|
reset(): void;
|
|
11
12
|
validate(): boolean;
|
|
12
13
|
private applyDefaults;
|
|
13
14
|
}
|
|
14
|
-
//# sourceMappingURL=ImageBlade.d.ts.map
|
|
@@ -11,10 +11,10 @@ export declare class JSONBlade extends Blade<JSONExportOptions> {
|
|
|
11
11
|
constructor(config: BladeConfig<JSONExportOptions>);
|
|
12
12
|
render(): HTMLElement;
|
|
13
13
|
getOptions(): JSONExportOptions;
|
|
14
|
+
setDefaults(values: Partial<JSONExportOptions>): void;
|
|
14
15
|
reset(): void;
|
|
15
16
|
validate(): boolean;
|
|
16
17
|
refreshLayerTargets(): void;
|
|
17
18
|
private applyDefaults;
|
|
18
19
|
private updateLayerTargetVisibility;
|
|
19
20
|
}
|
|
20
|
-
//# sourceMappingURL=JSONBlade.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Blade } from './Blade';
|
|
2
|
+
export interface RecordingBladeLike {
|
|
3
|
+
isRecording(): boolean;
|
|
4
|
+
setRecordingState(state: string, progress?: unknown): void;
|
|
5
|
+
handleProgress(progress: unknown): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function isRecordingBlade(blade: Blade<unknown>): blade is Blade<unknown> & RecordingBladeLike;
|
|
@@ -9,10 +9,10 @@ export declare class SVGBlade extends Blade<SVGExportOptions> {
|
|
|
9
9
|
constructor(config: BladeConfig<SVGExportOptions>);
|
|
10
10
|
render(): HTMLElement;
|
|
11
11
|
getOptions(): SVGExportOptions;
|
|
12
|
+
setDefaults(values: Partial<SVGExportOptions>): void;
|
|
12
13
|
reset(): void;
|
|
13
14
|
validate(): boolean;
|
|
14
15
|
refreshLayerTargets(): void;
|
|
15
16
|
private updateStrokeControls;
|
|
16
17
|
private applyDefaults;
|
|
17
18
|
}
|
|
18
|
-
//# sourceMappingURL=SVGBlade.d.ts.map
|
|
@@ -8,9 +8,9 @@ export declare class TextBlade extends Blade<TXTExportOptions> {
|
|
|
8
8
|
constructor(config: BladeConfig<TXTExportOptions>);
|
|
9
9
|
render(): HTMLElement;
|
|
10
10
|
getOptions(): TXTExportOptions;
|
|
11
|
+
setDefaults(values: Partial<TXTExportOptions>): void;
|
|
11
12
|
reset(): void;
|
|
12
13
|
validate(): boolean;
|
|
13
14
|
refreshLayerTargets(): void;
|
|
14
15
|
private applyDefaults;
|
|
15
16
|
}
|
|
16
|
-
//# sourceMappingURL=TextBlade.d.ts.map
|
|
@@ -16,6 +16,7 @@ export declare class VideoBlade extends Blade<VideoExportOptions> {
|
|
|
16
16
|
constructor(config: BladeConfig<VideoExportOptions>);
|
|
17
17
|
render(): HTMLElement;
|
|
18
18
|
getOptions(): VideoExportOptions;
|
|
19
|
+
setDefaults(values: Partial<VideoExportOptions>): void;
|
|
19
20
|
reset(): void;
|
|
20
21
|
validate(): boolean;
|
|
21
22
|
isRecording(): boolean;
|
|
@@ -28,4 +29,3 @@ export declare class VideoBlade extends Blade<VideoExportOptions> {
|
|
|
28
29
|
private readonly handleFormatChange;
|
|
29
30
|
private syncTransparencyAvailability;
|
|
30
31
|
}
|
|
31
|
-
//# sourceMappingURL=VideoBlade.d.ts.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { Blade } from './Blade';
|
|
2
|
+
export type { BladeCapabilities, BladeConfig } from './Blade';
|
|
2
3
|
export { TextBlade } from './TextBlade';
|
|
3
4
|
export { JSONBlade } from './JSONBlade';
|
|
4
5
|
export { ImageBlade } from './ImageBlade';
|
|
5
6
|
export { SVGBlade } from './SVGBlade';
|
|
6
7
|
export { GIFBlade } from './GIFBlade';
|
|
7
8
|
export { VideoBlade } from './VideoBlade';
|
|
8
|
-
|
|
9
|
+
export { isRecordingBlade } from './RecordingBlade';
|
|
10
|
+
export type { RecordingBladeLike } from './RecordingBlade';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Component } from '../base/Component';
|
|
2
2
|
export declare class Header extends Component<void> {
|
|
3
3
|
private static readonly _iconNamespace;
|
|
4
|
+
private _dragHandle?;
|
|
5
|
+
get dragHandleElement(): HTMLButtonElement;
|
|
4
6
|
render(): HTMLElement;
|
|
7
|
+
private _createButton;
|
|
5
8
|
private _createLink;
|
|
6
9
|
private _createIcon;
|
|
7
10
|
}
|
|
8
|
-
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExportDefaults, ExportDefaultsPatch, ExportFormat } from '../types';
|
|
2
|
+
export type ExportDefaultsResetTarget = ExportFormat | 'format';
|
|
3
|
+
export declare class DefaultsStore {
|
|
4
|
+
private _defaults;
|
|
5
|
+
constructor();
|
|
6
|
+
get current(): Readonly<ExportDefaults>;
|
|
7
|
+
snapshot(): ExportDefaults;
|
|
8
|
+
get<TFormat extends ExportFormat>(format: TFormat): ExportDefaults[TFormat];
|
|
9
|
+
merge(patch: ExportDefaultsPatch): void;
|
|
10
|
+
reset(target?: ExportDefaultsResetTarget): void;
|
|
11
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Textmodifier } from 'textmode.js';
|
|
2
2
|
import type { TextmodeExportAPI } from '../../types';
|
|
3
|
-
import {
|
|
4
|
-
import { StateManager } from './StateManager';
|
|
5
|
-
import type { OverlayEvents } from '../models/OverlayEvents';
|
|
6
|
-
import type { OverlayState } from '../models/OverlayState';
|
|
3
|
+
import type { ExportDefaults, ExportDefaultsPatch } from '../types';
|
|
7
4
|
import type { FormatDefinition } from '../models/FormatDefinition';
|
|
5
|
+
import { type OverlayPosition } from '../services/PositionService';
|
|
6
|
+
import { DefaultsStore } from '../config/DefaultsStore';
|
|
8
7
|
export declare class OverlayController {
|
|
9
8
|
private readonly _textmodifier;
|
|
9
|
+
private readonly _defaultsStore;
|
|
10
10
|
private readonly _state;
|
|
11
11
|
private readonly _events;
|
|
12
12
|
private readonly _exportService;
|
|
@@ -30,15 +30,39 @@ export declare class OverlayController {
|
|
|
30
30
|
private readonly _handleFormatSelectChange;
|
|
31
31
|
private readonly _handleExportClickSafe;
|
|
32
32
|
private readonly _handleCopyClickSafe;
|
|
33
|
-
constructor(textmodifier: Textmodifier, exportAPI: TextmodeExportAPI,
|
|
33
|
+
constructor(textmodifier: Textmodifier, exportAPI: TextmodeExportAPI, defaultsStore: DefaultsStore, definitions: ReadonlyArray<FormatDefinition>);
|
|
34
34
|
$mount(): void;
|
|
35
35
|
show(): void;
|
|
36
36
|
hide(): void;
|
|
37
37
|
toggle(): void;
|
|
38
38
|
isVisible(): boolean;
|
|
39
39
|
refreshLayerTargets(): void;
|
|
40
|
+
resetPosition(): void;
|
|
41
|
+
getPosition(): Readonly<OverlayPosition>;
|
|
42
|
+
setPosition(position: Pick<OverlayPosition, 'offsetX' | 'offsetY'>): void;
|
|
43
|
+
/**
|
|
44
|
+
* Override the curated per-format defaults at runtime.
|
|
45
|
+
*
|
|
46
|
+
* Merges the supplied patch into the internal defaults store and
|
|
47
|
+
* pushes the new values into every mounted blade. The currently
|
|
48
|
+
* visible blade is updated immediately; other formats pick up
|
|
49
|
+
* the new defaults when the user switches to them.
|
|
50
|
+
*/
|
|
51
|
+
setDefaults(patch: ExportDefaultsPatch): void;
|
|
52
|
+
/**
|
|
53
|
+
* Read the current effective defaults for every format.
|
|
54
|
+
*/
|
|
55
|
+
getDefaults(): Readonly<ExportDefaults>;
|
|
56
|
+
/**
|
|
57
|
+
* Restore one or all formats to the library's curated defaults.
|
|
58
|
+
*/
|
|
59
|
+
resetDefaults(target?: keyof ExportDefaults): void;
|
|
40
60
|
$dispose(): void;
|
|
61
|
+
private _resetAffectedBlades;
|
|
41
62
|
private _initializeFormatMap;
|
|
63
|
+
private _resolveInitialFormat;
|
|
64
|
+
private _getFormatKeys;
|
|
65
|
+
private _assertKnownFormat;
|
|
42
66
|
private _createOverlay;
|
|
43
67
|
private _renderStaticContent;
|
|
44
68
|
private _prepareFormatOptions;
|
|
@@ -50,4 +74,3 @@ export declare class OverlayController {
|
|
|
50
74
|
private _handleCopyClick;
|
|
51
75
|
private _updateExportButton;
|
|
52
76
|
}
|
|
53
|
-
//# sourceMappingURL=OverlayController.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ExportFormat } from './types';
|
|
2
2
|
import type { FormatDefinition } from './models/FormatDefinition';
|
|
3
3
|
import type { LayerTargetProvider } from '../exporters/base';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import type { ExportDefaults } from './types';
|
|
5
|
+
export type ExportDefaultsProvider = <TFormat extends ExportFormat>(format: TFormat) => ExportDefaults[TFormat];
|
|
6
|
+
export declare function getExportFormatDefinitions(layerTargetProvider?: LayerTargetProvider, getDefaults?: ExportDefaultsProvider): ReadonlyArray<FormatDefinition<ExportFormat>>;
|
|
@@ -2,7 +2,6 @@ import type { Textmodifier } from 'textmode.js';
|
|
|
2
2
|
import type { TextmodeExportAPI } from '../types';
|
|
3
3
|
import type { LayerTargetProvider } from '../exporters/base';
|
|
4
4
|
import { OverlayController } from './core/OverlayController';
|
|
5
|
-
export type { ExportFormat } from './types';
|
|
6
5
|
/**
|
|
7
6
|
* Creates an export overlay controller.
|
|
8
7
|
*
|
|
@@ -12,4 +11,3 @@ export type { ExportFormat } from './types';
|
|
|
12
11
|
* @returns The overlay controller instance.
|
|
13
12
|
*/
|
|
14
13
|
export declare function createExportOverlay(textmodifier: Textmodifier, exportAPI: TextmodeExportAPI, layerTargetProvider?: LayerTargetProvider): OverlayController;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -12,5 +12,4 @@ export interface OverlayState {
|
|
|
12
12
|
videoProgress?: VideoExportProgress;
|
|
13
13
|
error?: Error;
|
|
14
14
|
}
|
|
15
|
-
export declare const createInitialOverlayState: (
|
|
16
|
-
//# sourceMappingURL=OverlayState.d.ts.map
|
|
15
|
+
export declare const createInitialOverlayState: (initialFormat: ExportFormat) => OverlayState;
|
|
@@ -4,11 +4,7 @@ type ClipboardExportFormat = Extract<ExportFormat, 'txt' | 'json' | 'svg' | 'ima
|
|
|
4
4
|
export declare class ClipboardService {
|
|
5
5
|
private readonly api;
|
|
6
6
|
constructor(api: TextmodeExportAPI);
|
|
7
|
-
$copy(format: 'txt', options: ExportOptionsMap['txt']): Promise<void>;
|
|
8
|
-
$copy(format: 'json', options: ExportOptionsMap['json']): Promise<void>;
|
|
9
|
-
$copy(format: 'svg', options: ExportOptionsMap['svg']): Promise<void>;
|
|
10
|
-
$copy(format: 'image', options: ExportOptionsMap['image']): Promise<void>;
|
|
11
7
|
$copy(format: ClipboardExportFormat, options: ExportOptionsMap[ClipboardExportFormat]): Promise<void>;
|
|
8
|
+
static isClipboardFormat(format: ExportFormat): format is ClipboardExportFormat;
|
|
12
9
|
}
|
|
13
10
|
export {};
|
|
14
|
-
//# sourceMappingURL=ClipboardService.d.ts.map
|
|
@@ -13,6 +13,4 @@ export declare class ExportService {
|
|
|
13
13
|
private readonly events;
|
|
14
14
|
constructor(api: TextmodeExportAPI, events: EventBus<OverlayEvents>);
|
|
15
15
|
$requestExport(format: ExportFormat, options: unknown, hooks?: ExportHooks): Promise<void>;
|
|
16
|
-
private _execute;
|
|
17
16
|
}
|
|
18
|
-
//# sourceMappingURL=ExportService.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface StoredOverlayPosition {
|
|
2
|
+
version: 1;
|
|
3
|
+
offsetX: number;
|
|
4
|
+
offsetY: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class OverlayPositionStorage {
|
|
7
|
+
private readonly key;
|
|
8
|
+
constructor(key?: string);
|
|
9
|
+
load(): StoredOverlayPosition | undefined;
|
|
10
|
+
save(offsetX: number, offsetY: number): void;
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
@@ -1,14 +1,44 @@
|
|
|
1
1
|
import type { Textmodifier } from 'textmode.js';
|
|
2
|
+
import { OverlayPositionStorage } from './OverlayPositionStorage';
|
|
3
|
+
export interface OverlayPosition {
|
|
4
|
+
mode: 'auto' | 'custom';
|
|
5
|
+
offsetX: number;
|
|
6
|
+
offsetY: number;
|
|
7
|
+
}
|
|
8
|
+
interface SetPositionOptions {
|
|
9
|
+
persist?: boolean;
|
|
10
|
+
}
|
|
2
11
|
export declare class PositionService {
|
|
3
12
|
private readonly modifier;
|
|
4
|
-
private readonly
|
|
13
|
+
private readonly host;
|
|
14
|
+
private readonly surface;
|
|
15
|
+
private readonly storage;
|
|
5
16
|
private animationFrameId;
|
|
6
17
|
private readonly handleUpdate;
|
|
7
18
|
private bound;
|
|
8
|
-
|
|
19
|
+
private dragHandle?;
|
|
20
|
+
private dragState?;
|
|
21
|
+
private position;
|
|
22
|
+
private renderedOffset;
|
|
23
|
+
private readonly handlePointerDown;
|
|
24
|
+
private readonly handlePointerMove;
|
|
25
|
+
private readonly handlePointerUp;
|
|
26
|
+
private readonly handleKeyDown;
|
|
27
|
+
constructor(modifier: Textmodifier, host: HTMLElement, surface?: HTMLElement, storage?: OverlayPositionStorage);
|
|
28
|
+
getPosition(): Readonly<OverlayPosition>;
|
|
29
|
+
setPosition(position: Pick<OverlayPosition, 'offsetX' | 'offsetY'>, options?: SetPositionOptions): void;
|
|
30
|
+
resetPosition(): void;
|
|
9
31
|
scheduleUpdate(): void;
|
|
10
32
|
bind(): void;
|
|
33
|
+
attachDragHandle(handle: HTMLElement): void;
|
|
34
|
+
private detachDragHandle;
|
|
35
|
+
private onPointerDown;
|
|
36
|
+
private onPointerMove;
|
|
37
|
+
private onPointerUp;
|
|
38
|
+
private onKeyDown;
|
|
11
39
|
private update;
|
|
40
|
+
private clampToViewport;
|
|
41
|
+
private clamp;
|
|
12
42
|
dispose(): void;
|
|
13
43
|
}
|
|
14
|
-
|
|
44
|
+
export {};
|
|
@@ -2,7 +2,7 @@ import type { ImageExportOptions } from '../exporters/image';
|
|
|
2
2
|
import type { TXTExportOptions } from '../exporters/txt';
|
|
3
3
|
import type { SVGExportOptions } from '../exporters/svg';
|
|
4
4
|
import type { GIFExportOptions } from '../exporters/gif';
|
|
5
|
-
import type { VideoExportOptions } from '../exporters/video';
|
|
5
|
+
import type { VideoBitratePreset, VideoExportOptions } from '../exporters/video';
|
|
6
6
|
import type { JSONExportOptions } from '../exporters/json';
|
|
7
7
|
export type ExportFormat = 'txt' | 'json' | 'image' | 'gif' | 'video' | 'svg';
|
|
8
8
|
export type ExportOptionsMap = {
|
|
@@ -13,4 +13,38 @@ export type ExportOptionsMap = {
|
|
|
13
13
|
video: VideoExportOptions;
|
|
14
14
|
svg: SVGExportOptions;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
export type TXTOverlayDefaults = Pick<TXTExportOptions, 'preserveTrailingSpaces' | 'emptyCharacter'>;
|
|
17
|
+
export type JSONOverlayDefaults = Pick<JSONExportOptions, 'target' | 'pretty' | 'includeMetadata' | 'colorMode'>;
|
|
18
|
+
export type ImageOverlayDefaults = Pick<ImageExportOptions, 'format' | 'scale'>;
|
|
19
|
+
export type SVGOverlayDefaults = Pick<SVGExportOptions, 'includeBackgroundRectangles' | 'drawMode' | 'strokeWidth'>;
|
|
20
|
+
export type GIFOverlayDefaults = Pick<GIFExportOptions, 'frameCount' | 'frameRate' | 'scale' | 'repeat'>;
|
|
21
|
+
export type VideoOverlayDefaults = Pick<VideoExportOptions, 'format' | 'frameCount' | 'frameRate' | 'bitrateMode' | 'latencyMode' | 'hardwareAcceleration' | 'keyFrameInterval' | 'transparent'> & {
|
|
22
|
+
bitrate?: VideoBitratePreset;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Curated default options for every export format.
|
|
26
|
+
*
|
|
27
|
+
* Each sub-object contains the library-chosen default values for the fields
|
|
28
|
+
* that the overlay exposes as inputs. These are the values applied when the
|
|
29
|
+
* overlay first mounts and after a {@link OverlayController.resetDefaults}.
|
|
30
|
+
*/
|
|
31
|
+
export type ExportDefaults = {
|
|
32
|
+
format: ExportFormat;
|
|
33
|
+
txt: TXTOverlayDefaults;
|
|
34
|
+
json: JSONOverlayDefaults;
|
|
35
|
+
image: ImageOverlayDefaults;
|
|
36
|
+
svg: SVGOverlayDefaults;
|
|
37
|
+
gif: GIFOverlayDefaults;
|
|
38
|
+
video: VideoOverlayDefaults;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Partial patch accepted by {@link OverlayController.setDefaults}.
|
|
42
|
+
*
|
|
43
|
+
* Every supplied sub-object is deep-merged into the corresponding format's
|
|
44
|
+
* curated defaults. Omitted keys keep their current value.
|
|
45
|
+
*/
|
|
46
|
+
export type ExportDefaultsPatch = {
|
|
47
|
+
format?: ExportFormat;
|
|
48
|
+
} & {
|
|
49
|
+
[K in ExportFormat]?: Partial<ExportDefaults[K]>;
|
|
50
|
+
};
|
|
@@ -6,7 +6,10 @@ export declare const overlayClasses: {
|
|
|
6
6
|
readonly section: "textmode-export-overlay__section";
|
|
7
7
|
readonly header: "textmode-export-overlay__header";
|
|
8
8
|
readonly headerTitleRow: "textmode-export-overlay__header-title-row";
|
|
9
|
+
readonly headerIdentity: "textmode-export-overlay__header-identity";
|
|
9
10
|
readonly headerLinks: "textmode-export-overlay__header-links";
|
|
11
|
+
readonly grabHandle: "textmode-export-overlay__grab-handle";
|
|
12
|
+
readonly rootDragging: "textmode-export-overlay--dragging";
|
|
10
13
|
readonly row: "textmode-export-overlay__row";
|
|
11
14
|
readonly label: "textmode-export-overlay__label";
|
|
12
15
|
readonly field: "textmode-export-overlay__field";
|
|
@@ -32,4 +35,3 @@ export declare const overlayClasses: {
|
|
|
32
35
|
readonly supportIcon: "textmode-export-overlay__support-icon";
|
|
33
36
|
readonly linkIcon: "textmode-export-overlay__link-icon";
|
|
34
37
|
};
|
|
35
|
-
//# sourceMappingURL=classes.d.ts.map
|