blob: ff9ea50989ff8963ff79751628011d6befce530c [file] [log] [blame] [view]
## TdFileInputComponent: td-file-input
## Usage
Add the element wherever you want to bind a [File | FileList] into a class model without additional elements.
Can also drop a file(s) into the component to bind the file(s) to it.
Example for usage:
```html
<td-file-input [(ngModel)]="files" color="primary" (select)="selectEvent($event)"
accept=".ext,.anotherExt" [disabled]="disabled" multiple>
<mat-icon>attach_file</mat-icon><span>Choose a file...</span>
</td-file-input>
```
```typescript
export class Demo {
files: File | FileList;
disabled: boolean = false;
selectEvent(files: FileList | File): void {
if (files instanceof FileList) {
...
} else {
...
}
};
}
```
## API Summary
#### Inputs
+ color: string
+ Sets button color. Uses same color palette accepted as [MatButton].
+ multiple: boolean
+ Sets if multiple files can be dropped/selected at once in [TdFileUploadComponent].
+ accept: string
+ Sets files accepted when opening the file browser dialog. Same as "accept" attribute in `<input/>` element.
+ disabled: boolean
+ Disables [TdFileUploadComponent] and clears selected/dropped files.
#### Events
+ select: function($event)
+ Event emitted when a file is selected.
+ Emits a [File or FileList] object.
#### Methods
+ clear: function
+ Used to clear the selected files from the [TdFileInputComponent].
## Setup
Import the [CovalentFileModule] in your NgModule:
```typescript
import { CovalentFileModule } from '@covalent/core/file';
@NgModule({
imports: [
CovalentFileModule,
...
],
...
})
export class MyModule {}
```
---
## TdFileSelectDirective: tdFileSelect
## Usage
Add the directive wherever you want to bind a [File | FileList] into a class model to an existing <input type="file"/> element.
Uses optional [(ngModel)] directive to bind file. (if [(ngModel]) exists, [fileSelect] is omitted)
Example for usage:
```html
<input type="file" tdFileSelect (fileSelect)="files = $event" multiple>
```
## API Summary
#### Inputs
+ multiple: boolean
+ Sets whether multiple files can be selected at once in host element, or just a single file.
+ Can also be "multiple" native attribute.
#### Events
+ fileSelect: function($event)
+ Event emitted when a file or files are selected in host [HTMLInputElement].
+ Emits a [FileList or File] object. Alternative to not use [(ngModel)].
## TdFileDropDirective: tdFileDrop
## Usage
Add the directive wherever you want to add drop support to an element to bind a [File | FileList] into a class model.
To add effect when <code>ondragenter</code> event is executed, override <code>.drop-zone</code> class in the context you are using it.
Note: if element has child elements, add <code>* { pointer-events: none; }</code> to avoid event being thrown again while navigating in child elements.
Example for usage:
```html
<div tdFileDrop (fileDrop)="files = $event" multiple [disabled]="disabled">
</div>
```
## API Summary
#### Inputs
+ multiple: boolean
+ Sets whether multiple files can be dropped at once in host element, or just a single file.
+ Can also be "multiple" native attribute.
+ disabled: boolean
+ Disabled drop events for host element.
#### Events
+ fileDrop: function($event)
+ Event emitted when a file or files are dropped in host element after being validated.
+ Emits a [FileList or File] object.
&nbsp;