@@ -10,39 +10,25 @@ | |||||
<input type="text" placeholder="Enter your business name" [(ngModel)]="nameToCheck"> | <input type="text" placeholder="Enter your business name" [(ngModel)]="nameToCheck"> | ||||
<button (click)="checkName()" [disabled]="!nameToCheck"> Check </button> | <button (click)="checkName()" [disabled]="!nameToCheck"> Check </button> | ||||
</section> | </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"> | <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"> Sorry! </h5> | ||||
<h5 *ngIf="!error.isInvalid && error.isUnique"> Yay! </h5> | <h5 *ngIf="!error.isInvalid && error.isUnique"> Yay! </h5> | ||||
<p> {{ error.message }} </p> | <p> {{ error.message }} </p> | ||||
</section> | </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" | <button class="proceed-button" *ngIf="error && !error.isInvalid" | ||||
(click)="confirmName()"> | |||||
(click)="confirmName()" [disabled]="error && !error.isInvalid && !agreeToReserve"> | |||||
{{ !error?.isUnique ? 'Appeal for name' : 'Proceed' }} | {{ !error?.isUnique ? 'Appeal for name' : 'Proceed' }} | ||||
</button> | </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> | </div> | ||||
@@ -71,7 +57,7 @@ | |||||
</section> | </section> | ||||
<div class="form-action-buttons"> | <div class="form-action-buttons"> | ||||
<button (click)="formState = 'CONFIRM_INIT'"> | |||||
<button (click)="formState = 'INIT_REGISTER'"> | |||||
Back | Back | ||||
</button> | </button> | ||||
<button (click)="formState = 'SELECT_PLAN'"> | <button (click)="formState = 'SELECT_PLAN'"> | ||||
@@ -82,7 +68,7 @@ | |||||
<div class="plan-list-container" *ngIf="formState === 'SELECT_PLAN'"> | <div class="plan-list-container" *ngIf="formState === 'SELECT_PLAN'"> | ||||
<h5> | <h5> | ||||
Your business name application for <br> <strong> {{ nameToCheck }} </strong> is successfully approved! | |||||
Choose a plan for <strong> {{ nameToCheck }} </strong> | |||||
</h5> | </h5> | ||||
<ul class="plan-list"> | <ul class="plan-list"> | ||||
<li *ngFor="let plan of plans"> | <li *ngFor="let plan of plans"> | ||||
@@ -106,7 +92,7 @@ | |||||
<p class="description"> | <p class="description"> | ||||
{{ isAppealing ? | {{ isAppealing ? | ||||
'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 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> | </p> | ||||
</section> | </section> | ||||
</div> | </div> |
@@ -48,14 +48,25 @@ | |||||
.description { | .description { | ||||
width: 75%; | width: 75%; | ||||
margin: 0 auto; | |||||
margin: 4rem auto 3rem; | |||||
text-align: left; | text-align: left; | ||||
font-size: 1.2rem; | |||||
font-size: 1.4rem; | |||||
opacity: 0.9; | |||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
opacity: 0.6; | |||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
line-height: 1.4; | line-height: 1.4; | ||||
font-weight: 300; | font-weight: 300; | ||||
display: flex; | |||||
align-items: flex-start; | |||||
justify-content: flex-start; | |||||
label { | |||||
cursor: pointer; | |||||
} | |||||
input { | |||||
margin: 5px 10px; | |||||
} | |||||
} | } | ||||
.form-message { | .form-message { | ||||
@@ -92,28 +103,10 @@ | |||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
border-radius: 4rem; | border-radius: 4rem; | ||||
height: 5rem; | 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 { | .form { | ||||
display: grid; | display: grid; | ||||
grid-template-columns: 1fr 1fr 1fr; | |||||
grid-template-columns: 1fr 1fr; | |||||
padding: 4rem; | padding: 4rem; | ||||
.input-holder { | .input-holder { | ||||
@@ -185,6 +178,7 @@ | |||||
font-size: 1.5rem; | font-size: 1.5rem; | ||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
background-color: white; | |||||
} | } | ||||
select { | select { | ||||
@@ -221,7 +215,7 @@ | |||||
align-items: flex-start; | align-items: flex-start; | ||||
justify-content: center; | justify-content: center; | ||||
list-style: none; | list-style: none; | ||||
margin-bottom: 30px; | |||||
margin-bottom: 4rem; | |||||
li { | li { | ||||
border: 1px solid var(--border-grey); | border: 1px solid var(--border-grey); | ||||
@@ -275,7 +269,7 @@ | |||||
.confirmation-box { | .confirmation-box { | ||||
h6 { | h6 { | ||||
font-size: 1.8rem; | |||||
font-size: 2rem; | |||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
filter: brightness(80%); | filter: brightness(80%); | ||||
font-weight: 500; | font-weight: 500; | ||||
@@ -285,9 +279,9 @@ | |||||
.description { | .description { | ||||
width: 40%; | width: 40%; | ||||
margin: 0 auto 2rem; | margin: 0 auto 2rem; | ||||
font-size: 1.2rem; | |||||
font-size: 1.6rem; | |||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
opacity: 0.6; | |||||
opacity: 0.9; | |||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
line-height: 1.4; | line-height: 1.4; | ||||
font-weight: 300; | font-weight: 300; | ||||
@@ -12,7 +12,7 @@ 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' | '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'; | nameToCheck: string = 'JK Enterprises ACRA Ltd'; | ||||
isAppealing: boolean = false; | isAppealing: boolean = false; | ||||
agreeToReserve: boolean = false; | agreeToReserve: boolean = false; | ||||
@@ -24,15 +24,15 @@ export class RegisterBusinessComponent implements OnInit { | |||||
plans: Array<Plan> = [{ | plans: Array<Plan> = [{ | ||||
name: 'Basic', | name: 'Basic', | ||||
amount: 2000, | |||||
amount: 15, | |||||
range: 'One Year' | range: 'One Year' | ||||
}, { | }, { | ||||
name: 'Popular', | name: 'Popular', | ||||
amount: 5000, | |||||
amount: 20, | |||||
range: 'Three Years' | range: 'Three Years' | ||||
}, { | }, { | ||||
name: 'Premium', | name: 'Premium', | ||||
amount: 9000, | |||||
amount: 25, | |||||
range: 'Five Years' | range: 'Five Years' | ||||
}]; | }]; | ||||
@@ -51,36 +51,37 @@ export class RegisterBusinessComponent implements OnInit { | |||||
placeholder?: string, | placeholder?: string, | ||||
options?: Array<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', | name: 'Date of Incorporation', | ||||
type: 'date' | type: 'date' | ||||
}, { | |||||
name: 'Company Status', | |||||
type: 'select', | |||||
options: ['Status 1', 'Status 2'] | |||||
}, { | }, { | ||||
name: 'Company Category', | name: 'Company Category', | ||||
type: 'select', | 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', | 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', | name: 'Registrar Office City', | ||||
type: 'select', | type: 'select', | ||||
options: ['Class 1', 'Class 2'] | |||||
options: ['CITY 1', 'CITY 2'] | |||||
}, { | }, { | ||||
name: 'Registered Office', | name: 'Registered Office', | ||||
type: 'select', | 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() { } | constructor() { } | ||||
@@ -92,7 +93,7 @@ export class RegisterBusinessComponent implements OnInit { | |||||
if (!this.error?.isUnique) { | if (!this.error?.isUnique) { | ||||
this.isAppealing = true; | this.isAppealing = true; | ||||
} | } | ||||
this.formState = 'CONFIRM_INIT'; | |||||
this.formState = 'REGISTER_FORM'; | |||||
} | } | ||||
goBackToFormDetails() { | goBackToFormDetails() { | ||||
@@ -28,6 +28,11 @@ $header-height: 10rem; | |||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
color: var(--dark-grey); | color: var(--dark-grey); | ||||
&.active { | |||||
text-decoration: underline; | |||||
color: var(--highlight); | |||||
} | |||||
&:hover { | &:hover { | ||||
text-decoration: underline; | text-decoration: underline; | ||||
} | } | ||||
@@ -1,15 +1,16 @@ | |||||
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
@Component({ | @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 { | export class TabsComponent implements OnInit { | ||||
constructor() { | |||||
} | |||||
constructor() { } | |||||
ngOnInit(): void { | |||||
} | |||||
ngOnInit(): void { | |||||
} | |||||
} | } |