@mintplayer/ng-qr-code 15.3.0 → 16.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/esm2022/lib/components/qr-code/qr-code.component.mjs +30 -0
- package/esm2022/lib/directives/qr-code/qr-code.directive.mjs +134 -0
- package/esm2022/lib/qr-code.module.mjs +28 -0
- package/{fesm2020 → fesm2022}/mintplayer-ng-qr-code.mjs +15 -15
- package/{fesm2020 → fesm2022}/mintplayer-ng-qr-code.mjs.map +1 -1
- package/lib/components/qr-code/qr-code.component.d.ts +1 -1
- package/lib/directives/qr-code/qr-code.directive.d.ts +1 -1
- package/package.json +7 -13
- package/esm2020/lib/components/qr-code/qr-code.component.mjs +0 -29
- package/esm2020/lib/directives/qr-code/qr-code.directive.mjs +0 -133
- package/esm2020/lib/qr-code.module.mjs +0 -27
- package/fesm2015/mintplayer-ng-qr-code.mjs +0 -193
- package/fesm2015/mintplayer-ng-qr-code.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/rgba-color.mjs +0 -0
- /package/{esm2020 → esm2022}/mintplayer-ng-qr-code.mjs +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
class QrCodeComponent {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", 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: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }] }); }
|
|
8
|
+
}
|
|
9
|
+
export { QrCodeComponent };
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
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" }]
|
|
13
|
+
}], propDecorators: { value: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}], size: [{
|
|
16
|
+
type: Input
|
|
17
|
+
}], darkColor: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], lightColor: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], errorCorrectionLevel: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], centerImageSrc: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], centerImageSize: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], margin: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2NvbXBvbmVudHMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1xci1jb2RlL3NyYy9saWIvY29tcG9uZW50cy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJakQsTUFLYSxlQUFlOzhHQUFmLGVBQWU7a0dBQWYsZUFBZSxpUkNUNUIsMFpBWUE7O1NESGEsZUFBZTsyRkFBZixlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVM7OEJBS1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRUkNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbCB9IGZyb20gJ0BtaW50cGxheWVyL3FyLWNvZGUnO1xuaW1wb3J0IHsgUmdiYUNvbG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMvcmdiYS1jb2xvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FyLWNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXItY29kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3FyLWNvZGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRckNvZGVDb21wb25lbnQge1xuICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZT86IG51bWJlcjtcbiAgQElucHV0KCkgZGFya0NvbG9yPzogUmdiYUNvbG9yO1xuICBASW5wdXQoKSBsaWdodENvbG9yPzogUmdiYUNvbG9yO1xuICBASW5wdXQoKSBlcnJvckNvcnJlY3Rpb25MZXZlbD86IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsO1xuICBASW5wdXQoKSBjZW50ZXJJbWFnZVNyYz86IHN0cmluZztcbiAgQElucHV0KCkgY2VudGVySW1hZ2VTaXplPzogc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBtYXJnaW4/OiBudW1iZXI7XG59XG4iLCI8Y2FudmFzICpuZ0lmPVwidmFsdWVcIlxuICAgIFtxckNvZGVdPVwidmFsdWVcIlxuICAgIFtxckNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbF09XCJlcnJvckNvcnJlY3Rpb25MZXZlbFwiXG4gICAgW3FyQ29kZUNlbnRlckltYWdlU3JjXT1cImNlbnRlckltYWdlU3JjXCJcbiAgICBbcXJDb2RlQ2VudGVySW1hZ2VXaWR0aF09XCJjZW50ZXJJbWFnZVNpemVcIlxuICAgIFtxckNvZGVDZW50ZXJJbWFnZUhlaWdodF09XCJjZW50ZXJJbWFnZVNpemVcIlxuICAgIFtxckNvZGVNYXJnaW5dPVwibWFyZ2luXCJcbiAgICBbd2lkdGhdPVwic2l6ZVwiXG4gICAgW2hlaWdodF09XCJzaXplXCJcbiAgICBbZGFya0NvbG9yXT1cImRhcmtDb2xvclwiXG4gICAgW2xpZ2h0Q29sb3JdPVwibGlnaHRDb2xvclwiPlxuPC9jYW52YXM+XG4iXX0=
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Directive, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as qrCodeService from '@mintplayer/qr-code';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
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
|
+
static { this.VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/; }
|
|
15
|
+
static { this.DEFAULT_ERROR_CORRECTION_LEVEL = 'M'; }
|
|
16
|
+
static { this.DEFAULT_CENTER_IMAGE_SIZE = 40; }
|
|
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
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
97
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", 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 }); }
|
|
98
|
+
}
|
|
99
|
+
export { QrCodeDirective };
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeDirective, decorators: [{
|
|
101
|
+
type: Directive,
|
|
102
|
+
args: [{
|
|
103
|
+
selector: 'canvas[qrCode]'
|
|
104
|
+
}]
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { value: [{
|
|
106
|
+
type: Input,
|
|
107
|
+
args: ['qrCode']
|
|
108
|
+
}], qrCodeVersion: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], width: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], height: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], darkColor: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], lightColor: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], errorCorrectionLevel: [{
|
|
119
|
+
type: Input,
|
|
120
|
+
args: ['qrCodeErrorCorrectionLevel']
|
|
121
|
+
}], centerImageSrc: [{
|
|
122
|
+
type: Input,
|
|
123
|
+
args: ['qrCodeCenterImageSrc']
|
|
124
|
+
}], centerImageWidth: [{
|
|
125
|
+
type: Input,
|
|
126
|
+
args: ['qrCodeCenterImageWidth']
|
|
127
|
+
}], centerImageHeight: [{
|
|
128
|
+
type: Input,
|
|
129
|
+
args: ['qrCodeCenterImageHeight']
|
|
130
|
+
}], margin: [{
|
|
131
|
+
type: Input,
|
|
132
|
+
args: ['qrCodeMargin']
|
|
133
|
+
}] } });
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2RpcmVjdGl2ZXMvcXItY29kZS9xci1jb2RlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBd0IsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxLQUFLLGFBQWEsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHckQsTUFHYSxlQUFlO0lBRTFCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUXRELGlCQUFpQjtRQUNULFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBZTdCLGNBQVMsR0FBZSxXQUFXLENBQUM7UUFDcEMsZUFBVSxHQUFlLFdBQVcsQ0FBQztRQUVULHlCQUFvQixHQUFnQyxlQUFlLENBQUMsOEJBQThCLENBQUM7UUFJakgsV0FBTSxHQUFJLEVBQUUsQ0FBQztJQS9CcUIsQ0FBQzthQUUxQyxzQkFBaUIsR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7YUFDbkQsbUNBQThCLEdBQStCLEdBQUcsQUFBbEMsQ0FBbUM7YUFDakUsOEJBQXlCLEdBQUcsRUFBRSxBQUFMLENBQU07SUFNL0MsSUFBYSxhQUFhLENBQUMsS0FBb0I7UUFDN0MsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7U0FDbkI7YUFBTSxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztTQUNsQjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBa0JELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQXlDLENBQUM7UUFDdkYsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLHdEQUF3RDtZQUN4RCxPQUFPO1NBQ1I7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxlQUFlLENBQUMsOEJBQThCLENBQUE7UUFFeEcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUMxQixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztnQkFDaEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDNUIsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7Z0JBQ2pCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxNQUFNLGFBQWE7YUFDaEIsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVM7WUFDbEMsb0JBQW9CO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsS0FBSyxFQUFFO2dCQUNMLElBQUk7Z0JBQ0osS0FBSzthQUNOO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFbEgsSUFBSSxjQUFjLElBQUksT0FBTyxFQUFFO1lBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBQUM7YUFDbkU7WUFFRCxJQUFJLGNBQWMsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDO2FBQ3ZDO1lBRUQsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7YUFDM0M7WUFFRCxJQUFJLGlCQUFpQixLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO2dCQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQzthQUM3QztZQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFFckMsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ3hCLE9BQU8sQ0FBQyxTQUFTLENBQ2YsV0FBVyxFQUNYLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixHQUFHLENBQUMsRUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixDQUMvRSxDQUFDO1lBQ0osQ0FBQyxDQUFBO1NBQ0Y7SUFFSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWtDLEVBQUUsWUFBb0I7UUFDOUUsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDdkMsT0FBTyxZQUFZLENBQUM7U0FDckI7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNwQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDNUI7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzhHQTNIVSxlQUFlO2tHQUFmLGVBQWU7O1NBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUgzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO3VHQVNrQixLQUFLO3NCQUFyQixLQUFLO3VCQUFDLFFBQVE7Z0JBSUYsYUFBYTtzQkFBekIsS0FBSztnQkFZRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFK0Isb0JBQW9CO3NCQUF4RCxLQUFLO3VCQUFDLDRCQUE0QjtnQkFDSixjQUFjO3NCQUE1QyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFDSSxnQkFBZ0I7c0JBQWhELEtBQUs7dUJBQUMsd0JBQXdCO2dCQUNHLGlCQUFpQjtzQkFBbEQsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBQ1QsTUFBTTtzQkFBNUIsS0FBSzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgaXNEZXZNb2RlLCBPbkNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsIH0gZnJvbSAnQG1pbnRwbGF5ZXIvcXItY29kZSc7XG5pbXBvcnQgKiBhcyBxckNvZGVTZXJ2aWNlIGZyb20gJ0BtaW50cGxheWVyL3FyLWNvZGUnO1xuaW1wb3J0IHsgUmdiYUNvbG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMvcmdiYS1jb2xvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2NhbnZhc1txckNvZGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBRckNvZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBzdGF0aWMgcmVhZG9ubHkgVkFMSURfQ09MT1JfUkVHRVggPSAvXiMoPzpbMC05YS1mQS1GXXszLDR9KXsxLDJ9JC87XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0VSUk9SX0NPUlJFQ1RJT05fTEVWRUw6IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsID0gJ00nO1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9DRU5URVJfSU1BR0VfU0laRSA9IDQwO1xuXG4gIEBJbnB1dCgncXJDb2RlJykgdmFsdWUhOiBzdHJpbmc7XG5cbiAgLy8jcmVnaW9uIFZlcnNpb25cbiAgcHJpdmF0ZSB2ZXJzaW9uOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2V0IHFyQ29kZVZlcnNpb24odmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgJiYgKHZhbHVlID4gNDApKSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSA0MDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmICh2YWx1ZSA8IDEpKSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSBudWxsO1xuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBcbiAgQElucHV0KCkgd2lkdGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGhlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgZGFya0NvbG9yPzogUmdiYUNvbG9yID0gJyMwMDAwMDBGRic7XG4gIEBJbnB1dCgpIGxpZ2h0Q29sb3I/OiBSZ2JhQ29sb3IgPSAnI0ZGRkZGRkZGJztcbiAgXG4gIEBJbnB1dCgncXJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwnKSBlcnJvckNvcnJlY3Rpb25MZXZlbD86IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsID0gUXJDb2RlRGlyZWN0aXZlLkRFRkFVTFRfRVJST1JfQ09SUkVDVElPTl9MRVZFTDtcbiAgQElucHV0KCdxckNvZGVDZW50ZXJJbWFnZVNyYycpIGNlbnRlckltYWdlU3JjPzogc3RyaW5nO1xuICBASW5wdXQoJ3FyQ29kZUNlbnRlckltYWdlV2lkdGgnKSBjZW50ZXJJbWFnZVdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICBASW5wdXQoJ3FyQ29kZUNlbnRlckltYWdlSGVpZ2h0JykgY2VudGVySW1hZ2VIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgncXJDb2RlTWFyZ2luJykgbWFyZ2luPyA9IDE2O1xuXG4gIHByaXZhdGUgY2VudGVySW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50O1xuXG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2FudmFzID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFjYW52YXMpIHtcbiAgICAgIC8vIG5hdGl2ZSBlbGVtZW50IG5vdCBhdmFpbGFibGUgb24gc2VydmVyIHNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIGNvbnRleHQuY2FudmFzLndpZHRoLCBjb250ZXh0LmNhbnZhcy5oZWlnaHQpO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yQ29ycmVjdGlvbkxldmVsID0gdGhpcy5lcnJvckNvcnJlY3Rpb25MZXZlbCA/PyBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9FUlJPUl9DT1JSRUNUSU9OX0xFVkVMXG5cbiAgICBjb25zdCBkYXJrID0gIXRoaXMuZGFya0NvbG9yIFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogUXJDb2RlRGlyZWN0aXZlLlZBTElEX0NPTE9SX1JFR0VYLnRlc3QodGhpcy5kYXJrQ29sb3IpXG4gICAgICA/IHRoaXMuZGFya0NvbG9yXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBsaWdodCA9ICF0aGlzLmxpZ2h0Q29sb3JcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IFFyQ29kZURpcmVjdGl2ZS5WQUxJRF9DT0xPUl9SRUdFWC50ZXN0KHRoaXMubGlnaHRDb2xvcilcbiAgICAgID8gdGhpcy5saWdodENvbG9yXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGF3YWl0IHFyQ29kZVNlcnZpY2VcbiAgICAgIC50b0NhbnZhcyhjYW52YXMsIHRoaXMudmFsdWUsIHtcbiAgICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgZXJyb3JDb3JyZWN0aW9uTGV2ZWwsXG4gICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICBtYXJnaW46IHRoaXMubWFyZ2luLFxuICAgICAgICBjb2xvcjoge1xuICAgICAgICAgIGRhcmssXG4gICAgICAgICAgbGlnaHQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGNlbnRlckltYWdlU3JjID0gdGhpcy5jZW50ZXJJbWFnZVNyYztcbiAgICBjb25zdCBjZW50ZXJJbWFnZVdpZHRoID0gdGhpcy5nZXRJbnRPckRlZmF1bHQodGhpcy5jZW50ZXJJbWFnZVdpZHRoLCBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9DRU5URVJfSU1BR0VfU0laRSk7XG4gICAgY29uc3QgY2VudGVySW1hZ2VIZWlnaHQgPSB0aGlzLmdldEludE9yRGVmYXVsdCh0aGlzLmNlbnRlckltYWdlSGVpZ2h0LCBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9DRU5URVJfSU1BR0VfU0laRSk7XG5cbiAgICBpZiAoY2VudGVySW1hZ2VTcmMgJiYgY29udGV4dCkge1xuXG4gICAgICBpZiAoIXRoaXMuY2VudGVySW1hZ2UpIHtcbiAgICAgICAgdGhpcy5jZW50ZXJJbWFnZSA9IG5ldyBJbWFnZShjZW50ZXJJbWFnZVdpZHRoLCBjZW50ZXJJbWFnZUhlaWdodCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZW50ZXJJbWFnZVNyYyAhPT0gdGhpcy5jZW50ZXJJbWFnZT8uc3JjKSB7XG4gICAgICAgIHRoaXMuY2VudGVySW1hZ2Uuc3JjID0gY2VudGVySW1hZ2VTcmM7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZW50ZXJJbWFnZVdpZHRoICE9PSB0aGlzLmNlbnRlckltYWdlLndpZHRoKSB7XG4gICAgICAgIHRoaXMuY2VudGVySW1hZ2Uud2lkdGggPSBjZW50ZXJJbWFnZVdpZHRoO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2VudGVySW1hZ2VIZWlnaHQgIT09IHRoaXMuY2VudGVySW1hZ2UuaGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuY2VudGVySW1hZ2UuaGVpZ2h0ID0gY2VudGVySW1hZ2VIZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNlbnRlckltYWdlID0gdGhpcy5jZW50ZXJJbWFnZTtcblxuICAgICAgY2VudGVySW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShcbiAgICAgICAgICBjZW50ZXJJbWFnZSxcbiAgICAgICAgICBjYW52YXMud2lkdGggLyAyIC0gY2VudGVySW1hZ2VXaWR0aCAvIDIsXG4gICAgICAgICAgY2FudmFzLmhlaWdodCAvIDIgLSBjZW50ZXJJbWFnZUhlaWdodCAvIDIsIGNlbnRlckltYWdlV2lkdGgsIGNlbnRlckltYWdlSGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRPckRlZmF1bHQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
class QrCodeModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
9
|
+
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
10
|
+
QrCodeDirective] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, imports: [CommonModule] }); }
|
|
12
|
+
}
|
|
13
|
+
export { QrCodeModule };
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
imports: [CommonModule],
|
|
18
|
+
declarations: [
|
|
19
|
+
QrCodeComponent,
|
|
20
|
+
QrCodeDirective
|
|
21
|
+
],
|
|
22
|
+
exports: [
|
|
23
|
+
QrCodeComponent,
|
|
24
|
+
QrCodeDirective
|
|
25
|
+
],
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL3FyLWNvZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRXpFLE1BV2EsWUFBWTs4R0FBWixZQUFZOytHQUFaLFlBQVksaUJBUnJCLGVBQWU7WUFDZixlQUFlLGFBSFAsWUFBWSxhQU1wQixlQUFlO1lBQ2YsZUFBZTsrR0FHTixZQUFZLFlBVmIsWUFBWTs7U0FVWCxZQUFZOzJGQUFaLFlBQVk7a0JBWHhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUXJDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3FyLWNvZGUvcXItY29kZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUXJDb2RlQ29tcG9uZW50LFxuICAgIFFyQ29kZURpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUXJDb2RlQ29tcG9uZW50LFxuICAgIFFyQ29kZURpcmVjdGl2ZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBRckNvZGVNb2R1bGUge31cbiJdfQ==
|
|
@@ -14,6 +14,9 @@ class QrCodeDirective {
|
|
|
14
14
|
this.errorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
|
|
15
15
|
this.margin = 16;
|
|
16
16
|
}
|
|
17
|
+
static { this.VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/; }
|
|
18
|
+
static { this.DEFAULT_ERROR_CORRECTION_LEVEL = 'M'; }
|
|
19
|
+
static { this.DEFAULT_CENTER_IMAGE_SIZE = 40; }
|
|
17
20
|
set qrCodeVersion(value) {
|
|
18
21
|
if (value && (value > 40)) {
|
|
19
22
|
this.version = 40;
|
|
@@ -93,13 +96,10 @@ class QrCodeDirective {
|
|
|
93
96
|
return value;
|
|
94
97
|
}
|
|
95
98
|
}
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
100
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", 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 }); }
|
|
96
101
|
}
|
|
97
|
-
|
|
98
|
-
QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL = 'M';
|
|
99
|
-
QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE = 40;
|
|
100
|
-
QrCodeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
101
|
-
QrCodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", 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: "15.2.7", ngImport: i0, type: QrCodeDirective, decorators: [{
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeDirective, decorators: [{
|
|
103
103
|
type: Directive,
|
|
104
104
|
args: [{
|
|
105
105
|
selector: 'canvas[qrCode]'
|
|
@@ -135,10 +135,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
135
135
|
}] } });
|
|
136
136
|
|
|
137
137
|
class QrCodeComponent {
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", 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: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }] }); }
|
|
138
140
|
}
|
|
139
|
-
|
|
140
|
-
QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", 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: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", 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: "15.2.7", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
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" }]
|
|
144
144
|
}], propDecorators: { value: [{
|
|
@@ -160,13 +160,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
160
160
|
}] } });
|
|
161
161
|
|
|
162
162
|
class QrCodeModule {
|
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
164
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
165
|
+
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
166
|
+
QrCodeDirective] }); }
|
|
167
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, imports: [CommonModule] }); }
|
|
163
168
|
}
|
|
164
|
-
|
|
165
|
-
QrCodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
166
|
-
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
167
|
-
QrCodeDirective] });
|
|
168
|
-
QrCodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, imports: [CommonModule] });
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, decorators: [{
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: QrCodeModule, decorators: [{
|
|
170
170
|
type: NgModule,
|
|
171
171
|
args: [{
|
|
172
172
|
imports: [CommonModule],
|
|
@@ -1 +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 '@mintplayer/qr-code';\nimport * as qrCodeService from '@mintplayer/qr-code';\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 '@mintplayer/qr-code';\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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"}
|
|
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 '@mintplayer/qr-code';\nimport * as qrCodeService from '@mintplayer/qr-code';\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 '@mintplayer/qr-code';\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":";;;;;;AAKA,MAGa,eAAe,CAAA;AAE1B,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;;QAS9C,IAAO,CAAA,OAAA,GAAkB,IAAI,CAAC;QAe7B,IAAS,CAAA,SAAA,GAAe,WAAW,CAAC;QACpC,IAAU,CAAA,UAAA,GAAe,WAAW,CAAC;AAET,QAAA,IAAA,CAAA,oBAAoB,GAAgC,eAAe,CAAC,8BAA8B,CAAC;QAIjH,IAAM,CAAA,MAAA,GAAI,EAAE,CAAC;KA/BsB;aAE1C,IAAiB,CAAA,iBAAA,GAAG,8BAAH,CAAkC,EAAA;aACnD,IAA8B,CAAA,8BAAA,GAA+B,GAA/B,CAAmC,EAAA;aACjE,IAAyB,CAAA,yBAAA,GAAG,EAAH,CAAM,EAAA;IAM/C,IAAa,aAAa,CAAC,KAAoB,EAAA;AAC7C,QAAA,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACnB,SAAA;AAAM,aAAA,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAClB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAkBD,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO;AACR,SAAA;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAyC,CAAC;QACvF,IAAI,CAAC,MAAM,EAAE;;YAEX,OAAO;AACR,SAAA;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAExC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtE,SAAA;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,eAAe,CAAC,8BAA8B,CAAA;AAExG,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS;AAC1B,cAAE,SAAS;cACT,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;kBACtD,IAAI,CAAC,SAAS;kBACd,SAAS,CAAC;AACd,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU;AAC5B,cAAE,SAAS;cACT,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;kBACvD,IAAI,CAAC,UAAU;kBACf,SAAS,CAAC;AAEd,QAAA,MAAM,aAAa;AAChB,aAAA,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;YAClC,oBAAoB;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,KAAK,EAAE;gBACL,IAAI;gBACJ,KAAK;AACN,aAAA;AACF,SAAA,CAAC,CAAC;AAEL,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,yBAAyB,CAAC,CAAC;AAChH,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,yBAAyB,CAAC,CAAC;QAElH,IAAI,cAAc,IAAI,OAAO,EAAE;AAE7B,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AACnE,aAAA;AAED,YAAA,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;AAC5C,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,cAAc,CAAC;AACvC,aAAA;AAED,YAAA,IAAI,gBAAgB,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/C,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,gBAAgB,CAAC;AAC3C,aAAA;AAED,YAAA,IAAI,iBAAiB,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACjD,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,iBAAiB,CAAC;AAC7C,aAAA;AAED,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAErC,YAAA,WAAW,CAAC,MAAM,GAAG,MAAK;AACxB,gBAAA,OAAO,CAAC,SAAS,CACf,WAAW,EACX,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,EACvC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,CAC/E,CAAC;AACJ,aAAC,CAAA;AACF,SAAA;KAEF;IAEO,eAAe,CAAC,KAAkC,EAAE,YAAoB,EAAA;AAC9E,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE;AACvC,YAAA,OAAO,YAAY,CAAC;AACrB,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;8GA3HU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,CAAA,4BAAA,EAAA,sBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,sBAAA,EAAA,gBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,wBAAA,EAAA,kBAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,yBAAA,EAAA,mBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;uGASkB,KAAK,EAAA,CAAA;sBAArB,KAAK;uBAAC,QAAQ,CAAA;gBAIF,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAYG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAE+B,oBAAoB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,4BAA4B,CAAA;gBACJ,cAAc,EAAA,CAAA;sBAA5C,KAAK;uBAAC,sBAAsB,CAAA;gBACI,gBAAgB,EAAA,CAAA;sBAAhD,KAAK;uBAAC,wBAAwB,CAAA;gBACG,iBAAiB,EAAA,CAAA;sBAAlD,KAAK;uBAAC,yBAAyB,CAAA;gBACT,MAAM,EAAA,CAAA;sBAA5B,KAAK;uBAAC,cAAc,CAAA;;;ACrCvB,MAKa,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,iRCT5B,0ZAYA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,0ZAAA,EAAA,CAAA;8BAKV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEZR,MAWa,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBARrB,eAAe;YACf,eAAe,CAAA,EAAA,OAAA,EAAA,CAHP,YAAY,CAAA,EAAA,OAAA,EAAA,CAMpB,eAAe;YACf,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAGN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAVb,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUX,YAAY,EAAA,UAAA,EAAA,CAAA;kBAXxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,eAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;ACfD;;AAEG;;;;"}
|
|
@@ -11,5 +11,5 @@ export declare class QrCodeComponent {
|
|
|
11
11
|
centerImageSize?: string | number;
|
|
12
12
|
margin?: number;
|
|
13
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, false, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<QrCodeComponent, "qr-code", never, { "value": { "alias": "value"; "required": false; }; "size": { "alias": "size"; "required": false; }; "darkColor": { "alias": "darkColor"; "required": false; }; "lightColor": { "alias": "lightColor"; "required": false; }; "errorCorrectionLevel": { "alias": "errorCorrectionLevel"; "required": false; }; "centerImageSrc": { "alias": "centerImageSrc"; "required": false; }; "centerImageSize": { "alias": "centerImageSize"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; }, {}, never, never, false, never>;
|
|
15
15
|
}
|
|
@@ -24,5 +24,5 @@ export declare class QrCodeDirective implements OnChanges {
|
|
|
24
24
|
ngOnChanges(): Promise<void>;
|
|
25
25
|
private getIntOrDefault;
|
|
26
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, never, false, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<QrCodeDirective, "canvas[qrCode]", never, { "value": { "alias": "qrCode"; "required": false; }; "qrCodeVersion": { "alias": "qrCodeVersion"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "darkColor": { "alias": "darkColor"; "required": false; }; "lightColor": { "alias": "lightColor"; "required": false; }; "errorCorrectionLevel": { "alias": "qrCodeErrorCorrectionLevel"; "required": false; }; "centerImageSrc": { "alias": "qrCodeCenterImageSrc"; "required": false; }; "centerImageWidth": { "alias": "qrCodeCenterImageWidth"; "required": false; }; "centerImageHeight": { "alias": "qrCodeCenterImageHeight"; "required": false; }; "margin": { "alias": "qrCodeMargin"; "required": false; }; }, {}, never, never, false, never>;
|
|
28
28
|
}
|
package/package.json
CHANGED
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mintplayer/ng-qr-code",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "16.0.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
|
|
8
8
|
"directory": "libs/mintplayer-ng-qr-code"
|
|
9
9
|
},
|
|
10
10
|
"peerDependencies": {
|
|
11
|
-
"@angular/common": "^
|
|
12
|
-
"@angular/core": "^
|
|
11
|
+
"@angular/common": "^16.0.0",
|
|
12
|
+
"@angular/core": "^16.0.0",
|
|
13
13
|
"@mintplayer/qr-code": "^1.2.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"tslib": "^2.3.0"
|
|
17
17
|
},
|
|
18
|
-
"module": "
|
|
19
|
-
"es2020": "fesm2020/mintplayer-ng-qr-code.mjs",
|
|
20
|
-
"esm2020": "esm2020/mintplayer-ng-qr-code.mjs",
|
|
21
|
-
"fesm2020": "fesm2020/mintplayer-ng-qr-code.mjs",
|
|
22
|
-
"fesm2015": "fesm2015/mintplayer-ng-qr-code.mjs",
|
|
18
|
+
"module": "fesm2022/mintplayer-ng-qr-code.mjs",
|
|
23
19
|
"typings": "index.d.ts",
|
|
24
20
|
"exports": {
|
|
25
21
|
"./package.json": {
|
|
@@ -27,11 +23,9 @@
|
|
|
27
23
|
},
|
|
28
24
|
".": {
|
|
29
25
|
"types": "./index.d.ts",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"node": "./fesm2015/mintplayer-ng-qr-code.mjs",
|
|
34
|
-
"default": "./fesm2020/mintplayer-ng-qr-code.mjs"
|
|
26
|
+
"esm2022": "./esm2022/mintplayer-ng-qr-code.mjs",
|
|
27
|
+
"esm": "./esm2022/mintplayer-ng-qr-code.mjs",
|
|
28
|
+
"default": "./fesm2022/mintplayer-ng-qr-code.mjs"
|
|
35
29
|
}
|
|
36
30
|
},
|
|
37
31
|
"sideEffects": false
|
|
@@ -1,29 +0,0 @@
|
|
|
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: "15.2.7", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
-
QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", 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: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", 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: "15.2.7", 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" }]
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2NvbXBvbmVudHMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1xci1jb2RlL3NyYy9saWIvY29tcG9uZW50cy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7Z0dBQWYsZUFBZSxpUkNUNUIsMFpBWUE7MkZESGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxTQUFTOzhCQUtWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgfSBmcm9tICdAbWludHBsYXllci9xci1jb2RlJztcbmltcG9ydCB7IFJnYmFDb2xvciB9IGZyb20gJy4uLy4uL3R5cGVzL3JnYmEtY29sb3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxci1jb2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3FyLWNvZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xci1jb2RlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXJDb2RlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmFsdWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpemU/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRhcmtDb2xvcj86IFJnYmFDb2xvcjtcbiAgQElucHV0KCkgbGlnaHRDb2xvcj86IFJnYmFDb2xvcjtcbiAgQElucHV0KCkgZXJyb3JDb3JyZWN0aW9uTGV2ZWw/OiBRUkNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbDtcbiAgQElucHV0KCkgY2VudGVySW1hZ2VTcmM/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNlbnRlckltYWdlU2l6ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgbWFyZ2luPzogbnVtYmVyO1xufVxuIiwiPGNhbnZhcyAqbmdJZj1cInZhbHVlXCJcbiAgICBbcXJDb2RlXT1cInZhbHVlXCJcbiAgICBbcXJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWxdPVwiZXJyb3JDb3JyZWN0aW9uTGV2ZWxcIlxuICAgIFtxckNvZGVDZW50ZXJJbWFnZVNyY109XCJjZW50ZXJJbWFnZVNyY1wiXG4gICAgW3FyQ29kZUNlbnRlckltYWdlV2lkdGhdPVwiY2VudGVySW1hZ2VTaXplXCJcbiAgICBbcXJDb2RlQ2VudGVySW1hZ2VIZWlnaHRdPVwiY2VudGVySW1hZ2VTaXplXCJcbiAgICBbcXJDb2RlTWFyZ2luXT1cIm1hcmdpblwiXG4gICAgW3dpZHRoXT1cInNpemVcIlxuICAgIFtoZWlnaHRdPVwic2l6ZVwiXG4gICAgW2RhcmtDb2xvcl09XCJkYXJrQ29sb3JcIlxuICAgIFtsaWdodENvbG9yXT1cImxpZ2h0Q29sb3JcIj5cbjwvY2FudmFzPlxuIl19
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import * as qrCodeService from '@mintplayer/qr-code';
|
|
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: "15.2.7", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
-
QrCodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", 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: "15.2.7", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL2RpcmVjdGl2ZXMvcXItY29kZS9xci1jb2RlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBd0IsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxLQUFLLGFBQWEsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFRdEQsaUJBQWlCO1FBQ1QsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFlN0IsY0FBUyxHQUFlLFdBQVcsQ0FBQztRQUNwQyxlQUFVLEdBQWUsV0FBVyxDQUFDO1FBRVQseUJBQW9CLEdBQWdDLGVBQWUsQ0FBQyw4QkFBOEIsQ0FBQztRQUlqSCxXQUFNLEdBQUksRUFBRSxDQUFDO0lBL0JxQixDQUFDO0lBVTFELElBQWEsYUFBYSxDQUFDLEtBQW9CO1FBQzdDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDbEI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQWtCRCxLQUFLLENBQUMsV0FBVztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTztTQUNSO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxD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LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsIH0gZnJvbSAnQG1pbnRwbGF5ZXIvcXItY29kZSc7XG5pbXBvcnQgKiBhcyBxckNvZGVTZXJ2aWNlIGZyb20gJ0BtaW50cGxheWVyL3FyLWNvZGUnO1xuaW1wb3J0IHsgUmdiYUNvbG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMvcmdiYS1jb2xvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2NhbnZhc1txckNvZGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBRckNvZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBzdGF0aWMgcmVhZG9ubHkgVkFMSURfQ09MT1JfUkVHRVggPSAvXiMoPzpbMC05YS1mQS1GXXszLDR9KXsxLDJ9JC87XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0VSUk9SX0NPUlJFQ1RJT05fTEVWRUw6IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsID0gJ00nO1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9DRU5URVJfSU1BR0VfU0laRSA9IDQwO1xuXG4gIEBJbnB1dCgncXJDb2RlJykgdmFsdWUhOiBzdHJpbmc7XG5cbiAgLy8jcmVnaW9uIFZlcnNpb25cbiAgcHJpdmF0ZSB2ZXJzaW9uOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2V0IHFyQ29kZVZlcnNpb24odmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgJiYgKHZhbHVlID4gNDApKSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSA0MDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmICh2YWx1ZSA8IDEpKSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSBudWxsO1xuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBcbiAgQElucHV0KCkgd2lkdGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGhlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgZGFya0NvbG9yPzogUmdiYUNvbG9yID0gJyMwMDAwMDBGRic7XG4gIEBJbnB1dCgpIGxpZ2h0Q29sb3I/OiBSZ2JhQ29sb3IgPSAnI0ZGRkZGRkZGJztcbiAgXG4gIEBJbnB1dCgncXJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwnKSBlcnJvckNvcnJlY3Rpb25MZXZlbD86IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsID0gUXJDb2RlRGlyZWN0aXZlLkRFRkFVTFRfRVJST1JfQ09SUkVDVElPTl9MRVZFTDtcbiAgQElucHV0KCdxckNvZGVDZW50ZXJJbWFnZVNyYycpIGNlbnRlckltYWdlU3JjPzogc3RyaW5nO1xuICBASW5wdXQoJ3FyQ29kZUNlbnRlckltYWdlV2lkdGgnKSBjZW50ZXJJbWFnZVdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICBASW5wdXQoJ3FyQ29kZUNlbnRlckltYWdlSGVpZ2h0JykgY2VudGVySW1hZ2VIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgncXJDb2RlTWFyZ2luJykgbWFyZ2luPyA9IDE2O1xuXG4gIHByaXZhdGUgY2VudGVySW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50O1xuXG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2FudmFzID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFjYW52YXMpIHtcbiAgICAgIC8vIG5hdGl2ZSBlbGVtZW50IG5vdCBhdmFpbGFibGUgb24gc2VydmVyIHNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIGNvbnRleHQuY2FudmFzLndpZHRoLCBjb250ZXh0LmNhbnZhcy5oZWlnaHQpO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yQ29ycmVjdGlvbkxldmVsID0gdGhpcy5lcnJvckNvcnJlY3Rpb25MZXZlbCA/PyBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9FUlJPUl9DT1JSRUNUSU9OX0xFVkVMXG5cbiAgICBjb25zdCBkYXJrID0gIXRoaXMuZGFya0NvbG9yIFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogUXJDb2RlRGlyZWN0aXZlLlZBTElEX0NPTE9SX1JFR0VYLnRlc3QodGhpcy5kYXJrQ29sb3IpXG4gICAgICA/IHRoaXMuZGFya0NvbG9yXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBsaWdodCA9ICF0aGlzLmxpZ2h0Q29sb3JcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IFFyQ29kZURpcmVjdGl2ZS5WQUxJRF9DT0xPUl9SRUdFWC50ZXN0KHRoaXMubGlnaHRDb2xvcilcbiAgICAgID8gdGhpcy5saWdodENvbG9yXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGF3YWl0IHFyQ29kZVNlcnZpY2VcbiAgICAgIC50b0NhbnZhcyhjYW52YXMsIHRoaXMudmFsdWUsIHtcbiAgICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgZXJyb3JDb3JyZWN0aW9uTGV2ZWwsXG4gICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICBtYXJnaW46IHRoaXMubWFyZ2luLFxuICAgICAgICBjb2xvcjoge1xuICAgICAgICAgIGRhcmssXG4gICAgICAgICAgbGlnaHQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGNlbnRlckltYWdlU3JjID0gdGhpcy5jZW50ZXJJbWFnZVNyYztcbiAgICBjb25zdCBjZW50ZXJJbWFnZVdpZHRoID0gdGhpcy5nZXRJbnRPckRlZmF1bHQodGhpcy5jZW50ZXJJbWFnZVdpZHRoLCBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9DRU5URVJfSU1BR0VfU0laRSk7XG4gICAgY29uc3QgY2VudGVySW1hZ2VIZWlnaHQgPSB0aGlzLmdldEludE9yRGVmYXVsdCh0aGlzLmNlbnRlckltYWdlSGVpZ2h0LCBRckNvZGVEaXJlY3RpdmUuREVGQVVMVF9DRU5URVJfSU1BR0VfU0laRSk7XG5cbiAgICBpZiAoY2VudGVySW1hZ2VTcmMgJiYgY29udGV4dCkge1xuXG4gICAgICBpZiAoIXRoaXMuY2VudGVySW1hZ2UpIHtcbiAgICAgICAgdGhpcy5jZW50ZXJJbWFnZSA9IG5ldyBJbWFnZShjZW50ZXJJbWFnZVdpZHRoLCBjZW50ZXJJbWFnZUhlaWdodCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZW50ZXJJbWFnZVNyYyAhPT0gdGhpcy5jZW50ZXJJbWFnZT8uc3JjKSB7XG4gICAgICAgIHRoaXMuY2VudGVySW1hZ2Uuc3JjID0gY2VudGVySW1hZ2VTcmM7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZW50ZXJJbWFnZVdpZHRoICE9PSB0aGlzLmNlbnRlckltYWdlLndpZHRoKSB7XG4gICAgICAgIHRoaXMuY2VudGVySW1hZ2Uud2lkdGggPSBjZW50ZXJJbWFnZVdpZHRoO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2VudGVySW1hZ2VIZWlnaHQgIT09IHRoaXMuY2VudGVySW1hZ2UuaGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuY2VudGVySW1hZ2UuaGVpZ2h0ID0gY2VudGVySW1hZ2VIZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNlbnRlckltYWdlID0gdGhpcy5jZW50ZXJJbWFnZTtcblxuICAgICAgY2VudGVySW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShcbiAgICAgICAgICBjZW50ZXJJbWFnZSxcbiAgICAgICAgICBjYW52YXMud2lkdGggLyAyIC0gY2VudGVySW1hZ2VXaWR0aCAvIDIsXG4gICAgICAgICAgY2FudmFzLmhlaWdodCAvIDIgLSBjZW50ZXJJbWFnZUhlaWdodCAvIDIsIGNlbnRlckltYWdlV2lkdGgsIGNlbnRlckltYWdlSGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRPckRlZmF1bHQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
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: "15.2.7", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
-
QrCodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
10
|
-
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
11
|
-
QrCodeDirective] });
|
|
12
|
-
QrCodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, imports: [CommonModule] });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctcXItY29kZS9zcmMvbGliL3FyLWNvZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBYXpFLE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksaUJBUnJCLGVBQWU7UUFDZixlQUFlLGFBSFAsWUFBWSxhQU1wQixlQUFlO1FBQ2YsZUFBZTswR0FHTixZQUFZLFlBVmIsWUFBWTsyRkFVWCxZQUFZO2tCQVh4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFFyQ29kZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9xci1jb2RlL3FyLWNvZGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFFyQ29kZUNvbXBvbmVudCxcbiAgICBRckNvZGVEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFFyQ29kZUNvbXBvbmVudCxcbiAgICBRckNvZGVEaXJlY3RpdmVcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUXJDb2RlTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,193 +0,0 @@
|
|
|
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 '@mintplayer/qr-code';
|
|
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: "15.2.7", ngImport: i0, type: QrCodeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
105
|
-
QrCodeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", 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: "15.2.7", 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: "15.2.7", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", 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: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", 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: "15.2.7", 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" }]
|
|
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: "15.2.7", ngImport: i0, type: QrCodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
169
|
-
QrCodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, declarations: [QrCodeComponent,
|
|
170
|
-
QrCodeDirective], imports: [CommonModule], exports: [QrCodeComponent,
|
|
171
|
-
QrCodeDirective] });
|
|
172
|
-
QrCodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: QrCodeModule, imports: [CommonModule] });
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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
|
|
@@ -1 +0,0 @@
|
|
|
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 '@mintplayer/qr-code';\nimport * as qrCodeService from '@mintplayer/qr-code';\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 '@mintplayer/qr-code';\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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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|