{"version":3,"file":"asoftwareworld-form-builder-pro-form-control-shared.mjs","sources":["../../src/components/form-control/shared/digital/digital-dialog.ts","../../src/components/form-control/shared/digital/digital-dialog.html","../../src/components/form-control/shared/multi-select/multi-select-dialog.ts","../../src/components/form-control/shared/multi-select/multi-select-dialog.html","../../src/components/form-control/shared/single-select/single-select-dialog.ts","../../src/components/form-control/shared/single-select/single-select-dialog.html","../../src/components/form-control/shared/text/text-dialog.ts","../../src/components/form-control/shared/text/text-dialog.html","../../src/components/form-control/shared/shared-dialog.module.ts","../../src/components/form-control/shared/public_api.ts","../../src/components/form-control/shared/asoftwareworld-form-builder-pro-form-control-shared.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 { ObjectUtils } from '@asoftwareworld/form-builder-pro/utils';\n\n@Component({\n    selector: 'asw-digital-dialog',\n    templateUrl: './digital-dialog.html'\n})\nexport class AswDigitalDialog implements OnInit {\n    constants: any = Constants;\n    aswDigitalForm!: FormGroup;\n    objectUtils = ObjectUtils;\n    icons = Icons;\n    status = true;\n    control: any;\n\n    constructor(\n        private formBuilder: FormBuilder,\n        public dialogRef: MatDialogRef<AswDigitalDialog>,\n        @Inject(MAT_DIALOG_DATA) public data: any\n    ) {}\n\n    ngOnInit(): void {\n        this.control = this.data.control;\n        this.validateFormBuilder();\n        this.editProperty(this.control);\n    }\n\n    validateFormBuilder(): void {\n        this.aswDigitalForm = this.formBuilder.group({\n            label: [],\n            class: [],\n            imageUrl: [],\n            height: ['', [Validators.max(600), Validators.min(0)]],\n            width: ['', [Validators.max(600), Validators.min(0)]],\n            isUploadHide: [true]\n        });\n    }\n\n    editProperty(control: any): void {\n        this.aswDigitalForm.setValue({\n            label: control.label,\n            class: control.class,\n            imageUrl: control.imageUrl,\n            width: control.width,\n            height: control.height,\n            isUploadHide: control.isUploadHide ?? true\n        });\n    }\n\n    onNoClick(): void {\n        this.dialogRef.close();\n    }\n\n    onSubmit(): void {\n        if (this.aswDigitalForm.invalid) {\n            return;\n        }\n        this.aswDigitalForm.value.controlType = this.control.controlType;\n        this.aswDigitalForm.value.id = this.control.id;\n        this.aswDigitalForm.value.guid = this.control.guid;\n        this.dialogRef.close(this.aswDigitalForm.value);\n    }\n\n    onChange(event: any): void {\n        this.status = event.checked ? true : false;\n        if (event.checked === undefined) {\n            this.status = event.target.checked ? true : false;\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.label | 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<form [formGroup]=\"aswDigitalForm\" (ngSubmit)=\"onSubmit()\">\r\n    <div mat-dialog-content class=\"mat-typography\">\r\n        <div class=\"asw-row\">\r\n            <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap\">\r\n                <div class=\"asw-col-md-12\">\r\n                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                        <mat-label>{{'FormControl.Label' | aswTranslate}}</mat-label>\r\n                        <input matInput type=\"text\"\r\n                            name=\"label\"\r\n                            placeholder=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                            matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                            formControlName=\"label\">\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\"\r\n                            name=\"width\"\r\n                            min=\"0\" \r\n                            max=\"600\"\r\n                            placeholder=\"{{'FormControl.Width' | aswTranslate}}\"\r\n                            (keypress)=\"objectUtils.keyPressNumbersWithDecimal($event)\"\r\n                            matTooltip=\"{{'FormControl.Width' | aswTranslate}}\"\r\n                            formControlName=\"width\">\r\n                        <mat-error *ngFor=\"let validation of constants.accountValidationMessages.width\">\r\n                            <ng-container *ngIf=\"aswDigitalForm.get('width')?.hasError(validation.type) && (aswDigitalForm.get('width')?.dirty || aswDigitalForm.get('width')?.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\"\r\n                            name=\"height\"\r\n                            min=\"0\" \r\n                            max=\"600\"\r\n                            placeholder=\"{{'FormControl.Height' | aswTranslate}}\"\r\n                            (keypress)=\"objectUtils.keyPressNumbersWithDecimal($event)\"\r\n                            matTooltip=\"{{'FormControl.Height' | aswTranslate}}\"\r\n                            formControlName=\"height\">\r\n                        <mat-error *ngFor=\"let validation of constants.accountValidationMessages.height\">\r\n                            <ng-container *ngIf=\"aswDigitalForm.get('height')?.hasError(validation.type) && (aswDigitalForm.get('height')?.dirty || aswDigitalForm.get('height')?.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-12\">\r\n                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                        <mat-label>{{'FormControl.Imageurl' | aswTranslate}}</mat-label>\r\n                        <input matInput type=\"text\"\r\n                            name=\"label\"\r\n                            placeholder=\"Enter image url\"\r\n                            matTooltip=\"Enter label\"\r\n                            formControlName=\"imageUrl\">\r\n                    </mat-form-field>\r\n                </div>\r\n                <div class=\"asw-col-md-6\">\r\n                    <div class=\"asw-mb-3\">\r\n                        {{'FormControl.Style' | aswTranslate}}: \r\n                        <mat-button-toggle-group formControlName=\"class\" name=\"fontStyle\" aria-label=\"Font Style\">\r\n                            <mat-button-toggle value=\"asw-text-start\" aria-label=\"Text align left\">\r\n                                <span [innerHTML]=\"icons.justifyLeft | aswSafeHtml\"></span>\r\n                            </mat-button-toggle>\r\n                            <mat-button-toggle value=\"asw-text-center\" aria-label=\"Text align center\">\r\n                                <span [innerHTML]=\"icons.justifyCenter | aswSafeHtml\"></span>\r\n                            </mat-button-toggle>\r\n                            <mat-button-toggle value=\"asw-text-end\" aria-label=\"Text align right\">\r\n                                <span [innerHTML]=\"icons.justifyRight | aswSafeHtml\"></span>\r\n                            </mat-button-toggle>\r\n                        </mat-button-toggle-group>\r\n                    </div>\r\n                </div>            \r\n                <div class=\"asw-col-md-6\">\r\n                    <mat-slide-toggle color=\"primary\"\r\n                        #isUploadHide\r\n                        formControlName=\"isUploadHide\"\r\n                        (change)=\"onChange($event)\">\r\n                        {{(status ? 'FormControl.UploadHide' : 'FormControl.UploadShow') | aswTranslate}}\r\n                    </mat-slide-toggle>\r\n                </div>\r\n            </ng-container>\r\n            <ng-template #bootstrap>\r\n                <div class=\"asw-col-md-12\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <label class=\"asw-input-label\">{{'FormControl.Label' | aswTranslate}}</label>\r\n                        <input type=\"text\"\r\n                            name=\"label\"\r\n                            class=\"asw-input-control\"\r\n                            matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                            formControlName=\"label\">\r\n                    </div>\r\n                </div>\r\n                <div class=\"asw-col-md-6\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <label class=\"asw-input-label asw-invalid-label {{(aswDigitalForm.get('width')?.invalid && (aswDigitalForm.get('width')?.dirty || aswDigitalForm.get('width')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.Width' | aswTranslate}}</label>\r\n                        <input type=\"number\"\r\n                            name=\"width\"\r\n                            min=\"0\" \r\n                            max=\"600\"\r\n                            class=\"asw-input-control\"\r\n                            [class.asw-is-invalid]=\"(aswDigitalForm.get('width')?.invalid && (aswDigitalForm.get('width')?.dirty || aswDigitalForm.get('width')?.touched))\"\r\n                            (keypress)=\"objectUtils.keyPressNumbersWithDecimal($event)\"\r\n                            matTooltip=\"{{'FormControl.Width' | aswTranslate}}\"\r\n                            formControlName=\"width\">\r\n                        <div *ngFor=\"let validation of constants.accountValidationMessages.width\" class=\"invalid-feedback\">\r\n                            <ng-container *ngIf=\"aswDigitalForm.get('width')?.hasError(validation.type) && (aswDigitalForm.get('width')?.dirty || aswDigitalForm.get('width')?.touched)\">\r\n                                {{validation.message | aswTranslate}}\r\n                            </ng-container>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=\"asw-col-md-6\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <label class=\"asw-input-label asw-invalid-label {{(aswDigitalForm.get('height')?.invalid && (aswDigitalForm.get('height')?.dirty || aswDigitalForm.get('height')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.Height' | aswTranslate}}</label>\r\n                        <input type=\"number\"\r\n                            name=\"height\"\r\n                            min=\"0\" \r\n                            max=\"600\"\r\n                            class=\"asw-input-control\"\r\n                            [class.asw-is-invalid]=\"(aswDigitalForm.get('height')?.invalid && (aswDigitalForm.get('height')?.dirty || aswDigitalForm.get('height')?.touched))\"\r\n                            (keypress)=\"objectUtils.keyPressNumbersWithDecimal($event)\"\r\n                            matTooltip=\"{{'FormControl.Height' | aswTranslate}}\"\r\n                            formControlName=\"height\">\r\n                        <div *ngFor=\"let validation of constants.accountValidationMessages.height\" class=\"invalid-feedback\">\r\n                            <ng-container *ngIf=\"aswDigitalForm.get('height')?.hasError(validation.type) && (aswDigitalForm.get('height')?.dirty || aswDigitalForm.get('height')?.touched)\">\r\n                                {{validation.message | aswTranslate}}\r\n                            </ng-container>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=\"asw-col-md-12\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <label class=\"asw-input-label\">{{'FormControl.Imageurl' | aswTranslate}}</label>\r\n                        <input type=\"text\"\r\n                            name=\"label\"\r\n                            class=\"asw-input-control\"\r\n                            matTooltip=\"Enter label\"\r\n                            formControlName=\"imageUrl\">\r\n                    </div>\r\n                </div>\r\n                <div class=\"asw-col-md-6\">\r\n                    <div class=\"asw-mb-3\">\r\n                        {{'FormControl.Style' | aswTranslate}}: \r\n                        <mat-button-toggle-group formControlName=\"class\" name=\"fontStyle\" aria-label=\"Font Style\">\r\n                            <mat-button-toggle value=\"asw-text-start\" aria-label=\"Text align left\">\r\n                                <span [innerHTML]=\"icons.justifyLeft | aswSafeHtml\"></span>\r\n                            </mat-button-toggle>\r\n                            <mat-button-toggle value=\"asw-text-center\" aria-label=\"Text align center\">\r\n                                <span [innerHTML]=\"icons.justifyCenter | aswSafeHtml\"></span>\r\n                            </mat-button-toggle>\r\n                            <mat-button-toggle value=\"asw-text-end\" aria-label=\"Text align right\">\r\n                                <span [innerHTML]=\"icons.justifyRight | aswSafeHtml\"></span>\r\n                            </mat-button-toggle>\r\n                        </mat-button-toggle-group>\r\n                    </div>\r\n                </div>            \r\n                <div class=\"asw-col-md-6\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <div class=\"asw-form-check asw-form-switch\">\r\n                            <input class=\"asw-form-check-input\" \r\n                                type=\"checkbox\"\r\n                                id=\"isUploadHide\" \r\n                                #isUploadHide\r\n                                formControlName=\"isUploadHide\"\r\n                                (change)=\"onChange($event)\">\r\n                            <label class=\"asw-form-check-label\" for=\"isUploadHide\">\r\n                                {{(status ? 'FormControl.UploadHide' : 'FormControl.UploadShow') | aswTranslate}}\r\n                            </label>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </ng-template>\r\n        </div>\r\n    </div>\r\n    <div mat-dialog-actions align=\"end\">\r\n        <button type=\"button\"\r\n                class=\"asw-button asw-button-danger asw-mb-1 asw-me-2\"\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>\r\n            {{'FormControl.Yes' | aswTranslate}}\r\n        </button>\r\n    </div>\r\n</form>\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, Inject, OnInit } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Constants, Icons } from '@asoftwareworld/form-builder-pro/common';\n\n@Component({\n    selector: 'asw-multi-select-dialog',\n    templateUrl: './multi-select-dialog.html'\n})\nexport class AswMultiSelectDialog implements OnInit {\n    constants: any = Constants;\n    aswEditMultiselectForm: FormGroup;\n    status!: boolean;\n    icons = Icons;\n    control: any;\n    labelType = 'label';\n\n    constructor(\n        private formBuilder: FormBuilder,\n        public dialogRef: MatDialogRef<AswMultiSelectDialog>,\n        @Inject(MAT_DIALOG_DATA) public data: any\n    ) {\n        this.aswEditMultiselectForm = this.formBuilder.group({\n            id: ['', [Validators.required]],\n            customClass: [],\n            tooltip: [''],\n            label: ['', [Validators.required, Validators.minLength(2)]],\n            style: [''],\n            options: this.formBuilder.array([this.createOption()]),\n            isRequired: [false],\n            isDisabled: [false],\n            labelType: ['label'],\n            apiUrl: [''],\n            body: [],\n            method: [],\n            headers: []\n        });\n    }\n\n    ngOnInit(): void {\n        this.control = this.data.control;\n        this.setValue(this.control);\n    }\n\n    get options(): FormArray {\n        return this.aswEditMultiselectForm.get('options') as FormArray;\n    }\n\n    createOption(): FormGroup {\n        return this.formBuilder.group({\n            key: ['', [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],\n            value: ['', [Validators.required, Validators.minLength(1), Validators.maxLength(999)]],\n            isChecked: [false],\n            hideControl: []\n        });\n    }\n\n    addNewOption(): void {\n        this.options.push(this.createOption());\n    }\n\n    onNoClick(): void {\n        this.dialogRef.close();\n    }\n\n    removeOption(index: number): void {\n        this.options.removeAt(index);\n    }\n\n    onSubmit(): void {\n        if (this.aswEditMultiselectForm.invalid) {\n            return;\n        }\n        const value: string[] = [];\n        this.aswEditMultiselectForm.value.options.forEach((element: any, index: number) => {\n            if (typeof element.hideControl === 'string') {\n                element.hideControl = this.control.options[index].hideControl;\n            }\n            if (element.isChecked) {\n                value.push(element.key);\n            }\n        });\n        this.aswEditMultiselectForm.value.value = value;\n        this.aswEditMultiselectForm.value.controlType = this.control.controlType;\n        this.aswEditMultiselectForm.value.guid = this.control.guid;\n        this.dialogRef.close(this.aswEditMultiselectForm.value);\n    }\n\n    setValue(control: any): void {\n        this.aswEditMultiselectForm.patchValue({\n            id: control.id,\n            customClass: control.customClass ?? '',\n            tooltip: control.tooltip,\n            label: control.label,\n            style: control.style,\n            isRequired: control.isRequired,\n            value: control.value ?? '',\n            isDisabled: control.isDisabled,\n            labelType: control.labelType ?? '',\n            apiUrl: control.apiUrl ?? '',\n            method: control.method ?? '',\n            headers: control.headers ?? '',\n            body: control.body ?? {}\n        });\n        this.labelType = control.labelType ? control.labelType : 'label';\n        // Populate options array\n        const optionsArray = this.aswEditMultiselectForm.get('options') as FormArray;\n        optionsArray.clear(); // Clear existing options\n\n        control.options.forEach((option) => {\n            optionsArray.push(\n                this.formBuilder.group({\n                    key: [option.key, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],\n                    value: [option.value, [Validators.required, Validators.minLength(1), Validators.maxLength(999)]],\n                    isChecked: [option.isChecked || false],\n                    hideControl: [option.hideControl ? option.hideControl.label : option.hideControl || []]\n                })\n            );\n        });\n        // const optionFormGroup = control.options.map((option: any) => this.formBuilder.group(option));\n        // const optionFormArray = this.formBuilder.array(optionFormGroup);\n        // this.aswEditMultiselectForm.setControl('options', optionFormArray);\n    }\n\n    onLabelTypeChange(item: any): void {\n        if (item.value) {\n            this.labelType = item.value;\n        } else {\n            this.labelType = item.target.value;\n        }\n    }\n\n    onStatusChange(event: any): void {\n        this.status = event.checked ? true : false;\n        if (event.checked === undefined) {\n            this.status = event.target.checked ? true : false;\n        }\n    }\n\n    onKey(event: any, index: number): void {\n        let isError = false;\n        this.options.controls.filter((element, elementIndex) => {\n            if (element.value.key === event.target.value && index !== elementIndex) {\n                isError = true;\n            }\n        });\n        if (isError) {\n            this.options.controls[index].get('key')?.setErrors({ unique: true });\n        }\n    }\n\n    getApiData(data: any): void {\n        this.control.body = data.body;\n        this.control.headers = data.headers;\n        this.control.method = data.method;\n        this.control.apiUrl = data.apiUrl;\n        if (data.responseData?.value) {\n            this.control.options = data.responseData.value;\n            this.setValue(this.control);\n        } else {\n            this.control.options = data.responseData;\n            this.setValue(this.control);\n        }\n    }\n\n    onControlChange(event: any, selectControl: any): void {\n        this.data.allControls.forEach((control: any) => {\n            if (event.target.value === control.label) {\n                selectControl.value.hideControl = control;\n            }\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.controlType != 'checkbox' ? control.label : 'Checkbox') | 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<form [formGroup]=\"aswEditMultiselectForm\" (ngSubmit)=\"onSubmit()\">\r\n    <div mat-dialog-content class=\"mat-typography\">\r\n        <mat-tab-group dynamicHeight mat-stretch-tabs=\"false\">\r\n            <mat-tab label=\"{{'FormControl.Properties' | aswTranslate}}\">\r\n                <div class=\"asw-row asw-px-2 asw-py-3\">\r\n                    <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap\">\r\n                        <ng-container *ngIf=\"control.labelType !== undefined\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.LabelType' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"labelType\" matTooltip=\"{{'FormControl.SelectLabelType' | aswTranslate}}\" \r\n                                        (selectionChange)=\"onLabelTypeChange($event)\">\r\n                                        <mat-option value=\"label\">Simple Label</mat-option>\r\n                                        <mat-option value=\"text-editor\">Text Editor</mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"{{control.controlType != 'checkbox' ? 'asw-col-md-6' : 'asw-col-md-12'}}\">\r\n                            <ng-container *ngIf=\"labelType === 'label'; else aswEditor\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Label' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        placeholder=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                        formControlName=\"label\" required>\r\n                                    <mat-icon *ngIf=\"aswEditMultiselectForm.get('Label')?.invalid && (aswEditMultiselectForm.get('Label')?.dirty || aswEditMultiselectForm.get('Label')?.touched)\"\r\n                                        class=\"asw-error\" matSuffix>error</mat-icon>\r\n                                    <mat-error *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n                                        <ng-container *ngIf=\"aswEditMultiselectForm.get('label')?.hasError(validation.type) && (aswEditMultiselectForm.get('label')?.dirty || aswEditMultiselectForm.get('label')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </mat-error>\r\n                                </mat-form-field>\r\n                            </ng-container>\r\n                            <ng-template #aswEditor>\r\n                                <asw-editor autofocus=\"true\" id=\"asw-editor\" formControlName=\"label\" [config]=\"constants.aswEditorConfig\"></asw-editor>\r\n                                <ng-container *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n                                    <mat-error *ngIf=\"aswEditMultiselectForm.get('label')?.hasError(validation.type) && (aswEditMultiselectForm.get('label')?.dirty || aswEditMultiselectForm.get('label')?.touched)\">\r\n                                        {{validation.message | aswTranslate}}\r\n                                    </mat-error>\r\n                                </ng-container>\r\n                            </ng-template>\r\n                        </div>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.UniqueId' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"id\"\r\n                                        placeholder=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        formControlName=\"id\" required>\r\n                                    <mat-icon *ngIf=\"aswEditMultiselectForm.get('id')?.invalid && (aswEditMultiselectForm.get('id')?.dirty || aswEditMultiselectForm.get('id')?.touched)\"\r\n                                        class=\"asw-error\" matSuffix>error</mat-icon>\r\n                                    <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                        <ng-container *ngIf=\"aswEditMultiselectForm.get('id')?.hasError(validation.type) && (aswEditMultiselectForm.get('id')?.dirty || aswEditMultiselectForm.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                        </ng-container>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.CustomCSSClass' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"customClass\"\r\n                                        placeholder=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        formControlName=\"customClass\">\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"{{control.controlType != 'checkbox' ? 'asw-col-md-6' : 'asw-col-md-12'}}\">\r\n                            <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                <mat-label>{{'FormControl.Tooltip' | aswTranslate}}</mat-label>\r\n                                <input matInput type=\"text\"\r\n                                    placeholder=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    matTooltip=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    formControlName=\"tooltip\">\r\n                            </mat-form-field>\r\n                        </div>\r\n                        <div class=\"asw-col-md-12\" *ngIf=\"control.controlType != 'checkbox'\">\r\n                            <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                <mat-label>{{'FormControl.Style' | aswTranslate}}</mat-label>\r\n                                <mat-select formControlName=\"style\" matTooltip=\"{{'FormControl.Style' | aswTranslate}}\">\r\n                                    <mat-option value=\"fill\">Fill</mat-option>\r\n                                    <mat-option value=\"outline\">Outline</mat-option>                    \r\n                                </mat-select>\r\n                            </mat-form-field>\r\n                        </div>\r\n                    </ng-container>\r\n                    <ng-template #bootstrap>\r\n                        <ng-container *ngIf=\"control.labelType !== undefined\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <label class=\"asw-input-label\">{{'FormControl.LabelType' | aswTranslate}}</label>\r\n                                <select formControlName=\"labelType\" class=\"asw-select\" matTooltip=\"{{'FormControl.SelectLabelType' | aswTranslate}}\"\r\n                                    (change)=\"onLabelTypeChange($event)\">\r\n                                    <option value=\"label\">Simple Label</option>\r\n                                    <option value=\"text-editor\">Text Editor</option>\r\n                                </select>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"asw-col-md-12\">\r\n                            <ng-container *ngIf=\"labelType === 'label'; else aswEditor\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label asw-invalid-label {{(aswEditMultiselectForm.get('label')?.invalid && (aswEditMultiselectForm.get('label')?.dirty || aswEditMultiselectForm.get('label')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.Label' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        class=\"asw-input-control\"\r\n                                        [class.asw-is-invalid]=\"(aswEditMultiselectForm.get('label')?.invalid && (aswEditMultiselectForm.get('label')?.dirty || aswEditMultiselectForm.get('label')?.touched))\"\r\n                                        matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                        formControlName=\"label\" required>\r\n                                    <div *ngFor=\"let validation of constants.accountValidationMessages.label\" class=\"invalid-feedback\">\r\n                                        <ng-container *ngIf=\"aswEditMultiselectForm.get('label')?.hasError(validation.type) && (aswEditMultiselectForm.get('label')?.dirty || aswEditMultiselectForm.get('label')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </div>\r\n                                </div>\r\n                            </ng-container>\r\n                            <ng-template #aswEditor>\r\n                                <asw-editor autofocus=\"true\" id=\"asw-editor\" formControlName=\"label\" [config]=\"constants.aswEditorConfig\"></asw-editor>\r\n                                <ng-container *ngFor=\"let validation of constants.accountValidationMessages.label\" class=\"invalid-feedback\">\r\n                                    <div *ngIf=\"aswEditMultiselectForm.get('label')?.hasError(validation.type) && (aswEditMultiselectForm.get('label')?.dirty || aswEditMultiselectForm.get('label')?.touched)\">\r\n                                        {{validation.message | aswTranslate}}\r\n                                    </div>\r\n                                </ng-container>\r\n                            </ng-template>\r\n                        </div>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('uniqueId')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label asw-invalid-label {{(aswEditMultiselectForm.get('id')?.invalid && (aswEditMultiselectForm.get('id')?.dirty || aswEditMultiselectForm.get('id')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.UniqueId' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"id\"\r\n                                        class=\"asw-input-control\"\r\n                                        [class.asw-is-invalid]=\"(aswEditMultiselectForm.get('id')?.invalid && (aswEditMultiselectForm.get('id')?.dirty || aswEditMultiselectForm.get('id')?.touched))\"\r\n                                        matTooltip=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        formControlName=\"id\" required>\r\n                                    <div *ngFor=\"let validation of constants.accountValidationMessages.id\" class=\"invalid-feedback\">\r\n                                        <ng-container *ngIf=\"aswEditMultiselectForm.get('id')?.hasError(validation.type) && (aswEditMultiselectForm.get('id')?.dirty || aswEditMultiselectForm.get('id')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label\">{{'FormControl.CustomCSSClass' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"customClass\"\r\n                                        class=\"asw-input-control\"\r\n                                        matTooltip=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        formControlName=\"customClass\">\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"asw-col-md-12\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <label class=\"asw-input-label\">{{'FormControl.Tooltip' | aswTranslate}}</label>\r\n                                <input type=\"text\"\r\n                                    class=\"asw-input-control\"\r\n                                    matTooltip=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    formControlName=\"tooltip\">\r\n                            </div>\r\n                        </div>\r\n                    </ng-template>\r\n                    <div class=\"asw-col-md-12\">\r\n                        <table class=\"asw-table asw-table-sm asw-table-bordered\">\r\n                            <thead>\r\n                                <tr>\r\n                                    <th></th>\r\n                                    <th>{{'FormControl.Key' | aswTranslate}}</th>\r\n                                    <th>{{'FormControl.Value' | aswTranslate}}</th>\r\n                                    <th>\r\n                                        {{'FormControl.hideControl' | aswTranslate}}\r\n                                        <span [innerHTML]=\"icons.info | aswSafeHtml\" matTooltip=\"{{'FormControl.hideControlInfo' | aswTranslate}}\"></span>\r\n                                    </th>\r\n                                    <th></th>\r\n                                </tr>\r\n                            </thead>\r\n                            <tbody>\r\n                                <ng-container formArrayName=\"options\">\r\n                                    <tr *ngFor=\"let option of options.controls; let index = index; let last=last;\" \r\n                                    [formGroupName]=\"index\">\r\n                                        <td class=\"asw-text-center\">\r\n                                            <mat-checkbox color=\"primary\" formControlName=\"isChecked\"></mat-checkbox>\r\n                                        </td>\r\n                                        <td>\r\n                                            <input type=\"text\"\r\n                                                placeholder=\"{{'FormControl.OptionKey' | aswTranslate}} {{index+1}}\"\r\n                                                class=\"asw-input-control\"\r\n                                                formControlName=\"key\"\r\n                                                matTooltip=\"{{'FormControl.OptionKey' | aswTranslate}} {{index+1}}\"\r\n                                                minlength=\"1\"\r\n                                                maxlength=\"50\"\r\n                                                (keyup)=\"onKey($event, index)\"\r\n                                                pattern=\"^[a-zA-Z0-9_\\-]{1,50}$\"\r\n                                                [class.asw-is-invalid]=\"options.controls[index].get('key')?.invalid && (options.controls[index].get('key')?.dirty || options.controls[index].get('key')?.touched)\"\r\n                                                required>\r\n                                            <ng-container *ngFor=\"let validation of constants.accountValidationMessages.key\">\r\n                                                <mat-error *ngIf=\"options.controls[index].get('key')?.hasError(validation.type) && (options.controls[index].get('key')?.dirty || options.controls[index].get('key')?.touched || options.controls[index].get('key')?.errors?.unique)\">\r\n                                                    {{validation.message | aswTranslate}}\r\n                                                </mat-error>\r\n                                            </ng-container>\r\n                                        </td>\r\n                                        <td>\r\n                                            <input type=\"text\"\r\n                                                placeholder=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                formControlName=\"value\"\r\n                                                class=\"asw-input-control\"\r\n                                                matTooltip=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                minlength=\"1\"\r\n                                                maxlength=\"999\"\r\n                                                [class.asw-is-invalid]=\"options.controls[index].get('value')?.invalid && (options.controls[index].get('value')?.dirty || options.controls[index].get('value')?.touched)\"\r\n                                                required>\r\n                                            <ng-container *ngFor=\"let validation of constants.accountValidationMessages.value\">\r\n                                                <mat-error *ngIf=\"options.controls[index].get('value')?.hasError(validation.type) && (options.controls[index].get('value')?.dirty || options.controls[index].get('value')?.touched)\">\r\n                                                    {{validation.message | aswTranslate}}\r\n                                                </mat-error>\r\n                                            </ng-container>\r\n                                        </td>\r\n                                        <td>\r\n                                            <!-- <input class=\"asw-input-control\" formControlName=\"hideControl\" [matAutocomplete]=\"headerKey\">\r\n                                            <mat-autocomplete #headerKey=\"matAutocomplete\">\r\n                                                @for(control of filteredControlKeys[index] | async; track control) {\r\n                                                    <mat-option [value]=\"control\">\r\n                                                        {{ control.label }}\r\n                                                    </mat-option>\r\n                                                }\r\n                                            </mat-autocomplete> -->\r\n                                            <select formControlName=\"hideControl\"\r\n                                                (change)=\"onControlChange($event, option)\"\r\n                                                matTooltip=\"{{'FormControl.hideControl' | aswTranslate}} {{index+1}}\" \r\n                                                class=\"asw-select\">\r\n                                                <option *ngFor=\"let control of data.allControls\" [value]=\"control.label\">\r\n                                                    {{control.label}}\r\n                                                </option>\r\n                                            </select>\r\n                                            <!-- <mat-form-field appearance=\"outline\">\r\n                                                <mat-select formControlName=\"hideControl\" multiple>\r\n                                                  @for (control of data.allControls; track control) {\r\n                                                    <mat-option [value]=\"control\">{{control.label}}</mat-option>\r\n                                                  }\r\n                                                </mat-select>\r\n                                            </mat-form-field> -->\r\n                                            <!-- <input type=\"text\"\r\n                                                placeholder=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                formControlName=\"value\"\r\n                                                class=\"asw-input-control\"\r\n                                                matTooltip=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                minlength=\"1\"\r\n                                                maxlength=\"999\"\r\n                                                [class.asw-is-invalid]=\"options.controls[index].get('value')?.invalid && (options.controls[index].get('value')?.dirty || options.controls[index].get('value')?.touched)\"\r\n                                                > -->\r\n                                        </td>\r\n                                        <td class=\"asw-text-center\">                                                \r\n                                            <button mat-icon-button *ngIf=\"index != 0\"\r\n                                                    type=\"button\" \r\n                                                    matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n                                                    [matTooltipPosition]=\"'below'\" \r\n                                                    (click)=\"removeOption(index)\">\r\n                                                <span [innerHTML]=\"icons.delete2 | aswSafeHtml\"></span>\r\n                                            </button>\r\n                                        </td>\r\n                                    </tr>\r\n                                </ng-container>\r\n                                <tr>\r\n                                    <td colspan=\"4\">\r\n                                        <button class=\"asw-button asw-button-sm asw-button-primary\"\r\n                                                type=\"button\" \r\n                                                matTooltip=\"{{'FormControl.Add' | aswTranslate}}\" \r\n                                                [matTooltipPosition]=\"'below'\"\r\n                                                (click)=\"addNewOption()\">\r\n                                            <span class=\"asw-icon asw-me-1\" [innerHTML]=\"icons.add | aswSafeHtml\"></span>\r\n                                            {{'FormControl.AddOption' | aswTranslate}}\r\n                                        </button>\r\n                                    </td>\r\n                                </tr>\r\n                            </tbody>\r\n                        </table>\r\n                    </div>\r\n                    <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap1\">\r\n                        <div class=\"asw-col-md-3\">\r\n                            <mat-slide-toggle color=\"primary\"\r\n                                    #isActive\r\n                                    formControlName=\"isRequired\"\r\n                                    (change)=\"onStatusChange($event)\">\r\n                                    {{(status ? 'FormControl.Required' : 'FormControl.NotRequired') | aswTranslate}}\r\n                            </mat-slide-toggle>\r\n                        </div>\r\n                        <div class=\"asw-col-md-3\">\r\n                            <mat-slide-toggle color=\"primary\"\r\n                                    #isDisable\r\n                                    formControlName=\"isDisabled\">\r\n                                    {{'FormControl.Readonly' | aswTranslate}}\r\n                            </mat-slide-toggle>\r\n                        </div>\r\n                    </ng-container>\r\n                    <ng-template #bootstrap1>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <div class=\"asw-form-check asw-form-switch\">\r\n                                    <input class=\"asw-form-check-input\" \r\n                                        type=\"checkbox\" \r\n                                        #isActive\r\n                                        id=\"isActive\" \r\n                                        formControlName=\"isRequired\"\r\n                                        (change)=\"onStatusChange($event)\">\r\n                                    <label class=\"asw-form-check-label\" for=\"isActive\">\r\n                                        {{(status ? 'FormControl.Required' : 'FormControl.NotRequired') | aswTranslate}}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <div class=\"asw-form-check asw-form-switch\">\r\n                                    <input class=\"asw-form-check-input\" \r\n                                        type=\"checkbox\"\r\n                                        id=\"isDisable\" \r\n                                        #isDisable\r\n                                        formControlName=\"isDisabled\"\r\n                                        (change)=\"onStatusChange($event)\">\r\n                                    <label class=\"asw-form-check-label\" for=\"isDisable\">\r\n                                        {{'FormControl.Readonly' | aswTranslate}}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </ng-template>\r\n                </div>\r\n            </mat-tab>\r\n            <mat-tab label=\"{{'FormControl.API' | aswTranslate}}\">\r\n                <asw-api-communicator (apiResponse)=\"getApiData($event)\" [CSSFramework]=\"data.CSSFramework\"></asw-api-communicator>\r\n            </mat-tab>\r\n        </mat-tab-group>\r\n    </div>\r\n    <div 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>\r\n            {{'FormControl.Yes' | aswTranslate}}\r\n        </button>\r\n    </div>\r\n</form>","/**\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 { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatRadioChange } from '@angular/material/radio';\nimport { Constants, Icons } from '@asoftwareworld/form-builder-pro/common';\nimport { Observable } from 'rxjs';\n\n@Component({\n    selector: 'asw-single-select-dialog',\n    templateUrl: './single-select-dialog.html'\n})\nexport class AswSingleSelectDialog implements OnInit {\n    constants: any = Constants;\n    aswEditSingleSelectForm: FormGroup;\n    status!: boolean;\n    icons = Icons;\n    control: any;\n    labelType = 'label';\n    filteredControlKeys: Observable<string[]>[] = [];\n\n    constructor(\n        private formBuilder: FormBuilder,\n        public dialogRef: MatDialogRef<AswSingleSelectDialog>,\n        @Inject(MAT_DIALOG_DATA) public data: any\n    ) {\n        this.aswEditSingleSelectForm = this.formBuilder.group({\n            id: ['', [Validators.required]],\n            tooltip: [''],\n            label: ['', [Validators.required, Validators.minLength(2)]],\n            style: [''],\n            customClass: [],\n            options: this.formBuilder.array([this.createOption()]),\n            isRequired: [false],\n            isDisabled: [false],\n            labelType: ['label'],\n            apiUrl: [''],\n            body: [],\n            method: [],\n            headers: []\n        });\n    }\n\n    ngOnInit(): void {\n        this.control = this.data.control;\n        this.setValue(this.control);\n    }\n\n    get options(): FormArray {\n        return this.aswEditSingleSelectForm.get('options') as FormArray;\n    }\n\n    createOption(): FormGroup {\n        return this.formBuilder.group({\n            key: ['', [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],\n            value: ['', [Validators.required, Validators.minLength(1), Validators.maxLength(999)]],\n            isChecked: [false],\n            hideControl: []\n        });\n    }\n\n    addNewOption(): void {\n        this.options.push(this.createOption());\n    }\n\n    onNoClick(): void {\n        this.dialogRef.close();\n    }\n\n    removeOption(index: number): void {\n        this.options.removeAt(index);\n    }\n\n    onLabelTypeChange(item: any): void {\n        if (item.value) {\n            this.labelType = item.value;\n        } else {\n            this.labelType = item.target.value;\n        }\n    }\n\n    onSubmit(): void {\n        if (this.aswEditSingleSelectForm.invalid) {\n            return;\n        }\n        this.aswEditSingleSelectForm.value.options.forEach((element: any, index: number) => {\n            if (typeof element.hideControl === 'string') {\n                element.hideControl = this.control.options[index].hideControl;\n            }\n            if (element.isChecked) {\n                this.aswEditSingleSelectForm.value.value = element.key;\n            }\n        });\n        this.aswEditSingleSelectForm.value.controlType = this.control.controlType;\n        this.aswEditSingleSelectForm.value.guid = this.control.guid;\n        this.dialogRef.close(this.aswEditSingleSelectForm.value);\n    }\n\n    setValue(control: any): void {\n        this.aswEditSingleSelectForm.patchValue({\n            id: control.id,\n            tooltip: control.tooltip,\n            label: control.label,\n            style: control.style,\n            value: control.value ?? '',\n            customClass: control.customClass ?? '',\n            isRequired: control.isRequired,\n            isDisabled: control.isDisabled,\n            labelType: control.labelType ?? '',\n            apiUrl: control.apiUrl ?? '',\n            method: control.method ?? '',\n            headers: control.headers ?? '',\n            body: control.body ?? {}\n        });\n        this.labelType = control.labelType ? control.labelType : 'label';\n        // Populate options array\n        const optionsArray = this.aswEditSingleSelectForm.get('options') as FormArray;\n        optionsArray.clear(); // Clear existing options\n\n        control.options.forEach((option) => {\n            optionsArray.push(\n                this.formBuilder.group({\n                    key: [option.key, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],\n                    value: [option.value, [Validators.required, Validators.minLength(1), Validators.maxLength(999)]],\n                    isChecked: [option.isChecked || false],\n                    hideControl: [option.hideControl ? option.hideControl.label : option.hideControl || []]\n                })\n            );\n        });\n        // const optionFormGroup = control.options.map((option: any) => this.formBuilder.group(option));\n        // const optionFormArray = this.formBuilder.array(optionFormGroup);\n        // this.aswEditSingleSelectForm.setControl('options', optionFormArray);\n    }\n\n    onStatusChange(event: any): void {\n        this.status = event.checked ? true : false;\n        if (event.checked === undefined) {\n            this.status = event.target.checked ? true : false;\n        }\n    }\n\n    onKey(event: any, index: number): void {\n        let isError = false;\n        this.options.controls.filter((element, elementIndex) => {\n            if (element.value.key === event.target.value && index !== elementIndex) {\n                isError = true;\n            }\n        });\n        if (isError) {\n            this.options.controls[index].get('key')?.setErrors({ unique: true });\n        }\n    }\n\n    radioChange(event: MatRadioChange): void {\n        this.options.controls.filter((element) => {\n            element.value.isChecked = element.value.key === event.value ? true : false;\n        });\n        const optionFormGroup = this.options.controls.map((option: any) => this.formBuilder.group(option.value));\n        const optionFormArray = this.formBuilder.array(optionFormGroup);\n        this.aswEditSingleSelectForm.setControl('options', optionFormArray);\n    }\n\n    getApiData(data: any): void {\n        this.control.body = data.body;\n        this.control.headers = data.headers;\n        this.control.method = data.method;\n        this.control.apiUrl = data.apiUrl;\n        if (data.responseData?.value) {\n            this.control.options = data.responseData.value;\n            this.setValue(this.control);\n        } else {\n            this.control.options = data.responseData;\n            this.setValue(this.control);\n        }\n    }\n\n    onControlChange(event: any, selectControl: any): void {\n        this.data.allControls.forEach((control: any) => {\n            if (event.target.value === control.label) {\n                selectControl.value.hideControl = control;\n            }\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.controlType != 'radio' ? control.label : 'Radio') | 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<form [formGroup]=\"aswEditSingleSelectForm\" (ngSubmit)=\"onSubmit()\">\r\n    <div mat-dialog-content class=\"mat-typography\">\r\n        <mat-tab-group dynamicHeight mat-stretch-tabs=\"false\">\r\n            <mat-tab label=\"{{'FormControl.Properties' | aswTranslate}}\">\r\n                <div class=\"asw-row asw-px-2 asw-py-3\">                    \r\n                    <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap\">\r\n                        <ng-container *ngIf=\"control.labelType !== undefined\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.LabelType' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"labelType\" matTooltip=\"{{'FormControl.SelectLabelType' | aswTranslate}}\" \r\n                                        (selectionChange)=\"onLabelTypeChange($event)\">\r\n                                        <mat-option value=\"label\">Simple Label</mat-option>\r\n                                        <mat-option value=\"text-editor\">Text Editor</mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"asw-col-md-12 {{control.controlType == 'radio' ? 'asw-mb-2' : ''}}\">\r\n                            <ng-container *ngIf=\"labelType === 'label'; else aswEditor\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Label' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        placeholder=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                        formControlName=\"label\" required>\r\n                                    <mat-icon *ngIf=\"aswEditSingleSelectForm.get('label')?.invalid && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched)\"\r\n                                        class=\"asw-error\" matSuffix>error</mat-icon>\r\n                                    <mat-error *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n                                        <ng-container *ngIf=\"aswEditSingleSelectForm.get('label')?.hasError(validation.type) && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </mat-error>\r\n                                </mat-form-field>\r\n                            </ng-container>\r\n                            <ng-template #aswEditor>\r\n                                <asw-editor autofocus=\"true\" id=\"asw-editor\" formControlName=\"label\" [config]=\"constants.aswEditorConfig\"></asw-editor>\r\n                                <ng-container *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n                                    <mat-error *ngIf=\"aswEditSingleSelectForm.get('label')?.hasError(validation.type) && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched)\">\r\n                                        {{validation.message | aswTranslate}}\r\n                                    </mat-error>\r\n                                </ng-container>\r\n                            </ng-template>\r\n                        </div>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('uniqueId')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>'{{'FormControl.UniqueId' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"id\"\r\n                                        placeholder=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        formControlName=\"id\" required>\r\n                                    <mat-icon *ngIf=\"aswEditSingleSelectForm.get('id')?.invalid && (aswEditSingleSelectForm.get('id')?.dirty || aswEditSingleSelectForm.get('id')?.touched)\"\r\n                                        class=\"asw-error\" matSuffix>error</mat-icon>\r\n                                    <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                        <ng-container *ngIf=\"aswEditSingleSelectForm.get('id')?.hasError(validation.type) && (aswEditSingleSelectForm.get('id')?.dirty || aswEditSingleSelectForm.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                        </ng-container>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.CustomCSSClass' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"customClass\"\r\n                                        placeholder=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        formControlName=\"customClass\">\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"{{control.controlType != 'radio' ? 'asw-col-md-6' : 'asw-col-md-12'}}\">\r\n                            <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                <mat-label>{{'FormControl.Tooltip' | aswTranslate}}</mat-label>\r\n                                <input matInput type=\"text\"\r\n                                    placeholder=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    matTooltip=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    formControlName=\"tooltip\">\r\n                            </mat-form-field>\r\n                        </div>\r\n                        <div class=\"{{control.controlType != 'radio' ? 'asw-col-md-6' : 'asw-col-md-4'}}\" *ngIf=\"control.controlType != 'radio'\">\r\n                            <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                <mat-label>{{'FormControl.Style' | aswTranslate}}</mat-label>\r\n                                <mat-select formControlName=\"style\" matTooltip=\"{{'FormControl.SelectStyle' | aswTranslate}}\">\r\n                                    <mat-option value=\"fill\">Fill</mat-option>\r\n                                    <mat-option value=\"outline\">Outline</mat-option>\r\n                                </mat-select>\r\n                            </mat-form-field>\r\n                        </div>\r\n                    </ng-container>\r\n                    <ng-template #bootstrap>\r\n                        <ng-container *ngIf=\"control.labelType !== undefined\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <label class=\"asw-input-label\">{{'FormControl.LabelType' | aswTranslate}}</label>\r\n                                <select formControlName=\"labelType\" class=\"asw-select\" matTooltip=\"{{'FormControl.SelectLabelType' | aswTranslate}}\"\r\n                                    (change)=\"onLabelTypeChange($event)\">\r\n                                    <option value=\"label\">Simple Label</option>\r\n                                    <option value=\"text-editor\">Text Editor</option>\r\n                                </select>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"asw-col-md-12 {{control.controlType == 'radio' ? 'asw-mb-2' : ''}}\">\r\n                            <ng-container *ngIf=\"labelType === 'label'; else aswEditor\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label asw-invalid-label {{(aswEditSingleSelectForm.get('label')?.invalid && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.Label' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        class=\"asw-input-control\"\r\n                                        [class.asw-is-invalid]=\"(aswEditSingleSelectForm.get('label')?.invalid && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched))\"\r\n                                        matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                        formControlName=\"label\" required>\r\n                                    <div *ngFor=\"let validation of constants.accountValidationMessages.label\" class=\"invalid-feedback\">\r\n                                        <ng-container *ngIf=\"aswEditSingleSelectForm.get('label')?.hasError(validation.type) && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </div>\r\n                                </div>\r\n                            </ng-container>\r\n                            <ng-template #aswEditor>\r\n                                <asw-editor autofocus=\"true\" id=\"asw-editor\" formControlName=\"label\" [config]=\"constants.aswEditorConfig\"></asw-editor>\r\n                                <ng-container *ngFor=\"let validation of constants.accountValidationMessages.label\" class=\"invalid-feedback\">\r\n                                    <div *ngIf=\"aswEditSingleSelectForm.get('label')?.hasError(validation.type) && (aswEditSingleSelectForm.get('label')?.dirty || aswEditSingleSelectForm.get('label')?.touched)\">\r\n                                        {{validation.message | aswTranslate}}\r\n                                    </div>\r\n                                </ng-container>\r\n                            </ng-template>\r\n                        </div>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('uniqueId')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label asw-invalid-label {{(aswEditSingleSelectForm.get('id')?.invalid && (aswEditSingleSelectForm.get('id')?.dirty || aswEditSingleSelectForm.get('id')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.UniqueId' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"id\"\r\n                                        class=\"asw-input-control\"\r\n                                        [class.asw-is-invalid]=\"(aswEditSingleSelectForm.get('id')?.invalid && (aswEditSingleSelectForm.get('id')?.dirty || aswEditSingleSelectForm.get('id')?.touched))\"\r\n                                        matTooltip=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        formControlName=\"id\" required>\r\n                                    <div *ngFor=\"let validation of constants.accountValidationMessages.id\" class=\"invalid-feedback\">\r\n                                        <ng-container *ngIf=\"aswEditSingleSelectForm.get('id')?.hasError(validation.type) && (aswEditSingleSelectForm.get('id')?.dirty || aswEditSingleSelectForm.get('id')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label\">{{'FormControl.CustomCSSClass' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"customClass\"\r\n                                        class=\"asw-input-control\"\r\n                                        matTooltip=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        formControlName=\"customClass\">\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>                        \r\n                        <div class=\"asw-col-md-12\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <label class=\"asw-input-label\">{{'FormControl.Tooltip' | aswTranslate}}</label>\r\n                                <input type=\"text\"\r\n                                    class=\"asw-input-control\"\r\n                                    matTooltip=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    formControlName=\"tooltip\">\r\n                            </div>\r\n                        </div>\r\n                    </ng-template>\r\n                    <div class=\"asw-col-md-12\">\r\n                        <table class=\"asw-table asw-table-sm asw-table-bordered\">\r\n                            <thead>\r\n                                <tr>\r\n                                    <th></th>\r\n                                    <th>{{'FormControl.Key' | aswTranslate}}</th>\r\n                                    <th>{{'FormControl.Value' | aswTranslate}}</th>\r\n                                    <th>\r\n                                        {{'FormControl.hideControl' | aswTranslate}}\r\n                                        <span [innerHTML]=\"icons.info | aswSafeHtml\" matTooltip=\"{{'FormControl.hideControlInfo' | aswTranslate}}\"></span>\r\n                                    </th>\r\n                                    <th></th>\r\n                                </tr>\r\n                            </thead>\r\n                            <tbody>\r\n                                <ng-container formArrayName=\"options\">\r\n                                    <tr *ngFor=\"let option of options.controls; let index = index; let last=last;\" \r\n                                    [formGroupName]=\"index\">\r\n                                        <td class=\"asw-text-center\">\r\n                                            <mat-radio-group formControlName=\"key\" color=\"primary\">\r\n                                                <mat-radio-button  \r\n                                                    [value]=\"option.value.key\"\r\n                                                    (change)=\"radioChange($event)\"\r\n                                                    [checked]=\"option.value.isChecked\">\r\n                                                </mat-radio-button>\r\n                                            </mat-radio-group>\r\n                                        </td>\r\n                                        <td>\r\n                                            <input type=\"text\"\r\n                                                placeholder=\"{{'FormControl.OptionKey' | aswTranslate}} {{index+1}}\"\r\n                                                class=\"asw-input-control\"\r\n                                                formControlName=\"key\"\r\n                                                matTooltip=\"{{'FormControl.OptionKey' | aswTranslate}} {{index+1}}\"\r\n                                                minlength=\"1\"\r\n                                                maxlength=\"50\"\r\n                                                (keyup)=\"onKey($event, index)\"\r\n                                                pattern=\"^[a-zA-Z0-9_\\-]{1,50}$\"\r\n                                                [class.asw-is-invalid]=\"options.controls[index].get('key')?.invalid && (options.controls[index].get('key')?.dirty || options.controls[index].get('key')?.touched)\"\r\n                                                required>\r\n                                            <ng-container *ngFor=\"let validation of constants.accountValidationMessages.key\">\r\n                                                <mat-error *ngIf=\"options.controls[index].get('key')?.hasError(validation.type) && (options.controls[index].get('key')?.dirty || options.controls[index].get('key')?.touched || options.controls[index].get('key')?.errors?.unique)\">\r\n                                                    {{validation.message | aswTranslate}}\r\n                                                </mat-error>\r\n                                            </ng-container>\r\n                                        </td>\r\n                                        <td>\r\n                                            <input type=\"text\"\r\n                                                placeholder=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                formControlName=\"value\"\r\n                                                class=\"asw-input-control\"\r\n                                                matTooltip=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                minlength=\"1\"\r\n                                                maxlength=\"999\"\r\n                                                [class.asw-is-invalid]=\"options.controls[index].get('value')?.invalid && (options.controls[index].get('value')?.dirty || options.controls[index].get('value')?.touched)\"\r\n                                                required>\r\n                                            <ng-container *ngFor=\"let validation of constants.accountValidationMessages.value\">\r\n                                                <mat-error *ngIf=\"options.controls[index].get('value')?.hasError(validation.type) && (options.controls[index].get('value')?.dirty || options.controls[index].get('value')?.touched)\">\r\n                                                    {{validation.message | aswTranslate}}\r\n                                                </mat-error>\r\n                                            </ng-container>\r\n                                        </td>\r\n                                        <td>\r\n                                            <!-- <input class=\"asw-input-control\" formControlName=\"hideControl\" [matAutocomplete]=\"headerKey\">\r\n                                            <mat-autocomplete #headerKey=\"matAutocomplete\">\r\n                                                @for(control of filteredControlKeys[index] | async; track control) {\r\n                                                    <mat-option [value]=\"control\">\r\n                                                        {{ control.label }}\r\n                                                    </mat-option>\r\n                                                }\r\n                                            </mat-autocomplete> -->\r\n                                            <select formControlName=\"hideControl\"\r\n                                                (change)=\"onControlChange($event, option)\"\r\n                                                matTooltip=\"{{'FormControl.hideControl' | aswTranslate}} {{index+1}}\" \r\n                                                class=\"asw-select\">\r\n                                                <option *ngFor=\"let control of data.allControls\" [value]=\"control.label\">\r\n                                                    {{control.label}}\r\n                                                </option>\r\n                                            </select>\r\n                                            <!-- <mat-form-field appearance=\"outline\">\r\n                                                <mat-select formControlName=\"hideControl\" multiple>\r\n                                                  @for (control of data.allControls; track control) {\r\n                                                    <mat-option [value]=\"control\">{{control.label}}</mat-option>\r\n                                                  }\r\n                                                </mat-select>\r\n                                            </mat-form-field> -->\r\n                                            <!-- <input type=\"text\"\r\n                                                placeholder=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                formControlName=\"value\"\r\n                                                class=\"asw-input-control\"\r\n                                                matTooltip=\"{{'FormControl.OptionValue' | aswTranslate}} {{index+1}}\"\r\n                                                minlength=\"1\"\r\n                                                maxlength=\"999\"\r\n                                                [class.asw-is-invalid]=\"options.controls[index].get('value')?.invalid && (options.controls[index].get('value')?.dirty || options.controls[index].get('value')?.touched)\"\r\n                                                > -->\r\n                                        </td>\r\n                                        <td class=\"asw-text-center\">                                                \r\n                                            <button mat-icon-button *ngIf=\"index != 0\"\r\n                                                type=\"button\" \r\n                                                matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n                                                [matTooltipPosition]=\"'below'\" \r\n                                                (click)=\"removeOption(index)\">\r\n                                                <span [innerHTML]=\"icons.delete2 | aswSafeHtml\"></span>\r\n                                            </button>\r\n                                        </td>\r\n                                    </tr>\r\n                                </ng-container>\r\n                                <tr>\r\n                                    <td colspan=\"4\">\r\n                                        <button class=\"asw-button asw-button-primary asw-button-sm\"\r\n                                            type=\"button\" \r\n                                            matTooltip=\"{{'FormControl.Add' | aswTranslate}}\" \r\n                                            [matTooltipPosition]=\"'below'\"\r\n                                            (click)=\"addNewOption()\">\r\n                                            <span class=\"asw-icon asw-me-1\" [innerHTML]=\"icons.add | aswSafeHtml\"></span>\r\n                                            {{'FormControl.AddOption' | aswTranslate}}\r\n                                        </button>\r\n                                    </td>\r\n                                </tr>\r\n                            </tbody>\r\n                        </table>\r\n                    </div>\r\n                    <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap1\">\r\n                        <div class=\"asw-col-md-3\">\r\n                            <mat-slide-toggle color=\"primary\"\r\n                                    #isActive\r\n                                    formControlName=\"isRequired\"\r\n                                    (change)=\"onStatusChange($event)\">\r\n                                    {{(status ? 'FormControl.Required' : 'FormControl.NotRequired') | aswTranslate}}\r\n                            </mat-slide-toggle>\r\n                        </div>\r\n                        <div class=\"asw-col-md-3\">\r\n                            <mat-slide-toggle color=\"primary\"\r\n                                    #isDisable\r\n                                    formControlName=\"isDisabled\">\r\n                                    {{'FormControl.Readonly' | aswTranslate}}\r\n                            </mat-slide-toggle>\r\n                        </div>\r\n                    </ng-container>\r\n                    <ng-template #bootstrap1>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <div class=\"asw-form-check asw-form-switch\">\r\n                                    <input class=\"asw-form-check-input\" \r\n                                        type=\"checkbox\" \r\n                                        #isActive\r\n                                        id=\"isActive\" \r\n                                        formControlName=\"isRequired\"\r\n                                        (change)=\"onStatusChange($event)\">\r\n                                    <label class=\"asw-form-check-label\" for=\"isActive\">\r\n                                        {{(status ? 'FormControl.Required' : 'FormControl.NotRequired') | aswTranslate}}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <div class=\"asw-form-check asw-form-switch\">\r\n                                    <input class=\"asw-form-check-input\" \r\n                                        type=\"checkbox\"\r\n                                        id=\"isDisable\" \r\n                                        #isDisable\r\n                                        formControlName=\"isDisabled\"\r\n                                        (change)=\"onStatusChange($event)\">\r\n                                    <label class=\"asw-form-check-label\" for=\"isDisable\">\r\n                                        {{'FormControl.Readonly' | aswTranslate}}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </ng-template>                    \r\n                </div>\r\n            </mat-tab>\r\n            <mat-tab label=\"{{'FormControl.API' | aswTranslate}}\">\r\n                <asw-api-communicator (apiResponse)=\"getApiData($event)\" [CSSFramework]=\"data.CSSFramework\"></asw-api-communicator>\r\n            </mat-tab>\r\n        </mat-tab-group>\r\n    </div>\r\n    <div mat-dialog-actions align=\"end\">\r\n        <button type=\"button\"\r\n                class=\"asw-button asw-button-danger asw-mb-1 asw-me-2\"\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>\r\n            {{'FormControl.Yes' | aswTranslate}}\r\n        </button>\r\n    </div>\r\n</form>","/**\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 { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ControlOption } from '@asoftwareworld/form-builder-pro/api';\nimport { Constants, Icons } from '@asoftwareworld/form-builder-pro/common';\nimport { ObjectUtils } from '@asoftwareworld/form-builder-pro/utils';\nimport { map, Observable, startWith } from 'rxjs';\n\n@Component({\n    selector: 'asw-text-dialog',\n    templateUrl: './text-dialog.html'\n})\nexport class AswTextDialog implements OnInit {\n    decimals = 100;\n    constants: any = Constants;\n    objectUtils = ObjectUtils;\n    icons = Icons;\n    aswEditTextForm!: FormGroup;\n    status!: boolean;\n    control: any;\n    filteredPatterns!: Observable<ControlOption[]> | undefined;\n    readonly separatorKeysCodes = [ENTER, COMMA] as const;\n    constructor(\n        private formBuilder: FormBuilder,\n        public dialogRef: MatDialogRef<AswTextDialog>,\n        @Inject(MAT_DIALOG_DATA) public data: any\n    ) {}\n\n    ngOnInit(): void {\n        this.control = this.data.control;\n        this.validateFormBuilder();\n        this.filteredPatterns = this.aswEditTextForm.get('pattern')?.valueChanges.pipe(\n            startWith(''),\n            map((value) => this._filter(value || ''))\n        );\n        this.editProperty(this.control);\n    }\n\n    private _filter(value: string): ControlOption[] {\n        const filterValue = value.toLowerCase();\n        return this.data.patterns.filter((option: ControlOption) => option.value.toLowerCase().includes(filterValue));\n    }\n\n    private validateFormBuilder(): void {\n        this.aswEditTextForm = this.formBuilder.group({\n            id: ['', [Validators.required]],\n            tooltip: ['', []],\n            label: ['', [Validators.required, Validators.minLength(2)]],\n            value: ['', []],\n            style: ['', [Validators.required]],\n            pattern: [''],\n            customClass: [''],\n            customErrorMsg: [''],\n            maxlength: [''],\n            minlength: [''],\n            isRequired: [false],\n            isDisabled: [false],\n            currencySymbol: ['']\n        });\n    }\n\n    editProperty(control: any): void {\n        this.aswEditTextForm.setValue({\n            id: control.id,\n            tooltip: control.tooltip,\n            label: control.label,\n            pattern: control.pattern ?? '',\n            customClass: control.customClass ?? '',\n            customErrorMsg: control.customErrorMsg ?? '',\n            value: control.value ?? '',\n            maxlength: control.maxlength ?? '',\n            minlength: control.minlength ?? '',\n            style: control.style,\n            isRequired: control.isRequired,\n            isDisabled: control.isDisabled,\n            currencySymbol: control.currencySymbol ?? ''\n        });\n    }\n\n    onNoClick(): void {\n        this.dialogRef.close();\n    }\n\n    onSubmit(): void {\n        if (this.aswEditTextForm.invalid) {\n            return;\n        }\n        this.aswEditTextForm.value.controlType = this.control.controlType;\n        this.aswEditTextForm.value.guid = this.control.guid;\n        this.dialogRef.close(this.aswEditTextForm.value);\n    }\n\n    onStatusChange(event: any): void {\n        this.status = event.checked ? true : false;\n        if (event.checked === undefined) {\n            this.status = event.target.checked ? true : false;\n        }\n    }\n\n    getApiData(data: any): void {\n        if (data?.value) {\n            this.aswEditTextForm.patchValue({\n                value: data.value\n            });\n        }\n    }\n\n    addTags(event: MatChipInputEvent): void {\n        const value = (event.value || '').trim();\n\n        // Add our fruit\n        if (value) {\n            this.control.value.push(value);\n        }\n\n        // Clear the input value\n        event?.chipInput?.clear();\n    }\n\n    removeTags(value: string): void {\n        const index = this.control.value.indexOf(value);\n\n        if (index >= 0) {\n            this.control.value.splice(index, 1);\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.label | 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<form [formGroup]=\"aswEditTextForm\" (ngSubmit)=\"onSubmit()\">\r\n    <div mat-dialog-content>\r\n        <mat-tab-group dynamicHeight mat-stretch-tabs=\"false\">\r\n            <mat-tab label=\"{{'FormControl.Properties' | aswTranslate}}\">\r\n                <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap\">\r\n                    <div class=\"asw-row asw-px-2 asw-py-3\">\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('uniqueId')\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.UniqueId' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"id\"\r\n                                        placeholder=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        formControlName=\"id\" required>\r\n                                        <mat-icon *ngIf=\"aswEditTextForm.get('id')?.invalid && (aswEditTextForm.get('id')?.dirty || aswEditTextForm.get('id')?.touched)\"\r\n                                            class=\"asw-error\" matSuffix>error</mat-icon>\r\n                                    <mat-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n                                        <ng-container *ngIf=\"aswEditTextForm.get('id')?.hasError(validation.type) && (aswEditTextForm.get('id')?.dirty || aswEditTextForm.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                        </ng-container>\r\n                        <div class=\"asw-col-md-6\">\r\n                            <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                <mat-label>{{'FormControl.Label' | aswTranslate}}</mat-label>\r\n                                <input matInput type=\"text\"\r\n                                    name=\"label\"\r\n                                    placeholder=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                    matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                    formControlName=\"label\" required>\r\n                                <mat-icon *ngIf=\"aswEditTextForm.get('label')?.invalid && (aswEditTextForm.get('label')?.dirty || aswEditTextForm.get('label')?.touched)\"\r\n                                    class=\"asw-error\" matSuffix>error</mat-icon>\r\n                                <mat-error *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n                                    <ng-container *ngIf=\"aswEditTextForm.get('label')?.hasError(validation.type) && (aswEditTextForm.get('label')?.dirty || aswEditTextForm.get('label')?.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.Tooltip' | aswTranslate}}</mat-label>\r\n                                <input matInput type=\"text\"\r\n                                    name=\"tooltip\"\r\n                                    placeholder=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    matTooltip=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    formControlName=\"tooltip\">\r\n                            </mat-form-field>\r\n                        </div>\r\n                        <ng-container *ngIf=\"control.controlType === 'currency'\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.CurrencySymbol' | aswTranslate}}</mat-label>\r\n                                    <mat-select formControlName=\"currencySymbol\"\r\n                                        placeholder=\"{{'FormControl.CurrencySymbol' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.CurrencySymbol' | aswTranslate}}\">\r\n                                        <mat-option *ngFor=\"let option of constants.currencySymbol\" [value]=\"option.key\">\r\n                                            {{ option.value }}\r\n                                        </mat-option>\r\n                                    </mat-select>\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"{{control.controlType === 'tags' ? 'asw-col-md-12' : control.controlType === 'currency' ? 'asw-col-md-6' : 'asw-col-md-6'}}\">\r\n                            <ng-container *ngIf=\"control.controlType === 'number' || control.controlType === 'currency'\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Value' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\" aswNumbersOnly\r\n                                        name=\"value\"\r\n                                        placeholder=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                        formControlName=\"value\">\r\n                                </mat-form-field>\r\n                            </ng-container>\r\n                            \r\n                            <ng-container *ngIf=\"control.controlType === 'tags'\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Value' | aswTranslate}}</mat-label>\r\n                                    <mat-chip-grid #tagList aria-label=\"Fruit selection\">\r\n                                        <mat-chip-row\r\n                                            *ngFor=\"let v of control.value\"\r\n                                            (removed)=\"removeTags(v)\">\r\n                                            {{v}}\r\n                                            <button matChipRemove>\r\n                                                <mat-icon>cancel</mat-icon>\r\n                                            </button>\r\n                                        </mat-chip-row>\r\n                                        <input\r\n                                            placeholder=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                            name=\"value\"\r\n                                            matTooltip=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                            [matChipInputFor]=\"tagList\"\r\n                                            [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n                                            (matChipInputTokenEnd)=\"addTags($event)\">\r\n                                    </mat-chip-grid>\r\n                                </mat-form-field>\r\n                            </ng-container>\r\n                            <ng-container *ngIf=\"control.controlType !== 'number' && control.controlType !== 'tags' && control.controlType !== 'currency'\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Value' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"value\"\r\n                                        placeholder=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                        formControlName=\"value\">\r\n                                </mat-form-field>\r\n                            </ng-container>\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.Style' | aswTranslate}}</mat-label>\r\n                                <mat-select formControlName=\"style\" matTooltip=\"{{'FormControl.SelectStyle' | aswTranslate}}\">\r\n                                    <mat-option value=\"fill\">Fill</mat-option>\r\n                                    <mat-option value=\"outline\">Outline</mat-option>\r\n                                </mat-select>\r\n                            </mat-form-field>\r\n                        </div>\r\n                        <ng-container *ngIf=\"control.controlType !== 'tags'\">\r\n                            <ng-container *ngIf=\"!data.propertyPersonalization.includes('inputMask') && !data.propertyPersonalization.includes('inputMaskCustomErrorMsg')\">\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                        <mat-label>{{'FormControl.InputMask' | aswTranslate}}</mat-label>\r\n                                        <input type=\"text\"\r\n                                            name=\"pattern\"\r\n                                            [matAutocomplete]=\"inputMaskPattern\"\r\n                                            matInput\r\n                                            formControlName=\"pattern\"\r\n                                            placeholder=\"{{'FormControl.InputMask' | aswTranslate}}\"\r\n                                            matTooltip=\"{{'FormControl.InputMask' | aswTranslate}}\">\r\n                                        <mat-autocomplete autoActiveFirstOption #inputMaskPattern=\"matAutocomplete\">\r\n                                            <mat-option *ngFor=\"let option of filteredPatterns | async\" [value]=\"option.key\">\r\n                                                {{option.value}}\r\n                                            </mat-option>\r\n                                        </mat-autocomplete>\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.InputMaskCustomErrorMsg' | aswTranslate}}</mat-label>\r\n                                        <input matInput type=\"text\"\r\n                                            name=\"customErrorMsg\"\r\n                                            placeholder=\"{{'FormControl.InputMaskCustomErrorMsg' | aswTranslate}}\"\r\n                                            matTooltip=\"{{'FormControl.InputMaskCustomErrorMsg' | aswTranslate}}\"\r\n                                            formControlName=\"customErrorMsg\">\r\n                                    </mat-form-field>\r\n                                </div>\r\n                            </ng-container>\r\n                        </ng-container>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.CustomCSSClass' | aswTranslate}}</mat-label>\r\n                                    <input matInput type=\"text\"\r\n                                        name=\"customClass\"\r\n                                        placeholder=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        matTooltip=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        formControlName=\"customClass\">\r\n                                </mat-form-field>\r\n                            </div>\r\n                        </ng-container>\r\n                        <ng-container *ngIf=\"control.controlType !== 'tags'\">\r\n                            <ng-container *ngIf=\"!data.propertyPersonalization.includes('minLength')\">\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                        <mat-label>{{'FormControl.MinLength' | aswTranslate}}</mat-label>\r\n                                        <input matInput type=\"text\"\r\n                                            name=\"minlength\"\r\n                                            placeholder=\"{{'FormControl.MinLength' | aswTranslate}}\"\r\n                                            matTooltip=\"{{'FormControl.MinLength' | aswTranslate}}\"\r\n                                            maxlength=\"3\"\r\n                                            minlength=\"1\"\r\n                                            pattern=\"^[0-9]*$\"\r\n                                            formControlName=\"minlength\">\r\n                                    </mat-form-field>\r\n                                </div>\r\n                            </ng-container>\r\n                            <ng-container *ngIf=\"!data.propertyPersonalization.includes('maxLength')\">\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                        <mat-label>{{'FormControl.MaxLength' | aswTranslate}}</mat-label>\r\n                                        <input matInput type=\"text\"\r\n                                            name=\"maxlength\"\r\n                                            placeholder=\"{{'FormControl.MaxLength' | aswTranslate}}\"\r\n                                            matTooltip=\"{{'FormControl.MaxLength' | aswTranslate}}\"\r\n                                            formControlName=\"maxlength\">\r\n                                    </mat-form-field>\r\n                                </div>\r\n                            </ng-container>\r\n                        </ng-container>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <mat-slide-toggle color=\"primary\"\r\n                                #isActive\r\n                                formControlName=\"isRequired\"\r\n                                (change)=\"onStatusChange($event)\">\r\n                                {{(status ? 'FormControl.Required' : 'FormControl.NotRequired') | aswTranslate}}\r\n                            </mat-slide-toggle>\r\n                        </div>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <mat-slide-toggle color=\"primary\"\r\n                                    #isDisable\r\n                                    formControlName=\"isDisabled\">\r\n                                    {{'FormControl.Readonly' | aswTranslate}}\r\n                            </mat-slide-toggle>\r\n                        </div>\r\n                    </div>\r\n                </ng-container>\r\n                <ng-template #bootstrap>\r\n                    <div class=\"asw-row asw-px-2 asw-py-3\">\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('uniqueId')\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label asw-invalid-label {{(aswEditTextForm.get('id')?.invalid && (aswEditTextForm.get('id')?.dirty || aswEditTextForm.get('id')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.UniqueId' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"id\"\r\n                                        class=\"asw-input-control\"\r\n                                        matTooltip=\"{{'FormControl.UniqueId' | aswTranslate}}\"\r\n                                        [class.asw-is-invalid]=\"(aswEditTextForm.get('id')?.invalid && (aswEditTextForm.get('id')?.dirty || aswEditTextForm.get('id')?.touched))\"\r\n                                        formControlName=\"id\" required>\r\n                                    <div *ngFor=\"let validation of constants.accountValidationMessages.id\" class=\"invalid-feedback\">\r\n                                        <ng-container *ngIf=\"aswEditTextForm.get('id')?.hasError(validation.type) && (aswEditTextForm.get('id')?.dirty || aswEditTextForm.get('id')?.touched)\">\r\n                                            {{validation.message | aswTranslate}}\r\n                                        </ng-container>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>                        \r\n                        <div class=\"asw-col-md-6\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <label class=\"asw-input-label asw-invalid-label {{(aswEditTextForm.get('label')?.invalid && (aswEditTextForm.get('label')?.dirty || aswEditTextForm.get('label')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.Label' | aswTranslate}}</label>\r\n                                <input type=\"text\"\r\n                                    name=\"label\"\r\n                                    class=\"asw-input-control\"\r\n                                    [class.asw-is-invalid]=\"(aswEditTextForm.get('label')?.invalid && (aswEditTextForm.get('label')?.dirty || aswEditTextForm.get('label')?.touched))\"\r\n                                    matTooltip=\"{{'FormControl.Label' | aswTranslate}}\"\r\n                                    formControlName=\"label\" required>\r\n                                <div *ngFor=\"let validation of constants.accountValidationMessages.label\" class=\"invalid-feedback\">\r\n                                    <ng-container *ngIf=\"aswEditTextForm.get('label')?.hasError(validation.type) && (aswEditTextForm.get('label')?.dirty || aswEditTextForm.get('label')?.touched)\">\r\n                                        {{validation.message | aswTranslate}}\r\n                                    </ng-container>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"asw-col-md-6\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <label class=\"asw-input-label\">{{'FormControl.Tooltip' | aswTranslate}}</label>\r\n                                <input type=\"text\"\r\n                                    name=\"tooltip\"\r\n                                    class=\"asw-input-control\"\r\n                                    matTooltip=\"{{'FormControl.Tooltip' | aswTranslate}}\"\r\n                                    formControlName=\"tooltip\">\r\n                            </div>\r\n                        </div>\r\n                        <ng-container *ngIf=\"control.controlType === 'currency'\">\r\n                            <div class=\"asw-col-md-12\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label\">{{'FormControl.CurrencySymbol' | aswTranslate}}</label>\r\n                                    <select formControlName=\"currencySymbol\"                                        \r\n                                        class=\"asw-select\"\r\n                                        matTooltip=\"{{'FormControl.CurrencySymbol' | aswTranslate}}\">\r\n                                        <option *ngFor=\"let option of constants.currencySymbol\" [value]=\"option.key\">\r\n                                            {{ option.value }}\r\n                                        </option>\r\n                                    </select>\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>\r\n                        <div class=\"{{control.controlType === 'tags' ? 'asw-col-md-12' : control.controlType === 'currency' ? 'asw-col-md-12' : 'asw-col-md-12'}}\">\r\n                            <ng-container *ngIf=\"control.controlType === 'number' || control.controlType === 'currency'\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label\">{{'FormControl.Value' | aswTranslate}}</label>\r\n                                    <input type=\"text\" aswNumbersOnly\r\n                                        name=\"value\"\r\n                                        class=\"asw-input-control\"\r\n                                        matTooltip=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                        formControlName=\"value\">\r\n                                </div>\r\n                            </ng-container>\r\n                            <ng-container *ngIf=\"control.controlType === 'tags'\">\r\n                                <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                                    <mat-label>{{'FormControl.Value' | aswTranslate}}</mat-label>\r\n                                    <mat-chip-grid #tagList aria-label=\"Fruit selection\">\r\n                                        <mat-chip-row\r\n                                            *ngFor=\"let v of control.value\"\r\n                                            (removed)=\"removeTags(v)\">\r\n                                            {{v}}\r\n                                            <button matChipRemove>\r\n                                                <mat-icon>cancel</mat-icon>\r\n                                            </button>\r\n                                        </mat-chip-row>\r\n                                        <input\r\n                                            placeholder=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                            name=\"value\"\r\n                                            matTooltip=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                            [matChipInputFor]=\"tagList\"\r\n                                            [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n                                            (matChipInputTokenEnd)=\"addTags($event)\">\r\n                                    </mat-chip-grid>\r\n                                </mat-form-field>\r\n                            </ng-container>\r\n                            <ng-container *ngIf=\"control.controlType !== 'number' && control.controlType !== 'tags' && control.controlType !== 'currency'\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label\">{{'FormControl.Value' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"value\"\r\n                                        class=\"asw-input-control\"\r\n                                        matTooltip=\"{{'FormControl.Value' | aswTranslate}}\"\r\n                                        formControlName=\"value\">\r\n                                </div>\r\n                            </ng-container>\r\n                        </div>\r\n                        <ng-container *ngIf=\"!data.propertyPersonalization.includes('customCSSClass')\">\r\n                            <div class=\"asw-col-md-6\">\r\n                                <div class=\"asw-mb-3\">\r\n                                    <label class=\"asw-input-label\">{{'FormControl.CustomCSSClass' | aswTranslate}}</label>\r\n                                    <input type=\"text\"\r\n                                        name=\"customClass\"\r\n                                        class=\"asw-input-control\"\r\n                                        matTooltip=\"{{'FormControl.CustomCSSClass' | aswTranslate}}\"\r\n                                        formControlName=\"customClass\">\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>                        \r\n                        <ng-container *ngIf=\"control.controlType !== 'tags'\">\r\n                            <ng-container *ngIf=\"!data.propertyPersonalization.includes('inputMask') && !data.propertyPersonalization.includes('inputMaskCustomErrorMsg')\">\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <div class=\"asw-mb-3\">\r\n                                        <label class=\"asw-input-label\">{{'FormControl.InputMask' | aswTranslate}}</label>\r\n                                        <input type=\"text\"\r\n                                            name=\"pattern\"\r\n                                            [matAutocomplete]=\"inputMaskPattern\"\r\n                                            class=\"asw-input-control\"\r\n                                            formControlName=\"pattern\"\r\n                                            matTooltip=\"{{'FormControl.InputMask' | aswTranslate}}\">\r\n                                        <mat-autocomplete autoActiveFirstOption #inputMaskPattern=\"matAutocomplete\">\r\n                                            <mat-option *ngFor=\"let option of filteredPatterns | async\" [value]=\"option.key\">\r\n                                                {{option.value}}\r\n                                            </mat-option>\r\n                                        </mat-autocomplete>\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <div class=\"asw-mb-3\">\r\n                                        <label class=\"asw-input-label\">{{'FormControl.InputMaskCustomErrorMsg' | aswTranslate}}</label>\r\n                                        <input matInput type=\"text\"\r\n                                            name=\"customErrorMsg\"\r\n                                            class=\"asw-input-control\"\r\n                                            matTooltip=\"{{'FormControl.InputMaskCustomErrorMsg' | aswTranslate}}\"\r\n                                            formControlName=\"customErrorMsg\">\r\n                                    </div>\r\n                                </div>\r\n                            </ng-container>\r\n                        </ng-container>\r\n                        <ng-container *ngIf=\"control.controlType !== 'tags'\">\r\n                            <ng-container *ngIf=\"!data.propertyPersonalization.includes('minLength')\">\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <div class=\"asw-mb-3\">\r\n                                        <label class=\"asw-input-label\">{{'FormControl.MinLength' | aswTranslate}}</label>\r\n                                        <input type=\"text\"\r\n                                            name=\"minlength\"\r\n                                            matTooltip=\"{{'FormControl.MinLength' | aswTranslate}}\"\r\n                                            maxlength=\"3\"\r\n                                            class=\"asw-input-control\"\r\n                                            minlength=\"1\"\r\n                                            pattern=\"^[0-9]*$\"\r\n                                            formControlName=\"minlength\">\r\n                                    </div>\r\n                                </div>\r\n                            </ng-container>\r\n                            <ng-container *ngIf=\"!data.propertyPersonalization.includes('maxLength')\">\r\n                                <div class=\"asw-col-md-6\">\r\n                                    <div class=\"asw-mb-3\">\r\n                                        <label class=\"asw-input-label\">{{'FormControl.MaxLength' | aswTranslate}}</label>\r\n                                        <input type=\"text\"\r\n                                            name=\"maxlength\"\r\n                                            class=\"asw-input-control\"\r\n                                            matTooltip=\"{{'FormControl.MaxLength' | aswTranslate}}\"\r\n                                            formControlName=\"maxlength\">\r\n                                    </div>\r\n                                </div>\r\n                            </ng-container>\r\n                        </ng-container>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <div class=\"asw-form-check asw-form-switch\">\r\n                                    <input class=\"asw-form-check-input\" \r\n                                        type=\"checkbox\" \r\n                                        #isActive\r\n                                        id=\"isActive\" \r\n                                        formControlName=\"isRequired\"\r\n                                        (change)=\"onStatusChange($event)\">\r\n                                    <label class=\"asw-form-check-label\" for=\"isActive\">\r\n                                        {{(status ? 'FormControl.Required' : 'FormControl.NotRequired') | aswTranslate}}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"asw-col-md-2\">\r\n                            <div class=\"asw-mb-3\">\r\n                                <div class=\"asw-form-check asw-form-switch\">\r\n                                    <input class=\"asw-form-check-input\" \r\n                                        type=\"checkbox\"\r\n                                        id=\"isDisable\" \r\n                                        #isDisable\r\n                                        formControlName=\"isDisabled\"\r\n                                        (change)=\"onStatusChange($event)\">\r\n                                    <label class=\"asw-form-check-label\" for=\"isDisable\">\r\n                                        {{'FormControl.Readonly' | aswTranslate}}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </ng-template>\r\n            </mat-tab>\r\n            <mat-tab label=\"{{'FormControl.API' | aswTranslate}}\">\r\n                <asw-api-communicator (apiResponse)=\"getApiData($event)\" [CSSFramework]=\"data.CSSFramework\"></asw-api-communicator>\r\n            </mat-tab>\r\n        </mat-tab-group>\r\n    </div>\r\n    <div 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>\r\n            {{'FormControl.Yes' | aswTranslate}}\r\n        </button>\r\n    </div>\r\n</form>","/**\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 { AswCommunicatorApiModule, AswDirectiveModule, AswPipeModule, MaterialModule } from '@asoftwareworld/form-builder-pro/common';\nimport { AswTranslateModule } from '@asoftwareworld/form-builder-pro/core';\nimport { AswEditorModule } from '@asoftwareworld/form-builder-pro/editor';\nimport { AswDigitalDialog } from './digital/digital-dialog';\nimport { AswMultiSelectDialog } from './multi-select/multi-select-dialog';\nimport { AswSingleSelectDialog } from './single-select/single-select-dialog';\nimport { AswTextDialog } from './text/text-dialog';\n\n@NgModule({\n    imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, AswCommunicatorApiModule, AswEditorModule, AswTranslateModule, AswPipeModule, AswDirectiveModule],\n    declarations: [AswTextDialog, AswDigitalDialog, AswSingleSelectDialog, AswMultiSelectDialog],\n    exports: [AswTextDialog, AswDigitalDialog, AswSingleSelectDialog, AswMultiSelectDialog]\n})\nexport class AswSharedDialogModule {}\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 './digital/digital-dialog';\nexport * from './multi-select/multi-select-dialog';\nexport * from './single-select/single-select-dialog';\nexport * from './text/text-dialog';\nexport * from './shared-dialog.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i4","i5","i7","i8","i9","i10","i11","i6","i13","i14","i15"],"mappings":"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"}