UNPKG

@ng-arthur/core

Version:

@ng-arthur/core for Angular 8+ Components

125 lines 10.1 kB
import * as tslib_1 from "tslib"; import { Component, Input, ChangeDetectionStrategy, ElementRef, Inject, Output, EventEmitter } from '@angular/core'; import QRCode from 'qrcode'; import { DOCUMENT } from "@angular/common"; let NaQRCodeComponent = class NaQRCodeComponent { constructor(el, _doc) { this.el = el; this._doc = _doc; this.urlChange = new EventEmitter(); this.level = 'M'; /** * 定义周边区域应该有多宽。 */ this.margin = 0; this.type = 'image/jpeg'; /** * Height/Width */ this.size = 256; // /** // * 宽度 // */ // @Input() width = 256; // /** // * 高度 // */ // @Input() height: number; /** * 前景色,值必须为十六进制格式(RGBA) */ this.colorDark = '#000000'; /** * 背景色,值必须为十六进制格式(RGBA) */ this.colorLight = '#ffffff'; this.isValidQrCodeText = (data) => { // if (this.allowEmptyString === false) { // return !(typeof data === 'undefined' || data === ''); // } return !(typeof data === 'undefined'); }; } ngOnInit() { QRCode.toDataURL(this._doc.getElementById('canvas'), this.data, { version: this.version, errorCorrectionLevel: this.level, margin: this.margin, width: this.size, color: { dark: this.colorDark, light: this.colorLight }, type: this.type, rendererOpts: { quality: 0.3 } }) .then(url => { this.urlChange.emit(url); }) .catch(err => { console.error(err); }); } ngOnChanges(changes) { const data = changes['data']; if (data && this.isValidQrCodeText(data.currentValue)) { // console.log(data.currentValue); // this.qrcode.clear(); // this.qrcode.makeCode(qrData.currentValue); } } }; tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number) ], NaQRCodeComponent.prototype, "version", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String) ], NaQRCodeComponent.prototype, "data", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String) ], NaQRCodeComponent.prototype, "url", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", Object) ], NaQRCodeComponent.prototype, "urlChange", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String) ], NaQRCodeComponent.prototype, "level", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object) ], NaQRCodeComponent.prototype, "margin", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String) ], NaQRCodeComponent.prototype, "type", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object) ], NaQRCodeComponent.prototype, "size", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object) ], NaQRCodeComponent.prototype, "colorDark", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object) ], NaQRCodeComponent.prototype, "colorLight", void 0); NaQRCodeComponent = tslib_1.__decorate([ Component({ selector: 'na-qrcode', template: "<canvas id=\"canvas\"></canvas>\n", changeDetection: ChangeDetectionStrategy.OnPush, styles: [""] }), tslib_1.__param(1, Inject(DOCUMENT)), tslib_1.__metadata("design:paramtypes", [ElementRef, Object]) ], NaQRCodeComponent); export { NaQRCodeComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmEtcXJjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1hcnRodXIvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9xcmNvZGUvbmEtcXJjb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUTNDLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBZ0M1QixZQUFvQixFQUFjLEVBQTRCLElBQVM7UUFBbkQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUE0QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBNUI3RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4QyxVQUFLLEdBQW1FLEdBQUcsQ0FBQztRQUNyRjs7V0FFRztRQUNNLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxTQUFJLEdBQThDLFlBQVksQ0FBQztRQUN4RTs7V0FFRztRQUNNLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDcEIsTUFBTTtRQUNOLFFBQVE7UUFDUixNQUFNO1FBQ04sd0JBQXdCO1FBQ3hCLE1BQU07UUFDTixRQUFRO1FBQ1IsTUFBTTtRQUNOLDJCQUEyQjtRQUMzQjs7V0FFRztRQUNNLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDL0I7O1dBRUc7UUFDTSxlQUFVLEdBQUcsU0FBUyxDQUFDO1FBb0N0QixzQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBVyxFQUFFO1lBQ3RELHlDQUF5QztZQUN6QywwREFBMEQ7WUFDMUQsSUFBSTtZQUNKLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQTtJQXZDMEUsQ0FBQztJQUU1RSxRQUFRO1FBQ04sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzlELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2hCLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTthQUN2QjtZQUNELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFlBQVksRUFBRTtnQkFDWixPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JELGtDQUFrQztZQUNsQyx1QkFBdUI7WUFDdkIsNkNBQTZDO1NBQzlDO0lBQ0gsQ0FBQztDQVNGLENBQUE7QUF4RVU7SUFBUixLQUFLLEVBQUU7O2tEQUFpQjtBQUNoQjtJQUFSLEtBQUssRUFBRTs7K0NBQWM7QUFDYjtJQUFSLEtBQUssRUFBRTs7OENBQWE7QUFDWDtJQUFULE1BQU0sRUFBRTs7b0RBQXdDO0FBQ3hDO0lBQVIsS0FBSyxFQUFFOztnREFBNkU7QUFJNUU7SUFBUixLQUFLLEVBQUU7O2lEQUFZO0FBQ1g7SUFBUixLQUFLLEVBQUU7OytDQUFnRTtBQUkvRDtJQUFSLEtBQUssRUFBRTs7K0NBQVk7QUFZWDtJQUFSLEtBQUssRUFBRTs7b0RBQXVCO0FBSXRCO0lBQVIsS0FBSyxFQUFFOztxREFBd0I7QUE5QnJCLGlCQUFpQjtJQU43QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsV0FBVztRQUNyQiw2Q0FBeUM7UUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O0tBQ2hELENBQUM7SUFpQ3FDLG1CQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTs2Q0FBN0IsVUFBVTtHQWhDdkIsaUJBQWlCLENBeUU3QjtTQXpFWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFbGVtZW50UmVmLCBJbmplY3QsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBRUkNvZGUgZnJvbSAncXJjb2RlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYS1xcmNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmEtcXJjb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmEtcXJjb2RlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYVFSQ29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmVyc2lvbjogbnVtYmVyO1xuICBASW5wdXQoKSBkYXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVybDogc3RyaW5nO1xuICBAT3V0cHV0KCkgdXJsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIGxldmVsOiAnbG93JyB8ICdtZWRpdW0nIHwgJ3F1YXJ0aWxlJyB8ICdoaWdoJyB8ICdMJyB8ICdNJyB8ICdRJyB8ICdIJyA9ICdNJztcbiAgLyoqXG4gICAqIOWumuS5ieWRqOi+ueWMuuWfn+W6lOivpeacieWkmuWuveOAglxuICAgKi9cbiAgQElucHV0KCkgbWFyZ2luID0gMDtcbiAgQElucHV0KCkgdHlwZTogJ2ltYWdlL3BuZycgfCAnaW1hZ2UvanBlZycgfCAnaW1hZ2Uvd2VicCcgPSAnaW1hZ2UvanBlZyc7XG4gIC8qKlxuICAgKiBcdEhlaWdodC9XaWR0aFxuICAgKi9cbiAgQElucHV0KCkgc2l6ZSA9IDI1NjtcbiAgLy8gLyoqXG4gIC8vICAqIOWuveW6plxuICAvLyAgKi9cbiAgLy8gQElucHV0KCkgd2lkdGggPSAyNTY7XG4gIC8vIC8qKlxuICAvLyAgKiDpq5jluqZcbiAgLy8gICovXG4gIC8vIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuICAvKipcbiAgICog5YmN5pmv6Imy77yM5YC85b+F6aG75Li65Y2B5YWt6L+b5Yi25qC85byP77yIUkdCQe+8iVxuICAgKi9cbiAgQElucHV0KCkgY29sb3JEYXJrID0gJyMwMDAwMDAnO1xuICAvKipcbiAgICog6IOM5pmv6Imy77yM5YC85b+F6aG75Li65Y2B5YWt6L+b5Yi25qC85byP77yIUkdCQe+8iVxuICAgKi9cbiAgQElucHV0KCkgY29sb3JMaWdodCA9ICcjZmZmZmZmJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2M6IGFueSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgUVJDb2RlLnRvRGF0YVVSTCh0aGlzLl9kb2MuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhcycpLCB0aGlzLmRhdGEsIHtcbiAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiB0aGlzLmxldmVsLFxuICAgICAgbWFyZ2luOiB0aGlzLm1hcmdpbixcbiAgICAgIHdpZHRoOiB0aGlzLnNpemUsXG4gICAgICBjb2xvcjoge1xuICAgICAgICBkYXJrOiB0aGlzLmNvbG9yRGFyayxcbiAgICAgICAgbGlnaHQ6IHRoaXMuY29sb3JMaWdodFxuICAgICAgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHJlbmRlcmVyT3B0czoge1xuICAgICAgICBxdWFsaXR5OiAwLjNcbiAgICAgIH1cbiAgICB9KVxuICAgIC50aGVuKHVybCA9PiB7XG4gICAgICB0aGlzLnVybENoYW5nZS5lbWl0KHVybCk7XG4gICAgfSlcbiAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBkYXRhID0gY2hhbmdlc1snZGF0YSddO1xuICAgIGlmIChkYXRhICYmIHRoaXMuaXNWYWxpZFFyQ29kZVRleHQoZGF0YS5jdXJyZW50VmFsdWUpKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhkYXRhLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAvLyB0aGlzLnFyY29kZS5jbGVhcigpO1xuICAgICAgLy8gdGhpcy5xcmNvZGUubWFrZUNvZGUocXJEYXRhLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzVmFsaWRRckNvZGVUZXh0ID0gKGRhdGE6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgIC8vIGlmICh0aGlzLmFsbG93RW1wdHlTdHJpbmcgPT09IGZhbHNlKSB7XG4gICAgLy8gICByZXR1cm4gISh0eXBlb2YgZGF0YSA9PT0gJ3VuZGVmaW5lZCcgfHwgZGF0YSA9PT0gJycpO1xuICAgIC8vIH1cbiAgICByZXR1cm4gISh0eXBlb2YgZGF0YSA9PT0gJ3VuZGVmaW5lZCcpO1xuICB9XG5cbn1cbiJdfQ==