Skip to content

Commit 9eb1383

Browse files
author
Georgi Peltekov
committed
v5.0.2
1 parent 4b797eb commit 9eb1383

8 files changed

+53
-21
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
## Change Log
2+
### [5.0.2](https://github.com/georgipeltekov/ngx-file-drop/compare/v5.0.1...v5.0.2) (2019-01-23)
3+
* Add browse file button functionality
4+
25
### [5.0.1](https://github.com/georgipeltekov/ngx-file-drop/compare/v5.0.0...v5.0.1) (2019-01-18)
36
* Support patch-level differences for zone.js
47
* Update Readme

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ Name | Description | Example |
146146
headertext | Text to be displayed inside the drop box | headertext="Drop files here"
147147
customstyle | Custom style class name to be used | customstyle="my-style"
148148
[disableIf] | Conditionally disable the dropzone | [disableIf]="condition"
149+
showBrowseBtn | Whether browse file button should be shown | showBrowseBtn="true"
149150

150151
## License
151152

dist.tgz

-19 KB
Binary file not shown.

package-lock.json

+10-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ngx-file-drop",
3-
"version": "5.0.1",
3+
"version": "5.0.2",
44
"license": "MIT",
55
"scripts": {
66
"ng": "ng",
@@ -41,6 +41,7 @@
4141
"zone.js": "~0.8.26"
4242
},
4343
"devDependencies": {
44+
"@angular/common": "^7.0.0",
4445
"@angular/core": "^7.0.0",
4546
"@angular/compiler": "^7.0.0",
4647
"@angular-devkit/build-angular": "~0.10.2",

src/lib/ngx-drop/file-drop.component.html

+4
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,9 @@
44
<div class="content">
55
<ng-content></ng-content>
66
{{headertext}}
7+
<div *ngIf="showBrowseBtn">
8+
<input type="file" id="selectedFile" (change)="uploadFiles($event)" multiple style="display: none;" />
9+
<input type="button" class="btn btn-primary btn-xs" value="Custom Btn " onclick="document.getElementById('selectedFile').click();" />
10+
</div>
711
</div>
812
</div>

src/lib/ngx-drop/file-drop.component.ts

+31-18
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ export class FileComponent implements OnDestroy {
2020
customstyle: string = null;
2121
@Input()
2222
disableIf: boolean = false;
23+
@Input()
24+
showBrowseBtn: boolean = false;
2325

2426
@Output()
2527
public onFileDrop: EventEmitter<UploadEvent> = new EventEmitter<UploadEvent>();
@@ -39,6 +41,9 @@ export class FileComponent implements OnDestroy {
3941

4042
numOfActiveReadEntries = 0
4143

44+
length;
45+
items;
46+
4247
constructor(
4348
private zone: NgZone,
4449
private renderer: Renderer
@@ -75,29 +80,37 @@ export class FileComponent implements OnDestroy {
7580
}
7681

7782
dropFiles(event: any) {
83+
this.dragoverflag = false;
84+
event.dataTransfer.dropEffect = 'copy';
85+
if (event.dataTransfer.items) {
86+
this.length = event.dataTransfer.items.length;
87+
this.items = event.dataTransfer.items;
88+
} else {
89+
this.length = event.dataTransfer.files.length;
90+
this.items = event.dataTransfer.files;
91+
}
92+
this.checkFiles();
93+
}
94+
95+
uploadFiles(event: any) {
96+
if (event.srcElement) {
97+
this.items = event.srcElement.files;
98+
this.length = this.items.length;
99+
this.checkFiles();
100+
}
101+
}
102+
103+
checkFiles() {
78104
if (!this.globalDisable && !this.disableIf) {
79-
this.dragoverflag = false;
80-
event.dataTransfer.dropEffect = 'copy';
81-
let length;
82-
if (event.dataTransfer.items) {
83-
length = event.dataTransfer.items.length;
84-
} else {
85-
length = event.dataTransfer.files.length;
86-
}
87105

88-
for (let i = 0; i < length; i++) {
106+
for (let i = 0; i < this.length; i++) {
89107
let entry: FileSystemEntry;
90-
if (event.dataTransfer.items) {
91-
if (event.dataTransfer.items[i].webkitGetAsEntry) {
92-
entry = event.dataTransfer.items[i].webkitGetAsEntry();
93-
}
94-
} else {
95-
if (event.dataTransfer.files[i].webkitGetAsEntry) {
96-
entry = event.dataTransfer.files[i].webkitGetAsEntry();
97-
}
108+
if(this.items[i].webkitGetAsEntry){
109+
entry = this.items[i].webkitGetAsEntry();
98110
}
111+
99112
if (!entry) {
100-
const file: File = event.dataTransfer.files[i];
113+
const file: File = this.items[i];
101114
if (file) {
102115
const fakeFileEntry: FileSystemFileEntry = {
103116
name: file.name,

src/lib/ngx-drop/file-drop.module.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { NgModule } from '@angular/core';
2+
import { CommonModule } from '@angular/common';
23
import {FileComponent} from './file-drop.component';
34

45
@NgModule({
56
declarations: [
67
FileComponent,
78
],
89
exports: [FileComponent],
9-
imports: [],
10+
imports: [CommonModule],
1011
providers: [],
1112
bootstrap: [FileComponent],
1213
})

0 commit comments

Comments
 (0)