@mintplayer/ng-qr-code 13.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 +7 -0
- package/esm2020/index.mjs +4 -0
- package/esm2020/lib/components/index.mjs +2 -0
- package/esm2020/lib/components/qr-code/qr-code.component.mjs +29 -0
- package/esm2020/lib/directives/index.mjs +2 -0
- package/esm2020/lib/directives/qr-code/qr-code.directive.mjs +133 -0
- package/esm2020/lib/qr-code.module.mjs +27 -0
- package/esm2020/lib/types/rgba-color.mjs +2 -0
- package/esm2020/mintplayer-ng-qr-code.mjs +5 -0
- package/fesm2015/mintplayer-ng-qr-code.mjs +193 -0
- package/fesm2015/mintplayer-ng-qr-code.mjs.map +1 -0
- package/fesm2020/mintplayer-ng-qr-code.mjs +189 -0
- package/fesm2020/mintplayer-ng-qr-code.mjs.map +1 -0
- package/index.d.ts +3 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/qr-code/qr-code.component.d.ts +15 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/qr-code/qr-code.directive.d.ts +28 -0
- package/lib/qr-code.module.d.ts +9 -0
- package/lib/types/rgba-color.d.ts +1 -0
- package/mintplayer-ng-qr-code.d.ts +5 -0
- package/package.json +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './lib/components';
|
|
2
|
+
export * from './lib/directives';
|
|
3
|
+
export * from './lib/qr-code.module';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXItY29kZS5tb2R1bGUnOyJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './qr-code/qr-code.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXItY29kZS9xci1jb2RlLmNvbXBvbmVudCc7Il19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../../directives/qr-code/qr-code.directive";
|
|
5
|
+
export class QrCodeComponent {
|
|
6
|
+
}
|
|
7
|
+
QrCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: QrCodeComponent, selector: "qr-code", inputs: { value: "value", size: "size", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: "errorCorrectionLevel", centerImageSrc: "centerImageSrc", centerImageSize: "centerImageSize", margin: "margin" }, ngImport: i0, template: "<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
10
|
+
type: Component,
|
|
11
|
+
args: [{ selector: 'qr-code', template: "<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n", styles: [""] }]
|
|
12
|
+
}], propDecorators: { value: [{
|
|
13
|
+
type: Input
|
|
14
|
+
}], size: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}], darkColor: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}], lightColor: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}], errorCorrectionLevel: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], centerImageSrc: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], centerImageSize: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], margin: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2NvbXBvbmVudHMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1xci1jb2RlL3NyYy9saWIvY29tcG9uZW50cy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7Z0dBQWYsZUFBZSxpUkNUNUIsMFpBWUE7MkZESGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxTQUFTOzhCQUtWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgfSBmcm9tICdxcmNvZGUnO1xuaW1wb3J0IHsgUmdiYUNvbG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMvcmdiYS1jb2xvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FyLWNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXItY29kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3FyLWNvZGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRckNvZGVDb21wb25lbnQge1xuICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZT86IG51bWJlcjtcbiAgQElucHV0KCkgZGFya0NvbG9yPzogUmdiYUNvbG9yO1xuICBASW5wdXQoKSBsaWdodENvbG9yPzogUmdiYUNvbG9yO1xuICBASW5wdXQoKSBlcnJvckNvcnJlY3Rpb25MZXZlbD86IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsO1xuICBASW5wdXQoKSBjZW50ZXJJbWFnZVNyYz86IHN0cmluZztcbiAgQElucHV0KCkgY2VudGVySW1hZ2VTaXplPzogc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBtYXJnaW4/OiBudW1iZXI7XG59XG4iLCI8Y2FudmFzICpuZ0lmPVwidmFsdWVcIlxuICAgIFtxckNvZGVdPVwidmFsdWVcIlxuICAgIFtxckNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbF09XCJlcnJvckNvcnJlY3Rpb25MZXZlbFwiXG4gICAgW3FyQ29kZUNlbnRlckltYWdlU3JjXT1cImNlbnRlckltYWdlU3JjXCJcbiAgICBbcXJDb2RlQ2VudGVySW1hZ2VXaWR0aF09XCJjZW50ZXJJbWFnZVNpemVcIlxuICAgIFtxckNvZGVDZW50ZXJJbWFnZUhlaWdodF09XCJjZW50ZXJJbWFnZVNpemVcIlxuICAgIFtxckNvZGVNYXJnaW5dPVwibWFyZ2luXCJcbiAgICBbd2lkdGhdPVwic2l6ZVwiXG4gICAgW2hlaWdodF09XCJzaXplXCJcbiAgICBbZGFya0NvbG9yXT1cImRhcmtDb2xvclwiXG4gICAgW2xpZ2h0Q29sb3JdPVwibGlnaHRDb2xvclwiPlxuPC9jYW52YXM+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './qr-code/qr-code.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXItY29kZS9xci1jb2RlLmRpcmVjdGl2ZSc7Il19
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Directive, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as qrCodeService from 'qrcode';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class QrCodeDirective {
|
|
5
|
+
constructor(viewContainerRef) {
|
|
6
|
+
this.viewContainerRef = viewContainerRef;
|
|
7
|
+
//#region Version
|
|
8
|
+
this.version = null;
|
|
9
|
+
this.darkColor = '#000000FF';
|
|
10
|
+
this.lightColor = '#FFFFFFFF';
|
|
11
|
+
this.errorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
12
|
+
this.margin = 16;
|
|
13
|
+
}
|
|
14
|
+
set qrCodeVersion(value) {
|
|
15
|
+
if (value && (value > 40)) {
|
|
16
|
+
this.version = 40;
|
|
17
|
+
}
|
|
18
|
+
else if (value && (value < 1)) {
|
|
19
|
+
this.version = 1;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.version = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async ngOnChanges() {
|
|
26
|
+
if (!this.value) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const canvas = this.viewContainerRef.element.nativeElement;
|
|
30
|
+
if (!canvas) {
|
|
31
|
+
// native element not available on server side rendering
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const context = canvas.getContext('2d');
|
|
35
|
+
if (context) {
|
|
36
|
+
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
|
|
37
|
+
}
|
|
38
|
+
const errorCorrectionLevel = this.errorCorrectionLevel ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
39
|
+
const dark = !this.darkColor
|
|
40
|
+
? undefined
|
|
41
|
+
: QrCodeDirective.VALID_COLOR_REGEX.test(this.darkColor)
|
|
42
|
+
? this.darkColor
|
|
43
|
+
: undefined;
|
|
44
|
+
const light = !this.lightColor
|
|
45
|
+
? undefined
|
|
46
|
+
: QrCodeDirective.VALID_COLOR_REGEX.test(this.lightColor)
|
|
47
|
+
? this.lightColor
|
|
48
|
+
: undefined;
|
|
49
|
+
await qrCodeService
|
|
50
|
+
.toCanvas(canvas, this.value, {
|
|
51
|
+
version: this.version ?? undefined,
|
|
52
|
+
errorCorrectionLevel,
|
|
53
|
+
width: this.width,
|
|
54
|
+
margin: this.margin,
|
|
55
|
+
color: {
|
|
56
|
+
dark,
|
|
57
|
+
light,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
const centerImageSrc = this.centerImageSrc;
|
|
61
|
+
const centerImageWidth = this.getIntOrDefault(this.centerImageWidth, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
|
|
62
|
+
const centerImageHeight = this.getIntOrDefault(this.centerImageHeight, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
|
|
63
|
+
if (centerImageSrc && context) {
|
|
64
|
+
if (!this.centerImage) {
|
|
65
|
+
this.centerImage = new Image(centerImageWidth, centerImageHeight);
|
|
66
|
+
}
|
|
67
|
+
if (centerImageSrc !== this.centerImage?.src) {
|
|
68
|
+
this.centerImage.src = centerImageSrc;
|
|
69
|
+
}
|
|
70
|
+
if (centerImageWidth !== this.centerImage.width) {
|
|
71
|
+
this.centerImage.width = centerImageWidth;
|
|
72
|
+
}
|
|
73
|
+
if (centerImageHeight !== this.centerImage.height) {
|
|
74
|
+
this.centerImage.height = centerImageHeight;
|
|
75
|
+
}
|
|
76
|
+
const centerImage = this.centerImage;
|
|
77
|
+
centerImage.onload = () => {
|
|
78
|
+
context.drawImage(centerImage, canvas.width / 2 - centerImageWidth / 2, canvas.height / 2 - centerImageHeight / 2, centerImageWidth, centerImageHeight);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
getIntOrDefault(value, defaultValue) {
|
|
83
|
+
if (value === undefined || value === '') {
|
|
84
|
+
return defaultValue;
|
|
85
|
+
}
|
|
86
|
+
else if (typeof value === 'string') {
|
|
87
|
+
return parseInt(value, 10);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
QrCodeDirective.VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/;
|
|
95
|
+
QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL = 'M';
|
|
96
|
+
QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE = 40;
|
|
97
|
+
QrCodeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
QrCodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: QrCodeDirective, selector: "canvas[qrCode]", inputs: { value: ["qrCode", "value"], qrCodeVersion: "qrCodeVersion", width: "width", height: "height", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: ["qrCodeErrorCorrectionLevel", "errorCorrectionLevel"], centerImageSrc: ["qrCodeCenterImageSrc", "centerImageSrc"], centerImageWidth: ["qrCodeCenterImageWidth", "centerImageWidth"], centerImageHeight: ["qrCodeCenterImageHeight", "centerImageHeight"], margin: ["qrCodeMargin", "margin"] }, usesOnChanges: true, ngImport: i0 });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeDirective, decorators: [{
|
|
100
|
+
type: Directive,
|
|
101
|
+
args: [{
|
|
102
|
+
selector: 'canvas[qrCode]'
|
|
103
|
+
}]
|
|
104
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { value: [{
|
|
105
|
+
type: Input,
|
|
106
|
+
args: ['qrCode']
|
|
107
|
+
}], qrCodeVersion: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], width: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], height: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], darkColor: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], lightColor: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], errorCorrectionLevel: [{
|
|
118
|
+
type: Input,
|
|
119
|
+
args: ['qrCodeErrorCorrectionLevel']
|
|
120
|
+
}], centerImageSrc: [{
|
|
121
|
+
type: Input,
|
|
122
|
+
args: ['qrCodeCenterImageSrc']
|
|
123
|
+
}], centerImageWidth: [{
|
|
124
|
+
type: Input,
|
|
125
|
+
args: ['qrCodeCenterImageWidth']
|
|
126
|
+
}], centerImageHeight: [{
|
|
127
|
+
type: Input,
|
|
128
|
+
args: ['qrCodeCenterImageHeight']
|
|
129
|
+
}], margin: [{
|
|
130
|
+
type: Input,
|
|
131
|
+
args: ['qrCodeMargin']
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2RpcmVjdGl2ZXMvcXItY29kZS9xci1jb2RlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBd0IsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxLQUFLLGFBQWEsTUFBTSxRQUFRLENBQUM7O0FBTXhDLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUXRELGlCQUFpQjtRQUNULFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBZTdCLGNBQVMsR0FBZSxXQUFXLENBQUM7UUFDcEMsZUFBVSxHQUFlLFdBQVcsQ0FBQztRQUVULHlCQUFvQixHQUFnQyxlQUFlLENBQUMsOEJBQThCLENBQUM7UUFJakgsV0FBTSxHQUFJLEVBQUUsQ0FBQztJQS9CcUIsQ0FBQztJQVUxRCxJQUFhLGFBQWEsQ0FBQyxLQUFvQjtRQUM3QyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNuQjthQUFNLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFrQkQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FB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SW5wdXQsIGlzRGV2TW9kZSwgT25DaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRUkNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbCB9IGZyb20gJ3FyY29kZSc7XG5pbXBvcnQgKiBhcyBxckNvZGVTZXJ2aWNlIGZyb20gJ3FyY29kZSc7XG5pbXBvcnQgeyBSZ2JhQ29sb3IgfSBmcm9tICcuLi8uLi90eXBlcy9yZ2JhLWNvbG9yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2FudmFzW3FyQ29kZV0nXG59KVxuZXhwb3J0IGNsYXNzIFFyQ29kZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gIHN0YXRpYyByZWFkb25seSBWQUxJRF9DT0xPUl9SRUdFWCA9IC9eIyg/OlswLTlhLWZBLUZdezMsNH0pezEsMn0kLztcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRVJST1JfQ09SUkVDVElPTl9MRVZFTDogUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgPSAnTSc7XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0NFTlRFUl9JTUFHRV9TSVpFID0gNDA7XG5cbiAgQElucHV0KCdxckNvZGUnKSB2YWx1ZSE6IHN0cmluZztcblxuICAvLyNyZWdpb24gVmVyc2lvblxuICBwcml2YXRlIHZlcnNpb246IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzZXQgcXJDb2RlVmVyc2lvbih2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSAmJiAodmFsdWUgPiA0MCkpIHtcbiAgICAgIHRoaXMudmVyc2lvbiA9IDQwO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgKHZhbHVlIDwgMSkpIHtcbiAgICAgIHRoaXMudmVyc2lvbiA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmVyc2lvbiA9IG51bGw7XG4gICAgfVxuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIFxuICBASW5wdXQoKSB3aWR0aD86IG51bWJlcjtcbiAgQElucHV0KCkgaGVpZ2h0PzogbnVtYmVyO1xuICBASW5wdXQoKSBkYXJrQ29sb3I/OiBSZ2JhQ29sb3IgPSAnIzAwMDAwMEZGJztcbiAgQElucHV0KCkgbGlnaHRDb2xvcj86IFJnYmFDb2xvciA9ICcjRkZGRkZGRkYnO1xuICBcbiAgQElucHV0KCdxckNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbCcpIGVycm9yQ29ycmVjdGlvbkxldmVsPzogUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgPSBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9FUlJPUl9DT1JSRUNUSU9OX0xFVkVMO1xuICBASW5wdXQoJ3FyQ29kZUNlbnRlckltYWdlU3JjJykgY2VudGVySW1hZ2VTcmM/OiBzdHJpbmc7XG4gIEBJbnB1dCgncXJDb2RlQ2VudGVySW1hZ2VXaWR0aCcpIGNlbnRlckltYWdlV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgncXJDb2RlQ2VudGVySW1hZ2VIZWlnaHQnKSBjZW50ZXJJbWFnZUhlaWdodD86IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCdxckNvZGVNYXJnaW4nKSBtYXJnaW4/ID0gMTY7XG5cbiAgcHJpdmF0ZSBjZW50ZXJJbWFnZT86IEhUTUxJbWFnZUVsZW1lbnQ7XG5cblxuICBhc3luYyBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIWNhbnZhcykge1xuICAgICAgLy8gbmF0aXZlIGVsZW1lbnQgbm90IGF2YWlsYWJsZSBvbiBzZXJ2ZXIgc2lkZSByZW5kZXJpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgY29udGV4dC5jYW52YXMud2lkdGgsIGNvbnRleHQuY2FudmFzLmhlaWdodCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JDb3JyZWN0aW9uTGV2ZWwgPSB0aGlzLmVycm9yQ29ycmVjdGlvbkxldmVsID8/IFFyQ29kZURpcmVjdGl2ZS5ERUZBVUxUX0VSUk9SX0NPUlJFQ1RJT05fTEVWRUxcblxuICAgIGNvbnN0IGRhcmsgPSAhdGhpcy5kYXJrQ29sb3IgXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBRckNvZGVEaXJlY3RpdmUuVkFMSURfQ09MT1JfUkVHRVgudGVzdCh0aGlzLmRhcmtDb2xvcilcbiAgICAgID8gdGhpcy5kYXJrQ29sb3JcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxpZ2h0ID0gIXRoaXMubGlnaHRDb2xvclxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogUXJDb2RlRGlyZWN0aXZlLlZBTElEX0NPTE9SX1JFR0VYLnRlc3QodGhpcy5saWdodENvbG9yKVxuICAgICAgPyB0aGlzLmxpZ2h0Q29sb3JcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgYXdhaXQgcXJDb2RlU2VydmljZVxuICAgICAgLnRvQ2FudmFzKGNhbnZhcywgdGhpcy52YWx1ZSwge1xuICAgICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbCxcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgIG1hcmdpbjogdGhpcy5tYXJnaW4sXG4gICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgZGFyayxcbiAgICAgICAgICBsaWdodCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgY2VudGVySW1hZ2VTcmMgPSB0aGlzLmNlbnRlckltYWdlU3JjO1xuICAgIGNvbnN0IGNlbnRlckltYWdlV2lkdGggPSB0aGlzLmdldEludE9yRGVmYXVsdCh0aGlzLmNlbnRlckltYWdlV2lkdGgsIFFyQ29kZURpcmVjdGl2ZS5ERUZBVUxUX0NFTlRFUl9JTUFHRV9TSVpFKTtcbiAgICBjb25zdCBjZW50ZXJJbWFnZUhlaWdodCA9IHRoaXMuZ2V0SW50T3JEZWZhdWx0KHRoaXMuY2VudGVySW1hZ2VIZWlnaHQsIFFyQ29kZURpcmVjdGl2ZS5ERUZBVUxUX0NFTlRFUl9JTUFHRV9TSVpFKTtcblxuICAgIGlmIChjZW50ZXJJbWFnZVNyYyAmJiBjb250ZXh0KSB7XG5cbiAgICAgIGlmICghdGhpcy5jZW50ZXJJbWFnZSkge1xuICAgICAgICB0aGlzLmNlbnRlckltYWdlID0gbmV3IEltYWdlKGNlbnRlckltYWdlV2lkdGgsIGNlbnRlckltYWdlSGVpZ2h0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNlbnRlckltYWdlU3JjICE9PSB0aGlzLmNlbnRlckltYWdlPy5zcmMpIHtcbiAgICAgICAgdGhpcy5jZW50ZXJJbWFnZS5zcmMgPSBjZW50ZXJJbWFnZVNyYztcbiAgICAgIH1cblxuICAgICAgaWYgKGNlbnRlckltYWdlV2lkdGggIT09IHRoaXMuY2VudGVySW1hZ2Uud2lkdGgpIHtcbiAgICAgICAgdGhpcy5jZW50ZXJJbWFnZS53aWR0aCA9IGNlbnRlckltYWdlV2lkdGg7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZW50ZXJJbWFnZUhlaWdodCAhPT0gdGhpcy5jZW50ZXJJbWFnZS5oZWlnaHQpIHtcbiAgICAgICAgdGhpcy5jZW50ZXJJbWFnZS5oZWlnaHQgPSBjZW50ZXJJbWFnZUhlaWdodDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2VudGVySW1hZ2UgPSB0aGlzLmNlbnRlckltYWdlO1xuXG4gICAgICBjZW50ZXJJbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKFxuICAgICAgICAgIGNlbnRlckltYWdlLFxuICAgICAgICAgIGNhbnZhcy53aWR0aCAvIDIgLSBjZW50ZXJJbWFnZVdpZHRoIC8gMixcbiAgICAgICAgICBjYW52YXMuaGVpZ2h0IC8gMiAtIGNlbnRlckltYWdlSGVpZ2h0IC8gMiwgY2VudGVySW1hZ2VXaWR0aCwgY2VudGVySW1hZ2VIZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGdldEludE9yRGVmYXVsdCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkLCBkZWZhdWx0VmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { QrCodeComponent } from './components/qr-code/qr-code.component';
|
|
4
|
+
import { QrCodeDirective } from './directives/qr-code/qr-code.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class QrCodeModule {
|
|
7
|
+
}
|
|
8
|
+
QrCodeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
QrCodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
10
|
+
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
11
|
+
QrCodeDirective] });
|
|
12
|
+
QrCodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, imports: [[CommonModule]] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [CommonModule],
|
|
17
|
+
declarations: [
|
|
18
|
+
QrCodeComponent,
|
|
19
|
+
QrCodeDirective
|
|
20
|
+
],
|
|
21
|
+
exports: [
|
|
22
|
+
QrCodeComponent,
|
|
23
|
+
QrCodeDirective
|
|
24
|
+
],
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL3FyLWNvZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBYXpFLE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksaUJBUnJCLGVBQWU7UUFDZixlQUFlLGFBSFAsWUFBWSxhQU1wQixlQUFlO1FBQ2YsZUFBZTswR0FHTixZQUFZLFlBVmQsQ0FBQyxZQUFZLENBQUM7MkZBVVosWUFBWTtrQkFYeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBRckNvZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRckNvZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcXItY29kZS9xci1jb2RlLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBRckNvZGVDb21wb25lbnQsXG4gICAgUXJDb2RlRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBRckNvZGVDb21wb25lbnQsXG4gICAgUXJDb2RlRGlyZWN0aXZlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFFyQ29kZU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmdiYS1jb2xvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1xci1jb2RlL3NyYy9saWIvdHlwZXMvcmdiYS1jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmdiYUNvbG9yID0gYCMke3N0cmluZ31gIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludHBsYXllci1uZy1xci1jb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLXFyLWNvZGUvc3JjL21pbnRwbGF5ZXItbmctcXItY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, Input, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { __awaiter } from 'tslib';
|
|
6
|
+
import * as qrCodeService from 'qrcode';
|
|
7
|
+
|
|
8
|
+
class QrCodeDirective {
|
|
9
|
+
constructor(viewContainerRef) {
|
|
10
|
+
this.viewContainerRef = viewContainerRef;
|
|
11
|
+
//#region Version
|
|
12
|
+
this.version = null;
|
|
13
|
+
this.darkColor = '#000000FF';
|
|
14
|
+
this.lightColor = '#FFFFFFFF';
|
|
15
|
+
this.errorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
16
|
+
this.margin = 16;
|
|
17
|
+
}
|
|
18
|
+
set qrCodeVersion(value) {
|
|
19
|
+
if (value && (value > 40)) {
|
|
20
|
+
this.version = 40;
|
|
21
|
+
}
|
|
22
|
+
else if (value && (value < 1)) {
|
|
23
|
+
this.version = 1;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.version = null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
ngOnChanges() {
|
|
30
|
+
var _a, _b, _c;
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
if (!this.value) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const canvas = this.viewContainerRef.element.nativeElement;
|
|
36
|
+
if (!canvas) {
|
|
37
|
+
// native element not available on server side rendering
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const context = canvas.getContext('2d');
|
|
41
|
+
if (context) {
|
|
42
|
+
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
|
|
43
|
+
}
|
|
44
|
+
const errorCorrectionLevel = (_a = this.errorCorrectionLevel) !== null && _a !== void 0 ? _a : QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
45
|
+
const dark = !this.darkColor
|
|
46
|
+
? undefined
|
|
47
|
+
: QrCodeDirective.VALID_COLOR_REGEX.test(this.darkColor)
|
|
48
|
+
? this.darkColor
|
|
49
|
+
: undefined;
|
|
50
|
+
const light = !this.lightColor
|
|
51
|
+
? undefined
|
|
52
|
+
: QrCodeDirective.VALID_COLOR_REGEX.test(this.lightColor)
|
|
53
|
+
? this.lightColor
|
|
54
|
+
: undefined;
|
|
55
|
+
yield qrCodeService
|
|
56
|
+
.toCanvas(canvas, this.value, {
|
|
57
|
+
version: (_b = this.version) !== null && _b !== void 0 ? _b : undefined,
|
|
58
|
+
errorCorrectionLevel,
|
|
59
|
+
width: this.width,
|
|
60
|
+
margin: this.margin,
|
|
61
|
+
color: {
|
|
62
|
+
dark,
|
|
63
|
+
light,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
const centerImageSrc = this.centerImageSrc;
|
|
67
|
+
const centerImageWidth = this.getIntOrDefault(this.centerImageWidth, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
|
|
68
|
+
const centerImageHeight = this.getIntOrDefault(this.centerImageHeight, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
|
|
69
|
+
if (centerImageSrc && context) {
|
|
70
|
+
if (!this.centerImage) {
|
|
71
|
+
this.centerImage = new Image(centerImageWidth, centerImageHeight);
|
|
72
|
+
}
|
|
73
|
+
if (centerImageSrc !== ((_c = this.centerImage) === null || _c === void 0 ? void 0 : _c.src)) {
|
|
74
|
+
this.centerImage.src = centerImageSrc;
|
|
75
|
+
}
|
|
76
|
+
if (centerImageWidth !== this.centerImage.width) {
|
|
77
|
+
this.centerImage.width = centerImageWidth;
|
|
78
|
+
}
|
|
79
|
+
if (centerImageHeight !== this.centerImage.height) {
|
|
80
|
+
this.centerImage.height = centerImageHeight;
|
|
81
|
+
}
|
|
82
|
+
const centerImage = this.centerImage;
|
|
83
|
+
centerImage.onload = () => {
|
|
84
|
+
context.drawImage(centerImage, canvas.width / 2 - centerImageWidth / 2, canvas.height / 2 - centerImageHeight / 2, centerImageWidth, centerImageHeight);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
getIntOrDefault(value, defaultValue) {
|
|
90
|
+
if (value === undefined || value === '') {
|
|
91
|
+
return defaultValue;
|
|
92
|
+
}
|
|
93
|
+
else if (typeof value === 'string') {
|
|
94
|
+
return parseInt(value, 10);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
QrCodeDirective.VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/;
|
|
102
|
+
QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL = 'M';
|
|
103
|
+
QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE = 40;
|
|
104
|
+
QrCodeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
105
|
+
QrCodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: QrCodeDirective, selector: "canvas[qrCode]", inputs: { value: ["qrCode", "value"], qrCodeVersion: "qrCodeVersion", width: "width", height: "height", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: ["qrCodeErrorCorrectionLevel", "errorCorrectionLevel"], centerImageSrc: ["qrCodeCenterImageSrc", "centerImageSrc"], centerImageWidth: ["qrCodeCenterImageWidth", "centerImageWidth"], centerImageHeight: ["qrCodeCenterImageHeight", "centerImageHeight"], margin: ["qrCodeMargin", "margin"] }, usesOnChanges: true, ngImport: i0 });
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeDirective, decorators: [{
|
|
107
|
+
type: Directive,
|
|
108
|
+
args: [{
|
|
109
|
+
selector: 'canvas[qrCode]'
|
|
110
|
+
}]
|
|
111
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { value: [{
|
|
112
|
+
type: Input,
|
|
113
|
+
args: ['qrCode']
|
|
114
|
+
}], qrCodeVersion: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], width: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], height: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], darkColor: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], lightColor: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], errorCorrectionLevel: [{
|
|
125
|
+
type: Input,
|
|
126
|
+
args: ['qrCodeErrorCorrectionLevel']
|
|
127
|
+
}], centerImageSrc: [{
|
|
128
|
+
type: Input,
|
|
129
|
+
args: ['qrCodeCenterImageSrc']
|
|
130
|
+
}], centerImageWidth: [{
|
|
131
|
+
type: Input,
|
|
132
|
+
args: ['qrCodeCenterImageWidth']
|
|
133
|
+
}], centerImageHeight: [{
|
|
134
|
+
type: Input,
|
|
135
|
+
args: ['qrCodeCenterImageHeight']
|
|
136
|
+
}], margin: [{
|
|
137
|
+
type: Input,
|
|
138
|
+
args: ['qrCodeMargin']
|
|
139
|
+
}] } });
|
|
140
|
+
|
|
141
|
+
class QrCodeComponent {
|
|
142
|
+
}
|
|
143
|
+
QrCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
+
QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: QrCodeComponent, selector: "qr-code", inputs: { value: "value", size: "size", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: "errorCorrectionLevel", centerImageSrc: "centerImageSrc", centerImageSize: "centerImageSize", margin: "margin" }, ngImport: i0, template: "<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }] });
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
146
|
+
type: Component,
|
|
147
|
+
args: [{ selector: 'qr-code', template: "<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n", styles: [""] }]
|
|
148
|
+
}], propDecorators: { value: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], size: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], darkColor: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], lightColor: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], errorCorrectionLevel: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], centerImageSrc: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], centerImageSize: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], margin: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}] } });
|
|
165
|
+
|
|
166
|
+
class QrCodeModule {
|
|
167
|
+
}
|
|
168
|
+
QrCodeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
169
|
+
QrCodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
170
|
+
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
171
|
+
QrCodeDirective] });
|
|
172
|
+
QrCodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, imports: [[CommonModule]] });
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, decorators: [{
|
|
174
|
+
type: NgModule,
|
|
175
|
+
args: [{
|
|
176
|
+
imports: [CommonModule],
|
|
177
|
+
declarations: [
|
|
178
|
+
QrCodeComponent,
|
|
179
|
+
QrCodeDirective
|
|
180
|
+
],
|
|
181
|
+
exports: [
|
|
182
|
+
QrCodeComponent,
|
|
183
|
+
QrCodeDirective
|
|
184
|
+
],
|
|
185
|
+
}]
|
|
186
|
+
}] });
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Generated bundle index. Do not edit.
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
export { QrCodeComponent, QrCodeDirective, QrCodeModule };
|
|
193
|
+
//# sourceMappingURL=mintplayer-ng-qr-code.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-qr-code.mjs","sources":["../../../../libs/mintplayer-ng-qr-code/src/lib/directives/qr-code/qr-code.directive.ts","../../../../libs/mintplayer-ng-qr-code/src/lib/components/qr-code/qr-code.component.ts","../../../../libs/mintplayer-ng-qr-code/src/lib/components/qr-code/qr-code.component.html","../../../../libs/mintplayer-ng-qr-code/src/lib/qr-code.module.ts","../../../../libs/mintplayer-ng-qr-code/src/mintplayer-ng-qr-code.ts"],"sourcesContent":["import { Directive, Input, isDevMode, OnChanges, ViewContainerRef } from '@angular/core';\nimport { QRCodeErrorCorrectionLevel } from 'qrcode';\nimport * as qrCodeService from 'qrcode';\nimport { RgbaColor } from '../../types/rgba-color';\n\n@Directive({\n selector: 'canvas[qrCode]'\n})\nexport class QrCodeDirective implements OnChanges {\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n static readonly VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/;\n static readonly DEFAULT_ERROR_CORRECTION_LEVEL: QRCodeErrorCorrectionLevel = 'M';\n static readonly DEFAULT_CENTER_IMAGE_SIZE = 40;\n\n @Input('qrCode') value!: string;\n\n //#region Version\n private version: number | null = null;\n @Input() set qrCodeVersion(value: number | null) {\n if (value && (value > 40)) {\n this.version = 40;\n } else if (value && (value < 1)) {\n this.version = 1;\n } else {\n this.version = null;\n }\n }\n //#endregion\n\n \n @Input() width?: number;\n @Input() height?: number;\n @Input() darkColor?: RgbaColor = '#000000FF';\n @Input() lightColor?: RgbaColor = '#FFFFFFFF';\n \n @Input('qrCodeErrorCorrectionLevel') errorCorrectionLevel?: QRCodeErrorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;\n @Input('qrCodeCenterImageSrc') centerImageSrc?: string;\n @Input('qrCodeCenterImageWidth') centerImageWidth?: number | string;\n @Input('qrCodeCenterImageHeight') centerImageHeight?: number | string;\n @Input('qrCodeMargin') margin? = 16;\n\n private centerImage?: HTMLImageElement;\n\n\n async ngOnChanges() {\n if (!this.value) {\n return;\n }\n\n const canvas = this.viewContainerRef.element.nativeElement as HTMLCanvasElement | null;\n if (!canvas) {\n // native element not available on server side rendering\n return;\n }\n\n const context = canvas.getContext('2d');\n\n if (context) {\n context.clearRect(0, 0, context.canvas.width, context.canvas.height);\n }\n\n const errorCorrectionLevel = this.errorCorrectionLevel ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL\n\n const dark = !this.darkColor \n ? undefined\n : QrCodeDirective.VALID_COLOR_REGEX.test(this.darkColor)\n ? this.darkColor\n : undefined;\n const light = !this.lightColor\n ? undefined\n : QrCodeDirective.VALID_COLOR_REGEX.test(this.lightColor)\n ? this.lightColor\n : undefined;\n\n await qrCodeService\n .toCanvas(canvas, this.value, {\n version: this.version ?? undefined,\n errorCorrectionLevel,\n width: this.width,\n margin: this.margin,\n color: {\n dark,\n light,\n },\n });\n\n const centerImageSrc = this.centerImageSrc;\n const centerImageWidth = this.getIntOrDefault(this.centerImageWidth, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);\n const centerImageHeight = this.getIntOrDefault(this.centerImageHeight, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);\n\n if (centerImageSrc && context) {\n\n if (!this.centerImage) {\n this.centerImage = new Image(centerImageWidth, centerImageHeight);\n }\n\n if (centerImageSrc !== this.centerImage?.src) {\n this.centerImage.src = centerImageSrc;\n }\n\n if (centerImageWidth !== this.centerImage.width) {\n this.centerImage.width = centerImageWidth;\n }\n\n if (centerImageHeight !== this.centerImage.height) {\n this.centerImage.height = centerImageHeight;\n }\n\n const centerImage = this.centerImage;\n\n centerImage.onload = () => {\n context.drawImage(\n centerImage,\n canvas.width / 2 - centerImageWidth / 2,\n canvas.height / 2 - centerImageHeight / 2, centerImageWidth, centerImageHeight,\n );\n }\n }\n\n }\n\n private getIntOrDefault(value: string | number | undefined, defaultValue: number): number {\n if (value === undefined || value === '') {\n return defaultValue;\n } else if (typeof value === 'string') {\n return parseInt(value, 10);\n } else {\n return value;\n }\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { QRCodeErrorCorrectionLevel } from 'qrcode';\nimport { RgbaColor } from '../../types/rgba-color';\n\n@Component({\n selector: 'qr-code',\n templateUrl: './qr-code.component.html',\n styleUrls: ['./qr-code.component.scss']\n})\nexport class QrCodeComponent {\n @Input() value?: string;\n @Input() size?: number;\n @Input() darkColor?: RgbaColor;\n @Input() lightColor?: RgbaColor;\n @Input() errorCorrectionLevel?: QRCodeErrorCorrectionLevel;\n @Input() centerImageSrc?: string;\n @Input() centerImageSize?: string | number;\n @Input() margin?: number;\n}\n","<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QrCodeComponent } from './components/qr-code/qr-code.component';\nimport { QrCodeDirective } from './directives/qr-code/qr-code.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n QrCodeComponent,\n QrCodeDirective\n ],\n exports: [\n QrCodeComponent,\n QrCodeDirective\n ],\n})\nexport class QrCodeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.QrCodeDirective"],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, Input, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as qrCodeService from 'qrcode';
|
|
6
|
+
|
|
7
|
+
class QrCodeDirective {
|
|
8
|
+
constructor(viewContainerRef) {
|
|
9
|
+
this.viewContainerRef = viewContainerRef;
|
|
10
|
+
//#region Version
|
|
11
|
+
this.version = null;
|
|
12
|
+
this.darkColor = '#000000FF';
|
|
13
|
+
this.lightColor = '#FFFFFFFF';
|
|
14
|
+
this.errorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
15
|
+
this.margin = 16;
|
|
16
|
+
}
|
|
17
|
+
set qrCodeVersion(value) {
|
|
18
|
+
if (value && (value > 40)) {
|
|
19
|
+
this.version = 40;
|
|
20
|
+
}
|
|
21
|
+
else if (value && (value < 1)) {
|
|
22
|
+
this.version = 1;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.version = null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async ngOnChanges() {
|
|
29
|
+
if (!this.value) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const canvas = this.viewContainerRef.element.nativeElement;
|
|
33
|
+
if (!canvas) {
|
|
34
|
+
// native element not available on server side rendering
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const context = canvas.getContext('2d');
|
|
38
|
+
if (context) {
|
|
39
|
+
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
|
|
40
|
+
}
|
|
41
|
+
const errorCorrectionLevel = this.errorCorrectionLevel ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
42
|
+
const dark = !this.darkColor
|
|
43
|
+
? undefined
|
|
44
|
+
: QrCodeDirective.VALID_COLOR_REGEX.test(this.darkColor)
|
|
45
|
+
? this.darkColor
|
|
46
|
+
: undefined;
|
|
47
|
+
const light = !this.lightColor
|
|
48
|
+
? undefined
|
|
49
|
+
: QrCodeDirective.VALID_COLOR_REGEX.test(this.lightColor)
|
|
50
|
+
? this.lightColor
|
|
51
|
+
: undefined;
|
|
52
|
+
await qrCodeService
|
|
53
|
+
.toCanvas(canvas, this.value, {
|
|
54
|
+
version: this.version ?? undefined,
|
|
55
|
+
errorCorrectionLevel,
|
|
56
|
+
width: this.width,
|
|
57
|
+
margin: this.margin,
|
|
58
|
+
color: {
|
|
59
|
+
dark,
|
|
60
|
+
light,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const centerImageSrc = this.centerImageSrc;
|
|
64
|
+
const centerImageWidth = this.getIntOrDefault(this.centerImageWidth, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
|
|
65
|
+
const centerImageHeight = this.getIntOrDefault(this.centerImageHeight, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
|
|
66
|
+
if (centerImageSrc && context) {
|
|
67
|
+
if (!this.centerImage) {
|
|
68
|
+
this.centerImage = new Image(centerImageWidth, centerImageHeight);
|
|
69
|
+
}
|
|
70
|
+
if (centerImageSrc !== this.centerImage?.src) {
|
|
71
|
+
this.centerImage.src = centerImageSrc;
|
|
72
|
+
}
|
|
73
|
+
if (centerImageWidth !== this.centerImage.width) {
|
|
74
|
+
this.centerImage.width = centerImageWidth;
|
|
75
|
+
}
|
|
76
|
+
if (centerImageHeight !== this.centerImage.height) {
|
|
77
|
+
this.centerImage.height = centerImageHeight;
|
|
78
|
+
}
|
|
79
|
+
const centerImage = this.centerImage;
|
|
80
|
+
centerImage.onload = () => {
|
|
81
|
+
context.drawImage(centerImage, canvas.width / 2 - centerImageWidth / 2, canvas.height / 2 - centerImageHeight / 2, centerImageWidth, centerImageHeight);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
getIntOrDefault(value, defaultValue) {
|
|
86
|
+
if (value === undefined || value === '') {
|
|
87
|
+
return defaultValue;
|
|
88
|
+
}
|
|
89
|
+
else if (typeof value === 'string') {
|
|
90
|
+
return parseInt(value, 10);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
QrCodeDirective.VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/;
|
|
98
|
+
QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL = 'M';
|
|
99
|
+
QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE = 40;
|
|
100
|
+
QrCodeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
101
|
+
QrCodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: QrCodeDirective, selector: "canvas[qrCode]", inputs: { value: ["qrCode", "value"], qrCodeVersion: "qrCodeVersion", width: "width", height: "height", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: ["qrCodeErrorCorrectionLevel", "errorCorrectionLevel"], centerImageSrc: ["qrCodeCenterImageSrc", "centerImageSrc"], centerImageWidth: ["qrCodeCenterImageWidth", "centerImageWidth"], centerImageHeight: ["qrCodeCenterImageHeight", "centerImageHeight"], margin: ["qrCodeMargin", "margin"] }, usesOnChanges: true, ngImport: i0 });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeDirective, decorators: [{
|
|
103
|
+
type: Directive,
|
|
104
|
+
args: [{
|
|
105
|
+
selector: 'canvas[qrCode]'
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { value: [{
|
|
108
|
+
type: Input,
|
|
109
|
+
args: ['qrCode']
|
|
110
|
+
}], qrCodeVersion: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], width: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], height: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], darkColor: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], lightColor: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], errorCorrectionLevel: [{
|
|
121
|
+
type: Input,
|
|
122
|
+
args: ['qrCodeErrorCorrectionLevel']
|
|
123
|
+
}], centerImageSrc: [{
|
|
124
|
+
type: Input,
|
|
125
|
+
args: ['qrCodeCenterImageSrc']
|
|
126
|
+
}], centerImageWidth: [{
|
|
127
|
+
type: Input,
|
|
128
|
+
args: ['qrCodeCenterImageWidth']
|
|
129
|
+
}], centerImageHeight: [{
|
|
130
|
+
type: Input,
|
|
131
|
+
args: ['qrCodeCenterImageHeight']
|
|
132
|
+
}], margin: [{
|
|
133
|
+
type: Input,
|
|
134
|
+
args: ['qrCodeMargin']
|
|
135
|
+
}] } });
|
|
136
|
+
|
|
137
|
+
class QrCodeComponent {
|
|
138
|
+
}
|
|
139
|
+
QrCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
+
QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: QrCodeComponent, selector: "qr-code", inputs: { value: "value", size: "size", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: "errorCorrectionLevel", centerImageSrc: "centerImageSrc", centerImageSize: "centerImageSize", margin: "margin" }, ngImport: i0, template: "<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }] });
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
142
|
+
type: Component,
|
|
143
|
+
args: [{ selector: 'qr-code', template: "<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n", styles: [""] }]
|
|
144
|
+
}], propDecorators: { value: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], size: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], darkColor: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], lightColor: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], errorCorrectionLevel: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], centerImageSrc: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], centerImageSize: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], margin: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}] } });
|
|
161
|
+
|
|
162
|
+
class QrCodeModule {
|
|
163
|
+
}
|
|
164
|
+
QrCodeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
165
|
+
QrCodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
166
|
+
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
167
|
+
QrCodeDirective] });
|
|
168
|
+
QrCodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, imports: [[CommonModule]] });
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: QrCodeModule, decorators: [{
|
|
170
|
+
type: NgModule,
|
|
171
|
+
args: [{
|
|
172
|
+
imports: [CommonModule],
|
|
173
|
+
declarations: [
|
|
174
|
+
QrCodeComponent,
|
|
175
|
+
QrCodeDirective
|
|
176
|
+
],
|
|
177
|
+
exports: [
|
|
178
|
+
QrCodeComponent,
|
|
179
|
+
QrCodeDirective
|
|
180
|
+
],
|
|
181
|
+
}]
|
|
182
|
+
}] });
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Generated bundle index. Do not edit.
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
export { QrCodeComponent, QrCodeDirective, QrCodeModule };
|
|
189
|
+
//# sourceMappingURL=mintplayer-ng-qr-code.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-qr-code.mjs","sources":["../../../../libs/mintplayer-ng-qr-code/src/lib/directives/qr-code/qr-code.directive.ts","../../../../libs/mintplayer-ng-qr-code/src/lib/components/qr-code/qr-code.component.ts","../../../../libs/mintplayer-ng-qr-code/src/lib/components/qr-code/qr-code.component.html","../../../../libs/mintplayer-ng-qr-code/src/lib/qr-code.module.ts","../../../../libs/mintplayer-ng-qr-code/src/mintplayer-ng-qr-code.ts"],"sourcesContent":["import { Directive, Input, isDevMode, OnChanges, ViewContainerRef } from '@angular/core';\nimport { QRCodeErrorCorrectionLevel } from 'qrcode';\nimport * as qrCodeService from 'qrcode';\nimport { RgbaColor } from '../../types/rgba-color';\n\n@Directive({\n selector: 'canvas[qrCode]'\n})\nexport class QrCodeDirective implements OnChanges {\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n static readonly VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/;\n static readonly DEFAULT_ERROR_CORRECTION_LEVEL: QRCodeErrorCorrectionLevel = 'M';\n static readonly DEFAULT_CENTER_IMAGE_SIZE = 40;\n\n @Input('qrCode') value!: string;\n\n //#region Version\n private version: number | null = null;\n @Input() set qrCodeVersion(value: number | null) {\n if (value && (value > 40)) {\n this.version = 40;\n } else if (value && (value < 1)) {\n this.version = 1;\n } else {\n this.version = null;\n }\n }\n //#endregion\n\n \n @Input() width?: number;\n @Input() height?: number;\n @Input() darkColor?: RgbaColor = '#000000FF';\n @Input() lightColor?: RgbaColor = '#FFFFFFFF';\n \n @Input('qrCodeErrorCorrectionLevel') errorCorrectionLevel?: QRCodeErrorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;\n @Input('qrCodeCenterImageSrc') centerImageSrc?: string;\n @Input('qrCodeCenterImageWidth') centerImageWidth?: number | string;\n @Input('qrCodeCenterImageHeight') centerImageHeight?: number | string;\n @Input('qrCodeMargin') margin? = 16;\n\n private centerImage?: HTMLImageElement;\n\n\n async ngOnChanges() {\n if (!this.value) {\n return;\n }\n\n const canvas = this.viewContainerRef.element.nativeElement as HTMLCanvasElement | null;\n if (!canvas) {\n // native element not available on server side rendering\n return;\n }\n\n const context = canvas.getContext('2d');\n\n if (context) {\n context.clearRect(0, 0, context.canvas.width, context.canvas.height);\n }\n\n const errorCorrectionLevel = this.errorCorrectionLevel ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL\n\n const dark = !this.darkColor \n ? undefined\n : QrCodeDirective.VALID_COLOR_REGEX.test(this.darkColor)\n ? this.darkColor\n : undefined;\n const light = !this.lightColor\n ? undefined\n : QrCodeDirective.VALID_COLOR_REGEX.test(this.lightColor)\n ? this.lightColor\n : undefined;\n\n await qrCodeService\n .toCanvas(canvas, this.value, {\n version: this.version ?? undefined,\n errorCorrectionLevel,\n width: this.width,\n margin: this.margin,\n color: {\n dark,\n light,\n },\n });\n\n const centerImageSrc = this.centerImageSrc;\n const centerImageWidth = this.getIntOrDefault(this.centerImageWidth, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);\n const centerImageHeight = this.getIntOrDefault(this.centerImageHeight, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);\n\n if (centerImageSrc && context) {\n\n if (!this.centerImage) {\n this.centerImage = new Image(centerImageWidth, centerImageHeight);\n }\n\n if (centerImageSrc !== this.centerImage?.src) {\n this.centerImage.src = centerImageSrc;\n }\n\n if (centerImageWidth !== this.centerImage.width) {\n this.centerImage.width = centerImageWidth;\n }\n\n if (centerImageHeight !== this.centerImage.height) {\n this.centerImage.height = centerImageHeight;\n }\n\n const centerImage = this.centerImage;\n\n centerImage.onload = () => {\n context.drawImage(\n centerImage,\n canvas.width / 2 - centerImageWidth / 2,\n canvas.height / 2 - centerImageHeight / 2, centerImageWidth, centerImageHeight,\n );\n }\n }\n\n }\n\n private getIntOrDefault(value: string | number | undefined, defaultValue: number): number {\n if (value === undefined || value === '') {\n return defaultValue;\n } else if (typeof value === 'string') {\n return parseInt(value, 10);\n } else {\n return value;\n }\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { QRCodeErrorCorrectionLevel } from 'qrcode';\nimport { RgbaColor } from '../../types/rgba-color';\n\n@Component({\n selector: 'qr-code',\n templateUrl: './qr-code.component.html',\n styleUrls: ['./qr-code.component.scss']\n})\nexport class QrCodeComponent {\n @Input() value?: string;\n @Input() size?: number;\n @Input() darkColor?: RgbaColor;\n @Input() lightColor?: RgbaColor;\n @Input() errorCorrectionLevel?: QRCodeErrorCorrectionLevel;\n @Input() centerImageSrc?: string;\n @Input() centerImageSize?: string | number;\n @Input() margin?: number;\n}\n","<canvas *ngIf=\"value\"\n [qrCode]=\"value\"\n [qrCodeErrorCorrectionLevel]=\"errorCorrectionLevel\"\n [qrCodeCenterImageSrc]=\"centerImageSrc\"\n [qrCodeCenterImageWidth]=\"centerImageSize\"\n [qrCodeCenterImageHeight]=\"centerImageSize\"\n [qrCodeMargin]=\"margin\"\n [width]=\"size\"\n [height]=\"size\"\n [darkColor]=\"darkColor\"\n [lightColor]=\"lightColor\">\n</canvas>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QrCodeComponent } from './components/qr-code/qr-code.component';\nimport { QrCodeDirective } from './directives/qr-code/qr-code.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n QrCodeComponent,\n QrCodeDirective\n ],\n exports: [\n QrCodeComponent,\n QrCodeDirective\n ],\n})\nexport class QrCodeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.QrCodeDirective"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './qr-code/qr-code.component';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { QRCodeErrorCorrectionLevel } from 'qrcode';
|
|
2
|
+
import { RgbaColor } from '../../types/rgba-color';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class QrCodeComponent {
|
|
5
|
+
value?: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
darkColor?: RgbaColor;
|
|
8
|
+
lightColor?: RgbaColor;
|
|
9
|
+
errorCorrectionLevel?: QRCodeErrorCorrectionLevel;
|
|
10
|
+
centerImageSrc?: string;
|
|
11
|
+
centerImageSize?: string | number;
|
|
12
|
+
margin?: number;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<QrCodeComponent, "qr-code", never, { "value": "value"; "size": "size"; "darkColor": "darkColor"; "lightColor": "lightColor"; "errorCorrectionLevel": "errorCorrectionLevel"; "centerImageSrc": "centerImageSrc"; "centerImageSize": "centerImageSize"; "margin": "margin"; }, {}, never, never>;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './qr-code/qr-code.directive';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { OnChanges, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { QRCodeErrorCorrectionLevel } from 'qrcode';
|
|
3
|
+
import { RgbaColor } from '../../types/rgba-color';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class QrCodeDirective implements OnChanges {
|
|
6
|
+
private viewContainerRef;
|
|
7
|
+
constructor(viewContainerRef: ViewContainerRef);
|
|
8
|
+
static readonly VALID_COLOR_REGEX: RegExp;
|
|
9
|
+
static readonly DEFAULT_ERROR_CORRECTION_LEVEL: QRCodeErrorCorrectionLevel;
|
|
10
|
+
static readonly DEFAULT_CENTER_IMAGE_SIZE = 40;
|
|
11
|
+
value: string;
|
|
12
|
+
private version;
|
|
13
|
+
set qrCodeVersion(value: number | null);
|
|
14
|
+
width?: number;
|
|
15
|
+
height?: number;
|
|
16
|
+
darkColor?: RgbaColor;
|
|
17
|
+
lightColor?: RgbaColor;
|
|
18
|
+
errorCorrectionLevel?: QRCodeErrorCorrectionLevel;
|
|
19
|
+
centerImageSrc?: string;
|
|
20
|
+
centerImageWidth?: number | string;
|
|
21
|
+
centerImageHeight?: number | string;
|
|
22
|
+
margin?: number | undefined;
|
|
23
|
+
private centerImage?;
|
|
24
|
+
ngOnChanges(): Promise<void>;
|
|
25
|
+
private getIntOrDefault;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeDirective, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<QrCodeDirective, "canvas[qrCode]", never, { "value": "qrCode"; "qrCodeVersion": "qrCodeVersion"; "width": "width"; "height": "height"; "darkColor": "darkColor"; "lightColor": "lightColor"; "errorCorrectionLevel": "qrCodeErrorCorrectionLevel"; "centerImageSrc": "qrCodeCenterImageSrc"; "centerImageWidth": "qrCodeCenterImageWidth"; "centerImageHeight": "qrCodeCenterImageHeight"; "margin": "qrCodeMargin"; }, {}, never>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./components/qr-code/qr-code.component";
|
|
3
|
+
import * as i2 from "./directives/qr-code/qr-code.directive";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
export declare class QrCodeModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<QrCodeModule, [typeof i1.QrCodeComponent, typeof i2.QrCodeDirective], [typeof i3.CommonModule], [typeof i1.QrCodeComponent, typeof i2.QrCodeDirective]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<QrCodeModule>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type RgbaColor = `#${string}`;
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mintplayer/ng-qr-code",
|
|
3
|
+
"version": "13.0.0",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^13.2.0",
|
|
6
|
+
"@angular/core": "^13.2.0",
|
|
7
|
+
"qrcode": "1.5.0"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"module": "fesm2015/mintplayer-ng-qr-code.mjs",
|
|
13
|
+
"es2020": "fesm2020/mintplayer-ng-qr-code.mjs",
|
|
14
|
+
"esm2020": "esm2020/mintplayer-ng-qr-code.mjs",
|
|
15
|
+
"fesm2020": "fesm2020/mintplayer-ng-qr-code.mjs",
|
|
16
|
+
"fesm2015": "fesm2015/mintplayer-ng-qr-code.mjs",
|
|
17
|
+
"typings": "mintplayer-ng-qr-code.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": {
|
|
20
|
+
"default": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./mintplayer-ng-qr-code.d.ts",
|
|
24
|
+
"esm2020": "./esm2020/mintplayer-ng-qr-code.mjs",
|
|
25
|
+
"es2020": "./fesm2020/mintplayer-ng-qr-code.mjs",
|
|
26
|
+
"es2015": "./fesm2015/mintplayer-ng-qr-code.mjs",
|
|
27
|
+
"node": "./fesm2015/mintplayer-ng-qr-code.mjs",
|
|
28
|
+
"default": "./fesm2020/mintplayer-ng-qr-code.mjs"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"sideEffects": false
|
|
32
|
+
}
|