This commit is contained in:
TulkasOrome 2025-05-19 15:36:05 +10:00
parent 73f036a059
commit 603d3f876c
24 changed files with 823 additions and 285 deletions

View file

@ -0,0 +1,33 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { ReactiveFormsModule } from '@angular/forms';
import { NbCardModule, NbInputModule, NbButtonModule, NbIconModule } from '@nebular/theme';
import { ProfileComponent } from './profile/profile.component';
import { SettingsComponent } from './settings/settings.component';
@NgModule({
imports: [
CommonModule,
ReactiveFormsModule,
NbCardModule,
NbInputModule,
NbButtonModule,
NbIconModule,
RouterModule.forChild([
{
path: 'profile',
component: ProfileComponent,
},
{
path: 'settings',
component: SettingsComponent,
},
]),
],
declarations: [
ProfileComponent,
SettingsComponent,
],
})
export class AccountModule { }

View file

@ -0,0 +1,74 @@
<div class="row">
<div class="col-12">
<nb-card>
<nb-card-header>
<h5>Your Profile</h5>
</nb-card-header>
<nb-card-body>
<form [formGroup]="profileForm" (ngSubmit)="onSubmit()">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="label" for="firstName">First Name</label>
<input nbInput fullWidth id="firstName" formControlName="firstName" placeholder="First Name">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="label" for="lastName">Last Name</label>
<input nbInput fullWidth id="lastName" formControlName="lastName" placeholder="Last Name">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="label" for="email">Email</label>
<input nbInput fullWidth id="email" formControlName="email" placeholder="Email">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="label" for="phone">Phone</label>
<input nbInput fullWidth id="phone" formControlName="phone" placeholder="Phone Number">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="label" for="company">Company</label>
<input nbInput fullWidth id="company" formControlName="company" placeholder="Company">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="label" for="position">Position</label>
<input nbInput fullWidth id="position" formControlName="position" placeholder="Position">
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-group">
<label class="label" for="address">Address</label>
<input nbInput fullWidth id="address" formControlName="address" placeholder="Address">
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-12 text-center">
<button nbButton status="primary" [disabled]="profileForm.invalid">
<nb-icon icon="save-outline"></nb-icon> Update Profile
</button>
</div>
</div>
</form>
</nb-card-body>
</nb-card>
</div>
</div>

View file

@ -0,0 +1,9 @@
.form-group {
margin-bottom: 20px;
}
.label {
display: block;
margin-bottom: 8px;
font-weight: 500;
}

View file

@ -0,0 +1,32 @@
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'ngx-profile',
templateUrl: './profile.component.html',
styleUrls: ['./profile.component.scss']
})
export class ProfileComponent implements OnInit {
profileForm: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit(): void {
this.profileForm = this.fb.group({
firstName: ['John', Validators.required],
lastName: ['Doe', Validators.required],
email: ['john.doe@example.com', [Validators.required, Validators.email]],
company: ['Acme Corp', Validators.required],
position: ['Product Manager', Validators.required],
phone: ['+1 (555) 123-4567', Validators.required],
address: ['123 Main St, New York, NY 10001', Validators.required],
});
}
onSubmit() {
if (this.profileForm.valid) {
// Handle profile update logic
console.log('Profile updated:', this.profileForm.value);
}
}
}

View file

