diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml index 0d528ec..f9ffec5 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/prod.yml @@ -22,24 +22,24 @@ jobs: - name: 🚚 Get latest code uses: actions/checkout@v2 - - name: Install Node.js 18 + - name: Install Node.js 20 uses: actions/setup-node@v1 with: - node-version: "18.x" + node-version: '20.x' - name: 🔨 Build Project run: | - npm i --legacy-peer-deps - npm run build-prod + yarn + yarn build-prod - name: 📂 Deploy to Server uses: easingthemes/ssh-deploy@v2.1.5 env: SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} # ARGS: "-rltgoDzvO --delete" - SOURCE: "dist/" + SOURCE: 'dist/' REMOTE_HOST: 217.21.92.35 REMOTE_USER: u778408432 - REMOTE_PORT: "65002" + REMOTE_PORT: '65002' TARGET: domains/codedthemes.com/public_html/demos/admin-templates/datta-able/angular/free - EXCLUDE: "/node_modules/" + EXCLUDE: '/node_modules/' diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..d29b0e5 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,10 @@ +{ + "bracketSpacing": true, + "printWidth": 140, + "singleQuote": true, + "trailingComma": "none", + "tabWidth": 2, + "useTabs": false, + "htmlWhitespaceSensitivity": "ignore", + "bracketSameLine": false +} diff --git a/angular.json b/angular.json index 1d2714b..66b2b8a 100644 --- a/angular.json +++ b/angular.json @@ -25,10 +25,7 @@ "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", "assets": ["src/favicon.ico", "src/assets", "src/fake-data"], - "styles": [ - "node_modules/bootstrap/scss/bootstrap.scss", - "src/styles.scss" - ], + "styles": ["node_modules/bootstrap/scss/bootstrap.scss", "src/styles.scss"], "scripts": ["node_modules/apexcharts/dist/apexcharts.min.js"] }, "configurations": { diff --git a/karma.conf.js b/karma.conf.js index 41d30f3..44b9d27 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -3,14 +3,14 @@ module.exports = function (config) { config.set({ - basePath: "", - frameworks: ["jasmine", "@angular-devkit/build-angular"], + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ - require("karma-jasmine"), - require("karma-chrome-launcher"), - require("karma-jasmine-html-reporter"), - require("karma-coverage"), - require("@angular-devkit/build-angular/plugins/karma"), + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') ], client: { jasmine: { @@ -19,23 +19,23 @@ module.exports = function (config) { // for example, you can disable the random execution with `random: false` // or set a specific seed with `seed: 4321` }, - clearContext: false, // leave Jasmine Spec Runner output visible in browser + clearContext: false // leave Jasmine Spec Runner output visible in browser }, jasmineHtmlReporter: { - suppressAll: true, // removes the duplicated traces + suppressAll: true // removes the duplicated traces }, coverageReporter: { - dir: require("path").join(__dirname, "./coverage/datta-able-free"), - subdir: ".", - reporters: [{ type: "html" }, { type: "text-summary" }], + dir: require('path').join(__dirname, './coverage/datta-able-free'), + subdir: '.', + reporters: [{ type: 'html' }, { type: 'text-summary' }] }, - reporters: ["progress", "kjhtml"], + reporters: ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ["Chrome"], + browsers: ['Chrome'], singleRun: false, - restartOnFileChange: true, + restartOnFileChange: true }); }; diff --git a/package.json b/package.json index c817342..bb8a17f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "datta-able-free-angular-admin-template", - "version": "5.0.0", + "version": "5.1.0", "author": "CodedThemes", "scripts": { "ng": "ng", @@ -12,40 +12,40 @@ }, "private": false, "dependencies": { - "@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/localize": "^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", - "@ng-bootstrap/ng-bootstrap": "^16.0.0", + "@angular/animations": "^18.0.5", + "@angular/cdk": "^18.0.5", + "@angular/common": "^18.0.5", + "@angular/compiler": "^18.0.5", + "@angular/core": "^18.0.5", + "@angular/forms": "^18.0.5", + "@angular/localize": "^18.0.5", + "@angular/platform-browser": "^18.0.5", + "@angular/platform-browser-dynamic": "^18.0.5", + "@angular/router": "^18.0.5", + "@ng-bootstrap/ng-bootstrap": "^17.0.0", "@popperjs/core": "^2.11.8", - "apexcharts": "^3.49.0", + "apexcharts": "^3.49.2", "bootstrap": "^5.3.3", - "ng-apexcharts": "^1.10.0", - "ngx-scrollbar": "^13.0.3", + "ng-apexcharts": "^1.11.0", + "ngx-scrollbar": "^15.0.1", "rxjs": "~7.8.1", "screenfull": "^6.0.2", - "tslib": "^2.6.2", - "zone.js": "~0.14.4" + "tslib": "^2.6.3", + "zone.js": "~0.14.7" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.0.0-next.3", - "@angular/cli": "~18.0.0-next.3", - "@angular/compiler-cli": "^18.0.0-next.3", + "@angular-devkit/build-angular": "^18.0.6", + "@angular/cli": "~18.0.6", + "@angular/compiler-cli": "^18.0.5", "@types/jasmine": "~5.1.4", - "@types/node": "^20.12.7", + "@types/node": "^20.14.9", "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.5", + "prettier": "3.3.2", "typescript": "5.4" } } diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 8c01827..0a9c967 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -11,44 +11,33 @@ const routes: Routes = [ { path: '', redirectTo: 'dashboard', - pathMatch: 'full', + pathMatch: 'full' }, { path: 'dashboard', - loadComponent: () => import('./demo/dashboard/dashboard.component'), + loadComponent: () => import('./demo/dashboard/dashboard.component') }, { path: 'basic', - loadChildren: () => - import('./demo/ui-elements/ui-basic/ui-basic.module').then( - (m) => m.UiBasicModule, - ), + loadChildren: () => import('./demo/ui-elements/ui-basic/ui-basic.module').then((m) => m.UiBasicModule) }, { path: 'forms', - loadChildren: () => - import('./demo/pages/form-elements/form-elements.module').then( - (m) => m.FormElementsModule, - ), + loadChildren: () => import('./demo/pages/form-elements/form-elements.module').then((m) => m.FormElementsModule) }, { path: 'tables', - loadChildren: () => - import('./demo/pages/tables/tables.module').then( - (m) => m.TablesModule, - ), + loadChildren: () => import('./demo/pages/tables/tables.module').then((m) => m.TablesModule) }, { path: 'apexchart', - loadComponent: () => - import('./demo/chart/apex-chart/apex-chart.component'), + loadComponent: () => import('./demo/chart/apex-chart/apex-chart.component') }, { path: 'sample-page', - loadComponent: () => - import('./demo/extra/sample-page/sample-page.component'), - }, - ], + loadComponent: () => import('./demo/extra/sample-page/sample-page.component') + } + ] }, { path: '', @@ -56,17 +45,14 @@ const routes: Routes = [ children: [ { path: 'auth', - loadChildren: () => - import('./demo/pages/authentication/authentication.module').then( - (m) => m.AuthenticationModule, - ), - }, - ], - }, + loadChildren: () => import('./demo/pages/authentication/authentication.module').then((m) => m.AuthenticationModule) + } + ] + } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], - exports: [RouterModule], + exports: [RouterModule] }) export class AppRoutingModule {} diff --git a/src/app/app.component.ts b/src/app/app.component.ts index d11108f..4e62072 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -4,7 +4,7 @@ import { NavigationEnd, Router } from '@angular/router'; @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'], + styleUrls: ['./app.component.scss'] }) export class AppComponent implements OnInit { title = 'datta-able'; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 31f58a5..1736912 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -40,17 +40,10 @@ import { ToggleFullScreenDirective } from './theme/shared/components/full-screen NavGroupComponent, NavItemComponent, NavSearchComponent, - ToggleFullScreenDirective, - ], - imports: [ - BrowserModule, - AppRoutingModule, - FormsModule, - ReactiveFormsModule, - SharedModule, - BrowserAnimationsModule, + ToggleFullScreenDirective ], + imports: [BrowserModule, AppRoutingModule, FormsModule, ReactiveFormsModule, SharedModule, BrowserAnimationsModule], providers: [NavigationItem], - bootstrap: [AppComponent], + bootstrap: [AppComponent] }) export class AppModule {} diff --git a/src/app/demo/chart/apex-chart/apex-chart.component.ts b/src/app/demo/chart/apex-chart/apex-chart.component.ts index 1219d30..a689b3a 100644 --- a/src/app/demo/chart/apex-chart/apex-chart.component.ts +++ b/src/app/demo/chart/apex-chart/apex-chart.component.ts @@ -22,7 +22,7 @@ import { ApexFill, ApexTooltip, ApexTitleSubtitle, - ApexGrid, + ApexGrid } from 'ng-apexcharts'; export type ChartOptions = { @@ -48,7 +48,7 @@ export type ChartOptions = { standalone: true, imports: [SharedModule, NgApexchartsModule], templateUrl: './apex-chart.component.html', - styleUrls: ['./apex-chart.component.scss'], + styleUrls: ['./apex-chart.component.scss'] }) export default class ApexChartComponent { @ViewChild('chart') chart: ChartComponent; @@ -64,84 +64,74 @@ export default class ApexChartComponent { series: [ { name: 'Net Profit', - data: [44, 55, 57, 56, 61, 58, 63, 60, 66], + data: [44, 55, 57, 56, 61, 58, 63, 60, 66] }, { name: 'Revenue', - data: [76, 85, 101, 98, 87, 105, 91, 114, 94], + data: [76, 85, 101, 98, 87, 105, 91, 114, 94] }, { name: 'Free Cash Flow', - data: [35, 41, 36, 26, 45, 48, 52, 53, 41], - }, + data: [35, 41, 36, 26, 45, 48, 52, 53, 41] + } ], chart: { type: 'bar', - height: 350, + height: 350 }, plotOptions: { bar: { horizontal: false, - columnWidth: '55%', - }, + columnWidth: '55%' + } }, dataLabels: { - enabled: false, + enabled: false }, stroke: { show: true, width: 2, - colors: ['transparent'], + colors: ['transparent'] }, xaxis: { - categories: [ - 'Feb', - 'Mar', - 'Apr', - 'May', - 'Jun', - 'Jul', - 'Aug', - 'Sep', - 'Oct', - ], + categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'] }, yaxis: { title: { - text: '$ (thousands)', - }, + text: '$ (thousands)' + } }, fill: { - opacity: 1, + opacity: 1 }, tooltip: { y: { formatter: function (val) { return '$ ' + val + ' thousands'; - }, - }, - }, + } + } + } }; this.barStackedChart = { series: [ { name: 'PRODUCT A', - data: [44, 55, 41, 67, 22, 43, 21, 49], + data: [44, 55, 41, 67, 22, 43, 21, 49] }, { name: 'PRODUCT B', - data: [13, 23, 20, 8, 13, 27, 33, 12], + data: [13, 23, 20, 8, 13, 27, 33, 12] }, { name: 'PRODUCT C', - data: [11, 17, 15, 15, 21, 14, 15, 13], - }, + data: [11, 17, 15, 15, 21, 14, 15, 13] + } ], chart: { type: 'bar', height: 350, stacked: true, - stackType: '100%', + stackType: '100%' }, responsive: [ { @@ -150,88 +140,72 @@ export default class ApexChartComponent { legend: { position: 'bottom', offsetX: -10, - offsetY: 0, - }, - }, - }, + offsetY: 0 + } + } + } ], xaxis: { - categories: [ - '2011 Q1', - '2011 Q2', - '2011 Q3', - '2011 Q4', - '2012 Q1', - '2012 Q2', - '2012 Q3', - '2012 Q4', - ], + categories: ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4'] }, fill: { - opacity: 1, + opacity: 1 }, legend: { position: 'right', offsetX: 0, - offsetY: 50, - }, + offsetY: 50 + } }; this.areaAngleChart = { chart: { height: 380, type: 'area', - stacked: false, + stacked: false }, stroke: { - curve: 'straight', + curve: 'straight' }, series: [ { name: 'Music', - data: [11, 15, 26, 20, 33, 27], + data: [11, 15, 26, 20, 33, 27] }, { name: 'Photos', - data: [32, 33, 21, 42, 19, 32], - }, + data: [32, 33, 21, 42, 19, 32] + } ], xaxis: { - categories: [ - '2011 Q1', - '2011 Q2', - '2011 Q3', - '2011 Q4', - '2012 Q1', - '2012 Q2', - ], + categories: ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2'] }, tooltip: { - followCursor: true, + followCursor: true }, fill: { - opacity: 1, - }, + opacity: 1 + } }; this.areaSmoothChart = { series: [ { name: 'series1', - data: [31, 40, 28, 51, 42, 109, 100], + data: [31, 40, 28, 51, 42, 109, 100] }, { name: 'series2', - data: [11, 32, 45, 32, 34, 52, 41], - }, + data: [11, 32, 45, 32, 34, 52, 41] + } ], chart: { height: 350, - type: 'area', + type: 'area' }, dataLabels: { - enabled: false, + enabled: false }, stroke: { - curve: 'smooth', + curve: 'smooth' }, xaxis: { type: 'datetime', @@ -242,84 +216,78 @@ export default class ApexChartComponent { '2018-09-19T03:30:00.000Z', '2018-09-19T04:30:00.000Z', '2018-09-19T05:30:00.000Z', - '2018-09-19T06:30:00.000Z', - ], + '2018-09-19T06:30:00.000Z' + ] }, tooltip: { x: { - format: 'dd/MM/yy HH:mm', - }, - }, + format: 'dd/MM/yy HH:mm' + } + } }; this.lineAreaChart = { series: [ { name: 'Desktops', - data: [20, 55, 45, 75, 50, 75, 100], + data: [20, 55, 45, 75, 50, 75, 100] }, { name: 'Desktops', - data: [10, 45, 35, 65, 40, 65, 90], - }, + data: [10, 45, 35, 65, 40, 65, 90] + } ], chart: { height: 350, type: 'line', zoom: { - enabled: false, - }, + enabled: false + } }, dataLabels: { - enabled: false, + enabled: false }, stroke: { - curve: 'straight', + curve: 'straight' }, title: { text: 'Product Trends by Month', - align: 'left', + align: 'left' }, grid: { row: { colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns - opacity: 0.5, - }, + opacity: 0.5 + } }, xaxis: { - categories: ['2006', '2007', '2008', '2009', '2010', '2011', '2012'], - }, + categories: ['2006', '2007', '2008', '2009', '2010', '2011', '2012'] + } }; this.donutChart = { chart: { type: 'donut', width: '100%', - height: 350, + height: 350 }, dataLabels: { - enabled: false, + enabled: false }, plotOptions: { pie: { customScale: 0.8, donut: { - size: '75%', + size: '75%' }, - offsetY: 20, - }, + offsetY: 20 + } }, colors: ['#00D8B6', '#008FFB', '#FEB019', '#FF4560', '#775DD0'], series: [21, 23, 19, 14, 6], - labels: [ - 'Clothing', - 'Food Products', - 'Electronics', - 'Kitchen Utility', - 'Gardening', - ], + labels: ['Clothing', 'Food Products', 'Electronics', 'Kitchen Utility', 'Gardening'], legend: { position: 'left', - offsetY: 80, - }, + offsetY: 80 + } }; } } diff --git a/src/app/demo/dashboard/dashboard.component.html b/src/app/demo/dashboard/dashboard.component.html index 10c85cb..c5e0150 100644 --- a/src/app/demo/dashboard/dashboard.component.html +++ b/src/app/demo/dashboard/dashboard.component.html @@ -6,8 +6,8 @@
- + |
{{ table.title }}@@ -170,20 +143,13 @@{{ table.title }} |
- {{ table.time }} + + {{ table.time }} |
- RejectApprove + Reject + Approve |