@asoftwareworld/form-builder
Version:
ASW Form Builder helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same befor
1 lines • 28 kB
Source Map (JSON)
{"version":3,"file":"asoftwareworld-form-builder-form-control-button.mjs","sources":["../../src/components/form-control/button/button-dialog.ts","../../src/components/form-control/button/button-dialog.html","../../src/components/form-control/button/button.ts","../../src/components/form-control/button/button.html","../../src/components/form-control/button/button.module.ts","../../src/components/form-control/button/public_api.ts","../../src/components/form-control/button/asoftwareworld-form-builder-form-control-button.ts"],"sourcesContent":["/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\n\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Constants } from '@asoftwareworld/form-builder/form-control/core';\r\nimport { ButtonControl } from './button-control';\r\n\r\n@Component({\r\n selector: 'asw-button-dialog',\r\n templateUrl: './button-dialog.html'\r\n})\r\nexport class AswButtonDialog implements OnInit {\r\n constants: any = Constants;\r\n aswEditButtonForm!: FormGroup;\r\n status!: boolean;\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public dialogRef: MatDialogRef<AswButtonDialog>,\r\n @Inject(MAT_DIALOG_DATA) public control: ButtonControl) { }\r\n\r\n ngOnInit(): void {\r\n this.validateFormBuilder();\r\n this.editProperty(this.control);\r\n }\r\n\r\n validateFormBuilder(): void {\r\n this.aswEditButtonForm = this.formBuilder.group({\r\n id: ['', [Validators.required]],\r\n customClass: [],\r\n tooltip: ['', [Validators.required]],\r\n label: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(25)]],\r\n type: ['', [Validators.required]],\r\n color: [],\r\n column: [],\r\n style: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n editProperty(control: ButtonControl): void {\r\n this.aswEditButtonForm.setValue({\r\n id: control.id,\r\n customClass: control.customClass ?? '',\r\n tooltip: control.tooltip,\r\n label: control.label,\r\n type: control.type,\r\n color: control.color,\r\n style: control.style,\r\n column: control.column\r\n });\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.aswEditButtonForm.invalid) {\r\n return;\r\n }\r\n this.aswEditButtonForm.value.controlType = this.control.controlType;\r\n this.dialogRef.close(this.aswEditButtonForm.value);\r\n }\r\n\r\n onChange(event: any): void {\r\n if (event.checked) {\r\n this.status = true;\r\n } else {\r\n this.status = false;\r\n }\r\n }\r\n}\r\n","<h4 mat-dialog-title>Edit Property</h4>\r\n<form [formGroup]=\"aswEditButtonForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-dialog-content class=\"mat-typography\"> \r\n <div class=\"asw-full-width\"><br>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Unique Id</mat-label>\r\n <input matInput type=\"text\"\r\n name=\"id\"\r\n placeholder=\"Enter Unique Id\"\r\n matTooltip=\"Enter Unique Id\"\r\n formControlName=\"id\" required>\r\n <mat-error class=\"asw-mat-error\" *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n <mat-error class=\"asw-mat-error\" *ngIf=\"aswEditButtonForm.get('id')?.hasError(validation.type) && (aswEditButtonForm.get('id')?.dirty || aswEditButtonForm.get('id')?.touched)\">\r\n {{validation.message}}\r\n </mat-error>\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Label</mat-label>\r\n <input matInput type=\"text\"\r\n placeholder=\"Enter label\"\r\n matTooltip=\"Enter label\"\r\n formControlName=\"label\" required>\r\n <mat-error class=\"asw-mat-error\" *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n <mat-error class=\"asw-mat-error\" *ngIf=\"aswEditButtonForm.get('label')?.hasError(validation.type) && (aswEditButtonForm.get('label')?.dirty || aswEditButtonForm.get('label')?.touched)\">\r\n {{validation.message}}\r\n </mat-error>\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Custom CSS Class</mat-label>\r\n <input matInput type=\"text\"\r\n name=\"customClass\"\r\n placeholder=\"Custom CSS Class\"\r\n matTooltip=\"Custom CSS Class\"\r\n formControlName=\"customClass\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Tooltip</mat-label>\r\n <input matInput type=\"text\"\r\n placeholder=\"Enter tooltip\"\r\n matTooltip=\"Enter tooltip\"\r\n formControlName=\"tooltip\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Type</mat-label>\r\n <mat-select formControlName=\"type\" matTooltip=\"Select button type\">\r\n <mat-option value=\"button\">Button</mat-option>\r\n <mat-option value=\"submit\">Submit</mat-option>\r\n <mat-option value=\"reset\">Reset</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Column Size</mat-label>\r\n <mat-select formControlName=\"column\" matTooltip=\"Select column size\">\r\n <mat-option *ngFor=\"let column of constants.columns\" [value]=\"column.value\">\r\n {{column.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Button Style</mat-label>\r\n <mat-select formControlName=\"style\" matTooltip=\"Select button style\">\r\n <mat-option value=\"mat-button\">Basic</mat-option>\r\n <mat-option value=\"mat-raised-button\">Raised</mat-option>\r\n <mat-option value=\"mat-stroked-button\">Stroked</mat-option>\r\n <mat-option value=\"mat-flat-button\">Flat</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\" class=\"asw-mat-form-field\">\r\n <mat-label>Color</mat-label>\r\n <mat-select formControlName=\"color\" matTooltip=\"Select button color\">\r\n <mat-option value=\"\">Basic</mat-option>\r\n <mat-option value=\"primary\">Primary</mat-option>\r\n <mat-option value=\"accent\">Rose</mat-option>\r\n <mat-option value=\"warn\">Danger</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\">\r\n <button type=\"button\"\r\n class=\"btn btn-danger mr-2 mb-1 me-2\"\r\n (click)=\"onNoClick()\">\r\n No\r\n </button>\r\n <button type=\"submit\"\r\n class=\"btn btn-primary mb-1\"\r\n cdkFocusInitial>\r\n Yes\r\n </button>\r\n </mat-dialog-actions>\r\n</form>\r\n\r\n","/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\n\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AswConfirmDialog } from '@asoftwareworld/form-builder/form-control/confirm-dialog';\r\nimport { Constants } from '@asoftwareworld/form-builder/form-control/core';\r\nimport { ButtonControl } from './button-control';\r\nimport { AswButtonDialog } from './button-dialog';\r\n\r\n@Component({\r\n selector: 'asw-button',\r\n templateUrl: './button.html'\r\n})\r\nexport class AswButton {\r\n\r\n constants: any = Constants;\r\n /**\r\n * Button control\r\n */\r\n @Input() control: ButtonControl | null = null;\r\n\r\n /**\r\n * Button control index to help update or delete button from drop area\r\n */\r\n @Input() controlIndex!: number;\r\n @Input() isPreviewTemplate = false;\r\n\r\n @Output() buttonClickEvent = new EventEmitter<string>();\r\n @Output() buttonUpdateEvent = new EventEmitter<{control: ButtonControl, index: number}>();\r\n @Output() buttonDeleteEvent = new EventEmitter<number>();\r\n @Output() duplicateControl = new EventEmitter<ButtonControl>();\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n /**\r\n * Delete button control based on control index\r\n * @param control button control items\r\n * @param controlIndex button control index\r\n */\r\n deleteButtonDialog(control: ButtonControl, controlIndex: number): void {\r\n const dialogRef = this.dialog.open(AswConfirmDialog, {\r\n width: '350px',\r\n data: { name: control.controlType, message: this.constants.messages.waringMessage }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result !== undefined) {\r\n this.buttonDeleteEvent.emit(controlIndex);\r\n }\r\n });\r\n }\r\n\r\n editButtonDialog(control: ButtonControl, controlIndex: number): void {\r\n const dialogRef = this.dialog.open(AswButtonDialog, {\r\n disableClose: true,\r\n width: '50%',\r\n data: control\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result !== undefined) {\r\n this.buttonUpdateEvent.emit({control: result, index: controlIndex});\r\n }\r\n });\r\n }\r\n\r\n buttonClick(type: string): void {\r\n this.buttonClickEvent.emit(type);\r\n }\r\n\r\n duplicateButtonControl(control: ButtonControl): void {\r\n this.duplicateControl.emit(control);\r\n }\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <ng-container *ngIf=\"control as control\">\r\n <ng-container [ngSwitch]=\"control.style\">\r\n <ng-container *ngSwitchCase=\"'mat-button'\">\r\n <button mat-button \r\n [color]=\"control.color\"\r\n [id]=\"control.id\"\r\n [class]=\"control.customClass\"\r\n [type]=\"control.type\"\r\n [matTooltip]=\"control.tooltip\"\r\n (click)=\"buttonClick(control.type)\"\r\n >{{control.label}}</button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mat-raised-button'\">\r\n <button mat-raised-button \r\n [color]=\"control.color\"\r\n [id]=\"control.id\"\r\n [class]=\"control.customClass\"\r\n [type]=\"control.type\"\r\n [matTooltip]=\"control.tooltip\"\r\n (click)=\"buttonClick(control.type)\"\r\n >{{control.label}}</button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mat-stroked-button'\">\r\n <button mat-stroked-button \r\n [color]=\"control.color\"\r\n [id]=\"control.id\"\r\n [class]=\"control.customClass\"\r\n [type]=\"control.type\"\r\n [matTooltip]=\"control.tooltip\"\r\n (click)=\"buttonClick(control.type)\"\r\n >{{control.label}}</button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mat-flat-button'\">\r\n <button mat-flat-button \r\n [color]=\"control.color\"\r\n [id]=\"control.id\"\r\n [class]=\"control.customClass\"\r\n [type]=\"control.type\"\r\n [matTooltip]=\"control.tooltip\"\r\n (click)=\"buttonClick(control.type)\">\r\n {{control.label}}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template [ngIf]=\"isPreviewTemplate\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <button type=\"button\"\r\n mat-icon-button \r\n matTooltip=\"Duplicate\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"duplicateButtonControl(control)\">\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n <button mat-icon-button \r\n type=\"button\" \r\n matTooltip=\"Edit\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"editButtonDialog(control, controlIndex)\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button mat-icon-button \r\n type=\"button\" \r\n matTooltip=\"Delete\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"deleteButtonDialog(control, controlIndex)\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template> \r\n </ng-container>\r\n </div>\r\n</div>","/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AswConfirmDialogModule } from '@asoftwareworld/form-builder/form-control/confirm-dialog';\r\n\r\nimport { AswButton } from './button';\r\nimport { AswButtonDialog } from './button-dialog';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatDialogModule,\r\n MatSlideToggleModule,\r\n MatDividerModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n AswConfirmDialogModule\r\n ],\r\n declarations: [\r\n AswButton,\r\n AswButtonDialog\r\n ],\r\n exports: [\r\n AswButton,\r\n AswButtonDialog\r\n ]\r\n})\r\nexport class AswButtonModule { }\r\n","/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\n\r\nexport * from './button';\r\nexport * from './button-dialog';\r\nexport * from './button-control';\r\nexport * from './button.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i1","i2","i4","i5"],"mappings":"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"}