UNPKG

@koalarx/ui

Version:

Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.

1 lines 12.5 kB
{"version":3,"file":"koalarx-ui-file-button.mjs","sources":["../../../projects/file-button/src/lib/koala.btn-file.service.ts","../../../projects/file-button/src/lib/file-button.component.ts","../../../projects/file-button/src/lib/file-button.component.html","../../../projects/file-button/src/lib/koala.file-button.module.ts","../../../projects/file-button/src/koalarx-ui-file-button.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { KoalaFileInterface } from './koala.file.interface';\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaBtnFileService {\n\tpublic setFileSubject = new BehaviorSubject<File|null>(null);\n\tpublic fileListSubject = new BehaviorSubject<KoalaFileInterface[]>([]);\n\n\tpublic async setFile(file: File) {\n\t\tif (file) {\n\t\t\tthis.setFileSubject.next(file);\n\t\t}\n\t}\n\n\tpublic removeFile(files: KoalaFileInterface[], index: number) {\n\t\tfiles.splice(index, 1);\n\t\tthis.fileListSubject.next(files);\n\t}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { KoalaFileInterface } from './koala.file.interface';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'koala-file-button',\n templateUrl: 'file-button.component.html',\n styleUrls: ['file-button.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileButtonComponent implements OnInit {\n @Input() color?: string;\n @Input() backgroundColor?: string;\n @Input() icon?: string;\n @Input() text?: string;\n @Input() tooltip?: string;\n @Input() disabled?: boolean;\n @Input() multiple?: boolean;\n @Input() accept?: string;\n @Input() setFile?: BehaviorSubject<File>;\n @Input() updateFileList?: BehaviorSubject<KoalaFileInterface[]>;\n @Input() autoclear = true;\n @Output() getFiles = new EventEmitter<KoalaFileInterface[]>();\n public files: KoalaFileInterface[] = [];\n public style?: string;\n\n @ViewChild('file', { static: true }) private file?: ElementRef<HTMLInputElement>;\n\n public textSubject = new BehaviorSubject<string>('');\n\n ngOnInit() {\n this.style = `color: ${this.color}!important;background-color: ${this.backgroundColor}!important;`;\n this.textSubject.next(this.text ?? '');\n if (this.setFile) {\n this.setFile.subscribe(async (file) => {\n if (file) {\n const fileResult = await this.convertFile(file);\n if (fileResult) {\n this.files.push(fileResult);\n }\n this.generateTextButton();\n this.getFiles.emit(this.files);\n }\n });\n }\n\n if (this.updateFileList) {\n this.updateFileList.subscribe((fileList) => {\n this.files = fileList;\n this.generateTextButton();\n });\n }\n }\n\n public async emitFiles(files: FileList | null) {\n if (files) {\n if (files?.length > 0) {\n for (let f = 0; f <= files.length; f++) {\n const file = files.item(f);\n if (file) {\n const fileResult = await this.convertFile(file);\n if (fileResult) {\n this.files.push(fileResult);\n }\n }\n }\n\n this.getFiles.emit(this.files);\n } else {\n this.getFiles.emit([]);\n }\n this.generateTextButton();\n }\n }\n\n public open() {\n const elFile = this.file?.nativeElement;\n if (elFile) elFile.value = '';\n if (this.autoclear) {\n this.files = [];\n this.getFiles.emit([]);\n this.generateTextButton();\n }\n elFile?.click();\n }\n\n private generateTextButton() {\n this.textSubject.next(\n this.files.length > 0\n ? `${this.files.length} arquivo${this.files.length > 1 ? 's' : ''} selecionado`\n : this.text ?? '',\n );\n }\n\n private async convertFile(file: File): Promise<KoalaFileInterface | null> {\n const blobFile = await new Promise<string | ArrayBuffer | null>((resolve) => {\n const fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onload = () => {\n resolve(fileReader.result);\n };\n });\n if (blobFile) {\n const fileSplit = blobFile.toString().split(';base64,');\n return {\n filename: file.name,\n type: fileSplit[0].replace('data:', ''),\n base64: fileSplit[1],\n };\n }\n\n return null;\n }\n}\n","<input #file (change)=\"emitFiles(file.files)\" [accept]=\"accept\" [multiple]=\"multiple\"\n style=\"display: none;\"\n type=\"file\"/>\n<button\n\t(click)=\"open()\"\n\t*ngIf=\"text else iconButton\"\n\t[disabled]=\"disabled\"\n\t[matTooltipDisabled]=\"!tooltip\"\n\t[matTooltip]=\"tooltip ?? ''\"\n [style]=\"style\"\n\tclass=\"koala-button\"\n\tmat-button\n\tmatTooltipPosition=\"above\"\n\ttype=\"button\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n\t{{textSubject | async}}\n</button>\n<ng-template #iconButton>\n <button\n\t (click)=\"open()\"\n\t [disabled]=\"disabled\"\n\t [matTooltipDisabled]=\"!tooltip\"\n\t [matTooltip]=\"tooltip ?? ''\"\n [style]=\"style\"\n\t class=\"koala-icon-button\"\n\t mat-icon-button\n\t matTooltipPosition=\"before\"\n\t type=\"button\">\n <mat-icon>{{icon}}</mat-icon>\n </button>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FileButtonComponent } from './file-button.component';\n\n@NgModule({\n exports: [\n FileButtonComponent\n ],\n\tdeclarations: [\n\t\tFileButtonComponent\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tMatTooltipModule,\n\t\tMatButtonModule,\n\t\tMatIconModule\n\t]\n})\nexport class KoalaFileButtonModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}