{"version":3,"file":"asoftwareworld-form-builder-pro-form-control-qrcode.mjs","sources":["../../src/components/form-control/qrcode/qrcode-dialog.ts","../../src/components/form-control/qrcode/qrcode-dialog.html","../../src/components/form-control/qrcode/qrcode.ts","../../src/components/form-control/qrcode/qrcode.html","../../src/components/form-control/qrcode/qrcode-control.ts","../../src/components/form-control/qrcode/qrcode.module.ts","../../src/components/form-control/qrcode/public_api.ts","../../src/components/form-control/qrcode/asoftwareworld-form-builder-pro-form-control-qrcode.ts"],"sourcesContent":["/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Constants, Icons } from '@asoftwareworld/form-builder-pro/common';\nimport { QrCodeControl } from './qrcode-control';\n\n@Component({\n    selector: 'asw-qrcode-dialog',\n    templateUrl: './qrcode-dialog.html',\n    styleUrls: ['./qrcode-dialog.scss']\n})\nexport class AswQrCodeDialog implements OnInit {\n    constants: any = Constants;\n    icons = Icons;\n    value = 0.4;\n    backgroundColor = '#ffffff';\n    cornerOuterShapeColor = '#000000';\n    cornerInnerShapeColor = '#000000';\n    middleShapeColor = '#000000';\n    errorCorrectionLevels = ['L', 'M', 'Q', 'H'];\n    modes = ['Numeric', 'Alphanumeric', 'Byte', 'Kanji'];\n    drawTpes = [\n        { label: 'SVG', value: 'svg' },\n        { label: 'Canvas', value: 'canvas' }\n    ];\n    middleShapeTypes = [\n        { label: 'Circle', value: 'circle' },\n        { label: 'Rounded', value: 'rounded' },\n        { label: 'Smooth', value: 'smooth' },\n        { label: 'Smooth Rounded', value: 'smooth-rounded' },\n        { label: 'Square', value: 'square' },\n        { label: 'Thin Rounded', value: 'thin-rounded' }\n    ];\n    cornerInnerShapeTypes = [\n        { label: 'None', value: '' },\n        { label: 'Circle', value: 'circle' },\n        { label: 'Square', value: 'square' }\n    ];\n    cornerOuterShapeTypes = [\n        { label: 'None', value: '' },\n        { label: 'Circle', value: 'circle' },\n        { label: 'Square', value: 'square' },\n        { label: 'Rounded', value: 'rounded' }\n    ];\n    aswFormatForm!: FormGroup;\n    aswDensityForm!: FormGroup;\n    aswQrLogoStyleForm!: FormGroup;\n    aswMiddleShapeForm!: FormGroup;\n    aswCornerInnerShapeForm!: FormGroup;\n    aswCornerOuterShapeForm!: FormGroup;\n\n    constructor(\n        private formBuilder: FormBuilder,\n        public dialogRef: MatDialogRef<AswQrCodeDialog>,\n        @Inject(MAT_DIALOG_DATA) public control: any\n    ) {}\n\n    ngOnInit(): void {\n        this.validateFormBuilder();\n        if (this.control) {\n            this.setData();\n        }\n        this.aswFormatForm.valueChanges.subscribe((val) => {\n            if (this.aswFormatForm.invalid) {\n                return;\n            }\n            this.control.width = val.width;\n            this.control.height = val.height;\n            this.control.outerMargin = val.outerMargin;\n            this.control.type = val.type;\n            this.control.value = val.value;\n        });\n        this.aswQrLogoStyleForm.valueChanges.subscribe((val) => {\n            if (this.aswQrLogoStyleForm.invalid) {\n                return;\n            }\n            this.control.logoStyle = val;\n        });\n        this.aswDensityForm.valueChanges.subscribe((val) => {\n            if (this.aswQrLogoStyleForm.invalid) {\n                return;\n            }\n            this.control.density = val;\n        });\n        this.aswMiddleShapeForm.valueChanges.subscribe((val) => {\n            if (this.aswMiddleShapeForm.invalid) {\n                return;\n            }\n            this.control.middleShape = {\n                color: this.middleShapeColor,\n                type: val.type\n            };\n        });\n        this.aswCornerInnerShapeForm.valueChanges.subscribe((val) => {\n            if (this.aswCornerInnerShapeForm.invalid) {\n                return;\n            }\n            this.control.cornerInnerShape = {\n                color: this.cornerInnerShapeColor,\n                type: val.type\n            };\n        });\n        this.aswCornerOuterShapeForm.valueChanges.subscribe((val) => {\n            if (this.aswCornerOuterShapeForm.invalid) {\n                return;\n            }\n            this.control.cornerOuterShape = {\n                color: this.cornerOuterShapeColor,\n                type: val.type\n            };\n        });\n    }\n\n    validateFormBuilder(): void {\n        this.aswFormatForm = this.formBuilder.group({\n            value: [''],\n            width: [200, [Validators.required]],\n            height: [200, [Validators.required]],\n            outerMargin: [0],\n            type: ['canvas']\n        });\n        this.aswDensityForm = this.formBuilder.group({\n            typeNumber: [0, [Validators.required]],\n            mode: ['Byte', [Validators.required]],\n            errorCorrectionLevel: ['Q']\n        });\n        this.aswQrLogoStyleForm = this.formBuilder.group({\n            hideBackgroundCircle: [true],\n            logoSize: [0.4, [Validators.required]],\n            logoMargin: [0]\n        });\n        this.aswMiddleShapeForm = this.formBuilder.group({\n            type: ['circle'],\n            color: ['#fff']\n        });\n        this.aswCornerInnerShapeForm = this.formBuilder.group({\n            type: ['circle'],\n            color: ['#fff']\n        });\n        this.aswCornerOuterShapeForm = this.formBuilder.group({\n            type: ['circle'],\n            color: ['#fff']\n        });\n    }\n\n    setData(): void {\n        this.aswFormatForm.setValue({\n            value: this.control.value,\n            width: this.control.width,\n            height: this.control.height,\n            type: this.control.type,\n            outerMargin: this.control.outerMargin\n        });\n        this.aswDensityForm.patchValue({\n            typeNumber: this.control.density.typeNumber,\n            mode: this.control.density.mode,\n            errorCorrectionLevel: this.control.density.errorCorrectionLevel\n        });\n        this.aswQrLogoStyleForm.patchValue({\n            hideBackgroundCircle: this.control.logoStyle.hideBackgroundCircle,\n            logoSize: this.control.logoStyle.logoSize,\n            logoMargin: this.control.logoStyle.logoMargin\n        });\n        this.aswMiddleShapeForm.patchValue({\n            type: this.control.middleShape.type\n        });\n        this.aswCornerInnerShapeForm.patchValue({\n            type: this.control.cornerInnerShape.type\n        });\n        this.aswCornerOuterShapeForm.patchValue({\n            type: this.control.cornerOuterShape.type\n        });\n        this.backgroundColor = this.control.backgroundColor;\n        this.middleShapeColor = this.control.middleShape.color;\n        this.cornerInnerShapeColor = this.control.cornerInnerShape.color;\n        this.cornerOuterShapeColor = this.control.cornerOuterShape.color;\n    }\n\n    middleShapeColorChange(item: any): void {\n        this.control.middleShape = {\n            color: item.colorCode,\n            type: this.aswMiddleShapeForm.value.type\n        };\n        this.middleShapeColor = item.colorCode;\n    }\n\n    cornerInnerShapeColorChange(item: any): void {\n        this.control.cornerInnerShape = {\n            color: item.colorCode,\n            type: this.aswCornerInnerShapeForm.value.type\n        };\n        this.cornerInnerShapeColor = item.colorCode;\n    }\n\n    cornerOuterShapeColorChange(item: any): void {\n        this.control.cornerOuterShape = {\n            color: item.colorCode,\n            type: this.aswCornerOuterShapeForm.value.type\n        };\n        this.cornerOuterShapeColor = item.colorCode;\n    }\n\n    backgroundColorChange(item: any): void {\n        this.control.backgroundColor = item.colorCode;\n        this.backgroundColor = item.colorCode;\n    }\n\n    confirm(): void {\n        const option = JSON.parse(\n            JSON.stringify({\n                width: this.aswFormatForm.value.width,\n                value: this.aswFormatForm.value.value,\n                height: this.aswFormatForm.value.height,\n                type: this.aswFormatForm.value.type,\n                outerMargin: this.aswFormatForm.value.outerMargin,\n                logo: this.control.logo,\n                density: this.control.density,\n                backgroundColor: this.control.backgroundColor,\n                logoStyle: this.control.logoStyle,\n                cornerInnerShape: this.control.cornerInnerShape,\n                cornerOuterShape: this.control.cornerOuterShape,\n                middleShape: this.control.middleShape\n            })\n        );\n        this.dialogRef.close(option);\n    }\n\n    insertImage(url: string): void {\n        this.control.logo = url;\n    }\n\n    onNoClick(): void {\n        this.dialogRef.close();\n    }\n\n    fileChange(file: any): void {\n        if (file) {\n            const reader = new FileReader();\n            reader.readAsDataURL(file);\n            reader.onload = () => {\n                this.control.logo = reader.result;\n            };\n        } else {\n            delete this.control.logo;\n        }\n    }\n}\n","<div class=\"asw-dialog-header\">\r\n    <div class=\"asw-edit-row-dialog\">\r\n        <div class=\"asw-dialog-header clearfix\">\r\n            <div class=\"asw-dialog-about\">\r\n                <h1 mat-dialog-title class=\"asw-m-0\">{{'FormControl.Edit' | aswTranslate}} {{control.displayName | aswTranslate}}</h1>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <button mat-icon-button (click)=\"onNoClick()\" aria-label=\"Close dialog\" class=\"asw-mt-2 asw-me-2\">\r\n        <div [innerHTML]=\"icons.close | aswSafeHtml\"></div>\r\n    </button>\r\n</div>\r\n<mat-dialog-content class=\"mat-typography\">\r\n    <div class=\"asw-row asw-p-2\">\r\n        <div class=\"asw-col-md-4\">\r\n            <div class=\"asw-sticky-top\">\r\n                <div class=\"asw-row\">\r\n                    <div class=\"asw-col-md-12\">\r\n                        <h4 class=\"asw-text-center\">{{'FormBuilder.Preview' | aswTranslate}}</h4>\r\n                    </div>\r\n                    <div class=\"asw-col-md-12 asw-d-flex align-items-center justify-content-center\">\r\n                        <asw-qr-code #child [width]=\"control.width\" \r\n                            [height]=\"control.height\"\r\n                            [qrData]=\"control.value\" \r\n                            [outerMargin]=\"control.outerMargin\"\r\n                            [logo]=\"control.logo\"\r\n                            [type]=\"control.type\" [allowEmptyString]=\"true\"\r\n                            [density]=\"control.density\" [backgroundColor]=\"control.backgroundColor\"\r\n                            [logoStyle]=\"control.logoStyle\" [middleShape]=\"control.middleShape\"\r\n                            [cornerInnerShape]=\"control.cornerInnerShape\" [cornerOuterShape]=\"control.cornerOuterShape\">\r\n                        </asw-qr-code>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"asw-col-md-8\">\r\n            <mat-accordion class=\"example-headers-align\" multi>\r\n                <mat-expansion-panel expanded=\"true\">\r\n                    <mat-expansion-panel-header>\r\n                        <mat-panel-title>\r\n                            {{'FormControl.Format' | aswTranslate}}\r\n                        </mat-panel-title>\r\n                    </mat-expansion-panel-header>\r\n                    <form [formGroup]=\"aswFormatForm\">\r\n                        <div class=\"asw-row\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Data' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\" name=\"value\" placeholder=\"QR code data\"\r\n                                        matTooltip=\"Enter QR code data\" formControlName=\"value\">\r\n                                    <!-- <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                            <ng-container *ngIf=\"aswDatepickerForm.get('id')?.hasError(validation.type) && (aswDatepickerForm.get('id')?.dirty || aswDatepickerForm.get('id')?.touched)\">\r\n                                                {{validation.message | aswTranslate}}\r\n                                            </ng-container>\r\n                                        </mat-error> -->\r\n                                </mat-form-field>\r\n                            </div>\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Width' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"number\" name=\"width\" min=\"100\" max=\"10000\" placeholder=\"QR code width\"\r\n                                        matTooltip=\"Enter QR code width\" formControlName=\"width\" required>\r\n                                    <!-- <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                            <ng-container *ngIf=\"aswDatepickerForm.get('id')?.hasError(validation.type) && (aswDatepickerForm.get('id')?.dirty || aswDatepickerForm.get('id')?.touched)\">\r\n                                                {{validation.message | aswTranslate}}\r\n                                            </ng-container>\r\n                                        </mat-error> -->\r\n                                </mat-form-field>\r\n                            </div>\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Height' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"number\" name=\"height\" min=\"100\" max=\"10000\"\r\n                                        placeholder=\"QR code height\" matTooltip=\"Enter QR code height\" formControlName=\"height\"\r\n                                        required>\r\n                                    <!-- <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                            <ng-container *ngIf=\"aswDatepickerForm.get('id')?.hasError(validation.type) && (aswDatepickerForm.get('id')?.dirty || aswDatepickerForm.get('id')?.touched)\">\r\n                                                {{validation.message | aswTranslate}}\r\n                                            </ng-container>\r\n                                        </mat-error> -->\r\n                                </mat-form-field>\r\n                            </div>\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.DrawType' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"type\" matTooltip=\"Select QR code draw type\">\r\n                                        <mat-option *ngFor=\"let drawTpe of drawTpes\" [value]=\"drawTpe.value\">\r\n                                            {{drawTpe.label}}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </div>\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.OuterMargin' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"number\" name=\"margin\" min=\"0\" max=\"10000\" placeholder=\"QR code margin\"\r\n                                        matTooltip=\"Enter QR code margin\" formControlName=\"outerMargin\" required>\r\n                                    <!-- <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                            <ng-container *ngIf=\"aswDatepickerForm.get('id')?.hasError(validation.type) && (aswDatepickerForm.get('id')?.dirty || aswDatepickerForm.get('id')?.touched)\">\r\n                                                {{validation.message | aswTranslate}}\r\n                                            </ng-container>\r\n                                        </mat-error> -->\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </div>\r\n                    </form>\r\n                </mat-expansion-panel>\r\n                <mat-expansion-panel>\r\n                    <mat-expansion-panel-header>\r\n                        <mat-panel-title>\r\n                            {{'FormControl.Density' | aswTranslate}}\r\n                        </mat-panel-title>\r\n                    </mat-expansion-panel-header>\r\n                    <form [formGroup]=\"aswDensityForm\">\r\n                        <div class=\"asw-row\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <div class=\"asw-label-container\">\r\n                                    <label id=\"asw-name-label\" class=\"asw-name-label\">{{'FormControl.TypeNumber' | aswTranslate}}</label>\r\n                                    <label class=\"asw-value-label\">{{aswDensityForm.value.typeNumber}}</label>\r\n                                </div>\r\n                                <mat-slider min=\"0\" max=\"40\" step=\"1\" discrete class=\"asw-width-99\">\r\n                                    <input matSliderThumb formControlName=\"typeNumber\">\r\n                                </mat-slider>\r\n                            </div>\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.ErrorCorrectionLevel' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"errorCorrectionLevel\"\r\n                                        matTooltip=\"Select error correction level\">\r\n                                        <mat-option *ngFor=\"let ecl of errorCorrectionLevels\" [value]=\"ecl\">\r\n                                            {{ecl}}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </div>\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Mode' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"mode\" matTooltip=\"Select qr code mode\">\r\n                                        <mat-option *ngFor=\"let m of modes\" [value]=\"m\">\r\n                                            {{m}}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </div>\r\n                    </form>\r\n                </mat-expansion-panel>\r\n                <mat-expansion-panel>\r\n                    <mat-expansion-panel-header>\r\n                        <mat-panel-title>\r\n                            {{'FormControl.Style' | aswTranslate}}\r\n                        </mat-panel-title>\r\n                    </mat-expansion-panel-header>\r\n                    <div class=\"asw-row\">\r\n                        <div class=\"asw-col-md-4\">\r\n                            <form [formGroup]=\"aswMiddleShapeForm\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.MiddleShape' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"type\" matTooltip=\"Select middle shape\">\r\n                                        <mat-option *ngFor=\"let dt of middleShapeTypes\" [value]=\"dt.value\">\r\n                                            {{dt.label}}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </form>\r\n                        </div>\r\n                        <div class=\"asw-col-md-4\">\r\n                            <form [formGroup]=\"aswCornerInnerShapeForm\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.CornerInnerShape' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"type\" matTooltip=\"Select corner inner shape\">\r\n                                        <mat-option *ngFor=\"let dt of cornerInnerShapeTypes\" [value]=\"dt.value\">\r\n                                            {{dt.label}}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </form>\r\n                        </div>\r\n                        <div class=\"asw-col-md-4\">\r\n                            <form [formGroup]=\"aswCornerOuterShapeForm\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.CornerOuterShape' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"type\" matTooltip=\"Select corner outer shape\">\r\n                                        <mat-option *ngFor=\"let dt of cornerOuterShapeTypes\" [value]=\"dt.value\">\r\n                                            {{dt.label}}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </form>\r\n                        </div>\r\n                    </div>\r\n                </mat-expansion-panel>\r\n                <mat-expansion-panel>\r\n                    <mat-expansion-panel-header>\r\n                        <mat-panel-title>\r\n                            {{'FormControl.Color' | aswTranslate}}\r\n                        </mat-panel-title>\r\n                    </mat-expansion-panel-header>\r\n                    <div class=\"asw-row\">\r\n                        <div class=\"asw-col-md-3\">\r\n                            <button mat-button type=\"button\" [matMenuTriggerFor]=\"backgroundColorMenu\">\r\n                                <button class=\"asw-mini-fab\" \r\n                                    mat-mini-fab [style.color]=\"'#ffffff'\" \r\n                                    [style.background]=\"backgroundColor\">\r\n                                </button>\r\n                                {{'FormControl.Background' | aswTranslate}}\r\n                            </button>\r\n                            <mat-menu #backgroundColorMenu=\"matMenu\">\r\n                                <asw-color-picker (click)=\"$event.stopPropagation();\"\r\n                                    [backgroundColor]=\"backgroundColor\"\r\n                                    (colorChange)=\"backgroundColorChange($event)\">\r\n                                </asw-color-picker>\r\n                            </mat-menu>\r\n                        </div>\r\n                        <div class=\"asw-col-md-3\">\r\n                            <button mat-button type=\"button\" [matMenuTriggerFor]=\"middleShapeColorMenu\">\r\n                                <button class=\"asw-mini-fab\" mat-mini-fab \r\n                                    [style.color]=\"'#ffffff'\" \r\n                                    [style.background]=\"middleShapeColor\">\r\n                                </button>\r\n                                {{'FormControl.MiddleShape' | aswTranslate}}\r\n                            </button>\r\n                            <mat-menu #middleShapeColorMenu=\"matMenu\">\r\n                                <asw-color-picker (click)=\"$event.stopPropagation();\"\r\n                                    [backgroundColor]=\"middleShapeColor\"\r\n                                    (colorChange)=\"middleShapeColorChange($event)\">\r\n                                </asw-color-picker>\r\n                            </mat-menu>\r\n                        </div>\r\n                        <div class=\"asw-col-md-3\">\r\n                            <button mat-button type=\"button\" [matMenuTriggerFor]=\"cornerInnerShapeColorMenu\">\r\n                                <button class=\"asw-mini-fab\" mat-mini-fab \r\n                                    [style.color]=\"'#ffffff'\" \r\n                                    [style.background]=\"cornerInnerShapeColor\">\r\n                                </button>\r\n                                {{'FormControl.CornerInner' | aswTranslate}}\r\n                            </button>\r\n                            <mat-menu #cornerInnerShapeColorMenu=\"matMenu\">\r\n                                <asw-color-picker (click)=\"$event.stopPropagation();\"\r\n                                    [backgroundColor]=\"cornerInnerShapeColor\"\r\n                                    (colorChange)=\"cornerInnerShapeColorChange($event)\">\r\n                                </asw-color-picker>\r\n                            </mat-menu>\r\n                        </div>\r\n                        <div class=\"asw-col-md-3\">\r\n                            <button mat-button type=\"button\" [matMenuTriggerFor]=\"cornerOuterShapeColorMenu\">\r\n                                <button class=\"asw-mini-fab\" mat-mini-fab \r\n                                    [style.color]=\"'#ffffff'\" \r\n                                    [style.background]=\"cornerOuterShapeColor\">\r\n                                </button>\r\n                                {{'FormControl.CornerOuter' | aswTranslate}}\r\n                            </button>\r\n                            <mat-menu #cornerOuterShapeColorMenu=\"matMenu\">\r\n                                <asw-color-picker (click)=\"$event.stopPropagation();\"\r\n                                    [backgroundColor]=\"cornerOuterShapeColor\"\r\n                                    (colorChange)=\"cornerOuterShapeColorChange($event)\">\r\n                                </asw-color-picker>\r\n                            </mat-menu>\r\n                        </div>\r\n                    </div>\r\n                </mat-expansion-panel>\r\n                <mat-expansion-panel>\r\n                    <mat-expansion-panel-header>\r\n                        <mat-panel-title>\r\n                            {{'FormControl.Logo' | aswTranslate}}\r\n                        </mat-panel-title>\r\n                    </mat-expansion-panel-header>\r\n                    <form [formGroup]=\"aswQrLogoStyleForm\">\r\n                        <div class=\"asw-row\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <asw-fileupload [control]=\"constants.qrCodeImageUpload\"\r\n                                    (onfileUploadChange)=\"fileChange($event)\">\r\n                                </asw-fileupload>\r\n                            </div>\r\n                            <ng-container *ngIf=\"control.logo\">\r\n                                <div class=\"asw-col-md-12\">\r\n                                    <mat-slide-toggle color=\"primary\" formControlName=\"hideBackgroundCircle\">\r\n                                        {{'FormControl.HideBackgroundDots' | aswTranslate}}\r\n                                    </mat-slide-toggle>\r\n                                </div>\r\n                                <div class=\"asw-col-md-12\">\r\n                                    <div class=\"asw-label-container\">\r\n                                        <label id=\"asw-name-label\" class=\"asw-name-label\">{{'FormControl.LogoSize' | aswTranslate}}</label>\r\n                                        <label class=\"asw-value-label\">{{aswQrLogoStyleForm.value.logoSize}}</label>\r\n                                    </div>\r\n                                    <mat-slider min=\"0\" max=\"1\" step=\"0.1\" discrete class=\"asw-width-99\">\r\n                                        <input matSliderThumb formControlName=\"logoSize\">\r\n                                    </mat-slider>\r\n                                </div>\r\n                                <div class=\"asw-col-md-12\">\r\n                                    <div class=\"asw-label-container\">\r\n                                        <label id=\"asw-name-label\" class=\"asw-name-label\">{{'FormControl.LogoMargin' | aswTranslate}}</label>\r\n                                        <label class=\"asw-value-label\">{{aswQrLogoStyleForm.value.logoMargin}}</label>\r\n                                    </div>\r\n                                    <mat-slider min=\"0\" max=\"10\" step=\"1\" discrete class=\"asw-width-99\">\r\n                                        <input matSliderThumb formControlName=\"logoMargin\">\r\n                                    </mat-slider>\r\n                                </div>\r\n                            </ng-container>\r\n                        </div>\r\n                    </form>\r\n                </mat-expansion-panel>\r\n            </mat-accordion>\r\n        </div>\r\n    </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions align=\"end\">\r\n    <button type=\"button\"\r\n            class=\"asw-button asw-button-danger asw-me-2 asw-mb-1\"\r\n            (click)=\"onNoClick()\">\r\n        {{'FormControl.No' | aswTranslate}}\r\n    </button>\r\n    <button type=\"submit\"\r\n            class=\"asw-button asw-button-primary asw-mb-1\"\r\n            cdkFocusInitial (click)=\"confirm()\">\r\n        {{'FormControl.Yes' | aswTranslate}}\r\n    </button>\r\n</mat-dialog-actions>\r\n\r\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api';\nimport { Constants, Icons } from '@asoftwareworld/form-builder-pro/common';\nimport { AswConfirmDialog } from '@asoftwareworld/form-builder-pro/form-control/confirm-dialog';\nimport { QrCodeControl } from './qrcode-control';\nimport { AswQrCodeDialog } from './qrcode-dialog';\n\n@Component({\n    selector: 'asw-qrcode',\n    templateUrl: './qrcode.html'\n})\nexport class AswQrCode {\n    constants: any = Constants;\n    icons = Icons;\n    /**\n     * QR Code control\n     */\n    @Input() control: QrCodeControl | null = null;\n    @Input() CSSFramework: CSSFrameworkEnum = CSSFrameworkEnum.Material;\n    @Input() isPreviewTemplate = false;\n\n    @Output() qrCodeUpdateEvent = new EventEmitter<QrCodeControl>();\n    @Output() qrCodeDeleteEvent = new EventEmitter<QrCodeControl>();\n    @Output() duplicateControl = new EventEmitter<QrCodeControl>();\n\n    constructor(public dialog: MatDialog) {}\n\n    deleteQrCodeDialog(control: QrCodeControl): void {\n        const dialogRef = this.dialog.open(AswConfirmDialog, {\n            width: '350px',\n            data: { name: control.controlType, message: this.constants.messages.waringMessage }\n        });\n        dialogRef.afterClosed().subscribe((result) => {\n            if (result !== undefined) {\n                this.qrCodeDeleteEvent.emit(control);\n            }\n        });\n    }\n\n    editQrCodeDialog(control: QrCodeControl): void {\n        const dialogRef = this.dialog.open(AswQrCodeDialog, {\n            width: '80%',\n            minWidth: '80vw',\n            disableClose: true,\n            data: control\n        });\n        dialogRef.afterClosed().subscribe((result) => {\n            if (result !== undefined) {\n                this.qrCodeUpdateEvent.emit(result);\n                // this.control = JSON.parse(JSON.stringify(result));\n            }\n        });\n    }\n\n    duplicateQrCodeControl(control: QrCodeControl): void {\n        this.duplicateControl.emit(control);\n    }\n\n    // customizeDesign(): void {\n    //     const dialogRef = this.dialog.open(AswQrCodeCustomizeDialog, {\n    //         width: '80%',\n    //         data: JSON.parse(JSON.stringify(this.control))\n    //     });\n\n    //     dialogRef.afterClosed().subscribe(option => {\n    //         if (option) {\n    //             this.control = JSON.parse(JSON.stringify(option));\n    //             console.log(`Dialog result: ${option}`);\n    //         }\n    //     });\n    // }\n}\n","<ng-container *ngIf=\"control as control\">\r\n    <asw-qr-code #parent [qrData]=\"control.value\" \r\n        [width]=\"control.width\" \r\n        [height]=\"control.height\"\r\n        [outerMargin]=\"control.outerMargin\" \r\n        [type]=\"control.type\" \r\n        [allowEmptyString]=\"true\"\r\n        [logo]=\"control.logo\"\r\n        [density]=\"control.density\" \r\n        [backgroundColor]=\"control.backgroundColor\"\r\n        [logoStyle]=\"control.logoStyle\" \r\n        [middleShape]=\"control.middleShape\"\r\n        [cornerInnerShape]=\"control.cornerInnerShape\" \r\n        [cornerOuterShape]=\"control.cornerOuterShape\">\r\n    </asw-qr-code>\r\n    <div class=\"asw-row\" *ngIf=\"isPreviewTemplate\">\r\n        <div class=\"asw-col-md-12\" align=\"right\">\r\n            <button mat-icon-button \r\n                    type=\"button\" \r\n                    matTooltip=\"{{'FormControl.Duplicate' | aswTranslate}}\" \r\n                    [matTooltipPosition]=\"'below'\" \r\n                    (click)=\"duplicateQrCodeControl(control)\">\r\n                <div [innerHTML]=\"icons.contentCopy | aswSafeHtml\"></div>\r\n            </button>\r\n            <button mat-icon-button \r\n                    type=\"button\" \r\n                    matTooltip=\"{{'FormControl.Edit' | aswTranslate}}\" \r\n                    [matTooltipPosition]=\"'below'\" \r\n                    (click)=\"editQrCodeDialog(control)\">\r\n                <div [innerHTML]=\"icons.edit | aswSafeHtml\"></div>\r\n            </button>\r\n            <button mat-icon-button \r\n                    type=\"button\" \r\n                    matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n                    [matTooltipPosition]=\"'below'\" \r\n                    (click)=\"deleteQrCodeDialog(control)\">\r\n                <div [innerHTML]=\"icons.delete2 | aswSafeHtml\"></div>\r\n            </button>\r\n        </div>\r\n    </div>\r\n</ng-container>","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { CornerInnerShape, CornerOuterShape, Density, DrawType, LogoStyle, MiddleShape } from '@asoftwareworld/qrcode';\n\nexport interface QrCodeControl {\n    id?: string;\n    guid?: string;\n    column: string;\n    value: string;\n    controlType?: string;\n    displayName: string;\n    height?: number;\n    width?: number;\n    type?: DrawType;\n    logo?: string;\n    outerMargin?: number;\n    density?: Density;\n    logoStyle?: LogoStyle;\n    backgroundColor?: string;\n    middleShape?: MiddleShape;\n    cornerInnerShape?: CornerInnerShape;\n    cornerOuterShape?: CornerOuterShape;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AswPipeModule, MaterialModule } from '@asoftwareworld/form-builder-pro/common';\nimport { AswTranslateModule } from '@asoftwareworld/form-builder-pro/core';\nimport { AswConfirmDialogModule } from '@asoftwareworld/form-builder-pro/form-control/confirm-dialog';\nimport { AswQrCodeModule } from '@asoftwareworld/qrcode';\n\nimport { AswQrCode } from './qrcode';\nimport { AswQrCodeDialog } from './qrcode-dialog';\nimport { AswFileUploadModule } from '@asoftwareworld/form-builder-pro/form-control/fileupload';\nimport { AswColorPickerModule } from '@asoftwareworld/form-builder-pro/color-picker';\n\n@NgModule({\n    imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, AswConfirmDialogModule, AswQrCodeModule, AswTranslateModule, AswPipeModule, AswFileUploadModule, AswColorPickerModule],\n    declarations: [AswQrCode, AswQrCodeDialog],\n    exports: [AswQrCode, AswQrCodeDialog]\n})\nexport class QrCodeModule {}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport * from './qrcode';\nexport * from './qrcode-dialog';\nexport * from './qrcode-control';\nexport * from './qrcode.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","i4","i5","i6","i7"],"mappings":"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"}