2.0.2 • Published 6 years ago

@pluritech/ng-drop-image v2.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

@pluritech/ng-drop-image

An angular component to help you to handle with an single or multiple image. The images can be inputed by user using the traditional select or the drop functionality.

Demo (This repository has also this demo)

Installation

$ npm install @pluritech/ng-drop-image --save

Using the ng-drop-image

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import the library
import { DropImageModule } from '@pluritech/ng-drop-image';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify the library as an import
    DropImageModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Once the library is imported, you can use drop-image component in your Angular application:

<div class="container">
  <div class="row">
    <pluri-drop-image btnSelect="Select"
      [localList]="myUpdatedImageList"
      [serverList]="myServerImageList"
      [singleImage]="false"
      [hasError]="true"
      errorText="The image is too small"
      defaultText="Please, select or drop an image"
      inputPlaceholder="Select an image"
      (onImageChange)="whenChange($event)"
      minHeigth=1000
      minHeigth=1000
      (onError)="whenError($event)"
      (onUpdateList)="whenUpdateLocalList($event)"
      (onLocalImageSetAsMain)="whenLocalImageSetAsMain($event)"
      (onLocalImageDelete)="whenLocalImageDelete($event)"
      (onServerImageSetAsMain)="whenServerImageSetAsMain($event)"
      (onServerImageDelete)="whenServerImageDelete($event)">
    </pluri-drop-image>
  </div>
</div>

And, in the typescript side we have the following

export class AppComponent implements OnInit {
  title = 'ng-drop-image';

  public myUpdatedImageList: Base64Image[] = [];
  public myServerImageList: any[] = [];
  ngOnInit() {
    fetch('https://randomuser.me/api/?results=4')
    .then(data => data.json())
    .then(data => data.results)
    .then(data => this.myServerImageList = data.map(person => {
      return {main: false, path: person.picture.large}
    }));
  }

  whenChange(image: Base64Image): void {
    console.log('image changed', image);
  }

  whenError(error: ErrorPicture): void {
    console.log('error picture', error);
  }

  whenUpdateLocalList(list: Base64Image[]): void {
    console.log('list updated', list);
  }

  whenLocalImageSetAsMain(image: Base64Image): void {
    console.log('image to set as main', image);
    image.main = true;
  }

  whenLocalImageDelete(image: Base64Image): void {
    console.log('image to delete', image);
    const index = this.myUpdatedImageList.indexOf(image);
    this.myUpdatedImageList.splice(index, 1);
  }

  whenServerImageSetAsMain(image: any): void {
    console.log('image to set as main in server', image);
    image.main = true;
  }

  whenServerImageDelete(image: any): void {
    console.log('image to delete in server', image);
    const index = this.myServerImageList.indexOf(image);
    this.myServerImageList.splice(index, 1);
  }

Parameters

ParameterDescription
btnSelectThe text of 'select image' button
hasErrorAn boolean expression to show the error text
errorTextThe error text
defaultTextThe default text, something like... 'Please, drop an image
inputPlaceholderThe text to be show in the blocked input
singleImageAn boolean to indicate if you want to work with a single image or multiple. Default is true
imagePathThe path of an image to show in the template, it can be a base64 or a image url, only if you're using an single image
minWidthMin width in pixels of any image inserted, default is null, so, every image will be accepted.
minHeigthMin heigth of any image inserted, default is null, so, every image will be accepted
onErrorAn function to call when has an error with the image
onImageChangeAn function to call when the image have changed, only if you're using an single image
localListThe local list of images need to be of type Base64Image
onLocalImageSetAsMainAn function to call when an local image is seted as main
onLocalImageDeleteAn function to call when an local image is deleted
onUpdateListAn function to call every time the list is updated, it emits the entire list
serverListThe server list of images, type any, but, it need to have the propertie path and the propertie main
onServerImageSetAsMainAn function to call when an server image is seted as main
onServerImageDeleteAn function to call when an server image is deleted

To do

  • Dont know yet

Feel free to make your pull request.

Authors

License

MIT ©

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.4

6 years ago

1.0.3

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago