@shznet/pdf-sign-control 0.1.0 → 0.2.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 +22 -18
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18459 -0
- package/dist/lib/PdfSignControl.d.ts +24 -0
- package/dist/lib/PdfSignControl.d.ts.map +1 -0
- package/dist/lib/engine/PdfLoader.d.ts +11 -0
- package/dist/lib/engine/PdfLoader.d.ts.map +1 -0
- package/dist/lib/engine/PdfPageView.d.ts +46 -0
- package/dist/lib/engine/PdfPageView.d.ts.map +1 -0
- package/dist/lib/engine/PdfViewer.d.ts +44 -0
- package/dist/lib/engine/PdfViewer.d.ts.map +1 -0
- package/dist/lib/interaction/DragHandler.d.ts +27 -0
- package/dist/lib/interaction/DragHandler.d.ts.map +1 -0
- package/dist/lib/interaction/InteractionManager.d.ts +34 -0
- package/dist/lib/interaction/InteractionManager.d.ts.map +1 -0
- package/dist/lib/interaction/ResizeHandler.d.ts +27 -0
- package/dist/lib/interaction/ResizeHandler.d.ts.map +1 -0
- package/dist/lib/layers/CanvasLayer.d.ts +23 -0
- package/dist/lib/layers/CanvasLayer.d.ts.map +1 -0
- package/dist/lib/layers/SignatureLayer.d.ts +27 -0
- package/dist/lib/layers/SignatureLayer.d.ts.map +1 -0
- package/dist/lib/strategies/IViewModeStrategy.d.ts +25 -0
- package/dist/lib/strategies/IViewModeStrategy.d.ts.map +1 -0
- package/dist/lib/strategies/ScrollStrategy.d.ts +38 -0
- package/dist/lib/strategies/ScrollStrategy.d.ts.map +1 -0
- package/dist/lib/strategies/SinglePageStrategy.d.ts +36 -0
- package/dist/lib/strategies/SinglePageStrategy.d.ts.map +1 -0
- package/dist/lib/types.d.ts +63 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/utils/CoordinateUtils.d.ts +23 -0
- package/dist/lib/utils/CoordinateUtils.d.ts.map +1 -0
- package/dist/lib/utils/EventBus.d.ts +9 -0
- package/dist/lib/utils/EventBus.d.ts.map +1 -0
- package/dist/lib/utils/ZoomHandler.d.ts +54 -0
- package/dist/lib/utils/ZoomHandler.d.ts.map +1 -0
- package/package.json +12 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PdfSignControlOptions, ViewMode } from './types.js';
|
|
2
|
+
export declare class PdfSignControl {
|
|
3
|
+
private viewer;
|
|
4
|
+
constructor(options: PdfSignControlOptions);
|
|
5
|
+
load(source: string | Uint8Array | ArrayBuffer): Promise<void>;
|
|
6
|
+
setViewMode(mode: ViewMode): Promise<void>;
|
|
7
|
+
getViewMode(): ViewMode;
|
|
8
|
+
goToPage(page: number): void;
|
|
9
|
+
nextPage(): void;
|
|
10
|
+
previousPage(): void;
|
|
11
|
+
getCurrentPage(): number;
|
|
12
|
+
getTotalPages(): number;
|
|
13
|
+
setScale(scale: number): void;
|
|
14
|
+
getScale(): number;
|
|
15
|
+
on(event: string, handler: (data: any) => void): void;
|
|
16
|
+
off(event: string, handler: (data: any) => void): void;
|
|
17
|
+
setFields(fields: any[]): void;
|
|
18
|
+
getFields(): any[];
|
|
19
|
+
addField(field: any): Promise<void>;
|
|
20
|
+
removeField(fieldId: string): void;
|
|
21
|
+
updateField(fieldId: string, updates: any): void;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=PdfSignControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfSignControl.d.ts","sourceRoot":"","sources":["../../src/lib/PdfSignControl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE7D,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAY;gBAEd,OAAO,EAAE,qBAAqB;IAIpC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,WAAW,IAAI,QAAQ;IAKvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAKvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,QAAQ,IAAI,MAAM;IAKlB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IAI9C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IAK/C,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAI9B,SAAS,IAAI,GAAG,EAAE;IAIZ,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAIhD,OAAO;CAGV"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PdfLoaderOptions } from '../types.js';
|
|
2
|
+
import * as pdfjsLib from 'pdfjs-dist';
|
|
3
|
+
export type PDFDocumentProxy = pdfjsLib.PDFDocumentProxy;
|
|
4
|
+
export declare class PdfLoader {
|
|
5
|
+
private document;
|
|
6
|
+
constructor(options?: PdfLoaderOptions);
|
|
7
|
+
loadDocument(source: string | Uint8Array | ArrayBuffer): Promise<PDFDocumentProxy>;
|
|
8
|
+
getDocument(): PDFDocumentProxy | null;
|
|
9
|
+
destroy(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=PdfLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfLoader.d.ts","sourceRoot":"","sources":["../../../src/lib/engine/PdfLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;AAEzD,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAiC;gBAErC,OAAO,GAAE,gBAAqB;IAQpC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWxF,WAAW,IAAI,gBAAgB,GAAG,IAAI;IAItC,OAAO,IAAI,IAAI;CAMlB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { PDFPageProxy } from 'pdfjs-dist';
|
|
2
|
+
import { EventBus } from '../utils/EventBus.js';
|
|
3
|
+
import { SignatureField } from '../types.js';
|
|
4
|
+
export interface PdfPageViewOptions {
|
|
5
|
+
container: HTMLElement;
|
|
6
|
+
pageIndex: number;
|
|
7
|
+
scale: number;
|
|
8
|
+
eventBus: EventBus;
|
|
9
|
+
pageDimensions?: {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare class PdfPageView {
|
|
15
|
+
private container;
|
|
16
|
+
private canvasLayer;
|
|
17
|
+
private signatureLayer;
|
|
18
|
+
private pdfPage;
|
|
19
|
+
readonly pageIndex: number;
|
|
20
|
+
private scale;
|
|
21
|
+
private eventBus;
|
|
22
|
+
element: HTMLElement;
|
|
23
|
+
constructor(options: PdfPageViewOptions);
|
|
24
|
+
setPdfPage(pdfPage: PDFPageProxy): void;
|
|
25
|
+
setFields(fields: SignatureField[]): void;
|
|
26
|
+
render(): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Quick preview render (lower quality, faster)
|
|
29
|
+
*/
|
|
30
|
+
renderPreview(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Full quality render
|
|
33
|
+
*/
|
|
34
|
+
renderFull(): Promise<void>;
|
|
35
|
+
updateScale(scale: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Update scale with preview mode (for progressive zoom)
|
|
38
|
+
*/
|
|
39
|
+
updateScalePreview(scale: number): void;
|
|
40
|
+
/**
|
|
41
|
+
* Update scale with full quality render
|
|
42
|
+
*/
|
|
43
|
+
updateScaleFull(scale: number): void;
|
|
44
|
+
destroy(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=PdfPageView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfPageView.d.ts","sourceRoot":"","sources":["../../../src/lib/engine/PdfPageView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAA6B;IAC5C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAW;IAEpB,OAAO,EAAE,WAAW,CAAC;gBAEhB,OAAO,EAAE,kBAAkB;IAgCvC,UAAU,CAAC,OAAO,EAAE,YAAY;IAahC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE;IAI5B,MAAM;IAcZ;;OAEG;IACG,aAAa;IAanB;;OAEG;IACG,UAAU;IAahB,WAAW,CAAC,KAAK,EAAE,MAAM;IAKzB;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAKhC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM;IAK7B,OAAO;CAKV"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { PdfLoaderOptions, ViewMode, SignatureField } from '../types.js';
|
|
2
|
+
export interface PdfViewerOptions {
|
|
3
|
+
container: HTMLElement;
|
|
4
|
+
pdfLoaderOptions?: PdfLoaderOptions;
|
|
5
|
+
viewMode?: ViewMode;
|
|
6
|
+
fields?: SignatureField[];
|
|
7
|
+
}
|
|
8
|
+
export declare class PdfViewer {
|
|
9
|
+
private container;
|
|
10
|
+
private eventBus;
|
|
11
|
+
private loader;
|
|
12
|
+
private zoomHandler;
|
|
13
|
+
private pdfDocument;
|
|
14
|
+
private strategy;
|
|
15
|
+
private currentViewMode;
|
|
16
|
+
private pageInfo;
|
|
17
|
+
private readyPromise;
|
|
18
|
+
private currentScale;
|
|
19
|
+
private isDestroyed;
|
|
20
|
+
constructor(options: PdfViewerOptions);
|
|
21
|
+
load(source: string | Uint8Array | ArrayBuffer): Promise<void>;
|
|
22
|
+
private initStrategy;
|
|
23
|
+
private createStrategy;
|
|
24
|
+
setViewMode(mode: ViewMode): Promise<void>;
|
|
25
|
+
getViewMode(): ViewMode;
|
|
26
|
+
goToPage(page: number): void;
|
|
27
|
+
nextPage(): void;
|
|
28
|
+
previousPage(): void;
|
|
29
|
+
getCurrentPage(): number;
|
|
30
|
+
getTotalPages(): number;
|
|
31
|
+
setScale(scale: number): void;
|
|
32
|
+
getScale(): number;
|
|
33
|
+
private fields;
|
|
34
|
+
setFields(fields: SignatureField[]): void;
|
|
35
|
+
getFields(): SignatureField[];
|
|
36
|
+
addField(field: SignatureField): Promise<void>;
|
|
37
|
+
removeField(fieldId: string): void;
|
|
38
|
+
updateField(fieldId: string, updates: Partial<SignatureField>): void;
|
|
39
|
+
private handleFieldDrop;
|
|
40
|
+
on(event: string, handler: (data: any) => void): void;
|
|
41
|
+
off(event: string, handler: (data: any) => void): void;
|
|
42
|
+
destroy(): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=PdfViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfViewer.d.ts","sourceRoot":"","sources":["../../../src/lib/engine/PdfViewer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKzE,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,WAAW,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,QAAQ,CAA6D;IAC7E,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,gBAAgB;IAkC/B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YA4BtD,YAAY;IAuB1B,OAAO,CAAC,cAAc;IAUhB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD,WAAW,IAAI,QAAQ;IAIvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,QAAQ,IAAI,MAAM;IAMlB,OAAO,CAAC,MAAM,CAAwB;IAEtC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAKzC,SAAS,IAAI,cAAc,EAAE;IAIvB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEpD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOlC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAUpE,OAAO,CAAC,eAAe;IAyFvB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IAI9C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IAI/C,OAAO;CAQV"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface DragEventData {
|
|
2
|
+
fieldId: string;
|
|
3
|
+
clientX: number;
|
|
4
|
+
clientY: number;
|
|
5
|
+
elementX: number;
|
|
6
|
+
elementY: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class DragHandler {
|
|
9
|
+
private isDragging;
|
|
10
|
+
private originalElement;
|
|
11
|
+
private ghostElement;
|
|
12
|
+
private fieldId;
|
|
13
|
+
private startX;
|
|
14
|
+
private startY;
|
|
15
|
+
private initialGhostLeft;
|
|
16
|
+
private initialGhostTop;
|
|
17
|
+
private currentGhostLeft;
|
|
18
|
+
private currentGhostTop;
|
|
19
|
+
private hasMoved;
|
|
20
|
+
private onDragEndCallback?;
|
|
21
|
+
constructor(onDragEnd: (data: DragEventData) => void);
|
|
22
|
+
startDrag(e: MouseEvent | TouchEvent, element: HTMLElement, fieldId: string): void;
|
|
23
|
+
handleMove(e: MouseEvent | TouchEvent): void;
|
|
24
|
+
handleEnd(e: MouseEvent | TouchEvent): void;
|
|
25
|
+
isActive(): boolean;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=DragHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/interaction/DragHandler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,OAAO,CAAuB;IAGtC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,iBAAiB,CAAC,CAAgC;gBAE9C,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI;IAIpD,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IA4C3E,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAwBrC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAmCpC,QAAQ,IAAI,OAAO;CAGtB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DragEventData } from './DragHandler.js';
|
|
2
|
+
import { ResizeEventData } from './ResizeHandler.js';
|
|
3
|
+
export type { DragEventData, ResizeEventData };
|
|
4
|
+
export interface InteractionCallbacks {
|
|
5
|
+
onDragEnd: (data: DragEventData) => void;
|
|
6
|
+
onResizeEnd: (data: ResizeEventData) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Manages interactions (Drag, Resize) for the Signature Layer
|
|
10
|
+
*/
|
|
11
|
+
export declare class InteractionManager {
|
|
12
|
+
private container;
|
|
13
|
+
private dragHandler;
|
|
14
|
+
private resizeHandler;
|
|
15
|
+
private scale;
|
|
16
|
+
private boundHandleMouseMove;
|
|
17
|
+
private boundHandleTouchMove;
|
|
18
|
+
private boundHandleMouseUp;
|
|
19
|
+
private boundHandleTouchEnd;
|
|
20
|
+
private boundHandleMouseDown;
|
|
21
|
+
private boundHandleTouchStart;
|
|
22
|
+
constructor(container: HTMLElement, callbacks: InteractionCallbacks);
|
|
23
|
+
private init;
|
|
24
|
+
setScale(scale: number): void;
|
|
25
|
+
private handleMouseDown;
|
|
26
|
+
private handleTouchStart;
|
|
27
|
+
private handleStart;
|
|
28
|
+
private handleMouseMove;
|
|
29
|
+
private handleTouchMove;
|
|
30
|
+
private handleMouseUp;
|
|
31
|
+
private handleTouchEnd;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=InteractionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/interaction/InteractionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAiB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAO;IAEpB,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,qBAAqB,CAA0B;gBAE3C,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB;IAenE,OAAO,CAAC,IAAI;IAYZ,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAKtB,OAAO;CASV"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface ResizeEventData {
|
|
2
|
+
fieldId: string;
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class ResizeHandler {
|
|
9
|
+
private isResizing;
|
|
10
|
+
private resizedElement;
|
|
11
|
+
private fieldId;
|
|
12
|
+
private handle;
|
|
13
|
+
private startX;
|
|
14
|
+
private startY;
|
|
15
|
+
private startRect;
|
|
16
|
+
private maxWidth;
|
|
17
|
+
private maxHeight;
|
|
18
|
+
private scale;
|
|
19
|
+
private onResizeEndCallback?;
|
|
20
|
+
constructor(onResizeEnd: (data: ResizeEventData) => void);
|
|
21
|
+
startResize(e: MouseEvent | TouchEvent, element: HTMLElement, fieldId: string, handle: string, scale: number): void;
|
|
22
|
+
handleMove(e: MouseEvent | TouchEvent): void;
|
|
23
|
+
handleEnd(): void;
|
|
24
|
+
isActive(): boolean;
|
|
25
|
+
private getCursor;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ResizeHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResizeHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/interaction/ResizeHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAA0G;IAC3H,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,KAAK,CAAO;IAEpB,OAAO,CAAC,mBAAmB,CAAC,CAAkC;gBAElD,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI;IAIxD,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAkC5G,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IA4CrC,SAAS;IAgCT,QAAQ,IAAI,OAAO;IAInB,OAAO,CAAC,SAAS;CAOpB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PDFPageProxy } from 'pdfjs-dist';
|
|
2
|
+
export declare class CanvasLayer {
|
|
3
|
+
private canvas;
|
|
4
|
+
private ctx;
|
|
5
|
+
private pdfPage;
|
|
6
|
+
private renderTask;
|
|
7
|
+
constructor();
|
|
8
|
+
getElement(): HTMLCanvasElement;
|
|
9
|
+
setPage(page: PDFPageProxy): void;
|
|
10
|
+
/**
|
|
11
|
+
* Cancel any ongoing render operation
|
|
12
|
+
*/
|
|
13
|
+
cancelRender(): void;
|
|
14
|
+
private activeRenderPromise;
|
|
15
|
+
/**
|
|
16
|
+
* Render PDF page at given scale
|
|
17
|
+
* @param scale - Render scale
|
|
18
|
+
* @param isPreview - If true, renders at lower quality for quick preview
|
|
19
|
+
*/
|
|
20
|
+
render(scale: number, isPreview?: boolean): Promise<void>;
|
|
21
|
+
destroy(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=CanvasLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasLayer.d.ts","sourceRoot":"","sources":["../../../src/lib/layers/CanvasLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAEtD,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAA2B;;IAW7C,UAAU,IAAI,iBAAiB;IAI/B,OAAO,CAAC,IAAI,EAAE,YAAY;IAI1B;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB,OAAO,CAAC,mBAAmB,CAA8B;IAEzD;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA+E7D,OAAO;CAKV"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SignatureField } from '../types.js';
|
|
2
|
+
import { EventBus } from '../utils/EventBus.js';
|
|
3
|
+
export declare class SignatureLayer {
|
|
4
|
+
private element;
|
|
5
|
+
private fields;
|
|
6
|
+
private fieldElements;
|
|
7
|
+
private scale;
|
|
8
|
+
private pageHeight;
|
|
9
|
+
private eventBus;
|
|
10
|
+
private interactionManager;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
constructor(eventBus: EventBus);
|
|
13
|
+
getElement(): HTMLElement;
|
|
14
|
+
setFields(fields: SignatureField[]): void;
|
|
15
|
+
setPageDimensions(width: number, height: number, scale: number): void;
|
|
16
|
+
setScale(scale: number): void;
|
|
17
|
+
private handleDragEnd;
|
|
18
|
+
private handleResizeEnd;
|
|
19
|
+
private render;
|
|
20
|
+
private createFieldElement;
|
|
21
|
+
private addResizeHandles;
|
|
22
|
+
private addDeleteButton;
|
|
23
|
+
private updatePositions;
|
|
24
|
+
private updateElementPosition;
|
|
25
|
+
destroy(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=SignatureLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignatureLayer.d.ts","sourceRoot":"","sources":["../../../src/lib/layers/SignatureLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,SAAgB,EAAE,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,QAAQ;IAqB9B,UAAU,IAAI,WAAW;IAIzB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE;IAKlC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAS9D,QAAQ,CAAC,KAAK,EAAE,MAAM;IAMtB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,kBAAkB;IA4E1B,OAAO,CAAC,gBAAgB;IA6ExB,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,qBAAqB;IAwC7B,OAAO;CAMV"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PDFDocumentProxy } from 'pdfjs-dist';
|
|
2
|
+
import { EventBus } from '../utils/EventBus.js';
|
|
3
|
+
import { SignatureField } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Common interface for PDF viewing mode strategies.
|
|
6
|
+
*/
|
|
7
|
+
export interface IViewModeStrategy {
|
|
8
|
+
init(container: HTMLElement, pdfDocument: PDFDocumentProxy, eventBus: EventBus, initialScale?: number, pageInfo?: Map<number, {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}>): Promise<void>;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
setScale(scale: number): void;
|
|
14
|
+
getScale(): number;
|
|
15
|
+
goToPage(pageIndex: number): void;
|
|
16
|
+
nextPage(): void;
|
|
17
|
+
previousPage(): void;
|
|
18
|
+
getCurrentPage(): number;
|
|
19
|
+
getTotalPages(): number;
|
|
20
|
+
setFields(fields: SignatureField[]): void;
|
|
21
|
+
addField?(field: SignatureField): void;
|
|
22
|
+
removeField?(fieldId: string): void;
|
|
23
|
+
updateField?(fieldId: string, updates: Partial<SignatureField>): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=IViewModeStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IViewModeStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/strategies/IViewModeStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjL,OAAO,IAAI,IAAI,CAAC;IAGhB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,MAAM,CAAC;IAGnB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,IAAI,CAAC;IACjB,YAAY,IAAI,IAAI,CAAC;IACrB,cAAc,IAAI,MAAM,CAAC;IACzB,aAAa,IAAI,MAAM,CAAC;IAGxB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAG1C,QAAQ,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CACzE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PDFDocumentProxy } from 'pdfjs-dist';
|
|
2
|
+
import { EventBus } from '../utils/EventBus.js';
|
|
3
|
+
import { IViewModeStrategy } from './IViewModeStrategy.js';
|
|
4
|
+
import { SignatureField } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Scroll viewing strategy - displays all pages in a scrollable container.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ScrollStrategy implements IViewModeStrategy {
|
|
9
|
+
private container;
|
|
10
|
+
private pdfDocument;
|
|
11
|
+
private eventBus;
|
|
12
|
+
private currentPage;
|
|
13
|
+
private totalPages;
|
|
14
|
+
private scale;
|
|
15
|
+
private pageViews;
|
|
16
|
+
private fields;
|
|
17
|
+
private observer;
|
|
18
|
+
private zoomTimeout;
|
|
19
|
+
private isDestroyed;
|
|
20
|
+
private pageInfo;
|
|
21
|
+
init(container: HTMLElement, pdfDocument: PDFDocumentProxy, eventBus: EventBus, initialScale?: number, pageInfo?: Map<number, {
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
}>): Promise<void>;
|
|
25
|
+
private initContainer;
|
|
26
|
+
private renderAllPages;
|
|
27
|
+
private setupIntersectionObserver;
|
|
28
|
+
goToPage(pageNumber: number): void;
|
|
29
|
+
nextPage(): void;
|
|
30
|
+
previousPage(): void;
|
|
31
|
+
getCurrentPage(): number;
|
|
32
|
+
getTotalPages(): number;
|
|
33
|
+
setScale(scale: number): void;
|
|
34
|
+
getScale(): number;
|
|
35
|
+
setFields(fields: SignatureField[]): void;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ScrollStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/strategies/ScrollStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACpD,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAO;IAEpB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAA6D;IAEvE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtL,OAAO,CAAC,aAAa;YAYP,cAAc;IA6C5B,OAAO,CAAC,yBAAyB;IAuCjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBlC,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiB7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IASzC,OAAO,IAAI,IAAI;CAclB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { PDFDocumentProxy } from 'pdfjs-dist';
|
|
2
|
+
import { EventBus } from '../utils/EventBus.js';
|
|
3
|
+
import { IViewModeStrategy } from './IViewModeStrategy.js';
|
|
4
|
+
import { SignatureField } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Single page viewing strategy - displays one page at a time.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SinglePageStrategy implements IViewModeStrategy {
|
|
9
|
+
private container;
|
|
10
|
+
private pdfDocument;
|
|
11
|
+
private eventBus;
|
|
12
|
+
private currentPage;
|
|
13
|
+
private totalPages;
|
|
14
|
+
private scale;
|
|
15
|
+
private pageView;
|
|
16
|
+
private pageContainer;
|
|
17
|
+
private zoomTimeout;
|
|
18
|
+
private fields;
|
|
19
|
+
private pageInfo;
|
|
20
|
+
init(container: HTMLElement, pdfDocument: PDFDocumentProxy, eventBus: EventBus, initialScale?: number, pageInfo?: Map<number, {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
}>): Promise<void>;
|
|
24
|
+
private initContainer;
|
|
25
|
+
private renderCurrentPage;
|
|
26
|
+
goToPage(pageNumber: number): void;
|
|
27
|
+
nextPage(): void;
|
|
28
|
+
previousPage(): void;
|
|
29
|
+
getCurrentPage(): number;
|
|
30
|
+
getTotalPages(): number;
|
|
31
|
+
setScale(scale: number): void;
|
|
32
|
+
getScale(): number;
|
|
33
|
+
setFields(fields: SignatureField[]): void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=SinglePageStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SinglePageStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/strategies/SinglePageStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IACxD,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAO;IAEpB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,QAAQ,CAA6D;IAEvE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtL,OAAO,CAAC,aAAa;YAcP,iBAAiB;IAyC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMlC,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAqB7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAQzC,OAAO,IAAI,IAAI;CAWlB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for @shznet/pdf-sign-control
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* View mode for PDF display
|
|
6
|
+
*/
|
|
7
|
+
export type ViewMode = 'single' | 'scroll';
|
|
8
|
+
/**
|
|
9
|
+
* Event data for page change events
|
|
10
|
+
*/
|
|
11
|
+
export interface PageChangeEvent {
|
|
12
|
+
page: number;
|
|
13
|
+
total: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Event data for scale change events
|
|
17
|
+
*/
|
|
18
|
+
export interface ScaleChangeEvent {
|
|
19
|
+
scale: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for PdfLoader
|
|
23
|
+
*/
|
|
24
|
+
export interface PdfLoaderOptions {
|
|
25
|
+
workerSrc?: string;
|
|
26
|
+
cMapUrl?: string;
|
|
27
|
+
cMapPacked?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Options for PdfSignControl
|
|
31
|
+
*/
|
|
32
|
+
export interface PdfSignControlOptions {
|
|
33
|
+
container: HTMLElement;
|
|
34
|
+
pdfLoaderOptions?: PdfLoaderOptions;
|
|
35
|
+
viewMode?: ViewMode;
|
|
36
|
+
/** Initial fields to load */
|
|
37
|
+
fields?: SignatureField[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Signature Field Data Model
|
|
41
|
+
*/
|
|
42
|
+
export type SignatureFieldType = 'text' | 'html' | 'image' | 'signature';
|
|
43
|
+
export interface SignatureField {
|
|
44
|
+
id: string;
|
|
45
|
+
pageIndex: number;
|
|
46
|
+
/** Standard PDF Rect (points): x, y, width, height */
|
|
47
|
+
rect: {
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
width: number;
|
|
51
|
+
height: number;
|
|
52
|
+
};
|
|
53
|
+
type: SignatureFieldType;
|
|
54
|
+
content: string | null;
|
|
55
|
+
/** Custom CSS styles for the content container */
|
|
56
|
+
style?: Record<string, string>;
|
|
57
|
+
/** Behavior flags (default true) */
|
|
58
|
+
resizable?: boolean;
|
|
59
|
+
draggable?: boolean;
|
|
60
|
+
deletable?: boolean;
|
|
61
|
+
metadata?: any;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,WAAW,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,IAAI,EAAE;QACF,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PageViewport } from 'pdfjs-dist';
|
|
2
|
+
export interface Point {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
export interface Rect {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class CoordinateUtils {
|
|
13
|
+
/**
|
|
14
|
+
* Convert PDF Point to Viewport Pixel Rect
|
|
15
|
+
* Viewport must be generated with the correct scale.
|
|
16
|
+
*/
|
|
17
|
+
static toViewportRect(pdfRect: Rect, viewport: PageViewport): Rect;
|
|
18
|
+
/**
|
|
19
|
+
* Convert Viewport Pixel Rect to PDF Point Rect (unscaled)
|
|
20
|
+
*/
|
|
21
|
+
static toPdfRect(viewportRect: Rect, scale: number): Rect;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=CoordinateUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoordinateUtils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/CoordinateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,KAAK;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,IAAI;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAe;IACxB;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAoClE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAS5D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type EventHandler<T = any> = (data: T) => void;
|
|
2
|
+
export declare class EventBus {
|
|
3
|
+
private events;
|
|
4
|
+
on<T = any>(event: string, handler: EventHandler<T>): void;
|
|
5
|
+
off<T = any>(event: string, handler: EventHandler<T>): void;
|
|
6
|
+
emit<T = any>(event: string, data?: T): void;
|
|
7
|
+
clear(): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=EventBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/EventBus.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtD,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAA0C;IAExD,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAO1D,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAU3D,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAa5C,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface ZoomHandlerOptions {
|
|
2
|
+
container: HTMLElement;
|
|
3
|
+
getScale: () => number;
|
|
4
|
+
setScale: (scale: number) => void;
|
|
5
|
+
minScale?: number;
|
|
6
|
+
maxScale?: number;
|
|
7
|
+
zoomStep?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Handles zoom gestures: mouse wheel (Ctrl+scroll), trackpad pinch, mobile pinch
|
|
11
|
+
*/
|
|
12
|
+
export declare class ZoomHandler {
|
|
13
|
+
private container;
|
|
14
|
+
private getScale;
|
|
15
|
+
private setScale;
|
|
16
|
+
private minScale;
|
|
17
|
+
private maxScale;
|
|
18
|
+
private zoomStep;
|
|
19
|
+
private initialPinchDistance;
|
|
20
|
+
private initialScale;
|
|
21
|
+
private boundWheelHandler;
|
|
22
|
+
private boundTouchStartHandler;
|
|
23
|
+
private boundTouchMoveHandler;
|
|
24
|
+
private boundTouchEndHandler;
|
|
25
|
+
constructor(options: ZoomHandlerOptions);
|
|
26
|
+
init(): void;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Handle mouse wheel zoom (Ctrl + wheel) and trackpad pinch
|
|
30
|
+
* Browser converts trackpad pinch to wheel event with ctrlKey=true
|
|
31
|
+
*/
|
|
32
|
+
private handleWheel;
|
|
33
|
+
/**
|
|
34
|
+
* Handle touch start - detect pinch gesture (2 fingers)
|
|
35
|
+
*/
|
|
36
|
+
private handleTouchStart;
|
|
37
|
+
/**
|
|
38
|
+
* Handle touch move - calculate pinch zoom
|
|
39
|
+
*/
|
|
40
|
+
private handleTouchMove;
|
|
41
|
+
/**
|
|
42
|
+
* Handle touch end - reset pinch state
|
|
43
|
+
*/
|
|
44
|
+
private handleTouchEnd;
|
|
45
|
+
/**
|
|
46
|
+
* Calculate distance between two touch points
|
|
47
|
+
*/
|
|
48
|
+
private getTouchDistance;
|
|
49
|
+
/**
|
|
50
|
+
* Clamp scale to min/max bounds
|
|
51
|
+
*/
|
|
52
|
+
private clampScale;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ZoomHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/ZoomHandler.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAA0B;IAE1C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,YAAY,CAAa;IAGjC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,oBAAoB,CAA0B;gBAE1C,OAAO,EAAE,kBAAkB;IAgBvC,IAAI,IAAI,IAAI;IAUZ,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shznet/pdf-sign-control",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Core PDF signing logic for @shznet/pdf-sign",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/ShzNet/pdf-signature-control.git"
|
|
9
|
+
},
|
|
10
|
+
"author": "Chien Tran <chientranit@gmail.com>",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/ShzNet/pdf-signature-control/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/ShzNet/pdf-signature-control#readme",
|
|
4
15
|
"type": "module",
|
|
5
16
|
"main": "./dist/index.js",
|
|
6
17
|
"module": "./dist/index.js",
|