@mintplayer/ng-qr-code 21.1.0 → 21.2.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.
@@ -1,33 +1,45 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ViewContainerRef, Input, Directive, Component } from '@angular/core';
2
+ import { inject, ViewContainerRef, input, computed, effect, Directive, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import * as qrCodeService from '@mintplayer/qr-code';
4
4
 
5
5
  class QrCodeDirective {
6
- constructor() {
7
- this.viewContainerRef = inject(ViewContainerRef);
8
- //#region Version
9
- this.version = null;
10
- this.darkColor = '#000000FF';
11
- this.lightColor = '#FFFFFFFF';
12
- this.errorCorrectionLevel = QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
13
- this.margin = 16;
14
- }
15
6
  static { this.VALID_COLOR_REGEX = /^#(?:[0-9a-fA-F]{3,4}){1,2}$/; }
16
7
  static { this.DEFAULT_ERROR_CORRECTION_LEVEL = 'M'; }
17
8
  static { this.DEFAULT_CENTER_IMAGE_SIZE = 40; }
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
- }
9
+ constructor() {
10
+ this.viewContainerRef = inject(ViewContainerRef);
11
+ this.value = input.required({ ...(ngDevMode ? { debugName: "value" } : {}), alias: 'qrCode' });
12
+ //#region Version
13
+ this.qrCodeVersion = input(null, ...(ngDevMode ? [{ debugName: "qrCodeVersion" }] : []));
14
+ this.version = computed(() => {
15
+ const value = this.qrCodeVersion();
16
+ if (value && (value > 40)) {
17
+ return 40;
18
+ }
19
+ else if (value && (value < 1)) {
20
+ return 1;
21
+ }
22
+ else {
23
+ return null;
24
+ }
25
+ }, ...(ngDevMode ? [{ debugName: "version" }] : []));
26
+ //#endregion
27
+ this.width = input(undefined, ...(ngDevMode ? [{ debugName: "width" }] : []));
28
+ this.height = input(undefined, ...(ngDevMode ? [{ debugName: "height" }] : []));
29
+ this.darkColor = input('#000000FF', ...(ngDevMode ? [{ debugName: "darkColor" }] : []));
30
+ this.lightColor = input('#FFFFFFFF', ...(ngDevMode ? [{ debugName: "lightColor" }] : []));
31
+ this.errorCorrectionLevel = input(QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL, { ...(ngDevMode ? { debugName: "errorCorrectionLevel" } : {}), alias: 'qrCodeErrorCorrectionLevel' });
32
+ this.centerImageSrc = input(undefined, { ...(ngDevMode ? { debugName: "centerImageSrc" } : {}), alias: 'qrCodeCenterImageSrc' });
33
+ this.centerImageWidth = input(undefined, { ...(ngDevMode ? { debugName: "centerImageWidth" } : {}), alias: 'qrCodeCenterImageWidth' });
34
+ this.centerImageHeight = input(undefined, { ...(ngDevMode ? { debugName: "centerImageHeight" } : {}), alias: 'qrCodeCenterImageHeight' });
35
+ this.margin = input(16, { ...(ngDevMode ? { debugName: "margin" } : {}), alias: 'qrCodeMargin' });
36
+ effect(() => {
37
+ this.renderQrCode();
38
+ });
28
39
  }
29
- async ngOnChanges() {
30
- if (!this.value) {
40
+ async renderQrCode() {
41
+ const value = this.value();
42
+ if (!value) {
31
43
  return;
32
44
  }
33
45
  const canvas = this.viewContainerRef.element.nativeElement;
@@ -39,31 +51,33 @@ class QrCodeDirective {
39
51
  const context = canvas.getContext('2d');
40
52
  if (context) {
41
53
  context.clearRect(0, 0, context.canvas.width, context.canvas.height);
42
- const errorCorrectionLevel = this.errorCorrectionLevel ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
43
- const dark = !this.darkColor
54
+ const errorCorrectionLevel = this.errorCorrectionLevel() ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;
55
+ const darkColor = this.darkColor();
56
+ const lightColor = this.lightColor();
57
+ const dark = !darkColor
44
58
  ? undefined
45
- : QrCodeDirective.VALID_COLOR_REGEX.test(this.darkColor)
46
- ? this.darkColor
59
+ : QrCodeDirective.VALID_COLOR_REGEX.test(darkColor)
60
+ ? darkColor
47
61
  : undefined;
48
- const light = !this.lightColor
62
+ const light = !lightColor
49
63
  ? undefined
50
- : QrCodeDirective.VALID_COLOR_REGEX.test(this.lightColor)
51
- ? this.lightColor
64
+ : QrCodeDirective.VALID_COLOR_REGEX.test(lightColor)
65
+ ? lightColor
52
66
  : undefined;
53
67
  await qrCodeService
54
- .toCanvas(canvas, this.value, {
55
- version: this.version ?? undefined,
68
+ .toCanvas(canvas, value, {
69
+ version: this.version() ?? undefined,
56
70
  errorCorrectionLevel,
57
- width: this.width,
58
- margin: this.margin,
71
+ width: this.width(),
72
+ margin: this.margin(),
59
73
  color: {
60
74
  dark,
61
75
  light,
62
76
  },
63
77
  });
64
- const centerImageSrc = this.centerImageSrc;
65
- const centerImageWidth = this.getIntOrDefault(this.centerImageWidth, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
66
- const centerImageHeight = this.getIntOrDefault(this.centerImageHeight, QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
78
+ const centerImageSrc = this.centerImageSrc();
79
+ const centerImageWidth = this.getIntOrDefault(this.centerImageWidth(), QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
80
+ const centerImageHeight = this.getIntOrDefault(this.centerImageHeight(), QrCodeDirective.DEFAULT_CENTER_IMAGE_SIZE);
67
81
  if (centerImageSrc && context) {
68
82
  if (!this.centerImage) {
69
83
  this.centerImage = new Image(centerImageWidth, centerImageHeight);
@@ -96,69 +110,34 @@ class QrCodeDirective {
96
110
  return value;
97
111
  }
98
112
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: QrCodeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
100
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: QrCodeDirective, isStandalone: true, 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 }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QrCodeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
114
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: QrCodeDirective, isStandalone: true, selector: "canvas[qrCode]", inputs: { value: { classPropertyName: "value", publicName: "qrCode", isSignal: true, isRequired: true, transformFunction: null }, qrCodeVersion: { classPropertyName: "qrCodeVersion", publicName: "qrCodeVersion", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, darkColor: { classPropertyName: "darkColor", publicName: "darkColor", isSignal: true, isRequired: false, transformFunction: null }, lightColor: { classPropertyName: "lightColor", publicName: "lightColor", isSignal: true, isRequired: false, transformFunction: null }, errorCorrectionLevel: { classPropertyName: "errorCorrectionLevel", publicName: "qrCodeErrorCorrectionLevel", isSignal: true, isRequired: false, transformFunction: null }, centerImageSrc: { classPropertyName: "centerImageSrc", publicName: "qrCodeCenterImageSrc", isSignal: true, isRequired: false, transformFunction: null }, centerImageWidth: { classPropertyName: "centerImageWidth", publicName: "qrCodeCenterImageWidth", isSignal: true, isRequired: false, transformFunction: null }, centerImageHeight: { classPropertyName: "centerImageHeight", publicName: "qrCodeCenterImageHeight", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "qrCodeMargin", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
101
115
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: QrCodeDirective, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QrCodeDirective, decorators: [{
103
117
  type: Directive,
104
118
  args: [{
105
119
  selector: 'canvas[qrCode]',
106
- standalone: true
107
120
  }]
108
- }], propDecorators: { value: [{
109
- type: Input,
110
- args: ['qrCode']
111
- }], qrCodeVersion: [{
112
- type: Input
113
- }], width: [{
114
- type: Input
115
- }], height: [{
116
- type: Input
117
- }], darkColor: [{
118
- type: Input
119
- }], lightColor: [{
120
- type: Input
121
- }], errorCorrectionLevel: [{
122
- type: Input,
123
- args: ['qrCodeErrorCorrectionLevel']
124
- }], centerImageSrc: [{
125
- type: Input,
126
- args: ['qrCodeCenterImageSrc']
127
- }], centerImageWidth: [{
128
- type: Input,
129
- args: ['qrCodeCenterImageWidth']
130
- }], centerImageHeight: [{
131
- type: Input,
132
- args: ['qrCodeCenterImageHeight']
133
- }], margin: [{
134
- type: Input,
135
- args: ['qrCodeMargin']
136
- }] } });
121
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCode", required: true }] }], qrCodeVersion: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCodeVersion", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], darkColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "darkColor", required: false }] }], lightColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "lightColor", required: false }] }], errorCorrectionLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCodeErrorCorrectionLevel", required: false }] }], centerImageSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCodeCenterImageSrc", required: false }] }], centerImageWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCodeCenterImageWidth", required: false }] }], centerImageHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCodeCenterImageHeight", required: false }] }], margin: [{ type: i0.Input, args: [{ isSignal: true, alias: "qrCodeMargin", required: false }] }] } });
137
122
 
