UNPKG

@asoftwareworld/form-builder-pro

Version:

ASW Form Builder Pro 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 b

1 lines 24.6 kB
{"version":3,"file":"asoftwareworld-form-builder-pro-form-control-select.mjs","sources":["../../src/components/form-control/select/select.ts","../../src/components/form-control/select/select.html","../../src/components/form-control/select/select.module.ts","../../src/components/form-control/select/public_api.ts","../../src/components/form-control/select/asoftwareworld-form-builder-pro-form-control-select.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, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ControlOption, CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api';\nimport { Constants, Icons, AswApiService } from '@asoftwareworld/form-builder-pro/common';\nimport { AswConfirmDialog } from '@asoftwareworld/form-builder-pro/form-control/confirm-dialog';\nimport { AswSingleSelectDialog } from '@asoftwareworld/form-builder-pro/form-control/shared';\nimport { ReplaySubject } from 'rxjs';\nimport { SelectControl } from './select-control';\n\n@Component({\n selector: 'asw-select',\n templateUrl: './select.html'\n})\nexport class AswSelect implements OnInit {\n constants: any = Constants;\n icons = Icons;\n filteredOptions: ReplaySubject<ControlOption[]> = new ReplaySubject<ControlOption[]>(1);\n filterValue = '';\n /**\n * Select control\n */\n @Input() control: any;\n @Input() CSSFramework: CSSFrameworkEnum = CSSFrameworkEnum.Material;\n @Input() isPreviewTemplate = false;\n @Input() propertyPersonalization: string[] = [];\n @Input() formControls: any[] = [];\n\n @Output() selectUpdateEvent = new EventEmitter<SelectControl>();\n @Output() selectDeleteEvent = new EventEmitter<SelectControl>();\n @Output() selectionChange = new EventEmitter<SelectControl>();\n @Output() duplicateControl = new EventEmitter<SelectControl>();\n\n constructor(\n public dialog: MatDialog,\n private aswApiService: AswApiService\n ) {}\n\n ngOnInit(): void {\n if (this.control?.apiUrl) {\n this.callApiToFetchData(this.control);\n } else {\n this.filteredOptions.next(this.control.options.slice());\n }\n }\n\n filter(control: SelectControl): void {\n if (!control.options) {\n return;\n }\n let search = this.filterValue;\n if (!search) {\n this.filteredOptions.next(control.options.slice());\n return;\n } else {\n search = search.toLowerCase();\n }\n // filter the options\n this.filteredOptions.next(control.options.filter((option) => option.value.toLowerCase().indexOf(search) > -1));\n }\n\n private callApiToFetchData(control: any) {\n switch (control.method) {\n case 'GET': {\n this.aswApiService.get(control.apiUrl, control.headers).subscribe({\n next: (data) => {\n if (data?.value) {\n this.setControlOptions(data.value);\n } else {\n this.setControlOptions(data);\n }\n }\n });\n break;\n }\n case 'POST': {\n this.aswApiService.post(control.apiUrl, control.body, control.headers).subscribe({\n next: (data) => {\n if (data?.value) {\n this.setControlOptions(data.value);\n } else {\n this.setControlOptions(data);\n }\n }\n });\n break;\n }\n case 'PUT': {\n this.aswApiService.put(control.apiUrl, control.body, control.headers).subscribe({\n next: (data) => {\n if (data?.value) {\n this.setControlOptions(data.value);\n } else {\n this.setControlOptions(data);\n }\n }\n });\n break;\n }\n case 'PATCH': {\n this.aswApiService.patch(control.apiUrl, control.body, control.headers).subscribe({\n next: (data) => {\n if (data?.value) {\n this.setControlOptions(data.value);\n } else {\n this.setControlOptions(data);\n }\n }\n });\n break;\n }\n case 'DELETE': {\n this.aswApiService.delete(control.apiUrl, control.headers).subscribe({\n next: (data) => {\n if (data?.value) {\n this.setControlOptions(data.value);\n } else {\n this.setControlOptions(data);\n }\n }\n });\n break;\n }\n }\n }\n\n private setControlOptions(options: ControlOption): void {\n this.control.options = options;\n this.filteredOptions.next(this.control.options.slice());\n }\n\n deleteSelectDialog(control: SelectControl): void {\n const dialogRef = this.dialog.open(AswConfirmDialog, {\n width: '350px',\n data: { name: control.controlType, message: this.constants.messages.waringMessage }\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n this.selectDeleteEvent.emit(control);\n }\n });\n }\n\n editSelectDialog(control: SelectControl, formControls: any[]): void {\n let allControls: any[] = [];\n this.getAllExceptCurrentControl(formControls, allControls);\n allControls = [...new Set(allControls.map((numberControl) => numberControl))];\n control.options.forEach((element) => {\n element.isChecked = control.value === element.key ? true : false;\n if (!element.hideControl) {\n element.hideControl = [];\n }\n });\n const dialogRef = this.dialog.open(AswSingleSelectDialog, {\n width: '80%',\n minWidth: '70vw',\n disableClose: true,\n data: { control, CSSFramework: this.CSSFramework, propertyPersonalization: this.propertyPersonalization, allControls }\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n this.selectUpdateEvent.emit(result);\n }\n });\n }\n\n onSelectionChange(control: SelectControl): void {\n control.options.forEach((element) => {\n element.isChecked = control.value === element.key ? true : false;\n });\n this.selectionChange.emit(control);\n }\n\n duplicateSelectControl(control: SelectControl): void {\n this.duplicateControl.emit(control);\n }\n\n filterMyOptions(): void {}\n\n private getAllExceptCurrentControl(formControls: any[], allControls: any[]): void {\n //allControls.push(...formControls.filter((x) => x.id !== this.control.id));\n const columnsControls = formControls.filter((x) => x.controlType === 'columns');\n if (columnsControls.length) {\n columnsControls.forEach((control) => {\n let isSelectedControl = false;\n control.columns.forEach((column: any) => {\n column.components.forEach((component: any) => {\n if (component.controlType === 'columns') {\n this.getAllExceptCurrentControl(column.components, allControls);\n }\n if (component.id === this.control.id) {\n isSelectedControl = true;\n }\n });\n });\n if (!isSelectedControl) {\n allControls.push(control);\n }\n });\n }\n }\n}\n","<ng-container *ngIf=\"control as control\">\r\n <ng-container *ngIf=\"CSSFramework === 'material'; else bootstrap\">\r\n <mat-form-field [appearance]=\"control.style\" class=\"asw-width-100 {{control.customClass}}\">\r\n <mat-label>{{control.label | aswTranslate}}</mat-label>\r\n <mat-select [placeholder]=\"control.label\" \r\n [id]=\"control.id\"\r\n [matTooltip]=\"control.tooltip | aswTranslate\"\r\n [(ngModel)]=\"control.value\"\r\n #input=\"ngModel\"\r\n (selectionChange)=\"onSelectionChange(control)\"\r\n [required]=\"control.isRequired\"\r\n [disabled]=\"control.isDisabled ? true : false\">\r\n <mat-option>\r\n <asw-select-search ngModel [(ngModel)]=\"filterValue\" (ngModelChange)=\"filter(control)\"></asw-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.key\">\r\n {{ option.value }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"input.invalid && (input.dirty || input.touched)\">\r\n <ng-container *ngIf=\"input?.errors?.required\">\r\n {{control.label | aswTranslate}} {{'FormControl.IsRequired' | aswTranslate}}\r\n </ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-template #bootstrap>\r\n <div class=\"asw-mb-3\">\r\n <label for=\"{{control.id}}\" \r\n class=\"asw-input-label {{(input.invalid && (input.dirty || input.touched)) ? 'asw-red-color' : ''}}\"\r\n [class.asw-invalid-label]=\"control.isRequired\">{{control.label | aswTranslate}}</label>\r\n <select matNativeControl \r\n [id]=\"control.id\"\r\n class=\"asw-select {{control.customClass}}\"\r\n [class.asw-is-invalid]=\"input.invalid && (input.dirty || input.touched)\"\r\n [matTooltip]=\"control.tooltip | aswTranslate\"\r\n [(ngModel)]=\"control.value\"\r\n #input=\"ngModel\"\r\n (change)=\"onSelectionChange(control)\"\r\n [required]=\"control.isRequired\"\r\n [disabled]=\"control.isDisabled ? true : false\">\r\n <!-- <option>\r\n <asw-select-search ngModel [(ngModel)]=\"filterValue\" (ngModelChange)=\"filter(control)\"></asw-select-search>\r\n </option> -->\r\n <option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.key\">\r\n {{ option.value }}\r\n </option>\r\n </select>\r\n <div *ngIf=\"input.invalid && (input.dirty || input.touched)\" class=\"invalid-feedback\">\r\n <ng-container *ngIf=\"input?.errors?.required\">\r\n {{control.label | aswTranslate}} {{'FormControl.IsRequired' | aswTranslate}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <div class=\"asw-row\" *ngIf=\"isPreviewTemplate\">\r\n <div class=\"asw-col-md-12\" align=\"right\">\r\n <button mat-icon-button \r\n type=\"button\" \r\n matTooltip=\"{{'FormControl.Duplicate' | aswTranslate}}\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"duplicateSelectControl(control)\">\r\n <div [innerHTML]=\"icons.contentCopy | aswSafeHtml\"></div>\r\n </button>\r\n <button mat-icon-button \r\n type=\"button\" \r\n matTooltip=\"{{'FormControl.Edit' | aswTranslate}}\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"editSelectDialog(control, formControls)\">\r\n <div [innerHTML]=\"icons.edit | aswSafeHtml\"></div>\r\n </button>\r\n <button mat-icon-button \r\n type=\"button\" \r\n matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"deleteSelectDialog(control)\">\r\n <div [innerHTML]=\"icons.delete2 | aswSafeHtml\"></div>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-container>","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AswPipeModule, MaterialModule } from '@asoftwareworld/form-builder-pro/common';\nimport { AswTranslateModule } from '@asoftwareworld/form-builder-pro/core';\nimport { AswConfirmDialogModule } from '@asoftwareworld/form-builder-pro/form-control/confirm-dialog';\nimport { AswSharedDialogModule } from '@asoftwareworld/form-builder-pro/form-control/shared';\nimport { AswSelectSearchModule } from '@asoftwareworld/form-builder-pro/form-control/select-search';\n\nimport { AswSelect } from './select';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, AswConfirmDialogModule, AswSharedDialogModule, AswTranslateModule, AswPipeModule, AswSelectSearchModule],\n declarations: [AswSelect],\n exports: [AswSelect]\n})\nexport class AswSelectModule {}\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 './select';\nexport * from './select-control';\nexport * from './select.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}