0.3.4 • Published 7 years ago
ngx-blade v0.3.4
NgxBlade
A simplistic blade component for Angular with minimize/maximize and a close button.
Stackblitz Demo
Installation
Step 1: Install NPM package
npm i ngx-blade --saveStep 2: Import NgxBladeModule into in your module
import { NgxBladeModule } from 'ngx-blade';
@NgModule({
//..
imports: [ NgxBladeModule, .. ]
})Step 3: Add the default theme to src/styles.scss file.
@import "~ngx-blade/default.scss";NgxBladeComponent
Selector
<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
Outputs
onClose- Emitted when close button is clicked. ifcloseButtonis set asfalse, this event will never be emitted.
BladeConfig
contains the following properties
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 elementngxBladeBody- Blade body elementngxBladeFooter- Blade footer element
Sample Usage
<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
// blade border
$ngxBladeBorderColor
// blade header
$ngxBladeHeaderBackground
$ngxBladeHeaderTextColor
// blade body
$ngxBladeBodyBackground
$ngxBladeBodyTextColor
// blade header action buttons (Minimize/Maximize, Close)
$ngxBladeActionButtonBackground
$ngxBladeCloseButtonHoverBackground
// blade footer
$ngxBladeFooterBackground
$ngxBladeFooterTextColorFor example, if you like to change the blade's header color, all you have to do is to assign ngxBladeHeaderBackground your preferred color before the default theme is imported.
/src/styles.scss
$ngxBladeHeaderBackground: rgba(127, 0, 0, 1); // <---
@import "~ngx-blade/default.scss";