@ruc-lib/multi-file-upload
v3.1.1
Published
RUC Multifile Upload Component basically allows you to select multiple files at a time. The selected file/files will be visible below with 2 features of submit and delete option.
Downloads
135
Keywords
Readme
ruclib-multi-file-upload
RUC Multifile Upload Component basically allows you to select multiple files at a time. The selected file/files will be visible below with 2 features of submit and delete option.
Features
When you submit the file you will get a progressbar view which represents the size of the file and the percentage of the file getting submitted so for this individually each file can be submitted to the api given via the input of the selectors.
Then second option is delete in which if : If there is a delete api, then it will delete file from there and if there is no any delete api then it will delete the file from the list.
Installation guide
Install complete library
npm install @uxpractice/ruc-lib
Install individual component
If users only need the multi file upload component, they can install it separately
npm install @ruc-lib/multi-file-upload
Version Compatibility
Please ensure you install the correct version of @ruc-lib/multi-file-upload based on your Angular version.
| Angular Version | Compatible @ruc-lib/multi-file-upload Version |
|--------------------|-----------------------------------------------------|
| 15.x.x | npm install @ruc-lib/multi-file-upload@^3.0.0 |
| 16.x.x | npm install @ruc-lib/multi-file-upload@^3.0.0 |
Usage
import required modules
for library
import { RuclibMultiFileUploadModule } from '@uxpractice/ruc-lib/multi-file-upload'
for seperate package
import { RuclibMultiFileUploadModule } from '@ruc-lib/multi-file-upload'
use component selector
<uxp-ruclib-multi-file-upload [rucInputData]="inputObjectDataMultiFileUpload"
[customTheme]="customTheme" (rucEvent)="passEvent($event)"></uxp-ruclib-multi-file-upload>Input and Output
Inputs
rucInputData -> It is the configuration to be passed in the multi-file upload component.
customTheme -> It is the name of the theme.
Output
rucEvent -> is the event which will be fired when file is uploaded or deleted.
rucInputData (sample object)
Detail definition of the each property can be found in type definition file.
inputObjectDataMultiFileUpload = {
multifileSelection: true,
displayThumbnail: true,
label: 'Choose File',
uploadUrl: '/api/upload',
deleteUrl: '/api/delete',
};Contribution
Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
Acknowledgements
Thank you for choosing the Multi file upload Component Library. If you have any feedback or suggestions, please let us know!
ruclib-multi-file-upload
A powerful and intuitive multi-file upload component for Angular applications. It allows users to select multiple files, view thumbnails for images, and manage uploads with features like individual submission, deletion, and progress tracking.
Installation Guide
To use the Multi-File Upload component, you can install the entire RUC library or just this specific component.
Install the Entire Library
npm install @uxpractice/ruc-libInstall Individual Component
If you only need the Multi-File Upload component:
npm install @ruc-lib/multi-file-uploadUsage
1. Import the Module
In your Angular module file (e.g., app.module.ts), import the RuclibMultiFileUploadModule:
import { RuclibMultiFileUploadModule } from '@ruc-lib/multi-file-upload';
import { AppComponent } from './app.component';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
HttpClientModule,
RuclibMultiFileUploadModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}2. Use the Component
In your component's template, use the <uxp-ruclib-multi-file-upload> selector and pass the configuration object to the rucInputData input.
<uxp-ruclib-multi-file-upload
[rucInputData]="inputObjectDataMultiFileUpload"
[customTheme]="'custom-theme'"
(rucEvent)="handleEvent($event)">
</uxp-ruclib-multi-file-upload>API Reference
Component Inputs
| Input | Type | Description |
|----------------|--------------------------|--------------------------------------------------|
| rucInputData | MultifiledefaultConfig | The main configuration object for the component. |
| customTheme | string | An optional CSS class for custom theming. |
Component Outputs
| Output | Type | Description |
|------------|--------------------|--------------------------------------------------------------------------------------------------|
| rucEvent | EventEmitter<any> | Emits an event when a file is selected, uploaded, or deleted. The event object contains eventName and eventOutput. |
MultifiledefaultConfig
This is the main configuration object for the multi-file-upload component.
| Property | Type | Description |
|--------------------|-----------|---------------------------------------------------------------------------------------------------------|
| multifileSelection | boolean | If true, allows multiple files to be selected at once. |
| displayThumbnail | boolean | If true, displays a thumbnail preview for image files (PNG format). |
| label | string | The label for the file selection button. |
| uploadUrl | string | The URL endpoint for uploading files. |
| deleteUrl | string | An optional URL endpoint for deleting files. If not provided, files are only removed from the list. |
Example Configuration
Here's an example of how to configure the Multi-File Upload component in your component's TypeScript file.
import { Component } from '@angular/core';
import { MultifiledefaultConfig } from '@ruc-lib/multi-file-upload';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
})
export class AppComponent {
inputObjectDataMultiFileUpload: MultifiledefaultConfig = {
multifileSelection: true,
displayThumbnail: true,
label: 'Choose File',
uploadUrl: '/api/upload',
deleteUrl: '/api/delete',
};
handleEvent(event: any) {
console.log(event.eventName, event.eventOutput);
}
}⚠️ IMPORTANT: Custom Theme Usage in Angular Material
When implementing custom themes, such as:
.custom-theme-1 {
@include angular-material-theme($custom-theme);
}
// You must also include the typography mixin to ensure text styles are applied correctly as shown below:
.custom-theme-1 {
@include angular-material-theme($custom-theme);
@include mat.typography-level($theme-custom-typography-name, body-1);
}Contribution
Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
Acknowledgements
Thank you for choosing the Multi-File Upload Component. If you have any feedback or suggestions, please let us know!
