@@ -6,6 +6,7 @@ import { LoginComponent } from './pages/login/login.component'; | |||
import { MockComponent } from './widgets/mock/mock.component'; | |||
import { RegisterBusinessComponent } from './pages/register-business/register-business.component'; | |||
import { TabsComponent } from './layout/tabs/tabs.component'; | |||
import { InvestigateBusinessEntitiesAndIndividualsComponent } from './pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component'; | |||
const routes: Routes = [ | |||
{ path: '', pathMatch: 'full', redirectTo: 'login' }, | |||
@@ -23,6 +24,9 @@ const routes: Routes = [ | |||
}, { | |||
path: 'register-business', | |||
component: RegisterBusinessComponent, | |||
}, { | |||
path: 'investigate-business-entities-and-individuals', | |||
component: InvestigateBusinessEntitiesAndIndividualsComponent, | |||
}] | |||
}, | |||
]; | |||
@@ -18,6 +18,10 @@ import { FileComponent } from './widgets/file/file.component'; | |||
import { DateInputComponent } from './widgets/form/date-input/date-input.component'; | |||
import { SelectInputComponent } from './widgets/form/select-input/select-input.component'; | |||
import { GenericInputComponent } from './widgets/form/generic-input/generic-input.component'; | |||
import { InvestigateBusinessEntitiesAndIndividualsComponent } from './pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component'; | |||
import { ViewCaseDetailsComponent } from './pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component'; | |||
import { ModifyCaseDetailsComponent } from './pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component'; | |||
import { AssignPanelComponent } from './pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component'; | |||
@NgModule({ | |||
declarations: [ | |||
@@ -35,7 +39,11 @@ import { GenericInputComponent } from './widgets/form/generic-input/generic-inpu | |||
FileComponent, | |||
DateInputComponent, | |||
SelectInputComponent, | |||
GenericInputComponent | |||
GenericInputComponent, | |||
InvestigateBusinessEntitiesAndIndividualsComponent, | |||
ViewCaseDetailsComponent, | |||
ModifyCaseDetailsComponent, | |||
AssignPanelComponent | |||
], | |||
imports: [ | |||
BrowserModule, | |||
@@ -1,7 +1,14 @@ | |||
<ul> | |||
<li *ngFor="let notification of notifications"> | |||
<h5> {{ notification.text }} </h5> | |||
<p *ngIf="notification.description"> {{ notification.description }} </p> | |||
<span class="time-stamp"> {{ notification.timeStamp }} </span> | |||
<a *ngIf="notification.redirectionUrl" [routerLink]="notification.redirectionUrl"> | |||
<h5> {{ notification.text }} </h5> | |||
<p *ngIf="notification.description"> {{ notification.description }} </p> | |||
<span class="time-stamp"> {{ notification.timeStamp }} </span> | |||
</a> | |||
<ng-container *ngIf="!notification.redirectionUrl"> | |||
<h5> {{ notification.text }} </h5> | |||
<p *ngIf="notification.description"> {{ notification.description }} </p> | |||
<span class="time-stamp"> {{ notification.timeStamp }} </span> | |||
</ng-container> | |||
</li> | |||
</ul> |
@@ -12,19 +12,23 @@ export class NotificationsComponent implements OnInit { | |||
description?: string, | |||
redirectionUrl?: string, | |||
}> = [{ | |||
text: "New name application has been submitted", | |||
description: "A new Applicant in the company name Kimao has applied for an appeal", | |||
timeStamp: "1 hour ago", | |||
text: 'New name application has been submitted', | |||
description: 'A new Applicant in the company name Kimao has applied for an appeal', | |||
timeStamp: '1 hour ago', | |||
}, { | |||
text: "Request to create a new Committee", | |||
timeStamp: "2 hours ago", | |||
text: 'Entity Corp. flagged for investigation', | |||
timeStamp: '2 days ago', | |||
redirectionUrl: '/tabs/investigate-business-entities-and-individuals', | |||
}, { | |||
text: "New name application has been submitted", | |||
description: "A new Applicant in the company name Kimao has applied for an appeal", | |||
timeStamp: "1 hour ago", | |||
text: 'Request to create a new Committee', | |||
timeStamp: '2 hours ago', | |||
}, { | |||
text: "Request to create a new Committee", | |||
timeStamp: "2 hours ago", | |||
text: 'New name application has been submitted', | |||
description: 'A new Applicant in the company name Kimao has applied for an appeal', | |||
timeStamp: '1 hour ago', | |||
}, { | |||
text: 'Request to create a new Committee', | |||
timeStamp: '2 hours ago', | |||
}]; | |||
constructor() { } | |||
@@ -34,38 +34,13 @@ | |||
<li> | |||
<div class="cell"> 2 </div> | |||
<div class="cell"> | |||
<h5> Application to register Person(s) Business </h5> | |||
<h5> Investigating Business Entities and Individuals </h5> | |||
<p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Animi sapiente beatae est nobis voluptatibus. Pariatur, unde enim libero dignissimos quos ipsa sed vitae ex illum rem, eius explicabo fugit nisi! </p> | |||
</div> | |||
<div class="cell"> 15 </div> | |||
<div class="cell"> | |||
<button [routerLink]="['/tabs/register-business']"> Apply </button> | |||
</div> | |||
</li> | |||
<li> | |||
<div class="cell"> 2 </div> | |||
<div class="cell"> | |||
<h5> Withdrawal of Name Application </h5> | |||
<p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Animi sapiente beatae est nobis voluptatibus. Pariatur, unde enim libero dignissimos quos ipsa sed vitae ex illum rem, eius explicabo fugit nisi! </p> | |||
</div> | |||
<div class="cell"> 15 </div> | |||
<div class="cell"> | |||
<button [routerLink]="['/tabs/register-business']"> Apply </button> | |||
<button [routerLink]="['/tabs/investigate-business-entities-and-individuals']"> Apply </button> | |||
</div> | |||
</li> | |||
</ul> | |||
</section> | |||
<div class="table-holder"> | |||
<app-table | |||
[headings]="['A', 'B', 'C']" | |||
[tableDetails]="[['Val 1', 'Val 2 ', 'Val 3'], ['V1', 'V2', 'V3'], ['A1', 'A2', 'A3']]" | |||
></app-table> | |||
</div> | |||
<div class="key-value-holder"> | |||
<app-key-value-holder [keyValues]="keyValues"></app-key-value-holder> | |||
</div> | |||
<app-file [name]="'Downladable Table'" [sizeInBytes]="30000" [extension]="'xls'" [link]="'http://localhost:4200/assets/icons/bell.svg'"></app-file> | |||
</section> |
@@ -0,0 +1 @@ | |||
<app-select-entities></app-select-entities> |
@@ -0,0 +1,25 @@ | |||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||
import { AssignPanelComponent } from './assign-panel.component'; | |||
describe('AssignPanelComponent', () => { | |||
let component: AssignPanelComponent; | |||
let fixture: ComponentFixture<AssignPanelComponent>; | |||
beforeEach(async () => { | |||
await TestBed.configureTestingModule({ | |||
declarations: [ AssignPanelComponent ] | |||
}) | |||
.compileComponents(); | |||
}); | |||
beforeEach(() => { | |||
fixture = TestBed.createComponent(AssignPanelComponent); | |||
component = fixture.componentInstance; | |||
fixture.detectChanges(); | |||
}); | |||
it('should create', () => { | |||
expect(component).toBeTruthy(); | |||
}); | |||
}); |
@@ -0,0 +1,15 @@ | |||
import { Component, OnInit } from '@angular/core'; | |||
@Component({ | |||
selector: 'app-assign-panel', | |||
templateUrl: './assign-panel.component.html', | |||
styleUrls: ['./assign-panel.component.scss'] | |||
}) | |||
export class AssignPanelComponent implements OnInit { | |||
constructor() { } | |||
ngOnInit(): void { | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
<header class="tab-header"> | |||
<h2> | |||
Investigating Business Entities and Individuals | |||
</h2> | |||
</header> | |||
<section class="bread-crumbs"> | |||
<span [routerLink]="['/tabs/e-services']"> E-Services </span> / | |||
<span class="current-page"> Investigating Business Entities and Individuals </span> | |||
</section> | |||
<app-view-case-details | |||
*ngIf="state === 'VIEW INITIAL DETAILS'" | |||
[hasEnoughData]="hasEnoughData" | |||
(updateHasEnoughData)="hasEnoughData = $event" | |||
></app-view-case-details> | |||
<app-modify-case-details | |||
*ngIf="state === 'ENTER MORE DETAILS'" | |||
></app-modify-case-details> | |||
<app-assign-panel | |||
*ngIf="state === 'ASSIGN COMMITTEE'" | |||
></app-assign-panel> | |||
<div class="form-action-buttons"> | |||
<button class="common-button neutral" *ngIf="stateHistory.length > 0" (click)="goBack()"> | |||
Back | |||
</button> | |||
<button class="common-button" (click)="proceed()"> | |||
Proceed | |||
</button> | |||
</div> |
@@ -0,0 +1,329 @@ | |||
.form-action-buttons { | |||
text-align: center; | |||
margin-bottom: 2rem; | |||
button { | |||
&:first-child { | |||
margin-right: 2rem; | |||
} | |||
} | |||
} | |||
.form { | |||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
width: calc(70% - 2rem); | |||
padding: 4rem; | |||
margin: 0 auto; | |||
.input-holder { | |||
width: calc(100% - 2rem); | |||
} | |||
} | |||
.acknowledgement { | |||
width: 100%; | |||
margin: 0 auto; | |||
h2 { | |||
font-size: 2rem; | |||
color: var(--dark-grey); | |||
filter: brightness(80%); | |||
font-weight: 500; | |||
margin: 2rem 2rem 3rem; | |||
} | |||
.container { | |||
width: calc(70% - 2rem); | |||
margin: 2rem auto; | |||
@media print { | |||
width: calc(100% - 2rem); | |||
} | |||
} | |||
.bill-container { | |||
width: 70%; | |||
box-shadow: 0 0 10px var(--shadow-grey); | |||
border-radius: 1rem; | |||
overflow: hidden; | |||
margin: 0 auto 5rem; | |||
@media print { | |||
width: 100%; | |||
} | |||
} | |||
.check-icon { | |||
display: block; | |||
width: 58px; | |||
height: auto; | |||
margin: 3rem auto 2rem; | |||
} | |||
h3 { | |||
font-size: 3rem; | |||
font-weight: normal; | |||
text-align: center; | |||
color: var(--success); | |||
} | |||
.bill-breakup { | |||
margin-top: 3rem; | |||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
list-style: none; | |||
li { | |||
margin: 1.8rem; | |||
width: 100%; | |||
} | |||
label { | |||
display: block; | |||
color: var(--dark-grey); | |||
font-size: 1.6rem; | |||
filter: brightness(80%); | |||
} | |||
.value { | |||
display: block; | |||
color: var(--dark-grey); | |||
opacity: 0.8; | |||
font-size: 1.6rem; | |||
letter-spacing: 0.5px; | |||
line-height: 1.6; | |||
margin-top: 1rem; | |||
&.active { | |||
color: var(--highlight); | |||
font-weight: normal; | |||
} | |||
} | |||
} | |||
.form-action-buttons { | |||
margin: 2rem 1.5rem; | |||
@media print { | |||
display: none; | |||
} | |||
} | |||
.total-amount { | |||
text-align: center; | |||
overflow: hidden; | |||
padding: 1rem; | |||
position: relative; | |||
&::before { | |||
content: ''; | |||
position: absolute; | |||
left: 0; | |||
top: 0; | |||
width: 100%; | |||
height: 100%; | |||
background-color: var(--footer-grey); | |||
opacity: 0.4; | |||
} | |||
& > * { | |||
position: relative; | |||
} | |||
label { | |||
font-size: 2rem; | |||
color: var(--dark-grey); | |||
} | |||
span { | |||
margin-left: 1rem; | |||
font-size: 2.4rem; | |||
color: var(--highlight); | |||
} | |||
} | |||
.message-board { | |||
padding: 0 2rem; | |||
list-style: none; | |||
@media print { | |||
display: none; | |||
} | |||
h5 { | |||
font-size: 1.6rem; | |||
color: var(--dark-grey); | |||
filter: brightness(80%); | |||
font-weight: 500; | |||
} | |||
li { | |||
margin: 1.5rem 0; | |||
line-height: 1.7; | |||
letter-spacing: 0.5px; | |||
font-size: 1.4rem; | |||
color: var(--dark-grey); | |||
opacity: 0.8; | |||
a { | |||
color: var(--highlight); | |||
font-weight: 500; | |||
} | |||
} | |||
} | |||
} | |||
.receipt { | |||
width: calc(100% - 4rem); | |||
margin: 0 auto; | |||
h2 { | |||
font-size: 2rem; | |||
color: var(--dark-grey); | |||
filter: brightness(80%); | |||
font-weight: 500; | |||
margin: 2rem 0; | |||
} | |||
.bill-breakup { | |||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
list-style: none; | |||
li { | |||
margin-bottom: 1rem; | |||
width: 100%; | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-start; | |||
} | |||
label { | |||
display: block; | |||
color: var(--dark-grey); | |||
font-size: 1.4rem; | |||
} | |||
.value { | |||
display: block; | |||
color: var(--dark-grey); | |||
opacity: 0.8; | |||
font-size: 1.6rem; | |||
letter-spacing: 0.5px; | |||
line-height: 1.6; | |||
margin-left: 1rem; | |||
} | |||
} | |||
.table { | |||
margin: 2rem auto; | |||
width: 100%; | |||
border-radius: 1rem; | |||
overflow: auto; | |||
border: 2px solid var(--border-grey); | |||
min-height: 10rem; | |||
header { | |||
background: linear-gradient(90deg, var(--secondary) 0%, var(--primary)); | |||
color: white; | |||
font-size: 1.6rem; | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-start; | |||
height: 5.5rem; | |||
font-weight: 300; | |||
letter-spacing: 0.5px; | |||
} | |||
.cell { | |||
width: calc(100% / 6); | |||
@media print { | |||
word-break: break-all; | |||
} | |||
&:nth-child(1) { | |||
text-align: center; | |||
width: 10rem; | |||
} | |||
&:nth-child(2) { | |||
width: calc(20% + (10% - 10rem)); | |||
} | |||
&:nth-child(3) { | |||
width: 20%; | |||
} | |||
&:nth-child(4) { | |||
width: 20%; | |||
} | |||
&:nth-child(5) { | |||
width: 10%; | |||
} | |||
&:nth-child(3) { | |||
width: 20%; | |||
} | |||
} | |||
ul { | |||
list-style: none; | |||
} | |||
li { | |||
display: flex; | |||
align-items: flex-start; | |||
justify-content: flex-start; | |||
padding: 2rem 0; | |||
&:nth-child(even) { | |||
background-color: var(--border-grey); | |||
} | |||
.cell { | |||
font-size: 1.4rem; | |||
color: var(--dark-grey); | |||
line-height: 1.7; | |||
} | |||
} | |||
} | |||
.message-board { | |||
width: 100%; | |||
margin: 4rem 0; | |||
list-style: none; | |||
h5 { | |||
font-size: 1.6rem; | |||
color: var(--dark-grey); | |||
filter: brightness(80%); | |||
font-weight: 500; | |||
margin-bottom: 1rem; | |||
} | |||
li { | |||
margin: 0.5rem 0; | |||
line-height: 1.7; | |||
letter-spacing: 0.5px; | |||
font-size: 1.4rem; | |||
color: var(--dark-grey); | |||
opacity: 0.8; | |||
a { | |||
color: var(--highlight); | |||
font-weight: 500; | |||
} | |||
} | |||
} | |||
.form-action-buttons { | |||
text-align: left; | |||
@media print { | |||
display: none; | |||
} | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||
import { InvestigateBusinessEntitiesAndIndividualsComponent } from './investigate-business-entities-and-individuals.component'; | |||
describe('InvestigateBusinessEntitiesAndIndividualsComponent', () => { | |||
let component: InvestigateBusinessEntitiesAndIndividualsComponent; | |||
let fixture: ComponentFixture<InvestigateBusinessEntitiesAndIndividualsComponent>; | |||
beforeEach(async () => { | |||
await TestBed.configureTestingModule({ | |||
declarations: [ InvestigateBusinessEntitiesAndIndividualsComponent ] | |||
}) | |||
.compileComponents(); | |||
}); | |||
beforeEach(() => { | |||
fixture = TestBed.createComponent(InvestigateBusinessEntitiesAndIndividualsComponent); | |||
component = fixture.componentInstance; | |||
fixture.detectChanges(); | |||
}); | |||
it('should create', () => { | |||
expect(component).toBeTruthy(); | |||
}); | |||
}); |
@@ -0,0 +1,42 @@ | |||
import { Component, OnInit } from '@angular/core'; | |||
type State = 'VIEW INITIAL DETAILS'|'ENTER MORE DETAILS'|'ASSIGN COMMITTEE'; | |||
@Component({ | |||
selector: 'app-investigate-business-entities-and-individuals', | |||
templateUrl: './investigate-business-entities-and-individuals.component.html', | |||
styleUrls: ['./investigate-business-entities-and-individuals.component.scss'] | |||
}) | |||
export class InvestigateBusinessEntitiesAndIndividualsComponent implements OnInit { | |||
hasEnoughData = false; | |||
state: State = 'VIEW INITIAL DETAILS'; | |||
stateHistory: Array<State> = []; | |||
constructor() { } | |||
proceed() { | |||
this.stateHistory.push(this.state); | |||
switch (this.state) { | |||
case 'VIEW INITIAL DETAILS': | |||
if (this.hasEnoughData) { | |||
this.state = 'ASSIGN COMMITTEE'; | |||
} else { | |||
this.state = 'ENTER MORE DETAILS'; | |||
} | |||
} | |||
} | |||
goBack() { | |||
const state = this.stateHistory.pop(); | |||
if (state) { | |||
this.state = state; | |||
} | |||
} | |||
ngOnInit(): void { | |||
} | |||
} |
@@ -0,0 +1 @@ | |||
<p>modify-case-details works!</p> |
@@ -0,0 +1,25 @@ | |||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||
import { ModifyCaseDetailsComponent } from './modify-case-details.component'; | |||
describe('ModifyCaseDetailsComponent', () => { | |||
let component: ModifyCaseDetailsComponent; | |||
let fixture: ComponentFixture<ModifyCaseDetailsComponent>; | |||
beforeEach(async () => { | |||
await TestBed.configureTestingModule({ | |||
declarations: [ ModifyCaseDetailsComponent ] | |||
}) | |||
.compileComponents(); | |||
}); | |||
beforeEach(() => { | |||
fixture = TestBed.createComponent(ModifyCaseDetailsComponent); | |||
component = fixture.componentInstance; | |||
fixture.detectChanges(); | |||
}); | |||
it('should create', () => { | |||
expect(component).toBeTruthy(); | |||
}); | |||
}); |
@@ -0,0 +1,15 @@ | |||
import { Component, OnInit } from '@angular/core'; | |||
@Component({ | |||
selector: 'app-modify-case-details', | |||
templateUrl: './modify-case-details.component.html', | |||
styleUrls: ['./modify-case-details.component.scss'] | |||
}) | |||
export class ModifyCaseDetailsComponent implements OnInit { | |||
constructor() { } | |||
ngOnInit(): void { | |||
} | |||
} |
@@ -0,0 +1,30 @@ | |||
<div class="screen-holder"> | |||
<h3>Case details</h3> | |||
<app-key-value-holder [keyValues]="companyDetails"></app-key-value-holder> | |||
<h3>Board of directors</h3> | |||
<app-table [headings]="boardDirectorHeadings" [data]="boardDirectorData"></app-table> | |||
<h3>Documents</h3> | |||
<div class="files-holder"> | |||
<app-file | |||
name="Account statement" | |||
[sizeInBytes]="300000" | |||
extension="xls" | |||
link="/assets/files/spreadsheet.xlsx" | |||
></app-file> | |||
<app-file | |||
name="Formal complaint" | |||
[sizeInBytes]="240000" | |||
extension="docx" | |||
link="/assets/files/document.docx" | |||
></app-file> | |||
</div> | |||
<div class="prompt-data-outreach"> | |||
<label> | |||
<input type="checkbox" [(ngModel)]="hasEnoughData" (ngModelChange)="toggleHasData($event)"> | |||
<span>Is this data enough to proceed with investigation?</span> | |||
</label> | |||
</div> | |||
</div> |
@@ -0,0 +1,31 @@ | |||
.screen-holder { | |||
width: calc(70% - 2rem); | |||
padding: 4rem; | |||
margin: 0 auto; | |||
} | |||
h3 { | |||
font-size: 2rem; | |||
color: var(--dark-grey); | |||
filter: brightness(80%); | |||
font-weight: 500; | |||
margin: 2rem 0; | |||
} | |||
.files-holder { | |||
& > * { | |||
margin-right: 15px; | |||
} | |||
} | |||
.prompt-data-outreach { | |||
font-size: 1.4rem; | |||
color: var(--dark-grey); | |||
padding: 2rem; | |||
text-align: center; | |||
margin-top: 20px; | |||
input { | |||
margin-right: 10px; | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||
import { ViewCaseDetailsComponent } from './view-case-details.component'; | |||
describe('ViewCaseDetailsComponent', () => { | |||
let component: ViewCaseDetailsComponent; | |||
let fixture: ComponentFixture<ViewCaseDetailsComponent>; | |||
beforeEach(async () => { | |||
await TestBed.configureTestingModule({ | |||
declarations: [ ViewCaseDetailsComponent ] | |||
}) | |||
.compileComponents(); | |||
}); | |||
beforeEach(() => { | |||
fixture = TestBed.createComponent(ViewCaseDetailsComponent); | |||
component = fixture.componentInstance; | |||
fixture.detectChanges(); | |||
}); | |||
it('should create', () => { | |||
expect(component).toBeTruthy(); | |||
}); | |||
}); |
@@ -0,0 +1,53 @@ | |||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; | |||
import { KeyValue } from 'src/app/widgets/key-value-holder/key-value-holder.component'; | |||
@Component({ | |||
selector: 'app-view-case-details', | |||
templateUrl: './view-case-details.component.html', | |||
styleUrls: ['./view-case-details.component.scss'] | |||
}) | |||
export class ViewCaseDetailsComponent implements OnInit { | |||
@Output() updateHasEnoughData = new EventEmitter<boolean>(); | |||
@Input() hasEnoughData: boolean = false; | |||
companyDetails: Array<KeyValue> = [{ | |||
key: 'Business Name', | |||
value: 'Entity Corp.', | |||
}, { | |||
key: 'Company ID', | |||
value: 'ARN2021110294038', | |||
}, { | |||
key: 'Source of complaint', | |||
value: 'Automatic', | |||
}, { | |||
key: 'Reason for complaint', | |||
value: 'Unusual financial activity', | |||
}]; | |||
boardDirectorHeadings: Array<string> = [ | |||
'Name', | |||
'Member since', | |||
] | |||
boardDirectorData: Array<Array<string>> = [ | |||
[ | |||
'Rose E. Arthur', | |||
'July 26, 2010', | |||
], [ | |||
'David A. Bryant', | |||
'July 26, 2008', | |||
] | |||
] | |||
constructor() { } | |||
toggleHasData(toggle: boolean) { | |||
this.hasEnoughData = toggle; | |||
this.updateHasEnoughData.emit(toggle); | |||
} | |||
ngOnInit(): void { | |||
} | |||
} |
@@ -4,7 +4,7 @@ | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
background-image: url('../../assets/images/wall.jpeg'); | |||
background-image: url('../../../assets/images/wall.jpeg'); | |||
background-size: cover; | |||
background-position: center; | |||
height: 100vh; | |||
@@ -5,7 +5,7 @@ | |||
</header> | |||
<ol> | |||
<li *ngFor="let tableDetail of tableDetails; let i = index" [ngStyle]="{'grid-template-columns': '100px repeat(' + headings.length + ', 1fr)'}"> | |||
<li *ngFor="let tableDetail of data; let i = index" [ngStyle]="{'grid-template-columns': '100px repeat(' + headings.length + ', 1fr)'}"> | |||
<div class="cell"> {{ i + 1 }} </div> | |||
<div class="cell" *ngFor="let detail of tableDetail"> | |||
<p> {{ detail }} </p> | |||
@@ -7,7 +7,7 @@ import { Component, Input, OnInit } from '@angular/core'; | |||
}) | |||
export class TableComponent implements OnInit { | |||
@Input() headings: Array<string> = []; | |||
@Input() tableDetails: Array<Array<string>> = []; | |||
@Input() data: Array<Array<string>> = []; | |||
constructor() { } | |||