| @@ -6,6 +6,7 @@ import { LoginComponent } from './pages/login/login.component'; | |||||
| import { MockComponent } from './widgets/mock/mock.component'; | import { MockComponent } from './widgets/mock/mock.component'; | ||||
| import { RegisterBusinessComponent } from './pages/register-business/register-business.component'; | import { RegisterBusinessComponent } from './pages/register-business/register-business.component'; | ||||
| import { TabsComponent } from './layout/tabs/tabs.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 = [ | const routes: Routes = [ | ||||
| { path: '', pathMatch: 'full', redirectTo: 'login' }, | { path: '', pathMatch: 'full', redirectTo: 'login' }, | ||||
| @@ -23,6 +24,9 @@ const routes: Routes = [ | |||||
| }, { | }, { | ||||
| path: 'register-business', | path: 'register-business', | ||||
| component: RegisterBusinessComponent, | 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 { DateInputComponent } from './widgets/form/date-input/date-input.component'; | ||||
| import { SelectInputComponent } from './widgets/form/select-input/select-input.component'; | import { SelectInputComponent } from './widgets/form/select-input/select-input.component'; | ||||
| import { GenericInputComponent } from './widgets/form/generic-input/generic-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({ | @NgModule({ | ||||
| declarations: [ | declarations: [ | ||||
| @@ -35,7 +39,11 @@ import { GenericInputComponent } from './widgets/form/generic-input/generic-inpu | |||||
| FileComponent, | FileComponent, | ||||
| DateInputComponent, | DateInputComponent, | ||||
| SelectInputComponent, | SelectInputComponent, | ||||
| GenericInputComponent | |||||
| GenericInputComponent, | |||||
| InvestigateBusinessEntitiesAndIndividualsComponent, | |||||
| ViewCaseDetailsComponent, | |||||
| ModifyCaseDetailsComponent, | |||||
| AssignPanelComponent | |||||
| ], | ], | ||||
| imports: [ | imports: [ | ||||
| BrowserModule, | BrowserModule, | ||||
| @@ -1,7 +1,14 @@ | |||||
| <ul> | <ul> | ||||
| <li *ngFor="let notification of notifications"> | <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> | </li> | ||||
| </ul> | </ul> | ||||
| @@ -12,19 +12,23 @@ export class NotificationsComponent implements OnInit { | |||||
| description?: string, | description?: string, | ||||
| redirectionUrl?: 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() { } | constructor() { } | ||||
| @@ -34,38 +34,13 @@ | |||||
| <li> | <li> | ||||
| <div class="cell"> 2 </div> | <div class="cell"> 2 </div> | ||||
| <div class="cell"> | <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> | <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> | ||||
| <div class="cell"> 15 </div> | <div class="cell"> 15 </div> | ||||
| <div class="cell"> | <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> | </div> | ||||
| </li> | </li> | ||||
| </ul> | </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; | display: flex; | ||||
| align-items: center; | align-items: center; | ||||
| justify-content: space-between; | justify-content: space-between; | ||||
| background-image: url('../../assets/images/wall.jpeg'); | |||||
| background-image: url('../../../assets/images/wall.jpeg'); | |||||
| background-size: cover; | background-size: cover; | ||||
| background-position: center; | background-position: center; | ||||
| height: 100vh; | height: 100vh; | ||||
| @@ -5,7 +5,7 @@ | |||||
| </header> | </header> | ||||
| <ol> | <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"> {{ i + 1 }} </div> | ||||
| <div class="cell" *ngFor="let detail of tableDetail"> | <div class="cell" *ngFor="let detail of tableDetail"> | ||||
| <p> {{ detail }} </p> | <p> {{ detail }} </p> | ||||
| @@ -7,7 +7,7 @@ import { Component, Input, OnInit } from '@angular/core'; | |||||
| }) | }) | ||||
| export class TableComponent implements OnInit { | export class TableComponent implements OnInit { | ||||
| @Input() headings: Array<string> = []; | @Input() headings: Array<string> = []; | ||||
| @Input() tableDetails: Array<Array<string>> = []; | |||||
| @Input() data: Array<Array<string>> = []; | |||||
| constructor() { } | constructor() { } | ||||