@mintplayer/ng-qr-code 13.0.0

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