feat(ui-features): add the modals page

This commit is contained in:
Alexander Zhukov 2017-05-04 18:37:46 +03:00
parent c0efb43bd6
commit 8649247f87
7 changed files with 125 additions and 22 deletions

View file

@ -0,0 +1,14 @@
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">{{ modalHeader }}</h4>
<button class="close" aria-label="Close" (click)="closeModal()">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
{{ modalContent }}
</div>
<div class="modal-footer">
<button class="btn btn-primary confirm-btn" (click)="closeModal()">Save changes</button>
</div>
</div>

View file

@ -0,0 +1,26 @@
import { Component, OnInit } from '@angular/core';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
@Component({
selector: 'ngx-modal',
templateUrl: './modal.component.html'
})
export class NgxModalComponent implements OnInit {
modalHeader: string;
modalContent: string = `Lorem ipsum dolor sit amet,
consectetuer adipiscing elit, sed diam nonummy
nibh euismod tincidunt ut laoreet dolore magna aliquam
erat volutpat. Ut wisi enim ad minim veniam, quis
nostrud exerci tation ullamcorper suscipit lobortis
nisl ut aliquip ex ea commodo consequat.`;
constructor(private activeModal: NgbActiveModal) { }
ngOnInit() { }
closeModal() {
this.activeModal.close();
}
}

View file

@ -0,0 +1,12 @@
<div class="row">
<div class="col-md-12">
<nga-card>
<nga-card-header>Modals</nga-card-header>
<nga-card-body>
<button class="btn btn-success" (click)="showLargeModal()">Large modal</button>
<button class="btn btn-warning" (click)="showSmallModal()">Small modal</button>
<button class="btn btn-primary" (click)="showStaticModal()">Static modal</button>
</nga-card-body>
</nga-card>
</div>
</div>

View file

@ -0,0 +1,9 @@
:host {
display: block;
nga-card-body {
button {
margin-right: 10px;
}
}
}

View file

@ -1,15 +1,39 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { NgxModalComponent } from './modal/modal.component';
@Component({ @Component({
selector: 'ngx-modals', selector: 'ngx-modals',
template: ` styleUrls: ['./modals.component.scss'],
<p>modals works!</p> templateUrl: './modals.component.html',
`,
}) })
export class NgxModalsComponent implements OnInit { export class NgxModalsComponent implements OnInit {
constructor() { } constructor(private modalService: NgbModal) { }
ngOnInit() { } ngOnInit() { }
showLargeModal() {
const activeModal = this.modalService.open(NgxModalComponent, { size: 'lg' });
activeModal.componentInstance.modalHeader = 'Large Modal';
}
showSmallModal() {
const activeModal = this.modalService.open(NgxModalComponent, { size: 'sm' });
activeModal.componentInstance.modalHeader = 'Small Modal';
}
showStaticModal() {
const activeModal = this.modalService.open(NgxModalComponent, {
size: 'sm',
backdrop: 'static'
});
activeModal.componentInstance.modalHeader = 'Static modal';
activeModal.componentInstance.modalContent = `This is static modal, backdrop click
will not close it. Click × or confirmation button to close modal.`;
}
} }

View file

@ -40,19 +40,3 @@ const routes: Routes = [
exports: [RouterModule], exports: [RouterModule],
}) })
export class NgxUiFeaturesRoutingModule { } export class NgxUiFeaturesRoutingModule { }
export const routedComponents = [
NgxUiFeaturesComponent,
NgxButtonsComponent,
NgxGridComponent,
NgxIconsComponent,
NgxModalsComponent,
NgxFlatButtonsComponent,
NgxRaisedButtonsComponent,
NgxSizedButtonsComponent,
NgxDisabledButtonsComponent,
NgxIconButtonsComponent,
NgxDropdownButtonsComponent,
NgxLargeButtonsComponent,
NgxGroupButtonsComponent,
];

View file

@ -2,7 +2,38 @@ import { NgModule } from '@angular/core';
import { NgxSharedModule } from '../../@shared/shared.module'; import { NgxSharedModule } from '../../@shared/shared.module';
import { NgxUiFeaturesRoutingModule, routedComponents } from './ui-features-routing.module'; import { NgxUiFeaturesRoutingModule } from './ui-features-routing.module';
import { NgxUiFeaturesComponent } from './ui-features.component';
import { NgxButtonsComponent } from './buttons/buttons.component';
import { NgxGridComponent } from './grid/grid.component';
import { NgxModalsComponent } from './modals/modals.component';
import { NgxIconsComponent } from './icons/icons.component';
import { NgxFlatButtonsComponent } from './buttons/flat/flat.component';
import { NgxRaisedButtonsComponent } from './buttons/raised/raised.component';
import { NgxSizedButtonsComponent } from './buttons/sized/sized.component';
import { NgxDisabledButtonsComponent } from './buttons/disabled/disabled.component';
import { NgxIconButtonsComponent } from './buttons/icon/icon.component';
import { NgxDropdownButtonsComponent } from './buttons/dropdown/dropdown.component';
import { NgxGroupButtonsComponent } from './buttons/group/group.component';
import { NgxLargeButtonsComponent } from './buttons/large/large.component';
import { NgxModalComponent } from './modals/modal/modal.component';
export const NGX_UI_FEATURES_COMPONENTS = [
NgxUiFeaturesComponent,
NgxButtonsComponent,
NgxGridComponent,
NgxIconsComponent,
NgxModalsComponent,
NgxFlatButtonsComponent,
NgxRaisedButtonsComponent,
NgxSizedButtonsComponent,
NgxDisabledButtonsComponent,
NgxIconButtonsComponent,
NgxDropdownButtonsComponent,
NgxLargeButtonsComponent,
NgxGroupButtonsComponent,
NgxModalComponent,
];
@NgModule({ @NgModule({
imports: [ imports: [
@ -10,7 +41,10 @@ import { NgxUiFeaturesRoutingModule, routedComponents } from './ui-features-rout
NgxUiFeaturesRoutingModule, NgxUiFeaturesRoutingModule,
], ],
declarations: [ declarations: [
...routedComponents, ...NGX_UI_FEATURES_COMPONENTS,
],
entryComponents: [
NgxModalComponent,
], ],
}) })
export class NgxUiFeaturesModule { } export class NgxUiFeaturesModule { }