diff --git a/angular.json b/angular.json index 054a0a4..cd2d76f 100644 --- a/angular.json +++ b/angular.json @@ -50,6 +50,10 @@ { "glob": "**/*", "input": "projects/sales-grid/public" + }, + { + "glob": "**/*", + "input": "projects/fleet-management-grid/public" } ], "styles": [ @@ -705,5 +709,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/package.json b/package.json index 6a9883a..51931fb 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,10 @@ "fflate": "^0.8.1", "hammerjs": "^2.0.8", "igniteui-angular": "^19.0.1", - "igniteui-angular-charts": "^18.1.1", + "igniteui-angular-charts": "^18.2.0", "igniteui-webcomponents": "^5.1.2", + "igniteui-angular-core": "^18.2.0", + "igniteui-angular-maps": "^18.2.0", "minireset.css": "~0.0.4", "rxjs": "~7.8.0", "tslib": "^2.3.0", diff --git a/projects/fleet-management-grid/.npmrc b/projects/fleet-management-grid/.npmrc new file mode 100644 index 0000000..521a9f7 --- /dev/null +++ b/projects/fleet-management-grid/.npmrc @@ -0,0 +1 @@ +legacy-peer-deps=true diff --git a/projects/fleet-management-grid/README.md b/projects/fleet-management-grid/README.md new file mode 100644 index 0000000..a350aa9 --- /dev/null +++ b/projects/fleet-management-grid/README.md @@ -0,0 +1,59 @@ +# MasterDetailGrid + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.0.3. + +## Development server + +To start a local development server, run: + +```bash +ng serve +``` + +Once the server is running, open your browser and navigate to `http://localhost:4200/`. The application will automatically reload whenever you modify any of the source files. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the project run: + +```bash +ng build +``` + +This will compile your project and store the build artifacts in the `dist/` directory. By default, the production build optimizes your application for performance and speed. + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/projects/fleet-management-grid/angular.json b/projects/fleet-management-grid/angular.json new file mode 100644 index 0000000..78eb233 --- /dev/null +++ b/projects/fleet-management-grid/angular.json @@ -0,0 +1,108 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "master-detail-grid": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/master-detail-grid", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.scss" + ], + "stylePreprocessorOptions": { + "includePaths": ["node_modules"] + }, + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "4kB", + "maximumError": "8kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "master-detail-grid:build:production" + }, + "development": { + "buildTarget": "master-detail-grid:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/projects/fleet-management-grid/package.json b/projects/fleet-management-grid/package.json new file mode 100644 index 0000000..fa38421 --- /dev/null +++ b/projects/fleet-management-grid/package.json @@ -0,0 +1,44 @@ +{ + "name": "master-detail-grid", + "homepage": "https://github.com/IgniteUI/grid-demos/tree/master/projects/fleet-management-grid", + "version": "1.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.0.0", + "@angular/common": "^19.0.0", + "@angular/compiler": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/forms": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/router": "^19.0.0", + "@igniteui/material-icons-extended": "^3.1.0", + "igniteui-angular": "^19.0.1", + "igniteui-angular-charts": "^18.2.0", + "igniteui-angular-core": "^18.2.0", + "igniteui-angular-maps": "^18.2.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.0.3", + "@angular/cli": "^19.0.3", + "@angular/compiler-cli": "^19.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.4.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.6.2" + } +} diff --git a/projects/fleet-management-grid/public/cars/logos/Ford.png b/projects/fleet-management-grid/public/cars/logos/Ford.png new file mode 100644 index 0000000..950a37e Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Ford.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/Honda.png b/projects/fleet-management-grid/public/cars/logos/Honda.png new file mode 100644 index 0000000..4424bd1 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Honda.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/Hyundai.png b/projects/fleet-management-grid/public/cars/logos/Hyundai.png new file mode 100644 index 0000000..6f9d514 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Hyundai.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/Kia.png b/projects/fleet-management-grid/public/cars/logos/Kia.png new file mode 100644 index 0000000..f9d727e Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Kia.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/Mazda.png b/projects/fleet-management-grid/public/cars/logos/Mazda.png new file mode 100644 index 0000000..dbd03db Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Mazda.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/Tesla.png b/projects/fleet-management-grid/public/cars/logos/Tesla.png new file mode 100644 index 0000000..a8f5371 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Tesla.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/Toyota.png b/projects/fleet-management-grid/public/cars/logos/Toyota.png new file mode 100644 index 0000000..2f96004 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/Toyota.png differ diff --git a/projects/fleet-management-grid/public/cars/logos/VW.png b/projects/fleet-management-grid/public/cars/logos/VW.png new file mode 100644 index 0000000..94b626d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/logos/VW.png differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash.jpg new file mode 100644 index 0000000..5859716 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash1.jpg new file mode 100644 index 0000000..0dd531f Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash2.jpg new file mode 100644 index 0000000..c7553ed Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford F-150 blue/Ford-F150-caleb-white-XGJBSkoqX_I-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_1920.jpg new file mode 100644 index 0000000..ab7c2b6 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_19201.jpg new file mode 100644 index 0000000..5cb886d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_19202.jpg new file mode 100644 index 0000000..8a5d4f7 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford F-150 red/Ford-f150-7572360_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_1280.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_1280.jpg new file mode 100644 index 0000000..f828bca Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_12801.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_12801.jpg new file mode 100644 index 0000000..16014d6 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_12801.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_12802.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_12802.jpg new file mode 100644 index 0000000..2a4fd1a Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Focus blue/ford-focus-5167838_12802.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-1-Ford-Focus-car-3300587_1280.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-1-Ford-Focus-car-3300587_1280.jpg new file mode 100644 index 0000000..8114461 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-1-Ford-Focus-car-3300587_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-2-Ford-Focus-car-3300588_1280.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-2-Ford-Focus-car-3300588_1280.jpg new file mode 100644 index 0000000..d125287 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-2-Ford-Focus-car-3300588_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-3-Ford-Focus-car-3300587_1280.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-3-Ford-Focus-car-3300587_1280.jpg new file mode 100644 index 0000000..826f7a3 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Focus dark gray/1-3-Ford-Focus-car-3300587_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_1920.jpg new file mode 100644 index 0000000..3b65c24 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_19201.jpg new file mode 100644 index 0000000..afa2bbd Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_19202.jpg new file mode 100644 index 0000000..3fb360b Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Mustang blue/Ford-Mustang-automobile-1450573_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_1920.jpg new file mode 100644 index 0000000..29515e1 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_19201.jpg new file mode 100644 index 0000000..2d15371 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_19202.jpg new file mode 100644 index 0000000..5cd6171 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Ford Mustang red/Ford-Mustang-convertible-1630448_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_1920.jpg new file mode 100644 index 0000000..7bacbfc Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_19201.jpg new file mode 100644 index 0000000..58b4858 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_19202.jpg new file mode 100644 index 0000000..1416ad6 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Honda Civic/honda-civic-4967605_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_1920.jpg new file mode 100644 index 0000000..31723c0 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_19201.jpg new file mode 100644 index 0000000..ac676df Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_19202.jpg new file mode 100644 index 0000000..b702436 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Hyundai Kona/Hyundai-Kona-electric-4964667_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_1920.jpg new file mode 100644 index 0000000..51de0d7 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_19201.jpg new file mode 100644 index 0000000..be27fd1 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_19202.jpg new file mode 100644 index 0000000..75b16de Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Hyundai ix35/Hyundai-ix35-5505817_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-Ceed-car-3305685_1280.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-Ceed-car-3305685_1280.jpg new file mode 100644 index 0000000..c9f2caa Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-Ceed-car-3305685_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-Ceed-car-3305699_1280.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-Ceed-car-3305699_1280.jpg new file mode 100644 index 0000000..83308e5 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-Ceed-car-3305699_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-ceed-car-3305686_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-ceed-car-3305686_1920.jpg new file mode 100644 index 0000000..c90c1f1 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Ceed red/Kia-ceed-car-3305686_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_1920.jpg new file mode 100644 index 0000000..9079712 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_19201.jpg new file mode 100644 index 0000000..8b8b3ce Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_19202.jpg new file mode 100644 index 0000000..39c7d08 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Ceed white/Kia-Ceed-car-6097887_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash-detail1.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash-detail1.jpg new file mode 100644 index 0000000..8f29720 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash-detail1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash.jpg new file mode 100644 index 0000000..8d197a8 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash2.jpg new file mode 100644 index 0000000..a693d4c Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 GT/KIA-EV6-GT-line (edited) hyundai-motor-group-ErBFxMkJpKk-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash.jpg new file mode 100644 index 0000000..babce47 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash1.jpg new file mode 100644 index 0000000..35e65b3 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash2.jpg new file mode 100644 index 0000000..d85ec4e Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 gray/KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash.jpg new file mode 100644 index 0000000..6acdff1 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash1.jpg new file mode 100644 index 0000000..1d222f5 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash2.jpg new file mode 100644 index 0000000..3987daf Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia EV6 red/KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_1920.jpg new file mode 100644 index 0000000..4e2b8b2 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_19201.jpg new file mode 100644 index 0000000..46e5b2f Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_19202.jpg new file mode 100644 index 0000000..2d192fe Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Soul/Kia-Soul-car-2441815_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_1920.jpg new file mode 100644 index 0000000..305a7ce Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_19201.jpg new file mode 100644 index 0000000..a4f1d10 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_19202.jpg new file mode 100644 index 0000000..a8c591c Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Kia Sportage/Kia-Sportage-2382086_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_1920.jpg new file mode 100644 index 0000000..4913970 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_19201.jpg new file mode 100644 index 0000000..9670a1d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_19202.jpg new file mode 100644 index 0000000..5c41cbf Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda 3/mazda-3-7498005_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-1-Mazda-6-car-6122178_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-1-Mazda-6-car-6122178_1920.jpg new file mode 100644 index 0000000..7ae228b Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-1-Mazda-6-car-6122178_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-2-Mazda-6-car-6122177_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-2-Mazda-6-car-6122177_1920.jpg new file mode 100644 index 0000000..07447d2 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-2-Mazda-6-car-6122177_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-3-Mazda-6-car-6122177_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-3-Mazda-6-car-6122177_1920.jpg new file mode 100644 index 0000000..5ff6df9 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda 6/3-3-Mazda-6-car-6122177_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-1-Mazda-MX-5-cabriolet-3627312_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-1-Mazda-MX-5-cabriolet-3627312_1920.jpg new file mode 100644 index 0000000..a180747 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-1-Mazda-MX-5-cabriolet-3627312_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-2-Mazda-MX-5-cabriolet-3708152_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-2-Mazda-MX-5-cabriolet-3708152_1920.jpg new file mode 100644 index 0000000..b24e8e0 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-2-Mazda-MX-5-cabriolet-3708152_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-3-Mazda-MX-5-cabriolet-3708152_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-3-Mazda-MX-5-cabriolet-3708152_1920.jpg new file mode 100644 index 0000000..c5ba049 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Mazda MX-5/2-3-Mazda-MX-5-cabriolet-3708152_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_1920.jpg new file mode 100644 index 0000000..0b06ec7 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_19201.jpg new file mode 100644 index 0000000..8af4bbe Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_19202.jpg new file mode 100644 index 0000000..7b86fd0 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 red/Tesla-3-car-8607713_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_1920.jpg new file mode 100644 index 0000000..717c5c2 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_19201.jpg new file mode 100644 index 0000000..bf533b7 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_19202.jpg new file mode 100644 index 0000000..953f4ac Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 1/tesla-3-5937063_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash.jpg new file mode 100644 index 0000000..8a1b126 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash1.jpg new file mode 100644 index 0000000..8bdc8ea Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash2.jpg new file mode 100644 index 0000000..abc5273 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 2/Tesla-3-charlie-deets-AkgALppFIwo-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash.jpg new file mode 100644 index 0000000..50044d4 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash1.jpg new file mode 100644 index 0000000..f42bc13 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash2.jpg new file mode 100644 index 0000000..584e1fc Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Tesla 3 white 3/Tesla-3-i-m-zion-A-JEMot0hWs-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_1920.jpg new file mode 100644 index 0000000..b7bfd49 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_19201.jpg new file mode 100644 index 0000000..b81bc36 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_19202.jpg new file mode 100644 index 0000000..cbcaee9 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota Corolla/toyota-corolla-347288_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash.jpg new file mode 100644 index 0000000..bd69c56 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash1.jpg new file mode 100644 index 0000000..3d5a407 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash2.jpg new file mode 100644 index 0000000..c4fbbb7 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 1/Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash.jpg new file mode 100644 index 0000000..b796550 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash1.jpg new file mode 100644 index 0000000..7da69ba Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash2.jpg new file mode 100644 index 0000000..0e7af30 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 2/Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash.jpg new file mode 100644 index 0000000..47e9b9f Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash1.jpg new file mode 100644 index 0000000..98be96a Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash2.jpg new file mode 100644 index 0000000..441bbf8 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota RAV4 3/Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_1920.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_1920.jpg new file mode 100644 index 0000000..0554e29 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_19201.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_19201.jpg new file mode 100644 index 0000000..1b6b83d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_19201.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_19202.jpg b/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_19202.jpg new file mode 100644 index 0000000..0a0135d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/Toyota Tundra/toyota-tundra-1241658_19202.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash.jpg b/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash.jpg new file mode 100644 index 0000000..d61db34 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash1.jpg b/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash1.jpg new file mode 100644 index 0000000..c373365 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash1.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash2.jpg b/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash2.jpg new file mode 100644 index 0000000..bc61026 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Caddy 1/VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-2.jpg b/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-2.jpg new file mode 100644 index 0000000..1ecdfcb Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-2.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-21.jpg b/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-21.jpg new file mode 100644 index 0000000..cbf010e Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-21.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-22.jpg b/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-22.jpg new file mode 100644 index 0000000..03f253f Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Caddy 2/VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-22.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Golf/VW-Golf-car-5671331_1280.jpg b/projects/fleet-management-grid/public/cars/photos/VW Golf/VW-Golf-car-5671331_1280.jpg new file mode 100644 index 0000000..1ba7e55 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Golf/VW-Golf-car-5671331_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Golf/vw-Golf-4332807_1280.jpg b/projects/fleet-management-grid/public/cars/photos/VW Golf/vw-Golf-4332807_1280.jpg new file mode 100644 index 0000000..69eae2d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Golf/vw-Golf-4332807_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Golf/vw-Golf-4332807_12801.jpg b/projects/fleet-management-grid/public/cars/photos/VW Golf/vw-Golf-4332807_12801.jpg new file mode 100644 index 0000000..ac924f9 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Golf/vw-Golf-4332807_12801.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_1280.jpg b/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_1280.jpg new file mode 100644 index 0000000..79c0205 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_12801.jpg b/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_12801.jpg new file mode 100644 index 0000000..aa10ba2 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_12801.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_12802.jpg b/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_12802.jpg new file mode 100644 index 0000000..7532cc4 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Passat black/VW-passat-768159_12802.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866764_1280.jpg b/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866764_1280.jpg new file mode 100644 index 0000000..6418fd7 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866764_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866769_1280.jpg b/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866769_1280.jpg new file mode 100644 index 0000000..1b01f80 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866769_1280.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866769_12801.jpg b/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866769_12801.jpg new file mode 100644 index 0000000..d034647 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Passat gray/VW-Passat-car-866769_12801.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-16625624.jpg b/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-16625624.jpg new file mode 100644 index 0000000..bd6588d Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-16625624.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-166256241.jpg b/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-166256241.jpg new file mode 100644 index 0000000..a285155 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-166256241.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-166256242.jpg b/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-166256242.jpg new file mode 100644 index 0000000..d82c8b1 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Polo/VW-Polo-pexels-hellojoshwithers-166256242.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-1-VW-Touareg-automobile-4061855_1920.jpg b/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-1-VW-Touareg-automobile-4061855_1920.jpg new file mode 100644 index 0000000..2297e32 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-1-VW-Touareg-automobile-4061855_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-2-VW-Touareg-338895_1920.jpg b/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-2-VW-Touareg-338895_1920.jpg new file mode 100644 index 0000000..945ff16 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-2-VW-Touareg-338895_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-3-VW-Touareg-automobile-4061855_1920.jpg b/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-3-VW-Touareg-automobile-4061855_1920.jpg new file mode 100644 index 0000000..21de263 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Touareg 1/4-3-VW-Touareg-automobile-4061855_1920.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-1-VW-Touareg-pexels-ardit-mbrati-216809103-16646414.jpg b/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-1-VW-Touareg-pexels-ardit-mbrati-216809103-16646414.jpg new file mode 100644 index 0000000..269d133 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-1-VW-Touareg-pexels-ardit-mbrati-216809103-16646414.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-2-VW-Touareg-pexels-ardit-mbrati-216809103-16646416.jpg b/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-2-VW-Touareg-pexels-ardit-mbrati-216809103-16646416.jpg new file mode 100644 index 0000000..b5d7566 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-2-VW-Touareg-pexels-ardit-mbrati-216809103-16646416.jpg differ diff --git a/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-3-VW-Touareg-pexels-ardit-mbrati-216809103-16646412.jpg b/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-3-VW-Touareg-pexels-ardit-mbrati-216809103-16646412.jpg new file mode 100644 index 0000000..2e1e7c0 Binary files /dev/null and b/projects/fleet-management-grid/public/cars/photos/VW Touareg 2/5-3-VW-Touareg-pexels-ardit-mbrati-216809103-16646412.jpg differ diff --git a/projects/fleet-management-grid/public/favicon.ico b/projects/fleet-management-grid/public/favicon.ico new file mode 100644 index 0000000..57614f9 Binary files /dev/null and b/projects/fleet-management-grid/public/favicon.ico differ diff --git a/projects/fleet-management-grid/public/location_pin.svg b/projects/fleet-management-grid/public/location_pin.svg new file mode 100644 index 0000000..24cce8d --- /dev/null +++ b/projects/fleet-management-grid/public/location_pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/projects/fleet-management-grid/public/people/men/1.jpg b/projects/fleet-management-grid/public/people/men/1.jpg new file mode 100644 index 0000000..a51a955 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/1.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/10.jpg b/projects/fleet-management-grid/public/people/men/10.jpg new file mode 100644 index 0000000..8d1c911 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/10.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/11.jpg b/projects/fleet-management-grid/public/people/men/11.jpg new file mode 100644 index 0000000..82c3f90 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/11.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/12.jpg b/projects/fleet-management-grid/public/people/men/12.jpg new file mode 100644 index 0000000..b2d9572 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/12.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/13.jpg b/projects/fleet-management-grid/public/people/men/13.jpg new file mode 100644 index 0000000..eb12ec7 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/13.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/14.jpg b/projects/fleet-management-grid/public/people/men/14.jpg new file mode 100644 index 0000000..fe518c9 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/14.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/15.jpg b/projects/fleet-management-grid/public/people/men/15.jpg new file mode 100644 index 0000000..2afd273 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/15.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/16.jpg b/projects/fleet-management-grid/public/people/men/16.jpg new file mode 100644 index 0000000..449eddd Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/16.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/17.jpg b/projects/fleet-management-grid/public/people/men/17.jpg new file mode 100644 index 0000000..6b21f18 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/17.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/18.jpg b/projects/fleet-management-grid/public/people/men/18.jpg new file mode 100644 index 0000000..4134e7b Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/18.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/19.jpg b/projects/fleet-management-grid/public/people/men/19.jpg new file mode 100644 index 0000000..da41dd0 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/19.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/2.jpg b/projects/fleet-management-grid/public/people/men/2.jpg new file mode 100644 index 0000000..6c96649 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/2.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/20.jpg b/projects/fleet-management-grid/public/people/men/20.jpg new file mode 100644 index 0000000..eb29027 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/20.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/21.jpg b/projects/fleet-management-grid/public/people/men/21.jpg new file mode 100644 index 0000000..78f4943 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/21.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/22.jpg b/projects/fleet-management-grid/public/people/men/22.jpg new file mode 100644 index 0000000..2562444 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/22.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/23.jpg b/projects/fleet-management-grid/public/people/men/23.jpg new file mode 100644 index 0000000..289cbec Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/23.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/24.jpg b/projects/fleet-management-grid/public/people/men/24.jpg new file mode 100644 index 0000000..d457e6b Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/24.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/25.jpg b/projects/fleet-management-grid/public/people/men/25.jpg new file mode 100644 index 0000000..a8ffed9 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/25.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/26.jpg b/projects/fleet-management-grid/public/people/men/26.jpg new file mode 100644 index 0000000..93fb431 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/26.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/3.jpg b/projects/fleet-management-grid/public/people/men/3.jpg new file mode 100644 index 0000000..f53de53 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/3.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/4.jpg b/projects/fleet-management-grid/public/people/men/4.jpg new file mode 100644 index 0000000..c0009f1 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/4.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/5.jpg b/projects/fleet-management-grid/public/people/men/5.jpg new file mode 100644 index 0000000..b16929c Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/5.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/6.jpg b/projects/fleet-management-grid/public/people/men/6.jpg new file mode 100644 index 0000000..a48d82e Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/6.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/7.jpg b/projects/fleet-management-grid/public/people/men/7.jpg new file mode 100644 index 0000000..4374301 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/7.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/8.jpg b/projects/fleet-management-grid/public/people/men/8.jpg new file mode 100644 index 0000000..e1544a7 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/8.jpg differ diff --git a/projects/fleet-management-grid/public/people/men/9.jpg b/projects/fleet-management-grid/public/people/men/9.jpg new file mode 100644 index 0000000..28f6fe0 Binary files /dev/null and b/projects/fleet-management-grid/public/people/men/9.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/1.jpg b/projects/fleet-management-grid/public/people/women/1.jpg new file mode 100644 index 0000000..b9b9169 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/1.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/10.jpg b/projects/fleet-management-grid/public/people/women/10.jpg new file mode 100644 index 0000000..90676ad Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/10.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/11.jpg b/projects/fleet-management-grid/public/people/women/11.jpg new file mode 100644 index 0000000..5fbc392 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/11.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/12.jpg b/projects/fleet-management-grid/public/people/women/12.jpg new file mode 100644 index 0000000..d96f10a Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/12.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/13.jpg b/projects/fleet-management-grid/public/people/women/13.jpg new file mode 100644 index 0000000..a7f2d3b Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/13.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/14.jpg b/projects/fleet-management-grid/public/people/women/14.jpg new file mode 100644 index 0000000..6f9902a Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/14.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/15.jpg b/projects/fleet-management-grid/public/people/women/15.jpg new file mode 100644 index 0000000..ea1956a Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/15.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/16.jpg b/projects/fleet-management-grid/public/people/women/16.jpg new file mode 100644 index 0000000..35501e8 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/16.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/17.jpg b/projects/fleet-management-grid/public/people/women/17.jpg new file mode 100644 index 0000000..40bb0d4 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/17.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/18.jpg b/projects/fleet-management-grid/public/people/women/18.jpg new file mode 100644 index 0000000..97b0f70 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/18.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/19.jpg b/projects/fleet-management-grid/public/people/women/19.jpg new file mode 100644 index 0000000..3c73b8e Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/19.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/2.jpg b/projects/fleet-management-grid/public/people/women/2.jpg new file mode 100644 index 0000000..0747991 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/2.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/20.jpg b/projects/fleet-management-grid/public/people/women/20.jpg new file mode 100644 index 0000000..bf45655 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/20.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/21.jpg b/projects/fleet-management-grid/public/people/women/21.jpg new file mode 100644 index 0000000..f8059ff Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/21.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/22.jpg b/projects/fleet-management-grid/public/people/women/22.jpg new file mode 100644 index 0000000..fafc42a Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/22.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/23.jpg b/projects/fleet-management-grid/public/people/women/23.jpg new file mode 100644 index 0000000..e65b11d Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/23.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/24.jpg b/projects/fleet-management-grid/public/people/women/24.jpg new file mode 100644 index 0000000..a3bd962 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/24.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/25.jpg b/projects/fleet-management-grid/public/people/women/25.jpg new file mode 100644 index 0000000..b96c09e Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/25.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/26.jpg b/projects/fleet-management-grid/public/people/women/26.jpg new file mode 100644 index 0000000..bbea0c2 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/26.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/3.jpg b/projects/fleet-management-grid/public/people/women/3.jpg new file mode 100644 index 0000000..bd471f2 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/3.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/4.jpg b/projects/fleet-management-grid/public/people/women/4.jpg new file mode 100644 index 0000000..ae42478 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/4.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/5.jpg b/projects/fleet-management-grid/public/people/women/5.jpg new file mode 100644 index 0000000..89ac0e6 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/5.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/6.jpg b/projects/fleet-management-grid/public/people/women/6.jpg new file mode 100644 index 0000000..d001e15 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/6.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/7.jpg b/projects/fleet-management-grid/public/people/women/7.jpg new file mode 100644 index 0000000..53f97d1 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/7.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/8.jpg b/projects/fleet-management-grid/public/people/women/8.jpg new file mode 100644 index 0000000..9072054 Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/8.jpg differ diff --git a/projects/fleet-management-grid/public/people/women/9.jpg b/projects/fleet-management-grid/public/people/women/9.jpg new file mode 100644 index 0000000..a4ebc3b Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/9.jpg differ diff --git a/projects/fleet-management-grid/src/app/app.component.html b/projects/fleet-management-grid/src/app/app.component.html new file mode 100644 index 0000000..c458e4e --- /dev/null +++ b/projects/fleet-management-grid/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/projects/fleet-management-grid/src/app/app.component.scss b/projects/fleet-management-grid/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/fleet-management-grid/src/app/app.component.ts b/projects/fleet-management-grid/src/app/app.component.ts new file mode 100644 index 0000000..363bebe --- /dev/null +++ b/projects/fleet-management-grid/src/app/app.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { FleetManagementGridComponent } from "./fleet-management-grid/fleet-management-grid.component"; + +@Component({ + selector: 'app-root', + imports: [ FleetManagementGridComponent], + templateUrl: './app.component.html', + styleUrl: './app.component.scss' +}) +export class AppComponent { + title = 'master-detail-grid'; +} diff --git a/projects/fleet-management-grid/src/app/app.config.ts b/projects/fleet-management-grid/src/app/app.config.ts new file mode 100644 index 0000000..4d822a0 --- /dev/null +++ b/projects/fleet-management-grid/src/app/app.config.ts @@ -0,0 +1,15 @@ +import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; +import { provideClientHydration, withEventReplay } from '@angular/platform-browser'; +import { provideAnimations } from '@angular/platform-browser/animations'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideZoneChangeDetection({ eventCoalescing: true }), + provideRouter(routes), + provideClientHydration(withEventReplay()), + provideAnimations() + ] +}; diff --git a/projects/fleet-management-grid/src/app/app.routes.ts b/projects/fleet-management-grid/src/app/app.routes.ts new file mode 100644 index 0000000..dc39edb --- /dev/null +++ b/projects/fleet-management-grid/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.html b/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.html new file mode 100644 index 0000000..d47c18b --- /dev/null +++ b/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.html @@ -0,0 +1,490 @@ + + + Actions + + + + + + + + + + + + + + + {{ value }} + + + + + + + + + + + + + + + + + {{ value }} + + + + + + {{ cell.value }} + + + + + + + + + Details + + + +
+ + +
+
+
+
+ Make: +
+ +
+ Generation: +
+ +
+ Year of Manufacture: +
+ +
+ Fuel Type: +
+ +
+ Doors: +
+ +
+ Seats: +
+ +
+ Transmission: +
+ +
+
+
+ {{ dataItem.make }} +
+ +
+ {{ dataItem.details.generation }} +
+ +
+ {{ dataItem.details.yearOfManufacture }} +
+ +
+ {{ dataItem.details.fuelType }} +
+ +
+ {{ dataItem.details.doors }} +
+ +
+ {{ dataItem.details.seats }} +
+ +
+ {{ dataItem.details.transmission }} +
+ +
+
+
+
+
+ Engine: +
+ +
+ Power: +
+ +
+ Mileage: +
+ +
+ Cubature: +
+ +
+ Color: +
+ +
+ MSRP: +
+ +
+ Toll Pass ID: +
+ +
+
+
+ {{ dataItem.details.engine }} +
+ +
+ {{ dataItem.details.power }} +
+ +
+ {{ dataItem.details.mileage }} +
+ +
+ {{ dataItem.details.cubature }} +
+ +
+ {{ dataItem.details.color }} +
+ +
+ {{ dataItem.details.msrp }} +
+ +
+ {{ dataItem.details.tollPassId }} +
+ +
+
+
+
+
+
+ + + + Trip History + + + +
+ +
+
+
+ + + + Maintenance + + + +
+ +
+
+
+ + + + Cost + + + +
+
+
+ Costs per Type + + + YTD + Last 3 Months + Last 6 Months + Last 12 Months + +
+
+ + +
+
+ +
+
+ Costs per Meter, per Quarter + + + YTD + 2023 + 2022 + 2021 + 2020 + +
+
+ + +
+
+ +
+
+ Fuel Costs per Month + + + YTD + Last 3 Months + Last 6 Months + Last 12 Months + +
+
+ + +
+
+ +
+
+
+ + + + Utilization + + + +
+
+
Utilization per Month
+ + + + +
+
+
+
+
+
+
+ + + + + + + + {{ cell.value }} + + Current + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ value }} + + + + + + +
+ + + +
{{ make }} {{ model }}
+ Mileage: {{ mileage }} +
+ + + + + + + +
+
+ +
+ + + +
{{ driverDetails.name }}
+
+ +
+
+
+ Driver's License: +
+ +
+ Address: +
+ +
+ City: +
+ +
+ Phone: +
+ +
+ Email: +
+ +
+
+
+ {{ driverDetails.license }} +
+ +
+ {{ driverDetails.address }} +
+ +
+ {{ driverDetails.city }} +
+ +
+ {{ driverDetails.phone }} +
+ +
+ {{ driverDetails.email }} +
+ +
+
+
+ + + +
+
diff --git a/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.scss b/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.scss new file mode 100644 index 0000000..d7d867a --- /dev/null +++ b/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.scss @@ -0,0 +1,267 @@ +@use "igniteui-angular/theming" as *; + +igx-tabs { + flex: 1; + width: 100%; +} + +igx-divider { + color: var(--ig-gray-200); + opacity: 24%; +} + +igx-card { + border: 0px; + border-radius: 4px; +} +.grid-container { + padding: 16px; +} + +.details-container { + display: flex; + align-items: flex-start; + padding: 16px; + width: 100%; +} + +.carousel-container { + width: 420px; + height: 240px; +} + +.image-container img { + width: 100%; + height: auto; + object-fit: cover; +} + +.details-table { + display: flex; + flex-direction: row; + width: calc(100% * (2 / 3)); + height: auto; + justify-content: space-around; +} + +.detail-block-container { + display: flex; + flex-direction: row; + justify-content: space-around; + align-items: center; + width: 50%; +} + +.detail-category-container { + width: 50%; + padding-left: 25px; +} + +.detail-content-container { + width: 50%; +} + +.detail-item { + padding-top: 5px; + padding-bottom: 5px; + font-size: 0.8125rem; + +} + +.detail-category { + font-weight: bold; +} + +.dashboard { + display: grid; + grid-template-columns: 1fr 2.5fr; + grid-template-rows: 1fr 1fr; + padding: 16px; + height: 100%; +} + +.chart-container { + display: grid; + grid-template-rows: 40px auto; + height: 100%; + padding: 10px; + padding-top: 20px; +} + +.chart-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 20px; +} + +.chart-select { + width: 40%; +} + +.chart-content { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + padding: 15px; + border-radius: 6px; + border: 1px solid #8A8A8A; +} + +.content-wrapper { + padding: 16px; +} + +.pie-chart { + grid-column: 1; + grid-row: 1; +} + +.area-chart { + grid-column: 1; + grid-row: 2; +} + +.column-chart { + grid-column: 2; + grid-row: 1 / span 2; +} + +.column-chart-two-series { + align-self: center; +} + +.utilization-chart { + flex-direction: column; + align-items: start; +} + +.status-value { + padding-left: 8px; +} + +.overlay { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + justify-items: center; + align-content: center; + width: 360px; + height: 396px; + box-shadow: var(--ig-elevation-24); +} + +.igx-card { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + justify-items: center; + align-content: center; + width: 100%; + height: 396px; +} + +.overlay-location-header { + height: 38%; + width: 100%; + flex-direction: column; + justify-content: space-around; + align-items: center; + align-content: space-around; +} + +.overlay-title { + padding-top: 8px; +} + +.overlay-text { + font-size: 14px; +} + +.overlay-driver { + width: 327px; + height: 344px; + padding: 0px; + margin: 0px; +} + +.overlay-driver-header { + height: 38%; + width: 100%; + flex-direction: column; + justify-content: space-around; + align-items: center; + align-content: space-around; +} + +.overlay-location-content { + height: 48%; + width: 100%; + padding: 0px; +} + +.overlay-driver-content { + height: 48%; + width: 100%; + padding: 0px; + justify-content: center; +} + +.overlay-location-actions { + height: 13%; + width: 100%; + justify-content: end; + margin: 0px; +} + +.overlay-driver-actions { + height: 13%; + width: 100%; + justify-content: end; + margin: 8px; +} + +.driver-block-container { + display: flex; + flex-direction: row; + justify-self: center; + width: 85%; +} + +.driver-category-container { + width: 50%; +} + +.driver-detail-container { + width: 50%; +} + +::ng-deep .igx-card-header__thumbnail { + align-self: center; + margin-inline-end: 0px; +} + +.driver-avatar { + --size: 22px +} + +.overlay-avatar {} + +.driver-overlay-avatar { + //--size: 64px +} + +.logo-avatar { + --size: 22px; + border-radius: 0.25rem; + +} + +.driver-badge { + margin-left: 10px; + padding-left: 8px; + padding-right: 8px; +} diff --git a/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.ts b/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.ts new file mode 100644 index 0000000..761acfe --- /dev/null +++ b/projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component.ts @@ -0,0 +1,311 @@ +import { CommonModule } from '@angular/common'; +import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core'; +import { check, delivery, gitIssue, wrench } from '@igniteui/material-icons-extended'; +import { AutoPositionStrategy, DefaultSortingStrategy, IgxAvatarComponent, IgxBadgeComponent, IgxButtonDirective, IgxButtonModule, IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCarouselComponent, IgxCellTemplateDirective, IgxColumnComponent, IgxDividerDirective, IgxGridComponent, IgxGridDetailTemplateDirective, IgxGridToolbarActionsComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxIconComponent, IgxIconService, IgxLabelDirective, IgxOverlayService, IgxSelectComponent, IgxSelectItemComponent, IgxSlideComponent, IgxTabContentComponent, IgxTabHeaderComponent, IgxTabItemComponent, IgxTabsComponent, RelativePosition, RelativePositionStrategy, SortingDirection } from 'igniteui-angular'; +import { IgxCategoryChartModule, IgxDataChartInteractivityModule, IgxLegendDynamicModule, IgxPieChartModule } from 'igniteui-angular-charts'; +import CAR_PHOTO_MANIFEST from '../../assets/car_photo_manifest.json'; +import CAR_IMAGES from '../../assets/car_images.json' +import { IgDataTemplate, IgxShapeDataSourceModule } from 'igniteui-angular-core'; +import { IgxGeographicMapComponent, IgxGeographicMapModule, IgxGeographicSymbolSeriesComponent } from 'igniteui-angular-maps'; +import { useAnimation } from '@angular/animations'; +import { fadeIn, fadeOut } from 'igniteui-angular/animations'; +import { DataService } from '../services/data.service'; + +@Component({ + selector: 'app-fleet-management-grid', + imports: [ + CommonModule, + IgxPieChartModule, + IgxCategoryChartModule, + IgxGridComponent, + IgxColumnComponent, + IgxGridToolbarComponent, + IgxGridToolbarTitleComponent, + IgxGridToolbarActionsComponent, + IgxGridToolbarHidingComponent, + IgxGridToolbarPinningComponent, + IgxGridToolbarExporterComponent, + IgxGridToolbarAdvancedFilteringComponent, + IgxTabsComponent, + IgxTabItemComponent, + IgxTabHeaderComponent, + IgxTabContentComponent, + IgxGridDetailTemplateDirective, + IgxCarouselComponent, + IgxSlideComponent, + IgxBadgeComponent, + IgxCellTemplateDirective, + IgxDividerDirective, + IgxIconComponent, + IgxButtonDirective, + IgxButtonModule, + IgxAvatarComponent, + IgxCardComponent, + IgxCardHeaderComponent, + IgxCardContentDirective, + IgxGeographicMapModule, + IgxDataChartInteractivityModule, + IgxShapeDataSourceModule, + IgxCardActionsComponent, + IgxLegendDynamicModule, + IgxSelectComponent, + IgxSelectItemComponent, + IgxLabelDirective + ], + templateUrl: './fleet-management-grid.component.html', + styleUrl: './fleet-management-grid.component.scss' +}) +export class FleetManagementGridComponent implements OnInit { + + //view childs + @ViewChild('grid', { static: true }) public grid!: IgxGridComponent; + @ViewChild(`locationOverlay`) private locationOverlay!: ElementRef; + @ViewChild(`driverOverlay`) private driverOverlay!: ElementRef; + @ViewChild("map", { static: true }) public map!: IgxGeographicMapComponent; + + //overlay IDs + private locationOverlayId: string | null = null; + private driverOverlayId: string | null = null; + + //overlay toggle flags + public isLocationOverlayActive = false; + public isDriverOverlayActive = false; + + //car details for location overlay + public vehiclePhoto: string = ''; + public make: string = ''; + public model: string = ''; + public mileage: string = ''; + public markerLocations: any[] = []; + + //chart periods + public periods = { + costPerTypePeriod: "ytd", + costPerMeterPeriod: "ytd", + fuelCostPeriod: "ytd" + } + + //driver details for detail overlay + public driverDetails = { + name: "", + license: "", + address: "", + city: "", + phone: "", + email: "", + photo: "" + } + + constructor( + private iconService: IgxIconService, + @Inject(IgxOverlayService) private overlayService: IgxOverlayService, + public dataService: DataService, + @Inject(ElementRef) public hostRef: ElementRef) {} + + public ngOnInit(): void { + this.iconService.addSvgIconFromText(check.name, check.value, 'imx-icons'); + this.iconService.addSvgIconFromText(wrench.name, wrench.value, 'imx-icons'); + this.iconService.addSvgIconFromText(delivery.name, delivery.value, 'imx-icons'); + this.iconService.addSvgIconFromText(gitIssue.name, gitIssue.value, 'imx-icons'); + + this.grid.sortingExpressions = [ + { + dir: SortingDirection.Asc, fieldName: 'vehicleId', + ignoreCase: true, strategy: DefaultSortingStrategy.instance() + } + ]; + } + + public ngOnDestroy(): void { + if (this.locationOverlayId) { + this.overlayService.detach(this.locationOverlayId); + this.locationOverlayId = null; + } + if (this.driverOverlayId) { + this.overlayService.detach(this.driverOverlayId); + this.driverOverlayId = null; + } + } + + //handling for chart periods + public onPeriodChange(event: any, chart: string): void { + if (chart == "costsPerType") { + this.periods.costPerTypePeriod = event.newSelection.value; + } else if (chart == "costsPerMeter") { + this.periods.costPerMeterPeriod = event.newSelection.value; + } else if (chart == "fuelCosts") { + this.periods.fuelCostPeriod = event.newSelection.value; + } + + } + + //getters for image paths + public getPathToLogoImage(value: string): string { + return `/cars/logos/${value}.png`; + } + + public getPathToCarImage(vehicleId: string): string[] { + const carEntry = CAR_PHOTO_MANIFEST.find(car => car.id === vehicleId); + + if (!carEntry) { + console.warn(`No vehicle found with ID: ${vehicleId}`); + return []; + } + + const folderName = carEntry.folder; + + const carPhotoNames = (CAR_IMAGES as Record)[folderName]; + + const carPathsToPhotos = carPhotoNames.map(photo => `/cars/photos/${folderName}/${photo}`); + + return carPathsToPhotos; + } + + public getPathToDriverPhoto(cell: any) { + return `/people/${this.dataService.getDriverPhoto(cell.row.data.driverName)}.jpg`; + } + + //overlay logic + public showLocationOverlay(event: MouseEvent, cell: any) { + + const vehicleId = cell.row?.cells?.find((c: any) => c.column.field === 'vehicleId')?.value; + + if (vehicleId === undefined) { + console.error('Vehicle ID not found in data'); + return; + } + + const vehicle = this.dataService.getVehiclesData().find(v => v.vehicleId === vehicleId) + + if (!vehicle) { + console.error(`No vehicle found for ID: ${vehicleId}`); + return; + } + this.vehiclePhoto = this.getPathToCarImage(vehicleId)[0]; + this.make = vehicle.make; + this.model = vehicle.model; + this.mileage = vehicle.details.mileage; + this.markerLocations = [ + { latitude: parseFloat(vehicle.locationGps.split(',')[0]), longitude: parseFloat(vehicle.locationGps.split(',')[1]) }, + ]; + + this.map.series.clear(); + this.addSeriesWith(this.markerLocations, "Red"); + const centerPoint = { + left: this.markerLocations[0].longitude - 0.01, + top: this.markerLocations[0].latitude - 0.01, + width: 0.01, + height: 0.01 + }; + this.map.zoomToGeographic(centerPoint); + + const overlaySettings = IgxOverlayService.createRelativeOverlaySettings( + event.target as HTMLElement, + RelativePosition.Before, + RelativePositionStrategy.Auto, + ); + + overlaySettings.outlet = this.hostRef; + + (overlaySettings.positionStrategy as AutoPositionStrategy).settings.openAnimation = useAnimation(fadeIn, { params: { duration: '500ms', fromOpacity: 0, toOpacity: 1 } }); + (overlaySettings.positionStrategy as AutoPositionStrategy).settings.closeAnimation = useAnimation(fadeOut, { params: { duration: '500ms', fromOpacity: 1, toOpacity: 0 } }); + + if (this.locationOverlayId) { + this.overlayService.detach(this.locationOverlayId); + } + + this.isLocationOverlayActive = true; + this.locationOverlayId = this.overlayService.attach(this.locationOverlay, overlaySettings); + this.overlayService.show(this.locationOverlayId); + } + + public closeLocationOverlay() { + this.isLocationOverlayActive = false; + if (this.locationOverlayId) { + this.overlayService.hide(this.locationOverlayId); + } + } + + public showDriverOverlay(event: MouseEvent, cell: any) { + + const driverName = cell.row?.cells?.find((c: any) => c.column.field === 'driverName')?.value; + + if (driverName === undefined) { + console.error('Driver not found in data'); + return; + } + + const driverDetails = this.dataService.getDriverData(driverName); + + this.driverDetails.name = driverDetails?.name as string; + this.driverDetails.license = driverDetails?.license as string; + this.driverDetails.address = driverDetails?.address as string; + this.driverDetails.city = driverDetails?.city as string; + this.driverDetails.phone = driverDetails?.phone as string; + this.driverDetails.email = driverDetails?.email as string; + this.driverDetails.photo = `/people/${driverDetails?.photo}.jpg`; + + const overlaySettings = IgxOverlayService.createRelativeOverlaySettings( + event.target as HTMLElement, + RelativePosition.After, + RelativePositionStrategy.Auto, + ); + + overlaySettings.outlet = this.hostRef; + + (overlaySettings.positionStrategy as AutoPositionStrategy).settings.openAnimation = useAnimation(fadeIn, { params: { duration: '500ms', fromOpacity: 0, toOpacity: 1 } }); + (overlaySettings.positionStrategy as AutoPositionStrategy).settings.closeAnimation = useAnimation(fadeOut, { params: { duration: '500ms', fromOpacity: 1, toOpacity: 0 } }); + + if (this.driverOverlayId) { + this.overlayService.detach(this.driverOverlayId); + } + + this.isDriverOverlayActive = true; + this.driverOverlayId = this.overlayService.attach(this.driverOverlay, overlaySettings); + this.overlayService.show(this.driverOverlayId); + } + + public closeDriverOverlay() { + this.isDriverOverlayActive = false; + if (this.driverOverlayId) { + this.overlayService.hide(this.driverOverlayId); + } + } + + //util function for adding map series + private addSeriesWith(locations:any[], brush: string) { + const symbolSeries = new IgxGeographicSymbolSeriesComponent(); + symbolSeries.dataSource = locations; + symbolSeries.latitudeMemberPath = "latitude"; + symbolSeries.longitudeMemberPath = "longitude"; + symbolSeries.markerBrush = "White"; + symbolSeries.markerOutline = brush; + symbolSeries.markerTemplate = { + measure: (measureInfo) => { + measureInfo.width = 24; + measureInfo.height = 24; + }, + render: (renderInfo) => { + const ctx = renderInfo.context; + const x = renderInfo.xPosition; + const y = renderInfo.yPosition; + + const img = new Image(); + img.src = 'location_pin.svg'; + img.onload = () => { + ctx.drawImage(img, x - 12, y - 12, 32, 32); + }; + } + } as IgDataTemplate; + this.map.series.add(symbolSeries); + } + + rightAlignedCellStyles = { + 'justify-content': 'flex-end', + 'display': 'flex' + }; + + rightAlignedHeaderStyles = { + 'text-align': 'right' + }; +} diff --git a/projects/fleet-management-grid/src/app/services/data.service.ts b/projects/fleet-management-grid/src/app/services/data.service.ts new file mode 100644 index 0000000..11bf510 --- /dev/null +++ b/projects/fleet-management-grid/src/app/services/data.service.ts @@ -0,0 +1,105 @@ +import { Injectable } from '@angular/core'; +import VEHICLES_DATA from '../../assets/data/vehicles.json'; +import DRIVERS_DATA from '../../assets/data/drivers.json'; +import TRIP_HISTORY_DATA from '../../assets/data/trip_history.json'; +import MAINTENANCE_DATA from '../../assets/data/maintenance.json'; +import COST_DATA from '../../assets/data/cost.json'; +import UTILIZATION_DATA from '../../assets/data/utilization.json'; + +@Injectable({ + providedIn: 'root' +}) +export class DataService { + private vehiclesData = VEHICLES_DATA; + private driversData = DRIVERS_DATA; + private tripHistoryData = TRIP_HISTORY_DATA; + private maintenanceData = MAINTENANCE_DATA; + private costData = COST_DATA; + private utilizationData = UTILIZATION_DATA; + + private bind: () => void; + + private fuelCostsCache: { [key: string]: any[] } = {}; + + constructor() { + this.bind = () => { + this.utilizationData.forEach(vehicle => { + (vehicle.utilization as any).__dataIntents = { + "'2023'": ["SeriesTitle/2023"], + "'2024'": ["SeriesTitle/2024"] + }; + }) + }; + this.bind(); + } + + public getVehiclesData() { + return this.vehiclesData; + } + + public getDriverData(driverName: string) { + return this.driversData.find(data => data.name == driverName); + } + + public getDriverPhoto(driverName: string) { + return this.getDriverData(driverName)?.photo; + } + + public getTripHistoryData(vehicleId: string) { + return this.tripHistoryData.find(data => data.vehicleId === vehicleId)?.tripHistory; + } + + public getMaintenanceData(vehicleId: string) { + return this.maintenanceData.find(data => data.vehicleId === vehicleId)?.maintenance; + } + + public getCostsPerTypeData(vehicleId: string, period: any) { + const dataItem = this.costData.find(data => data.vehicleId === vehicleId) as any; + const costPerTypeData = dataItem.costPerType; + + return costPerTypeData[period]; + } + + public getCostsPerMeterData(vehicleId: string, period: any) { + const dataItem = this.costData.find(data => data.vehicleId === vehicleId) as any; + const costPerMeterData = dataItem.costsPerMeterPerQuarter; + + return costPerMeterData[period]; + } + + public getFuelCostsData(vehicleId: string, period: any) { + const dataItem = this.costData.find(data => data.vehicleId === vehicleId) as any; + const fuelCostsPerMonth = dataItem.fuelCostsPerMonth; + + if (this.fuelCostsCache[vehicleId + period]) { + return this.fuelCostsCache[vehicleId + period]; + } + + let fuelCostsPerMonthPeriod: any[]; + + switch (period) { + case 'ytd': + case '12months': + fuelCostsPerMonthPeriod = fuelCostsPerMonth; + break; + case '6months': + fuelCostsPerMonthPeriod = [...fuelCostsPerMonth].splice(-6); + break; + case '3months': + fuelCostsPerMonthPeriod = [...fuelCostsPerMonth].splice(-3); + break; + default: + console.warn("Invalid period:", period); + return []; + } + + this.fuelCostsCache[vehicleId + period] = fuelCostsPerMonthPeriod; + + return fuelCostsPerMonthPeriod; + } + + public getUtilizationData(vehicleId: string) { + const dataItem = this.utilizationData.find(data => data.vehicleId === vehicleId); + return dataItem ? dataItem.utilization : [] + } +} diff --git a/projects/fleet-management-grid/src/assets/car_images.json b/projects/fleet-management-grid/src/assets/car_images.json new file mode 100644 index 0000000..74f1190 --- /dev/null +++ b/projects/fleet-management-grid/src/assets/car_images.json @@ -0,0 +1,182 @@ +{ + "Ford F-150 blue": [ + "Ford-F150-caleb-white-XGJBSkoqX_I-unsplash.jpg", + "Ford-F150-caleb-white-XGJBSkoqX_I-unsplash1.jpg", + "Ford-F150-caleb-white-XGJBSkoqX_I-unsplash2.jpg" + ], + "Ford F-150 red": [ + "Ford-f150-7572360_1920.jpg", + "Ford-f150-7572360_19201.jpg", + "Ford-f150-7572360_19202.jpg" + ], + "Ford Focus blue": [ + "ford-focus-5167838_1280.jpg", + "ford-focus-5167838_12801.jpg", + "ford-focus-5167838_12802.jpg" + ], + "Ford Focus dark gray": [ + "1-1-Ford-Focus-car-3300587_1280.jpg", + "1-2-Ford-Focus-car-3300588_1280.jpg", + "1-3-Ford-Focus-car-3300587_1280.jpg" + ], + "Ford Mustang blue": [ + "Ford-Mustang-automobile-1450573_1920.jpg", + "Ford-Mustang-automobile-1450573_19201.jpg", + "Ford-Mustang-automobile-1450573_19202.jpg" + ], + "Ford Mustang red": [ + "Ford-Mustang-convertible-1630448_1920.jpg", + "Ford-Mustang-convertible-1630448_19201.jpg", + "Ford-Mustang-convertible-1630448_19202.jpg" + ], + "Honda Civic": [ + "honda-civic-4967605_1920.jpg", + "honda-civic-4967605_19201.jpg", + "honda-civic-4967605_19202.jpg" + ], + "Hyundai ix35": [ + "Hyundai-ix35-5505817_1920.jpg", + "Hyundai-ix35-5505817_19201.jpg", + "Hyundai-ix35-5505817_19202.jpg" + ], + "Hyundai Kona": [ + "Hyundai-Kona-electric-4964667_1920.jpg", + "Hyundai-Kona-electric-4964667_19201.jpg", + "Hyundai-Kona-electric-4964667_19202.jpg" + ], + "Kia Ceed red": [ + "Kia-Ceed-car-3305685_1280.jpg", + "Kia-ceed-car-3305686_1920.jpg", + "Kia-Ceed-car-3305699_1280.jpg" + ], + "Kia Ceed white": [ + "Kia-Ceed-car-6097887_1920.jpg", + "Kia-Ceed-car-6097887_19201.jpg", + "Kia-Ceed-car-6097887_19202.jpg" + ], + "Kia EV6 gray": [ + "KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash.jpg", + "KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash1.jpg", + "KIA-EV6-hyundai-motor-group-gKODwMitO-c-unsplash2.jpg" + ], + "Kia EV6 red": [ + "KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash.jpg", + "KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash1.jpg", + "KIA-EV6-hyundai-motor-group-jdjzmbw4GPg-unsplash2.jpg" + ], + "Kia EV6 GT": [ + "KIA-EV6-GT-line edited hyundai-motor-group-ErBFxMkJpKk-unsplash-detail1.jpg", + "KIA-EV6-GT-line edited hyundai-motor-group-ErBFxMkJpKk-unsplash.jpg", + "KIA-EV6-GT-line edited hyundai-motor-group-ErBFxMkJpKk-unsplash2.jpg" + ], + "Kia Soul": [ + "Kia-Soul-car-2441815_1920.jpg", + "Kia-Soul-car-2441815_19201.jpg", + "Kia-Soul-car-2441815_19202.jpg" + ], + "Kia Sportage": [ + "Kia-Sportage-2382086_1920.jpg", + "Kia-Sportage-2382086_19201.jpg", + "Kia-Sportage-2382086_19202.jpg" + ], + "Mazda 3": [ + "mazda-3-7498005_1920.jpg", + "mazda-3-7498005_19201.jpg", + "mazda-3-7498005_19202.jpg" + ], + "Mazda 6": [ + "3-1-Mazda-6-car-6122178_1920.jpg", + "3-2-Mazda-6-car-6122177_1920.jpg", + "3-3-Mazda-6-car-6122177_1920.jpg" + ], + "Mazda MX-5": [ + "2-1-Mazda-MX-5-cabriolet-3627312_1920.jpg", + "2-2-Mazda-MX-5-cabriolet-3708152_1920.jpg", + "2-3-Mazda-MX-5-cabriolet-3708152_1920.jpg" + ], + "Tesla 3 red": [ + "Tesla-3-car-8607713_1920.jpg", + "Tesla-3-car-8607713_19201.jpg", + "Tesla-3-car-8607713_19202.jpg" + ], + "Tesla 3 white 1": [ + "tesla-3-5937063_1920.jpg", + "tesla-3-5937063_19201.jpg", + "tesla-3-5937063_19202.jpg" + ], + "Tesla 3 white 2": [ + "Tesla-3-charlie-deets-AkgALppFIwo-unsplash.jpg", + "Tesla-3-charlie-deets-AkgALppFIwo-unsplash1.jpg", + "Tesla-3-charlie-deets-AkgALppFIwo-unsplash2.jpg" + ], + "Tesla 3 white 3": [ + "Tesla-3-i-m-zion-A-JEMot0hWs-unsplash.jpg", + "Tesla-3-i-m-zion-A-JEMot0hWs-unsplash1.jpg", + "Tesla-3-i-m-zion-A-JEMot0hWs-unsplash2.jpg" + ], + "Toyota Corolla": [ + "toyota-corolla-347288_1920.jpg", + "toyota-corolla-347288_19201.jpg", + "toyota-corolla-347288_19202.jpg" + ], + "Toyota RAV4 1": [ + "Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash.jpg", + "Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash1.jpg", + "Toyota-RAV4-gino-marcelo-hernandez-sanchez-MN0-x2hDNrc-unsplash2.jpg" + ], + "Toyota RAV4 2": [ + "Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash.jpg", + "Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash1.jpg", + "Toyota-RAV4-krish-parmar-PmSwFm4Lw1c-unsplash2.jpg" + ], + "Toyota RAV4 3": [ + "Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash.jpg", + "Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash1.jpg", + "Toyota-RAV4-stephen-andrews-28Lmg9YaTFY-unsplash2.jpg" + ], + "Toyota Tundra": [ + "toyota-tundra-1241658_1920.jpg", + "toyota-tundra-1241658_19201.jpg", + "toyota-tundra-1241658_19202.jpg" + ], + "VW Caddy 1": [ + "VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash.jpg", + "VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash1.jpg", + "VW_Caddy-ollie-walls-jDo2IZm-uFc-unsplash2.jpg" + ], + "VW Caddy 2": [ + "VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-2.jpg", + "VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-21.jpg", + "VW-Caddy-daniil-lyusov-fesux3IvcVo-unsplash-22.jpg" + ], + "VW Golf": [ + "vw-Golf-4332807_1280.jpg", + "vw-Golf-4332807_12801.jpg", + "VW-Golf-car-5671331_1280.jpg" + ], + "VW Passat black": [ + "VW-passat-768159_1280.jpg", + "VW-passat-768159_12801.jpg", + "VW-passat-768159_12802.jpg" + ], + "VW Passat gray": [ + "VW-Passat-car-866764_1280.jpg", + "VW-Passat-car-866769_1280.jpg", + "VW-Passat-car-866769_12801.jpg" + ], + "VW Polo": [ + "VW-Polo-pexels-hellojoshwithers-16625624.jpg", + "VW-Polo-pexels-hellojoshwithers-166256241.jpg", + "VW-Polo-pexels-hellojoshwithers-166256242.jpg" + ], + "VW Touareg 1": [ + "4-1-VW-Touareg-automobile-4061855_1920.jpg", + "4-2-VW-Touareg-338895_1920.jpg", + "4-3-VW-Touareg-automobile-4061855_1920.jpg" + ], + "VW Touareg 2": [ + "5-1-VW-Touareg-pexels-ardit-mbrati-216809103-16646414.jpg", + "5-2-VW-Touareg-pexels-ardit-mbrati-216809103-16646416.jpg", + "5-3-VW-Touareg-pexels-ardit-mbrati-216809103-16646412.jpg" + ] +} diff --git a/projects/fleet-management-grid/src/assets/car_photo_manifest.json b/projects/fleet-management-grid/src/assets/car_photo_manifest.json new file mode 100644 index 0000000..b3d3e80 --- /dev/null +++ b/projects/fleet-management-grid/src/assets/car_photo_manifest.json @@ -0,0 +1,102 @@ +[ + { + "id": "A00101", + "folder": "Ford Focus dark gray" + }, + { + "id": "A00102", + "folder": "Ford Focus blue" + }, + { + "id": "A00103", + "folder": "VW Passat black" + }, + { + "id": "A00104", + "folder": "VW Passat gray" + }, + { + "id": "A00105", + "folder": "VW Golf" + }, + { + "id": "A00106", + "folder": "Kia Ceed white" + }, + { + "id": "A00107", + "folder": "Honda Civic" + }, + { + "id": "A00108", + "folder": "Toyota Corolla" + }, + { + "id": "A00109", + "folder": "Mazda 3" + }, + { + "id": "A00110", + "folder": "Ford Mustang red" + }, + { + "id": "A00111", + "folder": "Toyota RAV4 1" + }, + { + "id": "A00112", + "folder": "Toyota RAV4 2" + }, + { + "id": "A00113", + "folder": "Ford F-150 blue" + }, + { + "id": "A00114", + "folder": "Ford F-150 red" + }, + { + "id": "A00115", + "folder": "Hyundai Kona" + }, + { + "id": "A00116", + "folder": "Hyundai ix35" + }, + { + "id": "A00117", + "folder": "Kia Ceed red" + }, + { + "id": "A00118", + "folder": "Ford Mustang blue" + }, + { + "id": "A00119", + "folder": "Kia EV6 gray" + }, + { + "id": "A00120", + "folder": "Tesla 3 red" + }, + { + "id": "A00121", + "folder": "Kia EV6 red" + }, + { + "id": "A00122", + "folder": "Mazda 6" + }, + { + "id": "A00123", + "folder": "Toyota Tundra" + }, + { + "id": "A00124", + "folder": "VW Touareg 1" + }, + { + "id": "A00125", + "folder": "Kia Sportage" + } +] diff --git a/projects/fleet-management-grid/src/assets/data/cost.json b/projects/fleet-management-grid/src/assets/data/cost.json new file mode 100644 index 0000000..a7dea82 --- /dev/null +++ b/projects/fleet-management-grid/src/assets/data/cost.json @@ -0,0 +1,5234 @@ +[ + { + "vehicleId": "A00101", + "costPerType": { + "ytd": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 52, + "category": "Fuel", + "summary": "Fuel: 52%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 53, + "category": "Fuel", + "summary": "Fuel: 53%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + } + ], + "'2023'": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "'2022'": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + } + ], + "'2021'": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 18 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + } + ], + "'2020'": [ + { + "quarter": "Q1", + "costPerMeter": 8 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + } + ] + }, + "fuelCostsPerMonth": [ + + { + "month": "Jan", + "cost": 62 + }, + { + "month": "Feb", + "cost": 76 + }, + { + "month": "Mar", + "cost": 146 + }, + { + "month": "Apr", + "cost": 240 + }, + { + "month": "May", + "cost": 265 + }, + { + "month": "Jun", + "cost": 275 + }, + { + "month": "Jul", + "cost": 300 + }, + { + "month": "Aug", + "cost": 230 + }, + { + "month": "Sep", + "cost": 265 + }, + { + "month": "Oct", + "cost": 287 + }, + { + "month": "Nov", + "cost": 310 + }, + { + "month": "Dec", + "cost": 295 + } + ] + }, + { + "vehicleId": "A00102", + "costPerType": { + "ytd": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 52, + "category": "Fuel", + "summary": "Fuel: 52%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 53, + "category": "Fuel", + "summary": "Fuel: 53%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + } + ], + "'2023'": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 55 + } + ], + "'2022'": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ], + "'2021'": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 18 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + }, + { + "quarter": "Q4", + "costPerMeter": 42 + } + ], + "'2020'": [ + { + "quarter": "Q1", + "costPerMeter": 8 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 62 + }, + { + "month": "Feb", + "cost": 76 + }, + { + "month": "Mar", + "cost": 146 + }, + { + "month": "Apr", + "cost": 240 + }, + { + "month": "May", + "cost": 265 + }, + { + "month": "Jun", + "cost": 275 + }, + { + "month": "Jul", + "cost": 300 + }, + { + "month": "Aug", + "cost": 230 + }, + { + "month": "Sep", + "cost": 265 + }, + { + "month": "Oct", + "cost": 287 + }, + { + "month": "Nov", + "cost": 310 + }, + { + "month": "Dec", + "cost": 295 + } + ] + }, + { + "vehicleId": "A00103", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 59, + "category": "Fuel", + "summary": "Fuel: 59%" + }, + { + "value": 21, + "category": "Maintenance", + "summary": "Maintenance: 21%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 60 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 54 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 55 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 75 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 260 + }, + { + "month": "May", + "cost": 280 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 300 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00104", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 56 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 13 + }, + { + "quarter": "Q2", + "costPerMeter": 19 + }, + { + "quarter": "Q3", + "costPerMeter": 42 + }, + { + "quarter": "Q4", + "costPerMeter": 45 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ] + }, + "fuelCostsPerMonth": [ + + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 85 + }, + { + "month": "Mar", + "cost": 140 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 280 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 260 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00105", + "costPerType": { + "ytd": [ + { + "value": 62, + "category": "Fuel", + "summary": "Fuel: 62%" + }, + { + "value": 18, + "category": "Maintenance", + "summary": "Maintenance: 18%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 54, + "category": "Fuel", + "summary": "Fuel: 54%" + }, + { + "value": 26, + "category": "Maintenance", + "summary": "Maintenance: 26%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 56, + "category": "Fuel", + "summary": "Fuel: 56%" + }, + { + "value": 24, + "category": "Maintenance", + "summary": "Maintenance: 24%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 29 + }, + { + "quarter": "Q3", + "costPerMeter": 53 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 49 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 19 + }, + { + "quarter": "Q2", + "costPerMeter": 23 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 52 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 41 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 11 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 78 + }, + { + "month": "Feb", + "cost": 92 + }, + { + "month": "Mar", + "cost": 155 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 268 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 320 + }, + { + "month": "Aug", + "cost": 260 + }, + { + "month": "Sep", + "cost": 275 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 330 + }, + { + "month": "Dec", + "cost": 315 + } + ] + }, + { + "vehicleId": "A00106", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "6months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "12months": [ + { + "value": 56, + "category": "Fuel", + "summary": "Fuel: 56%" + }, + { + "value": 29, + "category": "Maintenance", + "summary": "Maintenance: 29%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 60 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 62 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 45 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 42 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 65 + }, + { + "month": "Feb", + "cost": 78 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 280 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 235 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 290 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 305 + } + ] + }, + { + "vehicleId": "A00107", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 29 + }, + { + "quarter": "Q3", + "costPerMeter": 57 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 27 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 11 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 43 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 23 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 65 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 275 + }, + { + "month": "Jun", + "cost": 285 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00108", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 29 + }, + { + "quarter": "Q3", + "costPerMeter": 57 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 27 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 11 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 43 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 23 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 65 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 275 + }, + { + "month": "Jun", + "cost": 285 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00109", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 60 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 49 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 52 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 75 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 305 + }, + { + "month": "Aug", + "cost": 250 + }, + { + "month": "Sep", + "cost": 275 + }, + { + "month": "Oct", + "cost": 300 + }, + { + "month": "Nov", + "cost": 315 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00110", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "3months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 32, + "category": "Maintenance", + "summary": "Maintenance: 32%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 33, + "category": "Maintenance", + "summary": "Maintenance: 33%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "12months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 35, + "category": "Maintenance", + "summary": "Maintenance: 35%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 60 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 49 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 52 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 75 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 305 + }, + { + "month": "Aug", + "cost": 250 + }, + { + "month": "Sep", + "cost": 275 + }, + { + "month": "Oct", + "cost": 300 + }, + { + "month": "Nov", + "cost": 315 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00111", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "3months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 32, + "category": "Maintenance", + "summary": "Maintenance: 32%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "6months": [ + { + "value": 56, + "category": "Fuel", + "summary": "Fuel: 56%" + }, + { + "value": 34, + "category": "Maintenance", + "summary": "Maintenance: 34%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "12months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 35, + "category": "Maintenance", + "summary": "Maintenance: 35%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 54 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + }, + { + "quarter": "Q4", + "costPerMeter": 45 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 260 + }, + { + "month": "Sep", + "cost": 280 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 305 + } + ] + }, + { + "vehicleId": "A00112", + "costPerType": { + "ytd": [ + { + "value": 48, + "category": "Fuel", + "summary": "Fuel: 48%" + }, + { + "value": 32, + "category": "Maintenance", + "summary": "Maintenance: 32%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 45, + "category": "Fuel", + "summary": "Fuel: 45%" + }, + { + "value": 35, + "category": "Maintenance", + "summary": "Maintenance: 35%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 49, + "category": "Fuel", + "summary": "Fuel: 49%" + }, + { + "value": 31, + "category": "Maintenance", + "summary": "Maintenance: 31%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 55 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 19 + }, + { + "quarter": "Q3", + "costPerMeter": 38 + }, + { + "quarter": "Q4", + "costPerMeter": 46 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 42 + }, + { + "quarter": "Q4", + "costPerMeter": 49 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 72 + }, + { + "month": "Feb", + "cost": 84 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 230 + }, + { + "month": "May", + "cost": 245 + }, + { + "month": "Jun", + "cost": 265 + }, + { + "month": "Jul", + "cost": 290 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 255 + }, + { + "month": "Oct", + "cost": 270 + }, + { + "month": "Nov", + "cost": 290 + }, + { + "month": "Dec", + "cost": 280 + } + ] + }, + { + "vehicleId": "A00113", + "costPerType": { + "ytd": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 52, + "category": "Fuel", + "summary": "Fuel: 52%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 53, + "category": "Fuel", + "summary": "Fuel: 53%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + } + ], + "'2023'": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "'2022'": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + } + ], + "'2021'": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 18 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + } + ], + "'2020'": [ + { + "quarter": "Q1", + "costPerMeter": 8 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + } + ] + }, + "fuelCostsPerMonth": [ + + { + "month": "Jan", + "cost": 62 + }, + { + "month": "Feb", + "cost": 76 + }, + { + "month": "Mar", + "cost": 146 + }, + { + "month": "Apr", + "cost": 240 + }, + { + "month": "May", + "cost": 265 + }, + { + "month": "Jun", + "cost": 275 + }, + { + "month": "Jul", + "cost": 300 + }, + { + "month": "Aug", + "cost": 230 + }, + { + "month": "Sep", + "cost": 265 + }, + { + "month": "Oct", + "cost": 287 + }, + { + "month": "Nov", + "cost": 310 + }, + { + "month": "Dec", + "cost": 295 + } + ] + }, + { + "vehicleId": "A00114", + "costPerType": { + "ytd": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 52, + "category": "Fuel", + "summary": "Fuel: 52%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 53, + "category": "Fuel", + "summary": "Fuel: 53%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + } + ], + "'2023'": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 55 + } + ], + "'2022'": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ], + "'2021'": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 18 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + }, + { + "quarter": "Q4", + "costPerMeter": 42 + } + ], + "'2020'": [ + { + "quarter": "Q1", + "costPerMeter": 8 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 62 + }, + { + "month": "Feb", + "cost": 76 + }, + { + "month": "Mar", + "cost": 146 + }, + { + "month": "Apr", + "cost": 240 + }, + { + "month": "May", + "cost": 265 + }, + { + "month": "Jun", + "cost": 275 + }, + { + "month": "Jul", + "cost": 300 + }, + { + "month": "Aug", + "cost": 230 + }, + { + "month": "Sep", + "cost": 265 + }, + { + "month": "Oct", + "cost": 287 + }, + { + "month": "Nov", + "cost": 310 + }, + { + "month": "Dec", + "cost": 295 + } + ] + }, + { + "vehicleId": "A00115", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 59, + "category": "Fuel", + "summary": "Fuel: 59%" + }, + { + "value": 21, + "category": "Maintenance", + "summary": "Maintenance: 21%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 60 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 54 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 55 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 75 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 260 + }, + { + "month": "May", + "cost": 280 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 300 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00116", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 56 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 13 + }, + { + "quarter": "Q2", + "costPerMeter": 19 + }, + { + "quarter": "Q3", + "costPerMeter": 42 + }, + { + "quarter": "Q4", + "costPerMeter": 45 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ] + }, + "fuelCostsPerMonth": [ + + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 85 + }, + { + "month": "Mar", + "cost": 140 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 280 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 260 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00117", + "costPerType": { + "ytd": [ + { + "value": 62, + "category": "Fuel", + "summary": "Fuel: 62%" + }, + { + "value": 18, + "category": "Maintenance", + "summary": "Maintenance: 18%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 54, + "category": "Fuel", + "summary": "Fuel: 54%" + }, + { + "value": 26, + "category": "Maintenance", + "summary": "Maintenance: 26%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 56, + "category": "Fuel", + "summary": "Fuel: 56%" + }, + { + "value": 24, + "category": "Maintenance", + "summary": "Maintenance: 24%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 29 + }, + { + "quarter": "Q3", + "costPerMeter": 53 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 49 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 19 + }, + { + "quarter": "Q2", + "costPerMeter": 23 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 52 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 41 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 11 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 78 + }, + { + "month": "Feb", + "cost": 92 + }, + { + "month": "Mar", + "cost": 155 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 268 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 320 + }, + { + "month": "Aug", + "cost": 260 + }, + { + "month": "Sep", + "cost": 275 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 330 + }, + { + "month": "Dec", + "cost": 315 + } + ] + }, + { + "vehicleId": "A00118", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "6months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "12months": [ + { + "value": 56, + "category": "Fuel", + "summary": "Fuel: 56%" + }, + { + "value": 29, + "category": "Maintenance", + "summary": "Maintenance: 29%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 60 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 62 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 45 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 42 + }, + { + "quarter": "Q4", + "costPerMeter": 50 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 65 + }, + { + "month": "Feb", + "cost": 78 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 280 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 235 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 290 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 305 + } + ] + }, + { + "vehicleId": "A00119", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 29 + }, + { + "quarter": "Q3", + "costPerMeter": 57 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 27 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 11 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 43 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 23 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 65 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 275 + }, + { + "month": "Jun", + "cost": 285 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00120", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 20, + "category": "Maintenance", + "summary": "Maintenance: 20%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 23, + "category": "Maintenance", + "summary": "Maintenance: 23%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 22, + "category": "Maintenance", + "summary": "Maintenance: 22%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 29 + }, + { + "quarter": "Q3", + "costPerMeter": 57 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 27 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 16 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 11 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 43 + }, + { + "quarter": "Q4", + "costPerMeter": 48 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 23 + }, + { + "quarter": "Q3", + "costPerMeter": 46 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 65 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 275 + }, + { + "month": "Jun", + "cost": 285 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 270 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00121", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "3months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ], + "12months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 15, + "category": "Other", + "summary": "Other: 15%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 60 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 49 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 52 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 75 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 305 + }, + { + "month": "Aug", + "cost": 250 + }, + { + "month": "Sep", + "cost": 275 + }, + { + "month": "Oct", + "cost": 300 + }, + { + "month": "Nov", + "cost": 315 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00122", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "3months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 32, + "category": "Maintenance", + "summary": "Maintenance: 32%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "6months": [ + { + "value": 57, + "category": "Fuel", + "summary": "Fuel: 57%" + }, + { + "value": 33, + "category": "Maintenance", + "summary": "Maintenance: 33%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "12months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 35, + "category": "Maintenance", + "summary": "Maintenance: 35%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 30 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + }, + { + "quarter": "Q4", + "costPerMeter": 60 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 49 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 24 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 52 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 75 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 245 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 305 + }, + { + "month": "Aug", + "cost": 250 + }, + { + "month": "Sep", + "cost": 275 + }, + { + "month": "Oct", + "cost": 300 + }, + { + "month": "Nov", + "cost": 315 + }, + { + "month": "Dec", + "cost": 310 + } + ] + }, + { + "vehicleId": "A00123", + "costPerType": { + "ytd": [ + { + "value": 60, + "category": "Fuel", + "summary": "Fuel: 60%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "3months": [ + { + "value": 58, + "category": "Fuel", + "summary": "Fuel: 58%" + }, + { + "value": 32, + "category": "Maintenance", + "summary": "Maintenance: 32%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "6months": [ + { + "value": 56, + "category": "Fuel", + "summary": "Fuel: 56%" + }, + { + "value": 34, + "category": "Maintenance", + "summary": "Maintenance: 34%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ], + "12months": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 35, + "category": "Maintenance", + "summary": "Maintenance: 35%" + }, + { + "value": 10, + "category": "Other", + "summary": "Other: 10%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 52 + }, + { + "quarter": "Q4", + "costPerMeter": 58 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + }, + { + "quarter": "Q4", + "costPerMeter": 54 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + }, + { + "quarter": "Q4", + "costPerMeter": 45 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 9 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 53 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 70 + }, + { + "month": "Feb", + "cost": 80 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 250 + }, + { + "month": "May", + "cost": 270 + }, + { + "month": "Jun", + "cost": 290 + }, + { + "month": "Jul", + "cost": 310 + }, + { + "month": "Aug", + "cost": 260 + }, + { + "month": "Sep", + "cost": 280 + }, + { + "month": "Oct", + "cost": 295 + }, + { + "month": "Nov", + "cost": 320 + }, + { + "month": "Dec", + "cost": 305 + } + ] + }, + { + "vehicleId": "A00124", + "costPerType": { + "ytd": [ + { + "value": 48, + "category": "Fuel", + "summary": "Fuel: 48%" + }, + { + "value": 32, + "category": "Maintenance", + "summary": "Maintenance: 32%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 45, + "category": "Fuel", + "summary": "Fuel: 45%" + }, + { + "value": 35, + "category": "Maintenance", + "summary": "Maintenance: 35%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 49, + "category": "Fuel", + "summary": "Fuel: 49%" + }, + { + "value": 31, + "category": "Maintenance", + "summary": "Maintenance: 31%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "2023": [ + { + "quarter": "Q1", + "costPerMeter": 14 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 47 + }, + { + "quarter": "Q4", + "costPerMeter": 55 + } + ], + "2022": [ + { + "quarter": "Q1", + "costPerMeter": 18 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 44 + }, + { + "quarter": "Q4", + "costPerMeter": 51 + } + ], + "2021": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 19 + }, + { + "quarter": "Q3", + "costPerMeter": 38 + }, + { + "quarter": "Q4", + "costPerMeter": 46 + } + ], + "2020": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 21 + }, + { + "quarter": "Q3", + "costPerMeter": 42 + }, + { + "quarter": "Q4", + "costPerMeter": 49 + } + ] + }, + "fuelCostsPerMonth": [ + { + "month": "Jan", + "cost": 72 + }, + { + "month": "Feb", + "cost": 84 + }, + { + "month": "Mar", + "cost": 150 + }, + { + "month": "Apr", + "cost": 230 + }, + { + "month": "May", + "cost": 245 + }, + { + "month": "Jun", + "cost": 265 + }, + { + "month": "Jul", + "cost": 290 + }, + { + "month": "Aug", + "cost": 240 + }, + { + "month": "Sep", + "cost": 255 + }, + { + "month": "Oct", + "cost": 270 + }, + { + "month": "Nov", + "cost": 290 + }, + { + "month": "Dec", + "cost": 280 + } + ] + }, + { + "vehicleId": "A00125", + "costPerType": { + "ytd": [ + { + "value": 55, + "category": "Fuel", + "summary": "Fuel: 55%" + }, + { + "value": 25, + "category": "Maintenance", + "summary": "Maintenance: 25%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "3months": [ + { + "value": 50, + "category": "Fuel", + "summary": "Fuel: 50%" + }, + { + "value": 30, + "category": "Maintenance", + "summary": "Maintenance: 30%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "6months": [ + { + "value": 52, + "category": "Fuel", + "summary": "Fuel: 52%" + }, + { + "value": 28, + "category": "Maintenance", + "summary": "Maintenance: 28%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ], + "12months": [ + { + "value": 53, + "category": "Fuel", + "summary": "Fuel: 53%" + }, + { + "value": 27, + "category": "Maintenance", + "summary": "Maintenance: 27%" + }, + { + "value": 20, + "category": "Other", + "summary": "Other: 20%" + } + ] + }, + "costsPerMeterPerQuarter": { + "ytd": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 28 + }, + { + "quarter": "Q3", + "costPerMeter": 55 + } + ], + "'2023'": [ + { + "quarter": "Q1", + "costPerMeter": 12 + }, + { + "quarter": "Q2", + "costPerMeter": 25 + }, + { + "quarter": "Q3", + "costPerMeter": 50 + } + ], + "'2022'": [ + { + "quarter": "Q1", + "costPerMeter": 15 + }, + { + "quarter": "Q2", + "costPerMeter": 20 + }, + { + "quarter": "Q3", + "costPerMeter": 45 + } + ], + "'2021'": [ + { + "quarter": "Q1", + "costPerMeter": 10 + }, + { + "quarter": "Q2", + "costPerMeter": 18 + }, + { + "quarter": "Q3", + "costPerMeter": 40 + } + ], + "'2020'": [ + { + "quarter": "Q1", + "costPerMeter": 8 + }, + { + "quarter": "Q2", + "costPerMeter": 22 + }, + { + "quarter": "Q3", + "costPerMeter": 48 + } + ] + }, + "fuelCostsPerMonth": [ + + { + "month": "Jan", + "cost": 62 + }, + { + "month": "Feb", + "cost": 76 + }, + { + "month": "Mar", + "cost": 146 + }, + { + "month": "Apr", + "cost": 240 + }, + { + "month": "May", + "cost": 265 + }, + { + "month": "Jun", + "cost": 275 + }, + { + "month": "Jul", + "cost": 300 + }, + { + "month": "Aug", + "cost": 230 + }, + { + "month": "Sep", + "cost": 265 + }, + { + "month": "Oct", + "cost": 287 + }, + { + "month": "Nov", + "cost": 310 + }, + { + "month": "Dec", + "cost": 295 + } + ] + } +] diff --git a/projects/fleet-management-grid/src/assets/data/drivers.json b/projects/fleet-management-grid/src/assets/data/drivers.json new file mode 100644 index 0000000..33c558a --- /dev/null +++ b/projects/fleet-management-grid/src/assets/data/drivers.json @@ -0,0 +1,407 @@ +[ + { + "name": "John Davidson", + "license": "JD-12345", + "address": "123 Main St", + "city": "Boston, MA", + "phone": "(555) 123-4567", + "email": "john.davidson@example.com", + "photo": "men/1" + }, + { + "name": "Peter Jackson", + "license": "PJ-67890", + "address": "456 Elm St", + "city": "Cranbury, NJ", + "phone": "(555) 987-6543", + "email": "peter.jackson@example.com", + "photo": "men/2" + }, + { + "name": "J.J. Swan", + "license": "JS-23456", + "address": "789 Oak St", + "city": "Boston, MA", + "phone": "(555) 234-5678", + "email": "jj.swan@example.com", + "photo": "men/3" + }, + { + "name": "Mike Sousan", + "license": "MS-54321", + "address": "321 Oak St", + "city": "Hartford, CT", + "phone": "(555) 654-3210", + "email": "mike.sousan@example.com", + "photo": "men/4" + }, + { + "name": "Alex Robinson", + "license": "AR-12345", + "address": "321 Oak St", + "city": "Newark, NJ", + "phone": "(555) 987-6543", + "email": "alex.robinson@sample.com", + "photo": "men/5" + }, + { + "name": "Liam Carter", + "license": "LC-98765", + "address": "456 Elm St", + "city": "Camden, NJ", + "phone": "(555) 222-3344", + "email": "liam.carter@sample.com", + "photo": "men/6" + }, + { + "name": "Noah Adams", + "license": "NA-23456", + "address": "789 Maple St", + "city": "Trenton, NJ", + "phone": "(555) 654-3210", + "email": "noah.adams@sample.com", + "photo": "men/7" + }, + { + "name": "Ethan Brown", + "license": "EB-33333", + "address": "303 Cedar St", + "city": "Cranbury, NJ", + "phone": "(555) 345-3333", + "email": "ethan.brown@example.com", + "photo": "men/8" + }, + { + "name": "David Miller", + "license": "DM-00123", + "address": "12 Maple Lane", + "city": "Newark, NJ", + "phone": "(555) 345-9876", + "email": "david.miller@example.com", + "photo": "men/9" + }, + { + "name": "Ethan Johnson", + "license": "EJ-34567", + "address": "56 Birch Rd", + "city": "New York, NY", + "phone": "(555) 432-8765", + "email": "ethan.johnson@example.com", + "photo": "men/10" + }, + { + "name": "Michael Carter", + "license": "MC-76543", + "address": "123 Oak St", + "city": "Albany, NY", + "phone": "(555) 678-1234", + "email": "michael.carter@example.com", + "photo": "men/11" + }, + { + "name": "Ethan Carter", + "license": "EC-33456", + "address": "333 Birch St", + "city": "Denver, CO", + "phone": "(555) 345-6789", + "email": "ethan.carter@example.com", + "photo": "men/12" + }, + { + "name": "Liam Johnson", + "license": "LJ-67890", + "address": "456 Oak St", + "city": "Cranbury, NJ", + "phone": "(555) 123-4567", + "email": "liam.johnson@example.com", + "photo": "men/13" + }, + { + "name": "Chris Taylor", + "license": "CT-78901", + "address": "45 Elm St", + "city": "Chicago, IL", + "phone": "(555) 987-6541", + "email": "chris.taylor@example.com", + "photo": "men/14" + }, + { + "name": "Chris Taylor", + "license": "CT-78901", + "address": "45 Elm St", + "city": "Chicago, IL", + "phone": "(555) 987-6541", + "email": "chris.taylor@example.com", + "photo": "men/15" + }, + { + "name": "James Carter", + "license": "JC-98765", + "address": "12 Main St", + "city": "New York, NY", + "phone": "(555) 987-1234", + "email": "james.carter@example.com", + "photo": "men/16" + }, + { + "name": "Michael Grant", + "license": "MG-54321", + "address": "789 Cedar St", + "city": "Buffalo, NY", + "phone": "(555) 432-5678", + "email": "michael.grant@example.com", + "photo": "men/17" + }, + { + "name": "James Brown", + "license": "JB-98765", + "address": "321 Pine St", + "city": "Trenton, NJ", + "phone": "(555) 345-6789", + "email": "james.brown@example.com", + "photo": "men/18" + }, + { + "name": "Liam Brown", + "license": "LB-98765", + "address": "555 Chestnut St", + "city": "Austin, TX", + "phone": "(555) 567-8901", + "email": "liam.brown@example.com", + "photo": "men/19" + }, + { + "name": "James Smith", + "license": "JS-45678", + "address": "321 Pine St", + "city": "Cranbury, NJ", + "phone": "(555) 345-6789", + "email": "james.smith@example.com", + "photo": "men/20" + }, + { + "name": "Michael Green", + "license": "MG-12345", + "address": "456 Oak St", + "city": "Cleveland, OH", + "phone": "(555) 321-0987", + "email": "michael.green@example.com", + "photo": "men/21" + }, + { + "name": "Jonathan Smith", + "license": "JS-98765", + "address": "123 Elm St", + "city": "Albany, NY", + "phone": "(555) 567-8901", + "email": "jonathan.smith@example.com", + "photo": "men/22" + }, + { + "name": "Alex Johnson", + "license": "AJ-11111", + "address": "101 Elm St", + "city": "New York, NY", + "phone": "(555) 123-1111", + "email": "alex.johnson@example.com", + "photo": "men/23" + }, + { + "name": "Michael Brown", + "license": "MB-12345", + "address": "56 Cedar St", + "city": "Boston, MA", + "phone": "(555) 678-4321", + "email": "michael.brown@example.com", + "photo": "men/24" + }, + { + "name": "Natalie Simson", + "license": "NS-98765", + "address": "321 Pine St", + "city": "Cranbury, NJ", + "phone": "(555) 345-6789", + "email": "natalie.simson@example.com", + "photo": "women/1" + }, + { + "name": "Sophia Moore", + "license": "SM-54321", + "address": "654 Willow St", + "city": "Buffalo, NY", + "phone": "(555) 456-7890", + "email": "sophia.moore@sample.com", + "photo": "women/3" + }, + { + "name": "Emily Green", + "license": "EG-67890", + "address": "123 Birch St", + "city": "Hoboken, NJ", + "phone": "(555) 123-4567", + "email": "emily.green@sample.com", + "photo": "women/2" + }, + { + "name": "Emily Davis", + "license": "ED-54321", + "address": "789 Maple St", + "city": "Buffalo, NY", + "phone": "(555) 234-5678", + "email": "emily.davis@example.com", + "photo": "women/4" + }, + { + "name": "Olivia Martinez", + "license": "OM-65432", + "address": "987 Willow St", + "city": "Hoboken, NJ", + "phone": "(555) 567-8901", + "email": "olivia.martinez@example.com", + "photo": "women/5" + }, + { + "name": "Rachel Adams", + "license": "RA-45678", + "address": "123 Maple St", + "city": "Detroit, MI", + "phone": "(555) 654-3210", + "email": "rachel.adams@example.com", + "photo": "women/6" + }, + { + "name": "Sarah Johnson", + "license": "SJ-67890", + "address": "789 Cedar St", + "city": "Pittsburgh, PA", + "phone": "(555) 456-7890", + "email": "sarah.johnson@example.com", + "photo": "women/7" + }, + { + "name": "Sophia Brown", + "license": "SB-23456", + "address": "78 Oakwood Ave", + "city": "Boston, MA", + "phone": "(555) 678-1234", + "email": "sophia.brown@example.com", + "photo": "women/8" + }, + { + "name": "Emma White", + "license": "EW-45678", + "address": "90 Pine St", + "city": "Hartford, CT", + "phone": "(555) 876-5432", + "email": "emma.white@example.com", + "photo": "women/9" + }, + { + "name": "Sophia Loren", + "license": "SL-98765", + "address": "987 Maple St", + "city": "Albany, NY", + "phone": "(555) 876-5432", + "email": "sophia.loren@example.com", + "photo": "women/10" + }, + { + "name": "Emily Taylor", + "license": "ET-67890", + "address": "456 Maple St", + "city": "Newark, NJ", + "phone": "(555) 456-7890", + "email": "emily.taylor@example.com", + "photo": "women/11" + }, + { + "name": "Alice Johnson", + "license": "AJ-11234", + "address": "222 Maple St", + "city": "Seattle, WA", + "phone": "(555) 678-1234", + "email": "alice.johnson@example.com", + "photo": "women/12" + }, + { + "name": "Emily Carter", + "license": "EC-12345", + "address": "123 Walnut St", + "city": "New York, NY", + "phone": "(555) 678-9012", + "email": "emily.carter@example.com", + "photo": "women/13" + }, + { + "name": "Sarah Williams", + "license": "SW-12345", + "address": "456 Maple Ave", + "city": "Cranbury, NJ", + "phone": "(555) 876-5432", + "email": "sarah.williams@example.com", + "photo": "women/14" + }, + { + "name": "Sarah Taylor", + "license": "ST-87654", + "address": "456 Birch St", + "city": "Newark, NJ", + "phone": "(555) 789-4561", + "email": "sarah.taylor@example.com", + "photo": "women/15" + }, + { + "name": "Sophia Martinez", + "license": "SM-76543", + "address": "444 Walnut St", + "city": "San Francisco, CA", + "phone": "(555) 456-7891", + "email": "sophia.martinez@example.com", + "photo": "women/16" + }, + { + "name": "Emma Clarkson", + "license": "EC-45678", + "address": "321 Birch Rd", + "city": "Boston, MA", + "phone": "(555) 678-1234", + "email": "emma.clarkson@example.com", + "photo": "women/17" + }, + { + "name": "Maria Gonzalez", + "license": "MG-22222", + "address": "202 Pine St", + "city": "Philadelphia, PA", + "phone": "(555) 234-2222", + "email": "maria.gonzalez@example.com", + "photo": "women/18" + }, + { + "name": "Sophia Wilson", + "license": "SW-67890", + "address": "456 Pine St", + "city": "Camden, NJ", + "phone": "(555) 987-6543", + "email": "sophia.wilson@example.com", + "photo": "women/19" + }, + { + "name": "Sarah Miller", + "license": "SM-54321", + "address": "789 Oak Ave", + "city": "Hartford, CT", + "phone": "(555) 345-6789", + "email": "sarah.miller@example.com", + "photo": "women/20" + }, + { + "name": "Emily White", + "license": "EW-67890", + "address": "123 Maple Ln", + "city": "Newark, NJ", + "phone": "(555) 432-9876", + "email": "emily.white@example.com", + "photo": "women/21" + } +] diff --git a/projects/fleet-management-grid/src/assets/data/maintenance.json b/projects/fleet-management-grid/src/assets/data/maintenance.json new file mode 100644 index 0000000..2f941bf --- /dev/null +++ b/projects/fleet-management-grid/src/assets/data/maintenance.json @@ -0,0 +1,1127 @@ +[ + { + "vehicleId": "A00101", + "maintenance": [ + { + "id": 1, + "event": "Oil Change", + "date": "2024-10-31", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented oil change with 5W-20." + }, + { + "id": 2, + "event": "Tire Replacement", + "date": "2024-10-30", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Installed new front left tire, including brand and mileage." + }, + { + "id": 3, + "event": "Brake Inspection", + "date": "2024-10-01", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Checked and serviced brake system." + }, + { + "id": 4, + "event": "General Maintenance", + "date": "2024-08-20", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Comprehensive vehicle checkup, including fluids and filters." + }, + { + "id": 5, + "event": "Alignment and Suspension", + "date": "2024-08-19", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented wheel alignment and suspension service." + } + ] + }, + { + "vehicleId": "A00102", + "maintenance": [ + { + "id": 1, + "event": "Oil Change", + "date": "2024-10-31", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented oil change with 5W-20." + }, + { + "id": 2, + "event": "Tire Replacement", + "date": "2024-10-30", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Installed new front left tire, including brand and mileage." + }, + { + "id": 3, + "event": "Brake Fluid Refill", + "date": "2024-09-15", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Brake fluid replaced and system flushed." + }, + { + "id": 4, + "event": "Battery Check", + "date": "2024-08-20", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Battery tested and terminals cleaned." + }, + { + "id": 5, + "event": "Air Filter Replacement", + "date": "2024-07-10", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Engine air filter replaced with new OEM part." + } + ] + }, + { + "vehicleId": "A00103", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-10-01", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Replaced car battery with a new one." + }, + { + "id": 2, + "event": "Engine Tuning", + "date": "2024-09-15", + "location": "Hoboken, NJ", + "type": "Regular", + "remarks": "Engine performance tuning and diagnostics." + }, + { + "id": 3, + "event": "Tire Rotation", + "date": "2024-08-05", + "location": "Buffalo, NY", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + }, + { + "id": 4, + "event": "AC System Check", + "date": "2024-07-12", + "location": "Trenton, NJ", + "type": "Incident", + "remarks": "Inspected and refilled AC refrigerant." + }, + { + "id": 5, + "event": "Brake Pad Replacement", + "date": "2024-06-20", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Replaced front and rear brake pads." + } + ] + }, + { + "vehicleId": "A00104", + "maintenance": [ + { + "id": 1, + "event": "Engine Diagnostics", + "date": "2024-09-10", + "location": "Buffalo, NY", + "type": "Incident", + "remarks": "Performed diagnostics on the engine due to irregular performance." + }, + { + "id": 2, + "event": "Transmission Check", + "date": "2024-08-22", + "location": "Albany, NY", + "type": "Regular", + "remarks": "Routine transmission fluid level check and refill." + }, + { + "id": 3, + "event": "Battery Replacement", + "date": "2024-07-30", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Installed a new battery to replace the old one." + }, + { + "id": 4, + "event": "AC Repair", + "date": "2024-07-15", + "location": "Trenton, NJ", + "type": "Incident", + "remarks": "Fixed an issue with the air conditioning system cooling capacity." + }, + { + "id": 5, + "event": "Tire Rotation", + "date": "2024-06-10", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + } + ] + }, + { + "vehicleId": "A00105", + "maintenance": [ + { + "id": 1, + "event": "Engine Tune-Up", + "date": "2024-11-15", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Engine performance optimization and diagnostics." + }, + { + "id": 2, + "event": "Tire Balancing", + "date": "2024-10-22", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Adjusted tire balancing to improve stability." + }, + { + "id": 3, + "event": "Brake Pad Replacement", + "date": "2024-09-30", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Installed new front brake pads." + }, + { + "id": 4, + "event": "Oil Change", + "date": "2024-09-10", + "location": "Trenton, NJ", + "type": "Regular", + "remarks": "Replaced engine oil with 5W-30 grade." + }, + { + "id": 5, + "event": "Battery Replacement", + "date": "2024-08-25", + "location": "Camden, NJ", + "type": "Incident", + "remarks": "Replaced old battery due to starting issues." + } + ] + }, + { + "vehicleId": "A00106", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-12-01", + "location": "Seattle, WA", + "type": "Incident", + "remarks": "Replaced battery with high-performance model." + }, + { + "id": 2, + "event": "Coolant Refill", + "date": "2024-11-15", + "location": "Denver, CO", + "type": "Regular", + "remarks": "Performed coolant system flush and refill." + }, + { + "id": 3, + "event": "Windshield Repair", + "date": "2024-10-30", + "location": "San Francisco, CA", + "type": "Incident", + "remarks": "Repaired small crack on the windshield." + }, + { + "id": 4, + "event": "Air Filter Replacement", + "date": "2024-09-25", + "location": "Austin, TX", + "type": "Regular", + "remarks": "Replaced cabin and engine air filters." + }, + { + "id": 5, + "event": "Transmission Service", + "date": "2024-08-15", + "location": "Dallas, TX", + "type": "Regular", + "remarks": "Serviced transmission and replaced fluid." + } + ] + }, + { + "vehicleId": "A00107", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-01", + "location": "Newark, NJ", + "type": "Incident", + "remarks": "Replaced the car battery with a high-capacity model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-15", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Rotated all four tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Pad Replacement", + "date": "2024-09-20", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Replaced front brake pads due to wear." + }, + { + "id": 4, + "event": "Oil and Filter Change", + "date": "2024-08-10", + "location": "New York, NY", + "type": "Regular", + "remarks": "Changed engine oil and replaced oil filter." + }, + { + "id": 5, + "event": "Coolant Flush", + "date": "2024-07-25", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Performed a coolant flush and replaced with fresh fluid." + } + ] + }, + { + "vehicleId": "A00108", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-01", + "location": "Newark, NJ", + "type": "Incident", + "remarks": "Replaced the car battery with a high-capacity model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-15", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Rotated all four tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Pad Replacement", + "date": "2024-09-20", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Replaced front brake pads due to wear." + }, + { + "id": 4, + "event": "Oil and Filter Change", + "date": "2024-08-10", + "location": "New York, NY", + "type": "Regular", + "remarks": "Changed engine oil and replaced oil filter." + }, + { + "id": 5, + "event": "Coolant Flush", + "date": "2024-07-25", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Performed a coolant flush and replaced with fresh fluid." + } + ] + }, + { + "vehicleId": "A00109", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-03", + "location": "Detroit, MI", + "type": "Incident", + "remarks": "Replaced old battery with a high-performance model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-20", + "location": "Cleveland, OH", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Fluid Replacement", + "date": "2024-09-30", + "location": "Pittsburgh, PA", + "type": "Regular", + "remarks": "Replaced brake fluid as part of regular maintenance." + }, + { + "id": 4, + "event": "Coolant System Flush", + "date": "2024-08-15", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Flushed coolant system and replaced with fresh coolant." + }, + { + "id": 5, + "event": "Engine Oil and Filter Change", + "date": "2024-07-20", + "location": "Chicago, IL", + "type": "Regular", + "remarks": "Performed oil change and replaced engine oil filter." + } + ] + }, + { + "vehicleId": "A00110", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-12", + "location": "Boston, MA", + "type": "Incident", + "remarks": "Replaced the car battery with a high-performance model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-20", + "location": "New York, NY", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Fluid Replacement", + "date": "2024-09-25", + "location": "Hartford, CT", + "type": "Regular", + "remarks": "Replaced brake fluid as part of scheduled maintenance." + }, + { + "id": 4, + "event": "Coolant System Flush", + "date": "2024-08-28", + "location": "Buffalo, NY", + "type": "Regular", + "remarks": "Flushed and replaced coolant for optimal engine performance." + }, + { + "id": 5, + "event": "Oil and Filter Change", + "date": "2024-08-15", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Changed engine oil and replaced the oil filter." + } + ] + }, + { + "vehicleId": "A00111", + "maintenance": [ + { + "id": 1, + "event": "Engine Tune-Up", + "date": "2024-12-10", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Performed routine engine tune-up and replaced spark plugs." + }, + { + "id": 2, + "event": "Tire Balancing", + "date": "2024-11-25", + "location": "New York, NY", + "type": "Regular", + "remarks": "Balanced all four tires to improve driving stability." + }, + { + "id": 3, + "event": "Battery Replacement", + "date": "2024-11-05", + "location": "Hartford, CT", + "type": "Incident", + "remarks": "Replaced car battery due to failure." + }, + { + "id": 4, + "event": "Brake Pad Replacement", + "date": "2024-10-30", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Replaced front brake pads and inspected rotors." + }, + { + "id": 5, + "event": "Oil Change", + "date": "2024-10-15", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Changed engine oil and replaced oil filter." + } + ] + }, + { + "vehicleId": "A00112", + "maintenance": [ + { + "id": 1, + "event": "Brake Pad Replacement", + "date": "2024-09-15", + "location": "Buffalo, NY", + "type": "Incident", + "remarks": "Replaced worn brake pads and inspected rotors." + }, + { + "id": 2, + "event": "Oil Change", + "date": "2024-08-20", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Performed oil change using synthetic 5W-30." + }, + { + "id": 3, + "event": "Tire Alignment", + "date": "2024-07-30", + "location": "Albany, NY", + "type": "Regular", + "remarks": "Adjusted tire alignment and rotated tires." + }, + { + "id": 4, + "event": "Battery Replacement", + "date": "2024-07-01", + "location": "Boston, MA", + "type": "Incident", + "remarks": "Installed a new battery and checked charging system." + }, + { + "id": 5, + "event": "Air Filter Replacement", + "date": "2024-06-15", + "location": "Albany, NY", + "type": "Regular", + "remarks": "Replaced air filter and inspected intake system." + } + ] + }, + { + "vehicleId": "A00113", + "maintenance": [ + { + "id": 1, + "event": "Oil Change", + "date": "2024-10-31", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented oil change with 5W-20." + }, + { + "id": 2, + "event": "Tire Replacement", + "date": "2024-10-30", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Installed new front left tire, including brand and mileage." + }, + { + "id": 3, + "event": "Brake Inspection", + "date": "2024-10-01", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Checked and serviced brake system." + }, + { + "id": 4, + "event": "General Maintenance", + "date": "2024-08-20", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Comprehensive vehicle checkup, including fluids and filters." + }, + { + "id": 5, + "event": "Alignment and Suspension", + "date": "2024-08-19", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented wheel alignment and suspension service." + } + ] + }, + { + "vehicleId": "A00114", + "maintenance": [ + { + "id": 1, + "event": "Oil Change", + "date": "2024-10-31", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented oil change with 5W-20." + }, + { + "id": 2, + "event": "Tire Replacement", + "date": "2024-10-30", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Installed new front left tire, including brand and mileage." + }, + { + "id": 3, + "event": "Brake Fluid Refill", + "date": "2024-09-15", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Brake fluid replaced and system flushed." + }, + { + "id": 4, + "event": "Battery Check", + "date": "2024-08-20", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Battery tested and terminals cleaned." + }, + { + "id": 5, + "event": "Air Filter Replacement", + "date": "2024-07-10", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Engine air filter replaced with new OEM part." + } + ] + }, + { + "vehicleId": "A00115", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-10-01", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Replaced car battery with a new one." + }, + { + "id": 2, + "event": "Engine Tuning", + "date": "2024-09-15", + "location": "Hoboken, NJ", + "type": "Regular", + "remarks": "Engine performance tuning and diagnostics." + }, + { + "id": 3, + "event": "Tire Rotation", + "date": "2024-08-05", + "location": "Buffalo, NY", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + }, + { + "id": 4, + "event": "AC System Check", + "date": "2024-07-12", + "location": "Trenton, NJ", + "type": "Incident", + "remarks": "Inspected and refilled AC refrigerant." + }, + { + "id": 5, + "event": "Brake Pad Replacement", + "date": "2024-06-20", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Replaced front and rear brake pads." + } + ] + }, + { + "vehicleId": "A00116", + "maintenance": [ + { + "id": 1, + "event": "Engine Diagnostics", + "date": "2024-09-10", + "location": "Buffalo, NY", + "type": "Incident", + "remarks": "Performed diagnostics on the engine due to irregular performance." + }, + { + "id": 2, + "event": "Transmission Check", + "date": "2024-08-22", + "location": "Albany, NY", + "type": "Regular", + "remarks": "Routine transmission fluid level check and refill." + }, + { + "id": 3, + "event": "Battery Replacement", + "date": "2024-07-30", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Installed a new battery to replace the old one." + }, + { + "id": 4, + "event": "AC Repair", + "date": "2024-07-15", + "location": "Trenton, NJ", + "type": "Incident", + "remarks": "Fixed an issue with the air conditioning system cooling capacity." + }, + { + "id": 5, + "event": "Tire Rotation", + "date": "2024-06-10", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + } + ] + }, + { + "vehicleId": "A00117", + "maintenance": [ + { + "id": 1, + "event": "Engine Tune-Up", + "date": "2024-11-15", + "location": "Camden, NJ", + "type": "Regular", + "remarks": "Engine performance optimization and diagnostics." + }, + { + "id": 2, + "event": "Tire Balancing", + "date": "2024-10-22", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Adjusted tire balancing to improve stability." + }, + { + "id": 3, + "event": "Brake Pad Replacement", + "date": "2024-09-30", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Installed new front brake pads." + }, + { + "id": 4, + "event": "Oil Change", + "date": "2024-09-10", + "location": "Trenton, NJ", + "type": "Regular", + "remarks": "Replaced engine oil with 5W-30 grade." + }, + { + "id": 5, + "event": "Battery Replacement", + "date": "2024-08-25", + "location": "Camden, NJ", + "type": "Incident", + "remarks": "Replaced old battery due to starting issues." + } + ] + }, + { + "vehicleId": "A00118", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-12-01", + "location": "Seattle, WA", + "type": "Incident", + "remarks": "Replaced battery with high-performance model." + }, + { + "id": 2, + "event": "Coolant Refill", + "date": "2024-11-15", + "location": "Denver, CO", + "type": "Regular", + "remarks": "Performed coolant system flush and refill." + }, + { + "id": 3, + "event": "Windshield Repair", + "date": "2024-10-30", + "location": "San Francisco, CA", + "type": "Incident", + "remarks": "Repaired small crack on the windshield." + }, + { + "id": 4, + "event": "Air Filter Replacement", + "date": "2024-09-25", + "location": "Austin, TX", + "type": "Regular", + "remarks": "Replaced cabin and engine air filters." + }, + { + "id": 5, + "event": "Transmission Service", + "date": "2024-08-15", + "location": "Dallas, TX", + "type": "Regular", + "remarks": "Serviced transmission and replaced fluid." + } + ] + }, + { + "vehicleId": "A00119", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-01", + "location": "Newark, NJ", + "type": "Incident", + "remarks": "Replaced the car battery with a high-capacity model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-15", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Rotated all four tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Pad Replacement", + "date": "2024-09-20", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Replaced front brake pads due to wear." + }, + { + "id": 4, + "event": "Oil and Filter Change", + "date": "2024-08-10", + "location": "New York, NY", + "type": "Regular", + "remarks": "Changed engine oil and replaced oil filter." + }, + { + "id": 5, + "event": "Coolant Flush", + "date": "2024-07-25", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Performed a coolant flush and replaced with fresh fluid." + } + ] + }, + { + "vehicleId": "A00120", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-01", + "location": "Newark, NJ", + "type": "Incident", + "remarks": "Replaced the car battery with a high-capacity model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-15", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Rotated all four tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Pad Replacement", + "date": "2024-09-20", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Replaced front brake pads due to wear." + }, + { + "id": 4, + "event": "Oil and Filter Change", + "date": "2024-08-10", + "location": "New York, NY", + "type": "Regular", + "remarks": "Changed engine oil and replaced oil filter." + }, + { + "id": 5, + "event": "Coolant Flush", + "date": "2024-07-25", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Performed a coolant flush and replaced with fresh fluid." + } + ] + }, + { + "vehicleId": "A00121", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-03", + "location": "Detroit, MI", + "type": "Incident", + "remarks": "Replaced old battery with a high-performance model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-20", + "location": "Cleveland, OH", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Fluid Replacement", + "date": "2024-09-30", + "location": "Pittsburgh, PA", + "type": "Regular", + "remarks": "Replaced brake fluid as part of regular maintenance." + }, + { + "id": 4, + "event": "Coolant System Flush", + "date": "2024-08-15", + "location": "Philadelphia, PA", + "type": "Regular", + "remarks": "Flushed coolant system and replaced with fresh coolant." + }, + { + "id": 5, + "event": "Engine Oil and Filter Change", + "date": "2024-07-20", + "location": "Chicago, IL", + "type": "Regular", + "remarks": "Performed oil change and replaced engine oil filter." + } + ] + }, + { + "vehicleId": "A00122", + "maintenance": [ + { + "id": 1, + "event": "Battery Replacement", + "date": "2024-11-12", + "location": "Boston, MA", + "type": "Incident", + "remarks": "Replaced the car battery with a high-performance model." + }, + { + "id": 2, + "event": "Tire Rotation", + "date": "2024-10-20", + "location": "New York, NY", + "type": "Regular", + "remarks": "Rotated all tires to ensure even wear." + }, + { + "id": 3, + "event": "Brake Fluid Replacement", + "date": "2024-09-25", + "location": "Hartford, CT", + "type": "Regular", + "remarks": "Replaced brake fluid as part of scheduled maintenance." + }, + { + "id": 4, + "event": "Coolant System Flush", + "date": "2024-08-28", + "location": "Buffalo, NY", + "type": "Regular", + "remarks": "Flushed and replaced coolant for optimal engine performance." + }, + { + "id": 5, + "event": "Oil and Filter Change", + "date": "2024-08-15", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Changed engine oil and replaced the oil filter." + } + ] + }, + { + "vehicleId": "A00123", + "maintenance": [ + { + "id": 1, + "event": "Engine Tune-Up", + "date": "2024-12-10", + "location": "Boston, MA", + "type": "Regular", + "remarks": "Performed routine engine tune-up and replaced spark plugs." + }, + { + "id": 2, + "event": "Tire Balancing", + "date": "2024-11-25", + "location": "New York, NY", + "type": "Regular", + "remarks": "Balanced all four tires to improve driving stability." + }, + { + "id": 3, + "event": "Battery Replacement", + "date": "2024-11-05", + "location": "Hartford, CT", + "type": "Incident", + "remarks": "Replaced car battery due to failure." + }, + { + "id": 4, + "event": "Brake Pad Replacement", + "date": "2024-10-30", + "location": "Newark, NJ", + "type": "Regular", + "remarks": "Replaced front brake pads and inspected rotors." + }, + { + "id": 5, + "event": "Oil Change", + "date": "2024-10-15", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Changed engine oil and replaced oil filter." + } + ] + }, + { + "vehicleId": "A00124", + "maintenance": [ + { + "id": 1, + "event": "Brake Pad Replacement", + "date": "2024-09-15", + "location": "Buffalo, NY", + "type": "Incident", + "remarks": "Replaced worn brake pads and inspected rotors." + }, + { + "id": 2, + "event": "Oil Change", + "date": "2024-08-20", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Performed oil change using synthetic 5W-30." + }, + { + "id": 3, + "event": "Tire Alignment", + "date": "2024-07-30", + "location": "Albany, NY", + "type": "Regular", + "remarks": "Adjusted tire alignment and rotated tires." + }, + { + "id": 4, + "event": "Battery Replacement", + "date": "2024-07-01", + "location": "Boston, MA", + "type": "Incident", + "remarks": "Installed a new battery and checked charging system." + }, + { + "id": 5, + "event": "Air Filter Replacement", + "date": "2024-06-15", + "location": "Albany, NY", + "type": "Regular", + "remarks": "Replaced air filter and inspected intake system." + } + ] + }, + { + "vehicleId": "A00125", + "maintenance": [ + { + "id": 1, + "event": "Oil Change", + "date": "2024-10-31", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented oil change with 5W-20." + }, + { + "id": 2, + "event": "Tire Replacement", + "date": "2024-10-30", + "location": "Cranbury, NJ", + "type": "Incident", + "remarks": "Installed new front left tire, including brand and mileage." + }, + { + "id": 3, + "event": "Brake Inspection", + "date": "2024-10-01", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Checked and serviced brake system." + }, + { + "id": 4, + "event": "General Maintenance", + "date": "2024-08-20", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Comprehensive vehicle checkup, including fluids and filters." + }, + { + "id": 5, + "event": "Alignment and Suspension", + "date": "2024-08-19", + "location": "Cranbury, NJ", + "type": "Regular", + "remarks": "Documented wheel alignment and suspension service." + } + ] + } +] diff --git a/projects/fleet-management-grid/src/assets/data/trip_history.json b/projects/fleet-management-grid/src/assets/data/trip_history.json new file mode 100644 index 0000000..75904aa --- /dev/null +++ b/projects/fleet-management-grid/src/assets/data/trip_history.json @@ -0,0 +1,1495 @@ +[ + { + "vehicleId": "A00101", + "tripHistory": [ + { + "id": 1, + "driverName": "John Davidson", + "start": "2024-11-17", + "end": "N/A", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "73,321.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Peter Jackson", + "start": "2024-10-13", + "end": "2024-10-23", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,801.9 mi", + "endMeter": "73,321.0 mi", + "distance": "519.1 mi", + "totalTime": "23h 15m" + }, + { + "id": 3, + "driverName": "J.J. Swan", + "start": "2024-10-03", + "end": "2024-10-12", + "startLocation": "Boston, MA", + "endLocation": "Cranbury, NJ", + "startMeter": "72,475.9 mi", + "endMeter": "72,801.9 mi", + "distance": "326.0 mi", + "totalTime": "18h 30m" + }, + { + "id": 4, + "driverName": "Natalie Simson", + "start": "2024-09-23", + "end": "2024-09-29", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "71,545.1 mi", + "endMeter": "72,475.9 mi", + "distance": "930.8 mi", + "totalTime": "45h 30m" + }, + { + "id": 5, + "driverName": "Peter Jackson", + "start": "2024-08-23", + "end": "2024-09-22", + "startLocation": "Boston, MA", + "endLocation": "Cranbury, NJ", + "startMeter": "70,581.0 mi", + "endMeter": "71,545.1 mi", + "distance": "964.1 mi", + "totalTime": "44h 45m" + }, + { + "id": 6, + "driverName": "Mike Sousan", + "start": "2024-08-15", + "end": "2024-08-20", + "startLocation": "Buffalo, NY", + "endLocation": "Boston, MA", + "startMeter": "69,971.9 mi", + "endMeter": "70,581.0 mi", + "distance": "609.1 mi", + "totalTime": "38h 30m" + } + ] + }, + { + "vehicleId": "A00102", + "tripHistory": [ + { + "id": 1, + "driverName": "John Davidson", + "start": "2024-11-17", + "end": "N/A", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "73,321.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Peter Jackson", + "start": "2024-10-13", + "end": "2024-10-23", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,801.9 mi", + "endMeter": "73,321.0 mi", + "distance": "519.1 mi", + "totalTime": "23h 15m" + }, + { + "id": 3, + "driverName": "Natalie Simson", + "start": "2024-09-01", + "end": "2024-09-10", + "startLocation": "Boston, MA", + "endLocation": "Providence, RI", + "startMeter": "71,900.0 mi", + "endMeter": "72,300.0 mi", + "distance": "400.0 mi", + "totalTime": "15h 30m" + }, + { + "id": 4, + "driverName": "Mike Sousan", + "start": "2024-08-15", + "end": "2024-08-18", + "startLocation": "Boston, MA", + "endLocation": "Hartford, CT", + "startMeter": "71,500.0 mi", + "endMeter": "71,900.0 mi", + "distance": "400.0 mi", + "totalTime": "18h 00m" + }, + { + "id": 5, + "driverName": "Sophia Loren", + "start": "2024-07-10", + "end": "2024-07-15", + "startLocation": "Albany, NY", + "endLocation": "Boston, MA", + "startMeter": "70,800.0 mi", + "endMeter": "71,500.0 mi", + "distance": "700.0 mi", + "totalTime": "22h 45m" + } + ] + }, + { + "vehicleId": "A00103", + "tripHistory": [ + { + "id": 1, + "driverName": "Alex Robinson", + "start": "2024-10-01", + "end": "2024-10-04", + "startLocation": "Newark, NJ", + "endLocation": "Trenton, NJ", + "startMeter": "73,000.0 mi", + "endMeter": "73,500.0 mi", + "distance": "500.0 mi", + "totalTime": "14h 30m" + }, + { + "id": 2, + "driverName": "Emily Green", + "start": "2024-09-12", + "end": "2024-09-15", + "startLocation": "Hoboken, NJ", + "endLocation": "Albany, NY", + "startMeter": "72,700.0 mi", + "endMeter": "73,000.0 mi", + "distance": "300.0 mi", + "totalTime": "10h 15m" + }, + { + "id": 3, + "driverName": "Liam Carter", + "start": "2024-08-20", + "end": "2024-08-25", + "startLocation": "Camden, NJ", + "endLocation": "Buffalo, NY", + "startMeter": "72,200.0 mi", + "endMeter": "72,700.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 10m" + }, + { + "id": 4, + "driverName": "Sophia Moore", + "start": "2024-07-10", + "end": "2024-07-15", + "startLocation": "Buffalo, NY", + "endLocation": "Newark, NJ", + "startMeter": "71,700.0 mi", + "endMeter": "72,200.0 mi", + "distance": "500.0 mi", + "totalTime": "18h 45m" + }, + { + "id": 5, + "driverName": "Noah Adams", + "start": "2024-06-18", + "end": "2024-06-20", + "startLocation": "Trenton, NJ", + "endLocation": "Camden, NJ", + "startMeter": "71,000.0 mi", + "endMeter": "71,700.0 mi", + "distance": "700.0 mi", + "totalTime": "12h 30m" + } + ] + }, + { + "vehicleId": "A00104", + "tripHistory": [ + { + "id": 1, + "driverName": "Michael Carter", + "start": "2024-11-20", + "end": "N/A", + "startLocation": "Albany, NY", + "endLocation": "Syracuse, NY", + "startMeter": "34,000.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Sarah Taylor", + "start": "2024-10-15", + "end": "2024-10-17", + "startLocation": "Newark, NJ", + "endLocation": "Philadelphia, PA", + "startMeter": "33,000.0 mi", + "endMeter": "33,500.0 mi", + "distance": "500.0 mi", + "totalTime": "10h 45m" + }, + { + "id": 3, + "driverName": "Emily Davis", + "start": "2024-09-10", + "end": "2024-09-12", + "startLocation": "Buffalo, NY", + "endLocation": "Rochester, NY", + "startMeter": "32,000.0 mi", + "endMeter": "32,400.0 mi", + "distance": "400.0 mi", + "totalTime": "11h 00m" + }, + { + "id": 4, + "driverName": "James Brown", + "start": "2024-08-05", + "end": "2024-08-07", + "startLocation": "Trenton, NJ", + "endLocation": "Camden, NJ", + "startMeter": "31,000.0 mi", + "endMeter": "31,500.0 mi", + "distance": "500.0 mi", + "totalTime": "8h 45m" + }, + { + "id": 5, + "driverName": "Olivia Martinez", + "start": "2024-07-18", + "end": "2024-07-20", + "startLocation": "Hoboken, NJ", + "endLocation": "Newark, NJ", + "startMeter": "30,500.0 mi", + "endMeter": "31,000.0 mi", + "distance": "500.0 mi", + "totalTime": "7h 30m" + } + ] + }, + { + "vehicleId": "A00105", + "tripHistory": [ + { + "id": 1, + "driverName": "Michael Carter", + "start": "2024-12-01", + "end": "N/A", + "startLocation": "Trenton, NJ", + "endLocation": "Newark, NJ", + "startMeter": "40,000.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Emily Taylor", + "start": "2024-11-20", + "end": "2024-11-21", + "startLocation": "Newark, NJ", + "endLocation": "Camden, NJ", + "startMeter": "39,800.0 mi", + "endMeter": "40,000.0 mi", + "distance": "200.0 mi", + "totalTime": "4h 30m" + }, + { + "id": 3, + "driverName": "James Brown", + "start": "2024-11-01", + "end": "2024-11-02", + "startLocation": "Camden, NJ", + "endLocation": "Philadelphia, PA", + "startMeter": "39,500.0 mi", + "endMeter": "39,800.0 mi", + "distance": "300.0 mi", + "totalTime": "6h 10m" + }, + { + "id": 4, + "driverName": "Olivia Martinez", + "start": "2024-10-10", + "end": "2024-10-12", + "startLocation": "Philadelphia, PA", + "endLocation": "Camden, NJ", + "startMeter": "39,000.0 mi", + "endMeter": "39,500.0 mi", + "distance": "500.0 mi", + "totalTime": "9h 45m" + }, + { + "id": 5, + "driverName": "Sophia Wilson", + "start": "2024-09-15", + "end": "2024-09-17", + "startLocation": "Camden, NJ", + "endLocation": "New York, NY", + "startMeter": "38,500.0 mi", + "endMeter": "39,000.0 mi", + "distance": "500.0 mi", + "totalTime": "10h 30m" + } + ] + }, + { + "vehicleId": "A00106", + "tripHistory": [ + { + "id": 1, + "driverName": "Alice Johnson", + "start": "2024-11-25", + "end": "2024-11-30", + "startLocation": "Seattle, WA", + "endLocation": "Portland, OR", + "startMeter": "74,500.0 mi", + "endMeter": "74,800.0 mi", + "distance": "300.0 mi", + "totalTime": "14h 50m" + }, + { + "id": 2, + "driverName": "Ethan Carter", + "start": "2024-10-22", + "end": "2024-10-28", + "startLocation": "Denver, CO", + "endLocation": "Salt Lake City, UT", + "startMeter": "73,900.0 mi", + "endMeter": "74,300.0 mi", + "distance": "400.0 mi", + "totalTime": "20h 10m" + }, + { + "id": 3, + "driverName": "Sophia Martinez", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "San Francisco, CA", + "endLocation": "Los Angeles, CA", + "startMeter": "72,100.0 mi", + "endMeter": "72,600.0 mi", + "distance": "500.0 mi", + "totalTime": "23h 30m" + }, + { + "id": 4, + "driverName": "Liam Brown", + "start": "2024-08-18", + "end": "2024-08-25", + "startLocation": "Austin, TX", + "endLocation": "Dallas, TX", + "startMeter": "71,500.0 mi", + "endMeter": "72,000.0 mi", + "distance": "500.0 mi", + "totalTime": "24h 10m" + } + ] + }, + { + "vehicleId": "A00107", + "tripHistory": [ + { + "id": 1, + "driverName": "Emily Carter", + "start": "2024-11-10", + "end": "2024-11-15", + "startLocation": "New York, NY", + "endLocation": "Boston, MA", + "startMeter": "74,000.0 mi", + "endMeter": "74,500.0 mi", + "distance": "500.0 mi", + "totalTime": "25h 00m" + }, + { + "id": 2, + "driverName": "Liam Johnson", + "start": "2024-10-25", + "end": "2024-10-30", + "startLocation": "Cranbury, NJ", + "endLocation": "Philadelphia, PA", + "startMeter": "73,500.0 mi", + "endMeter": "74,000.0 mi", + "distance": "500.0 mi", + "totalTime": "24h 45m" + }, + { + "id": 3, + "driverName": "Sophia Martinez", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "Boston, MA", + "endLocation": "Hartford, CT", + "startMeter": "73,000.0 mi", + "endMeter": "73,500.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 30m" + }, + { + "id": 4, + "driverName": "James Smith", + "start": "2024-08-20", + "end": "2024-08-25", + "startLocation": "Cranbury, NJ", + "endLocation": "Newark, NJ", + "startMeter": "72,500.0 mi", + "endMeter": "73,000.0 mi", + "distance": "500.0 mi", + "totalTime": "24h 15m" + } + ] + }, + { + "vehicleId": "A00108", + "tripHistory": [ + { + "id": 1, + "driverName": "Alex Johnson", + "start": "2024-10-01", + "end": "2024-10-05", + "startLocation": "New York, NY", + "endLocation": "Boston, MA", + "startMeter": "73,000.0 mi", + "endMeter": "73,500.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 00m" + }, + { + "id": 2, + "driverName": "Maria Gonzalez", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "Philadelphia, PA", + "endLocation": "Cranbury, NJ", + "startMeter": "72,500.0 mi", + "endMeter": "73,000.0 mi", + "distance": "500.0 mi", + "totalTime": "25h 00m" + }, + { + "id": 3, + "driverName": "Ethan Brown", + "start": "2024-08-20", + "end": "2024-08-25", + "startLocation": "Cranbury, NJ", + "endLocation": "Hartford, CT", + "startMeter": "72,000.0 mi", + "endMeter": "72,500.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 30m" + }, + { + "id": 4, + "driverName": "Sophia Martinez", + "start": "2024-07-10", + "end": "2024-07-15", + "startLocation": "Hartford, CT", + "endLocation": "Buffalo, NY", + "startMeter": "71,500.0 mi", + "endMeter": "72,000.0 mi", + "distance": "500.0 mi", + "totalTime": "23h 15m" + } + ] + }, + { + "vehicleId": "A00109", + "tripHistory": [ + { + "id": 1, + "driverName": "Chris Taylor", + "start": "2024-11-01", + "end": "N/A", + "startLocation": "Chicago, IL", + "endLocation": "Detroit, MI", + "startMeter": "85,100.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Rachel Adams", + "start": "2024-10-15", + "end": "2024-10-18", + "startLocation": "Detroit, MI", + "endLocation": "Cleveland, OH", + "startMeter": "84,600.0 mi", + "endMeter": "85,100.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 00m" + }, + { + "id": 3, + "driverName": "Michael Green", + "start": "2024-09-25", + "end": "2024-09-28", + "startLocation": "Cleveland, OH", + "endLocation": "Pittsburgh, PA", + "startMeter": "84,100.0 mi", + "endMeter": "84,600.0 mi", + "distance": "500.0 mi", + "totalTime": "18h 30m" + }, + { + "id": 4, + "driverName": "Sarah Johnson", + "start": "2024-09-01", + "end": "2024-09-05", + "startLocation": "Pittsburgh, PA", + "endLocation": "Philadelphia, PA", + "startMeter": "83,600.0 mi", + "endMeter": "84,100.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 15m" + } + ] + }, + { + "vehicleId": "A00110", + "tripHistory": [ + { + "id": 1, + "driverName": "David Miller", + "start": "2024-11-10", + "end": "2024-11-14", + "startLocation": "Newark, NJ", + "endLocation": "Boston, MA", + "startMeter": "28,000.0 mi", + "endMeter": "28,500.0 mi", + "distance": "500.0 mi", + "totalTime": "25h 00m" + }, + { + "id": 2, + "driverName": "Sophia Brown", + "start": "2024-10-01", + "end": "2024-10-05", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "27,500.0 mi", + "endMeter": "28,000.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 30m" + }, + { + "id": 3, + "driverName": "Ethan Johnson", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "New York, NY", + "endLocation": "Hartford, CT", + "startMeter": "27,000.0 mi", + "endMeter": "27,500.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 45m" + }, + { + "id": 4, + "driverName": "Emma White", + "start": "2024-08-25", + "end": "2024-08-30", + "startLocation": "Hartford, CT", + "endLocation": "Buffalo, NY", + "startMeter": "26,500.0 mi", + "endMeter": "27,000.0 mi", + "distance": "500.0 mi", + "totalTime": "21h 15m" + } + ] + }, + { + "vehicleId": "A00111", + "tripHistory": [ + { + "id": 1, + "driverName": "James Carter", + "start": "2024-12-01", + "end": "2024-12-05", + "startLocation": "New York, NY", + "endLocation": "Boston, MA", + "startMeter": "39,500.0 mi", + "endMeter": "40,000.0 mi", + "distance": "500.0 mi", + "totalTime": "21h 35m" + }, + { + "id": 2, + "driverName": "Sarah Miller", + "start": "2024-11-15", + "end": "2024-11-20", + "startLocation": "Hartford, CT", + "endLocation": "Newark, NJ", + "startMeter": "39,000.0 mi", + "endMeter": "39,500.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 30m" + }, + { + "id": 3, + "driverName": "Michael Brown", + "start": "2024-11-01", + "end": "2024-11-05", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "38,500.0 mi", + "endMeter": "39,000.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 00m" + }, + { + "id": 4, + "driverName": "Emily White", + "start": "2024-10-20", + "end": "2024-10-25", + "startLocation": "Newark, NJ", + "endLocation": "Hartford, CT", + "startMeter": "38,000.0 mi", + "endMeter": "38,500.0 mi", + "distance": "500.0 mi", + "totalTime": "21h 45m" + } + ] + }, + { + "vehicleId": "A00112", + "tripHistory": [ + { + "id": 1, + "driverName": "Michael Grant", + "start": "2024-11-01", + "end": "2024-11-06", + "startLocation": "Buffalo, NY", + "endLocation": "Albany, NY", + "startMeter": "73,500.0 mi", + "endMeter": "74,112.0 mi", + "distance": "612 mi", + "totalTime": "23h 25m" + }, + { + "id": 2, + "driverName": "Sarah Williams", + "start": "2024-10-15", + "end": "2024-10-22", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,901.0 mi", + "endMeter": "73,500.0 mi", + "distance": "599.0 mi", + "totalTime": "22h 10m" + }, + { + "id": 3, + "driverName": "Jonathan Smith", + "start": "2024-09-20", + "end": "2024-09-25", + "startLocation": "Albany, NY", + "endLocation": "Cranbury, NJ", + "startMeter": "72,300.0 mi", + "endMeter": "72,901.0 mi", + "distance": "601.0 mi", + "totalTime": "20h 30m" + }, + { + "id": 4, + "driverName": "Emma Clarkson", + "start": "2024-08-10", + "end": "2024-08-15", + "startLocation": "Boston, MA", + "endLocation": "Buffalo, NY", + "startMeter": "71,700.0 mi", + "endMeter": "72,300.0 mi", + "distance": "600.0 mi", + "totalTime": "18h 45m" + } + ] + }, + { + "vehicleId": "A00113", + "tripHistory": [ + { + "id": 1, + "driverName": "John Davidson", + "start": "2024-11-17", + "end": "N/A", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "73,321.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Peter Jackson", + "start": "2024-10-13", + "end": "2024-10-23", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,801.9 mi", + "endMeter": "73,321.0 mi", + "distance": "519.1 mi", + "totalTime": "23h 15m" + }, + { + "id": 3, + "driverName": "J.J. Swan", + "start": "2024-10-03", + "end": "2024-10-12", + "startLocation": "Boston, MA", + "endLocation": "Cranbury, NJ", + "startMeter": "72,475.9 mi", + "endMeter": "72,801.9 mi", + "distance": "326.0 mi", + "totalTime": "18h 30m" + }, + { + "id": 4, + "driverName": "Natalie Simson", + "start": "2024-09-23", + "end": "2024-09-29", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "71,545.1 mi", + "endMeter": "72,475.9 mi", + "distance": "930.8 mi", + "totalTime": "45h 30m" + }, + { + "id": 5, + "driverName": "Peter Jackson", + "start": "2024-08-23", + "end": "2024-09-22", + "startLocation": "Boston, MA", + "endLocation": "Cranbury, NJ", + "startMeter": "70,581.0 mi", + "endMeter": "71,545.1 mi", + "distance": "964.1 mi", + "totalTime": "44h 45m" + }, + { + "id": 6, + "driverName": "Mike Sousan", + "start": "2024-08-15", + "end": "2024-08-20", + "startLocation": "Buffalo, NY", + "endLocation": "Boston, MA", + "startMeter": "69,971.9 mi", + "endMeter": "70,581.0 mi", + "distance": "609.1 mi", + "totalTime": "38h 30m" + } + ] + }, + { + "vehicleId": "A00114", + "tripHistory": [ + { + "id": 1, + "driverName": "John Davidson", + "start": "2024-11-17", + "end": "2024-11-17", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "73,321.0 mi", + "endMeter": "73,523.4 mi", + "distance": "202.4 mi", + "totalTime": "4h 15m" + }, + { + "id": 2, + "driverName": "Peter Jackson", + "start": "2024-10-13", + "end": "2024-10-23", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,801.9 mi", + "endMeter": "73,321.0 mi", + "distance": "519.1 mi", + "totalTime": "23h 15m" + }, + { + "id": 3, + "driverName": "Natalie Simson", + "start": "2024-09-01", + "end": "2024-09-10", + "startLocation": "Boston, MA", + "endLocation": "Providence, RI", + "startMeter": "71,900.0 mi", + "endMeter": "72,300.0 mi", + "distance": "400.0 mi", + "totalTime": "15h 30m" + }, + { + "id": 4, + "driverName": "Mike Sousan", + "start": "2024-08-15", + "end": "2024-08-18", + "startLocation": "Boston, MA", + "endLocation": "Hartford, CT", + "startMeter": "71,500.0 mi", + "endMeter": "71,900.0 mi", + "distance": "400.0 mi", + "totalTime": "18h 00m" + }, + { + "id": 5, + "driverName": "Sophia Loren", + "start": "2024-07-10", + "end": "2024-07-15", + "startLocation": "Albany, NY", + "endLocation": "Boston, MA", + "startMeter": "70,800.0 mi", + "endMeter": "71,500.0 mi", + "distance": "700.0 mi", + "totalTime": "22h 45m" + } + ] + }, + { + "vehicleId": "A00115", + "tripHistory": [ + { + "id": 1, + "driverName": "Alex Robinson", + "start": "2024-10-01", + "end": "2024-10-04", + "startLocation": "Newark, NJ", + "endLocation": "Trenton, NJ", + "startMeter": "73,000.0 mi", + "endMeter": "73,500.0 mi", + "distance": "500.0 mi", + "totalTime": "14h 30m" + }, + { + "id": 2, + "driverName": "Emily Green", + "start": "2024-09-12", + "end": "2024-09-15", + "startLocation": "Hoboken, NJ", + "endLocation": "Albany, NY", + "startMeter": "72,700.0 mi", + "endMeter": "73,000.0 mi", + "distance": "300.0 mi", + "totalTime": "10h 15m" + }, + { + "id": 3, + "driverName": "Liam Carter", + "start": "2024-08-20", + "end": "2024-08-25", + "startLocation": "Camden, NJ", + "endLocation": "Buffalo, NY", + "startMeter": "72,200.0 mi", + "endMeter": "72,700.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 10m" + }, + { + "id": 4, + "driverName": "Sophia Moore", + "start": "2024-07-10", + "end": "2024-07-15", + "startLocation": "Buffalo, NY", + "endLocation": "Newark, NJ", + "startMeter": "71,700.0 mi", + "endMeter": "72,200.0 mi", + "distance": "500.0 mi", + "totalTime": "18h 45m" + }, + { + "id": 5, + "driverName": "Noah Adams", + "start": "2024-06-18", + "end": "2024-06-20", + "startLocation": "Trenton, NJ", + "endLocation": "Camden, NJ", + "startMeter": "71,000.0 mi", + "endMeter": "71,700.0 mi", + "distance": "700.0 mi", + "totalTime": "12h 30m" + } + ] + }, + { + "vehicleId": "A00116", + "tripHistory": [ + { + "id": 1, + "driverName": "Michael Carter", + "start": "2024-11-20", + "end": "N/A", + "startLocation": "Albany, NY", + "endLocation": "Syracuse, NY", + "startMeter": "34,000.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Sarah Taylor", + "start": "2024-10-15", + "end": "2024-10-17", + "startLocation": "Newark, NJ", + "endLocation": "Philadelphia, PA", + "startMeter": "33,000.0 mi", + "endMeter": "33,500.0 mi", + "distance": "500.0 mi", + "totalTime": "10h 45m" + }, + { + "id": 3, + "driverName": "Emily Davis", + "start": "2024-09-10", + "end": "2024-09-12", + "startLocation": "Buffalo, NY", + "endLocation": "Rochester, NY", + "startMeter": "32,000.0 mi", + "endMeter": "32,400.0 mi", + "distance": "400.0 mi", + "totalTime": "11h 00m" + }, + { + "id": 4, + "driverName": "James Brown", + "start": "2024-08-05", + "end": "2024-08-07", + "startLocation": "Trenton, NJ", + "endLocation": "Camden, NJ", + "startMeter": "31,000.0 mi", + "endMeter": "31,500.0 mi", + "distance": "500.0 mi", + "totalTime": "8h 45m" + }, + { + "id": 5, + "driverName": "Olivia Martinez", + "start": "2024-07-18", + "end": "2024-07-20", + "startLocation": "Hoboken, NJ", + "endLocation": "Newark, NJ", + "startMeter": "30,500.0 mi", + "endMeter": "31,000.0 mi", + "distance": "500.0 mi", + "totalTime": "7h 30m" + } + ] + }, + { + "vehicleId": "A00117", + "tripHistory": [ + { + "id": 1, + "driverName": "Michael Carter", + "start": "2024-12-01", + "end": "2024-12-02", + "startLocation": "Trenton, NJ", + "endLocation": "Newark, NJ", + "startMeter": "40,000.0 mi", + "endMeter": "40,200.0 mi", + "distance": "200.0 mi", + "totalTime": "5h 15m" + }, + { + "id": 2, + "driverName": "Emily Taylor", + "start": "2024-11-20", + "end": "2024-11-21", + "startLocation": "Newark, NJ", + "endLocation": "Camden, NJ", + "startMeter": "39,800.0 mi", + "endMeter": "40,000.0 mi", + "distance": "200.0 mi", + "totalTime": "4h 30m" + }, + { + "id": 3, + "driverName": "James Brown", + "start": "2024-11-01", + "end": "2024-11-02", + "startLocation": "Camden, NJ", + "endLocation": "Philadelphia, PA", + "startMeter": "39,500.0 mi", + "endMeter": "39,800.0 mi", + "distance": "300.0 mi", + "totalTime": "6h 10m" + }, + { + "id": 4, + "driverName": "Olivia Martinez", + "start": "2024-10-10", + "end": "2024-10-12", + "startLocation": "Philadelphia, PA", + "endLocation": "Camden, NJ", + "startMeter": "39,000.0 mi", + "endMeter": "39,500.0 mi", + "distance": "500.0 mi", + "totalTime": "9h 45m" + }, + { + "id": 5, + "driverName": "Sophia Wilson", + "start": "2024-09-15", + "end": "2024-09-17", + "startLocation": "Camden, NJ", + "endLocation": "New York, NY", + "startMeter": "38,500.0 mi", + "endMeter": "39,000.0 mi", + "distance": "500.0 mi", + "totalTime": "10h 30m" + } + ] + }, + { + "vehicleId": "A00118", + "tripHistory": [ + { + "id": 1, + "driverName": "Alice Johnson", + "start": "2024-11-25", + "end": "N/A", + "startLocation": "Seattle, WA", + "endLocation": "Portland, OR", + "startMeter": "74,500.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Ethan Carter", + "start": "2024-10-22", + "end": "2024-10-28", + "startLocation": "Denver, CO", + "endLocation": "Salt Lake City, UT", + "startMeter": "73,900.0 mi", + "endMeter": "74,300.0 mi", + "distance": "400.0 mi", + "totalTime": "20h 10m" + }, + { + "id": 3, + "driverName": "Sophia Martinez", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "San Francisco, CA", + "endLocation": "Los Angeles, CA", + "startMeter": "72,100.0 mi", + "endMeter": "72,600.0 mi", + "distance": "500.0 mi", + "totalTime": "23h 30m" + }, + { + "id": 4, + "driverName": "Liam Brown", + "start": "2024-08-18", + "end": "2024-08-25", + "startLocation": "Austin, TX", + "endLocation": "Dallas, TX", + "startMeter": "71,500.0 mi", + "endMeter": "72,000.0 mi", + "distance": "500.0 mi", + "totalTime": "24h 10m" + } + ] + }, + { + "vehicleId": "A00119", + "tripHistory": [ + { + "id": 1, + "driverName": "Emily Carter", + "start": "2024-11-10", + "end": "2024-11-15", + "startLocation": "New York, NY", + "endLocation": "Boston, MA", + "startMeter": "74,000.0 mi", + "endMeter": "74,500.0 mi", + "distance": "500.0 mi", + "totalTime": "25h 00m" + }, + { + "id": 2, + "driverName": "Liam Johnson", + "start": "2024-10-25", + "end": "2024-10-30", + "startLocation": "Cranbury, NJ", + "endLocation": "Philadelphia, PA", + "startMeter": "73,500.0 mi", + "endMeter": "74,000.0 mi", + "distance": "500.0 mi", + "totalTime": "24h 45m" + }, + { + "id": 3, + "driverName": "Sophia Martinez", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "Boston, MA", + "endLocation": "Hartford, CT", + "startMeter": "73,000.0 mi", + "endMeter": "73,500.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 30m" + }, + { + "id": 4, + "driverName": "James Smith", + "start": "2024-08-20", + "end": "2024-08-25", + "startLocation": "Cranbury, NJ", + "endLocation": "Newark, NJ", + "startMeter": "72,500.0 mi", + "endMeter": "73,000.0 mi", + "distance": "500.0 mi", + "totalTime": "24h 15m" + } + ] + }, + { + "vehicleId": "A00120", + "tripHistory": [ + { + "id": 1, + "driverName": "Alex Johnson", + "start": "2024-10-01", + "end": "2024-10-05", + "startLocation": "New York, NY", + "endLocation": "Boston, MA", + "startMeter": "73,000.0 mi", + "endMeter": "73,500.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 00m" + }, + { + "id": 2, + "driverName": "Maria Gonzalez", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "Philadelphia, PA", + "endLocation": "Cranbury, NJ", + "startMeter": "72,500.0 mi", + "endMeter": "73,000.0 mi", + "distance": "500.0 mi", + "totalTime": "25h 00m" + }, + { + "id": 3, + "driverName": "Ethan Brown", + "start": "2024-08-20", + "end": "2024-08-25", + "startLocation": "Cranbury, NJ", + "endLocation": "Hartford, CT", + "startMeter": "72,000.0 mi", + "endMeter": "72,500.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 30m" + }, + { + "id": 4, + "driverName": "Sophia Martinez", + "start": "2024-07-10", + "end": "2024-07-15", + "startLocation": "Hartford, CT", + "endLocation": "Buffalo, NY", + "startMeter": "71,500.0 mi", + "endMeter": "72,000.0 mi", + "distance": "500.0 mi", + "totalTime": "23h 15m" + } + ] + }, + { + "vehicleId": "A00121", + "tripHistory": [ + { + "id": 1, + "driverName": "Chris Taylor", + "start": "2024-11-01", + "end": "N/A", + "startLocation": "Chicago, IL", + "endLocation": "Detroit, MI", + "startMeter": "85,100.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Rachel Adams", + "start": "2024-10-15", + "end": "2024-10-18", + "startLocation": "Detroit, MI", + "endLocation": "Cleveland, OH", + "startMeter": "84,600.0 mi", + "endMeter": "85,100.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 00m" + }, + { + "id": 3, + "driverName": "Michael Green", + "start": "2024-09-25", + "end": "2024-09-28", + "startLocation": "Cleveland, OH", + "endLocation": "Pittsburgh, PA", + "startMeter": "84,100.0 mi", + "endMeter": "84,600.0 mi", + "distance": "500.0 mi", + "totalTime": "18h 30m" + }, + { + "id": 4, + "driverName": "Sarah Johnson", + "start": "2024-09-01", + "end": "2024-09-05", + "startLocation": "Pittsburgh, PA", + "endLocation": "Philadelphia, PA", + "startMeter": "83,600.0 mi", + "endMeter": "84,100.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 15m" + } + ] + }, + { + "vehicleId": "A00122", + "tripHistory": [ + { + "id": 1, + "driverName": "David Miller", + "start": "2024-11-10", + "end": "2024-11-14", + "startLocation": "Newark, NJ", + "endLocation": "Boston, MA", + "startMeter": "28,000.0 mi", + "endMeter": "28,500.0 mi", + "distance": "500.0 mi", + "totalTime": "25h 00m" + }, + { + "id": 2, + "driverName": "Sophia Brown", + "start": "2024-10-01", + "end": "2024-10-05", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "27,500.0 mi", + "endMeter": "28,000.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 30m" + }, + { + "id": 3, + "driverName": "Ethan Johnson", + "start": "2024-09-15", + "end": "2024-09-20", + "startLocation": "New York, NY", + "endLocation": "Hartford, CT", + "startMeter": "27,000.0 mi", + "endMeter": "27,500.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 45m" + }, + { + "id": 4, + "driverName": "Emma White", + "start": "2024-08-25", + "end": "2024-08-30", + "startLocation": "Hartford, CT", + "endLocation": "Buffalo, NY", + "startMeter": "26,500.0 mi", + "endMeter": "27,000.0 mi", + "distance": "500.0 mi", + "totalTime": "21h 15m" + } + ] + }, + { + "vehicleId": "A00123", + "tripHistory": [ + { + "id": 1, + "driverName": "James Carter", + "start": "2024-12-01", + "end": "N/A", + "startLocation": "New York, NY", + "endLocation": "Boston, MA", + "startMeter": "39,500.0 mi", + "endMeter": "N/A", + "distance": "N/A", + "totalTime": "N/A" + }, + { + "id": 2, + "driverName": "Sarah Miller", + "start": "2024-11-15", + "end": "2024-11-20", + "startLocation": "Hartford, CT", + "endLocation": "Newark, NJ", + "startMeter": "39,000.0 mi", + "endMeter": "39,500.0 mi", + "distance": "500.0 mi", + "totalTime": "20h 30m" + }, + { + "id": 3, + "driverName": "Michael Brown", + "start": "2024-11-01", + "end": "2024-11-05", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "38,500.0 mi", + "endMeter": "39,000.0 mi", + "distance": "500.0 mi", + "totalTime": "22h 00m" + }, + { + "id": 4, + "driverName": "Emily White", + "start": "2024-10-20", + "end": "2024-10-25", + "startLocation": "Newark, NJ", + "endLocation": "Hartford, CT", + "startMeter": "38,000.0 mi", + "endMeter": "38,500.0 mi", + "distance": "500.0 mi", + "totalTime": "21h 45m" + } + ] + }, + { + "vehicleId": "A00124", + "tripHistory": [ + { + "id": 1, + "driverName": "Michael Grant", + "start": "2024-11-01", + "end": "2024-11-06", + "startLocation": "Buffalo, NY", + "endLocation": "Albany, NY", + "startMeter": "73,500.0 mi", + "endMeter": "74,112.0 mi", + "distance": "612 mi", + "totalTime": "23h 25m" + }, + { + "id": 2, + "driverName": "Sarah Williams", + "start": "2024-10-15", + "end": "2024-10-22", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,901.0 mi", + "endMeter": "73,500.0 mi", + "distance": "599.0 mi", + "totalTime": "22h 10m" + }, + { + "id": 3, + "driverName": "Jonathan Smith", + "start": "2024-09-20", + "end": "2024-09-25", + "startLocation": "Albany, NY", + "endLocation": "Cranbury, NJ", + "startMeter": "72,300.0 mi", + "endMeter": "72,901.0 mi", + "distance": "601.0 mi", + "totalTime": "20h 30m" + }, + { + "id": 4, + "driverName": "Emma Clarkson", + "start": "2024-08-10", + "end": "2024-08-15", + "startLocation": "Boston, MA", + "endLocation": "Buffalo, NY", + "startMeter": "71,700.0 mi", + "endMeter": "72,300.0 mi", + "distance": "600.0 mi", + "totalTime": "18h 45m" + } + ] + }, + { + "vehicleId": "A00125", + "tripHistory": [ + { + "id": 1, + "driverName": "John Davidson", + "start": "2024-11-17", + "end": "2024-11-17", + "startLocation": "Boston, MA", + "endLocation": "New York, NY", + "startMeter": "73,321.0 mi", + "endMeter": "73,523.4 mi", + "distance": "202.4 mi", + "totalTime": "4h 15m" + }, + { + "id": 2, + "driverName": "Peter Jackson", + "start": "2024-10-13", + "end": "2024-10-23", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "72,801.9 mi", + "endMeter": "73,321.0 mi", + "distance": "519.1 mi", + "totalTime": "23h 15m" + }, + { + "id": 3, + "driverName": "J.J. Swan", + "start": "2024-10-03", + "end": "2024-10-12", + "startLocation": "Boston, MA", + "endLocation": "Cranbury, NJ", + "startMeter": "72,475.9 mi", + "endMeter": "72,801.9 mi", + "distance": "326.0 mi", + "totalTime": "18h 30m" + }, + { + "id": 4, + "driverName": "Natalie Simson", + "start": "2024-09-23", + "end": "2024-09-29", + "startLocation": "Cranbury, NJ", + "endLocation": "Boston, MA", + "startMeter": "71,545.1 mi", + "endMeter": "72,475.9 mi", + "distance": "930.8 mi", + "totalTime": "45h 30m" + }, + { + "id": 5, + "driverName": "Peter Jackson", + "start": "2024-08-23", + "end": "2024-09-22", + "startLocation": "Boston, MA", + "endLocation": "Cranbury, NJ", + "startMeter": "70,581.0 mi", + "endMeter": "71,545.1 mi", + "distance": "964.1 mi", + "totalTime": "44h 45m" + }, + { + "id": 6, + "driverName": "Mike Sousan", + "start": "2024-08-15", + "end": "2024-08-20", + "startLocation": "Buffalo, NY", + "endLocation": "Boston, MA", + "startMeter": "69,971.9 mi", + "endMeter": "70,581.0 mi", + "distance": "609.1 mi", + "totalTime": "38h 30m" + } + ] + } +] diff --git a/projects/fleet-management-grid/src/assets/data/utilization.json b/projects/fleet-management-grid/src/assets/data/utilization.json new file mode 100644 index 0000000..d702ca1 --- /dev/null +++ b/projects/fleet-management-grid/src/assets/data/utilization.json @@ -0,0 +1,1627 @@ +[ + { + "vehicleId": "A00101", + "utilization": [ + { + "month": "January", + "'2023'": 158, + "'2024'": 200 + }, + { + "month": "February", + "'2023'": 231, + "'2024'": 182 + }, + { + "month": "March", + "'2023'": 372, + "'2024'": 350 + }, + { + "month": "April", + "'2023'": 548, + "'2024'": 515 + }, + { + "month": "May", + "'2023'": 647, + "'2024'": 800 + }, + { + "month": "June", + "'2023'": 839, + "'2024'": 912 + }, + { + "month": "July", + "'2023'": 897, + "'2024'": 924 + }, + { + "month": "August", + "'2023'": 930, + "'2024'": 989 + }, + { + "month": "September", + "'2023'": 843, + "'2024'": 820 + }, + { + "month": "October", + "'2023'": 780, + "'2024'": 987 + }, + { + "month": "November", + "'2023'": 489, + "'2024'": 690 + }, + { + "month": "December", + "'2023'": 210, + "'2024'": 0 + } + ] + }, + { + "vehicleId": "A00102", + "utilization": [ + { + "month": "January", + "'2023'": 158, + "'2024'": 200 + }, + { + "month": "February", + "'2023'": 231, + "'2024'": 182 + }, + { + "month": "March", + "'2023'": 372, + "'2024'": 350 + }, + { + "month": "April", + "'2023'": 548, + "'2024'": 515 + }, + { + "month": "May", + "'2023'": 647, + "'2024'": 800 + }, + { + "month": "June", + "'2023'": 839, + "'2024'": 912 + }, + { + "month": "July", + "'2023'": 897, + "'2024'": 924 + }, + { + "month": "August", + "'2023'": 930, + "'2024'": 989 + }, + { + "month": "September", + "'2023'": 843, + "'2024'": 820 + }, + { + "month": "October", + "'2023'": 780, + "'2024'": 987 + }, + { + "month": "November", + "'2023'": 489, + "'2024'": 690 + }, + { + "month": "December", + "'2023'": 210, + "'2024'": 0 + } + ] + }, + { + "vehicleId": "A00103", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 205 + }, + { + "month": "February", + "'2023'": 238, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 355 + }, + { + "month": "April", + "'2023'": 560, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 655, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 845, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 935, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 825 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 495, + "'2024'": 695 + }, + { + "month": "December", + "'2023'": 215, + "'2024'": 5 + } + ] + }, + { + "vehicleId": "A00104", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 555, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 995 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00105", + "utilization": [ + { + "month": "January", + "'2023'": 180, + "'2024'": 215 + }, + { + "month": "February", + "'2023'": 210, + "'2024'": 200 + }, + { + "month": "March", + "'2023'": 395, + "'2024'": 370 + }, + { + "month": "April", + "'2023'": 570, + "'2024'": 530 + }, + { + "month": "May", + "'2023'": 650, + "'2024'": 815 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 900, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 920, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 845, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 710 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00106", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 550, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00107", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 550, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 15 + } + ] + }, + { + "vehicleId": "A00108", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 215 + }, + { + "month": "February", + "'2023'": 242, + "'2024'": 193 + }, + { + "month": "March", + "'2023'": 375, + "'2024'": 355 + }, + { + "month": "April", + "'2023'": 555, + "'2024'": 525 + }, + { + "month": "May", + "'2023'": 665, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 910, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 945, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 855, + "'2024'": 835 + }, + { + "month": "October", + "'2023'": 795, + "'2024'": 995 + }, + { + "month": "November", + "'2023'": 505, + "'2024'": 705 + }, + { + "month": "December", + "'2023'": 225, + "'2024'": 15 + } + ] + }, + { + "vehicleId": "A00109", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 195 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 555, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 910, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 990 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 985 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 695 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00110", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 205 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 375, + "'2024'": 355 + }, + { + "month": "April", + "'2023'": 550, + "'2024'": 525 + }, + { + "month": "May", + "'2023'": 655, + "'2024'": 815 + }, + { + "month": "June", + "'2023'": 845, + "'2024'": 915 + }, + { + "month": "July", + "'2023'": 900, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 825 + }, + { + "month": "October", + "'2023'": 785, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 495, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00111", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 245, + "'2024'": 195 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 560, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 650, + "'2024'": 820 + }, + { + "month": "June", + "'2023'": 845, + "'2024'": 915 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 935, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00112", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 560, + "'2024'": 530 + }, + { + "month": "May", + "'2023'": 650, + "'2024'": 820 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 995 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00113", + "utilization": [ + { + "month": "January", + "'2023'": 158, + "'2024'": 200 + }, + { + "month": "February", + "'2023'": 231, + "'2024'": 182 + }, + { + "month": "March", + "'2023'": 372, + "'2024'": 350 + }, + { + "month": "April", + "'2023'": 548, + "'2024'": 515 + }, + { + "month": "May", + "'2023'": 647, + "'2024'": 800 + }, + { + "month": "June", + "'2023'": 839, + "'2024'": 912 + }, + { + "month": "July", + "'2023'": 897, + "'2024'": 924 + }, + { + "month": "August", + "'2023'": 930, + "'2024'": 989 + }, + { + "month": "September", + "'2023'": 843, + "'2024'": 820 + }, + { + "month": "October", + "'2023'": 780, + "'2024'": 987 + }, + { + "month": "November", + "'2023'": 489, + "'2024'": 690 + }, + { + "month": "December", + "'2023'": 210, + "'2024'": 0 + } + ] + }, + { + "vehicleId": "A00114", + "utilization": [ + { + "month": "January", + "'2023'": 158, + "'2024'": 200 + }, + { + "month": "February", + "'2023'": 231, + "'2024'": 182 + }, + { + "month": "March", + "'2023'": 372, + "'2024'": 350 + }, + { + "month": "April", + "'2023'": 548, + "'2024'": 515 + }, + { + "month": "May", + "'2023'": 647, + "'2024'": 800 + }, + { + "month": "June", + "'2023'": 839, + "'2024'": 912 + }, + { + "month": "July", + "'2023'": 897, + "'2024'": 924 + }, + { + "month": "August", + "'2023'": 930, + "'2024'": 989 + }, + { + "month": "September", + "'2023'": 843, + "'2024'": 820 + }, + { + "month": "October", + "'2023'": 780, + "'2024'": 987 + }, + { + "month": "November", + "'2023'": 489, + "'2024'": 690 + }, + { + "month": "December", + "'2023'": 210, + "'2024'": 0 + } + ] + }, + { + "vehicleId": "A00115", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 205 + }, + { + "month": "February", + "'2023'": 238, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 355 + }, + { + "month": "April", + "'2023'": 560, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 655, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 845, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 935, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 825 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 495, + "'2024'": 695 + }, + { + "month": "December", + "'2023'": 215, + "'2024'": 5 + } + ] + }, + { + "vehicleId": "A00116", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 555, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 995 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00117", + "utilization": [ + { + "month": "January", + "'2023'": 180, + "'2024'": 215 + }, + { + "month": "February", + "'2023'": 210, + "'2024'": 200 + }, + { + "month": "March", + "'2023'": 395, + "'2024'": 370 + }, + { + "month": "April", + "'2023'": 570, + "'2024'": 530 + }, + { + "month": "May", + "'2023'": 650, + "'2024'": 815 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 900, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 920, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 845, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 710 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00118", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 550, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00119", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 550, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 15 + } + ] + }, + { + "vehicleId": "A00120", + "utilization": [ + { + "month": "January", + "'2023'": 162, + "'2024'": 215 + }, + { + "month": "February", + "'2023'": 242, + "'2024'": 193 + }, + { + "month": "March", + "'2023'": 375, + "'2024'": 355 + }, + { + "month": "April", + "'2023'": 555, + "'2024'": 525 + }, + { + "month": "May", + "'2023'": 665, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 910, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 945, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 855, + "'2024'": 835 + }, + { + "month": "October", + "'2023'": 795, + "'2024'": 995 + }, + { + "month": "November", + "'2023'": 505, + "'2024'": 705 + }, + { + "month": "December", + "'2023'": 225, + "'2024'": 15 + } + ] + }, + { + "vehicleId": "A00121", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 195 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 555, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 660, + "'2024'": 810 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 920 + }, + { + "month": "July", + "'2023'": 910, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 990 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 985 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 695 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00122", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 205 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 375, + "'2024'": 355 + }, + { + "month": "April", + "'2023'": 550, + "'2024'": 525 + }, + { + "month": "May", + "'2023'": 655, + "'2024'": 815 + }, + { + "month": "June", + "'2023'": 845, + "'2024'": 915 + }, + { + "month": "July", + "'2023'": 900, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 825 + }, + { + "month": "October", + "'2023'": 785, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 495, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00123", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 245, + "'2024'": 195 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 560, + "'2024'": 520 + }, + { + "month": "May", + "'2023'": 650, + "'2024'": 820 + }, + { + "month": "June", + "'2023'": 845, + "'2024'": 915 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 930 + }, + { + "month": "August", + "'2023'": 935, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 990 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00124", + "utilization": [ + { + "month": "January", + "'2023'": 165, + "'2024'": 210 + }, + { + "month": "February", + "'2023'": 240, + "'2024'": 190 + }, + { + "month": "March", + "'2023'": 380, + "'2024'": 360 + }, + { + "month": "April", + "'2023'": 560, + "'2024'": 530 + }, + { + "month": "May", + "'2023'": 650, + "'2024'": 820 + }, + { + "month": "June", + "'2023'": 850, + "'2024'": 930 + }, + { + "month": "July", + "'2023'": 905, + "'2024'": 940 + }, + { + "month": "August", + "'2023'": 940, + "'2024'": 995 + }, + { + "month": "September", + "'2023'": 850, + "'2024'": 830 + }, + { + "month": "October", + "'2023'": 790, + "'2024'": 995 + }, + { + "month": "November", + "'2023'": 500, + "'2024'": 700 + }, + { + "month": "December", + "'2023'": 220, + "'2024'": 10 + } + ] + }, + { + "vehicleId": "A00125", + "utilization": [ + { + "month": "January", + "'2023'": 158, + "'2024'": 200 + }, + { + "month": "February", + "'2023'": 231, + "'2024'": 182 + }, + { + "month": "March", + "'2023'": 372, + "'2024'": 350 + }, + { + "month": "April", + "'2023'": 548, + "'2024'": 515 + }, + { + "month": "May", + "'2023'": 647, + "'2024'": 800 + }, + { + "month": "June", + "'2023'": 839, + "'2024'": 912 + }, + { + "month": "July", + "'2023'": 897, + "'2024'": 924 + }, + { + "month": "August", + "'2023'": 930, + "'2024'": 989 + }, + { + "month": "September", + "'2023'": 843, + "'2024'": 820 + }, + { + "month": "October", + "'2023'": 780, + "'2024'": 987 + }, + { + "month": "November", + "'2023'": 489, + "'2024'": 690 + }, + { + "month": "December", + "'2023'": 210, + "'2024'": 0 + } + ] + } +] diff --git a/projects/fleet-management-grid/src/assets/data/vehicles.json b/projects/fleet-management-grid/src/assets/data/vehicles.json new file mode 100644 index 0000000..a4ffd5d --- /dev/null +++ b/projects/fleet-management-grid/src/assets/data/vehicles.json @@ -0,0 +1,652 @@ +[ + { + "vehicleId": "A00101", + "licensePlate": "KVG 8850", + "make": "Ford", + "model": "Focus", + "type": "Hatchback", + "vin": "1FADP3F24HL312717", + "status": "Active", + "locationCity": "New York, NY", + "locationGps": "40.743828, -74.037982", + "details": { + "generation": "Focus III Hatchback", + "yearOfManufacture": 2016, + "fuelType": "Petrol (Gasoline)", + "doors": 5, + "seats": 5, + "transmission": "Manual", + "engine": "1.0 EcoBoost", + "power": "125 Hp", + "mileage": "73,321 mi", + "cubature": "999 cm3", + "color": "Dark Gray", + "msrp": "$24,358", + "tollPassId": "EZ-733490" + } + }, + { + "vehicleId": "A00102", + "licensePlate": "5VLZ 91", + "make": "Ford", + "model": "Focus", + "type": "Hatchback", + "vin": "WF0KXXGCKCY565571", + "status": "Active", + "locationCity": "Boston, MA", + "locationGps": "42.352104, -71.075238", + "details": { + "generation": "Focus Hatchback", + "yearOfManufacture": 2018, + "fuelType": "Diesel", + "doors": 5, + "seats": 5, + "transmission": "Automatic", + "engine": "2.0 TDI", + "power": "150 Hp", + "mileage": "50,890 mi", + "cubature": "1968 cm3", + "color": "Blue", + "msrp": "$28,900", + "tollPassId": "EZ-733491" + } + }, + { + "vehicleId": "A00103", + "licensePlate": "C10 EFF", + "make": "VW", + "model": "Passat", + "type": "Station Wagon", + "vin": "1VWZYZ33DER623111", + "status": "Available", + "locationCity": "Camden, NJ", + "locationGps": "39.936602, -75.105808", + "details": { + "generation": "Passat B8", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 5, + "seats": 5, + "transmission": "Automatic", + "engine": "1.4 TSI PHEV", + "power": "156 Hp", + "mileage": "33,500 mi", + "cubature": "1395 cm3", + "color": "Black", + "msrp": "$23,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00104", + "licensePlate": "KUM 0269", + "make": "VW", + "model": "Passat", + "type": "Station Wagon", + "vin": "1VWZYZ33ZWE623426", + "status": "Active", + "locationCity": "Philadelphia, PA", + "locationGps": "39.992220, -75.141041", + "details": { + "generation": "Passat B8", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 5, + "seats": 5, + "transmission": "Automatic", + "engine": "1.4 TSI PHEV", + "power": "156 Hp", + "mileage": "33,500 mi", + "cubature": "1395 cm3", + "color": "Gray", + "msrp": "$23,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00105", + "licensePlate": "C10 UAA", + "make": "VW", + "model": "Golf", + "type": "Hatchback", + "vin": "WVWZZZ3BZWE689725", + "status": "Active", + "locationCity": "Camden, NJ", + "locationGps": "39.935249, -75.101969", + "details": { + "generation": "Golf VII", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 5, + "seats": 5, + "transmission": "Automatic", + "engine": "1.5 TSI eHybrid", + "power": "150 Hp", + "mileage": "33,500 mi", + "cubature": "1498 cm3", + "color": "Gray", + "msrp": "$24,000", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00106", + "licensePlate": "C34 VBU", + "make": "Kia", + "model": "Ceed", + "type": "Hatchback", + "vin": "U5YFF23429L032112", + "status": "Available", + "locationCity": "Camden, NJ", + "locationGps": "39.920728, -75.113277", + "details": { + "generation": "Ceed III", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 5, + "seats": 5, + "transmission": "CVT", + "engine": "1.6 GDI Hybrid", + "power": "139 Hp", + "mileage": "33,500 mi", + "cubature": "1598 cm3", + "color": "White", + "msrp": "$23,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00107", + "licensePlate": "MA MN4567", + "make": "Honda", + "model": "Civic", + "type": "Sedan", + "vin": "19XFC2F59HEE67890", + "status": "In Maintenance", + "locationCity": "Cranbury, NJ", + "locationGps": "40.306846, -74.508342", + "details": { + "generation": "Civic Sedan", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 4, + "seats": 5, + "transmission": "CVT", + "engine": "1.8 Hybrid", + "power": "121 Hp", + "mileage": "33,500 mi", + "cubature": "1798 cm3", + "color": "Black", + "msrp": "$23,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00108", + "licensePlate": "NY LK1234", + "make": "Toyota", + "model": "Corolla", + "type": "Sedan", + "vin": "JTDBR32E330C87654", + "status": "In Maintenance", + "locationCity": "Cranbury, NJ", + "locationGps": "40.306846, -74.508342", + "details": { + "generation": "Toyota Corolla Sedan", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 4, + "seats": 5, + "transmission": "CVT", + "engine": "1.8 Hybrid", + "power": "121 Hp", + "mileage": "33,500 mi", + "cubature": "1798 cm3", + "color": "Red", + "msrp": "$23,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00109", + "licensePlate": "PA HJ6543", + "make": "Mazda", + "model": "3", + "type": "Hatchback", + "vin": "JM3KE2BE0E023456", + "status": "Active", + "locationCity": "New York, NY", + "locationGps": "40.731433, -74.042163", + "details": { + "generation": "Mazda 3 Hatchback", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 4, + "seats": 5, + "transmission": "CVT", + "engine": "1.8 Hybrid", + "power": "121 Hp", + "mileage": "33,500 mi", + "cubature": "1798 cm3", + "color": "Black", + "msrp": "$23,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00110", + "licensePlate": "NY QW6789", + "make": "Ford", + "model": "Mustang", + "type": "Coupe", + "vin": "1FAFP40433F278901", + "status": "Available", + "locationCity": "Boston, MA", + "locationGps": "42.378956, -71.064221", + "details": { + "generation": "Ford Mustang Coupe", + "yearOfManufacture": 2019, + "fuelType": "Gasoline", + "doors": 2, + "seats": 4, + "transmission": "Manual", + "engine": "5.0 V8", + "power": "450 Hp", + "mileage": "28,000 mi", + "cubature": "4951 cm3", + "color": "Red", + "msrp": "$45,000", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00111", + "licensePlate": "MA PQ5678", + "make": "Toyota", + "model": "RAV4", + "type": "SUV", + "vin": "2T3WFREV0FW034567", + "status": "Available", + "locationCity": "Boston, MA", + "locationGps": "42.378956, -71.064221", + "details": { + "generation": "Toyota RAV4 Hybrid SUV", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 4, + "seats": 5, + "transmission": "CVT", + "engine": "2.5 Hybrid", + "power": "219 Hp", + "mileage": "33,500 mi", + "cubature": "2487 cm3", + "color": "Black", + "msrp": "$28,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00112", + "licensePlate": "MA RS4321", + "make": "Toyota", + "model": "RAV4", + "type": "SUV", + "vin": "4S4BRBCC0F1245678", + "status": "In Maintenance", + "locationCity": "Cranbury, NJ", + "locationGps": "40.306846, -74.508342", + "details": { + "generation": "Toyota RAV4 Hybrid SUV", + "yearOfManufacture": 2019, + "fuelType": "Hybrid", + "doors": 4, + "seats": 5, + "transmission": "CVT", + "engine": "2.5 Hybrid", + "power": "219 Hp", + "mileage": "33,500 mi", + "cubature": "2487 cm3", + "color": "Silver", + "msrp": "$28,500", + "tollPassId": "EZ-733492" + } + }, + { + "vehicleId": "A00113", + "licensePlate": "NJ FX2154", + "make": "Ford", + "model": "F-150", + "type": "Truck", + "vin": "1FTFW1E58JFB12345", + "status": "Active", + "locationCity": "Trenton, NJ", + "locationGps": "40.217053, -74.742938", + "details": { + "generation": "Ford F-150 SuperCrew", + "yearOfManufacture": 2020, + "fuelType": "Gasoline", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "3.5L V6 EcoBoost", + "power": "400 Hp", + "mileage": "45,200 mi", + "cubature": "3496 cm3", + "color": "Blue", + "msrp": "$35,500", + "tollPassId": "EZ-455678" + } + }, + { + "vehicleId": "A00114", + "licensePlate": "PA RY8723", + "make": "Ford", + "model": "F-150", + "type": "Truck", + "vin": "1FTFW1E59JFB67890", + "status": "Available", + "locationCity": "Philadelphia, PA", + "locationGps": "39.952583, -75.165222", + "details": { + "generation": "Ford F-150 SuperCrew", + "yearOfManufacture": 2021, + "fuelType": "Gasoline", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "5.0L V8", + "power": "395 Hp", + "mileage": "38,700 mi", + "cubature": "5000 cm3", + "color": "Red", + "msrp": "$40,000", + "tollPassId": "EZ-984312" + } + }, + { + "vehicleId": "A00115", + "licensePlate": "NY HK1290", + "make": "Hyundai", + "model": "Kona", + "type": "SUV", + "vin": "KM8K22AA0LU765432", + "status": "In Maintenance", + "locationCity": "New York, NY", + "locationGps": "40.712776, -74.005974", + "details": { + "generation": "Hyundai Kona SE", + "yearOfManufacture": 2022, + "fuelType": "Gasoline", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "2.0L I4", + "power": "147 Hp", + "mileage": "12,300 mi", + "cubature": "1998 cm3", + "color": "Black", + "msrp": "$21,500", + "tollPassId": "EZ-763245" + } + }, + { + "vehicleId": "A00116", + "licensePlate": "NJ HX5678", + "make": "Hyundai", + "model": "ix35", + "type": "SUV", + "vin": "TMAJU81BDJ7896543", + "status": "Active", + "locationCity": "Edison, NJ", + "locationGps": "40.518715, -74.412095", + "details": { + "generation": "Hyundai ix35 2.0 CRDi", + "yearOfManufacture": 2018, + "fuelType": "Diesel", + "doors": 4, + "seats": 5, + "transmission": "Manual", + "engine": "2.0L Diesel", + "power": "181 Hp", + "mileage": "60,500 mi", + "cubature": "1995 cm3", + "color": "Gray", + "msrp": "$24,000", + "tollPassId": "EZ-872345" + } + }, + { + "vehicleId": "A00117", + "licensePlate": "PA KC9087", + "make": "Kia", + "model": "Ceed", + "type": "Hatchback", + "vin": "U5YHN51DGGL345678", + "status": "Available", + "locationCity": "Harrisburg, PA", + "locationGps": "40.273191, -76.886701", + "details": { + "generation": "Kia Ceed GT Line", + "yearOfManufacture": 2021, + "fuelType": "Gasoline", + "doors": 5, + "seats": 5, + "transmission": "Automatic", + "engine": "1.6L Turbo", + "power": "201 Hp", + "mileage": "25,700 mi", + "cubature": "1591 cm3", + "color": "Red", + "msrp": "$27,500", + "tollPassId": "EZ-637829" + } + }, + { + "vehicleId": "A00118", + "licensePlate": "NY FM5678", + "make": "Ford", + "model": "Mustang", + "type": "Coupe", + "vin": "1FA6P8TH2L5146789", + "status": "Active", + "locationCity": "New York, NY", + "locationGps": "40.712776, -74.005974", + "details": { + "generation": "Ford Mustang EcoBoost", + "yearOfManufacture": 2021, + "fuelType": "Gasoline", + "doors": 2, + "seats": 4, + "transmission": "Manual", + "engine": "2.3L Turbo I4", + "power": "310 Hp", + "mileage": "22,400 mi", + "cubature": "2300 cm3", + "color": "Blue", + "msrp": "$27,000", + "tollPassId": "EZ-234567" + } + }, + { + "vehicleId": "A00119", + "licensePlate": "PA EV6453", + "make": "Kia", + "model": "EV6", + "type": "SUV", + "vin": "KNDC4DLC7N5123456", + "status": "Available", + "locationCity": "Philadelphia, PA", + "locationGps": "39.952583, -75.165222", + "details": { + "generation": "Kia EV6 Long Range AWD", + "yearOfManufacture": 2022, + "fuelType": "Electric", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "Dual Motor AWD", + "power": "320 Hp", + "mileage": "18,500 mi", + "cubature": "N/A", + "color": "Silver", + "msrp": "$48,000", + "tollPassId": "EZ-783245" + } + }, + { + "vehicleId": "A00120", + "licensePlate": "NJ TM9876", + "make": "Tesla", + "model": "Model 3", + "type": "Sedan", + "vin": "5YJ3E1EA5LF123456", + "status": "In Maintenance", + "locationCity": "Trenton, NJ", + "locationGps": "40.217053, -74.742938", + "details": { + "generation": "Tesla Model 3 Performance", + "yearOfManufacture": 2021, + "fuelType": "Electric", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "Dual Motor AWD", + "power": "450 Hp", + "mileage": "30,800 mi", + "cubature": "N/A", + "color": "Red", + "msrp": "$57,000", + "tollPassId": "EZ-905678" + } + }, + { + "vehicleId": "A00121", + "licensePlate": "MA EV6789", + "make": "Kia", + "model": "EV6", + "type": "SUV", + "vin": "KNDC4DLC9N5678901", + "status": "Active", + "locationCity": "Boston, MA", + "locationGps": "42.360081, -71.058884", + "details": { + "generation": "Kia EV6 Long Range AWD", + "yearOfManufacture": 2023, + "fuelType": "Electric", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "Dual Motor AWD", + "power": "320 Hp", + "mileage": "9,300 mi", + "cubature": "N/A", + "color": "Red", + "msrp": "$48,500", + "tollPassId": "EZ-456789" + } + }, + { + "vehicleId": "A00122", + "licensePlate": "NJ MZ1234", + "make": "Mazda", + "model": "6", + "type": "Sedan", + "vin": "JM1GL1VM3J1204567", + "status": "Available", + "locationCity": "Edison, NJ", + "locationGps": "40.518715, -74.412095", + "details": { + "generation": "Mazda 6 Signature", + "yearOfManufacture": 2020, + "fuelType": "Gasoline", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "2.5L Turbo I4", + "power": "250 Hp", + "mileage": "41,200 mi", + "cubature": "2488 cm3", + "color": "Black", + "msrp": "$36,000", + "tollPassId": "EZ-874312" + } + }, + { + "vehicleId": "A00123", + "licensePlate": "TX TT9876", + "make": "Toyota", + "model": "Tundra", + "type": "Truck", + "vin": "5TFDY5F18MX123456", + "status": "Active", + "locationCity": "Dallas, TX", + "locationGps": "32.776665, -96.796989", + "details": { + "generation": "Toyota Tundra CrewMax", + "yearOfManufacture": 2021, + "fuelType": "Gasoline", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "5.7L V8", + "power": "381 Hp", + "mileage": "29,100 mi", + "cubature": "5663 cm3", + "color": "Black", + "msrp": "$45,000", + "tollPassId": "EZ-982374" + } + }, + { + "vehicleId": "A00124", + "licensePlate": "NY VW5678", + "make": "VW", + "model": "Touareg", + "type": "SUV", + "vin": "WVGZZZ7PZHD654321", + "status": "Available", + "locationCity": "Albany, NY", + "locationGps": "42.652580, -73.756233", + "details": { + "generation": "VW Touareg V6 TDI", + "yearOfManufacture": 2018, + "fuelType": "Diesel", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "3.0L V6 TDI", + "power": "286 Hp", + "mileage": "58,400 mi", + "cubature": "2967 cm3", + "color": "White", + "msrp": "$50,000", + "tollPassId": "EZ-763214" + } + }, + { + "vehicleId": "A00125", + "licensePlate": "NJ KS4321", + "make": "Kia", + "model": "Sportage", + "type": "SUV", + "vin": "KNDP6CAC5L7632109", + "status": "In Maintenance", + "locationCity": "Newark, NJ", + "locationGps": "40.735657, -74.172363", + "details": { + "generation": "Kia Sportage SX Turbo", + "yearOfManufacture": 2020, + "fuelType": "Gasoline", + "doors": 4, + "seats": 5, + "transmission": "Automatic", + "engine": "2.0L Turbo I4", + "power": "237 Hp", + "mileage": "41,500 mi", + "cubature": "1998 cm3", + "color": "White", + "msrp": "$31,500", + "tollPassId": "EZ-897341" + } + } +] diff --git a/projects/fleet-management-grid/src/index.html b/projects/fleet-management-grid/src/index.html new file mode 100644 index 0000000..3b09f62 --- /dev/null +++ b/projects/fleet-management-grid/src/index.html @@ -0,0 +1,18 @@ + + + + + MasterDetailGrid + + + + + + + + + + diff --git a/projects/fleet-management-grid/src/main.ts b/projects/fleet-management-grid/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/projects/fleet-management-grid/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/projects/fleet-management-grid/src/styles.scss b/projects/fleet-management-grid/src/styles.scss new file mode 100644 index 0000000..a8b54f1 --- /dev/null +++ b/projects/fleet-management-grid/src/styles.scss @@ -0,0 +1,9 @@ +@use "igniteui-angular/theming" as *; + +@include core(); +@include typography(); +@include theme( + $palette: $dark-material-palette, + $schema: $dark-material-schema +); + diff --git a/projects/fleet-management-grid/tsconfig.app.json b/projects/fleet-management-grid/tsconfig.app.json new file mode 100644 index 0000000..3775b37 --- /dev/null +++ b/projects/fleet-management-grid/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/projects/fleet-management-grid/tsconfig.json b/projects/fleet-management-grid/tsconfig.json new file mode 100644 index 0000000..5525117 --- /dev/null +++ b/projects/fleet-management-grid/tsconfig.json @@ -0,0 +1,27 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "isolatedModules": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022" + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/projects/fleet-management-grid/tsconfig.spec.json b/projects/fleet-management-grid/tsconfig.spec.json new file mode 100644 index 0000000..5fb748d --- /dev/null +++ b/projects/fleet-management-grid/tsconfig.spec.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/src/app/views/fleet-management/fleet-management-view.component.html b/src/app/views/fleet-management/fleet-management-view.component.html index e69de29..c458e4e 100644 --- a/src/app/views/fleet-management/fleet-management-view.component.html +++ b/src/app/views/fleet-management/fleet-management-view.component.html @@ -0,0 +1 @@ + diff --git a/src/app/views/fleet-management/fleet-management-view.component.scss b/src/app/views/fleet-management/fleet-management-view.component.scss index 68bf19d..cdc97cd 100644 --- a/src/app/views/fleet-management/fleet-management-view.component.scss +++ b/src/app/views/fleet-management/fleet-management-view.component.scss @@ -1,5 +1,22 @@ +@use "igniteui-angular/theming" as *; + +@include core(); +@include typography(); +@include theme( + $palette: $dark-material-palette, + $schema: $dark-material-schema +); + :host { display: block; height: 100%; width: 100%; + + ::ng-deep { + @include typography(); + @include theme( + $palette: $dark-material-palette, + $schema: $dark-material-schema + ); + } } diff --git a/src/app/views/fleet-management/fleet-management-view.component.ts b/src/app/views/fleet-management/fleet-management-view.component.ts index 2d12f11..9755546 100644 --- a/src/app/views/fleet-management/fleet-management-view.component.ts +++ b/src/app/views/fleet-management/fleet-management-view.component.ts @@ -1,9 +1,10 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { FleetManagementGridComponent } from 'projects/fleet-management-grid/src/app/fleet-management-grid/fleet-management-grid.component'; @Component({ standalone: true, selector: 'fleet-management-view', - imports: [], + imports: [FleetManagementGridComponent], templateUrl: './fleet-management-view.component.html', styleUrl: './fleet-management-view.component.scss', encapsulation: ViewEncapsulation.Emulated