@flowscape-ui/core-sdk 1.0.3 → 1.0.4
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 +30 -32
- package/dist/index.cjs +57 -1
- package/dist/index.d.cts +414 -1
- package/dist/index.d.ts +414 -1
- package/dist/index.js +57 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -260,6 +260,85 @@ interface GroupNodeHandle extends NodeHandle {
|
|
|
260
260
|
height: number;
|
|
261
261
|
}): this;
|
|
262
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Handle for SvgNode
|
|
265
|
+
*/
|
|
266
|
+
interface SvgNodeHandle extends NodeHandle {
|
|
267
|
+
setSrc(url: string, onLoad?: (node: unknown) => void, onError?: (error: Error) => void): Promise<unknown>;
|
|
268
|
+
setSize(size: {
|
|
269
|
+
width: number;
|
|
270
|
+
height: number;
|
|
271
|
+
}): this;
|
|
272
|
+
setCornerRadius(radius: number | number[]): this;
|
|
273
|
+
setOpacity(opacity: number): this;
|
|
274
|
+
getSize(): {
|
|
275
|
+
width: number;
|
|
276
|
+
height: number;
|
|
277
|
+
};
|
|
278
|
+
getCornerRadius(): number;
|
|
279
|
+
getOpacity(): number;
|
|
280
|
+
isLoading(): boolean;
|
|
281
|
+
isLoaded(): boolean;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Handle for VideoNode
|
|
285
|
+
*/
|
|
286
|
+
interface VideoNodeHandle extends NodeHandle {
|
|
287
|
+
setSrc(url: string, options?: Record<string, unknown>): Promise<unknown>;
|
|
288
|
+
play(): Promise<unknown>;
|
|
289
|
+
pause(): this;
|
|
290
|
+
stop(): this;
|
|
291
|
+
setCurrentTime(time: number): this;
|
|
292
|
+
getCurrentTime(): number;
|
|
293
|
+
getDuration(): number;
|
|
294
|
+
setVolume(volume: number): this;
|
|
295
|
+
getVolume(): number;
|
|
296
|
+
setMuted(muted: boolean): this;
|
|
297
|
+
isMuted(): boolean;
|
|
298
|
+
setLoop(loop: boolean): this;
|
|
299
|
+
isLoop(): boolean;
|
|
300
|
+
setPlaybackRate(rate: number): this;
|
|
301
|
+
getPlaybackRate(): number;
|
|
302
|
+
isPlaying(): boolean;
|
|
303
|
+
isLoaded(): boolean;
|
|
304
|
+
getVideoElement(): HTMLVideoElement | null;
|
|
305
|
+
setSize(size: {
|
|
306
|
+
width: number;
|
|
307
|
+
height: number;
|
|
308
|
+
}): this;
|
|
309
|
+
setCornerRadius(radius: number | number[]): this;
|
|
310
|
+
setOpacity(opacity: number): this;
|
|
311
|
+
getSize(): {
|
|
312
|
+
width: number;
|
|
313
|
+
height: number;
|
|
314
|
+
};
|
|
315
|
+
getCornerRadius(): number;
|
|
316
|
+
getOpacity(): number;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Handle for GifNode
|
|
320
|
+
*/
|
|
321
|
+
interface GifNodeHandle extends NodeHandle {
|
|
322
|
+
setSrc(url: string, options?: Record<string, unknown>): Promise<unknown>;
|
|
323
|
+
play(): this;
|
|
324
|
+
pause(): this;
|
|
325
|
+
isPlaying(): boolean;
|
|
326
|
+
isLoaded(): boolean;
|
|
327
|
+
getFrameIndex(): number;
|
|
328
|
+
getCanvas(): HTMLCanvasElement | null;
|
|
329
|
+
setSize(size: {
|
|
330
|
+
width: number;
|
|
331
|
+
height: number;
|
|
332
|
+
}): this;
|
|
333
|
+
setCornerRadius(radius: number | number[]): this;
|
|
334
|
+
setOpacity(opacity: number): this;
|
|
335
|
+
getSize(): {
|
|
336
|
+
width: number;
|
|
337
|
+
height: number;
|
|
338
|
+
};
|
|
339
|
+
getCornerRadius(): number;
|
|
340
|
+
getOpacity(): number;
|
|
341
|
+
}
|
|
263
342
|
|
|
264
343
|
interface BaseNodeOptions {
|
|
265
344
|
id?: string;
|
|
@@ -447,6 +526,97 @@ interface EllipseNodeOptions extends BaseNodeOptions {
|
|
|
447
526
|
strokeWidth?: number;
|
|
448
527
|
}
|
|
449
528
|
|
|
529
|
+
interface MediaPlaceholderOptions {
|
|
530
|
+
text: string;
|
|
531
|
+
textColor: string;
|
|
532
|
+
font: string;
|
|
533
|
+
backgroundColor: string;
|
|
534
|
+
borderColor: string;
|
|
535
|
+
baseSpinnerColor: string;
|
|
536
|
+
accentSpinnerColor: string;
|
|
537
|
+
lineWidth: number;
|
|
538
|
+
fallbackWidth: number;
|
|
539
|
+
fallbackHeight: number;
|
|
540
|
+
}
|
|
541
|
+
declare class MediaPlaceholder {
|
|
542
|
+
private readonly _node;
|
|
543
|
+
private _options;
|
|
544
|
+
private _rafId;
|
|
545
|
+
private _startTime;
|
|
546
|
+
private _lastDrawTime;
|
|
547
|
+
private _canvas;
|
|
548
|
+
private _ctx;
|
|
549
|
+
private _logicalWidth;
|
|
550
|
+
private _logicalHeight;
|
|
551
|
+
private _pixelRatio;
|
|
552
|
+
private readonly _maxPixelRatio;
|
|
553
|
+
private readonly _maxCanvasPixels;
|
|
554
|
+
private readonly _targetFps;
|
|
555
|
+
constructor(node: Konva.Image, options?: Partial<MediaPlaceholderOptions>);
|
|
556
|
+
setOptions(options: Partial<MediaPlaceholderOptions>): void;
|
|
557
|
+
start(): void;
|
|
558
|
+
stop(): void;
|
|
559
|
+
private _tick;
|
|
560
|
+
private _getPixelRatio;
|
|
561
|
+
private _draw;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
declare global {
|
|
565
|
+
interface Window {
|
|
566
|
+
gifler?: (url: string) => GiflerInstance;
|
|
567
|
+
}
|
|
568
|
+
interface GiflerInstance {
|
|
569
|
+
frames: (canvas: HTMLCanvasElement, onDrawFrame: (ctx: CanvasRenderingContext2D, frame: GiflerFrame) => void) => void;
|
|
570
|
+
}
|
|
571
|
+
interface GiflerFrame {
|
|
572
|
+
width: number;
|
|
573
|
+
height: number;
|
|
574
|
+
buffer: HTMLCanvasElement;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
interface GifNodeOptions extends BaseNodeOptions {
|
|
578
|
+
src?: string;
|
|
579
|
+
width?: number;
|
|
580
|
+
height?: number;
|
|
581
|
+
cornerRadius?: number | number[];
|
|
582
|
+
autoplay?: boolean;
|
|
583
|
+
placeholder?: Partial<MediaPlaceholderOptions>;
|
|
584
|
+
onLoad?: (node: GifNode) => void;
|
|
585
|
+
onError?: (error: Error) => void;
|
|
586
|
+
onFrame?: (node: GifNode, frameIndex: number) => void;
|
|
587
|
+
}
|
|
588
|
+
declare class GifNode extends BaseNode<Konva.Image> {
|
|
589
|
+
private _canvas;
|
|
590
|
+
private _placeholder;
|
|
591
|
+
private _isLoaded;
|
|
592
|
+
private _isPlaying;
|
|
593
|
+
private _giflerLoaded;
|
|
594
|
+
private _frameIndex;
|
|
595
|
+
constructor(options?: GifNodeOptions);
|
|
596
|
+
setSrc(url: string, options?: Omit<GifNodeOptions, 'src' | 'x' | 'y' | 'width' | 'height'>): Promise<this>;
|
|
597
|
+
play(): this;
|
|
598
|
+
pause(): this;
|
|
599
|
+
isPlaying(): boolean;
|
|
600
|
+
isLoaded(): boolean;
|
|
601
|
+
getFrameIndex(): number;
|
|
602
|
+
getCanvas(): HTMLCanvasElement | null;
|
|
603
|
+
getSize(): {
|
|
604
|
+
width: number;
|
|
605
|
+
height: number;
|
|
606
|
+
};
|
|
607
|
+
setSize({ width, height }: {
|
|
608
|
+
width: number;
|
|
609
|
+
height: number;
|
|
610
|
+
}): this;
|
|
611
|
+
setCornerRadius(radius: number | number[]): this;
|
|
612
|
+
getCornerRadius(): number;
|
|
613
|
+
setOpacity(opacity: number): this;
|
|
614
|
+
getOpacity(): number;
|
|
615
|
+
private _ensureGiflerLibrary;
|
|
616
|
+
private _cleanup;
|
|
617
|
+
remove(): void;
|
|
618
|
+
}
|
|
619
|
+
|
|
450
620
|
interface GroupNodeOptions extends BaseNodeOptions {
|
|
451
621
|
draggable?: boolean;
|
|
452
622
|
listening?: boolean;
|
|
@@ -464,8 +634,11 @@ interface ImageNodeOptions extends BaseNodeOptions {
|
|
|
464
634
|
src?: string;
|
|
465
635
|
width?: number;
|
|
466
636
|
height?: number;
|
|
637
|
+
cornerRadius?: number | number[];
|
|
638
|
+
placeholder?: Partial<MediaPlaceholderOptions>;
|
|
467
639
|
}
|
|
468
640
|
declare class ImageNode extends BaseNode<Konva.Image> {
|
|
641
|
+
private _placeholder;
|
|
469
642
|
constructor(options?: ImageNodeOptions);
|
|
470
643
|
getSize(): {
|
|
471
644
|
width: number;
|
|
@@ -487,6 +660,7 @@ declare class ImageNode extends BaseNode<Konva.Image> {
|
|
|
487
660
|
setCornerRadius(radius: number | number[]): this;
|
|
488
661
|
getCornerRadius(): number;
|
|
489
662
|
private _loadHTMLImage;
|
|
663
|
+
remove(): void;
|
|
490
664
|
}
|
|
491
665
|
|
|
492
666
|
interface RegularPolygonNodeOptions extends BaseNodeOptions {
|
|
@@ -536,6 +710,38 @@ interface StarNodeOptions extends BaseNodeOptions {
|
|
|
536
710
|
strokeWidth?: number;
|
|
537
711
|
}
|
|
538
712
|
|
|
713
|
+
interface SvgNodeOptions extends BaseNodeOptions {
|
|
714
|
+
src?: string;
|
|
715
|
+
width?: number;
|
|
716
|
+
height?: number;
|
|
717
|
+
cornerRadius?: number | number[];
|
|
718
|
+
placeholder?: Partial<MediaPlaceholderOptions>;
|
|
719
|
+
onLoad?: (node: SvgNode) => void;
|
|
720
|
+
onError?: (error: Error) => void;
|
|
721
|
+
}
|
|
722
|
+
declare class SvgNode extends BaseNode<Konva.Image> {
|
|
723
|
+
private _isLoading;
|
|
724
|
+
private _isLoaded;
|
|
725
|
+
private _placeholder;
|
|
726
|
+
constructor(options?: SvgNodeOptions);
|
|
727
|
+
isLoading(): boolean;
|
|
728
|
+
isLoaded(): boolean;
|
|
729
|
+
getSize(): {
|
|
730
|
+
width: number;
|
|
731
|
+
height: number;
|
|
732
|
+
};
|
|
733
|
+
setSrc(url: string, onLoad?: (node: SvgNode) => void, onError?: (error: Error) => void): Promise<this>;
|
|
734
|
+
setSize({ width, height }: {
|
|
735
|
+
width: number;
|
|
736
|
+
height: number;
|
|
737
|
+
}): this;
|
|
738
|
+
setCornerRadius(radius: number | number[]): this;
|
|
739
|
+
getCornerRadius(): number;
|
|
740
|
+
setOpacity(opacity: number): this;
|
|
741
|
+
getOpacity(): number;
|
|
742
|
+
remove(): void;
|
|
743
|
+
}
|
|
744
|
+
|
|
539
745
|
interface TextNodeOptions extends BaseNodeOptions {
|
|
540
746
|
text?: string;
|
|
541
747
|
fontSize?: number;
|
|
@@ -612,11 +818,77 @@ declare class TextNode extends BaseNode<Konva.Text> {
|
|
|
612
818
|
private _keyHandler;
|
|
613
819
|
private _clickHandler;
|
|
614
820
|
private _syncTextareaRafId;
|
|
821
|
+
private _inputHandler;
|
|
822
|
+
private _prevWrap;
|
|
823
|
+
private _getWrappedLineCount;
|
|
824
|
+
private _ensureHeightFitsWrappedText;
|
|
825
|
+
private _ensureWidthFitsText;
|
|
826
|
+
private _syncNodeSizeFromTextarea;
|
|
615
827
|
private _syncTextareaPosition;
|
|
616
828
|
private _openTextarea;
|
|
617
829
|
private _saveAndClose;
|
|
618
830
|
}
|
|
619
831
|
|
|
832
|
+
interface VideoNodeOptions extends BaseNodeOptions {
|
|
833
|
+
src?: string;
|
|
834
|
+
width?: number;
|
|
835
|
+
height?: number;
|
|
836
|
+
cornerRadius?: number | number[];
|
|
837
|
+
autoplay?: boolean;
|
|
838
|
+
loop?: boolean;
|
|
839
|
+
muted?: boolean;
|
|
840
|
+
currentTime?: number;
|
|
841
|
+
volume?: number;
|
|
842
|
+
playbackRate?: number;
|
|
843
|
+
placeholder?: Partial<MediaPlaceholderOptions>;
|
|
844
|
+
onLoadedMetadata?: (node: VideoNode, video: HTMLVideoElement) => void;
|
|
845
|
+
onError?: (error: Error) => void;
|
|
846
|
+
onPlay?: (node: VideoNode) => void;
|
|
847
|
+
onPause?: (node: VideoNode) => void;
|
|
848
|
+
onEnded?: (node: VideoNode) => void;
|
|
849
|
+
}
|
|
850
|
+
declare class VideoNode extends BaseNode<Konva.Image> {
|
|
851
|
+
private _videoElement;
|
|
852
|
+
private _animation;
|
|
853
|
+
private _placeholder;
|
|
854
|
+
private _isPlaying;
|
|
855
|
+
private _isLoaded;
|
|
856
|
+
constructor(options?: VideoNodeOptions);
|
|
857
|
+
setSrc(url: string, options?: Omit<VideoNodeOptions, 'src' | 'x' | 'y' | 'width' | 'height'>): Promise<this>;
|
|
858
|
+
play(): Promise<this>;
|
|
859
|
+
pause(): this;
|
|
860
|
+
stop(): this;
|
|
861
|
+
setCurrentTime(time: number): this;
|
|
862
|
+
getCurrentTime(): number;
|
|
863
|
+
getDuration(): number;
|
|
864
|
+
setVolume(volume: number): this;
|
|
865
|
+
getVolume(): number;
|
|
866
|
+
setMuted(muted: boolean): this;
|
|
867
|
+
isMuted(): boolean;
|
|
868
|
+
setLoop(loop: boolean): this;
|
|
869
|
+
isLoop(): boolean;
|
|
870
|
+
setPlaybackRate(rate: number): this;
|
|
871
|
+
getPlaybackRate(): number;
|
|
872
|
+
isPlaying(): boolean;
|
|
873
|
+
isLoaded(): boolean;
|
|
874
|
+
getVideoElement(): HTMLVideoElement | null;
|
|
875
|
+
getSize(): {
|
|
876
|
+
width: number;
|
|
877
|
+
height: number;
|
|
878
|
+
};
|
|
879
|
+
setSize({ width, height }: {
|
|
880
|
+
width: number;
|
|
881
|
+
height: number;
|
|
882
|
+
}): this;
|
|
883
|
+
setCornerRadius(radius: number | number[]): this;
|
|
884
|
+
getCornerRadius(): number;
|
|
885
|
+
setOpacity(opacity: number): this;
|
|
886
|
+
getOpacity(): number;
|
|
887
|
+
private _ensureAnimation;
|
|
888
|
+
private _cleanup;
|
|
889
|
+
remove(): void;
|
|
890
|
+
}
|
|
891
|
+
|
|
620
892
|
declare class NodeManager {
|
|
621
893
|
private _layer;
|
|
622
894
|
private _world;
|
|
@@ -642,6 +914,9 @@ declare class NodeManager {
|
|
|
642
914
|
addRing(options: RingNodeOptions): RingNodeHandle;
|
|
643
915
|
addRegularPolygon(options: RegularPolygonNodeOptions): RegularPolygonNodeHandle;
|
|
644
916
|
addGroup(options: GroupNodeOptions): GroupNodeHandle;
|
|
917
|
+
addSvg(options: SvgNodeOptions): SvgNodeHandle;
|
|
918
|
+
addVideo(options: VideoNodeOptions): VideoNodeHandle;
|
|
919
|
+
addGif(options: GifNodeOptions): GifNodeHandle;
|
|
645
920
|
remove(node: BaseNode): void;
|
|
646
921
|
findById(id: string): BaseNode | undefined;
|
|
647
922
|
list(): BaseNode[];
|
|
@@ -1113,10 +1388,16 @@ declare class AreaSelectionPlugin extends Plugin {
|
|
|
1113
1388
|
private _selecting;
|
|
1114
1389
|
private _skipNextClick;
|
|
1115
1390
|
private _lastPickedBaseNodes;
|
|
1391
|
+
private _autoPanRafId;
|
|
1392
|
+
private _autoPanActive;
|
|
1393
|
+
private _autoPanEdgePx;
|
|
1394
|
+
private _autoPanMaxSpeedPx;
|
|
1116
1395
|
private _options;
|
|
1117
1396
|
constructor(options?: AreaSelectionPluginOptions);
|
|
1118
1397
|
protected onAttach(core: CoreEngine): void;
|
|
1119
1398
|
protected onDetach(core: CoreEngine): void;
|
|
1399
|
+
private _startAutoPanLoop;
|
|
1400
|
+
private _stopAutoPanLoop;
|
|
1120
1401
|
private _finalizeArea;
|
|
1121
1402
|
private _clearSelection;
|
|
1122
1403
|
private _getSelectionPlugin;
|
|
@@ -1162,6 +1443,43 @@ declare class CameraHotkeysPlugin extends Plugin {
|
|
|
1162
1443
|
private _pan;
|
|
1163
1444
|
}
|
|
1164
1445
|
|
|
1446
|
+
interface ContentFromClipboardPluginOptions {
|
|
1447
|
+
target?: Window | Document | HTMLElement | EventTarget;
|
|
1448
|
+
ignoreEditableTargets?: boolean;
|
|
1449
|
+
maxImageSize?: number;
|
|
1450
|
+
enableDragDrop?: boolean;
|
|
1451
|
+
}
|
|
1452
|
+
declare class ContentFromClipboardPlugin extends Plugin {
|
|
1453
|
+
private _core?;
|
|
1454
|
+
private _options;
|
|
1455
|
+
private _dragDropAddon;
|
|
1456
|
+
constructor(options?: ContentFromClipboardPluginOptions);
|
|
1457
|
+
protected onAttach(core: CoreEngine): void;
|
|
1458
|
+
protected onDetach(_core: CoreEngine): void;
|
|
1459
|
+
private _onPaste;
|
|
1460
|
+
private _handlePaste;
|
|
1461
|
+
handleDrop(e: DragEvent): Promise<void>;
|
|
1462
|
+
private _handleDataTransfer;
|
|
1463
|
+
private _pasteSvgText;
|
|
1464
|
+
private _pasteSvgFile;
|
|
1465
|
+
private _pasteImageFile;
|
|
1466
|
+
private _pasteVideoFile;
|
|
1467
|
+
private _fitIntoMaxSize;
|
|
1468
|
+
private _isEditableTarget;
|
|
1469
|
+
private _getPastePosition;
|
|
1470
|
+
private _isPointerOnScreen;
|
|
1471
|
+
private _getScreenCenter;
|
|
1472
|
+
private _getAsString;
|
|
1473
|
+
private _looksLikeVideoFile;
|
|
1474
|
+
private _htmlToText;
|
|
1475
|
+
private _readFileAsText;
|
|
1476
|
+
private _extractSvgMarkup;
|
|
1477
|
+
private _svgTextToSrc;
|
|
1478
|
+
private _parseSvgNumber;
|
|
1479
|
+
private _extractSvgSize;
|
|
1480
|
+
private _loadImageSize;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1165
1483
|
interface GridPluginOptions {
|
|
1166
1484
|
stepX?: number;
|
|
1167
1485
|
stepY?: number;
|
|
@@ -1384,6 +1702,7 @@ declare class NodeHotkeysPlugin extends Plugin {
|
|
|
1384
1702
|
constructor(options?: NodeHotkeysOptions);
|
|
1385
1703
|
protected onAttach(core: CoreEngine): void;
|
|
1386
1704
|
protected onDetach(_core: CoreEngine): void;
|
|
1705
|
+
private _onPaste;
|
|
1387
1706
|
private _onKeyDown;
|
|
1388
1707
|
private _isEditableTarget;
|
|
1389
1708
|
private _handleCopy;
|
|
@@ -1682,6 +2001,90 @@ declare class RulerPlugin extends Plugin {
|
|
|
1682
2001
|
isVisible(): boolean;
|
|
1683
2002
|
}
|
|
1684
2003
|
|
|
2004
|
+
interface VideoOverlayAddonOptions {
|
|
2005
|
+
zIndex?: number;
|
|
2006
|
+
marginPx?: number;
|
|
2007
|
+
controlsHeightPx?: number;
|
|
2008
|
+
speeds?: number[];
|
|
2009
|
+
minWidthPx?: number;
|
|
2010
|
+
minHeightPx?: number;
|
|
2011
|
+
maxWorldScaleToShow?: number | null;
|
|
2012
|
+
hideDuringCameraZoomMs?: number;
|
|
2013
|
+
uiBackgroundColor?: string;
|
|
2014
|
+
uiBorderColor?: string;
|
|
2015
|
+
uiTextColor?: string;
|
|
2016
|
+
uiMutedTextColor?: string;
|
|
2017
|
+
uiAccentColor?: string;
|
|
2018
|
+
uiTrackColor?: string;
|
|
2019
|
+
uiTrackFilledColor?: string;
|
|
2020
|
+
}
|
|
2021
|
+
declare class VideoOverlayAddon extends PluginAddon<SelectionPlugin> {
|
|
2022
|
+
private _core;
|
|
2023
|
+
private _rootEl;
|
|
2024
|
+
private _controlsEl;
|
|
2025
|
+
private _playBtn;
|
|
2026
|
+
private _muteBtn;
|
|
2027
|
+
private _speedBtn;
|
|
2028
|
+
private _timeLabel;
|
|
2029
|
+
private _seekInput;
|
|
2030
|
+
private _volInput;
|
|
2031
|
+
private _selectedVideoNode;
|
|
2032
|
+
private _selectedVideoEl;
|
|
2033
|
+
private _hiddenForDrag;
|
|
2034
|
+
private _hiddenForSize;
|
|
2035
|
+
private _hiddenForTransform;
|
|
2036
|
+
private _hiddenForZoom;
|
|
2037
|
+
private _hiddenForWorldScale;
|
|
2038
|
+
private _hiddenForNotReady;
|
|
2039
|
+
private _uiMode;
|
|
2040
|
+
private _zoomUnhideTimeoutId;
|
|
2041
|
+
private _onKonvaDragStart;
|
|
2042
|
+
private _onKonvaDragEnd;
|
|
2043
|
+
private _onKonvaTransformStart;
|
|
2044
|
+
private _onKonvaTransformEnd;
|
|
2045
|
+
private _onLayerTransformStart;
|
|
2046
|
+
private _onLayerTransformEnd;
|
|
2047
|
+
private _onLayerDragStart;
|
|
2048
|
+
private _onLayerDragEnd;
|
|
2049
|
+
private _rafId;
|
|
2050
|
+
private _options;
|
|
2051
|
+
private _onNodeSelected;
|
|
2052
|
+
private _onNodeDeselected;
|
|
2053
|
+
private _onSelectionCleared;
|
|
2054
|
+
private _onNodeTransformed;
|
|
2055
|
+
private _onStageResized;
|
|
2056
|
+
private _onCameraChanged;
|
|
2057
|
+
private _onWorldChanged;
|
|
2058
|
+
private _onTimeUpdate;
|
|
2059
|
+
private _onLoadedMetadata;
|
|
2060
|
+
private _onCanPlay;
|
|
2061
|
+
private _onPlayPauseSync;
|
|
2062
|
+
constructor(options?: VideoOverlayAddonOptions);
|
|
2063
|
+
protected onAttach(_plugin: SelectionPlugin, core: CoreEngine): void;
|
|
2064
|
+
protected onDetach(_plugin: SelectionPlugin, core: CoreEngine): void;
|
|
2065
|
+
private _ensureDom;
|
|
2066
|
+
private _updateRangeFill;
|
|
2067
|
+
private _tryShowForNode;
|
|
2068
|
+
private _show;
|
|
2069
|
+
private _hide;
|
|
2070
|
+
private _bindLayerInteractionEvents;
|
|
2071
|
+
private _unbindLayerInteractionEvents;
|
|
2072
|
+
private _bindKonvaDragEvents;
|
|
2073
|
+
private _unbindKonvaDragEvents;
|
|
2074
|
+
private _bindKonvaTransformEvents;
|
|
2075
|
+
private _unbindKonvaTransformEvents;
|
|
2076
|
+
private _hideTemporarilyForZoom;
|
|
2077
|
+
private _bindVideoEvents;
|
|
2078
|
+
private _unbindVideoEvents;
|
|
2079
|
+
private _isVideoReady;
|
|
2080
|
+
private _maybeShowWhenReady;
|
|
2081
|
+
private _scheduleSync;
|
|
2082
|
+
private _syncPosition;
|
|
2083
|
+
private _syncControls;
|
|
2084
|
+
private _formatTime;
|
|
2085
|
+
private _applyUiMode;
|
|
2086
|
+
}
|
|
2087
|
+
|
|
1685
2088
|
interface MultiGroupControllerDeps {
|
|
1686
2089
|
ensureTempMulti: (nodes: BaseNode[]) => void;
|
|
1687
2090
|
destroyTempMulti: () => void;
|
|
@@ -1716,6 +2119,7 @@ interface SelectionPluginOptions {
|
|
|
1716
2119
|
autoPanEnabled?: boolean;
|
|
1717
2120
|
autoPanEdgePx?: number;
|
|
1718
2121
|
autoPanMaxSpeedPx?: number;
|
|
2122
|
+
enableVideoOverlay?: boolean | VideoOverlayAddonOptions;
|
|
1719
2123
|
}
|
|
1720
2124
|
/**
|
|
1721
2125
|
* Universal selection and dragging plugin for nodes compatible with BaseNode.
|
|
@@ -1804,6 +2208,7 @@ declare class SelectionPlugin extends Plugin {
|
|
|
1804
2208
|
*/
|
|
1805
2209
|
private _computeUnionBBox;
|
|
1806
2210
|
private _ensureTempMulti;
|
|
2211
|
+
private _destroyTempMultiOverlayOnly;
|
|
1807
2212
|
private _destroyTempMulti;
|
|
1808
2213
|
private _commitTempMultiToGroup;
|
|
1809
2214
|
private _tryUngroupSelectedGroup;
|
|
@@ -1819,6 +2224,14 @@ declare class SelectionPlugin extends Plugin {
|
|
|
1819
2224
|
private _setupRotateHandles;
|
|
1820
2225
|
private _destroyRotateHandles;
|
|
1821
2226
|
private _getNodeCenterAbs;
|
|
2227
|
+
/**
|
|
2228
|
+
* Set custom rotation cursor with dynamic angle based on handle position
|
|
2229
|
+
*/
|
|
2230
|
+
private _setRotateCursor;
|
|
2231
|
+
/**
|
|
2232
|
+
* Apply rotated cursor by creating a rotated SVG data URL
|
|
2233
|
+
*/
|
|
2234
|
+
private _applyRotatedCursor;
|
|
1822
2235
|
private _updateRotateHandlesPosition;
|
|
1823
2236
|
private _setupSizeLabel;
|
|
1824
2237
|
private _scheduleUIUpdate;
|
|
@@ -2046,4 +2459,4 @@ declare class ThrottleHelper {
|
|
|
2046
2459
|
getThrottle(): number;
|
|
2047
2460
|
}
|
|
2048
2461
|
|
|
2049
|
-
export { type ArcNodeHandle, type ArcNodeOptions, AreaSelectionPlugin, type AreaSelectionPluginOptions, type ArrowNodeHandle, type ArrowNodeOptions, type BaseNodeOptions, type CameraHotkeysOptions, CameraHotkeysPlugin, CameraManager, type CircleNodeHandle, type CircleNodeOptions, CoreEngine, type CoreEngineOptions, type CoreEvents, DebounceHelper, type EllipseNodeHandle, type EllipseNodeOptions, EventBus, GridPlugin, type GridPluginOptions, type GroupNodeHandle, type GroupNodeOptions, type HistoryAction, HistoryManager, HistoryPlugin, type HistoryPluginOptions, ImageHoverFilterAddon, type ImageNodeHandle, type ImageNodeOptions, type ImageSource, type KonvaArc, type KonvaArrow, type KonvaCircle, type KonvaEllipse, type KonvaGroup, type KonvaGroupConfig, type KonvaImage, type KonvaLayer, type KonvaNode, type KonvaNodeConfig, type KonvaRegularPolygon, type KonvaRing, type KonvaShape, type KonvaStage, type KonvaStar, type KonvaText, type LogoOptions, LogoPlugin, NodeAddon, NodeAddons, type NodeAddonsHandle, type NodeHandle, type NodeHotkeysOptions, NodeHotkeysPlugin, NodeManager, PluginAddon, Plugins, type RegularPolygonNodeHandle, type RegularPolygonNodeOptions, type RingNodeHandle, type RingNodeOptions, RulerGuidesAddon, RulerGuidesPlugin, type RulerGuidesPluginOptions, RulerHighlightAddon, RulerHighlightPlugin, type RulerHighlightPluginOptions, RulerManagerAddon, RulerManagerPlugin, type RulerManagerPluginOptions, RulerPlugin, type RulerPluginOptions, SelectionPlugin, type SelectionPluginOptions, ShapeHoverHighlightAddon, type ShapeNodeHandle, type ShapeNodeOptions, type StarNodeHandle, type StarNodeOptions, TextAutoTrimAddon, type TextNodeHandle, type TextNodeOptions, ThrottleHelper, VisualGuidesPlugin, type VisualGuidesPluginOptions };
|
|
2462
|
+
export { type ArcNodeHandle, type ArcNodeOptions, AreaSelectionPlugin, type AreaSelectionPluginOptions, type ArrowNodeHandle, type ArrowNodeOptions, type BaseNodeOptions, type CameraHotkeysOptions, CameraHotkeysPlugin, CameraManager, type CircleNodeHandle, type CircleNodeOptions, ContentFromClipboardPlugin, type ContentFromClipboardPluginOptions, CoreEngine, type CoreEngineOptions, type CoreEvents, DebounceHelper, type EllipseNodeHandle, type EllipseNodeOptions, EventBus, type GifNodeHandle, type GifNodeOptions, GridPlugin, type GridPluginOptions, type GroupNodeHandle, type GroupNodeOptions, type HistoryAction, HistoryManager, HistoryPlugin, type HistoryPluginOptions, ImageHoverFilterAddon, type ImageNodeHandle, type ImageNodeOptions, type ImageSource, type KonvaArc, type KonvaArrow, type KonvaCircle, type KonvaEllipse, type KonvaGroup, type KonvaGroupConfig, type KonvaImage, type KonvaLayer, type KonvaNode, type KonvaNodeConfig, type KonvaRegularPolygon, type KonvaRing, type KonvaShape, type KonvaStage, type KonvaStar, type KonvaText, type LogoOptions, LogoPlugin, MediaPlaceholder, type MediaPlaceholderOptions, NodeAddon, NodeAddons, type NodeAddonsHandle, type NodeHandle, type NodeHotkeysOptions, NodeHotkeysPlugin, NodeManager, PluginAddon, Plugins, type RegularPolygonNodeHandle, type RegularPolygonNodeOptions, type RingNodeHandle, type RingNodeOptions, RulerGuidesAddon, RulerGuidesPlugin, type RulerGuidesPluginOptions, RulerHighlightAddon, RulerHighlightPlugin, type RulerHighlightPluginOptions, RulerManagerAddon, RulerManagerPlugin, type RulerManagerPluginOptions, RulerPlugin, type RulerPluginOptions, SelectionPlugin, type SelectionPluginOptions, ShapeHoverHighlightAddon, type ShapeNodeHandle, type ShapeNodeOptions, type StarNodeHandle, type StarNodeOptions, type SvgNodeHandle, type SvgNodeOptions, TextAutoTrimAddon, type TextNodeHandle, type TextNodeOptions, ThrottleHelper, type VideoNodeHandle, type VideoNodeOptions, VideoOverlayAddon, type VideoOverlayAddonOptions, VisualGuidesPlugin, type VisualGuidesPluginOptions };
|