@ -0,0 +1,101 @@
<div class="row">
<div class="col-12">
<nb-card>
<nb-card-header>
<h5>Account Settings</h5>
</nb-card-header>
<nb-card-body>
<form [formGroup]="settingsForm" (ngSubmit)="onSubmit()">
<h6 class="section-title">Notifications</h6>
<div class="settings-section">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="emailNotifications" formControlName="emailNotifications">
<label class="custom-control-label" for="emailNotifications">Email Notifications</label>
</div>
<small class="form-text text-muted">Receive verification results and updates via email</small>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="smsNotifications" formControlName="smsNotifications">
<label class="custom-control-label" for="smsNotifications">SMS Notifications</label>
</div>
<small class="form-text text-muted">Receive verification results and updates via SMS</small>
</div>
</div>
</div>
</div>
<h6 class="section-title">Security</h6>
<div class="settings-section">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="twoFactorAuth" formControlName="twoFactorAuth">
<label class="custom-control-label" for="twoFactorAuth">Two-Factor Authentication</label>
</div>
<small class="form-text text-muted">Enable 2FA for additional security</small>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="dataRetention">Data Retention</label>
<select class="form-control" id="dataRetention" formControlName="dataRetention">
<option value="7days">7 Days</option>
<option value="30days">30 Days</option>
<option value="90days">90 Days</option>
<option value="1year">1 Year</option>
</select>
<small class="form-text text-muted">How long to keep your verification results</small>
</div>
</div>
</div>
</div>
<h6 class="section-title">Appearance</h6>
<div class="settings-section">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="theme">Theme</label>
<select class="form-control" id="theme" formControlName="theme">
<option value="default">Default</option>
<option value="dark">Dark</option>
<option value="cosmic">Cosmic</option>
<option value="corporate">Corporate</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="language">Language</label>
<select class="form-control" id="language" formControlName="language">
<option value="en">English</option>
<option value="es">Spanish</option>
<option value="fr">French</option>
<option value="de">German</option>
<option value="zh">Chinese</option>
<option value="ja">Japanese</option>
</select>
</div>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-12 text-center">
<button nbButton status="primary">
<nb-icon icon="save-outline"></nb-icon> Save Settings
</button>
</div>
</div>
</form>
</nb-card-body>
</nb-card>
</div>
</div>

View file

@ -0,0 +1,19 @@
.section-title {
margin-top: 20px;
margin-bottom: 10px;
font-weight: 600;
border-bottom: 1px solid #edf1f7;
padding-bottom: 8px;
}
.settings-section {
margin-bottom: 25px;
}
.form-group {
margin-bottom: 15px;
}
.custom-control-label {
cursor: pointer;
}

View file

@ -0,0 +1,31 @@
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'ngx-settings',
templateUrl: './settings.component.html',
styleUrls: ['./settings.component.scss']
})
export class SettingsComponent implements OnInit {
settingsForm: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit(): void {
this.settingsForm = this.fb.group({
emailNotifications: [true],
smsNotifications: [false],
twoFactorAuth: [true],
dataRetention: ['30days'],
theme: ['default'],
language: ['en'],
});
}
onSubmit() {
if (this.settingsForm.valid) {
// Handle settings update logic
console.log('Settings updated:', this.settingsForm.value);
}
}
}

View file

@ -0,0 +1,57 @@
<div class="row">
<div class="col-12">
<nb-card>
<nb-card-header>
<h5>Available Countries</h5>
</nb-card-header>
<nb-card-body>
<p>
Select from our available countries below to perform identity verification. Each country has different
data sources, update frequencies, and record counts.
</p>
<div class="row">
<div class="col-md-4 mb-4" *ngFor="let country of countries">
<nb-card [status]="country.availability ? 'success' : 'basic'">
<nb-card-header>
<div class="d-flex align-items-center">
<span class="country-icon mr-2">{{ country.icon }}</span>
<span>{{ country.name }}</span>
<span class="ml-auto">
<nb-icon *ngIf="country.availability" icon="checkmark-circle-2-outline" status="success"></nb-icon>
<nb-icon *ngIf="!country.availability" icon="clock-outline" status="warning"></nb-icon>
</span>
</div>
</nb-card-header>
<nb-card-body>
<div class="country-info">
<div class="info-item">
<strong>Records:</strong> {{ country.records }}
</div>
<div class="info-item">
<strong>Updates:</strong> {{ country.updateFrequency }}
</div>
<div class="info-item">
<strong>Status:</strong> {{ country.availability ? 'Available' : 'Coming Soon' }}
</div>
</div>
</nb-card-body>
<nb-card-footer *ngIf="country.availability">
<button nbButton fullWidth status="primary" [routerLink]="['/pages/identity/manual-lookup']" [queryParams]="{country: country.code}">
<nb-icon icon="search-outline"></nb-icon>
Verify Identity
</button>
</nb-card-footer>
<nb-card-footer *ngIf="!country.availability">
<button nbButton fullWidth status="basic" disabled>
<nb-icon icon="alert-triangle-outline"></nb-icon>
Coming Soon
</button>
</nb-card-footer>
</nb-card>
</div>
</div>
</nb-card-body>
</nb-card>
</div>
</div>

