@@ -5,7 +5,8 @@ | |||||
</header> | </header> | ||||
<section class="bread-crumbs"> | <section class="bread-crumbs"> | ||||
<span [routerLink]="['/tabs/e-services']"> E-Services </span> / <span class="current-page"> Business Names </span> | |||||
<span [routerLink]="['/tabs/e-services']"> E-Services </span> / | |||||
<span class="current-page"> Business Names </span> | |||||
</section> | </section> | ||||
<div class="search-input-container"> | <div class="search-input-container"> | ||||
@@ -28,7 +29,7 @@ | |||||
</label> | </label> | ||||
</p> | </p> | ||||
<button class="proceed-button" *ngIf="error && !error.isInvalid" | |||||
<button class="common-button" *ngIf="error && !error.isInvalid" | |||||
(click)="confirmName()" [disabled]="error && !error.isInvalid && !agreeToReserve"> | (click)="confirmName()" [disabled]="error && !error.isInvalid && !agreeToReserve"> | ||||
{{ !error?.isUnique ? 'Appeal for name' : 'Proceed' }} | {{ !error?.isUnique ? 'Appeal for name' : 'Proceed' }} | ||||
</button> | </button> | ||||
@@ -61,10 +62,10 @@ | |||||
</section> | </section> | ||||
<div class="form-action-buttons"> | <div class="form-action-buttons"> | ||||
<button (click)="formState = 'INIT_REGISTER'"> | |||||
<button class="common-button neutral" (click)="formState = 'INIT_REGISTER'"> | |||||
Back | Back | ||||
</button> | </button> | ||||
<button (click)="formState = 'SELECT_PLAN'"> | |||||
<button class="common-button" (click)="formState = 'SELECT_PLAN'"> | |||||
Proceed | Proceed | ||||
</button> | </button> | ||||
</div> | </div> | ||||
@@ -79,12 +80,12 @@ | |||||
<h4> {{ plan.name }} </h4> | <h4> {{ plan.name }} </h4> | ||||
<h2> S$ {{ plan.amount }}/- <span> (govt fees + taxes extra) </span> </h2> | <h2> S$ {{ plan.amount }}/- <span> (govt fees + taxes extra) </span> </h2> | ||||
<h4> {{ plan.range }} </h4> | <h4> {{ plan.range }} </h4> | ||||
<button (click)="selectPlan(plan)"> Pay </button> | |||||
<button class="common-button" (click)="selectPlan(plan)"> Pay </button> | |||||
</li> | </li> | ||||
</ul> | </ul> | ||||
<div class="form-action-buttons"> | <div class="form-action-buttons"> | ||||
<button (click)="goBackToFormDetails()"> | |||||
<button class="common-button neutral" (click)="goBackToFormDetails()"> | |||||
Back | Back | ||||
</button> | </button> | ||||
</div> | </div> | ||||
@@ -98,5 +99,59 @@ | |||||
'Please stand by while the Authority Officer contacts you with the results of your appeal' : | 'Please stand by while the Authority Officer contacts you with the results of your appeal' : | ||||
'Congratulations! Your name has been submitted for reservation under "' + selectedPlan.range + ' Plan". Please proceed with further setup of your business entity' }} | 'Congratulations! Your name has been submitted for reservation under "' + selectedPlan.range + ' Plan". Please proceed with further setup of your business entity' }} | ||||
</p> | </p> | ||||
<button class="common-button" (click)="formState = 'ACKNOWLEDGEMENT'"> | |||||
View Acknowledgement | |||||
</button> | |||||
</section> | |||||
</div> | |||||
<ng-container *ngIf="formState === 'ACKNOWLEDGEMENT'"> | |||||
<section class="acknowledgement-receipt"> | |||||
<h2> Acknowledgement </h2> | |||||
<div class="container"> | |||||
<div class="bill-container"> | |||||
<ul class="bill-breakup"> | |||||
<li *ngFor="let transaction of transactionAcknowledgementDetails"> | |||||
<label> {{ transaction.name }} </label> | |||||
<div class="value" | |||||
[ngClass]="{'active' : transaction.needCopyWidget && transaction.needCopyWidget === true }"> | |||||
{{ transaction.value }} | |||||
<span *ngIf="transaction.amount"> - {{ transaction.amount }} </span> | |||||
</div> | |||||
</li> | |||||
</ul> | |||||
<div class="total-amount"> | |||||
<label> Paid Amount </label> <span> S$ 15.00 </span> | |||||
</div> | |||||
</div> | |||||
<ul class="message-board"> | |||||
<h5> Important Messages </h5> | |||||
<li> | |||||
1. Please click <a>Here</a> to continue with your registeration. | |||||
If you do not wish to register now, please take note of the "Transaction Number" | |||||
above for your registeration later. | |||||
</li> | |||||
<li> | |||||
2. Click <a>Here</a> for the estimated processing time | |||||
</li> | |||||
</ul> | |||||
</div> | |||||
<div class="form-action-buttons"> | |||||
<button class="common-button neutral"> | |||||
</button> | |||||
<button class="common-button"> | |||||
View Receipt | |||||
</button> | |||||
</div> | |||||
</section> | </section> | ||||
</div> | |||||
</ng-container> |
@@ -93,52 +93,15 @@ | |||||
color: var(--success); | color: var(--success); | ||||
} | } | ||||
} | } | ||||
.proceed-button { | |||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 4rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
height: 5rem; | |||||
&:disabled { | |||||
cursor: not-allowed; | |||||
opacity: 0.5; | |||||
} | |||||
} | |||||
} | } | ||||
.form-action-buttons { | .form-action-buttons { | ||||
text-align: center; | text-align: center; | ||||
margin-bottom: 2rem; | |||||
button { | button { | ||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 4rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
height: 5rem; | |||||
vertical-align: middle; | |||||
&.disabled { | |||||
cursor: not-allowed; | |||||
opacity: 0.5; | |||||
} | |||||
&:first-child { | &:first-child { | ||||
background-color: var(--border-grey); | |||||
color: var(--dark-grey); | |||||
margin-right: 20px; | |||||
&.highlight { | |||||
background-color: var(--highlight); | |||||
color: white; | |||||
} | |||||
margin-right: 2rem; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -253,17 +216,7 @@ | |||||
} | } | ||||
button { | button { | ||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 6rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
height: 5rem; | |||||
vertical-align: middle; | |||||
margin-top: 4rem; | margin-top: 4rem; | ||||
cursor: pointer; | |||||
} | } | ||||
} | } | ||||
@@ -288,4 +241,130 @@ | |||||
text-align: center; | text-align: center; | ||||
} | } | ||||
} | } | ||||
} | |||||
.acknowledgement-receipt { | |||||
width: 100%; | |||||
margin: 0 auto; | |||||
h2 { | |||||
font-size: 2rem; | |||||
color: var(--dark-grey); | |||||
filter: brightness(80%); | |||||
font-weight: 500; | |||||
margin: 2rem; | |||||
} | |||||
.container { | |||||
display: flex; | |||||
width: calc(100% - 2rem); | |||||
align-items: flex-start; | |||||
margin: 2rem auto; | |||||
} | |||||
.bill-container { | |||||
width: 50%; | |||||
border: 2px solid var(--border-grey); | |||||
border-radius: 1rem; | |||||
} | |||||
.bill-breakup { | |||||
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.4rem; | |||||
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 { | |||||
text-align: left; | |||||
margin: 2rem 1.5rem; | |||||
} | |||||
.total-amount { | |||||
text-align: right; | |||||
margin: 0 1.5rem 2rem; | |||||
overflow: hidden; | |||||
padding: 1rem; | |||||
border-radius: 1rem; | |||||
position: relative; | |||||
&::before { | |||||
content: ''; | |||||
position: absolute; | |||||
left: 0; | |||||
top: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
background-color: var(--border-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 { | |||||
width: 50%; | |||||
padding: 0 2rem; | |||||
list-style: 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; | |||||
} | |||||
} | |||||
} | |||||
} | } |
@@ -12,7 +12,9 @@ interface Plan { | |||||
styleUrls: ['./register-business.component.scss'] | styleUrls: ['./register-business.component.scss'] | ||||
}) | }) | ||||
export class RegisterBusinessComponent implements OnInit { | export class RegisterBusinessComponent implements OnInit { | ||||
formState: 'CHECK_NAME' | 'INIT_REGISTER' | 'REGISTER_FORM' | 'SELECT_PLAN' | 'COMPLETE_PURCHASE' | undefined = 'CHECK_NAME'; | |||||
formState: 'CHECK_NAME' | 'INIT_REGISTER' | | |||||
'REGISTER_FORM' | 'SELECT_PLAN' | 'COMPLETE_PURCHASE' | | |||||
'ACKNOWLEDGEMENT' | 'RECEIPT' | undefined = 'ACKNOWLEDGEMENT'; | |||||
nameToCheck: string = 'JK Enterprises ACRA Ltd'; | nameToCheck: string = 'JK Enterprises ACRA Ltd'; | ||||
isAppealing: boolean = false; | isAppealing: boolean = false; | ||||
agreeToReserve: boolean = false; | agreeToReserve: boolean = false; | ||||
@@ -49,7 +51,7 @@ export class RegisterBusinessComponent implements OnInit { | |||||
name: string, | name: string, | ||||
type: 'date' | 'select' | 'text' | 'email' | 'number', | type: 'date' | 'select' | 'text' | 'email' | 'number', | ||||
placeholder?: string, | placeholder?: string, | ||||
options?: Array<string> | |||||
options?: Array<string>, | |||||
}> = [{ | }> = [{ | ||||
name: 'Entity Type', | name: 'Entity Type', | ||||
type: 'select', | type: 'select', | ||||
@@ -84,6 +86,38 @@ export class RegisterBusinessComponent implements OnInit { | |||||
options: ['YES', 'NO'] | options: ['YES', 'NO'] | ||||
}]; | }]; | ||||
transactionAcknowledgementDetails: Array<{ | |||||
name: string, | |||||
value: string | number, | |||||
amount?: number, | |||||
needCopyWidget?: boolean, | |||||
}> = [{ | |||||
name: 'UEM', | |||||
value: '---' | |||||
}, { | |||||
name: 'Entity Name', | |||||
value: this.nameToCheck | |||||
}, { | |||||
name: 'Transaction Number', | |||||
value: '39047729362923293', | |||||
needCopyWidget: true, | |||||
}, { | |||||
name: 'Receipt Number', | |||||
value: 'ACRA38293', | |||||
needCopyWidget: true | |||||
}, { | |||||
name: 'EP Reference No.', | |||||
value: '20910038829384470' | |||||
}, { | |||||
name: 'Payment Date', | |||||
value: '06/11/2021 11:28:01' | |||||
}, { | |||||
name: 'Description', | |||||
value: 'Application for Business Name', | |||||
amount: 15 | |||||
}]; | |||||
constructor() { } | constructor() { } | ||||
ngOnInit(): void { | ngOnInit(): void { | ||||
@@ -31,6 +31,11 @@ button, a { | |||||
align-items: center; | align-items: center; | ||||
justify-content: flex-start; | justify-content: flex-start; | ||||
padding: 0 2rem; | padding: 0 2rem; | ||||
position: sticky; | |||||
position: -webkit-sticky; | |||||
background-color: white; | |||||
z-index: 1; | |||||
top: 0; | |||||
&::after { | &::after { | ||||
content: ''; | content: ''; | ||||
@@ -52,7 +57,12 @@ button, a { | |||||
.bread-crumbs { | .bread-crumbs { | ||||
font-size: 1.4rem; | font-size: 1.4rem; | ||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
margin: 2rem; | |||||
padding: 2rem; | |||||
position: sticky; | |||||
position: -webkit-sticky; | |||||
background-color: white; | |||||
top: 2.9rem; | |||||
z-index: 1; | |||||
span { | span { | ||||
color: var(--highlight); | color: var(--highlight); | ||||
@@ -65,4 +75,25 @@ button, a { | |||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
} | } | ||||
} | } | ||||
} | |||||
.common-button { | |||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 4rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
height: 5rem; | |||||
&.neutral { | |||||
background-color: var(--border-grey); | |||||
color: var(--dark-grey); | |||||
} | |||||
&:disabled { | |||||
cursor: not-allowed; | |||||
opacity: 0.5; | |||||
} | |||||
} | } |