19.0.1 • Published 4 months ago

ngx-custom-material-file-input v19.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

npm version npm Known Vulnerabilities

ngx-custom-material-file-input

This project is a copy of ngx-material-file-input, this was made from angular 14 as a new project, only what was necessary was added and is already updated.

Library VersionAngular Version
1.0.014.0.0
2.0.015.0.0
3.0.016.0.0
4.0.017.0.0
18.0.018.0.0

From now on, the package version will be the same as the Angular version so I don't have to update the table all the time.

  • Latest version is using Angular 19

material-file-input

This project provides :

  • ngx-mat-file-input component, to use inside Angular Material mat-form-field
  • a FileValidator with acceptedMimeTypes, to limit the format types using the mime types
  • a FileValidator with maxContentSize, to limit the file size
  • a ByteFormatPipe to format the file size in a human-readable format
  • a previewUrls to receive the images/file as a url to show in a preview

For more code samples, have a look at the DEMO SITE or in the release notes.

Install

npm i ngx-custom-material-file-input

API reference

MaterialFileInputModule

import { MaterialFileInputModule } from 'ngx-custom-material-file-input';

@NgModule({
  imports: [
    // the module for this lib
    MaterialFileInputModule
  ]
})

NGX_MAT_FILE_INPUT_CONFIG token (optional):

Change the unit of the ByteFormat pipe

export const config: FileInputConfig = {
  sizeUnit: 'Octet'
};

// add with module injection
providers: [{ provide: NGX_MAT_FILE_INPUT_CONFIG, useValue: config }];

FileInputComponent

selector: <ngx-mat-file-input>

implements: MatFormFieldControl from Angular Material

Additionnal properties

NameDescription
@Input() valuePlaceholder: stringPlaceholder for file names, empty by default
@Input() multiple: booleanAllows multiple file inputs, false by default
@Input() autofilled: booleanWhether the input is currently in an autofilled state. If property is not present on the control it is assumed to be false.
@Input() accept: stringAny value that accept attribute can get. more about "accept"
value: FileInputForm control value
empty: booleanWhether the input is empty (no files) or not
clear(): (event?) => voidRemoves all files from the input
previewUrls: string[]Contains a generate url in memory to show the previews of the files
@Input() defaultIconBase64: stringSet the default icon for the previews of files that are not images, is a base64 string, example: data:image/svg+xml;base64,PHN2ZyB.....

ByteFormatPipe

Example

<span>{{ 104857600 | byteFormat }}</span>

Output: 100 MB

FileValidator

NameDescriptionError structure
maxContentSize(value: number): ValidatorFnLimit the total file(s) size to the given value{ actualSize: number, maxSize: number }
acceptedMimeTypes(value: string): ValidatorFnLimit the mime types valid to use given value{ validTypes: string }
19.0.1

4 months ago

19.0.0

7 months ago

18.0.0

1 year ago

4.0.0

2 years ago

3.0.0

2 years ago

2.0.0

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago