@shznet/pdf-sign-angular 0.2.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -61,6 +61,7 @@ print() {
|
|
|
61
61
|
- **(pageInfo)**: `EventEmitter<{ page: number, total: number }>` - Emits detailed page info.
|
|
62
62
|
- **(scaleChange)**: `EventEmitter<{ scale: number }>` - Emitted on zoom changes.
|
|
63
63
|
- **(fieldsChange)**: `EventEmitter<SignatureField[]>` - Emitted when fields are modified.
|
|
64
|
+
- **(selectionChange)**: `EventEmitter<{ field: SignatureField | null }>` - Emitted when field selection changes.
|
|
64
65
|
- **(error)**: `EventEmitter<Error>` - Emitted on errors.
|
|
65
66
|
|
|
66
67
|
## Two-Way Binding Example
|
|
@@ -145,6 +146,7 @@ this.pdfComponent.updateField('sig1', {
|
|
|
145
146
|
rect: { x: 150, y: 150, width: 200, height: 80 }
|
|
146
147
|
});
|
|
147
148
|
this.pdfComponent.setFields([...newFields]);
|
|
149
|
+
this.pdfComponent.clearFields();
|
|
148
150
|
|
|
149
151
|
// Printing
|
|
150
152
|
await this.pdfComponent.print({ withSignatures: false });
|
|
@@ -4,6 +4,7 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { PdfSignControl } from '@shznet/pdf-sign-control';
|
|
5
5
|
|
|
6
6
|
class PdfSignAngularComponent {
|
|
7
|
+
ngZone;
|
|
7
8
|
container;
|
|
8
9
|
/** PDF source URL or ArrayBuffer - auto-loads when provided */
|
|
9
10
|
src;
|
|
@@ -35,7 +36,12 @@ class PdfSignAngularComponent {
|
|
|
35
36
|
fieldUpdate = new EventEmitter();
|
|
36
37
|
/** Emitted when any field changes (add/remove/update) */
|
|
37
38
|
fieldsChange = new EventEmitter();
|
|
39
|
+
/** Emitted when field selection changes */
|
|
40
|
+
selectionChange = new EventEmitter();
|
|
38
41
|
control = null;
|
|
42
|
+
constructor(ngZone) {
|
|
43
|
+
this.ngZone = ngZone;
|
|
44
|
+
}
|
|
39
45
|
ngOnInit() {
|
|
40
46
|
if (this.container) {
|
|
41
47
|
this.control = new PdfSignControl({
|
|
@@ -46,29 +52,32 @@ class PdfSignAngularComponent {
|
|
|
46
52
|
});
|
|
47
53
|
// Setup event listeners
|
|
48
54
|
this.control.on('page:change', (data) => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
55
|
+
this.ngZone.run(() => {
|
|
56
|
+
this.pageInfo.emit(data);
|
|
57
|
+
if (this.page !== data.page) {
|
|
58
|
+
this.page = data.page;
|
|
59
|
+
this.pageChange.emit(data.page);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
56
62
|
});
|
|
57
63
|
this.control.on('scale:change', (data) => {
|
|
58
|
-
this.scaleChange.emit(data);
|
|
64
|
+
this.ngZone.run(() => this.scaleChange.emit(data));
|
|
59
65
|
});
|
|
60
66
|
// Field Events
|
|
61
67
|
this.control.on('field:add', (field) => {
|
|
62
|
-
this.fieldAdd.emit(field);
|
|
68
|
+
this.ngZone.run(() => this.fieldAdd.emit(field));
|
|
63
69
|
});
|
|
64
70
|
this.control.on('field:remove', (data) => {
|
|
65
|
-
this.fieldRemove.emit(data);
|
|
71
|
+
this.ngZone.run(() => this.fieldRemove.emit(data));
|
|
66
72
|
});
|
|
67
73
|
this.control.on('field:update', (data) => {
|
|
68
|
-
this.fieldUpdate.emit(data);
|
|
74
|
+
this.ngZone.run(() => this.fieldUpdate.emit(data));
|
|
69
75
|
});
|
|
70
76
|
this.control.on('fields:change', (fields) => {
|
|
71
|
-
this.fieldsChange.emit(fields);
|
|
77
|
+
this.ngZone.run(() => this.fieldsChange.emit(fields));
|
|
78
|
+
});
|
|
79
|
+
this.control.on('field:selection-change', (data) => {
|
|
80
|
+
this.ngZone.run(() => this.selectionChange.emit(data));
|
|
72
81
|
});
|
|
73
82
|
this.ready.emit(this.control);
|
|
74
83
|
// Auto-load if src provided
|
|
@@ -154,6 +163,10 @@ class PdfSignAngularComponent {
|
|
|
154
163
|
getViewMode() {
|
|
155
164
|
return this.control?.getViewMode() ?? 'scroll';
|
|
156
165
|
}
|
|
166
|
+
/** Clear all fields */
|
|
167
|
+
clearFields() {
|
|
168
|
+
this.control?.clearFields();
|
|
169
|
+
}
|
|
157
170
|
/** Print the PDF */
|
|
158
171
|
print(options) {
|
|
159
172
|
return this.control?.print(options) ?? Promise.resolve();
|
|
@@ -175,13 +188,13 @@ class PdfSignAngularComponent {
|
|
|
175
188
|
setFields(fields) {
|
|
176
189
|
this.control?.setFields(fields);
|
|
177
190
|
}
|
|
178
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PdfSignAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
179
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: PdfSignAngularComponent, isStandalone: true, selector: "lib-pdf-sign-angular", inputs: { src: "src", page: "page", viewMode: "viewMode", fields: "fields", pdfLoaderOptions: "pdfLoaderOptions" }, outputs: { ready: "ready", loaded: "loaded", pageChange: "pageChange", pageInfo: "pageInfo", scaleChange: "scaleChange", error: "error", fieldAdd: "fieldAdd", fieldRemove: "fieldRemove", fieldUpdate: "fieldUpdate", fieldsChange: "fieldsChange" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #container class=\"pdf-sign-angular-container\"></div>\n", styles: [":host{display:block;width:100%;height:100%}.pdf-sign-angular-container{width:100%;height:100%;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
191
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PdfSignAngularComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: PdfSignAngularComponent, isStandalone: true, selector: "lib-pdf-sign-angular", inputs: { src: "src", page: "page", viewMode: "viewMode", fields: "fields", pdfLoaderOptions: "pdfLoaderOptions" }, outputs: { ready: "ready", loaded: "loaded", pageChange: "pageChange", pageInfo: "pageInfo", scaleChange: "scaleChange", error: "error", fieldAdd: "fieldAdd", fieldRemove: "fieldRemove", fieldUpdate: "fieldUpdate", fieldsChange: "fieldsChange", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #container class=\"pdf-sign-angular-container\"></div>\n", styles: [":host{display:block;width:100%;height:100%}.pdf-sign-angular-container{width:100%;height:100%;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
180
193
|
}
|
|
181
194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PdfSignAngularComponent, decorators: [{
|
|
182
195
|
type: Component,
|
|
183
196
|
args: [{ selector: 'lib-pdf-sign-angular', standalone: true, imports: [CommonModule], template: "<div #container class=\"pdf-sign-angular-container\"></div>\n", styles: [":host{display:block;width:100%;height:100%}.pdf-sign-angular-container{width:100%;height:100%;position:relative}\n"] }]
|
|
184
|
-
}], propDecorators: { container: [{
|
|
197
|
+
}], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { container: [{
|
|
185
198
|
type: ViewChild,
|
|
186
199
|
args: ['container', { static: true }]
|
|
187
200
|
}], src: [{
|
|
@@ -214,6 +227,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
214
227
|
type: Output
|
|
215
228
|
}], fieldsChange: [{
|
|
216
229
|
type: Output
|
|
230
|
+
}], selectionChange: [{
|
|
231
|
+
type: Output
|
|
217
232
|
}] } });
|
|
218
233
|
|
|
219
234
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shznet-pdf-sign-angular.mjs","sources":["../../../../packages/pdf-sign-angular/src/lib/pdf-sign-angular/pdf-sign-angular.ts","../../../../packages/pdf-sign-angular/src/lib/pdf-sign-angular/pdf-sign-angular.html","../../../../packages/pdf-sign-angular/src/shznet-pdf-sign-angular.ts"],"sourcesContent":["\nimport { Component, ElementRef, ViewChild, OnInit, OnDestroy, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PdfSignControl, PdfSignControlOptions, ViewMode, SignatureField } from '@shznet/pdf-sign-control';\n\n@Component({\n selector: 'lib-pdf-sign-angular',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pdf-sign-angular.html',\n styleUrl: './pdf-sign-angular.css',\n})\nexport class PdfSignAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('container', { static: true }) container!: ElementRef<HTMLDivElement>;\n\n /** PDF source URL or ArrayBuffer - auto-loads when provided */\n @Input() src?: string | Uint8Array | ArrayBuffer;\n\n /** Current page number (1-based) - supports two-way binding with [(page)] */\n @Input() page?: number;\n\n /** Initial view mode: 'scroll' or 'single' */\n @Input() viewMode?: ViewMode;\n\n /** Initial fields */\n @Input() fields?: SignatureField[];\n\n /** PDF.js loader options */\n @Input() pdfLoaderOptions?: PdfSignControlOptions['pdfLoaderOptions'];\n\n /** Emitted when control is ready */\n @Output() ready = new EventEmitter<PdfSignControl>();\n\n /** Emitted when PDF is loaded */\n @Output() loaded = new EventEmitter<void>();\n\n /** Emitted when page changes - emits page number for two-way binding */\n @Output() pageChange = new EventEmitter<number>();\n\n /** Emitted when page changes with full info */\n @Output() pageInfo = new EventEmitter<{ page: number; total: number }>();\n\n /** Emitted when scale changes */\n @Output() scaleChange = new EventEmitter<{ scale: number }>();\n\n /** Emitted on error */\n @Output() error = new EventEmitter<Error>();\n\n /** Emitted when a field is added */\n @Output() fieldAdd = new EventEmitter<SignatureField>();\n\n /** Emitted when a field is removed */\n @Output() fieldRemove = new EventEmitter<{ fieldId: string }>();\n\n /** Emitted when a field is updated */\n @Output() fieldUpdate = new EventEmitter<{ fieldId: string, updates: Partial<SignatureField> }>();\n\n /** Emitted when any field changes (add/remove/update) */\n @Output() fieldsChange = new EventEmitter<SignatureField[]>();\n\n private control: PdfSignControl | null = null;\n\n ngOnInit() {\n if (this.container) {\n this.control = new PdfSignControl({\n container: this.container.nativeElement,\n viewMode: this.viewMode,\n pdfLoaderOptions: this.pdfLoaderOptions,\n fields: this.fields\n });\n\n // Setup event listeners\n this.control.on('page:change', (data: { page: number; total: number }) => {\n // Emit full info\n this.pageInfo.emit(data);\n // Emit page number for two-way binding\n if (this.page !== data.page) {\n this.page = data.page;\n this.pageChange.emit(data.page);\n }\n });\n\n this.control.on('scale:change', (data: { scale: number }) => {\n this.scaleChange.emit(data);\n });\n\n // Field Events\n this.control.on('field:add', (field: SignatureField) => {\n this.fieldAdd.emit(field);\n });\n this.control.on('field:remove', (data: { fieldId: string }) => {\n this.fieldRemove.emit(data);\n });\n this.control.on('field:update', (data: { fieldId: string, updates: Partial<SignatureField> }) => {\n this.fieldUpdate.emit(data);\n });\n this.control.on('fields:change', (fields: SignatureField[]) => {\n this.fieldsChange.emit(fields);\n });\n\n this.ready.emit(this.control);\n\n // Auto-load if src provided\n if (this.src) {\n this.loadPdf(this.src);\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['src'] && !changes['src'].firstChange && this.src) {\n this.loadPdf(this.src);\n }\n if (changes['page'] && !changes['page'].firstChange && this.page !== undefined) {\n const currentPage = this.control?.getCurrentPage();\n if (currentPage !== this.page) {\n this.control?.goToPage(this.page);\n }\n }\n if (changes['viewMode'] && !changes['viewMode'].firstChange && this.viewMode) {\n this.control?.setViewMode(this.viewMode);\n }\n if (changes['fields'] && !changes['fields'].firstChange && this.fields) {\n const currentFields = this.control?.getFields();\n if (JSON.stringify(currentFields) === JSON.stringify(this.fields)) {\n return;\n }\n this.control?.setFields(this.fields);\n }\n }\n\n ngOnDestroy() {\n if (this.control) {\n this.control.destroy();\n this.control = null;\n }\n }\n\n private loadPdf(source: string | Uint8Array | ArrayBuffer) {\n this.control?.load(source)\n .then(() => this.loaded.emit())\n .catch((err) => this.error.emit(err));\n }\n\n // Public API methods\n\n /** Get the underlying PdfSignControl instance */\n getControl(): PdfSignControl | null {\n return this.control;\n }\n\n /** Load a PDF from URL or ArrayBuffer */\n load(source: string | Uint8Array | ArrayBuffer): Promise<void> {\n return this.control?.load(source) ?? Promise.reject('Control not initialized');\n }\n\n /** Navigate to specific page */\n goToPage(page: number): void {\n this.control?.goToPage(page);\n }\n\n /** Go to next page */\n nextPage(): void {\n this.control?.nextPage();\n }\n\n /** Go to previous page */\n previousPage(): void {\n this.control?.previousPage();\n }\n\n /** Get current page number */\n getCurrentPage(): number {\n return this.control?.getCurrentPage() ?? 1;\n }\n\n /** Get total pages */\n getTotalPages(): number {\n return this.control?.getTotalPages() ?? 0;\n }\n\n /** Set zoom scale */\n setScale(scale: number): void {\n this.control?.setScale(scale);\n }\n\n /** Get current zoom scale */\n getScale(): number {\n return this.control?.getScale() ?? 1.0;\n }\n\n /** Set view mode */\n setViewMode(mode: ViewMode): Promise<void> {\n return this.control?.setViewMode(mode) ?? Promise.resolve();\n }\n\n /** Get current view mode */\n getViewMode(): ViewMode {\n return this.control?.getViewMode() ?? 'scroll';\n }\n\n /** Print the PDF */\n print(options?: { withSignatures?: boolean }): Promise<void> {\n return this.control?.print(options) ?? Promise.resolve();\n }\n\n /** Get dimensions of a specific page in PDF points */\n async getPageDimensions(pageIndex: number): Promise<{ width: number; height: number } | null> {\n return this.control?.getPageDimensions(pageIndex) ?? null;\n }\n\n // Field Management Wrappers\n\n addField(field: any): void {\n this.control?.addField(field);\n }\n\n removeField(fieldId: string): void {\n this.control?.removeField(fieldId);\n }\n\n updateField(fieldId: string, updates: any): void {\n this.control?.updateField(fieldId, updates);\n }\n\n setFields(fields: any[]): void {\n this.control?.setFields(fields);\n }\n}\n","<div #container class=\"pdf-sign-angular-container\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shznet-pdf-sign-angular.mjs","sources":["../../../../packages/pdf-sign-angular/src/lib/pdf-sign-angular/pdf-sign-angular.ts","../../../../packages/pdf-sign-angular/src/lib/pdf-sign-angular/pdf-sign-angular.html","../../../../packages/pdf-sign-angular/src/shznet-pdf-sign-angular.ts"],"sourcesContent":["\nimport { Component, ElementRef, ViewChild, OnInit, OnDestroy, Input, Output, EventEmitter, OnChanges, SimpleChanges, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PdfSignControl, PdfSignControlOptions, ViewMode, SignatureField } from '@shznet/pdf-sign-control';\n\n@Component({\n selector: 'lib-pdf-sign-angular',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pdf-sign-angular.html',\n styleUrl: './pdf-sign-angular.css',\n})\nexport class PdfSignAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('container', { static: true }) container!: ElementRef<HTMLDivElement>;\n\n /** PDF source URL or ArrayBuffer - auto-loads when provided */\n @Input() src?: string | Uint8Array | ArrayBuffer;\n\n /** Current page number (1-based) - supports two-way binding with [(page)] */\n @Input() page?: number;\n\n /** Initial view mode: 'scroll' or 'single' */\n @Input() viewMode?: ViewMode;\n\n /** Initial fields */\n @Input() fields?: SignatureField[];\n\n /** PDF.js loader options */\n @Input() pdfLoaderOptions?: PdfSignControlOptions['pdfLoaderOptions'];\n\n /** Emitted when control is ready */\n @Output() ready = new EventEmitter<PdfSignControl>();\n\n /** Emitted when PDF is loaded */\n @Output() loaded = new EventEmitter<void>();\n\n /** Emitted when page changes - emits page number for two-way binding */\n @Output() pageChange = new EventEmitter<number>();\n\n /** Emitted when page changes with full info */\n @Output() pageInfo = new EventEmitter<{ page: number; total: number }>();\n\n /** Emitted when scale changes */\n @Output() scaleChange = new EventEmitter<{ scale: number }>();\n\n /** Emitted on error */\n @Output() error = new EventEmitter<Error>();\n\n /** Emitted when a field is added */\n @Output() fieldAdd = new EventEmitter<SignatureField>();\n\n /** Emitted when a field is removed */\n @Output() fieldRemove = new EventEmitter<{ fieldId: string }>();\n\n /** Emitted when a field is updated */\n @Output() fieldUpdate = new EventEmitter<{ fieldId: string, updates: Partial<SignatureField> }>();\n\n /** Emitted when any field changes (add/remove/update) */\n @Output() fieldsChange = new EventEmitter<SignatureField[]>();\n\n /** Emitted when field selection changes */\n @Output() selectionChange = new EventEmitter<{ field: SignatureField | null }>();\n\n\n private control: PdfSignControl | null = null;\n\n constructor(private ngZone: NgZone) { }\n\n ngOnInit() {\n if (this.container) {\n this.control = new PdfSignControl({\n container: this.container.nativeElement,\n viewMode: this.viewMode,\n pdfLoaderOptions: this.pdfLoaderOptions,\n fields: this.fields\n });\n\n // Setup event listeners\n this.control.on('page:change', (data: { page: number; total: number }) => {\n this.ngZone.run(() => {\n this.pageInfo.emit(data);\n if (this.page !== data.page) {\n this.page = data.page;\n this.pageChange.emit(data.page);\n }\n });\n });\n\n this.control.on('scale:change', (data: { scale: number }) => {\n this.ngZone.run(() => this.scaleChange.emit(data));\n });\n\n // Field Events\n this.control.on('field:add', (field: SignatureField) => {\n this.ngZone.run(() => this.fieldAdd.emit(field));\n });\n this.control.on('field:remove', (data: { fieldId: string }) => {\n this.ngZone.run(() => this.fieldRemove.emit(data));\n });\n this.control.on('field:update', (data: { fieldId: string, updates: Partial<SignatureField> }) => {\n this.ngZone.run(() => this.fieldUpdate.emit(data));\n });\n this.control.on('fields:change', (fields: SignatureField[]) => {\n this.ngZone.run(() => this.fieldsChange.emit(fields));\n });\n this.control.on('field:selection-change', (data: { field: SignatureField | null }) => {\n this.ngZone.run(() => this.selectionChange.emit(data));\n });\n\n this.ready.emit(this.control);\n\n // Auto-load if src provided\n if (this.src) {\n this.loadPdf(this.src);\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['src'] && !changes['src'].firstChange && this.src) {\n this.loadPdf(this.src);\n }\n if (changes['page'] && !changes['page'].firstChange && this.page !== undefined) {\n const currentPage = this.control?.getCurrentPage();\n if (currentPage !== this.page) {\n this.control?.goToPage(this.page);\n }\n }\n if (changes['viewMode'] && !changes['viewMode'].firstChange && this.viewMode) {\n this.control?.setViewMode(this.viewMode);\n }\n if (changes['fields'] && !changes['fields'].firstChange && this.fields) {\n const currentFields = this.control?.getFields();\n if (JSON.stringify(currentFields) === JSON.stringify(this.fields)) {\n return;\n }\n this.control?.setFields(this.fields);\n }\n }\n\n ngOnDestroy() {\n if (this.control) {\n this.control.destroy();\n this.control = null;\n }\n }\n\n private loadPdf(source: string | Uint8Array | ArrayBuffer) {\n this.control?.load(source)\n .then(() => this.loaded.emit())\n .catch((err) => this.error.emit(err));\n }\n\n // Public API methods\n\n /** Get the underlying PdfSignControl instance */\n getControl(): PdfSignControl | null {\n return this.control;\n }\n\n /** Load a PDF from URL or ArrayBuffer */\n load(source: string | Uint8Array | ArrayBuffer): Promise<void> {\n return this.control?.load(source) ?? Promise.reject('Control not initialized');\n }\n\n /** Navigate to specific page */\n goToPage(page: number): void {\n this.control?.goToPage(page);\n }\n\n /** Go to next page */\n nextPage(): void {\n this.control?.nextPage();\n }\n\n /** Go to previous page */\n previousPage(): void {\n this.control?.previousPage();\n }\n\n /** Get current page number */\n getCurrentPage(): number {\n return this.control?.getCurrentPage() ?? 1;\n }\n\n /** Get total pages */\n getTotalPages(): number {\n return this.control?.getTotalPages() ?? 0;\n }\n\n /** Set zoom scale */\n setScale(scale: number): void {\n this.control?.setScale(scale);\n }\n\n /** Get current zoom scale */\n getScale(): number {\n return this.control?.getScale() ?? 1.0;\n }\n\n /** Set view mode */\n setViewMode(mode: ViewMode): Promise<void> {\n return this.control?.setViewMode(mode) ?? Promise.resolve();\n }\n\n /** Get current view mode */\n getViewMode(): ViewMode {\n return this.control?.getViewMode() ?? 'scroll';\n }\n\n /** Clear all fields */\n clearFields(): void {\n this.control?.clearFields();\n }\n\n /** Print the PDF */\n print(options?: { withSignatures?: boolean }): Promise<void> {\n return this.control?.print(options) ?? Promise.resolve();\n }\n\n /** Get dimensions of a specific page in PDF points */\n async getPageDimensions(pageIndex: number): Promise<{ width: number; height: number } | null> {\n return this.control?.getPageDimensions(pageIndex) ?? null;\n }\n\n // Field Management Wrappers\n\n addField(field: any): void {\n this.control?.addField(field);\n }\n\n removeField(fieldId: string): void {\n this.control?.removeField(fieldId);\n }\n\n updateField(fieldId: string, updates: any): void {\n this.control?.updateField(fieldId, updates);\n }\n\n setFields(fields: any[]): void {\n this.control?.setFields(fields);\n }\n}\n","<div #container class=\"pdf-sign-angular-container\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnInit, OnDestroy, OnChanges, ElementRef, EventEmitter, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { OnInit, OnDestroy, OnChanges, ElementRef, EventEmitter, NgZone, SimpleChanges } from '@angular/core';
|
|
3
3
|
import { ViewMode, SignatureField, PdfSignControlOptions, PdfSignControl } from '@shznet/pdf-sign-control';
|
|
4
4
|
|
|
5
5
|
declare class PdfSignAngularComponent implements OnInit, OnDestroy, OnChanges {
|
|
6
|
+
private ngZone;
|
|
6
7
|
container: ElementRef<HTMLDivElement>;
|
|
7
8
|
/** PDF source URL or ArrayBuffer - auto-loads when provided */
|
|
8
9
|
src?: string | Uint8Array | ArrayBuffer;
|
|
@@ -44,7 +45,12 @@ declare class PdfSignAngularComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
44
45
|
}>;
|
|
45
46
|
/** Emitted when any field changes (add/remove/update) */
|
|
46
47
|
fieldsChange: EventEmitter<SignatureField[]>;
|
|
48
|
+
/** Emitted when field selection changes */
|
|
49
|
+
selectionChange: EventEmitter<{
|
|
50
|
+
field: SignatureField | null;
|
|
51
|
+
}>;
|
|
47
52
|
private control;
|
|
53
|
+
constructor(ngZone: NgZone);
|
|
48
54
|
ngOnInit(): void;
|
|
49
55
|
ngOnChanges(changes: SimpleChanges): void;
|
|
50
56
|
ngOnDestroy(): void;
|
|
@@ -71,6 +77,8 @@ declare class PdfSignAngularComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
71
77
|
setViewMode(mode: ViewMode): Promise<void>;
|
|
72
78
|
/** Get current view mode */
|
|
73
79
|
getViewMode(): ViewMode;
|
|
80
|
+
/** Clear all fields */
|
|
81
|
+
clearFields(): void;
|
|
74
82
|
/** Print the PDF */
|
|
75
83
|
print(options?: {
|
|
76
84
|
withSignatures?: boolean;
|
|
@@ -85,7 +93,7 @@ declare class PdfSignAngularComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
85
93
|
updateField(fieldId: string, updates: any): void;
|
|
86
94
|
setFields(fields: any[]): void;
|
|
87
95
|
static ɵfac: i0.ɵɵFactoryDeclaration<PdfSignAngularComponent, never>;
|
|
88
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PdfSignAngularComponent, "lib-pdf-sign-angular", never, { "src": { "alias": "src"; "required": false; }; "page": { "alias": "page"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "pdfLoaderOptions": { "alias": "pdfLoaderOptions"; "required": false; }; }, { "ready": "ready"; "loaded": "loaded"; "pageChange": "pageChange"; "pageInfo": "pageInfo"; "scaleChange": "scaleChange"; "error": "error"; "fieldAdd": "fieldAdd"; "fieldRemove": "fieldRemove"; "fieldUpdate": "fieldUpdate"; "fieldsChange": "fieldsChange"; }, never, never, true, never>;
|
|
96
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PdfSignAngularComponent, "lib-pdf-sign-angular", never, { "src": { "alias": "src"; "required": false; }; "page": { "alias": "page"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "pdfLoaderOptions": { "alias": "pdfLoaderOptions"; "required": false; }; }, { "ready": "ready"; "loaded": "loaded"; "pageChange": "pageChange"; "pageInfo": "pageInfo"; "scaleChange": "scaleChange"; "error": "error"; "fieldAdd": "fieldAdd"; "fieldRemove": "fieldRemove"; "fieldUpdate": "fieldUpdate"; "fieldsChange": "fieldsChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
89
97
|
}
|
|
90
98
|
|
|
91
99
|
export { PdfSignAngularComponent };
|