@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 • 28.1 kB
Source Map (JSON)
{"version":3,"file":"asoftwareworld-form-builder-pro-form-control-multi-select.mjs","sources":["../../src/components/form-control/multi-select/multi-select.ts","../../src/components/form-control/multi-select/multi-select.html","../../src/components/form-control/multi-select/multi-select.module.ts","../../src/components/form-control/multi-select/public_api.ts","../../src/components/form-control/multi-select/asoftwareworld-form-builder-pro-form-control-multi-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 { AswMultiSelectDialog } from '@asoftwareworld/form-builder-pro/form-control/shared';\nimport { ReplaySubject, Subject, take, takeUntil } from 'rxjs';\nimport { MultiSelectControl } from './multi-select-control';\n\n@Component({\n selector: 'asw-multi-select',\n templateUrl: './multi-select.html'\n})\nexport class AswMultiSelect implements OnInit {\n constants: any = Constants;\n icons = Icons;\n filterValue!: string;\n filteredOptions: ReplaySubject<ControlOption[]> = new ReplaySubject<ControlOption[]>(1);\n /**\n * MultiSelect control\n */\n @Input() control: any;\n @Input() propertyPersonalization: string[] = [];\n @Input() isPreviewTemplate = false;\n @Input() CSSFramework: CSSFrameworkEnum = CSSFrameworkEnum.Material;\n @Input() formControls: any[] = [];\n\n @Output() multiSelectUpdateEvent = new EventEmitter<MultiSelectControl>();\n @Output() multiSelectDeleteEvent = new EventEmitter<MultiSelectControl>();\n @Output() selectionChange = new EventEmitter<MultiSelectControl>();\n @Output() duplicateControl = new EventEmitter<MultiSelectControl>();\n protected _onDestroy = new Subject<void>();\n /** local copy of filtered options to help set the toggle all checkbox state */\n protected filteredOptionsCache: ControlOption[] = [];\n\n /** flags to set the toggle all checkbox state */\n isIndeterminate = false;\n isChecked = false;\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 this.filteredOptionsCache = this.control.options.slice();\n }\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 this.filteredOptionsCache = this.control.options.slice();\n }\n\n deleteMultiSelectDialog(control: MultiSelectControl): 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.multiSelectDeleteEvent.emit(control);\n }\n });\n }\n\n editMultiSelectDialog(control: MultiSelectControl, formControls: any[]): void {\n let allControls: any[] = [];\n this.getAllExceptCurrentControl(formControls, allControls);\n allControls = [...new Set(allControls.map((control) => control))];\n control.options.forEach((element) => {\n element.isChecked = control.value.includes(element.key) ? true : false;\n if (!element.hideControl) {\n element.hideControl = [];\n }\n });\n const dialogRef = this.dialog.open(AswMultiSelectDialog, {\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.multiSelectUpdateEvent.emit(result);\n }\n });\n }\n\n onSelectionChange(control: MultiSelectControl): void {\n control.options.forEach((element) => {\n element.isChecked = control.value.includes(element.key) ? true : false;\n });\n this.selectionChange.emit(control);\n this.setToggleAllCheckboxState(control);\n }\n\n duplicateMultiSelectControl(control: MultiSelectControl): void {\n this.duplicateControl.emit(control);\n }\n\n toggleSelectAll(selectAllValue: boolean, control: MultiSelectControl) {\n this.filteredOptions.pipe(take(1), takeUntil(this._onDestroy)).subscribe((val) => {\n if (selectAllValue) {\n control.value = val.map((x) => x.key);\n } else {\n control.value = [];\n }\n });\n }\n\n filter(control: MultiSelectControl): void {\n if (!control.options) {\n return;\n }\n let search = this.filterValue;\n if (!search) {\n this.filteredOptionsCache = control.options.slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n this.setToggleAllCheckboxState(control);\n return;\n } else {\n search = search.toLowerCase();\n }\n // filter the options\n this.filteredOptionsCache = control.options.filter((option) => option.value.toLowerCase().indexOf(search) > -1);\n this.filteredOptions.next(this.filteredOptionsCache);\n this.setToggleAllCheckboxState(control);\n }\n\n protected setToggleAllCheckboxState(control: MultiSelectControl) {\n let filteredLength = 0;\n if (control && control.value) {\n this.filteredOptionsCache.forEach((el) => {\n if (control.value.indexOf(el.key) > -1) {\n filteredLength++;\n }\n });\n this.isIndeterminate = filteredLength > 0 && filteredLength < this.filteredOptionsCache.length;\n this.isChecked = filteredLength > 0 && filteredLength === this.filteredOptionsCache.length;\n }\n }\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 | aswTranslate\" \r\n [(ngModel)]=\"control.value\"\r\n [id]=\"control.id\"\r\n [matTooltip]=\"control.tooltip | aswTranslate\"\r\n #input=\"ngModel\" \r\n multiple \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 [showToggleAllCheckbox]=\"true\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\r\n [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event, control)\"\r\n ngModel \r\n [(ngModel)]=\"filterValue\"\r\n (ngModelChange)=\"filter(control)\">\r\n </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 <mat-select [placeholder]=\"control.label | aswTranslate\" \r\n [(ngModel)]=\"control.value\"\r\n [id]=\"control.id\"\r\n [matTooltip]=\"control.tooltip | aswTranslate\"\r\n #input=\"ngModel\" \r\n multiple \r\n color=\"primary\"\r\n class=\"asw-input-control {{control.customClass}}\"\r\n [class.asw-is-invalid]=\"input.invalid && (input.dirty || input.touched)\"\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 [showToggleAllCheckbox]=\"true\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\r\n [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event, control)\"\r\n ngModel \r\n [(ngModel)]=\"filterValue\"\r\n (ngModelChange)=\"filter(control)\">\r\n </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 <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)=\"duplicateMultiSelectControl(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)=\"editMultiSelectDialog(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)=\"deleteMultiSelectDialog(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 { AswMultiSelect } from './multi-select';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, AswConfirmDialogModule, AswSharedDialogModule, AswTranslateModule, AswPipeModule, AswSelectSearchModule],\n declarations: [AswMultiSelect],\n exports: [AswMultiSelect]\n})\nexport class AswMultiSelectModule {}\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 './multi-select-control';\nexport * from './multi-select';\nexport * from './multi-select.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}