View file

@ -0,0 +1,12 @@
.country-icon {
font-size: 1.5rem;
margin-right: 10px;
}
.country-info {
margin-bottom: 15px;
}
.info-item {
margin-bottom: 5px;
}

View file

@ -0,0 +1,65 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ngx-countries',
templateUrl: './countries.component.html',
styleUrls: ['./countries.component.scss']
})
export class CountriesComponent implements OnInit {
countries = [
{
name: 'Australia',
code: 'aus',
records: '15M+',
updateFrequency: 'Weekly',
availability: true,
icon: '🇦🇺'
},
{
name: 'Indonesia',
code: 'indo',
records: '120M+',
updateFrequency: 'Monthly',
availability: true,
icon: '🇮🇩'
},
{
name: 'Japan',
code: 'japan',
records: '85M+',
updateFrequency: 'Bi-weekly',
availability: true,
icon: '🇯🇵'
},
{
name: 'Malaysia',
code: 'malay',
records: '20M+',
updateFrequency: 'Weekly',
availability: true,
icon: '🇲🇾'
},
{
name: 'Singapore',
code: 'sg',
records: '5M+',
updateFrequency: 'Weekly',
availability: true,
icon: '🇸🇬'
},
{
name: 'Thailand',
code: 'thai',
records: '45M+',
updateFrequency: 'Monthly',
availability: false,
icon: '🇹🇭'
},
];
constructor() { }
ngOnInit(): void {
}
}

View file

@ -0,0 +1,24 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { NbCardModule, NbIconModule, NbListModule } from '@nebular/theme';
import { CountriesComponent } from './countries.component';
@NgModule({
imports: [
CommonModule,
NbCardModule,
NbIconModule,
NbListModule,
RouterModule.forChild([
{
path: '',
component: CountriesComponent,
},
]),
],
declarations: [
CountriesComponent,
],
})
export class CountriesModule { }

View file

@ -0,0 +1,44 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { ReactiveFormsModule } from '@angular/forms';
import {
NbCardModule,
NbButtonModule,
NbInputModule,
NbSelectModule,
NbSpinnerModule,
NbProgressBarModule,
NbIconModule
} from '@nebular/theme';
import { ManualLookupComponent } from './manual-lookup/manual-lookup.component';
import { ResultsHistoryComponent } from './results-history/results-history.component';
@NgModule({
imports: [
CommonModule,
ReactiveFormsModule,
RouterModule.forChild([
{
path: 'manual-lookup',
component: ManualLookupComponent,
},
{
path: 'results-history',
component: ResultsHistoryComponent,
},
]),
NbCardModule,
NbButtonModule,
NbInputModule,
NbSelectModule,
NbSpinnerModule,
NbProgressBarModule,
NbIconModule
],
declarations: [
ManualLookupComponent,
ResultsHistoryComponent,
],
})
export class IdentityModule { }

View file