138
123
  class QrCodeComponent {
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: QrCodeComponent, isStandalone: true, selector: "qr-code", inputs: { value: "value", size: "size", darkColor: "darkColor", lightColor: "lightColor", errorCorrectionLevel: "errorCorrectionLevel", centerImageSrc: "centerImageSrc", centerImageSize: "centerImageSize", margin: "margin" }, ngImport: i0, template: "@if (value) {\n <canvas\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: QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }] }); }
124
+ constructor() {
125
+ this.value = input(undefined, ...(ngDevMode ? [{ debugName: "value" }] : []));
126
+ this.size = input(undefined, ...(ngDevMode ? [{ debugName: "size" }] : []));
127
+ this.darkColor = input(undefined, ...(ngDevMode ? [{ debugName: "darkColor" }] : []));
128
+ this.lightColor = input(undefined, ...(ngDevMode ? [{ debugName: "lightColor" }] : []));
129
+ this.errorCorrectionLevel = input(undefined, ...(ngDevMode ? [{ debugName: "errorCorrectionLevel" }] : []));
130
+ this.centerImageSrc = input(undefined, ...(ngDevMode ? [{ debugName: "centerImageSrc" }] : []));
131
+ this.centerImageSize = input(undefined, ...(ngDevMode ? [{ debugName: "centerImageSize" }] : []));
132
+ this.margin = input(undefined, ...(ngDevMode ? [{ debugName: "margin" }] : []));
133
+ }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QrCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: QrCodeComponent, isStandalone: true, selector: "qr-code", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, darkColor: { classPropertyName: "darkColor", publicName: "darkColor", isSignal: true, isRequired: false, transformFunction: null }, lightColor: { classPropertyName: "lightColor", publicName: "lightColor", isSignal: true, isRequired: false, transformFunction: null }, errorCorrectionLevel: { classPropertyName: "errorCorrectionLevel", publicName: "errorCorrectionLevel", isSignal: true, isRequired: false, transformFunction: null }, centerImageSrc: { classPropertyName: "centerImageSrc", publicName: "centerImageSrc", isSignal: true, isRequired: false, transformFunction: null }, centerImageSize: { classPropertyName: "centerImageSize", publicName: "centerImageSize", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "margin", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (value()) {\n <canvas\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: QrCodeDirective, selector: "canvas[qrCode]", inputs: ["qrCode", "qrCodeVersion", "width", "height", "darkColor", "lightColor", "qrCodeErrorCorrectionLevel", "qrCodeCenterImageSrc", "qrCodeCenterImageWidth", "qrCodeCenterImageHeight", "qrCodeMargin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
136
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: QrCodeComponent, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QrCodeComponent, decorators: [{
143
138
  type: Component,
144
- args: [{ selector: 'qr-code', standalone: true, imports: [QrCodeDirective], template: "@if (value) {\n <canvas\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}" }]
145
- }], propDecorators: { value: [{
146
- type: Input
147
- }], size: [{
148
- type: Input
149
- }], darkColor: [{
150
- type: Input
151
- }], lightColor: [{
152
- type: Input
153
- }], errorCorrectionLevel: [{
154
- type: Input
155
- }], centerImageSrc: [{
156
- type: Input
157
- }], centerImageSize: [{
158
- type: Input
159
- }], margin: [{
160
- type: Input
161
- }] } });
139
+ args: [{ selector: 'qr-code', imports: [QrCodeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (value()) {\n <canvas\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}" }]
140
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], darkColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "darkColor", required: false }] }], lightColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "lightColor", required: false }] }], errorCorrectionLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorCorrectionLevel", required: false }] }], centerImageSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerImageSrc", required: false }] }], centerImageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerImageSize", required: false }] }], margin: [{ type: i0.Input, args: [{ isSignal: true, alias: "margin", required: false }] }] } });
162
141
 
