@viablelogic/ngx-signature-pad 5.0.1 → 5.0.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/esm2020/lib/ngx-signature-pad.component.mjs +8 -6
- package/fesm2015/viablelogic-ngx-signature-pad.mjs +6 -4
- package/fesm2015/viablelogic-ngx-signature-pad.mjs.map +1 -1
- package/fesm2020/viablelogic-ngx-signature-pad.mjs +6 -4
- package/fesm2020/viablelogic-ngx-signature-pad.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import * as SignaturePadNative from 'signature_pad';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class SignaturePad {
|
|
5
5
|
constructor(elementRef) {
|
|
6
|
+
this.onBeginEvent = new EventEmitter();
|
|
7
|
+
this.onEndEvent = new EventEmitter();
|
|
6
8
|
// no op
|
|
7
9
|
this.elementRef = elementRef;
|
|
8
10
|
this.options = this.options || {};
|
|
9
|
-
this.onBeginEvent = new EventEmitter();
|
|
10
|
-
this.onEndEvent = new EventEmitter();
|
|
11
11
|
}
|
|
12
12
|
ngAfterContentInit() {
|
|
13
13
|
const canvas = this.elementRef.nativeElement.querySelector('canvas');
|
|
@@ -18,13 +18,15 @@ export class SignaturePad {
|
|
|
18
18
|
canvas.width = this.options.canvasWidth;
|
|
19
19
|
}
|
|
20
20
|
this.signaturePad = new SignaturePadNative.default(canvas, this.options);
|
|
21
|
-
this.signaturePad.
|
|
22
|
-
this.signaturePad.
|
|
21
|
+
this.signaturePad.addEventListener('beginStroke', this.onBegin.bind(this), { once: true });
|
|
22
|
+
this.signaturePad.addEventListener('endStroke', this.onEnd.bind(this), { once: true });
|
|
23
23
|
}
|
|
24
24
|
ngOnDestroy() {
|
|
25
25
|
const canvas = this.elementRef.nativeElement.querySelector('canvas');
|
|
26
26
|
canvas.width = 0;
|
|
27
27
|
canvas.height = 0;
|
|
28
|
+
this.signaturePad.removeEventListener('beginStroke', this.onBegin);
|
|
29
|
+
this.signaturePad.removeEventListener('endStroke', this.onEnd);
|
|
28
30
|
}
|
|
29
31
|
resizeCanvas() {
|
|
30
32
|
// When zoomed out to less than 100%, for some very strange reason,
|
|
@@ -122,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
122
124
|
}], onEndEvent: [{
|
|
123
125
|
type: Output
|
|
124
126
|
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNpZ25hdHVyZS1wYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpZ25hdHVyZS1wYWQvc3JjL2xpYi9uZ3gtc2lnbmF0dXJlLXBhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssa0JBQWtCLE1BQU0sZUFBZSxDQUFDOztBQWNwRCxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUFZLFVBQXNCO1FBQ2hDLFFBQVE7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixNQUFNLE1BQU0sR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUUsSUFBSyxJQUFJLENBQUMsT0FBZSxDQUFDLFlBQVksRUFBRTtZQUN0QyxNQUFNLENBQUMsTUFBTSxHQUFJLElBQUksQ0FBQyxPQUFlLENBQUMsWUFBWSxDQUFDO1NBQ3BEO1FBRUQsSUFBSyxJQUFJLENBQUMsT0FBZSxDQUFDLFdBQVcsRUFBRTtZQUNyQyxNQUFNLENBQUMsS0FBSyxHQUFJLElBQUksQ0FBQyxPQUFlLENBQUMsV0FBVyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFD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LENBQUM7SUFDMUIsQ0FBQztJQUVELDZCQUE2QjtJQUN0QixFQUFFO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELEdBQUcsQ0FBQyxNQUFjLEVBQUUsS0FBVTtRQUNuQyxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssY0FBYztnQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDeEMsTUFBTTtZQUNSLEtBQUssYUFBYTtnQkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDdkMsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELHdDQUF3QztJQUNqQyxPQUFPO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHNDQUFzQztJQUMvQixLQUFLO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzs7eUdBbElVLFlBQVk7NkZBQVosWUFBWSwwSkFIYixtQkFBbUI7MkZBR2xCLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2lHQUVpQixPQUFPO3NCQUF0QixLQUFLO2dCQUNXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsVUFBVTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgKiBhcyBTaWduYXR1cmVQYWROYXRpdmUgZnJvbSAnc2lnbmF0dXJlX3BhZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgdGltZTogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBQb2ludEdyb3VwID0gQXJyYXk8UG9pbnQ+O1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICc8Y2FudmFzPjwvY2FudmFzPicsXG4gIHNlbGVjdG9yOiAnc2lnbmF0dXJlLXBhZCcsXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZVBhZCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBhbnk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CZWdpbkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25FbmRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgc2lnbmF0dXJlUGFkOiBhbnk7XG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgLy8gbm8gb3BcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMub3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLm9uQmVnaW5FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLm9uRW5kRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNhbnZhczogYW55ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJyk7XG5cbiAgICBpZiAoKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc0hlaWdodCkge1xuICAgICAgY2FudmFzLmhlaWdodCA9ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5jYW52YXNIZWlnaHQ7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLm9wdGlvbnMgYXMgYW55KS5jYW52YXNXaWR0aCkge1xuICAgICAgY2FudmFzLndpZHRoID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc1dpZHRoO1xuICAgIH1cblxuICAgIHRoaXMuc2lnbmF0dXJlUGFkID0gbmV3IFNpZ25hdHVyZVBhZE5hdGl2ZS5kZWZhdWx0KGNhbnZhcywgdGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5vbkJlZ2luID0gdGhpcy5vbkJlZ2luLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zaWduYXR1cmVQYWQub25FbmQgPSB0aGlzLm9uRW5kLmJpbmQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgY2FudmFzOiBhbnkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdjYW52YXMnKTtcbiAgICBjYW52YXMud2lkdGggPSAwO1xuICAgIGNhbnZhcy5oZWlnaHQgPSAwO1xuICB9XG5cbiAgcHVibGljIHJlc2l6ZUNhbnZhcygpOiB2b2lkIHtcbiAgICAvLyBXaGVuIHpvb21lZCBvdXQgdG8gbGVzcyB0aGFuIDEwMCUsIGZvciBzb21lIHZlcnkgc3RyYW5nZSByZWFzb24sXG4gICAgLy8gc29tZSBicm93c2VycyByZXBvcnQgZGV2aWNlUGl4ZWxSYXRpbyBhcyBsZXNzIHRoYW4gMVxuICAgIC8vIGFuZCBvbmx5IHBhcnQgb2YgdGhlIGNhbnZhcyBpcyBjbGVhcmVkIHRoZW4uXG4gICAgY29uc3QgcmF0aW86IG51bWJlciA9IE1hdGgubWF4KHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEsIDEpO1xuICAgIGNvbnN0IGNhbnZhczogYW55ID0gdGhpcy5zaWduYXR1cmVQYWQuY2FudmFzO1xuICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhcy5vZmZzZXRXaWR0aCAqIHJhdGlvO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBjYW52YXMub2Zmc2V0SGVpZ2h0ICogcmF0aW87XG4gICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuc2NhbGUocmF0aW8sIHJhdGlvKTtcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5jbGVhcigpOyAvLyBvdGhlcndpc2UgaXNFbXB0eSgpIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QgdmFsdWVcbiAgfVxuXG4gIC8vIFJldHVybnMgc2lnbmF0dXJlIGltYWdlIGFzIGFuIGFycmF5IG9mIHBvaW50IGdyb3Vwc1xuICBwdWJsaWMgdG9EYXRhKCk6IEFycmF5PFBvaW50R3JvdXA+IHtcbiAgICBpZiAodGhpcy5zaWduYXR1cmVQYWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZVBhZC50b0RhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIC8vIERyYXdzIHNpZ25hdHVyZSBpbWFnZSBmcm9tIGFuIGFycmF5IG9mIHBvaW50IGdyb3Vwc1xuICBwdWJsaWMgZnJvbURhdGEocG9pbnRzOiBBcnJheTxQb2ludEdyb3VwPik6IHZvaWQge1xuICAgIHRoaXMuc2lnbmF0dXJlUGFkLmZyb21EYXRhKHBvaW50cyBhcyBhbnkpO1xuICB9XG5cbiAgLy8gUmV0dXJucyBzaWduYXR1cmUgaW1hZ2UgYXMgZGF0YSBVUkwgKHNlZSBodHRwczovL21kbi5pby90b2RhdGF1cmwgZm9yIHRoZSBsaXN0IG9mIHBvc3NpYmxlIHBhcmFtdGVycylcbiAgcHVibGljIHRvRGF0YVVSTChpbWFnZVR5cGU/OiBzdHJpbmcsIHF1YWxpdHk/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZVBhZC50b0RhdGFVUkwoaW1hZ2VUeXBlLCBxdWFsaXR5KTsgLy8gc2F2ZSBpbWFnZSBhcyBkYXRhIFVSTFxuICB9XG5cbiAgLy8gRHJhd3Mgc2lnbmF0dXJlIGltYWdlIGZyb20gZGF0YSBVUkxcbiAgcHVibGljIGZyb21EYXRhVVJMKGRhdGFVUkw6IHN0cmluZywgb3B0aW9uczogYW55ID0ge30pOiB2b2lkIHtcbiAgICAvLyBzZXQgZGVmYXVsdCBoZWlnaHQgYW5kIHdpZHRoIG9uIHJlYWQgZGF0YSBmcm9tIFVSTFxuICAgIGlmIChcbiAgICAgICFvcHRpb25zLmhhc093blByb3BlcnR5KCdoZWlnaHQnKSAmJlxuICAgICAgKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc0hlaWdodFxuICAgICkge1xuICAgICAgb3B0aW9ucy5oZWlnaHQgPSAodGhpcy5vcHRpb25zIGFzIGFueSkuY2FudmFzSGVpZ2h0O1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ3dpZHRoJykgJiYgKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc1dpZHRoKSB7XG4gICAgICBvcHRpb25zLndpZHRoID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc1dpZHRoO1xuICAgIH1cbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5mcm9tRGF0YVVSTChkYXRhVVJMLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIENsZWFycyB0aGUgY2FudmFzXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5jbGVhcigpO1xuICB9XG5cbiAgLy8gUmV0dXJucyB0cnVlIGlmIGNhbnZhcyBpcyBlbXB0eSwgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2VcbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlUGFkLmlzRW1wdHkoKTtcbiAgfVxuXG4gIC8vIFVuYmluZHMgYWxsIGV2ZW50IGhhbmRsZXJzXG4gIHB1YmxpYyBvZmYoKTogdm9pZCB7XG4gICAgdGhpcy5zaWduYXR1cmVQYWQub2ZmKCk7XG4gIH1cblxuICAvLyBSZWJpbmRzIGFsbCBldmVudCBoYW5kbGVyc1xuICBwdWJsaWMgb24oKTogdm9pZCB7XG4gICAgdGhpcy5zaWduYXR1cmVQYWQub24oKTtcbiAgfVxuXG4gIC8vIHNldCBhbiBvcHRpb24gb24gdGhlIHNpZ25hdHVyZVBhZCAtIGUuZy4gc2V0KCdtaW5XaWR0aCcsIDUwKTtcbiAgcHVibGljIHNldChvcHRpb246IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICBjYXNlICdjYW52YXNIZWlnaHQnOlxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5jYW52YXMuaGVpZ2h0ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2FudmFzV2lkdGgnOlxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5jYW52YXMud2lkdGggPSB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZFtvcHRpb25dID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gbm90aWZ5IHN1YnNjcmliZXJzIG9uIHNpZ25hdHVyZSBiZWdpblxuICBwdWJsaWMgb25CZWdpbigpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmVnaW5FdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgLy8gbm90aWZ5IHN1YnNjcmliZXJzIG9uIHNpZ25hdHVyZSBlbmRcbiAgcHVibGljIG9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMub25FbmRFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5UGFkKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlUGFkO1xuICB9XG59XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNpZ25hdHVyZS1wYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpZ25hdHVyZS1wYWQvc3JjL2xpYi9uZ3gtc2lnbmF0dXJlLXBhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxLQUFLLGtCQUFrQixNQUFNLGVBQWUsQ0FBQzs7QUFjcEQsTUFBTSxPQUFPLFlBQVk7SUFRdkIsWUFBWSxVQUFzQjtRQU5qQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDM0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFNeEQsUUFBUTtRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixNQUFNLE1BQU0sR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUUsSUFBSyxJQUFJLENBQUMsT0FBZSxDQUFDLFlBQVksRUFBRTtZQUN0QyxNQUFNLENBQUMsTUFBTSxHQUFJLElBQUksQ0FBQyxPQUFlLENBQUMsWUFBWSxDQUFDO1NBQ3BEO1FBRUQsSUFBSyxJQUFJLENBQUMsT0FBZSxDQUFDLFdBQVcsRUFBRTtZQUNyQyxNQUFNLENBQUMsS0FBSyxHQUFJLElBQUksQ0FBQyxPQUFlLENBQUMsV0FBVyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FB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QUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2lHQUVpQixPQUFPO3NCQUF0QixLQUFLO2dCQUNXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsVUFBVTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFNpZ25hdHVyZVBhZE5hdGl2ZSBmcm9tICdzaWduYXR1cmVfcGFkJztcblxuZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB0aW1lOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFBvaW50R3JvdXAgPSBBcnJheTxQb2ludD47XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJzxjYW52YXM+PC9jYW52YXM+JyxcbiAgc2VsZWN0b3I6ICdzaWduYXR1cmUtcGFkJyxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlUGFkIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IGFueTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkJlZ2luRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25FbmRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIHNpZ25hdHVyZVBhZDogYW55O1xuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIC8vIG5vIG9wXG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgfHwge307XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNhbnZhczogYW55ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJyk7XG5cbiAgICBpZiAoKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc0hlaWdodCkge1xuICAgICAgY2FudmFzLmhlaWdodCA9ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5jYW52YXNIZWlnaHQ7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLm9wdGlvbnMgYXMgYW55KS5jYW52YXNXaWR0aCkge1xuICAgICAgY2FudmFzLndpZHRoID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc1dpZHRoO1xuICAgIH1cblxuICAgIHRoaXMuc2lnbmF0dXJlUGFkID0gbmV3IFNpZ25hdHVyZVBhZE5hdGl2ZS5kZWZhdWx0KGNhbnZhcywgdGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5hZGRFdmVudExpc3RlbmVyKCdiZWdpblN0cm9rZScsIHRoaXMub25CZWdpbi5iaW5kKHRoaXMpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgdGhpcy5zaWduYXR1cmVQYWQuYWRkRXZlbnRMaXN0ZW5lcignZW5kU3Ryb2tlJywgdGhpcy5vbkVuZC5iaW5kKHRoaXMpLCB7IG9uY2U6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgY2FudmFzOiBhbnkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdjYW52YXMnKTtcbiAgICBjYW52YXMud2lkdGggPSAwO1xuICAgIGNhbnZhcy5oZWlnaHQgPSAwO1xuXG4gICAgdGhpcy5zaWduYXR1cmVQYWQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmVnaW5TdHJva2UnLCB0aGlzLm9uQmVnaW4pO1xuICAgIHRoaXMuc2lnbmF0dXJlUGFkLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZFN0cm9rZScsIHRoaXMub25FbmQpO1xuICB9XG5cbiAgcHVibGljIHJlc2l6ZUNhbnZhcygpOiB2b2lkIHtcbiAgICAvLyBXaGVuIHpvb21lZCBvdXQgdG8gbGVzcyB0aGFuIDEwMCUsIGZvciBzb21lIHZlcnkgc3RyYW5nZSByZWFzb24sXG4gICAgLy8gc29tZSBicm93c2VycyByZXBvcnQgZGV2aWNlUGl4ZWxSYXRpbyBhcyBsZXNzIHRoYW4gMVxuICAgIC8vIGFuZCBvbmx5IHBhcnQgb2YgdGhlIGNhbnZhcyBpcyBjbGVhcmVkIHRoZW4uXG4gICAgY29uc3QgcmF0aW86IG51bWJlciA9IE1hdGgubWF4KHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEsIDEpO1xuICAgIGNvbnN0IGNhbnZhczogYW55ID0gdGhpcy5zaWduYXR1cmVQYWQuY2FudmFzO1xuICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhcy5vZmZzZXRXaWR0aCAqIHJhdGlvO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBjYW52YXMub2Zmc2V0SGVpZ2h0ICogcmF0aW87XG4gICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuc2NhbGUocmF0aW8sIHJhdGlvKTtcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5jbGVhcigpOyAvLyBvdGhlcndpc2UgaXNFbXB0eSgpIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QgdmFsdWVcbiAgfVxuXG4gIC8vIFJldHVybnMgc2lnbmF0dXJlIGltYWdlIGFzIGFuIGFycmF5IG9mIHBvaW50IGdyb3Vwc1xuICBwdWJsaWMgdG9EYXRhKCk6IEFycmF5PFBvaW50R3JvdXA+IHtcbiAgICBpZiAodGhpcy5zaWduYXR1cmVQYWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZVBhZC50b0RhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIC8vIERyYXdzIHNpZ25hdHVyZSBpbWFnZSBmcm9tIGFuIGFycmF5IG9mIHBvaW50IGdyb3Vwc1xuICBwdWJsaWMgZnJvbURhdGEocG9pbnRzOiBBcnJheTxQb2ludEdyb3VwPik6IHZvaWQge1xuICAgIHRoaXMuc2lnbmF0dXJlUGFkLmZyb21EYXRhKHBvaW50cyBhcyBhbnkpO1xuICB9XG5cbiAgLy8gUmV0dXJucyBzaWduYXR1cmUgaW1hZ2UgYXMgZGF0YSBVUkwgKHNlZSBodHRwczovL21kbi5pby90b2RhdGF1cmwgZm9yIHRoZSBsaXN0IG9mIHBvc3NpYmxlIHBhcmFtdGVycylcbiAgcHVibGljIHRvRGF0YVVSTChpbWFnZVR5cGU/OiBzdHJpbmcsIHF1YWxpdHk/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZVBhZC50b0RhdGFVUkwoaW1hZ2VUeXBlLCBxdWFsaXR5KTsgLy8gc2F2ZSBpbWFnZSBhcyBkYXRhIFVSTFxuICB9XG5cbiAgLy8gRHJhd3Mgc2lnbmF0dXJlIGltYWdlIGZyb20gZGF0YSBVUkxcbiAgcHVibGljIGZyb21EYXRhVVJMKGRhdGFVUkw6IHN0cmluZywgb3B0aW9uczogYW55ID0ge30pOiB2b2lkIHtcbiAgICAvLyBzZXQgZGVmYXVsdCBoZWlnaHQgYW5kIHdpZHRoIG9uIHJlYWQgZGF0YSBmcm9tIFVSTFxuICAgIGlmIChcbiAgICAgICFvcHRpb25zLmhhc093blByb3BlcnR5KCdoZWlnaHQnKSAmJlxuICAgICAgKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc0hlaWdodFxuICAgICkge1xuICAgICAgb3B0aW9ucy5oZWlnaHQgPSAodGhpcy5vcHRpb25zIGFzIGFueSkuY2FudmFzSGVpZ2h0O1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ3dpZHRoJykgJiYgKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc1dpZHRoKSB7XG4gICAgICBvcHRpb25zLndpZHRoID0gKHRoaXMub3B0aW9ucyBhcyBhbnkpLmNhbnZhc1dpZHRoO1xuICAgIH1cbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5mcm9tRGF0YVVSTChkYXRhVVJMLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIENsZWFycyB0aGUgY2FudmFzXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5jbGVhcigpO1xuICB9XG5cbiAgLy8gUmV0dXJucyB0cnVlIGlmIGNhbnZhcyBpcyBlbXB0eSwgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2VcbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlUGFkLmlzRW1wdHkoKTtcbiAgfVxuXG4gIC8vIFVuYmluZHMgYWxsIGV2ZW50IGhhbmRsZXJzXG4gIHB1YmxpYyBvZmYoKTogdm9pZCB7XG4gICAgdGhpcy5zaWduYXR1cmVQYWQub2ZmKCk7XG4gIH1cblxuICAvLyBSZWJpbmRzIGFsbCBldmVudCBoYW5kbGVyc1xuICBwdWJsaWMgb24oKTogdm9pZCB7XG4gICAgdGhpcy5zaWduYXR1cmVQYWQub24oKTtcbiAgfVxuXG4gIC8vIHNldCBhbiBvcHRpb24gb24gdGhlIHNpZ25hdHVyZVBhZCAtIGUuZy4gc2V0KCdtaW5XaWR0aCcsIDUwKTtcbiAgcHVibGljIHNldChvcHRpb246IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICBjYXNlICdjYW52YXNIZWlnaHQnOlxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5jYW52YXMuaGVpZ2h0ID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2FudmFzV2lkdGgnOlxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5jYW52YXMud2lkdGggPSB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZFtvcHRpb25dID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gbm90aWZ5IHN1YnNjcmliZXJzIG9uIHNpZ25hdHVyZSBiZWdpblxuICBwdWJsaWMgb25CZWdpbigpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmVnaW5FdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgLy8gbm90aWZ5IHN1YnNjcmliZXJzIG9uIHNpZ25hdHVyZSBlbmRcbiAgcHVibGljIG9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMub25FbmRFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5UGFkKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlUGFkO1xuICB9XG59XG4iXX0=
|
|
@@ -4,11 +4,11 @@ import * as SignaturePadNative from 'signature_pad';
|
|
|
4
4
|
|
|
5
5
|
class SignaturePad {
|
|
6
6
|
constructor(elementRef) {
|
|
7
|
+
this.onBeginEvent = new EventEmitter();
|
|
8
|
+
this.onEndEvent = new EventEmitter();
|
|
7
9
|
// no op
|
|
8
10
|
this.elementRef = elementRef;
|
|
9
11
|
this.options = this.options || {};
|
|
10
|
-
this.onBeginEvent = new EventEmitter();
|
|
11
|
-
this.onEndEvent = new EventEmitter();
|
|
12
12
|
}
|
|
13
13
|
ngAfterContentInit() {
|
|
14
14
|
const canvas = this.elementRef.nativeElement.querySelector('canvas');
|
|
@@ -19,13 +19,15 @@ class SignaturePad {
|
|
|
19
19
|
canvas.width = this.options.canvasWidth;
|
|
20
20
|
}
|
|
21
21
|
this.signaturePad = new SignaturePadNative.default(canvas, this.options);
|
|
22
|
-
this.signaturePad.
|
|
23
|
-
this.signaturePad.
|
|
22
|
+
this.signaturePad.addEventListener('beginStroke', this.onBegin.bind(this), { once: true });
|
|
23
|
+
this.signaturePad.addEventListener('endStroke', this.onEnd.bind(this), { once: true });
|
|
24
24
|
}
|
|
25
25
|
ngOnDestroy() {
|
|
26
26
|
const canvas = this.elementRef.nativeElement.querySelector('canvas');
|
|
27
27
|
canvas.width = 0;
|
|
28
28
|
canvas.height = 0;
|
|
29
|
+
this.signaturePad.removeEventListener('beginStroke', this.onBegin);
|
|
30
|
+
this.signaturePad.removeEventListener('endStroke', this.onEnd);
|
|
29
31
|
}
|
|
30
32
|
resizeCanvas() {
|
|
31
33
|
// When zoomed out to less than 100%, for some very strange reason,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viablelogic-ngx-signature-pad.mjs","sources":["../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.component.ts","../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.module.ts","../../../projects/ngx-signature-pad/src/public-api.ts","../../../projects/ngx-signature-pad/src/viablelogic-ngx-signature-pad.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"viablelogic-ngx-signature-pad.mjs","sources":["../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.component.ts","../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.module.ts","../../../projects/ngx-signature-pad/src/public-api.ts","../../../projects/ngx-signature-pad/src/viablelogic-ngx-signature-pad.ts"],"sourcesContent":["import { AfterContentInit, Component, ElementRef, EventEmitter, Input, Output, OnDestroy } from '@angular/core';\nimport * as SignaturePadNative from 'signature_pad';\n\nexport interface Point {\n x: number;\n y: number;\n time: number;\n}\n\nexport type PointGroup = Array<Point>;\n\n@Component({\n template: '<canvas></canvas>',\n selector: 'signature-pad',\n})\nexport class SignaturePad implements AfterContentInit, OnDestroy {\n @Input() public options: any;\n @Output() public onBeginEvent = new EventEmitter<boolean>();\n @Output() public onEndEvent = new EventEmitter<boolean>();\n\n private signaturePad: any;\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n // no op\n this.elementRef = elementRef;\n this.options = this.options || {};\n }\n\n public ngAfterContentInit(): void {\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\n\n if ((this.options as any).canvasHeight) {\n canvas.height = (this.options as any).canvasHeight;\n }\n\n if ((this.options as any).canvasWidth) {\n canvas.width = (this.options as any).canvasWidth;\n }\n\n this.signaturePad = new SignaturePadNative.default(canvas, this.options);\n this.signaturePad.addEventListener('beginStroke', this.onBegin.bind(this), { once: true });\n this.signaturePad.addEventListener('endStroke', this.onEnd.bind(this), { once: true });\n }\n\n public ngOnDestroy(): void {\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\n canvas.width = 0;\n canvas.height = 0;\n\n this.signaturePad.removeEventListener('beginStroke', this.onBegin);\n this.signaturePad.removeEventListener('endStroke', this.onEnd);\n }\n\n public resizeCanvas(): void {\n // When zoomed out to less than 100%, for some very strange reason,\n // some browsers report devicePixelRatio as less than 1\n // and only part of the canvas is cleared then.\n const ratio: number = Math.max(window.devicePixelRatio || 1, 1);\n const canvas: any = this.signaturePad.canvas;\n canvas.width = canvas.offsetWidth * ratio;\n canvas.height = canvas.offsetHeight * ratio;\n canvas.getContext('2d').scale(ratio, ratio);\n this.signaturePad.clear(); // otherwise isEmpty() might return incorrect value\n }\n\n // Returns signature image as an array of point groups\n public toData(): Array<PointGroup> {\n if (this.signaturePad) {\n return this.signaturePad.toData();\n } else {\n return [];\n }\n }\n\n // Draws signature image from an array of point groups\n public fromData(points: Array<PointGroup>): void {\n this.signaturePad.fromData(points as any);\n }\n\n // Returns signature image as data URL (see https://mdn.io/todataurl for the list of possible paramters)\n public toDataURL(imageType?: string, quality?: number): string {\n return this.signaturePad.toDataURL(imageType, quality); // save image as data URL\n }\n\n // Draws signature image from data URL\n public fromDataURL(dataURL: string, options: any = {}): void {\n // set default height and width on read data from URL\n if (\n !options.hasOwnProperty('height') &&\n (this.options as any).canvasHeight\n ) {\n options.height = (this.options as any).canvasHeight;\n }\n if (!options.hasOwnProperty('width') && (this.options as any).canvasWidth) {\n options.width = (this.options as any).canvasWidth;\n }\n this.signaturePad.fromDataURL(dataURL, options);\n }\n\n // Clears the canvas\n public clear(): void {\n this.signaturePad.clear();\n }\n\n // Returns true if canvas is empty, otherwise returns false\n public isEmpty(): boolean {\n return this.signaturePad.isEmpty();\n }\n\n // Unbinds all event handlers\n public off(): void {\n this.signaturePad.off();\n }\n\n // Rebinds all event handlers\n public on(): void {\n this.signaturePad.on();\n }\n\n // set an option on the signaturePad - e.g. set('minWidth', 50);\n public set(option: string, value: any): void {\n switch (option) {\n case 'canvasHeight':\n this.signaturePad.canvas.height = value;\n break;\n case 'canvasWidth':\n this.signaturePad.canvas.width = value;\n break;\n default:\n this.signaturePad[option] = value;\n }\n }\n\n // notify subscribers on signature begin\n public onBegin(): void {\n this.onBeginEvent.emit(true);\n }\n\n // notify subscribers on signature end\n public onEnd(): void {\n this.onEndEvent.emit(true);\n }\n\n public queryPad(): any {\n return this.signaturePad;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignaturePad } from './ngx-signature-pad.component';\n\n@NgModule({\n declarations: [SignaturePad],\n imports: [],\n exports: [SignaturePad],\n})\nexport class SignaturePadModule {}\n","/*\n * Public API Surface of ngx-signature-pad\n */\n\nexport * from './lib/ngx-signature-pad.component';\nexport * from './lib/ngx-signature-pad.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,11 @@ import * as SignaturePadNative from 'signature_pad';
|
|
|
4
4
|
|
|
5
5
|
class SignaturePad {
|
|
6
6
|
constructor(elementRef) {
|
|
7
|
+
this.onBeginEvent = new EventEmitter();
|
|
8
|
+
this.onEndEvent = new EventEmitter();
|
|
7
9
|
// no op
|
|
8
10
|
this.elementRef = elementRef;
|
|
9
11
|
this.options = this.options || {};
|
|
10
|
-
this.onBeginEvent = new EventEmitter();
|
|
11
|
-
this.onEndEvent = new EventEmitter();
|
|
12
12
|
}
|
|
13
13
|
ngAfterContentInit() {
|
|
14
14
|
const canvas = this.elementRef.nativeElement.querySelector('canvas');
|
|
@@ -19,13 +19,15 @@ class SignaturePad {
|
|
|
19
19
|
canvas.width = this.options.canvasWidth;
|
|
20
20
|
}
|
|
21
21
|
this.signaturePad = new SignaturePadNative.default(canvas, this.options);
|
|
22
|
-
this.signaturePad.
|
|
23
|
-
this.signaturePad.
|
|
22
|
+
this.signaturePad.addEventListener('beginStroke', this.onBegin.bind(this), { once: true });
|
|
23
|
+
this.signaturePad.addEventListener('endStroke', this.onEnd.bind(this), { once: true });
|
|
24
24
|
}
|
|
25
25
|
ngOnDestroy() {
|
|
26
26
|
const canvas = this.elementRef.nativeElement.querySelector('canvas');
|
|
27
27
|
canvas.width = 0;
|
|
28
28
|
canvas.height = 0;
|
|
29
|
+
this.signaturePad.removeEventListener('beginStroke', this.onBegin);
|
|
30
|
+
this.signaturePad.removeEventListener('endStroke', this.onEnd);
|
|
29
31
|
}
|
|
30
32
|
resizeCanvas() {
|
|
31
33
|
// When zoomed out to less than 100%, for some very strange reason,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viablelogic-ngx-signature-pad.mjs","sources":["../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.component.ts","../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.module.ts","../../../projects/ngx-signature-pad/src/public-api.ts","../../../projects/ngx-signature-pad/src/viablelogic-ngx-signature-pad.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"viablelogic-ngx-signature-pad.mjs","sources":["../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.component.ts","../../../projects/ngx-signature-pad/src/lib/ngx-signature-pad.module.ts","../../../projects/ngx-signature-pad/src/public-api.ts","../../../projects/ngx-signature-pad/src/viablelogic-ngx-signature-pad.ts"],"sourcesContent":["import { AfterContentInit, Component, ElementRef, EventEmitter, Input, Output, OnDestroy } from '@angular/core';\nimport * as SignaturePadNative from 'signature_pad';\n\nexport interface Point {\n x: number;\n y: number;\n time: number;\n}\n\nexport type PointGroup = Array<Point>;\n\n@Component({\n template: '<canvas></canvas>',\n selector: 'signature-pad',\n})\nexport class SignaturePad implements AfterContentInit, OnDestroy {\n @Input() public options: any;\n @Output() public onBeginEvent = new EventEmitter<boolean>();\n @Output() public onEndEvent = new EventEmitter<boolean>();\n\n private signaturePad: any;\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n // no op\n this.elementRef = elementRef;\n this.options = this.options || {};\n }\n\n public ngAfterContentInit(): void {\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\n\n if ((this.options as any).canvasHeight) {\n canvas.height = (this.options as any).canvasHeight;\n }\n\n if ((this.options as any).canvasWidth) {\n canvas.width = (this.options as any).canvasWidth;\n }\n\n this.signaturePad = new SignaturePadNative.default(canvas, this.options);\n this.signaturePad.addEventListener('beginStroke', this.onBegin.bind(this), { once: true });\n this.signaturePad.addEventListener('endStroke', this.onEnd.bind(this), { once: true });\n }\n\n public ngOnDestroy(): void {\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\n canvas.width = 0;\n canvas.height = 0;\n\n this.signaturePad.removeEventListener('beginStroke', this.onBegin);\n this.signaturePad.removeEventListener('endStroke', this.onEnd);\n }\n\n public resizeCanvas(): void {\n // When zoomed out to less than 100%, for some very strange reason,\n // some browsers report devicePixelRatio as less than 1\n // and only part of the canvas is cleared then.\n const ratio: number = Math.max(window.devicePixelRatio || 1, 1);\n const canvas: any = this.signaturePad.canvas;\n canvas.width = canvas.offsetWidth * ratio;\n canvas.height = canvas.offsetHeight * ratio;\n canvas.getContext('2d').scale(ratio, ratio);\n this.signaturePad.clear(); // otherwise isEmpty() might return incorrect value\n }\n\n // Returns signature image as an array of point groups\n public toData(): Array<PointGroup> {\n if (this.signaturePad) {\n return this.signaturePad.toData();\n } else {\n return [];\n }\n }\n\n // Draws signature image from an array of point groups\n public fromData(points: Array<PointGroup>): void {\n this.signaturePad.fromData(points as any);\n }\n\n // Returns signature image as data URL (see https://mdn.io/todataurl for the list of possible paramters)\n public toDataURL(imageType?: string, quality?: number): string {\n return this.signaturePad.toDataURL(imageType, quality); // save image as data URL\n }\n\n // Draws signature image from data URL\n public fromDataURL(dataURL: string, options: any = {}): void {\n // set default height and width on read data from URL\n if (\n !options.hasOwnProperty('height') &&\n (this.options as any).canvasHeight\n ) {\n options.height = (this.options as any).canvasHeight;\n }\n if (!options.hasOwnProperty('width') && (this.options as any).canvasWidth) {\n options.width = (this.options as any).canvasWidth;\n }\n this.signaturePad.fromDataURL(dataURL, options);\n }\n\n // Clears the canvas\n public clear(): void {\n this.signaturePad.clear();\n }\n\n // Returns true if canvas is empty, otherwise returns false\n public isEmpty(): boolean {\n return this.signaturePad.isEmpty();\n }\n\n // Unbinds all event handlers\n public off(): void {\n this.signaturePad.off();\n }\n\n // Rebinds all event handlers\n public on(): void {\n this.signaturePad.on();\n }\n\n // set an option on the signaturePad - e.g. set('minWidth', 50);\n public set(option: string, value: any): void {\n switch (option) {\n case 'canvasHeight':\n this.signaturePad.canvas.height = value;\n break;\n case 'canvasWidth':\n this.signaturePad.canvas.width = value;\n break;\n default:\n this.signaturePad[option] = value;\n }\n }\n\n // notify subscribers on signature begin\n public onBegin(): void {\n this.onBeginEvent.emit(true);\n }\n\n // notify subscribers on signature end\n public onEnd(): void {\n this.onEndEvent.emit(true);\n }\n\n public queryPad(): any {\n return this.signaturePad;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignaturePad } from './ngx-signature-pad.component';\n\n@NgModule({\n declarations: [SignaturePad],\n imports: [],\n exports: [SignaturePad],\n})\nexport class SignaturePadModule {}\n","/*\n * Public API Surface of ngx-signature-pad\n */\n\nexport * from './lib/ngx-signature-pad.component';\nexport * from './lib/ngx-signature-pad.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|