@ -0,0 +1,131 @@
<div class="row">
<div class="col-12 col-md-6">
<nb-card>
<nb-card-header>
<h5>Identity Verification - Manual Lookup</h5>
</nb-card-header>
<nb-card-body>
<form [formGroup]="identityForm" (ngSubmit)="onSubmit()">
<div class="form-group row">
<label class="col-sm-4 col-form-label">First Name</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="firstName" placeholder="First Name">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">Last Name</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="lastName" placeholder="Last Name">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">Date of Birth</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="dateOfBirth" placeholder="YYYY-MM-DD">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">Country</label>
<div class="col-sm-8">
<nb-select fullWidth formControlName="country" placeholder="Select Country">
<nb-option value="aus">Australia</nb-option>
<nb-option value="indo">Indonesia</nb-option>
<nb-option value="japan">Japan</nb-option>
<nb-option value="malay">Malaysia</nb-option>
</nb-select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">ID Number</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="identificationNumber" placeholder="Identification Number">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">Email</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="email" placeholder="Email">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">Phone</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="phone" placeholder="Phone Number">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label">Address</label>
<div class="col-sm-8">
<input nbInput fullWidth formControlName="address" placeholder="Address">
</div>
</div>
<div class="row mt-3">
<div class="col-12 text-center">
<button nbButton status="primary" [disabled]="identityForm.invalid || isSubmitting">
<nb-icon icon="search-outline"></nb-icon> Verify Identity
</button>
</div>
</div>
</form>
</nb-card-body>
</nb-card>
</div>
<div class="col-12 col-md-6" *ngIf="result">
<nb-card>
<nb-card-header>
<h5>Verification Results</h5>
</nb-card-header>
<nb-card-body>
<div class="match-result">
<h6>Overall Match Confidence</h6>
<nb-progress-bar [value]="result.overallMatch" status="primary" [displayValue]="true"></nb-progress-bar>
</div>
<div class="field-matches mt-4">
<h6>Field-level Match Breakdown</h6>
<div class="field-match-item">
<div class="d-flex justify-content-between">
<span>Name</span>
<span>{{ result.fieldMatches.name }}%</span>
</div>
<nb-progress-bar [value]="result.fieldMatches.name" size="tiny" status="success"></nb-progress-bar>
</div>
<div class="field-match-item mt-2">
<div class="d-flex justify-content-between">
<span>Date of Birth</span>
<span>{{ result.fieldMatches.dateOfBirth }}%</span>
</div>
<nb-progress-bar [value]="result.fieldMatches.dateOfBirth" size="tiny" status="success"></nb-progress-bar>
</div>
<div class="field-match-item mt-2">
<div class="d-flex justify-content-between">
<span>Address</span>
<span>{{ result.fieldMatches.address }}%</span>
</div>
<nb-progress-bar [value]="result.fieldMatches.address" size="tiny" status="warning"></nb-progress-bar>
</div>
<div class="field-match-item mt-2">
<div class="d-flex justify-content-between">
<span>Identification</span>
<span>{{ result.fieldMatches.identification }}%</span>
</div>
<nb-progress-bar [value]="result.fieldMatches.identification" size="tiny" status="info"></nb-progress-bar>
</div>
</div>
</nb-card-body>
</nb-card>
</div>
</div>

View file

@ -0,0 +1,7 @@
.field-match-item {
margin-bottom: 15px;
}
.match-result {
margin-bottom: 20px;
}

View file

@ -0,0 +1,45 @@
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'ngx-manual-lookup',
templateUrl: './manual-lookup.component.html',
styleUrls: ['./manual-lookup.component.scss']
})
export class ManualLookupComponent {
identityForm: FormGroup;
isSubmitting = false;
result = null;
constructor(private fb: FormBuilder) {
this.identityForm = this.fb.group({
firstName: ['', Validators.required],
lastName: ['', Validators.required],
dateOfBirth: ['', Validators.required],
country: ['', Validators.required],
identificationNumber: [''],
email: ['', Validators.email],
phone: [''],
address: [''],
});
}
onSubmit() {
if (this.identityForm.valid) {
this.isSubmitting = true;
// Here you would call your identity verification service
setTimeout(() => {
this.isSubmitting = false;
this.result = {
overallMatch: 85,
fieldMatches: {
name: 90,
dateOfBirth: 100,
address: 70,
identification: 80
}
};
}, 2000);
}
}
}

