ngx-signaturepad
Version:
Fork of wulfsolter/angular2-signaturepad
116 lines • 14.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.SignaturePad = void 0;
var core_1 = require("@angular/core");
var i0 = require("@angular/core");
;
var SignaturePad = /** @class */ (function () {
function SignaturePad(elementRef) {
// no op
this.elementRef = elementRef;
this.options = this.options || {};
this.onBeginEvent = new core_1.EventEmitter();
this.onEndEvent = new core_1.EventEmitter();
}
SignaturePad.prototype.ngAfterContentInit = function () {
var sp = require('signature_pad')['default']; //
var canvas = this.elementRef.nativeElement.querySelector('canvas');
if (this.options['canvasHeight']) {
canvas.height = this.options['canvasHeight'];
}
if (this.options['canvasWidth']) {
canvas.width = this.options['canvasWidth'];
}
this.signaturePad = new sp(canvas, this.options);
this.signaturePad.onBegin = this.onBegin.bind(this);
this.signaturePad.onEnd = this.onEnd.bind(this);
};
SignaturePad.prototype.resizeCanvas = function () {
// When zoomed out to less than 100%, for some very strange reason,
// some browsers report devicePixelRatio as less than 1
// and only part of the canvas is cleared then.
var ratio = Math.max(window.devicePixelRatio || 1, 1);
var canvas = this.signaturePad._canvas;
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext('2d').scale(ratio, ratio);
this.signaturePad.clear(); // otherwise isEmpty() might return incorrect value
};
// Returns signature image as an array of point groups
SignaturePad.prototype.toData = function () {
return this.signaturePad.toData();
};
// Draws signature image from an array of point groups
SignaturePad.prototype.fromData = function (points) {
this.signaturePad.fromData(points);
};
// Returns signature image as data URL (see https://mdn.io/todataurl for the list of possible paramters)
SignaturePad.prototype.toDataURL = function (imageType, quality) {
return this.signaturePad.toDataURL(imageType, quality); // save image as data URL
};
// Draws signature image from data URL
SignaturePad.prototype.fromDataURL = function (dataURL, options) {
if (options === void 0) { options = {}; }
this.signaturePad.fromDataURL(dataURL, options);
};
// Clears the canvas
SignaturePad.prototype.clear = function () {
this.signaturePad.clear();
};
// Returns true if canvas is empty, otherwise returns false
SignaturePad.prototype.isEmpty = function () {
return this.signaturePad.isEmpty();
};
// Unbinds all event handlers
SignaturePad.prototype.off = function () {
this.signaturePad.off();
};
// Rebinds all event handlers
SignaturePad.prototype.on = function () {
this.signaturePad.on();
};
// set an option on the signaturePad - e.g. set('minWidth', 50);
SignaturePad.prototype.set = function (option, value) {
switch (option) {
case 'canvasHeight':
this.signaturePad._canvas.height = value;
break;
case 'canvasWidth':
this.signaturePad._canvas.width = value;
break;
default:
this.signaturePad[option] = value;
}
};
// notify subscribers on signature begin
SignaturePad.prototype.onBegin = function () {
this.onBeginEvent.emit(true);
};
// notify subscribers on signature end
SignaturePad.prototype.onEnd = function () {
this.onEndEvent.emit(true);
};
SignaturePad.prototype.queryPad = function () {
return this.signaturePad;
};
SignaturePad.ɵfac = function SignaturePad_Factory(t) { return new (t || SignaturePad)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
SignaturePad.ɵcmp = i0.ɵɵdefineComponent({ type: SignaturePad, selectors: [["signature-pad"]], inputs: { options: "options" }, outputs: { onBeginEvent: "onBeginEvent", onEndEvent: "onEndEvent" }, decls: 1, vars: 0, template: function SignaturePad_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "canvas");
} }, encapsulation: 2 });
return SignaturePad;
}());
exports.SignaturePad = SignaturePad;
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignaturePad, [{
type: core_1.Component,
args: [{
template: '<canvas></canvas>',
selector: 'signature-pad',
}]
}], function () { return [{ type: i0.ElementRef }]; }, { options: [{
type: core_1.Input
}], onBeginEvent: [{
type: core_1.Output
}], onEndEvent: [{
type: core_1.Output
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLXBhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNpZ25hdHVyZS1wYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsc0NBQW1GOztBQUZuRixZQUFZLENBQUM7QUFjYjtJQWNFLHNCQUFZLFVBQXNCO1FBQ2hDLFFBQVE7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxtQkFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLG1CQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0seUNBQWtCLEdBQXpCO1FBQ0UsSUFBSSxFQUFFLEdBQVEsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNyRCxJQUFJLE1BQU0sR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEUsSUFBVSxJQUFJLENBQUMsT0FBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEdBQVMsSUFBSSxDQUFDLE9BQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNyRDtRQUVELElBQVUsSUFBSSxDQUFDLE9BQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN0QyxNQUFNLENBQUMsS0FBSyxHQUFTLElBQUksQ0FBQyxPQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMs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QVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLCtCQUFRLEdBQWY7UUFDSSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQzs0RUFoSFUsWUFBWTtxREFBWixZQUFZO1lBSloseUJBQWlCOzt1QkFmOUI7Q0FvSUMsQUF0SEQsSUFzSEM7QUFqSFksb0NBQVk7dUZBQVosWUFBWTtjQUx4QixnQkFBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRSxlQUFlO2FBQzFCOzZEQUlpQixPQUFPO2tCQUF0QixZQUFLO1lBQ1csWUFBWTtrQkFBNUIsYUFBTTtZQUNVLFVBQVU7a0JBQTFCLGFBQU0iLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZGVjbGFyZSB2YXIgcmVxdWlyZTogYW55O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XHJcbiAgeDogbnVtYmVyO1xyXG4gIHk6IG51bWJlcjtcclxuICB0aW1lOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBvaW50R3JvdXAgPSBBcnJheTxQb2ludD47XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJzxjYW52YXM+PC9jYW52YXM+JyxcclxuICBzZWxlY3RvcjogJ3NpZ25hdHVyZS1wYWQnLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZVBhZCB7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBPYmplY3Q7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkJlZ2luRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuICBAT3V0cHV0KCkgcHVibGljIG9uRW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgcHJpdmF0ZSBzaWduYXR1cmVQYWQ6IGFueTtcclxuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIC8vIG5vIG9wXHJcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5vbkJlZ2luRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLm9uRW5kRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IHNwOiBhbnkgPSByZXF1aXJlKCdzaWduYXR1cmVfcGFkJylbJ2RlZmF1bHQnXTsgLy9cclxuICAgIGxldCBjYW52YXM6IGFueSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NhbnZhcycpO1xyXG5cclxuICAgIGlmICgoPGFueT50aGlzLm9wdGlvbnMpWydjYW52YXNIZWlnaHQnXSkge1xyXG4gICAgICBjYW52YXMuaGVpZ2h0ID0gKDxhbnk+dGhpcy5vcHRpb25zKVsnY2FudmFzSGVpZ2h0J107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCg8YW55PnRoaXMub3B0aW9ucylbJ2NhbnZhc1dpZHRoJ10pIHtcclxuICAgICAgY2FudmFzLndpZHRoID0gKDxhbnk+dGhpcy5vcHRpb25zKVsnY2FudmFzV2lkdGgnXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNpZ25hdHVyZVBhZCA9IG5ldyBzcChjYW52YXMsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5vbkJlZ2luID0gdGhpcy5vbkJlZ2luLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5vbkVuZCA9IHRoaXMub25FbmQuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNpemVDYW52YXMoKTogdm9pZCB7XHJcbiAgICAvLyBXaGVuIHpvb21lZCBvdXQgdG8gbGVzcyB0aGFuIDEwMCUsIGZvciBzb21lIHZlcnkgc3RyYW5nZSByZWFzb24sXHJcbiAgICAvLyBzb21lIGJyb3dzZXJzIHJlcG9ydCBkZXZpY2VQaXhlbFJhdGlvIGFzIGxlc3MgdGhhbiAxXHJcbiAgICAvLyBhbmQgb25seSBwYXJ0IG9mIHRoZSBjYW52YXMgaXMgY2xlYXJlZCB0aGVuLlxyXG4gICAgY29uc3QgcmF0aW86IG51bWJlciA9IE1hdGgubWF4KHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEsIDEpO1xyXG4gICAgY29uc3QgY2FudmFzOiBhbnkgPSB0aGlzLnNpZ25hdHVyZVBhZC5fY2FudmFzO1xyXG4gICAgY2FudmFzLndpZHRoID0gY2FudmFzLm9mZnNldFdpZHRoICogcmF0aW87XHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gY2FudmFzLm9mZnNldEhlaWdodCAqIHJhdGlvO1xyXG4gICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuc2NhbGUocmF0aW8sIHJhdGlvKTtcclxuICAgIHRoaXMuc2lnbmF0dXJlUGFkLmNsZWFyKCk7IC8vIG90aGVyd2lzZSBpc0VtcHR5KCkgbWlnaHQgcmV0dXJuIGluY29ycmVjdCB2YWx1ZVxyXG4gIH1cclxuXHJcbiAgIC8vIFJldHVybnMgc2lnbmF0dXJlIGltYWdlIGFzIGFuIGFycmF5IG9mIHBvaW50IGdyb3Vwc1xyXG4gIHB1YmxpYyB0b0RhdGEoKTogQXJyYXk8UG9pbnRHcm91cD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlUGFkLnRvRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gRHJhd3Mgc2lnbmF0dXJlIGltYWdlIGZyb20gYW4gYXJyYXkgb2YgcG9pbnQgZ3JvdXBzXHJcbiAgcHVibGljIGZyb21EYXRhKHBvaW50czogQXJyYXk8UG9pbnRHcm91cD4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2lnbmF0dXJlUGFkLmZyb21EYXRhKHBvaW50cyk7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIHNpZ25hdHVyZSBpbWFnZSBhcyBkYXRhIFVSTCAoc2VlIGh0dHBzOi8vbWRuLmlvL3RvZGF0YXVybCBmb3IgdGhlIGxpc3Qgb2YgcG9zc2libGUgcGFyYW10ZXJzKVxyXG4gIHB1YmxpYyB0b0RhdGFVUkwoaW1hZ2VUeXBlPzogc3RyaW5nLCBxdWFsaXR5PzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZVBhZC50b0RhdGFVUkwoaW1hZ2VUeXBlLCBxdWFsaXR5KTsgLy8gc2F2ZSBpbWFnZSBhcyBkYXRhIFVSTFxyXG4gIH1cclxuXHJcbiAgLy8gRHJhd3Mgc2lnbmF0dXJlIGltYWdlIGZyb20gZGF0YSBVUkxcclxuICBwdWJsaWMgZnJvbURhdGFVUkwoZGF0YVVSTDogc3RyaW5nLCBvcHRpb25zOiBPYmplY3QgPSB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5zaWduYXR1cmVQYWQuZnJvbURhdGFVUkwoZGF0YVVSTCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvLyBDbGVhcnMgdGhlIGNhbnZhc1xyXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lnbmF0dXJlUGFkLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIHRydWUgaWYgY2FudmFzIGlzIGVtcHR5LCBvdGhlcndpc2UgcmV0dXJucyBmYWxzZVxyXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlUGFkLmlzRW1wdHkoKTtcclxuICB9XHJcblxyXG4gIC8vIFVuYmluZHMgYWxsIGV2ZW50IGhhbmRsZXJzXHJcbiAgcHVibGljIG9mZigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lnbmF0dXJlUGFkLm9mZigpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmViaW5kcyBhbGwgZXZlbnQgaGFuZGxlcnNcclxuICBwdWJsaWMgb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNpZ25hdHVyZVBhZC5vbigpO1xyXG4gIH1cclxuXHJcbiAgLy8gc2V0IGFuIG9wdGlvbiBvbiB0aGUgc2lnbmF0dXJlUGFkIC0gZS5nLiBzZXQoJ21pbldpZHRoJywgNTApO1xyXG4gIHB1YmxpYyBzZXQob3B0aW9uOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAob3B0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2NhbnZhc0hlaWdodCc6XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWQuX2NhbnZhcy5oZWlnaHQgPSB2YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2FudmFzV2lkdGgnOlxyXG4gICAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLl9jYW52YXMud2lkdGggPSB2YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZFtvcHRpb25dID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBub3RpZnkgc3Vic2NyaWJlcnMgb24gc2lnbmF0dXJlIGJlZ2luXHJcbiAgcHVibGljIG9uQmVnaW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQmVnaW5FdmVudC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gbm90aWZ5IHN1YnNjcmliZXJzIG9uIHNpZ25hdHVyZSBlbmRcclxuICBwdWJsaWMgb25FbmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRW5kRXZlbnQuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBxdWVyeVBhZCgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaWduYXR1cmVQYWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
;