From cd31bbc3afd68b90dbc0d83bed18353e99c2ae43 Mon Sep 17 00:00:00 2001 From: Dikshit Moradiya <106728438+ct-dixit@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:11:06 +0530 Subject: [PATCH] Angular 18 (#9) * angular 18 update complete * version change --- package.json | 53 +- src/app/app-routing.module.ts | 16 +- src/app/app.module.ts | 24 +- .../authentication/login/login.component.scss | 112 + .../register/register.component.scss | 99 + .../breadcrumb/breadcrumb.component.html | 225 -- .../breadcrumb/breadcrumb.component.ts | 14 - .../demo/component/card/card.component.html | 260 -- src/app/demo/component/card/card.component.ts | 14 - .../component/spinner/spinner.component.html | 89 - .../component/spinner/spinner.component.ts | 14 - .../analytics-chart.component.html | 26 + .../analytics-chart.component.scss} | 0 .../analytics-chart.component.ts | 109 + .../dashboard/dashboard.component.html | 175 +- .../dashboard/dashboard.component.scss | 31 + .../default/dashboard/dashboard.component.ts | 337 +- .../income-overview-chart.component.html | 17 + .../income-overview-chart.component.scss} | 0 .../income-overview-chart.component.ts | 102 + .../monthly-bar-chart.component.html | 24 + .../monthly-bar-chart.component.scss | 19 + .../monthly-bar-chart.component.ts | 144 + .../sales-report-chart.component.html | 21 + .../sales-report-chart.component.scss} | 0 .../sales-report-chart.component.ts | 119 + .../typography/typography.component.html | 55 +- .../ui-color/ui-color.component.html | 62 +- .../ui-color/ui-color.component.ts | 3 +- .../admin-layout.component.html} | 22 +- .../admin-layout.component.scss} | 0 .../admin-layout/admin-layout.component.ts | 34 + .../nav-bar/nav-bar.component.html | 0 .../nav-bar/nav-bar.component.scss | 0 .../nav-bar/nav-bar.component.ts | 19 +- .../nav-bar/nav-left/nav-left.component.html | 25 +- .../nav-bar/nav-left/nav-left.component.scss | 0 .../nav-bar/nav-left/nav-left.component.ts | 35 + .../nav-right/nav-right.component.html | 82 +- .../nav-right/nav-right.component.scss | 0 .../nav-bar/nav-right/nav-right.component.ts | 111 + .../nav-collapse/nav-collapse.component.html | 21 + .../nav-collapse/nav-collapse.component.scss | 0 .../nav-collapse/nav-collapse.component.ts | 81 + .../nav-content/nav-content.component.html | 33 + .../nav-content/nav-content.component.scss | 0 .../nav-content/nav-content.component.ts | 47 +- .../nav-group/nav-group.component.html | 6 +- .../nav-group/nav-group.component.scss | 0 .../nav-group/nav-group.component.ts | 65 + .../nav-item/nav-item.component.html | 11 +- .../nav-item/nav-item.component.scss | 0 .../nav-item/nav-item.component.ts | 20 +- .../navigation/navigation.component.html | 5 +- .../navigation/navigation.component.scss | 0 .../navigation/navigation.component.ts | 35 + .../navigation/navigation.ts | 100 +- .../theme/layouts/admin/admin.component.ts | 25 - .../nav-bar/nav-left/nav-left.component.ts | 20 - .../nav-bar/nav-right/nav-right.component.ts | 56 - .../nav-collapse/nav-collapse.component.html | 22 - .../nav-collapse/nav-collapse.component.ts | 42 - .../nav-content/nav-content.component.html | 28 - .../nav-group/nav-group.component.ts | 49 - .../admin/navigation/navigation.component.ts | 20 - .../theme/layouts/guest/guest.component.ts | 4 + .../breadcrumb/breadcrumb.component.html | 8 +- .../breadcrumb/breadcrumb.component.ts | 29 +- .../components/card/card.component.html | 18 +- .../shared/components/card/card.component.ts | 49 +- src/app/theme/shared/shared.module.ts | 7 +- src/assets/images/github.svg | 10 - src/assets/images/img-navbar-card.png | Bin 9528 -> 0 bytes .../images/slider/header-bg.07dde975.jpg | Bin 538964 -> 0 bytes src/assets/images/slider/img-slide-1.jpg | Bin 52891 -> 0 bytes src/assets/images/slider/img-slide-2.jpg | Bin 58148 -> 0 bytes src/assets/images/slider/img-slide-3.jpg | Bin 44442 -> 0 bytes src/assets/images/slider/img-slide-4.jpg | Bin 32435 -> 0 bytes src/assets/images/slider/img-slide-5.jpg | Bin 40852 -> 0 bytes src/assets/images/slider/img-slide-6.jpg | Bin 35963 -> 0 bytes src/assets/images/slider/img-slide-7.jpg | Bin 21426 -> 0 bytes src/fake-data/default-data.json | 40 +- src/scss/bootstrap/bootstrap.scss | 34 + src/scss/menu/_menu-lite.scss | 855 ---- src/scss/settings/_preset-variables.scss | 10 - src/scss/settings/_theme-variables.scss | 32 - ...ariables.scss => bootstrap-variables.scss} | 62 +- src/scss/settings/color-variables.scss | 44 + src/scss/settings/theme-variables.scss | 111 + src/scss/themes/_general.scss | 240 -- src/scss/themes/components/_card.scss | 172 - src/scss/themes/components/_form.scss | 1293 ------ src/scss/themes/components/_table.scss | 29 - .../components/{_avtar.scss => avatar.scss} | 9 +- .../components/{_badge.scss => badge.scss} | 0 .../components/{_button.scss => button.scss} | 0 src/scss/themes/components/card.scss | 58 + .../{_components.scss => components.scss} | 8 +- .../{_dropdown.scss => dropdown.scss} | 39 +- src/scss/themes/components/form.scss | 254 ++ src/scss/themes/components/table.scss | 39 + .../components/{_tabs.scss => tabs.scss} | 6 +- src/scss/themes/general.scss | 233 ++ .../themes/{_generic.scss => generic.scss} | 11 + src/scss/themes/layouts/_pc-common.scss | 221 - src/scss/themes/layouts/_pc-sidebar.scss | 299 -- .../themes/layouts/breadcrumb/breadcrumb.scss | 65 + .../{_pc-footer.scss => footer/footer.scss} | 20 +- src/scss/themes/layouts/layouts.scss | 4 - src/scss/themes/layouts/menu/sidebar.scss | 326 ++ .../{_pc-header.scss => navbar/navbar.scss} | 202 +- src/scss/themes/layouts/pc-common.scss | 41 + src/scss/themes/pages/_authentication.scss | 102 - src/scss/themes/pages/_icon-lauouts.scss | 33 - src/scss/themes/pages/_page.scss | 2 - src/scss/themes/preset-style.scss | 87 + src/styles.scss | 37 +- yarn.lock | 3541 +++++++++-------- 118 files changed, 5051 insertions(+), 6811 deletions(-) delete mode 100644 src/app/demo/component/breadcrumb/breadcrumb.component.html delete mode 100644 src/app/demo/component/breadcrumb/breadcrumb.component.ts delete mode 100644 src/app/demo/component/card/card.component.html delete mode 100644 src/app/demo/component/card/card.component.ts delete mode 100644 src/app/demo/component/spinner/spinner.component.html delete mode 100644 src/app/demo/component/spinner/spinner.component.ts create mode 100644 src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.html rename src/app/demo/{component/breadcrumb/breadcrumb.component.scss => default/dashboard/analytics-chart/analytics-chart.component.scss} (100%) create mode 100644 src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.ts create mode 100644 src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.html rename src/app/demo/{component/card/card.component.scss => default/dashboard/income-overview-chart/income-overview-chart.component.scss} (100%) create mode 100644 src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.ts create mode 100644 src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.html create mode 100644 src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.scss create mode 100644 src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.ts create mode 100644 src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.html rename src/app/demo/{component/spinner/spinner.component.scss => default/dashboard/sales-report-chart/sales-report-chart.component.scss} (100%) create mode 100644 src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.ts rename src/app/theme/layouts/{admin/admin.component.html => admin-layout/admin-layout.component.html} (61%) rename src/app/theme/layouts/{admin/admin.component.scss => admin-layout/admin-layout.component.scss} (100%) create mode 100644 src/app/theme/layouts/admin-layout/admin-layout.component.ts rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-bar.component.html (100%) rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-bar.component.scss (100%) rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-bar.component.ts (52%) rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-left/nav-left.component.html (53%) rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-left/nav-left.component.scss (100%) create mode 100644 src/app/theme/layouts/admin-layout/nav-bar/nav-left/nav-left.component.ts rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-right/nav-right.component.html (56%) rename src/app/theme/layouts/{admin => admin-layout}/nav-bar/nav-right/nav-right.component.scss (100%) create mode 100644 src/app/theme/layouts/admin-layout/nav-bar/nav-right/nav-right.component.ts create mode 100644 src/app/theme/layouts/admin-layout/navigation/nav-content/nav-collapse/nav-collapse.component.html rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-collapse/nav-collapse.component.scss (100%) create mode 100644 src/app/theme/layouts/admin-layout/navigation/nav-content/nav-collapse/nav-collapse.component.ts create mode 100644 src/app/theme/layouts/admin-layout/navigation/nav-content/nav-content.component.html rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-content.component.scss (100%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-content.component.ts (60%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-group/nav-group.component.html (68%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-group/nav-group.component.scss (100%) create mode 100644 src/app/theme/layouts/admin-layout/navigation/nav-content/nav-group/nav-group.component.ts rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-item/nav-item.component.html (63%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-item/nav-item.component.scss (100%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/nav-content/nav-item/nav-item.component.ts (58%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/navigation.component.html (63%) rename src/app/theme/layouts/{admin => admin-layout}/navigation/navigation.component.scss (100%) create mode 100644 src/app/theme/layouts/admin-layout/navigation/navigation.component.ts rename src/app/theme/layouts/{admin => admin-layout}/navigation/navigation.ts (74%) delete mode 100644 src/app/theme/layouts/admin/admin.component.ts delete mode 100644 src/app/theme/layouts/admin/nav-bar/nav-left/nav-left.component.ts delete mode 100644 src/app/theme/layouts/admin/nav-bar/nav-right/nav-right.component.ts delete mode 100644 src/app/theme/layouts/admin/navigation/nav-content/nav-collapse/nav-collapse.component.html delete mode 100644 src/app/theme/layouts/admin/navigation/nav-content/nav-collapse/nav-collapse.component.ts delete mode 100644 src/app/theme/layouts/admin/navigation/nav-content/nav-content.component.html delete mode 100644 src/app/theme/layouts/admin/navigation/nav-content/nav-group/nav-group.component.ts delete mode 100644 src/app/theme/layouts/admin/navigation/navigation.component.ts delete mode 100644 src/assets/images/github.svg delete mode 100644 src/assets/images/img-navbar-card.png delete mode 100644 src/assets/images/slider/header-bg.07dde975.jpg delete mode 100644 src/assets/images/slider/img-slide-1.jpg delete mode 100644 src/assets/images/slider/img-slide-2.jpg delete mode 100644 src/assets/images/slider/img-slide-3.jpg delete mode 100644 src/assets/images/slider/img-slide-4.jpg delete mode 100644 src/assets/images/slider/img-slide-5.jpg delete mode 100644 src/assets/images/slider/img-slide-6.jpg delete mode 100644 src/assets/images/slider/img-slide-7.jpg create mode 100644 src/scss/bootstrap/bootstrap.scss delete mode 100644 src/scss/menu/_menu-lite.scss delete mode 100644 src/scss/settings/_preset-variables.scss delete mode 100644 src/scss/settings/_theme-variables.scss rename src/scss/settings/{_custom-variables.scss => bootstrap-variables.scss} (95%) create mode 100644 src/scss/settings/color-variables.scss create mode 100644 src/scss/settings/theme-variables.scss delete mode 100644 src/scss/themes/_general.scss delete mode 100644 src/scss/themes/components/_card.scss delete mode 100644 src/scss/themes/components/_form.scss delete mode 100644 src/scss/themes/components/_table.scss rename src/scss/themes/components/{_avtar.scss => avatar.scss} (65%) rename src/scss/themes/components/{_badge.scss => badge.scss} (100%) rename src/scss/themes/components/{_button.scss => button.scss} (100%) create mode 100644 src/scss/themes/components/card.scss rename src/scss/themes/components/{_components.scss => components.scss} (86%) rename src/scss/themes/components/{_dropdown.scss => dropdown.scss} (65%) create mode 100644 src/scss/themes/components/form.scss create mode 100644 src/scss/themes/components/table.scss rename src/scss/themes/components/{_tabs.scss => tabs.scss} (88%) create mode 100644 src/scss/themes/general.scss rename src/scss/themes/{_generic.scss => generic.scss} (93%) delete mode 100644 src/scss/themes/layouts/_pc-common.scss delete mode 100644 src/scss/themes/layouts/_pc-sidebar.scss create mode 100644 src/scss/themes/layouts/breadcrumb/breadcrumb.scss rename src/scss/themes/layouts/{_pc-footer.scss => footer/footer.scss} (56%) delete mode 100644 src/scss/themes/layouts/layouts.scss create mode 100644 src/scss/themes/layouts/menu/sidebar.scss rename src/scss/themes/layouts/{_pc-header.scss => navbar/navbar.scss} (76%) create mode 100644 src/scss/themes/layouts/pc-common.scss delete mode 100644 src/scss/themes/pages/_authentication.scss delete mode 100644 src/scss/themes/pages/_icon-lauouts.scss delete mode 100644 src/scss/themes/pages/_page.scss create mode 100644 src/scss/themes/preset-style.scss diff --git a/package.json b/package.json index 0e5c784..a200f96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mantis-free-angular-admin-template", - "version": "3.0.0", + "version": "4.0.0", "author": "CodedThemes", "license": "MIT", "scripts": { @@ -15,15 +15,16 @@ }, "private": false, "dependencies": { - "@angular/animations": "^17.1.1", - "@angular/cdk": "^17.1.1", - "@angular/common": "^17.1.1", - "@angular/compiler": "^17.1.1", - "@angular/core": "^17.1.1", - "@angular/forms": "^17.1.1", - "@angular/platform-browser": "^17.1.1", - "@angular/platform-browser-dynamic": "^17.1.1", - "@angular/router": "^17.1.1", + "@angular/animations": "^18.0.0-next.3", + "@angular/cdk": "^18.0.0-next.3", + "@angular/common": "^18.0.0-next.3", + "@angular/compiler": "^18.0.0-next.3", + "@angular/core": "^18.0.0-next.3", + "@angular/forms": "^18.0.0-next.3", + "@angular/platform-browser": "^18.0.0-next.3", + "@angular/platform-browser-dynamic": "^18.0.0-next.3", + "@angular/router": "^18.0.0-next.3", + "@ant-design/icons-angular": "^17.0.0", "@ng-bootstrap/ng-bootstrap": "^16.0.0", "@popperjs/core": "^2.11.8", "apexcharts": "^3.45.2", @@ -32,29 +33,29 @@ "ngx-scrollbar": "^13.0.3", "rxjs": "~7.8.1", "tslib": "^2.6.2", - "zone.js": "~0.14.3" + "zone.js": "~0.14.4" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.1", - "@angular-eslint/builder": "17.2.1", - "@angular-eslint/eslint-plugin": "17.2.1", - "@angular-eslint/eslint-plugin-template": "17.2.1", - "@angular-eslint/schematics": "17.2.1", - "@angular-eslint/template-parser": "17.2.1", - "@angular/cli": "~17.1.1", - "@angular/compiler-cli": "^17.1.1", + "@angular-devkit/build-angular": "^18.0.0-next.3", + "@angular-eslint/builder": "17.3.0", + "@angular-eslint/eslint-plugin": "17.3.0", + "@angular-eslint/eslint-plugin-template": "17.3.0", + "@angular-eslint/schematics": "17.3.0", + "@angular-eslint/template-parser": "17.3.0", + "@angular/cli": "~18.0.0-next.3", + "@angular/compiler-cli": "^18.0.0-next.3", "@types/jasmine": "~5.1.4", - "@types/node": "^20.4.2", - "@typescript-eslint/eslint-plugin": "6.19.1", - "@typescript-eslint/parser": "6.19.1", + "@types/node": "^20.12.7", + "@typescript-eslint/eslint-plugin": "7.7.1", + "@typescript-eslint/parser": "7.7.1", "eslint": "^8.56.0", - "jasmine-core": "~5.1.1", - "karma": "~6.4.2", + "jasmine-core": "~5.1.2", + "karma": "~6.4.3", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "prettier": "3.2.4", - "typescript": "5.2.2" + "prettier": "3.2.5", + "typescript": "5.4" } } diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 9d26816..7c56d77 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -3,7 +3,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; // Project import -import { AdminComponent } from './theme/layouts/admin/admin.component'; +import { AdminComponent } from './theme/layouts/admin-layout/admin-layout.component'; import { GuestComponent } from './theme/layouts/guest/guest.component'; const routes: Routes = [ @@ -18,24 +18,12 @@ const routes: Routes = [ }, { path: 'dashboard/default', - loadComponent: () => import('./demo/default/dashboard/dashboard.component') + loadComponent: () => import('./demo/default/dashboard/dashboard.component').then((c) => c.DefaultComponent) }, { path: 'typography', loadComponent: () => import('./demo/ui-component/typography/typography.component') }, - { - path: 'card', - loadComponent: () => import('./demo/component/card/card.component') - }, - { - path: 'breadcrumb', - loadComponent: () => import('./demo/component/breadcrumb/breadcrumb.component') - }, - { - path: 'spinner', - loadComponent: () => import('./demo/component/spinner/spinner.component') - }, { path: 'color', loadComponent: () => import('./demo/ui-component/ui-color/ui-color.component') diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9270458..a97cdea 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -7,31 +7,9 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { SharedModule } from './theme/shared/shared.module'; -import { AdminComponent } from './theme/layouts/admin/admin.component'; -import { GuestComponent } from './theme/layouts/guest/guest.component'; -import { NavigationComponent } from './theme/layouts/admin/navigation/navigation.component'; -import { NavBarComponent } from './theme/layouts/admin/nav-bar/nav-bar.component'; -import { NavLeftComponent } from './theme/layouts/admin/nav-bar/nav-left/nav-left.component'; -import { NavRightComponent } from './theme/layouts/admin/nav-bar/nav-right/nav-right.component'; -import { NavContentComponent } from './theme/layouts/admin/navigation/nav-content/nav-content.component'; -import { NavCollapseComponent } from './theme/layouts/admin/navigation/nav-content/nav-collapse/nav-collapse.component'; -import { NavGroupComponent } from './theme/layouts/admin/navigation/nav-content/nav-group/nav-group.component'; -import { NavItemComponent } from './theme/layouts/admin/navigation/nav-content/nav-item/nav-item.component'; @NgModule({ - declarations: [ - AppComponent, - AdminComponent, - GuestComponent, - NavigationComponent, - NavBarComponent, - NavLeftComponent, - NavRightComponent, - NavContentComponent, - NavCollapseComponent, - NavGroupComponent, - NavItemComponent - ], + declarations: [AppComponent], imports: [BrowserModule, AppRoutingModule, SharedModule, BrowserAnimationsModule], bootstrap: [AppComponent] }) diff --git a/src/app/demo/authentication/login/login.component.scss b/src/app/demo/authentication/login/login.component.scss index e69de29..d78ea76 100644 --- a/src/app/demo/authentication/login/login.component.scss +++ b/src/app/demo/authentication/login/login.component.scss @@ -0,0 +1,112 @@ +@import '../../../../scss/settings/color-variables.scss'; + +.auth-main { + position: relative; + + .auth-wrapper { + height: 100%; + width: 100%; + min-height: 100vh; + + .saprator { + position: relative; + display: flex; + align-self: center; + justify-content: center; + + &:after { + content: ''; + position: absolute; + top: 50%; + left: 0; + width: 100%; + height: 1px; + background: var(--bs-border-color); + z-index: 1; + } + + span { + font-size: 0.875rem; + padding: 8px 24px; + background: $white; + z-index: 5; + text-transform: capitalize; + color: $gray-800; + font-weight: 500; + } + } + + &.v3 { + display: flex; + align-items: center; + + .auth-form { + flex-direction: column; + background: url('../../../../assets/images/authentication/img-auth-bg.svg'); + min-height: 100vh; + padding: 24px; + background-repeat: no-repeat; + background-size: auto 82%; + background-position: left bottom; + position: relative; + justify-content: space-between; + > * { + position: relative; + z-index: 5; + } + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba($white, 0.2); + backdrop-filter: blur(16px); + } + } + } + .auth-form { + display: flex; + align-items: center; + justify-content: center; + flex-grow: 1; + + .card { + width: 100%; + max-width: 495px; + box-shadow: none; + } + + img + span { + padding-left: 15px; + } + + h5 { + span { + text-decoration: underline; + } + } + } + .auth-footer, + .auth-header { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + } + } +} + +form i { + display: inline-flex; + align-items: center; + justify-content: center; + margin: 0px -12px 0px 0px; + cursor: pointer; + padding: 12px; + font-size: 18px; + position: absolute; + top: 203px; + right: 45px; +} diff --git a/src/app/demo/authentication/register/register.component.scss b/src/app/demo/authentication/register/register.component.scss index e69de29..876e227 100644 --- a/src/app/demo/authentication/register/register.component.scss +++ b/src/app/demo/authentication/register/register.component.scss @@ -0,0 +1,99 @@ +@import '../../../../scss/settings/color-variables.scss'; + +.auth-main { + position: relative; + + .auth-wrapper { + height: 100%; + width: 100%; + min-height: 100vh; + + .saprator { + position: relative; + display: flex; + align-self: center; + justify-content: center; + + &:after { + content: ''; + position: absolute; + top: 50%; + left: 0; + width: 100%; + height: 1px; + background: var(--bs-border-color); + z-index: 1; + } + + span { + font-size: 0.875rem; + padding: 8px 24px; + background: $white; + z-index: 5; + text-transform: capitalize; + color: $gray-800; + font-weight: 500; + } + } + + &.v3 { + display: flex; + align-items: center; + + .auth-form { + flex-direction: column; + background: url('../../../../assets/images/authentication/img-auth-bg.svg'); + min-height: 100vh; + padding: 24px; + background-repeat: no-repeat; + background-size: auto 82%; + background-position: left bottom; + position: relative; + justify-content: space-between; + > * { + position: relative; + z-index: 5; + } + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba($white, 0.2); + backdrop-filter: blur(16px); + } + } + } + .auth-form { + display: flex; + align-items: center; + justify-content: center; + flex-grow: 1; + + .card { + width: 100%; + max-width: 495px; + box-shadow: none; + } + + img + span { + padding-left: 15px; + } + + h5 { + span { + text-decoration: underline; + } + } + } + .auth-footer, + .auth-header { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + } + } +} diff --git a/src/app/demo/component/breadcrumb/breadcrumb.component.html b/src/app/demo/component/breadcrumb/breadcrumb.component.html deleted file mode 100644 index 5c40b77..0000000 --- a/src/app/demo/component/breadcrumb/breadcrumb.component.html +++ /dev/null @@ -1,225 +0,0 @@ -
- -
- - - - - -
-
- - - - - -
-
- - - - - -
-
- - - - - -
-
- - -
Working with Icons
-
- -
Disabled and Active States
-
- -
Sizing
-
- - -
Alignment
-
- - -
-
- -
diff --git a/src/app/demo/component/breadcrumb/breadcrumb.component.ts b/src/app/demo/component/breadcrumb/breadcrumb.component.ts deleted file mode 100644 index ec5ee08..0000000 --- a/src/app/demo/component/breadcrumb/breadcrumb.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -// angular import -import { Component } from '@angular/core'; - -// project import -import { SharedModule } from 'src/app/theme/shared/shared.module'; - -@Component({ - selector: 'app-breadcrumb', - standalone: true, - imports: [SharedModule], - templateUrl: './breadcrumb.component.html', - styleUrls: ['./breadcrumb.component.scss'] -}) -export default class BreadcrumbComponent {} diff --git a/src/app/demo/component/card/card.component.html b/src/app/demo/component/card/card.component.html deleted file mode 100644 index b125aa1..0000000 --- a/src/app/demo/component/card/card.component.html +++ /dev/null @@ -1,260 +0,0 @@ -
- -
-
Body Content
-
-
-
-
This is some text within a card body.
-
-
-
-
-
Titles, Text, and Links
-
-
-
-
-
-
Card subtitle
-

Some quick example text to build on the card title and make up the bulk of the card's content.

- Card link - Another link -
-
-
-
-
-
Header and Footer
-
-
-
-
Featured
-
-
Special title treatment
-

With supporting text below as a natural lead-in to additional content.

- Go somewhere -
-
-
-
-
-
-
-
Left Align
-
-
-
-
-
Special title treatment
-

With supporting text below as a natural lead-in to additional content.

- Go somewhere -
-
-
-
-
-
Center Align
-
-
-
-
-
Special title treatment
-

With supporting text below as a natural lead-in to additional content.

- Go somewhere -
-
-
-
-
-
Right Align
-
-
-
-
-
Special title treatment
-

With supporting text below as a natural lead-in to additional content.

- Go somewhere -
-
-
-
-
-
-
-
Image Caps
-
-
-
- Card image cap -
-
Card title
-

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit - longer.

-

Last updated 3 mins ago

-
-
-
-
-
-
Image Caps [ Bottom ]
-
-
-
-
-
Card title
-

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit - longer.

-

Last updated 3 mins ago

-
- Card image cap -
-
-
-
-
Image Overlays
-
-
-
- Card image -
-
Card title
-

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit - longer.

-

Last updated 3 mins ago

-
-
-
-
-
-
Card Styles
-
-
-
-
-
-
Header
-
-
Primary card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Secondary card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Success card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Danger card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Warning card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Info card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Light card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
Header
-
-
Dark card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
-
-
-
-
-
-
-
Card Groups
-
-
-
-
- Card image cap -
-
Card title
-

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit - longer.

-
- -
-
- Card image cap -
-
Card title
-

This card has supporting text below as a natural lead-in to additional content.

-
- -
-
- Card image cap -
-
Card title
-

This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content - than the first to show that equal height action.

-
- -
-
-
-
- -
diff --git a/src/app/demo/component/card/card.component.ts b/src/app/demo/component/card/card.component.ts deleted file mode 100644 index 226e523..0000000 --- a/src/app/demo/component/card/card.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -// angular import -import { Component } from '@angular/core'; - -// project import -import { SharedModule } from 'src/app/theme/shared/shared.module'; - -@Component({ - selector: 'app-card', - standalone: true, - imports: [SharedModule], - templateUrl: './card.component.html', - styleUrls: ['./card.component.scss'] -}) -export default class CardComponent {} diff --git a/src/app/demo/component/spinner/spinner.component.html b/src/app/demo/component/spinner/spinner.component.html deleted file mode 100644 index 9d1620f..0000000 --- a/src/app/demo/component/spinner/spinner.component.html +++ /dev/null @@ -1,89 +0,0 @@ -
- -
- -
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -
Start
-
-
-
-
-
Center
-
-
-
-
-
End
-
-
-
-
-
-
- -
Small
-
-
-
-
Custom
-
-
-
- -
-
- - -
-
- - -
-
-
-
- -
diff --git a/src/app/demo/component/spinner/spinner.component.ts b/src/app/demo/component/spinner/spinner.component.ts deleted file mode 100644 index cb8fa78..0000000 --- a/src/app/demo/component/spinner/spinner.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -// angular import -import { Component } from '@angular/core'; - -// project import -import { SharedModule } from 'src/app/theme/shared/shared.module'; - -@Component({ - selector: 'app-spinner', - standalone: true, - imports: [SharedModule], - templateUrl: './spinner.component.html', - styleUrls: ['./spinner.component.scss'] -}) -export default class SpinnerComponent {} diff --git a/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.html b/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.html new file mode 100644 index 0000000..e6ae038 --- /dev/null +++ b/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.html @@ -0,0 +1,26 @@ +
Analytics Report
+
+
+ + Company Finance Growth+45.14% + + + Company Expenses Ratio0.58% + +
+
+
+ +
+
+
diff --git a/src/app/demo/component/breadcrumb/breadcrumb.component.scss b/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.scss similarity index 100% rename from src/app/demo/component/breadcrumb/breadcrumb.component.scss rename to src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.scss diff --git a/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.ts b/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.ts new file mode 100644 index 0000000..f80ec92 --- /dev/null +++ b/src/app/demo/default/dashboard/analytics-chart/analytics-chart.component.ts @@ -0,0 +1,109 @@ +// angular import +import { Component, ViewChild } from '@angular/core'; + +// project import +import { SharedModule } from 'src/app/theme/shared/shared.module'; + +// third party +import { + NgApexchartsModule, + ChartComponent, + ApexChart, + ApexAxisChartSeries, + ApexPlotOptions, + ApexXAxis, + ApexYAxis, + ApexStroke, + ApexGrid, + ApexTooltip +} from 'ng-apexcharts'; + +export type ChartOptions = { + series: ApexAxisChartSeries; + chart: ApexChart; + plotOptions: ApexPlotOptions; + xaxis: ApexXAxis; + colors: string[]; + stroke: ApexStroke; + grid: ApexGrid; + yaxis: ApexYAxis; + tooltip: ApexTooltip; +}; + +@Component({ + selector: 'app-analytics-chart', + standalone: true, + imports: [SharedModule, NgApexchartsModule], + templateUrl: './analytics-chart.component.html', + styleUrl: './analytics-chart.component.scss' +}) +export class AnalyticsChartComponent { + // public props + @ViewChild('chart') chart!: ChartComponent; + chartOptions!: Partial; + + // constructor + constructor() { + this.chartOptions = { + chart: { + type: 'line', + height: 340, + toolbar: { + show: false + }, + background: 'transparent' + }, + plotOptions: { + bar: { + columnWidth: '45%', + borderRadius: 4 + } + }, + colors: ['#FFB814'], + stroke: { + curve: 'smooth', + width: 1.5 + }, + grid: { + strokeDashArray: 4, + borderColor: '#f5f5f5' + }, + series: [ + { + data: [58, 90, 38, 83, 63, 75, 35, 55] + } + ], + xaxis: { + type: 'datetime', + categories: [ + '2018-05-19T00:00:00.000Z', + '2018-06-19T00:00:00.000Z', + '2018-07-19T01:30:00.000Z', + '2018-08-19T02:30:00.000Z', + '2018-09-19T03:30:00.000Z', + '2018-10-19T04:30:00.000Z', + '2018-11-19T05:30:00.000Z', + '2018-12-19T06:30:00.000Z' + ], + labels: { + format: 'MMM', + style: { + colors: ['#222', '#222', '#222', '#222', '#222', '#222', '#222'] + } + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false + }, + tooltip: { + theme: 'light' + } + }; + } +} diff --git a/src/app/demo/default/dashboard/dashboard.component.html b/src/app/demo/default/dashboard/dashboard.component.html index c58b5ac..a26e821 100644 --- a/src/app/demo/default/dashboard/dashboard.component.html +++ b/src/app/demo/default/dashboard/dashboard.component.html @@ -1,161 +1,78 @@
- - @for (task of card; track task) { + @for (analytic of AnalyticEcommerce; track analytic) {
-
-
-
{{ task.title }}
-

- {{ task.amount }} - {{ task.percentage }} -

-

- You made an extra - {{ task.number }} this year -

-
-
+ +
{{ analytic.title }}
+

+ {{ analytic.amount }} + + + {{ analytic.percentage }} +

+

+ You made an extra {{ analytic.number }} this year +

+
} -
-
-
Unique Visitor
- -
-
-
-
-
-
+
-
Income Overview
-
-
-
This Week Statistics
-

$7,650

- -
-
+
Recent Orders
-
-
- - +
+
+ + + + + + + + + + + @for (order of recentOrder; track order) { - - - - - + + + + + - - - @for (task of tables; track task) { - - - - - - - - } - -
TRACKING NO.PRODUCT NAMESTATUSTOTAL ORDERTOTAL AMOUNT
TRACKING NO.PRODUCT NAMETOTAL ORDERSTATUSTOTAL AMOUNT{{ order.id }}{{ order.name }}{{ order.status }}{{ order.quantity }}{{ order.amount }}
- {{ task.id }} - {{ task.name }}{{ task.order }} - {{ task.status }} - {{ task.amount }}
-
+ } + +
-
Sales Report
-
-
-
This Week Statistics
-

$7,650

- -
-
+
Transaction History
@for (history of transaction; track history) { - +
-
- +
+
diff --git a/src/app/demo/default/dashboard/dashboard.component.scss b/src/app/demo/default/dashboard/dashboard.component.scss index e69de29..b400ef7 100644 --- a/src/app/demo/default/dashboard/dashboard.component.scss +++ b/src/app/demo/default/dashboard/dashboard.component.scss @@ -0,0 +1,31 @@ +.card { + .card-body.dashboard-card { + padding: 18px; + padding-bottom: 20px; + } +} + +.user-group { + img { + position: relative; + width: 35px; + height: 35px; + border-radius: 50%; + z-index: 2; + transition: all 0.1s ease-in-out; + border: 2px solid var(--bs-white); + + img { + margin-left: -14px; + } + &:hover { + z-index: 5; + } + } +} + +.badge-circle { + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; +} diff --git a/src/app/demo/default/dashboard/dashboard.component.ts b/src/app/demo/default/dashboard/dashboard.component.ts index f58df47..3eda45c 100644 --- a/src/app/demo/default/dashboard/dashboard.component.ts +++ b/src/app/demo/default/dashboard/dashboard.component.ts @@ -1,311 +1,48 @@ // angular import -import { Component, OnInit, ViewChild } from '@angular/core'; +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; // project import import tableData from 'src/fake-data/default-data.json'; import { SharedModule } from 'src/app/theme/shared/shared.module'; +import { MonthlyBarChartComponent } from './monthly-bar-chart/monthly-bar-chart.component'; +import { IncomeOverviewChartComponent } from './income-overview-chart/income-overview-chart.component'; +import { AnalyticsChartComponent } from './analytics-chart/analytics-chart.component'; +import { SalesReportChartComponent } from './sales-report-chart/sales-report-chart.component'; -// bootstrap import -import { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap'; - -// third party -import { NgApexchartsModule } from 'ng-apexcharts'; -import ApexCharts from 'apexcharts'; -import { - ApexAxisChartSeries, - ApexChart, - ChartComponent, - ApexDataLabels, - ApexPlotOptions, - ApexXAxis, - ApexYAxis, - ApexStroke, - ApexGrid, - ApexLegend -} from 'ng-apexcharts'; - -export type ChartOptions = { - series: ApexAxisChartSeries; - chart: ApexChart; - dataLabels: ApexDataLabels; - plotOptions: ApexPlotOptions; - xaxis: ApexXAxis; - colors: string[]; - stroke: ApexStroke; - grid: ApexGrid; - yaxis: ApexYAxis; - legend: ApexLegend; -}; +// icons +import { IconService } from '@ant-design/icons-angular'; +import { FallOutline, GiftOutline, MessageOutline, RiseOutline, SettingOutline } from '@ant-design/icons-angular/icons'; @Component({ - selector: 'app-dashboard', + selector: 'app-default', standalone: true, - imports: [NgApexchartsModule, SharedModule], + imports: [ + CommonModule, + SharedModule, + MonthlyBarChartComponent, + IncomeOverviewChartComponent, + AnalyticsChartComponent, + SalesReportChartComponent + ], templateUrl: './dashboard.component.html', styleUrls: ['./dashboard.component.scss'] }) -export default class DashboardComponent implements OnInit { - // public props - @ViewChild('chart') chart: ChartComponent; - chartOptions_4: Partial; - chartOptions_5: Partial; - chartOptions_6: Partial; - // eslint-disable-next-line - monthChart: any; - // eslint-disable-next-line - weekChart: any; - +export class DefaultComponent { // constructor - constructor() { - this.chartOptions_4 = { - chart: { - type: 'bar', - height: 365, - toolbar: { - show: false - } - }, - colors: ['#13c2c2'], - plotOptions: { - bar: { - columnWidth: '45%', - borderRadius: 4 - } - }, - dataLabels: { - enabled: false - }, - series: [ - { - data: [80, 95, 70, 42, 65, 55, 78] - } - ], - stroke: { - curve: 'smooth', - width: 2 - }, - xaxis: { - categories: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], - axisBorder: { - show: false - }, - axisTicks: { - show: false - } - }, - yaxis: { - show: false - }, - grid: { - show: false - } - }; - this.chartOptions_5 = { - chart: { - type: 'line', - height: 340, - toolbar: { - show: false - } - }, - colors: ['#faad14'], - plotOptions: { - bar: { - columnWidth: '45%', - borderRadius: 4 - } - }, - stroke: { - curve: 'smooth', - width: 1.5 - }, - grid: { - strokeDashArray: 4 - }, - series: [ - { - data: [58, 90, 38, 83, 63, 75, 35, 55] - } - ], - xaxis: { - type: 'datetime', - categories: [ - '2018-05-19T00:00:00.000Z', - '2018-06-19T00:00:00.000Z', - '2018-07-19T01:30:00.000Z', - '2018-08-19T02:30:00.000Z', - '2018-09-19T03:30:00.000Z', - '2018-10-19T04:30:00.000Z', - '2018-11-19T05:30:00.000Z', - '2018-12-19T06:30:00.000Z' - ], - labels: { - format: 'MMM' - }, - axisBorder: { - show: false - }, - axisTicks: { - show: false - } - }, - yaxis: { - show: false - } - }; - this.chartOptions_6 = { - chart: { - type: 'bar', - height: 430, - toolbar: { - show: false - } - }, - plotOptions: { - bar: { - columnWidth: '30%', - borderRadius: 4 - } - }, - stroke: { - show: true, - width: 8, - colors: ['transparent'] - }, - dataLabels: { - enabled: false - }, - legend: { - position: 'top', - horizontalAlign: 'right', - show: true, - fontFamily: `'Public Sans', sans-serif`, - offsetX: 10, - offsetY: 10, - labels: { - useSeriesColors: false - }, - markers: { - width: 10, - height: 10, - radius: 50 - }, - itemMargin: { - horizontal: 15, - vertical: 5 - } - }, - colors: ['#faad14', '#1890ff'], - series: [ - { - name: 'Net Profit', - data: [180, 90, 135, 114, 120, 145] - }, - { - name: 'Revenue', - data: [120, 45, 78, 150, 168, 99] - } - ], - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] - } - }; + constructor(private iconService: IconService) { + this.iconService.addIcon(...[RiseOutline, FallOutline, SettingOutline, GiftOutline, MessageOutline]); } - // life cycle event - ngOnInit(): void { - setTimeout(() => { - this.weekChart = new ApexCharts(document.querySelector('#visitor-chart'), this.weekOptions); - this.weekChart.render(); - }, 500); - } - - // public method - onNavChange(changeEvent: NgbNavChangeEvent) { - if (changeEvent.nextId === 1) { - setTimeout(() => { - this.weekChart = new ApexCharts(document.querySelector('#visitor-chart'), this.weekOptions); - this.weekChart.render(); - }, 200); - } - - if (changeEvent.nextId === 2) { - setTimeout(() => { - this.monthChart = new ApexCharts(document.querySelector('#visitor-chart-1'), this.monthOptions); - this.monthChart.render(); - }, 200); - } - } - - monthOptions = { - chart: { - height: 450, - type: 'area', - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - colors: ['#1890ff', '#13c2c2'], - series: [ - { - name: 'Page Views', - data: [76, 85, 101, 98, 87, 105, 91, 114, 94, 86, 115, 35] - }, - { - name: 'Sessions', - data: [110, 60, 150, 35, 60, 36, 26, 45, 65, 52, 53, 41] - } - ], - stroke: { - curve: 'smooth', - width: 2 - }, - xaxis: { - categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] - } - }; - - weekOptions = { - chart: { - height: 450, - type: 'area', - toolbar: { - show: false - } - }, - dataLabels: { - enabled: false - }, - colors: ['#1890ff', '#13c2c2'], - series: [ - { - name: 'Page Views', - data: [31, 40, 28, 51, 42, 109, 100] - }, - { - name: 'Sessions', - data: [11, 32, 45, 32, 34, 52, 41] - } - ], - stroke: { - curve: 'smooth', - width: 2 - }, - xaxis: { - categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] - } - }; + recentOrder = tableData; - card = [ + AnalyticEcommerce = [ { title: 'Total Page Views', amount: '4,42,236', background: 'bg-light-primary ', border: 'border-primary', - icon: 'ti ti-trending-up', + icon: 'rise', percentage: '59.3%', color: 'text-primary', number: '35,000' @@ -313,11 +50,11 @@ export default class DashboardComponent implements OnInit { { title: 'Total Users', amount: '78,250', - background: 'bg-light-success ', - border: 'border-success', - icon: 'ti ti-trending-up', + background: 'bg-light-primary ', + border: 'border-primary', + icon: 'rise', percentage: '70.5%', - color: 'text-success', + color: 'text-primary', number: '8,900' }, { @@ -325,7 +62,7 @@ export default class DashboardComponent implements OnInit { amount: '18,800', background: 'bg-light-warning ', border: 'border-warning', - icon: 'ti ti-trending-down', + icon: 'fall', percentage: '27.4%', color: 'text-warning', number: '1,943' @@ -333,21 +70,19 @@ export default class DashboardComponent implements OnInit { { title: 'Total Sales', amount: '$35,078', - background: 'bg-light-danger ', - border: 'border-danger', - icon: 'ti ti-trending-down', + background: 'bg-light-warning ', + border: 'border-warning', + icon: 'fall', percentage: '27.4%', - color: 'text-danger', + color: 'text-warning', number: '$20,395' } ]; - tables = tableData; - transaction = [ { background: 'text-success bg-light-success', - icon: 'ti ti-gift', + icon: 'gift', title: 'Order #002434', time: 'Today, 2:00 AM', amount: '+ $1,430', @@ -355,7 +90,7 @@ export default class DashboardComponent implements OnInit { }, { background: 'text-primary bg-light-primary', - icon: 'ti ti-message-circle', + icon: 'message', title: 'Order #984947', time: '5 August, 1:45 PM', amount: '- $302', @@ -363,7 +98,7 @@ export default class DashboardComponent implements OnInit { }, { background: 'text-danger bg-light-danger', - icon: 'ti ti-settings', + icon: 'setting', title: 'Order #988784', time: '7 hours ago', amount: '- $682', diff --git a/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.html b/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.html new file mode 100644 index 0000000..e2c3520 --- /dev/null +++ b/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.html @@ -0,0 +1,17 @@ +
Income Overview
+ +
This Week Statistics
+

$7,650

+ +
diff --git a/src/app/demo/component/card/card.component.scss b/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.scss similarity index 100% rename from src/app/demo/component/card/card.component.scss rename to src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.scss diff --git a/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.ts b/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.ts new file mode 100644 index 0000000..12f08f8 --- /dev/null +++ b/src/app/demo/default/dashboard/income-overview-chart/income-overview-chart.component.ts @@ -0,0 +1,102 @@ +// angular import +import { Component, OnInit, ViewChild } from '@angular/core'; + +// project import +import { SharedModule } from 'src/app/theme/shared/shared.module'; + +// third party +import { + NgApexchartsModule, + ChartComponent, + ApexChart, + ApexAxisChartSeries, + ApexDataLabels, + ApexPlotOptions, + ApexXAxis, + ApexYAxis, + ApexStroke, + ApexGrid, + ApexTooltip +} from 'ng-apexcharts'; + +export type ChartOptions = { + series: ApexAxisChartSeries; + chart: ApexChart; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + xaxis: ApexXAxis; + colors: string[]; + stroke: ApexStroke; + grid: ApexGrid; + yaxis: ApexYAxis; + tooltip: ApexTooltip; +}; + +@Component({ + selector: 'app-income-overview-chart', + standalone: true, + imports: [SharedModule, NgApexchartsModule], + templateUrl: './income-overview-chart.component.html', + styleUrl: './income-overview-chart.component.scss' +}) +export class IncomeOverviewChartComponent implements OnInit { + // public props + @ViewChild('chart') chart!: ChartComponent; + chartOptions!: Partial; + + // life cycle hook + ngOnInit() { + this.chartOptions = { + chart: { + type: 'bar', + height: 365, + toolbar: { + show: false + }, + background: 'transparent' + }, + plotOptions: { + bar: { + columnWidth: '45%', + borderRadius: 4 + } + }, + dataLabels: { + enabled: false + }, + series: [ + { + data: [80, 95, 70, 42, 65, 55, 78] + } + ], + stroke: { + curve: 'smooth', + width: 2 + }, + xaxis: { + categories: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], + axisBorder: { + show: false + }, + axisTicks: { + show: false + }, + labels: { + style: { + colors: ['#8c8c8c', '#8c8c8c', '#8c8c8c', '#8c8c8c', '#8c8c8c', '#8c8c8c', '#8c8c8c'] + } + } + }, + yaxis: { + show: false + }, + colors: ['#5cdbd3'], + grid: { + show: false + }, + tooltip: { + theme: 'light' + } + }; + } +} diff --git a/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.html b/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.html new file mode 100644 index 0000000..54685fb --- /dev/null +++ b/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.html @@ -0,0 +1,24 @@ +
+
Unique Visitor
+
+
Month
+
Week
+
+
+
+
+
+ +
+
+
diff --git a/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.scss b/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.scss new file mode 100644 index 0000000..dc5696f --- /dev/null +++ b/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.scss @@ -0,0 +1,19 @@ +.chart-income { + display: inline-flex; + align-items: center; + justify-content: center; + outline: 0px; + border: 0px; + margin: 0px; + cursor: pointer; + padding: 4px 5px; + border-radius: 4px; + color: var(--bs-gray); + .active { + outline: 0px; + margin: 0px; + padding: 3px 9px; + border: 1px solid var(--bs-primary); + color: var(--bs-primary); + } +} diff --git a/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.ts b/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.ts new file mode 100644 index 0000000..9445217 --- /dev/null +++ b/src/app/demo/default/dashboard/monthly-bar-chart/monthly-bar-chart.component.ts @@ -0,0 +1,144 @@ +// angular import +import { Component, OnInit, ViewChild } from '@angular/core'; + +// project import +import { SharedModule } from 'src/app/theme/shared/shared.module'; + +// third party +import { + NgApexchartsModule, + ApexChart, + ChartComponent, + ApexDataLabels, + ApexAxisChartSeries, + ApexStroke, + ApexXAxis, + ApexYAxis, + ApexTheme, + ApexGrid +} from 'ng-apexcharts'; + +export type ChartOptions = { + series: ApexAxisChartSeries; + chart: ApexChart; + dataLabels: ApexDataLabels; + xaxis: ApexXAxis; + colors: string[]; + stroke: ApexStroke; + yaxis: ApexYAxis; + grid: ApexGrid; + theme: ApexTheme; +}; + +@Component({ + selector: 'app-monthly-bar-chart', + standalone: true, + imports: [SharedModule, NgApexchartsModule], + templateUrl: './monthly-bar-chart.component.html', + styleUrl: './monthly-bar-chart.component.scss' +}) +export class MonthlyBarChartComponent implements OnInit { + // public props + @ViewChild('chart') chart!: ChartComponent; + chartOptions!: Partial; + + // life cycle hook + ngOnInit() { + document.querySelector('.chart-income.week')?.classList.add('active'); + this.chartOptions = { + chart: { + height: 450, + type: 'area', + toolbar: { + show: false + }, + background: 'transparent' + }, + dataLabels: { + enabled: false + }, + colors: ['#1677ff', '#0050b3'], + series: [ + { + name: 'Page Views', + data: [0, 86, 28, 115, 48, 210, 136] + }, + { + name: 'Sessions', + data: [0, 43, 14, 56, 24, 105, 68] + } + ], + stroke: { + curve: 'smooth', + width: 2 + }, + xaxis: { + categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + labels: { + style: { + colors: [ + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c', + '#8c8c8c' + ] + } + }, + axisBorder: { + show: true, + color: '#f0f0f0' + } + }, + yaxis: { + labels: { + style: { + colors: ['#8c8c8c'] + } + } + }, + grid: { + strokeDashArray: 0, + borderColor: '#f5f5f5' + }, + theme: { + mode: 'light' + } + }; + } + + // public method + toggleActive(value: string) { + this.chartOptions.series = [ + { + name: 'Page Views', + data: value === 'month' ? [76, 85, 101, 98, 87, 105, 91, 114, 94, 86, 115, 35] : [31, 40, 28, 51, 42, 109, 100] + }, + { + name: 'Sessions', + data: value === 'month' ? [110, 60, 150, 35, 60, 36, 26, 45, 65, 52, 53, 41] : [11, 32, 45, 32, 34, 52, 41] + } + ]; + const xaxis = { ...this.chartOptions.xaxis }; + xaxis.categories = + value === 'month' + ? ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; + xaxis.tickAmount = value === 'month' ? 11 : 7; + this.chartOptions = { ...this.chartOptions, xaxis }; + if (value === 'month') { + document.querySelector('.chart-income.month')?.classList.add('active'); + document.querySelector('.chart-income.week')?.classList.remove('active'); + } else { + document.querySelector('.chart-income.week')?.classList.add('active'); + document.querySelector('.chart-income.month')?.classList.remove('active'); + } + } +} diff --git a/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.html b/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.html new file mode 100644 index 0000000..13fee57 --- /dev/null +++ b/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.html @@ -0,0 +1,21 @@ +
Sales Report
+
+
+
This Week Statistics
+

$7,650

+
+ +
+
+
diff --git a/src/app/demo/component/spinner/spinner.component.scss b/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.scss similarity index 100% rename from src/app/demo/component/spinner/spinner.component.scss rename to src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.scss diff --git a/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.ts b/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.ts new file mode 100644 index 0000000..e21bbe0 --- /dev/null +++ b/src/app/demo/default/dashboard/sales-report-chart/sales-report-chart.component.ts @@ -0,0 +1,119 @@ +// angular import +import { Component, ViewChild } from '@angular/core'; + +// project import +import { SharedModule } from 'src/app/theme/shared/shared.module'; + +// third party +import { + NgApexchartsModule, + ChartComponent, + ApexChart, + ApexAxisChartSeries, + ApexPlotOptions, + ApexXAxis, + ApexYAxis, + ApexStroke, + ApexGrid, + ApexTooltip, + ApexLegend, + ApexDataLabels +} from 'ng-apexcharts'; + +export type ChartOptions = { + series: ApexAxisChartSeries; + chart: ApexChart; + plotOptions: ApexPlotOptions; + dataLabels: ApexDataLabels; + legend: ApexLegend; + xaxis: ApexXAxis; + colors: string[]; + stroke: ApexStroke; + grid: ApexGrid; + yaxis: ApexYAxis; + tooltip: ApexTooltip; +}; + +@Component({ + selector: 'app-sales-report-chart', + standalone: true, + imports: [SharedModule, NgApexchartsModule], + templateUrl: './sales-report-chart.component.html', + styleUrl: './sales-report-chart.component.scss' +}) +export class SalesReportChartComponent { + @ViewChild('chart') chart!: ChartComponent; + chartOptions!: Partial; + + constructor() { + this.chartOptions = { + chart: { + type: 'bar', + height: 430, + toolbar: { + show: false + }, + background: 'transparent' + }, + plotOptions: { + bar: { + columnWidth: '30%', + borderRadius: 4 + } + }, + stroke: { + show: true, + width: 8, + colors: ['transparent'] + }, + dataLabels: { + enabled: false + }, + legend: { + position: 'top', + horizontalAlign: 'right', + show: true, + fontFamily: `'Public Sans', sans-serif`, + offsetX: 10, + offsetY: 10, + labels: { + useSeriesColors: false + }, + markers: { + width: 10, + height: 10, + radius: 50 + }, + itemMargin: { + horizontal: 15, + vertical: 5 + } + }, + series: [ + { + name: 'Net Profit', + data: [180, 90, 135, 114, 120, 145] + }, + { + name: 'Revenue', + data: [120, 45, 78, 150, 168, 99] + } + ], + xaxis: { + categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], + labels: { + style: { + colors: ['#222', '#222', '#222', '#222', '#222', '#222'] + } + } + }, + tooltip: { + theme: 'light' + }, + colors: ['#faad14', '#1677ff'], + grid: { + borderColor: '#f5f5f5' + } + }; + } +} diff --git a/src/app/demo/ui-component/typography/typography.component.html b/src/app/demo/ui-component/typography/typography.component.html index 7e5160f..74c1c36 100644 --- a/src/app/demo/ui-component/typography/typography.component.html +++ b/src/app/demo/ui-component/typography/typography.component.html @@ -2,31 +2,26 @@
-
-
-
Headings
-

- .h1 through .h6 classes are also available, for when you want to match the font styling of a heading - but cannot use the associated HTML element. -

-
-
-

h1. Heading

-
-

h2. Heading

-
-

This is a H3

-
-

This is a H4

-
-
This is a H5
-
-
This is a H6
-
-
+ + + .h1 through .h6 classes are also available, for when you want to match the font styling of a heading but cannot use the associated + HTML element. + +

h1. Heading

+
+

h2. Heading

+
+

This is a H3

+
+

This is a H4

+
+
This is a H5
+
+
This is a H6
+
- +

Display 1

Display 2

Display 3

@@ -36,7 +31,7 @@

Display 6

- +

Your title goes here

You can use the mark tag to highlight text. @@ -51,7 +46,7 @@

Display 6

- +

Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

Nullam id dolor id nibh ultricies vehicula ut id elit.

Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

@@ -62,7 +57,7 @@

Display 6

- +
  • Lorem ipsum dolor sit amet
  • Consectetur adipiscing elit
  • @@ -84,7 +79,7 @@

    Display 6

- +
  1. Lorem ipsum dolor sit amet
  2. Consectetur adipiscing elit
  3. @@ -106,7 +101,7 @@

    Display 6

- +
  • Lorem ipsum dolor sit amet
  • @@ -128,7 +123,7 @@
    Inline
- +

Your awesome text goes here.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

@@ -142,7 +137,7 @@
Inline
- +
Description lists
A description list is perfect for defining terms.
diff --git a/src/app/demo/ui-component/ui-color/ui-color.component.html b/src/app/demo/ui-component/ui-color/ui-color.component.html index 0f2bf7c..6d197a4 100644 --- a/src/app/demo/ui-component/ui-color/ui-color.component.html +++ b/src/app/demo/ui-component/ui-color/ui-color.component.html @@ -1,46 +1,36 @@
-
-
-
Background Color
-
-
-
-
-
bg-blue-100
-
bg-blue-200
-
bg-blue-300
-
bg-blue-400
-
bg-blue-500
-
bg-blue-600
-
bg-blue-700
-
bg-blue-800
-
bg-blue-900
-
+ +
+
+
bg-blue-100
+
bg-blue-200
+
bg-blue-300
+
bg-blue-400
+
bg-blue-500
+
bg-blue-600
+
bg-blue-700
+
bg-blue-800
+
bg-blue-900
-
-
-
-
Text Color
-
-
-
-
-
text-blue-100
-
text-blue-200
-
text-blue-300
-
text-blue-400
-
text-blue-500
-
text-blue-600
-
text-blue-700
-
text-blue-800
-
text-blue-900
-
+ + +
+
+
text-blue-100
+
text-blue-200
+
text-blue-300
+
text-blue-400
+
text-blue-500
+
text-blue-600
+
text-blue-700
+
text-blue-800
+
text-blue-900
-
+
diff --git a/src/app/demo/ui-component/ui-color/ui-color.component.ts b/src/app/demo/ui-component/ui-color/ui-color.component.ts index 1977901..0f761a6 100644 --- a/src/app/demo/ui-component/ui-color/ui-color.component.ts +++ b/src/app/demo/ui-component/ui-color/ui-color.component.ts @@ -1,10 +1,11 @@ // angular import import { Component } from '@angular/core'; +import { SharedModule } from 'src/app/theme/shared/shared.module'; @Component({ selector: 'app-ui-color', standalone: true, - imports: [], + imports: [SharedModule], templateUrl: './ui-color.component.html', styleUrls: ['./ui-color.component.scss'] }) diff --git a/src/app/theme/layouts/admin/admin.component.html b/src/app/theme/layouts/admin-layout/admin-layout.component.html similarity index 61% rename from src/app/theme/layouts/admin/admin.component.html rename to src/app/theme/layouts/admin-layout/admin-layout.component.html index 4a3ad13..0b39c4d 100644 --- a/src/app/theme/layouts/admin/admin.component.html +++ b/src/app/theme/layouts/admin-layout/admin-layout.component.html @@ -1,18 +1,17 @@ - +/> +
- +
@@ -26,22 +25,15 @@