@doroteati/mia-core
TypeScript icon, indicating that this package has built-in type declarations

16.0.0 • Public • Published

Mia Core Angular

Description

Es la libreria base de todos los proyectos de Angular en AgencyCoda utilizado en Dorotea. Contiene varias entidades, componentes y directrices que pueden ser util en todos los proyectos.

Configuracion inicial

Importar el modulo y agregar como provider en el app.module, para configurar la URL base que utilizaran los servicios:

import { MiaCoreModule, MIA_CORE_PROVIDER, MIA_GOOGLE_STORAGE_PROVIDER } from '@doroteati/mia-core';

  ...
  imports: [
    ...,
    MiaCoreModule
  ],
  providers: [
    {
      provide: MIA_CORE_PROVIDER,
      useValue: {
        baseUrl: 'https://doroteati.test/api/'
      }
    },
  ]
  ...

Casos de usos

Utilizar Google Cloud Storage para subida de archivos

Primer paso configurar el provider: MIA_GOOGLE_STORAGE_PROVIDER:

{
    provide: MIA_GOOGLE_STORAGE_PROVIDER,
    useValue: {
        bucket: 'name_of_bucket'
    }
}

Ya con esto, muchos de los elementos (Ejemplo: PhotoField en MiaForm, etc) de las librerias que permiten subir archivos, van a funcionar adecuadamente.

  • Metodo 1:

Utilizar directamente la directiva: miaFileGoogle, el unico evento importante es: "fileUploaded":

<input #inputFile miaFileGoogle (fileUploaded)="onUploadFile($event)" (startUpload)="isUploading = true" type="file" style="display: none;" accept="image/*" />

<button (click)="inputFile.click()">Upload file</button>
onUploadFile(data: MiaFile): void {
    data.url; // URL Publica del archivo
    data.size; // Tamaño en bytes del archivo
    data.name; // Nombre del archivo sin ningun proceso (El mismo nombre que el usuario ve en su maquina cuando selecciona el archivo)
}

De esta manera ya se encarga directamente de subir el archivo seleccionado

  • Metodo 2:

Si por algun motivo usted quiere generar su propio HTML y seleccionador de archivo, usted puede utilizar directamente el servicio:

import { GoogleStorageService } from '@doroteati/mia-core';

constructor(
    protected googleStorage: GoogleStorageService,
}

upload(file: File) {
    ...


    this.googleStorage.uploadDirect(file).subscribe(res => {
        if(!res.success){
            // No se ha subido correctamente
            return;
        }

        let data: MiaFile = res.response;
        data.url; // URL Publica del archivo
        data.size; // Tamaño en bytes del archivo
        data.name; // Nombre del archivo sin ningun proceso (El mismo nombre que el usuario ve en su maquina cuando selecciona el archivo)
    });

}

Sumar Drag and Drop a la subida de archivos

Para esto vamos a utilizar la directiva: "miaFileDragAndDrop":

<div miaFileDragAndDrop class="upload-component box" (fileSelected)="onSelectedFile($event)">
  <input #inputFile miaFileGoogle (fileUploaded)="onUploadFile($event)" (startUpload)="isUploading = true" type="file" style="display: none;" accept="image/*" />

  <button (click)="inputFile.click()">Upload file</button>
</div>
@ViewChild(FileGoogleDirective) fileGoogle!: FileGoogleDirective;

onSelectedFile(file: File) {
    this.fileGoogle.uploadFile(file);
}

Readme

Keywords

none

Package Sidebar

Install

npm i @doroteati/mia-core

Weekly Downloads

1

Version

16.0.0

License

none

Unpacked Size

245 kB

Total Files

50

Last publish

Collaborators

  • heiderdev
  • leinerdev