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
+
+
+
+
+
+
+
+
+
+ Utilization
+
+
+
+
+
+
Utilization per Month
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ cell.value }}
+
+ Current
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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