163
142
  /**
164
143
  * Generated bundle index. Do not edit.
@@ -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/mintplayer-ng-qr-code.ts"],"sourcesContent":["import { Directive, inject, Input, 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 standalone: true\n})\nexport class QrCodeDirective implements OnChanges {\n private viewContainerRef = inject(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 async ngOnChanges() {\n if (!this.value) {\n return;\n }\n\n const canvas = this.viewContainerRef.element.nativeElement as HTMLCanvasElement | null;\n if (!canvas || (typeof window === 'undefined')) {\n // native element not available on server side rendering\n return;\n }\n\n if (typeof window !== 'undefined') {\n const context = canvas.getContext('2d');\n if (context) {\n context.clearRect(0, 0, context.canvas.width, context.canvas.height);\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\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';\nimport { QrCodeDirective } from '../../directives/qr-code/qr-code.directive';\n\n@Component({\n selector: 'qr-code',\n templateUrl: './qr-code.component.html',\n styleUrls: ['./qr-code.component.scss'],\n standalone: true,\n imports: [QrCodeDirective]\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","@if (value) {\n <canvas\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}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"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/mintplayer-ng-qr-code.ts"],"sourcesContent":["import { computed, Directive, effect, inject, input, 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 {\n private viewContainerRef = inject(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 readonly value = input.required<string>({ alias: 'qrCode' });\n\n //#region Version\n readonly qrCodeVersion = input<number | null>(null);\n private version = computed(() => {\n const value = this.qrCodeVersion();\n if (value && (value > 40)) {\n return 40;\n } else if (value && (value < 1)) {\n return 1;\n } else {\n return null;\n }\n });\n //#endregion\n\n\n readonly width = input<number | undefined>(undefined);\n readonly height = input<number | undefined>(undefined);\n readonly darkColor = input<RgbaColor | undefined>('#000000FF');\n readonly lightColor = input<RgbaColor | undefined>('#FFFFFFFF');\n\n readonly errorCorrectionLevel = input<QRCodeErrorCorrectionLevel | undefined>(QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL, { alias: 'qrCodeErrorCorrectionLevel' });\n readonly centerImageSrc = input<string | undefined>(undefined, { alias: 'qrCodeCenterImageSrc' });\n readonly centerImageWidth = input<number | string | undefined>(undefined, { alias: 'qrCodeCenterImageWidth' });\n readonly centerImageHeight = input<number | string | undefined>(undefined, { alias: 'qrCodeCenterImageHeight' });\n readonly margin = input<number | undefined>(16, { alias: 'qrCodeMargin' });\n\n private centerImage?: HTMLImageElement;\n\n constructor() {\n effect(() => {\n this.renderQrCode();\n });\n }\n\n private async renderQrCode() {\n const value = this.value();\n if (!value) {\n return;\n }\n\n const canvas = this.viewContainerRef.element.nativeElement as HTMLCanvasElement | null;\n if (!canvas || (typeof window === 'undefined')) {\n // native element not available on server side rendering\n return;\n }\n\n if (typeof window !== 'undefined') {\n const context = canvas.getContext('2d');\n if (context) {\n context.clearRect(0, 0, context.canvas.width, context.canvas.height);\n\n const errorCorrectionLevel = this.errorCorrectionLevel() ?? QrCodeDirective.DEFAULT_ERROR_CORRECTION_LEVEL;\n const darkColor = this.darkColor();\n const lightColor = this.lightColor();\n\n const dark = !darkColor\n ? undefined\n : QrCodeDirective.VALID_COLOR_REGEX.test(darkColor)\n ? darkColor\n : undefined;\n const light = !lightColor\n ? undefined\n : QrCodeDirective.VALID_COLOR_REGEX.test(lightColor)\n ? lightColor\n : undefined;\n\n await qrCodeService\n .toCanvas(canvas, 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\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, ChangeDetectionStrategy} from '@angular/core';\nimport { QRCodeErrorCorrectionLevel } from '@mintplayer/qr-code';\nimport { RgbaColor } from '../../types/rgba-color';\nimport { QrCodeDirective } from '../../directives/qr-code/qr-code.directive';\n\n@Component({\n selector: 'qr-code',\n templateUrl: './qr-code.component.html',\n styleUrls: ['./qr-code.component.scss'],\n imports: [QrCodeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QrCodeComponent {\n readonly value = input<string | undefined>(undefined);\n readonly size = input<number | undefined>(undefined);\n readonly darkColor = input<RgbaColor | undefined>(undefined);\n readonly lightColor = input<RgbaColor | undefined>(undefined);\n readonly errorCorrectionLevel = input<QRCodeErrorCorrectionLevel | undefined>(undefined);\n readonly centerImageSrc = input<string | undefined>(undefined);\n readonly centerImageSize = input<string | number | undefined>(undefined);\n readonly margin = input<number | undefined>(undefined);\n}\n","@if (value()) {\n <canvas\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}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mintplayer/ng-qr-code",
3
3
  "private": false,
4
- "version": "21.1.0",
4
+ "version": "21.2.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
@@ -1,44 +1,42 @@
1
+ import * as _angular_core from '@angular/core';
1
2
  import { QRCodeErrorCorrectionLevel } from '@mintplayer/qr-code';
2
- import * as i0 from '@angular/core';
3
- import { OnChanges } from '@angular/core';
4
-
5
- type RgbaColor = `#${string}`;
6
3
 
7
4
  declare class QrCodeComponent {
8
- value?: string;
9
- size?: number;
10
- darkColor?: RgbaColor;
11
- lightColor?: RgbaColor;
12
- errorCorrectionLevel?: QRCodeErrorCorrectionLevel;
13
- centerImageSrc?: string;
14
- centerImageSize?: string | number;
15
- margin?: number;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeComponent, never>;
17
- 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, true, never>;
5
+ readonly value: _angular_core.InputSignal<string | undefined>;
6
+ readonly size: _angular_core.InputSignal<number | undefined>;
7
+ readonly darkColor: _angular_core.InputSignal<`#${string}` | undefined>;
8
+ readonly lightColor: _angular_core.InputSignal<`#${string}` | undefined>;
9
+ readonly errorCorrectionLevel: _angular_core.InputSignal<QRCodeErrorCorrectionLevel | undefined>;
10
+ readonly centerImageSrc: _angular_core.InputSignal<string | undefined>;
11
+ readonly centerImageSize: _angular_core.InputSignal<string | number | undefined>;
12
+ readonly margin: _angular_core.InputSignal<number | undefined>;
13
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<QrCodeComponent, never>;
14
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<QrCodeComponent, "qr-code", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "darkColor": { "alias": "darkColor"; "required": false; "isSignal": true; }; "lightColor": { "alias": "lightColor"; "required": false; "isSignal": true; }; "errorCorrectionLevel": { "alias": "errorCorrectionLevel"; "required": false; "isSignal": true; }; "centerImageSrc": { "alias": "centerImageSrc"; "required": false; "isSignal": true; }; "centerImageSize": { "alias": "centerImageSize"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
15
  }
19
16
 
20
- declare class QrCodeDirective implements OnChanges {
17
+ declare class QrCodeDirective {
21
18
  private viewContainerRef;
22
19
  static readonly VALID_COLOR_REGEX: RegExp;
23
20
  static readonly DEFAULT_ERROR_CORRECTION_LEVEL: QRCodeErrorCorrectionLevel;
24
21
  static readonly DEFAULT_CENTER_IMAGE_SIZE = 40;
25
- value: string;
22
+ readonly value: _angular_core.InputSignal<string>;
23
+ readonly qrCodeVersion: _angular_core.InputSignal<number | null>;
26
24
  private version;
27
- set qrCodeVersion(value: number | null);
28
- width?: number;
29
- height?: number;
30
- darkColor?: RgbaColor;
31
- lightColor?: RgbaColor;
32
- errorCorrectionLevel?: QRCodeErrorCorrectionLevel;
33
- centerImageSrc?: string;
34
- centerImageWidth?: number | string;
35
- centerImageHeight?: number | string;
36
- margin?: number | undefined;
25
+ readonly width: _angular_core.InputSignal<number | undefined>;
26
+ readonly height: _angular_core.InputSignal<number | undefined>;
27
+ readonly darkColor: _angular_core.InputSignal<`#${string}` | undefined>;
28
+ readonly lightColor: _angular_core.InputSignal<`#${string}` | undefined>;
29
+ readonly errorCorrectionLevel: _angular_core.InputSignal<QRCodeErrorCorrectionLevel | undefined>;
30
+ readonly centerImageSrc: _angular_core.InputSignal<string | undefined>;
31
+ readonly centerImageWidth: _angular_core.InputSignal<string | number | undefined>;
32
+ readonly centerImageHeight: _angular_core.InputSignal<string | number | undefined>;
33
+ readonly margin: _angular_core.InputSignal<number | undefined>;
37
34
  private centerImage?;
38
- ngOnChanges(): Promise<void>;
35
+ constructor();
36
+ private renderQrCode;
39
37
  private getIntOrDefault;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeDirective, never>;
41
- 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, true, never>;
38
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<QrCodeDirective, never>;
39
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QrCodeDirective, "canvas[qrCode]", never, { "value": { "alias": "qrCode"; "required": true; "isSignal": true; }; "qrCodeVersion": { "alias": "qrCodeVersion"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "darkColor": { "alias": "darkColor"; "required": false; "isSignal": true; }; "lightColor": { "alias": "lightColor"; "required": false; "isSignal": true; }; "errorCorrectionLevel": { "alias": "qrCodeErrorCorrectionLevel"; "required": false; "isSignal": true; }; "centerImageSrc": { "alias": "qrCodeCenterImageSrc"; "required": false; "isSignal": true; }; "centerImageWidth": { "alias": "qrCodeCenterImageWidth"; "required": false; "isSignal": true; }; "centerImageHeight": { "alias": "qrCodeCenterImageHeight"; "required": false; "isSignal": true; }; "margin": { "alias": "qrCodeMargin"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
40
  }
43
41
 
44
42
  export { QrCodeComponent, QrCodeDirective };