View file

@ -0,0 +1,40 @@
<nb-card>
<nb-card-header>
<h5>Verification Results History</h5>
</nb-card-header>
<nb-card-body>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Date/Time</th>
<th>Country</th>
<th>Match Score</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let lookup of recentLookups">
<td>{{ lookup.date }}</td>
<td>{{ lookup.country }}</td>
<td>
<nb-progress-bar [value]="lookup.score" size="tiny" [status]="getStatusClass(lookup.status)" [displayValue]="true"></nb-progress-bar>
</td>
<td>
<span class="badge badge-{{ getStatusClass(lookup.status) }}">{{ lookup.status }}</span>
</td>
<td>
<button nbButton ghost size="small" status="info" title="View Details">
<nb-icon icon="eye-outline"></nb-icon>
</button>
<button nbButton ghost size="small" status="primary" title="Download Report">
<nb-icon icon="download-outline"></nb-icon>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</nb-card-body>
</nb-card>

View file

@ -0,0 +1,23 @@
button {
margin-right: 5px;
}
.badge {
padding: 0.4rem 0.6rem;
}
.badge-success {
background-color: #00d68f;
}
.badge-warning {
background-color: #ffaa00;
}
.badge-danger {
background-color: #ff3d71;
}
.badge-info {
background-color: #0095ff;
}

View file

@ -0,0 +1,37 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ngx-results-history',
templateUrl: './results-history.component.html',
styleUrls: ['./results-history.component.scss']
})
export class ResultsHistoryComponent implements OnInit {
// Sample data for demonstration
recentLookups = [
{ date: '2025-05-19 10:30', country: 'Australia', score: 95, status: 'Verified' },
{ date: '2025-05-19 09:15', country: 'Indonesia', score: 82, status: 'Verified' },
{ date: '2025-05-18 16:45', country: 'Malaysia', score: 60, status: 'Partial Match' },
{ date: '2025-05-18 14:20', country: 'Japan', score: 42, status: 'No Match' },
{ date: '2025-05-17 11:30', country: 'Australia', score: 88, status: 'Verified' },
{ date: '2025-05-17 09:45', country: 'Indonesia', score: 76, status: 'Verified' },
];
constructor() { }
ngOnInit(): void {
}
getStatusClass(status: string): string {
switch (status) {
case 'Verified':
return 'success';
case 'Partial Match':
return 'warning';
case 'No Match':
return 'danger';
default:
return 'info';
}
}
}

View file

