UNPKG

ngx-bladex

Version:

A simplistic and customizable blade component for Angular

156 lines (106 loc) 3.74 kB
# NgxBlade2 [![Travis](https://travis-ci.com/karnavpargi/ngx-bladex.svg?branch=master)](https://travis-ci.com/karnavpargi/ngx-bladex) [![npm](https://img.shields.io/npm/v/ngx-bladex.svg)](https://www.npmjs.com/package/ngx-bladex) [![npm](https://img.shields.io/npm/dt/ngx-bladex.svg)](https://www.npmjs.com/package/ngx-bladex) A simplistic blade component for Angular with minimize/maximize and a close button. ## [Forked from ngx-blade](https://www.npmjs.com/package/ngx-blade) ## [Stackblitz Demo](https://stackblitz.com/edit/angular-ngx-blade) ## Compatibility | ngx-bladex | Angular | | ---------- | ------- | | 18.2.0 | >=16.x.x| | 15.0.0 | 15.x.x | | 14.0.0 | 14.x.x | | 13.0.0 | 13.x.x | | 12.0.0 | 12.x.x | | 11.0.0 | 11.x.x | | 10.0.0 | 10.x.x | | 9.0.0 | 9.x.x | ## Installation **Step 1**: Install NPM package ```bash npm i ngx-bladex --save ``` **Step 2**: Import `NgxBladeModule` into in your module ##### Skip this if you are using standalone components ```typescript import { NgxBladeModule } from 'ngx-bladex'; @NgModule({ //.. imports: [ NgxBladeModule, .. ] }) ``` **Step 2.1**: To use standalone component Import `NgxBladeComponent` into in your component ##### Skip this if you are using Module approach ```typescript import { NgxBladeComponent } from 'ngx-bladex'; @Component({ //.. imports: [ NgxBladeComponent, .. ] }) ``` --- ### `NgxBladeComponent` #### Selector ```html <ngx-blade></ngx-blade> ``` #### Inputs - `width: number` - Width of the blade in percentage relative to the browser window. - `config: BladeConfig` - Blade configuration properties. See [BladeConfig](#BladeConfig) #### Outputs - `onClose` - Emitted when close button is clicked. if `closeButton` is set as `false`, this event will never be emitted. ### `BladeConfig` contains the following properties ```typescript export interface BladeConfig { closeButton: boolean; // default: true maximizeButton: boolean; // default: true isModal: boolean; // default: false } ``` - `closeButton: boolean` - specify whether blade should contain a close button. - `maximizeButton: boolean` - specify whether blade should contain the minimize/maxime button. - `isModal: boolean` - specify if the blade should behave similar a modal dialog. If a config is not provided as input, the default values will be used. ### Directives The following directives should be used within the `<ngx-blade>` element. - `ngxBladeHeader` - Blade Header element - `ngxBladeBody` - Blade body element - `ngxBladeFooter` - Blade footer element ## Sample Usage ```html <ngx-blade width="50" (onClose)="onBladeClose()" *ngIf="showBlade" #blade> <div ngxBladeHeader>Blade title</div> <div ngxBladeBody> <div class="custom"> <h4>Lorem Ipsum</h4> <button type="button" (click)="blade.close()">Close blade</button> </div> <!-- Not only normal html entities, but components can also be used --> <my-component></my-component> </div> <div ngxBladeFooter>Blade Footer</div> </ngx-blade> ``` --- ## Theme customisation Since v0.3.0, ngx-blade supports theme customisation using SCSS variables. The following SCSS variables can be customised ```SCSS // blade border $ngxBladeBorderColor // blade header $ngxBladeHeaderBackground $ngxBladeHeaderTextColor // blade body $ngxBladeBodyBackground $ngxBladeBodyTextColor // blade header action buttons (Minimize/Maximize, Close) $ngxBladeActionButtonBackground $ngxBladeCloseButtonHoverBackground // blade footer $ngxBladeFooterBackground $ngxBladeFooterTextColor ``` ## [Theme Customisation Demo](https://stackblitz.com/edit/angular-ngx-blade-theme-customization?file=src/styles.scss)