@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 • 42.3 kB
Source Map (JSON)
{"version":3,"file":"asoftwareworld-form-builder-pro-form-control-fileupload.mjs","sources":["../../src/components/form-control/fileupload/fileupload-dialog.ts","../../src/components/form-control/fileupload/fileupload-dialog.html","../../src/components/form-control/fileupload/asw-drag-drop.directive.ts","../../src/components/form-control/fileupload/fileupload.ts","../../src/components/form-control/fileupload/fileupload.html","../../src/components/form-control/fileupload/fileupload-control.ts","../../src/components/form-control/fileupload/fileupload.module.ts","../../src/components/form-control/fileupload/public_api.ts","../../src/components/form-control/fileupload/asoftwareworld-form-builder-pro-form-control-fileupload.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 { FileUploadControl } from './fileupload-control';\n\n@Component({\n selector: 'asw-fileupload-dialog',\n templateUrl: './fileupload-dialog.html'\n})\nexport class AswFileUploadDialog implements OnInit {\n constants: any = Constants;\n icons = Icons;\n aswFileUploadForm!: FormGroup;\n control!: FileUploadControl;\n constructor(\n private formBuilder: FormBuilder,\n public dialogRef: MatDialogRef<AswFileUploadDialog>,\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.aswFileUploadForm = this.formBuilder.group({\n id: ['', [Validators.required]],\n label: ['', [Validators.required, Validators.minLength(2)]],\n minSize: [],\n maxSize: [],\n allowMultipleFile: [],\n fileTypes: [],\n isRequired: [false]\n });\n }\n\n editProperty(control: FileUploadControl): void {\n this.aswFileUploadForm.setValue({\n id: control.id,\n label: control.label,\n minSize: control.minSize,\n maxSize: control.maxSize,\n allowMultipleFile: control.allowMultipleFile,\n fileTypes: control.fileTypes,\n isRequired: control.isRequired\n });\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n onSubmit(): void {\n if (this.aswFileUploadForm.invalid) {\n return;\n }\n this.aswFileUploadForm.value.controlType = this.control.controlType;\n this.aswFileUploadForm.value.guid = this.control.guid;\n this.aswFileUploadForm.value.value = this.control.value;\n this.dialogRef.close(this.aswFileUploadForm.value);\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]=\"aswFileUploadForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-dialog-content class=\"mat-typography\">\r\n <div class=\"asw-row\">\r\n <ng-container *ngIf=\"data.CSSFramework === 'material'; else bootstrap\">\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-error *ngFor=\"let validation of constants.accountValidationMessages.id\">\r\n <ng-container *ngIf=\"aswFileUploadForm.get('id')?.hasError(validation.type) && (aswFileUploadForm.get('id')?.dirty || aswFileUploadForm.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-error *ngFor=\"let validation of constants.accountValidationMessages.label\">\r\n <ng-container *ngIf=\"aswFileUploadForm.get('label')?.hasError(validation.type) && (aswFileUploadForm.get('label')?.dirty || aswFileUploadForm.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.AllowMultipleFile' | aswTranslate}}</mat-label>\r\n <input matInput type=\"text\"\r\n name=\"allowMultipleFile\"\r\n placeholder=\"{{'FormControl.AllowMultipleFile' | aswTranslate}}\"\r\n matTooltip=\"{{'FormControl.AllowMultipleFile' | aswTranslate}}\"\r\n formControlName=\"allowMultipleFile\">\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.MinSize' | aswTranslate}}</mat-label>\r\n <input matInput type=\"text\"\r\n name=\"minSize\"\r\n placeholder=\"{{'FormControl.MinSize' | aswTranslate}}\"\r\n matTooltip=\"{{'FormControl.MinSize' | aswTranslate}}\"\r\n formControlName=\"minSize\">\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.MaxSize' | aswTranslate}}</mat-label>\r\n <input matInput type=\"text\"\r\n name=\"maxSize\"\r\n placeholder=\"{{'FormControl.MaxSize' | aswTranslate}}\"\r\n matTooltip=\"{{'FormControl.MaxSize' | aswTranslate}}\"\r\n formControlName=\"maxSize\">\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.FileTypes' | aswTranslate}}</mat-label>\r\n <textarea matInput type=\"text\"\r\n name=\"fileTypes\"\r\n placeholder=\"{{'FormControl.FileTypes' | aswTranslate}}\"\r\n matTooltip=\"{{'FormControl.FileTypes' | aswTranslate}}\"\r\n formControlName=\"fileTypes\">\r\n </textarea>\r\n </mat-form-field>\r\n </div>\r\n </ng-container>\r\n <ng-template #bootstrap>\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 {{(aswFileUploadForm.get('id')?.invalid && (aswFileUploadForm.get('id')?.dirty || aswFileUploadForm.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]=\"(aswFileUploadForm.get('id')?.invalid && (aswFileUploadForm.get('id')?.dirty || aswFileUploadForm.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=\"aswFileUploadForm.get('id')?.hasError(validation.type) && (aswFileUploadForm.get('id')?.dirty || aswFileUploadForm.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 {{(aswFileUploadForm.get('label')?.invalid && (aswFileUploadForm.get('label')?.dirty || aswFileUploadForm.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]=\"(aswFileUploadForm.get('label')?.invalid && (aswFileUploadForm.get('label')?.dirty || aswFileUploadForm.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=\"aswFileUploadForm.get('label')?.hasError(validation.type) && (aswFileUploadForm.get('label')?.dirty || aswFileUploadForm.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.AllowMultipleFile' | aswTranslate}}</label>\r\n <input type=\"text\"\r\n name=\"allowMultipleFile\"\r\n class=\"asw-input-control\"\r\n matTooltip=\"{{'FormControl.AllowMultipleFile' | aswTranslate}}\"\r\n formControlName=\"allowMultipleFile\">\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.MinSize' | aswTranslate}}</label>\r\n <input type=\"text\"\r\n name=\"minSize\"\r\n class=\"asw-input-control\"\r\n matTooltip=\"{{'FormControl.MinSize' | aswTranslate}}\"\r\n formControlName=\"minSize\">\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.MaxSize' | aswTranslate}}</label>\r\n <input type=\"text\"\r\n name=\"maxSize\"\r\n class=\"asw-input-control\"\r\n matTooltip=\"{{'FormControl.MaxSize' | aswTranslate}}\"\r\n formControlName=\"maxSize\">\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.FileTypes' | aswTranslate}}</label>\r\n <textarea type=\"text\"\r\n name=\"fileTypes\"\r\n class=\"asw-input-control\"\r\n matTooltip=\"{{'FormControl.FileTypes' | aswTranslate}}\"\r\n formControlName=\"fileTypes\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\">\r\n <button type=\"button\"\r\n class=\"asw-button asw-button-danger asw-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 </mat-dialog-actions>\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 */\nimport { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[aswDragAndDrop]'\n})\nexport class AswDragAndDropDirective {\n @HostBinding('class.fileover') fileOver = false;\n @Output() fileDropped = new EventEmitter<any>();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) onDragOver(evt: any): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: any): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(evt: any): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api';\nimport { Constants, Icons, NotificationService } from '@asoftwareworld/form-builder-pro/common';\nimport { AswConfirmDialog } from '@asoftwareworld/form-builder-pro/form-control/confirm-dialog';\nimport { ObjectUtils } from '@asoftwareworld/form-builder-pro/utils';\nimport { FileUploadControl } from './fileupload-control';\nimport { AswFileUploadDialog } from './fileupload-dialog';\n\n@Component({\n selector: 'asw-fileupload',\n templateUrl: './fileupload.html',\n styleUrls: ['./fileupload.scss']\n})\nexport class AswFileUpload {\n constants: any = Constants;\n icons = Icons;\n @Input() control: any;\n @Input() CSSFramework: CSSFrameworkEnum = CSSFrameworkEnum.Material;\n @Input() isPreviewTemplate = false;\n @Input() propertyPersonalization: string[] = [];\n\n @Output() fileUploadUpdateEvent = new EventEmitter<FileUploadControl>();\n @Output() fileUploadDeleteEvent = new EventEmitter<FileUploadControl>();\n @Output() onfileUploadChange = new EventEmitter<FileUploadControl>();\n @Output() duplicateControl = new EventEmitter<FileUploadControl>();\n\n constructor(\n public dialog: MatDialog,\n private notificationService: NotificationService\n ) {}\n\n /**\n * on file drop handler\n */\n onFileDropped(event: any): void {\n this.validateFileList(event);\n }\n\n /**\n * handle file from browsing\n */\n fileBrowseHandler(event: any): void {\n this.validateFileList(event.target?.files);\n }\n\n /**\n * Delete file from files list\n * @param index (File index)\n */\n deleteFile(index: number): void {\n this.control.value.splice(index, 1);\n this.onfileUploadChange.emit();\n }\n\n /**\n * Simulate the upload process\n */\n uploadFilesSimulator(index: number): void {\n setTimeout(() => {\n if (index === this.control.value.length) {\n return;\n } else {\n const progressInterval = setInterval(() => {\n if (this.control.value[index].progress === 100) {\n clearInterval(progressInterval);\n this.uploadFilesSimulator(index + 1);\n } else {\n this.control.value[index].progress += 5;\n }\n }, 200);\n }\n }, 1000);\n }\n\n /**\n * Convert Files list to normal array list\n * @param files (Files List)\n */\n private prepareFilesList(files: Array<any>): void {\n for (const item of files) {\n item.progress = 0;\n this.control.value.push(item);\n this.onfileUploadChange.emit(item);\n }\n this.uploadFilesSimulator(0);\n }\n\n private validateFileList(files: Array<any>): void {\n if (!ObjectUtils.missingOrEmpty(this.control.allowMultipleFile)) {\n const fileCount = files.length + this.control.value.length;\n if (!(fileCount <= Number(this.control.allowMultipleFile))) {\n this.notificationService.openNotification('Only ' + this.control.allowMultipleFile + ' files are allowed to upload.', 'Close');\n return;\n }\n }\n const fileTypes = this.control.fileTypes.split(',');\n for (const item of files) {\n if (!ObjectUtils.missingOrEmpty(this.control.fileTypes)) {\n const extension = item.name.split('.')[1];\n if (!fileTypes.find((x: string) => x.trim() === extension)) {\n this.notificationService.openNotification(item.name + ' has invalid extension. Only ' + this.control.fileTypes + ' are allowed.', 'Close');\n return;\n }\n }\n if (!ObjectUtils.missingOrEmpty(this.control.minSize)) {\n const minFileSize = Number(this.control.minSize) * 1000;\n if (item.size <= minFileSize) {\n this.notificationService.openNotification(item.name + ' is too small, minimum file size is ' + this.control.minSize + 'KB.', 'Close');\n return;\n }\n }\n if (!ObjectUtils.missingOrEmpty(this.control.maxSize)) {\n const maxFileSize = Number(this.control.maxSize) * 1000;\n if (item.size >= maxFileSize) {\n this.notificationService.openNotification(item.name + ' is too large, maximum file size is ' + this.control.maxSize + 'KB.', 'Close');\n return;\n }\n }\n }\n this.prepareFilesList(files);\n }\n\n /**\n * format bytes\n * @param bytes (File size in bytes)\n * @param decimals (Decimals point)\n */\n formatBytes(bytes: any, decimals: any): any {\n if (bytes === 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals || 2;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n\n editFileUploadDialog(control: FileUploadControl): void {\n const dialogRef = this.dialog.open(AswFileUploadDialog, {\n width: '50%',\n disableClose: true,\n data: { control, CSSFramework: this.CSSFramework, propertyPersonalization: this.propertyPersonalization }\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n this.fileUploadUpdateEvent.emit(result);\n }\n });\n }\n\n deleteFileUploadDialog(control: any): 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.fileUploadDeleteEvent.emit(control);\n }\n });\n }\n\n duplicateFileUploadControl(control: any): void {\n this.duplicateControl.emit(control);\n }\n}\n","<div class=\"asw-upload-container\" aswDragAndDrop (fileDropped)=\"onFileDropped($event)\">\r\n\t<div class=\"asw-drop-area\">\r\n\t\t<input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event)\" />\r\n\t\t<span>\r\n\t\t\t{{'Drag and drop files here or' | aswTranslate}}\r\n\t\t\t<a href=\"javascript:void(0);\" for=\"fileDropRef\"><u>{{'Browse' | aswTranslate}}</u></a>\r\n\t\t</span>\r\n\t</div>\r\n</div>\r\n<ul class=\"asw-file-lists\">\r\n\t<li class=\"asw-single-list\" *ngFor=\"let file of control.value; let i = index\">\r\n\t\t<span class=\"asw-file-name\" [ngStyle]=\"{'color':file?.progress === 100 ? 'green' : '' }\">{{ file?.name }}</span>\r\n\t\t<span class=\"asw-file-size\" style=\"display: inline-block;\">{{ formatBytes(file?.size, undefined) }}</span>\r\n\t\t<span class=\"asw-delete-svg\" (click)=\"deleteFile(i)\" [innerHTML]=\"icons.delete2 | aswSafeHtml\"></span>\r\n\t\t<ng-container *ngIf=\"file?.progress < 100\">\r\n\t\t\t<mat-progress-bar mode=\"determinate\" [value]=\"file?.progress\"></mat-progress-bar>\r\n\t\t</ng-container>\r\n\t</li>\r\n</ul>\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)=\"duplicateFileUploadControl(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)=\"editFileUploadDialog(control)\">\r\n <div [innerHTML]=\"icons.edit | aswSafeHtml\"></div>\r\n </button>\r\n <button mat-icon-button \r\n type=\"button\" \r\n matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n [matTooltipPosition]=\"'below'\" \r\n (click)=\"deleteFileUploadDialog(control)\">\r\n <div [innerHTML]=\"icons.delete2 | aswSafeHtml\"></div>\r\n </button>\r\n </div>\r\n</div>","/**\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 interface FileUploadControl {\n id: string;\n guid: string;\n label: string;\n controlType: string;\n minSize: string;\n maxSize: string;\n fileTypes: string;\n allowMultipleFile: string;\n isRequired: boolean;\n value: File[];\n}\n\nexport interface File {\n progress: number;\n lastModified: number;\n lastModifiedDate: Date;\n name: string;\n size: number;\n type: string;\n webkitRelativePath: string;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AswPipeModule, MaterialModule, NotificationService } from '@asoftwareworld/form-builder-pro/common';\nimport { AswLicense, AswTranslateModule, WatermarkService } from '@asoftwareworld/form-builder-pro/core';\nimport { AswConfirmDialogModule } from '@asoftwareworld/form-builder-pro/form-control/confirm-dialog';\nimport { AswDragAndDropDirective } from './asw-drag-drop.directive';\n\nimport { AswFileUpload } from './fileupload';\nimport { AswFileUploadDialog } from './fileupload-dialog';\n\nexport function initializeLicense(): () => Promise<void> {\n return () => {\n AswLicense.validateLicense();\n return Promise.resolve();\n };\n}\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, AswConfirmDialogModule, AswTranslateModule, AswPipeModule],\n declarations: [AswFileUpload, AswFileUploadDialog, AswDragAndDropDirective],\n exports: [AswFileUpload, AswFileUploadDialog, AswDragAndDropDirective],\n providers: [\n NotificationService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeLicense,\n multi: true\n },\n WatermarkService\n ]\n})\nexport class AswFileUploadModule {\n constructor(private watermarkService: WatermarkService) {\n // Call the showWatermark method when the module is loaded\n const isValid = AswLicense.isDisplayWatermark();\n if (isValid) {\n this.watermarkService.showWatermark();\n }\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport * from './fileupload';\nexport * from './fileupload-dialog';\nexport * from './asw-drag-drop.directive';\nexport * from './fileupload-control';\nexport * from './fileupload.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i9","i1","i2","i5","i6","i7.AswDragAndDropDirective"],"mappings":"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"}