@ -21,5 +21,4 @@ const routes: Routes = [
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class MiscellaneousRoutingModule {
}
export class MiscellaneousRoutingModule { }

View file

@ -2,9 +2,7 @@ import { Component } from '@angular/core';
@Component({
selector: 'ngx-miscellaneous',
template: `
<router-outlet></router-outlet>
`,
template: `<router-outlet></router-outlet>`,
})
export class MiscellaneousComponent {
}

View file

@ -1,16 +1,19 @@
import { NgModule } from '@angular/core';
import { NbButtonModule, NbCardModule } from '@nebular/theme';
import { CommonModule } from '@angular/common';
import { ThemeModule } from '../../@theme/theme.module';
import { NbCardModule, NbButtonModule, NbIconModule } from '@nebular/theme';
import { MiscellaneousRoutingModule } from './miscellaneous-routing.module';
import { MiscellaneousComponent } from './miscellaneous.component';
import { NotFoundComponent } from './not-found/not-found.component';
@NgModule({
imports: [
CommonModule,
ThemeModule,
NbCardModule,
NbButtonModule,
NbIconModule,
MiscellaneousRoutingModule,
],
declarations: [

View file

@ -2,245 +2,41 @@ import { NbMenuItem } from '@nebular/theme';
export const MENU_ITEMS: NbMenuItem[] = [
{
title: 'E-commerce',
icon: 'shopping-cart-outline',
title: 'Dashboard',
icon: 'home-outline',
link: '/pages/dashboard',
home: true,
},
{
title: 'IoT Dashboard',
icon: 'home-outline',
link: '/pages/iot-dashboard',
},
{
title: 'FEATURES',
group: true,
},
{
title: 'Layout',
icon: 'layout-outline',
title: 'Identity Verification',
icon: 'person-outline',
children: [
{
title: 'Stepper',
link: '/pages/layout/stepper',
title: 'Manual Lookup',
link: '/pages/identity/manual-lookup',
},
{
title: 'List',
link: '/pages/layout/list',
},
{
title: 'Infinite List',
link: '/pages/layout/infinite-list',
},
{
title: 'Accordion',
link: '/pages/layout/accordion',
},
{
title: 'Tabs',
pathMatch: 'prefix',
link: '/pages/layout/tabs',
title: 'Results History',
link: '/pages/identity/results-history',
},
],
},
{
title: 'Forms',
icon: 'edit-2-outline',
children: [
{
title: 'Form Inputs',
link: '/pages/forms/inputs',
},
{
title: 'Form Layouts',
link: '/pages/forms/layouts',
},
{
title: 'Buttons',
link: '/pages/forms/buttons',
},
{
title: 'Datepicker',
link: '/pages/forms/datepicker',
},
],
title: 'Countries',
icon: 'globe-outline',
link: '/pages/countries',
},
{
title: 'UI Features',
icon: 'keypad-outline',
link: '/pages/ui-features',
title: 'Account',
icon: 'settings-outline',
children: [
{
title: 'Grid',
link: '/pages/ui-features/grid',
title: 'Profile',
link: '/pages/account/profile',
},
{
title: 'Icons',
link: '/pages/ui-features/icons',
},
{
title: 'Typography',
link: '/pages/ui-features/typography',
},
{
title: 'Animated Searches',
link: '/pages/ui-features/search-fields',
},
],
},
{
title: 'Modal & Overlays',
icon: 'browser-outline',
children: [
{
title: 'Dialog',
link: '/pages/modal-overlays/dialog',
},
{
title: 'Window',
link: '/pages/modal-overlays/window',
},
{
title: 'Popover',
link: '/pages/modal-overlays/popover',
},
{
title: 'Toastr',
link: '/pages/modal-overlays/toastr',
},
{
title: 'Tooltip',
link: '/pages/modal-overlays/tooltip',
},
],
},
{
title: 'Extra Components',
icon: 'message-circle-outline',
children: [
{
title: 'Calendar',
link: '/pages/extra-components/calendar',
},
{
title: 'Progress Bar',
link: '/pages/extra-components/progress-bar',
},
{
title: 'Spinner',
link: '/pages/extra-components/spinner',
},
{
title: 'Alert',
link: '/pages/extra-components/alert',
},
{
title: 'Calendar Kit',
link: '/pages/extra-components/calendar-kit',
},
{
title: 'Chat',
link: '/pages/extra-components/chat',
},
],
},
{
title: 'Maps',
icon: 'map-outline',
children: [
{
title: 'Google Maps',
link: '/pages/maps/gmaps',
},
{
title: 'Leaflet Maps',
link: '/pages/maps/leaflet',
},
{
title: 'Bubble Maps',
link: '/pages/maps/bubble',
},
{
title: 'Search Maps',
link: '/pages/maps/searchmap',
},
],
},
{
title: 'Charts',
icon: 'pie-chart-outline',
children: [
{
title: 'Echarts',
link: '/pages/charts/echarts',
},
{
title: 'Charts.js',
link: '/pages/charts/chartjs',
},
{
title: 'D3',
link: '/pages/charts/d3',
},
],
},
{
title: 'Editors',
icon: 'text-outline',
children: [
{
title: 'TinyMCE',
link: '/pages/editors/tinymce',
},
{
title: 'CKEditor',
link: '/pages/editors/ckeditor',
},
],
},
{
title: 'Tables & Data',
icon: 'grid-outline',
children: [
{
title: 'Smart Table',
link: '/pages/tables/smart-table',
},
{
title: 'Tree Grid',
link: '/pages/tables/tree-grid',
},
],
},
{
title: 'Miscellaneous',
icon: 'shuffle-2-outline',
children: [
{
title: '404',
link: '/pages/miscellaneous/404',
},
],
},
{
title: 'Auth',
icon: 'lock-outline',
children: [
{
title: 'Login',
link: '/auth/login',
},
{
title: 'Register',
link: '/auth/register',
},
{
title: 'Request Password',
link: '/auth/request-password',
},
{
title: 'Reset Password',
link: '/auth/reset-password',
title: 'Settings',
link: '/pages/account/settings',
},
],
},

View file

@ -3,7 +3,6 @@ import { NgModule } from '@angular/core';
import { PagesComponent } from './pages.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { ECommerceComponent } from './e-commerce/e-commerce.component';
import { NotFoundComponent } from './miscellaneous/not-found/not-found.component';
const routes: Routes = [{
@ -12,61 +11,22 @@ const routes: Routes = [{
children: [
{
path: 'dashboard',
component: ECommerceComponent,
},
{
path: 'iot-dashboard',
component: DashboardComponent,
},
{
path: 'layout',
loadChildren: () => import('./layout/layout.module')
.then(m => m.LayoutModule),
path: 'identity',
loadChildren: () => import('./identity/identity.module')
.then(m => m.IdentityModule),
},
{
path: 'forms',
loadChildren: () => import('./forms/forms.module')
.then(m => m.FormsModule),
path: 'countries',
loadChildren: () => import('./countries/countries.module')
.then(m => m.CountriesModule),
},
{
path: 'ui-features',
loadChildren: () => import('./ui-features/ui-features.module')
.then(m => m.UiFeaturesModule),
},
{
path: 'modal-overlays',
loadChildren: () => import('./modal-overlays/modal-overlays.module')
.then(m => m.ModalOverlaysModule),
},
{
path: 'extra-components',
loadChildren: () => import('./extra-components/extra-components.module')
.then(m => m.ExtraComponentsModule),
},
{
path: 'maps',
loadChildren: () => import('./maps/maps.module')
.then(m => m.MapsModule),
},
{
path: 'charts',
loadChildren: () => import('./charts/charts.module')
.then(m => m.ChartsModule),
},
{
path: 'editors',
loadChildren: () => import('./editors/editors.module')
.then(m => m.EditorsModule),
},
{
path: 'tables',
loadChildren: () => import('./tables/tables.module')
.then(m => m.TablesModule),
},
{
path: 'miscellaneous',
loadChildren: () => import('./miscellaneous/miscellaneous.module')
.then(m => m.MiscellaneousModule),
path: 'account',
loadChildren: () => import('./account/account.module')
.then(m => m.AccountModule),
},
{
path: '',

View file

@ -4,9 +4,8 @@ import { NbMenuModule } from '@nebular/theme';
import { ThemeModule } from '../@theme/theme.module';
import { PagesComponent } from './pages.component';
import { DashboardModule } from './dashboard/dashboard.module';
import { ECommerceModule } from './e-commerce/e-commerce.module';
import { PagesRoutingModule } from './pages-routing.module';
import { MiscellaneousModule } from './miscellaneous/miscellaneous.module';
import { PagesRoutingModule } from './pages-routing.module';
@NgModule({
imports: [
@ -14,7 +13,6 @@ import { MiscellaneousModule } from './miscellaneous/miscellaneous.module';
ThemeModule,
NbMenuModule,
DashboardModule,
ECommerceModule,
MiscellaneousModule,
],
declarations: [