| @@ -5,7 +5,8 @@ | |||
| </header> | |||
| <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> | |||
| <div class="search-input-container"> | |||
| @@ -28,7 +29,7 @@ | |||
| </label> | |||
| </p> | |||
| <button class="proceed-button" *ngIf="error && !error.isInvalid" | |||
| <button class="common-button" *ngIf="error && !error.isInvalid" | |||
| (click)="confirmName()" [disabled]="error && !error.isInvalid && !agreeToReserve"> | |||
| {{ !error?.isUnique ? 'Appeal for name' : 'Proceed' }} | |||
| </button> | |||
| @@ -61,10 +62,10 @@ | |||
| </section> | |||
| <div class="form-action-buttons"> | |||
| <button (click)="formState = 'INIT_REGISTER'"> | |||
| <button class="common-button neutral" (click)="formState = 'INIT_REGISTER'"> | |||
| Back | |||
| </button> | |||
| <button (click)="formState = 'SELECT_PLAN'"> | |||
| <button class="common-button" (click)="formState = 'SELECT_PLAN'"> | |||
| Proceed | |||
| </button> | |||
| </div> | |||
| @@ -79,12 +80,12 @@ | |||
| <h4> {{ plan.name }} </h4> | |||
| <h2> S$ {{ plan.amount }}/- <span> (govt fees + taxes extra) </span> </h2> | |||
| <h4> {{ plan.range }} </h4> | |||
| <button (click)="selectPlan(plan)"> Pay </button> | |||
| <button class="common-button" (click)="selectPlan(plan)"> Pay </button> | |||
| </li> | |||
| </ul> | |||
| <div class="form-action-buttons"> | |||
| <button (click)="goBackToFormDetails()"> | |||
| <button class="common-button neutral" (click)="goBackToFormDetails()"> | |||
| Back | |||
| </button> | |||
| </div> | |||
| @@ -98,5 +99,59 @@ | |||
| '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' }} | |||
| </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> | |||
| </div> | |||
| </ng-container> | |||
| @@ -93,52 +93,15 @@ | |||
| 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 { | |||
| text-align: center; | |||
| margin-bottom: 2rem; | |||
| 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 { | |||
| 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 { | |||
| 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; | |||
| cursor: pointer; | |||
| } | |||
| } | |||
| @@ -288,4 +241,130 @@ | |||
| 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'] | |||
| }) | |||
| 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'; | |||
| isAppealing: boolean = false; | |||
| agreeToReserve: boolean = false; | |||
| @@ -49,7 +51,7 @@ export class RegisterBusinessComponent implements OnInit { | |||
| name: string, | |||
| type: 'date' | 'select' | 'text' | 'email' | 'number', | |||
| placeholder?: string, | |||
| options?: Array<string> | |||
| options?: Array<string>, | |||
| }> = [{ | |||
| name: 'Entity Type', | |||
| type: 'select', | |||
| @@ -84,6 +86,38 @@ export class RegisterBusinessComponent implements OnInit { | |||
| 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() { } | |||
| ngOnInit(): void { | |||
| @@ -31,6 +31,11 @@ button, a { | |||
| align-items: center; | |||
| justify-content: flex-start; | |||
| padding: 0 2rem; | |||
| position: sticky; | |||
| position: -webkit-sticky; | |||
| background-color: white; | |||
| z-index: 1; | |||
| top: 0; | |||
| &::after { | |||
| content: ''; | |||
| @@ -52,7 +57,12 @@ button, a { | |||
| .bread-crumbs { | |||
| font-size: 1.4rem; | |||
| color: var(--dark-grey); | |||
| margin: 2rem; | |||
| padding: 2rem; | |||
| position: sticky; | |||
| position: -webkit-sticky; | |||
| background-color: white; | |||
| top: 2.9rem; | |||
| z-index: 1; | |||
| span { | |||
| color: var(--highlight); | |||
| @@ -65,4 +75,25 @@ button, a { | |||
| 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; | |||
| } | |||
| } | |||