| @@ -10,39 +10,25 @@ | |||
| <input type="text" placeholder="Enter your business name" [(ngModel)]="nameToCheck"> | |||
| <button (click)="checkName()" [disabled]="!nameToCheck"> Check </button> | |||
| </section> | |||
| <p class="description"> | |||
| This is the full name for a business entity that I wish to reserve, including any required prefixes and suffixes. I understand that this has to be nationally unique, and am not violating any copyrights or trademarks. | |||
| </p> | |||
| <section class="form-message" [ngClass]="{'error' : error.isInvalid || !error.isUnique}" *ngIf="error"> | |||
| <h5 *ngIf="error.isInvalid || !error.isUnique"> Sorry! </h5> | |||
| <h5 *ngIf="!error.isInvalid && error.isUnique"> Yay! </h5> | |||
| <p> {{ error.message }} </p> | |||
| </section> | |||
| <p class="description" *ngIf="error && !error.isInvalid && error.isUnique"> | |||
| <input type="checkbox" id="confirm-init-register" [(ngModel)]="agreeToReserve"> | |||
| <label for="confirm-init-register"> | |||
| I agree that I am reserving a name for my business entity, and am legally authorized to do so according to both national and local laws. I understand that the government will look through my financial records and will consent to the same. | |||
| </label> | |||
| </p> | |||
| <button class="proceed-button" *ngIf="error && !error.isInvalid" | |||
| (click)="confirmName()"> | |||
| (click)="confirmName()" [disabled]="error && !error.isInvalid && !agreeToReserve"> | |||
| {{ !error?.isUnique ? 'Appeal for name' : 'Proceed' }} | |||
| </button> | |||
| </ng-container> | |||
| <section class="confirmation-box" *ngIf="formState === 'CONFIRM_INIT'"> | |||
| <h5> {{ nameToCheck }} </h5> | |||
| <p class="description"> | |||
| <input type="checkbox" [(ngModel)]="agreeToReserve"> | |||
| I agree that I am reserving a name for my business entity, and am legally authorized to do so according to both national and local laws. I understand that the government will look through my financial records and will consent to the same. | |||
| </p> | |||
| <div class="form-action-buttons"> | |||
| <button (click)="formState = 'INIT_REGISTER'"> | |||
| Back | |||
| </button> | |||
| <button [disabled]="!agreeToReserve" [ngClass]="{'disabled': !agreeToReserve}" (click)="formState = 'REGISTER_FORM'"> | |||
| Proceed | |||
| </button> | |||
| </div> | |||
| </section> | |||
| </ng-container> | |||
| </div> | |||
| @@ -71,7 +57,7 @@ | |||
| </section> | |||
| <div class="form-action-buttons"> | |||
| <button (click)="formState = 'CONFIRM_INIT'"> | |||
| <button (click)="formState = 'INIT_REGISTER'"> | |||
| Back | |||
| </button> | |||
| <button (click)="formState = 'SELECT_PLAN'"> | |||
| @@ -82,7 +68,7 @@ | |||
| <div class="plan-list-container" *ngIf="formState === 'SELECT_PLAN'"> | |||
| <h5> | |||
| Your business name application for <br> <strong> {{ nameToCheck }} </strong> is successfully approved! | |||
| Choose a plan for <strong> {{ nameToCheck }} </strong> | |||
| </h5> | |||
| <ul class="plan-list"> | |||
| <li *ngFor="let plan of plans"> | |||
| @@ -106,7 +92,7 @@ | |||
| <p class="description"> | |||
| {{ isAppealing ? | |||
| 'Please stand by while the Authority Officer contacts you with the results of your appeal' : | |||
| 'Congratulations! Your name has been reserved for ' + selectedPlan.range + ' time. 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> | |||
| </section> | |||
| </div> | |||
| @@ -48,14 +48,25 @@ | |||
| .description { | |||
| width: 75%; | |||
| margin: 0 auto; | |||
| margin: 4rem auto 3rem; | |||
| text-align: left; | |||
| font-size: 1.2rem; | |||
| font-size: 1.4rem; | |||
| opacity: 0.9; | |||
| color: var(--dark-grey); | |||
| opacity: 0.6; | |||
| letter-spacing: 0.5px; | |||
| line-height: 1.4; | |||
| font-weight: 300; | |||
| display: flex; | |||
| align-items: flex-start; | |||
| justify-content: flex-start; | |||
| label { | |||
| cursor: pointer; | |||
| } | |||
| input { | |||
| margin: 5px 10px; | |||
| } | |||
| } | |||
| .form-message { | |||
| @@ -92,28 +103,10 @@ | |||
| letter-spacing: 0.5px; | |||
| border-radius: 4rem; | |||
| height: 5rem; | |||
| } | |||
| .confirmation-box { | |||
| h5 { | |||
| font-size: 1.8rem; | |||
| color: var(--dark-grey); | |||
| filter: brightness(80%); | |||
| font-weight: 500; | |||
| margin: 4rem 0 2rem; | |||
| } | |||
| .description { | |||
| width: 50%; | |||
| display: flex; | |||
| align-items: flex-start; | |||
| justify-content: flex-start; | |||
| margin-bottom: 4rem; | |||
| input { | |||
| margin: 5px 10px; | |||
| } | |||
| &:disabled { | |||
| cursor: not-allowed; | |||
| opacity: 0.5; | |||
| } | |||
| } | |||
| } | |||
| @@ -152,7 +145,7 @@ | |||
| .form { | |||
| display: grid; | |||
| grid-template-columns: 1fr 1fr 1fr; | |||
| grid-template-columns: 1fr 1fr; | |||
| padding: 4rem; | |||
| .input-holder { | |||
| @@ -185,6 +178,7 @@ | |||
| font-size: 1.5rem; | |||
| letter-spacing: 0.5px; | |||
| color: var(--dark-grey); | |||
| background-color: white; | |||
| } | |||
| select { | |||
| @@ -221,7 +215,7 @@ | |||
| align-items: flex-start; | |||
| justify-content: center; | |||
| list-style: none; | |||
| margin-bottom: 30px; | |||
| margin-bottom: 4rem; | |||
| li { | |||
| border: 1px solid var(--border-grey); | |||
| @@ -275,7 +269,7 @@ | |||
| .confirmation-box { | |||
| h6 { | |||
| font-size: 1.8rem; | |||
| font-size: 2rem; | |||
| color: var(--dark-grey); | |||
| filter: brightness(80%); | |||
| font-weight: 500; | |||
| @@ -285,9 +279,9 @@ | |||
| .description { | |||
| width: 40%; | |||
| margin: 0 auto 2rem; | |||
| font-size: 1.2rem; | |||
| font-size: 1.6rem; | |||
| color: var(--dark-grey); | |||
| opacity: 0.6; | |||
| opacity: 0.9; | |||
| letter-spacing: 0.5px; | |||
| line-height: 1.4; | |||
| font-weight: 300; | |||
| @@ -12,7 +12,7 @@ interface Plan { | |||
| styleUrls: ['./register-business.component.scss'] | |||
| }) | |||
| export class RegisterBusinessComponent implements OnInit { | |||
| formState: 'CHECK_NAME' | 'INIT_REGISTER' | 'CONFIRM_INIT' | 'REGISTER_FORM' | 'SELECT_PLAN' | 'COMPLETE_PURCHASE' | undefined = 'CHECK_NAME'; | |||
| formState: 'CHECK_NAME' | 'INIT_REGISTER' | 'REGISTER_FORM' | 'SELECT_PLAN' | 'COMPLETE_PURCHASE' | undefined = 'CHECK_NAME'; | |||
| nameToCheck: string = 'JK Enterprises ACRA Ltd'; | |||
| isAppealing: boolean = false; | |||
| agreeToReserve: boolean = false; | |||
| @@ -24,15 +24,15 @@ export class RegisterBusinessComponent implements OnInit { | |||
| plans: Array<Plan> = [{ | |||
| name: 'Basic', | |||
| amount: 2000, | |||
| amount: 15, | |||
| range: 'One Year' | |||
| }, { | |||
| name: 'Popular', | |||
| amount: 5000, | |||
| amount: 20, | |||
| range: 'Three Years' | |||
| }, { | |||
| name: 'Premium', | |||
| amount: 9000, | |||
| amount: 25, | |||
| range: 'Five Years' | |||
| }]; | |||
| @@ -51,36 +51,37 @@ export class RegisterBusinessComponent implements OnInit { | |||
| placeholder?: string, | |||
| options?: Array<string> | |||
| }> = [{ | |||
| name: 'Entity Type', | |||
| type: 'select', | |||
| options: ['BUSINESS', 'LOCAL COMPANY', | |||
| 'LIMITED LIABILITY PARTNERSHIP', 'FOREIGN COMPANY', | |||
| 'LIMITED PARTNERSHIP', 'PUBLIC ACCOUNTING FIRM'] | |||
| }, { | |||
| name: 'Date of Incorporation', | |||
| type: 'date' | |||
| }, { | |||
| name: 'Company Status', | |||
| type: 'select', | |||
| options: ['Status 1', 'Status 2'] | |||
| }, { | |||
| name: 'Company Category', | |||
| type: 'select', | |||
| options: ['Category 1', 'Category 2'] | |||
| options: ['PUBLIC COMPANY LIMITED BY SHARES', | |||
| 'PUBLIC COMPANY LIMITED BY GUARANTEE', | |||
| 'PRIVATE COMPANY LIMITED BY SHARES', | |||
| 'EXEMPT PRIVATE COMPANY LIMITED BY SHARES'] | |||
| }, { | |||
| name: 'Company Sub-Category', | |||
| name: 'Company Suffix', | |||
| type: 'select', | |||
| options: ['Sub-Category 1', 'Sub-Category 2'] | |||
| }, { | |||
| name: 'Company Class', | |||
| type: 'select', | |||
| options: ['Class 1', 'Class 2'] | |||
| options: ['LLC', 'LTD', 'PVT LTD', 'INC'] | |||
| }, { | |||
| name: 'Registrar Office City', | |||
| type: 'select', | |||
| options: ['Class 1', 'Class 2'] | |||
| options: ['CITY 1', 'CITY 2'] | |||
| }, { | |||
| name: 'Registered Office', | |||
| type: 'select', | |||
| options: ['Office 1', 'Office 2'] | |||
| options: ['OFFICE 1', 'OFFICE 2'] | |||
| }, { | |||
| name: 'Capita Investment', | |||
| type: 'number', | |||
| placeholder: 'Enter here in Singapore Dollar' | |||
| name: 'Drop the Suffice "Limited" or "Berhad" from ' + this.nameToCheck, | |||
| type: 'select', | |||
| options: ['YES', 'NO'] | |||
| }]; | |||
| constructor() { } | |||
| @@ -92,7 +93,7 @@ export class RegisterBusinessComponent implements OnInit { | |||
| if (!this.error?.isUnique) { | |||
| this.isAppealing = true; | |||
| } | |||
| this.formState = 'CONFIRM_INIT'; | |||
| this.formState = 'REGISTER_FORM'; | |||
| } | |||
| goBackToFormDetails() { | |||
| @@ -28,6 +28,11 @@ $header-height: 10rem; | |||
| letter-spacing: 0.5px; | |||
| color: var(--dark-grey); | |||
| &.active { | |||
| text-decoration: underline; | |||
| color: var(--highlight); | |||
| } | |||
| &:hover { | |||
| text-decoration: underline; | |||
| } | |||
| @@ -1,15 +1,16 @@ | |||
| import { Component, OnInit } from '@angular/core'; | |||
| @Component({ | |||
| selector: 'app-tabs', | |||
| templateUrl: './tabs.component.html', | |||
| styleUrls: ['./tabs.component.scss'] | |||
| selector: 'app-tabs', | |||
| templateUrl: './tabs.component.html', | |||
| styleUrls: ['./tabs.component.scss'] | |||
| }) | |||
| export class TabsComponent implements OnInit { | |||
| constructor() { | |||
| } | |||
| constructor() { } | |||
| ngOnInit(): void { | |||
| } | |||
| ngOnInit(): void { | |||
| } | |||
| } | |||