image-quad
v1.0.0
Published
Simple little component to display images in grid with fashion.
Maintainers
Readme
ImageBlock
This library was created with the latest angular version and is tested against an Angular 17 app.
- A simple
componentto be used within Angular applications. - This component display images in a grid with fashion.
- Several behaviour can be and suggested to be configured.
- It is developed using
Angular >=17.0.0and its introduces features like standalone components, new template controls and recursive component hierarchy. - Library location:
projects/image-quaddirectory of this repository.
Examples/Demo
- A simple Example can be found on Azure: https://proud-dune-0a9216403.4.azurestaticapps.net.
Installation of the library
The library is available as an npm package. To install the package run the following command:
npm i image-quad
API
import { ImageQuadComponent } from 'image-quad'
selector: ngx-image-quad
@Inputs()
| Input | Type | Required | Description | | ---------------- | ------- | -------------------------- | --------------------------------------------------------------------------------------------------------- | | mode | Mode | YES | Configure the behaviour of the layout with fixed predefined ones or with custom setups. Also can use random layouts. Available values: 'random', 'fullRandom', 'fixedOne', 'fixedTwo', 'fixedThree', {q1:true, q2:false, q3:true, q4: {q1:true}} | | imagePaths | string[] | YES | The list of images that will be randomly selected. E.g.: ./assets/image.png */ | | size | number | Optional, default: 160 | Size of level 1 image in pixel | | gap | number | Optional, default: 4 | Gap between the images in pixel | | level | number | Optional, default: 1 | Do not set this parameter manually | | animation | string | Optional, default: 'fadeAnimation' | Choose from predefined animations or disable it. Valid Values: 'fadeAnimation', 'spinAnimation', 'scaleAnimation', 'vortexAnimation', 'disabled' |
Usage
Library provides 1 standalone component, which as other modules can be imported to your application in the usual ways.
- Register the
ImageQuadComponentin your app module.
import { ImageQuadComponent } from 'image-quad';
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatAutocompleteModule, MatInputModule } from '@angular/material';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ImageQuadComponent } from 'image-quad';
import { AppComponent } from './app.component';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
ReactiveFormsModule,
MatInputModule,
MatAutocompleteModule,
HttpClientModule,
ImageQuadComponent
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}- Use
(ImageQuadComponent)in your component.
import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { AppService } from './app.service';
@Component({
selector: 'app-root',
template: `<h3>ImageQuad demo app</h3>
<div>
<ngx-image-quad [mode]="'random'" [imagePaths]="imagePaths" [size]="120" [gap]="2"></ngx-image-quad>
</div>
`
})
export class AppComponent implements OnInit {
imagePaths = ['./assets/image1.png','./assets/imageAB.png','./assets/image123.png'];
constructor() {}
}Configs
As a minimum, you need to specify mode and imagePaths:
<ngx-image-quad [mode]="'random'" [imagePaths]="imagePaths"></ngx-image-quad>For responsiveness you can detect screen size and set size parameter accordingly:
<ngx-image-quad [mode]="setting!" [imagePaths]="images!" [size]="screenSize == 'Small screen'? 60 : 200" [animation]="'spinAnimation'"></ngx-image-quad>