diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
new file mode 100644
index 0000000..3945adb
--- /dev/null
+++ b/.github/workflows/node.js.yml
@@ -0,0 +1,30 @@
+# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
+
+name: Node.js CI
+
+on:
+ push:
+ branches: [ "vnext", "master" ]
+ pull_request:
+ branches: [ "vnext", "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: [20.x, 22.x]
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: 'npm'
+ - run: npm ci
+ - run: npm run build --if-present
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/azure-pipelines/igniteui-wc-grid-examples.yml b/azure-pipelines/igniteui-wc-grid-examples.yml
new file mode 100644
index 0000000..18d56f7
--- /dev/null
+++ b/azure-pipelines/igniteui-wc-grid-examples.yml
@@ -0,0 +1,175 @@
+trigger:
+ branches:
+ include:
+ - vnext
+ - master
+
+# This pipeline is meant to build specific branches for deployment. It's not meant to be a part of PR validation.
+pr: none
+
+parameters:
+- name: isVerbose
+ displayName: 'Get verbose output from steps - where configurable'
+ type: boolean
+ default: false
+- name: shouldCleanPostExecution
+ displayName: 'Clean all pipeline dirs after the pipeline finishes?'
+ type: boolean
+ default: true
+
+
+name: $(Year:yyyy).$(Month).$(DayOfMonth)-r$(Rev:.r)
+
+stages:
+- stage: Build
+ pool:
+ vmImage: ubuntu-latest
+
+ demands: npm
+ jobs:
+ - job: BuildSamples
+ steps:
+ - checkout: 'self'
+ clean: true
+
+ - task: NodeTool@0
+ displayName: 'Install Node'
+ inputs:
+ versionSource: 'spec'
+ versionSpec: '18.x'
+
+ - task: Bash@3
+ displayName: 'Create download artifact per sample (Shell)'
+ inputs:
+ targetType: 'inline'
+ script: |
+ # Define the root path where projects are located
+ rootPath="$(Build.SourcesDirectory)/projects"
+
+ # Get all first-level subdirectories in the specified root path
+ subdirectories=$(find "$rootPath" -mindepth 1 -maxdepth 1 -type d)
+
+ for subdirectory in $subdirectories; do
+ # Extract the directory name from the path
+ dirName=$(basename "$subdirectory")
+
+ # Give each sample a version in its package.json file - for traceability
+ cd "$subdirectory"
+ echo "Calling npm version command"
+ npm version $(Build.BuildNumber) --no-git-tag-version
+
+ # Check if the directory name is already camel-case
+ if [[ "$dirName" =~ ^[A-Z]+[a-z]+([A-Z][a-z]*)*$ ]]; then
+ # If already camel-case, print it as is
+ echo "$dirName"
+ else
+ # Convert to camel-case (capitalize first letters and remove hyphens)
+ dirName=$(echo "$dirName" | sed -E 's/(^|-)([a-z])/\U\2/g')
+
+ fi
+
+ echo "Processing directory: $dirName"
+
+ # Define the name for the zip file
+ zipName="$(Build.ArtifactStagingDirectory)/IgniteUI_WebComponents_ApplicationSample_${dirName}_Source.zip"
+ echo "Creating ZIP: $zipName"
+
+ # Compress the directory into a ZIP file
+ (cd "$subdirectory" && zip -r "$zipName" .)
+ done
+
+ echo "All sample projects have been compressed and saved to the artifacts directory."
+
+ - task: PublishPipelineArtifact@1
+ displayName: 'Publish Samples Sources zips'
+ inputs:
+ targetPath: '$(Build.ArtifactStagingDirectory)'
+ artifact: 'samplesSourcesZips'
+ publishLocation: 'pipeline'
+
+ - task: Npm@1
+ displayName: 'Register licensed npm registry in .npmrc'
+ inputs:
+ verbose: ${{ parameters.isVerbose }}
+ command: 'custom'
+ workingDir: '$(Build.SourcesDirectory)'
+ customCommand: 'config -L project set @infragistics:registry=https://packages.infragistics.com/npm/js-licensed/'
+ customEndpoint: 'public proget'
+
+ - task: npmAuthenticate@0
+ displayName: '[IG Production ProGet] npm authenticate'
+ inputs:
+ workingFile: '$(Build.SourcesDirectory)/.npmrc'
+ customEndpoint: 'public proget'
+
+ - task: Npm@1
+ displayName: 'npm install --legacy-peer-deps'
+ inputs:
+ verbose: ${{ parameters.isVerbose }}
+ command: custom
+ workingDir: '$(Build.SourcesDirectory)'
+ customCommand: 'install --legacy-peer-deps'
+ customEndpoint: 'public proget'
+
+ - task: Npm@1
+ displayName: 'Install Ignite UI CLI globally'
+ inputs:
+ verbose: ${{ parameters.isVerbose }}
+ command: custom
+ workingDir: '$(Build.SourcesDirectory)'
+ customCommand: 'install -g igniteui-cli'
+
+ - task: PowerShell@2
+ displayName: 'Update vite.config to licensed'
+ inputs:
+ failOnStderr: true
+ showWarnings: true
+ workingDirectory: '$(Build.SourcesDirectory)'
+ targetType: 'inline'
+ script: |
+ #Update vite.config.ts
+ $viteConfig = Get-Content -Raw ./vite.config.ts
+ $updatedViteConfig = $viteConfig -replace 'igniteui-webcomponents-', '@infragistics/igniteui-webcomponents-'
+ $updatedViteConfig | Set-Content ./vite.config.ts
+
+ - task: Bash@3
+ displayName: 'Run Ignite UI Upgrade in Root and All Project Subdirectories'
+ inputs:
+ targetType: 'inline'
+ script: |
+ echo "Running Ignite UI package upgrade at root level..."
+ npx ig upgrade-packages --skip-install
+
+ echo "Running Ignite UI package upgrade in all project subdirectories..."
+ for dir in $(Build.SourcesDirectory)/projects/*/; do
+ if [ -d "$dir" ]; then
+ echo "Processing: $dir"
+ (cd "$dir" && npx ig upgrade-packages --skip-install)
+ fi
+ done
+
+ - task: Npm@1
+ displayName: 'npm install --legacy-peer-deps'
+ inputs:
+ verbose: ${{ parameters.isVerbose }}
+ command: custom
+ workingDir: '$(Build.SourcesDirectory)'
+ customCommand: 'install --legacy-peer-deps'
+
+ - task: Npm@1
+ displayName: 'npm run build:ci'
+ inputs:
+ verbose: ${{ parameters.isVerbose }}
+ command: custom
+ workingDir: '$(Build.SourcesDirectory)'
+ customCommand: 'run build:ci'
+
+ - task: PublishPipelineArtifact@1
+ displayName: 'Publish app'
+ inputs:
+ targetPath: '$(Build.SourcesDirectory)/dist'
+ artifact: 'dist.grid-demos-wc'
+ publishLocation: 'pipeline'
+
+ - ${{ if eq(parameters.shouldCleanPostExecution, true) }}:
+ - task: PostBuildCleanup@4
diff --git a/ignite-ui-cli.json b/ignite-ui-cli.json
new file mode 100644
index 0000000..fa4ee3a
--- /dev/null
+++ b/ignite-ui-cli.json
@@ -0,0 +1,16 @@
+{
+ "version": "$(cliVersion)",
+ "project": {
+ "defaultPort": 8000,
+ "framework": "webcomponents",
+ "projectTemplate": "$(projectTemplate)",
+ "projectType": "igc-ts",
+ "theme": "$(theme)",
+ "isBundle": false,
+ "components": [],
+ "sourceFiles": [],
+ "isShowcase": false,
+ "version": ""
+ },
+ "build": {}
+}
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..efaedb5
--- /dev/null
+++ b/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+ Web Components Sample Apps
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..cb8d3bc
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2471 @@
+{
+ "name": "grid-demos-wc",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "grid-demos-wc",
+ "version": "0.0.0",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.13",
+ "@igniteui/material-icons-extended": "^3.1.0",
+ "@vaadin/router": "^2.0.0",
+ "igniteui-theming": "^17.0.0",
+ "igniteui-webcomponents": "^5.3.0",
+ "igniteui-webcomponents-charts": "^5.3.0",
+ "igniteui-webcomponents-core": "^5.4.0",
+ "igniteui-webcomponents-grids": "^5.4.0",
+ "igniteui-webcomponents-maps": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.0"
+ },
+ "devDependencies": {
+ "sass-embedded": "^1.86.0",
+ "typescript": "~5.7.2",
+ "vite": "^6.3.4",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+ },
+ "node_modules/@bufbuild/protobuf": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.5.tgz",
+ "integrity": "sha512-/g5EzJifw5GF8aren8wZ/G5oMuPoGeS6MQD3ca8ddcvdXR5UELUfdTZITCGNhNXynY/AYl3Z4plmxdj/tRl/hQ==",
+ "dev": true,
+ "license": "(Apache-2.0 AND BSD-3-Clause)"
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
+ "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz",
+ "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz",
+ "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz",
+ "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz",
+ "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz",
+ "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz",
+ "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz",
+ "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz",
+ "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz",
+ "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz",
+ "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz",
+ "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz",
+ "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz",
+ "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz",
+ "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz",
+ "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz",
+ "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz",
+ "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz",
+ "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz",
+ "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz",
+ "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz",
+ "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz",
+ "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz",
+ "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz",
+ "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+ "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg=="
+ },
+ "node_modules/@igniteui/material-icons-extended": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@igniteui/material-icons-extended/-/material-icons-extended-3.1.0.tgz",
+ "integrity": "sha512-gtkIaeOHAWbppCAdVFNtEhnJ/tML6q4hIHF8zM5Fo0THJmu2+iJvBSCNyb8/c7P+mr1ImNqwhKuu+PqUlz493A=="
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
+ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ=="
+ },
+ "node_modules/@lit-labs/virtualizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.1.0.tgz",
+ "integrity": "sha512-I79sNaalK9rD6FWO/AoxBMnA6jjNBrQu7F6lzz8W/GkQLcqveMWK3IrJAilso+XeFFn7BvlxBv6FqZaoMt+Qkg==",
+ "dependencies": {
+ "lit": "^3.2.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/@lit/context": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.5.tgz",
+ "integrity": "sha512-57KyQD9of4RlBXkOIF1N40/BLY1j+1wLB5wRmB207+VtwNIRfXbanLsB6BsnFYXrycOUIp2d8gqTNGwuW1lE9Q==",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.2 || ^2.1.0"
+ }
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.0.tgz",
+ "integrity": "sha512-L2qyoZSQClcBmq0qajBVbhYEcG6iK0XfLn66ifLe/RfC0/ihpc+pl0Wdn8bJ8o+hj38cG0fGXRgSS20MuXn7qA==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz",
+ "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz",
+ "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz",
+ "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz",
+ "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz",
+ "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz",
+ "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz",
+ "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz",
+ "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz",
+ "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz",
+ "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz",
+ "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz",
+ "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz",
+ "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz",
+ "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz",
+ "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz",
+ "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz",
+ "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz",
+ "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz",
+ "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz",
+ "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
+ "dev": true
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
+ },
+ "node_modules/@vaadin/router": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz",
+ "integrity": "sha512-IjOlzuUsrVhfBId+ypcdDLM3+GZHo64DUlkr8IjFe04A4kMvt0zVFIpPH03X52/tMiwyYOF0Sw6p53DXkWiZcA==",
+ "dependencies": {
+ "@vaadin/vaadin-usage-statistics": "^2.1.2",
+ "path-to-regexp": "^6.3.0",
+ "type-fest": "^4.26.1"
+ }
+ },
+ "node_modules/@vaadin/vaadin-development-mode-detector": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.7.tgz",
+ "integrity": "sha512-9FhVhr0ynSR3X2ao+vaIEttcNU5XfzCbxtmYOV8uIRnUCtNgbvMOIcyGBvntsX9I5kvIP2dV3cFAOG9SILJzEA=="
+ },
+ "node_modules/@vaadin/vaadin-usage-statistics": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.3.tgz",
+ "integrity": "sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@vaadin/vaadin-development-mode-detector": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/buffer-builder": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz",
+ "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==",
+ "dev": true,
+ "license": "MIT/X11"
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/colorjs.io": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz",
+ "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz",
+ "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.2",
+ "@esbuild/android-arm": "0.25.2",
+ "@esbuild/android-arm64": "0.25.2",
+ "@esbuild/android-x64": "0.25.2",
+ "@esbuild/darwin-arm64": "0.25.2",
+ "@esbuild/darwin-x64": "0.25.2",
+ "@esbuild/freebsd-arm64": "0.25.2",
+ "@esbuild/freebsd-x64": "0.25.2",
+ "@esbuild/linux-arm": "0.25.2",
+ "@esbuild/linux-arm64": "0.25.2",
+ "@esbuild/linux-ia32": "0.25.2",
+ "@esbuild/linux-loong64": "0.25.2",
+ "@esbuild/linux-mips64el": "0.25.2",
+ "@esbuild/linux-ppc64": "0.25.2",
+ "@esbuild/linux-riscv64": "0.25.2",
+ "@esbuild/linux-s390x": "0.25.2",
+ "@esbuild/linux-x64": "0.25.2",
+ "@esbuild/netbsd-arm64": "0.25.2",
+ "@esbuild/netbsd-x64": "0.25.2",
+ "@esbuild/openbsd-arm64": "0.25.2",
+ "@esbuild/openbsd-x64": "0.25.2",
+ "@esbuild/sunos-x64": "0.25.2",
+ "@esbuild/win32-arm64": "0.25.2",
+ "@esbuild/win32-ia32": "0.25.2",
+ "@esbuild/win32-x64": "0.25.2"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fdir": {
+ "version": "6.4.4",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
+ "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/igniteui-theming": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/igniteui-theming/-/igniteui-theming-17.0.0.tgz",
+ "integrity": "sha512-ktxEk5Xgq2k1Lv+A54W+MtFtlo4Jdtg2L59Pk9zJGx56upjzxuqSHJXdbnTCnbPZmx4xPYxdWkpVKylk47GPQA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "sass": "^1.69.5"
+ }
+ },
+ "node_modules/igniteui-webcomponents": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-5.3.0.tgz",
+ "integrity": "sha512-K5PPwfT2ECp/W3+mNapt1HW6PRIQK7DkehK4SbsCc513LwTzBL1gfHYax0Hk3eiPJP2M/8ANBJ3yDZdRy6YzXQ==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.0",
+ "@lit-labs/virtualizer": "^2.1.0",
+ "@lit/context": "^1.1.0",
+ "lit": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/igniteui-webcomponents-charts": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-charts/-/igniteui-webcomponents-charts-5.4.0.tgz",
+ "integrity": "sha512-PsJdwh67xioJxg7LRugYJWezMTVZG+uHXRH3xUtiYVgC5WeW26T4yP8biKG/BCxG7DJ0agP5W4spshvJq5T2Ig==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-core": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-core/-/igniteui-webcomponents-core-5.4.0.tgz",
+ "integrity": "sha512-JKQ0CXPprcHwEyV7uO62YmONcfN+0ExqeSiW+X3Ge390aetIW49HT0ynph6rZAg3UP4NVeh2i0OitmH7jgkQUA==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-grids": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-grids/-/igniteui-webcomponents-grids-5.4.0.tgz",
+ "integrity": "sha512-qt9SEMf+//pbDly5uOo/O+e6DWgSTLC7fdop2RhzlNZYF+ygPRe/PXijtbo1UCr1QvXjTwNYRzQ3zFGoUg3ILw==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0",
+ "igniteui-webcomponents-inputs": "5.4.0",
+ "igniteui-webcomponents-layouts": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-inputs": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-inputs/-/igniteui-webcomponents-inputs-5.4.0.tgz",
+ "integrity": "sha512-sGVwoHNsf9P7aEEyz+zyKgb5K6s+SHn7Pi9f3m/XJb2CGIaGgEkBWyA+nQocsBHGegPFE13LtGDhd2fjo8WJAQ==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-layouts": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-layouts/-/igniteui-webcomponents-layouts-5.4.0.tgz",
+ "integrity": "sha512-Nbg3dEKX2xYTSoPHbyoQdRvcsemEBk+Ej+QM7qfZFw0G+uqyIf11hgOWvm8WEmMzFGnfbqpS43V8j2MEAc/LnA==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0",
+ "igniteui-webcomponents-inputs": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-maps": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-maps/-/igniteui-webcomponents-maps-5.4.0.tgz",
+ "integrity": "sha512-OMrfEXgeVOwQu9K0QQRgp4pOfMg01QY1RmGj4WUyqojJt5L07WaE2evq+Sl4DwIh8Fz5nL5RPx7bBnhq6grj1w==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-charts": "5.4.0",
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
+ "license": "MIT"
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/lit": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz",
+ "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==",
+ "dependencies": {
+ "@lit/reactive-element": "^2.1.0",
+ "lit-element": "^4.2.0",
+ "lit-html": "^3.3.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.0.tgz",
+ "integrity": "sha512-MGrXJVAI5x+Bfth/pU9Kst1iWID6GHDLEzFEnyULB/sFiRLgkd8NPK/PeeXxktA3T6EIIaq8U3KcbTU5XFcP2Q==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.1.0",
+ "lit-html": "^3.3.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.0.tgz",
+ "integrity": "sha512-RHoswrFAxY2d8Cf2mm4OZ1DgzCoBKUKSPvA1fhtSELxUERq2aQQ2h05pO9j81gS1o7RIRJ+CePLogfyahwmynw==",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz",
+ "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.7"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.40.0",
+ "@rollup/rollup-android-arm64": "4.40.0",
+ "@rollup/rollup-darwin-arm64": "4.40.0",
+ "@rollup/rollup-darwin-x64": "4.40.0",
+ "@rollup/rollup-freebsd-arm64": "4.40.0",
+ "@rollup/rollup-freebsd-x64": "4.40.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.40.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.40.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.40.0",
+ "@rollup/rollup-linux-arm64-musl": "4.40.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.40.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.40.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.40.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.40.0",
+ "@rollup/rollup-linux-x64-gnu": "4.40.0",
+ "@rollup/rollup-linux-x64-musl": "4.40.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.40.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.40.0",
+ "@rollup/rollup-win32-x64-msvc": "4.40.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.1.tgz",
+ "integrity": "sha512-Yaok4XELL1L9Im/ZUClKu//D2OP1rOljKj0Gf34a+GzLbMveOzL7CfqYo+JUa5Xt1nhTCW+OcKp/FtR7/iqj1w==",
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/sass-embedded": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.86.1.tgz",
+ "integrity": "sha512-LMJvytHh7lIUtmjGCqpM4cRdIDvPllLJKznNIK4L7EZJ77BLeUFoOSRXEOHq4G4gqy5CVhHUKlHslzCANkDOhQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@bufbuild/protobuf": "^2.0.0",
+ "buffer-builder": "^0.2.0",
+ "colorjs.io": "^0.5.0",
+ "immutable": "^5.0.2",
+ "rxjs": "^7.4.0",
+ "supports-color": "^8.1.1",
+ "sync-child-process": "^1.0.2",
+ "varint": "^6.0.0"
+ },
+ "bin": {
+ "sass": "dist/bin/sass.js"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "optionalDependencies": {
+ "sass-embedded-android-arm": "1.86.1",
+ "sass-embedded-android-arm64": "1.86.1",
+ "sass-embedded-android-ia32": "1.86.1",
+ "sass-embedded-android-riscv64": "1.86.1",
+ "sass-embedded-android-x64": "1.86.1",
+ "sass-embedded-darwin-arm64": "1.86.1",
+ "sass-embedded-darwin-x64": "1.86.1",
+ "sass-embedded-linux-arm": "1.86.1",
+ "sass-embedded-linux-arm64": "1.86.1",
+ "sass-embedded-linux-ia32": "1.86.1",
+ "sass-embedded-linux-musl-arm": "1.86.1",
+ "sass-embedded-linux-musl-arm64": "1.86.1",
+ "sass-embedded-linux-musl-ia32": "1.86.1",
+ "sass-embedded-linux-musl-riscv64": "1.86.1",
+ "sass-embedded-linux-musl-x64": "1.86.1",
+ "sass-embedded-linux-riscv64": "1.86.1",
+ "sass-embedded-linux-x64": "1.86.1",
+ "sass-embedded-win32-arm64": "1.86.1",
+ "sass-embedded-win32-ia32": "1.86.1",
+ "sass-embedded-win32-x64": "1.86.1"
+ }
+ },
+ "node_modules/sass-embedded-android-arm": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.86.1.tgz",
+ "integrity": "sha512-bcmKB67uCb9znune+QsE6cWIiKAHE9P+24/9vDPHwwN3BmmH1B/4mznNKKakdYMuxpgbeLrPcEScHEpQbdrIpA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-arm64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.86.1.tgz",
+ "integrity": "sha512-SMY79YhNfq/gdz8MHqwEsnf/IjSnQFAmSEGDDv0vjL0yy9VZC/zhsxpsho8vbFEvTSEGFFlkGgPdzDuoozRrOg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-ia32": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.86.1.tgz",
+ "integrity": "sha512-AX6I5qS8GbgcbBJ1o3uKVI5/7tq6evg/BO/wa0XaNqnzP4i/PojBaGh7EcZrg/spl//SfpS55eA18a0/AOi71w==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-riscv64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.86.1.tgz",
+ "integrity": "sha512-Af6ZzRTRfIfx6KICJZ19je6OjOXhxo+v6z/lf/SXm5/1EaHGpGC5xIw4ivtj4nNINNoqkykfIDCjpzm1qWEPPQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-x64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.86.1.tgz",
+ "integrity": "sha512-GW47z1AH8gXB7IG6EUbC5aDBDtiITeP5nUfEenE6vaaN0H17mBjIwSnEcKPPA1IdxzDpj+4bE/SGfiF0W/At4g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-darwin-arm64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.86.1.tgz",
+ "integrity": "sha512-grBnDW5Rg+mEmZM7I9hJySS4MMXDwLMd+RyegQnr+SIJ3WA807Cw830+raALxgDY+UKKKhVEoq3FgbTo40Awgw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-darwin-x64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.86.1.tgz",
+ "integrity": "sha512-XxSCMcmeADNouiJAr8G1oRnEhkivHKVLV5DRpfFnUK5FqtFCuSk3K18I+xIfpQDeZnjRL3t2VjsmEJuFiBYV8w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-arm": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.86.1.tgz",
+ "integrity": "sha512-Z57ZUcWPuoOHpnl3TiUf/x9wWF2dFtkjdv7hZQpFXYwK5eudHFeBErK6KNCos6jkif1KyeFELXT/HWOznitU/w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-arm64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.86.1.tgz",
+ "integrity": "sha512-zchms0BtaOrkvfvjRnl1PDWK931DxAeYEY2yKQceO/0OFtcBz1r480Kh/RjIffTNreJqIr9Mx4wFdP+icKwLpg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-ia32": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.86.1.tgz",
+ "integrity": "sha512-WHntVnCgpiJPCmTeQrn5rtl1zJdd693TwpNGAFPzKD4FILPcVBKtWutl7COL6bKe/mKTf9OW0t6GBJ6mav2hAA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-arm": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.86.1.tgz",
+ "integrity": "sha512-DlPpyp3bIL8YMtxR22hkWBtuZY6ch3KAmQvqIONippPv96WTHi1iq5jclbE1YXpDtI8Wcus0x6apoDSKq8o95g==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-arm64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.86.1.tgz",
+ "integrity": "sha512-CwuHMRWSJFByHpgqcVtCSt29dMWhr0lpUTjaBCh9xOl0Oyz89dIqOxA0aMq+XU+thaDtOziJtMIfW6l35ZeykQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-ia32": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.86.1.tgz",
+ "integrity": "sha512-yjvVpAW1YS0VQNnIUtZTf0IrRDMa0wRjFWUtsLthVIxuXyjLy44+YULlfduxqcZe3rvI4+EqT7GorvviWo9NfQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-riscv64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.86.1.tgz",
+ "integrity": "sha512-0zCUOMwX/hwPV1zimxM46dq/MdATSqbw6G646DwQ3/2V2Db1t9lfXBZqSavx8p/cqRp1JYTUPbJQV1gT4J7NYw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-x64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.86.1.tgz",
+ "integrity": "sha512-8KJ6kEj1N16V9E0g5PDSd4aVe1LwcVKROJcVqnzTKPMa/4j2VuNWep7D81OYchdQMm9Egn1RqV0jCwm0b2aSHQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-riscv64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.86.1.tgz",
+ "integrity": "sha512-rNJ1EfIkQpvBfMS1fBdyb+Gsji4yK0AwsV1T7NEcy21yDxDt7mdCgkAJiaN9qf7UEXuCuueQoed7WZoDaSpjww==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-x64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.86.1.tgz",
+ "integrity": "sha512-DGCdUoYRRUKzRZz/q7plbB5Nean2+Uk4CqKF4RWAU0v1tHnDKKWmYfETryhWdB2WJM8QSn7O8qRebe6FCobB5g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-arm64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.86.1.tgz",
+ "integrity": "sha512-qRLZR3yLuk/3y64YhcltkwGclhPoK6EdiLP1e5SVw5+kughcs+mNUZ3rdvSAmCSA4vDv+XOiOjRpjxmpeon95Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-ia32": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.86.1.tgz",
+ "integrity": "sha512-o860a7/YGHZnGeY3l/e6yt3+ZMeDdDHmthTaKnw2wpJNEq0nmytYLTJQmjWPxEMz7O8AQ0LtcbDDrhivSog+KQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-x64": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.86.1.tgz",
+ "integrity": "sha512-7Z3wsVKfseJodmv689dDEV/JrXJH5TAclWNvHrEYW5BtoViOTU2pIDxRgLYzdKU9teIw5g6R0nJZb9M105oIKA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass/node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/sass/node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/sync-child-process": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz",
+ "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sync-message-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/sync-message-port": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz",
+ "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
+ "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
+ },
+ "node_modules/type-fest": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.40.0.tgz",
+ "integrity": "sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw==",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vite": {
+ "version": "6.3.4",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz",
+ "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-static-copy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz",
+ "integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "p-map": "^7.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f013c3e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "grid-demos-wc",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "dev:finance": "vite projects/finance-grid",
+ "dev:erp": "vite projects/erp-hgrid",
+ "dev:fleet": "vite projects/fleet-management-grid",
+ "dev:hr": "vite projects/hr-portal",
+ "dev:sales": "vite projects/sales-grid",
+ "build": "tsc && vite build",
+ "build:ci": "tsc && vite build --mode ci",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.13",
+ "@igniteui/material-icons-extended": "^3.1.0",
+ "@vaadin/router": "^2.0.0",
+ "igniteui-theming": "^17.0.0",
+ "igniteui-webcomponents": "^5.3.0",
+ "igniteui-webcomponents-charts": "^5.3.0",
+ "igniteui-webcomponents-core": "^5.4.0",
+ "igniteui-webcomponents-grids": "^5.4.0",
+ "igniteui-webcomponents-maps": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.0"
+ },
+ "devDependencies": {
+ "sass-embedded": "^1.86.0",
+ "typescript": "~5.7.2",
+ "vite": "^6.3.4",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+}
diff --git a/projects/erp-hgrid/.gitignore b/projects/erp-hgrid/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/projects/erp-hgrid/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/projects/erp-hgrid/ignite-ui-cli.json b/projects/erp-hgrid/ignite-ui-cli.json
new file mode 100644
index 0000000..fa4ee3a
--- /dev/null
+++ b/projects/erp-hgrid/ignite-ui-cli.json
@@ -0,0 +1,16 @@
+{
+ "version": "$(cliVersion)",
+ "project": {
+ "defaultPort": 8000,
+ "framework": "webcomponents",
+ "projectTemplate": "$(projectTemplate)",
+ "projectType": "igc-ts",
+ "theme": "$(theme)",
+ "isBundle": false,
+ "components": [],
+ "sourceFiles": [],
+ "isShowcase": false,
+ "version": ""
+ },
+ "build": {}
+}
diff --git a/projects/erp-hgrid/index.html b/projects/erp-hgrid/index.html
new file mode 100644
index 0000000..0b59ea4
--- /dev/null
+++ b/projects/erp-hgrid/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+ ERP Inventory
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/package-lock.json b/projects/erp-hgrid/package-lock.json
new file mode 100644
index 0000000..db74e2c
--- /dev/null
+++ b/projects/erp-hgrid/package-lock.json
@@ -0,0 +1,1886 @@
+{
+ "name": "erp-hgrid",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "erp-hgrid",
+ "version": "0.0.0",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.13",
+ "igniteui-webcomponents": "^5.3.0-RC.1",
+ "igniteui-webcomponents-charts": "^5.3.0",
+ "igniteui-webcomponents-core": "^5.4.0",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.3"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.3.1",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
+ "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
+ "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
+ "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
+ "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
+ "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
+ "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
+ "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
+ "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
+ "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
+ "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
+ "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
+ "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
+ "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
+ "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
+ "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
+ "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
+ "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
+ "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
+ "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
+ "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+ "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg=="
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
+ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ=="
+ },
+ "node_modules/@lit-labs/virtualizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.1.0.tgz",
+ "integrity": "sha512-I79sNaalK9rD6FWO/AoxBMnA6jjNBrQu7F6lzz8W/GkQLcqveMWK3IrJAilso+XeFFn7BvlxBv6FqZaoMt+Qkg==",
+ "dependencies": {
+ "lit": "^3.2.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/@lit/context": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.4.tgz",
+ "integrity": "sha512-0b8wOWNUPcXjGHFtVP+odwhrZBZw+PpCjKWn8IGO10iHT95Xd6FcUAxe1aE7PUtOBvHZoxvrfdBzweYnDW7VNQ==",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.2 || ^2.0.0"
+ }
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz",
+ "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz",
+ "integrity": "sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz",
+ "integrity": "sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz",
+ "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz",
+ "integrity": "sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz",
+ "integrity": "sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz",
+ "integrity": "sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz",
+ "integrity": "sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz",
+ "integrity": "sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz",
+ "integrity": "sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz",
+ "integrity": "sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz",
+ "integrity": "sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz",
+ "integrity": "sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz",
+ "integrity": "sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz",
+ "integrity": "sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz",
+ "integrity": "sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz",
+ "integrity": "sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz",
+ "integrity": "sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz",
+ "integrity": "sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz",
+ "integrity": "sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "devOptional": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
+ "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.1",
+ "@esbuild/android-arm": "0.25.1",
+ "@esbuild/android-arm64": "0.25.1",
+ "@esbuild/android-x64": "0.25.1",
+ "@esbuild/darwin-arm64": "0.25.1",
+ "@esbuild/darwin-x64": "0.25.1",
+ "@esbuild/freebsd-arm64": "0.25.1",
+ "@esbuild/freebsd-x64": "0.25.1",
+ "@esbuild/linux-arm": "0.25.1",
+ "@esbuild/linux-arm64": "0.25.1",
+ "@esbuild/linux-ia32": "0.25.1",
+ "@esbuild/linux-loong64": "0.25.1",
+ "@esbuild/linux-mips64el": "0.25.1",
+ "@esbuild/linux-ppc64": "0.25.1",
+ "@esbuild/linux-riscv64": "0.25.1",
+ "@esbuild/linux-s390x": "0.25.1",
+ "@esbuild/linux-x64": "0.25.1",
+ "@esbuild/netbsd-arm64": "0.25.1",
+ "@esbuild/netbsd-x64": "0.25.1",
+ "@esbuild/openbsd-arm64": "0.25.1",
+ "@esbuild/openbsd-x64": "0.25.1",
+ "@esbuild/sunos-x64": "0.25.1",
+ "@esbuild/win32-arm64": "0.25.1",
+ "@esbuild/win32-ia32": "0.25.1",
+ "@esbuild/win32-x64": "0.25.1"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "devOptional": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/igniteui-webcomponents": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-5.3.0.tgz",
+ "integrity": "sha512-K5PPwfT2ECp/W3+mNapt1HW6PRIQK7DkehK4SbsCc513LwTzBL1gfHYax0Hk3eiPJP2M/8ANBJ3yDZdRy6YzXQ==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.0",
+ "@lit-labs/virtualizer": "^2.1.0",
+ "@lit/context": "^1.1.0",
+ "lit": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/igniteui-webcomponents-charts": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-charts/-/igniteui-webcomponents-charts-5.3.0.tgz",
+ "integrity": "sha512-2HHoSkPeaO1XDQFME+sdLDsDSxQ4c52zpgl9zF5m0juB3p5CLtfeft+c17qg5s11k+sVwa2ChjqxGf2pScu1rg==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-core": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-core/-/igniteui-webcomponents-core-5.4.0.tgz",
+ "integrity": "sha512-JKQ0CXPprcHwEyV7uO62YmONcfN+0ExqeSiW+X3Ge390aetIW49HT0ynph6rZAg3UP4NVeh2i0OitmH7jgkQUA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-grids": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-grids/-/igniteui-webcomponents-grids-5.3.0.tgz",
+ "integrity": "sha512-H196T6wla2nG+ocb9aUnUQ5eJVI3Vslrc10I9/MjRYJ2EDwx3/5/ODxx1hUk/NpVHm38cb2thjX/44LOMI0Yqw==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0",
+ "igniteui-webcomponents-inputs": "5.3.0",
+ "igniteui-webcomponents-layouts": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-inputs": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-inputs/-/igniteui-webcomponents-inputs-5.3.0.tgz",
+ "integrity": "sha512-m+OyX8K2pVwQgz8GyqCY4Z6OU0HdFH8LjOPzN+fG9VKnLoj1CLZ2SxFiHk1AX4dTAYsR5zltZP0GnKrC7QD2XA==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-layouts": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-layouts/-/igniteui-webcomponents-layouts-5.3.0.tgz",
+ "integrity": "sha512-gy3fdroVJ2BUtQ7/Lnag2lUqMI7YO+iczXPGi5DVFhbOMEf1fbJFaQAwnjPanntEAOVafRDbeZO+k+MGJ3xjoA==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0",
+ "igniteui-webcomponents-inputs": "5.3.0"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg=="
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "devOptional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/lit": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz",
+ "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==",
+ "dependencies": {
+ "@lit/reactive-element": "^2.0.4",
+ "lit-element": "^4.1.0",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz",
+ "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.0.4",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz",
+ "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "devOptional": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "optional": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz",
+ "integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.6"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.36.0",
+ "@rollup/rollup-android-arm64": "4.36.0",
+ "@rollup/rollup-darwin-arm64": "4.36.0",
+ "@rollup/rollup-darwin-x64": "4.36.0",
+ "@rollup/rollup-freebsd-arm64": "4.36.0",
+ "@rollup/rollup-freebsd-x64": "4.36.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.36.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.36.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.36.0",
+ "@rollup/rollup-linux-arm64-musl": "4.36.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.36.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.36.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.36.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.36.0",
+ "@rollup/rollup-linux-x64-gnu": "4.36.0",
+ "@rollup/rollup-linux-x64-musl": "4.36.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.36.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.36.0",
+ "@rollup/rollup-win32-x64-msvc": "4.36.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.3.tgz",
+ "integrity": "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/sass/node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/sass/node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "devOptional": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.1.tgz",
+ "integrity": "sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.12"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-static-copy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz",
+ "integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "p-map": "^7.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ }
+ }
+}
diff --git a/projects/erp-hgrid/package.json b/projects/erp-hgrid/package.json
new file mode 100644
index 0000000..f975971
--- /dev/null
+++ b/projects/erp-hgrid/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "erp-hgrid",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.13",
+ "igniteui-webcomponents": "^5.3.0-RC.1",
+ "igniteui-webcomponents-core": "^5.4.0",
+ "igniteui-webcomponents-charts": "^5.3.0",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.3"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.3.1",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+}
diff --git a/projects/erp-hgrid/public/country-flags/Australia.svg b/projects/erp-hgrid/public/country-flags/Australia.svg
new file mode 100644
index 0000000..61c245e
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Australia.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Belgium.svg b/projects/erp-hgrid/public/country-flags/Belgium.svg
new file mode 100644
index 0000000..8123dab
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Belgium.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Brazil.svg b/projects/erp-hgrid/public/country-flags/Brazil.svg
new file mode 100644
index 0000000..61f8a52
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Brazil.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Bulgaria.svg b/projects/erp-hgrid/public/country-flags/Bulgaria.svg
new file mode 100644
index 0000000..ef9fbc5
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Bulgaria.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Canada.svg b/projects/erp-hgrid/public/country-flags/Canada.svg
new file mode 100644
index 0000000..6ac428d
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Canada.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/China.svg b/projects/erp-hgrid/public/country-flags/China.svg
new file mode 100644
index 0000000..d3d04dc
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/China.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Denmark.svg b/projects/erp-hgrid/public/country-flags/Denmark.svg
new file mode 100644
index 0000000..1229601
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Denmark.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Finland.svg b/projects/erp-hgrid/public/country-flags/Finland.svg
new file mode 100644
index 0000000..9a1012f
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Finland.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/France.svg b/projects/erp-hgrid/public/country-flags/France.svg
new file mode 100644
index 0000000..86fb039
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/France.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Germany.svg b/projects/erp-hgrid/public/country-flags/Germany.svg
new file mode 100644
index 0000000..65b7e46
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Germany.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Greece.svg b/projects/erp-hgrid/public/country-flags/Greece.svg
new file mode 100644
index 0000000..e1c7293
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Greece.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/India.svg b/projects/erp-hgrid/public/country-flags/India.svg
new file mode 100644
index 0000000..e56cdfe
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/India.svg
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Italy.svg b/projects/erp-hgrid/public/country-flags/Italy.svg
new file mode 100644
index 0000000..0029478
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Italy.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Japan.svg b/projects/erp-hgrid/public/country-flags/Japan.svg
new file mode 100644
index 0000000..a665fa5
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Japan.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Netherlands.svg b/projects/erp-hgrid/public/country-flags/Netherlands.svg
new file mode 100644
index 0000000..28d3cf8
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Netherlands.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Poland.svg b/projects/erp-hgrid/public/country-flags/Poland.svg
new file mode 100644
index 0000000..29be454
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Poland.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Romania.svg b/projects/erp-hgrid/public/country-flags/Romania.svg
new file mode 100644
index 0000000..a3b0274
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Romania.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/United Kingdom.svg b/projects/erp-hgrid/public/country-flags/United Kingdom.svg
new file mode 100644
index 0000000..a89e4f4
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/United Kingdom.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/United States.svg b/projects/erp-hgrid/public/country-flags/United States.svg
new file mode 100644
index 0000000..d69d8b1
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/United States.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/country-flags/Uruguay.svg b/projects/erp-hgrid/public/country-flags/Uruguay.svg
new file mode 100644
index 0000000..5008f40
--- /dev/null
+++ b/projects/erp-hgrid/public/country-flags/Uruguay.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/erp-hgrid/public/products/Android-Tablet-11inch-Depositphotos_41379049_L.jpg b/projects/erp-hgrid/public/products/Android-Tablet-11inch-Depositphotos_41379049_L.jpg
new file mode 100644
index 0000000..41503ba
Binary files /dev/null and b/projects/erp-hgrid/public/products/Android-Tablet-11inch-Depositphotos_41379049_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Apple-Magic-Mouse-Depositphotos_2984466_L.jpg b/projects/erp-hgrid/public/products/Apple-Magic-Mouse-Depositphotos_2984466_L.jpg
new file mode 100644
index 0000000..25e9707
Binary files /dev/null and b/projects/erp-hgrid/public/products/Apple-Magic-Mouse-Depositphotos_2984466_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Barcode-reader-Depositphotos_9927983_L.jpg b/projects/erp-hgrid/public/products/Barcode-reader-Depositphotos_9927983_L.jpg
new file mode 100644
index 0000000..cfc1273
Binary files /dev/null and b/projects/erp-hgrid/public/products/Barcode-reader-Depositphotos_9927983_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Barcode-readers-Depositphotos_10803475_L.jpg b/projects/erp-hgrid/public/products/Barcode-readers-Depositphotos_10803475_L.jpg
new file mode 100644
index 0000000..a531657
Binary files /dev/null and b/projects/erp-hgrid/public/products/Barcode-readers-Depositphotos_10803475_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Black-espresso-maker-Depositphotos_166033946_L.jpg b/projects/erp-hgrid/public/products/Black-espresso-maker-Depositphotos_166033946_L.jpg
new file mode 100644
index 0000000..a12bb82
Binary files /dev/null and b/projects/erp-hgrid/public/products/Black-espresso-maker-Depositphotos_166033946_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Canon_Depositphotos_1793394_L.jpg b/projects/erp-hgrid/public/products/Canon_Depositphotos_1793394_L.jpg
new file mode 100644
index 0000000..9cc4d70
Binary files /dev/null and b/projects/erp-hgrid/public/products/Canon_Depositphotos_1793394_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Crivit_jacket-2899728_1920-2.jpg b/projects/erp-hgrid/public/products/Crivit_jacket-2899728_1920-2.jpg
new file mode 100644
index 0000000..cc2a382
Binary files /dev/null and b/projects/erp-hgrid/public/products/Crivit_jacket-2899728_1920-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/Down-Winter-Jacket-Depositphotos_58152061_L.jpg b/projects/erp-hgrid/public/products/Down-Winter-Jacket-Depositphotos_58152061_L.jpg
new file mode 100644
index 0000000..29f16b2
Binary files /dev/null and b/projects/erp-hgrid/public/products/Down-Winter-Jacket-Depositphotos_58152061_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/EPSON_printer-1516580_1920-2.jpg b/projects/erp-hgrid/public/products/EPSON_printer-1516580_1920-2.jpg
new file mode 100644
index 0000000..e7f6df4
Binary files /dev/null and b/projects/erp-hgrid/public/products/EPSON_printer-1516580_1920-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/Gaggia-coffee-machine-Depositphotos_171399082_L.jpg b/projects/erp-hgrid/public/products/Gaggia-coffee-machine-Depositphotos_171399082_L.jpg
new file mode 100644
index 0000000..0334660
Binary files /dev/null and b/projects/erp-hgrid/public/products/Gaggia-coffee-machine-Depositphotos_171399082_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/HP_laptop_black-5141242_1920.jpg b/projects/erp-hgrid/public/products/HP_laptop_black-5141242_1920.jpg
new file mode 100644
index 0000000..02fe55a
Binary files /dev/null and b/projects/erp-hgrid/public/products/HP_laptop_black-5141242_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/JBL_speaker-5800162_1920-2.jpg b/projects/erp-hgrid/public/products/JBL_speaker-5800162_1920-2.jpg
new file mode 100644
index 0000000..e4af793
Binary files /dev/null and b/projects/erp-hgrid/public/products/JBL_speaker-5800162_1920-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/Kitchen-Multicooker-Depositphotos_35751187_L.jpg b/projects/erp-hgrid/public/products/Kitchen-Multicooker-Depositphotos_35751187_L.jpg
new file mode 100644
index 0000000..b8a670b
Binary files /dev/null and b/projects/erp-hgrid/public/products/Kitchen-Multicooker-Depositphotos_35751187_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Macbook_Depositphotos_205657722_L-2.jpg b/projects/erp-hgrid/public/products/Macbook_Depositphotos_205657722_L-2.jpg
new file mode 100644
index 0000000..e69894d
Binary files /dev/null and b/projects/erp-hgrid/public/products/Macbook_Depositphotos_205657722_L-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/Markers-pack-Depositphotos_113646792_L.jpg b/projects/erp-hgrid/public/products/Markers-pack-Depositphotos_113646792_L.jpg
new file mode 100644
index 0000000..8fee348
Binary files /dev/null and b/projects/erp-hgrid/public/products/Markers-pack-Depositphotos_113646792_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Merrel-shoes-584850_1920.jpg b/projects/erp-hgrid/public/products/Merrel-shoes-584850_1920.jpg
new file mode 100644
index 0000000..0d81d43
Binary files /dev/null and b/projects/erp-hgrid/public/products/Merrel-shoes-584850_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/Microwave-Depositphotos_26880443_L.jpg b/projects/erp-hgrid/public/products/Microwave-Depositphotos_26880443_L.jpg
new file mode 100644
index 0000000..7031dda
Binary files /dev/null and b/projects/erp-hgrid/public/products/Microwave-Depositphotos_26880443_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Monitor-curved-27inch-Depositphotos_282647566_L.jpg b/projects/erp-hgrid/public/products/Monitor-curved-27inch-Depositphotos_282647566_L.jpg
new file mode 100644
index 0000000..bc7affc
Binary files /dev/null and b/projects/erp-hgrid/public/products/Monitor-curved-27inch-Depositphotos_282647566_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Nike_Depositphotos_146077297_L.jpg b/projects/erp-hgrid/public/products/Nike_Depositphotos_146077297_L.jpg
new file mode 100644
index 0000000..3e3c994
Binary files /dev/null and b/projects/erp-hgrid/public/products/Nike_Depositphotos_146077297_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Nike_footwear-5408643_1920.jpg b/projects/erp-hgrid/public/products/Nike_footwear-5408643_1920.jpg
new file mode 100644
index 0000000..a9781ae
Binary files /dev/null and b/projects/erp-hgrid/public/products/Nike_footwear-5408643_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/Nike_sneakers-5408646_1920.jpg b/projects/erp-hgrid/public/products/Nike_sneakers-5408646_1920.jpg
new file mode 100644
index 0000000..3728116
Binary files /dev/null and b/projects/erp-hgrid/public/products/Nike_sneakers-5408646_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/PC-Mouse-wired-Depositphotos_12621359_L.jpg b/projects/erp-hgrid/public/products/PC-Mouse-wired-Depositphotos_12621359_L.jpg
new file mode 100644
index 0000000..3efa5e3
Binary files /dev/null and b/projects/erp-hgrid/public/products/PC-Mouse-wired-Depositphotos_12621359_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Pencil-Depositphotos_293936972_L.jpg b/projects/erp-hgrid/public/products/Pencil-Depositphotos_293936972_L.jpg
new file mode 100644
index 0000000..d69b6c9
Binary files /dev/null and b/projects/erp-hgrid/public/products/Pencil-Depositphotos_293936972_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Post-it-notes-Depositphotos_2275156_L.jpg b/projects/erp-hgrid/public/products/Post-it-notes-Depositphotos_2275156_L.jpg
new file mode 100644
index 0000000..456bb71
Binary files /dev/null and b/projects/erp-hgrid/public/products/Post-it-notes-Depositphotos_2275156_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Print-paper-Depositphotos_191385040_L.jpg b/projects/erp-hgrid/public/products/Print-paper-Depositphotos_191385040_L.jpg
new file mode 100644
index 0000000..dbd767d
Binary files /dev/null and b/projects/erp-hgrid/public/products/Print-paper-Depositphotos_191385040_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Samsung-Tablet_black-4766996_1920.jpg b/projects/erp-hgrid/public/products/Samsung-Tablet_black-4766996_1920.jpg
new file mode 100644
index 0000000..5cbd71f
Binary files /dev/null and b/projects/erp-hgrid/public/products/Samsung-Tablet_black-4766996_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/Scanner-Depositphotos_7372129_XL.jpg b/projects/erp-hgrid/public/products/Scanner-Depositphotos_7372129_XL.jpg
new file mode 100644
index 0000000..2ddd154
Binary files /dev/null and b/projects/erp-hgrid/public/products/Scanner-Depositphotos_7372129_XL.jpg differ
diff --git a/projects/erp-hgrid/public/products/Sony_Alpha7_camera-275007_1920.jpg b/projects/erp-hgrid/public/products/Sony_Alpha7_camera-275007_1920.jpg
new file mode 100644
index 0000000..23274eb
Binary files /dev/null and b/projects/erp-hgrid/public/products/Sony_Alpha7_camera-275007_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/Sony_Alpha7_camera-4833557_1920-2.jpg b/projects/erp-hgrid/public/products/Sony_Alpha7_camera-4833557_1920-2.jpg
new file mode 100644
index 0000000..b7e5212
Binary files /dev/null and b/projects/erp-hgrid/public/products/Sony_Alpha7_camera-4833557_1920-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/Sony_lens-274986_1920.jpg b/projects/erp-hgrid/public/products/Sony_lens-274986_1920.jpg
new file mode 100644
index 0000000..a19619f
Binary files /dev/null and b/projects/erp-hgrid/public/products/Sony_lens-274986_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/Speaker_Depositphotos_252611752_L.jpg b/projects/erp-hgrid/public/products/Speaker_Depositphotos_252611752_L.jpg
new file mode 100644
index 0000000..1e986b8
Binary files /dev/null and b/projects/erp-hgrid/public/products/Speaker_Depositphotos_252611752_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/T-Shirt-gray-Depositphotos_138950992_L.jpg b/projects/erp-hgrid/public/products/T-Shirt-gray-Depositphotos_138950992_L.jpg
new file mode 100644
index 0000000..d3b5d17
Binary files /dev/null and b/projects/erp-hgrid/public/products/T-Shirt-gray-Depositphotos_138950992_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/T-Shirt-red-Depositphotos_138951004_L.jpg b/projects/erp-hgrid/public/products/T-Shirt-red-Depositphotos_138951004_L.jpg
new file mode 100644
index 0000000..5d6ad13
Binary files /dev/null and b/projects/erp-hgrid/public/products/T-Shirt-red-Depositphotos_138951004_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/T-shirt-blue-Depositphotos_163437494_L.jpg b/projects/erp-hgrid/public/products/T-shirt-blue-Depositphotos_163437494_L.jpg
new file mode 100644
index 0000000..2188d50
Binary files /dev/null and b/projects/erp-hgrid/public/products/T-shirt-blue-Depositphotos_163437494_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Winter-Jacket-Depositphotos_89349846_L.jpg b/projects/erp-hgrid/public/products/Winter-Jacket-Depositphotos_89349846_L.jpg
new file mode 100644
index 0000000..9480bff
Binary files /dev/null and b/projects/erp-hgrid/public/products/Winter-Jacket-Depositphotos_89349846_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/Xbox_controller_gamepad-6646645_1920-2.jpg b/projects/erp-hgrid/public/products/Xbox_controller_gamepad-6646645_1920-2.jpg
new file mode 100644
index 0000000..831397c
Binary files /dev/null and b/projects/erp-hgrid/public/products/Xbox_controller_gamepad-6646645_1920-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/adidas-sports-shoes-4762266_1920.jpg b/projects/erp-hgrid/public/products/adidas-sports-shoes-4762266_1920.jpg
new file mode 100644
index 0000000..6331c9b
Binary files /dev/null and b/projects/erp-hgrid/public/products/adidas-sports-shoes-4762266_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/ballpoint-pen-273656_1920.jpg b/projects/erp-hgrid/public/products/ballpoint-pen-273656_1920.jpg
new file mode 100644
index 0000000..af7b036
Binary files /dev/null and b/projects/erp-hgrid/public/products/ballpoint-pen-273656_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/climbing-boots-2558324_1920.jpg b/projects/erp-hgrid/public/products/climbing-boots-2558324_1920.jpg
new file mode 100644
index 0000000..6a95171
Binary files /dev/null and b/projects/erp-hgrid/public/products/climbing-boots-2558324_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/dyson_hairdryer_Depositphotos_653422044_L.jpg b/projects/erp-hgrid/public/products/dyson_hairdryer_Depositphotos_653422044_L.jpg
new file mode 100644
index 0000000..13d240c
Binary files /dev/null and b/projects/erp-hgrid/public/products/dyson_hairdryer_Depositphotos_653422044_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/dyson_hairdryer_Depositphotos_751409932_L.jpg b/projects/erp-hgrid/public/products/dyson_hairdryer_Depositphotos_751409932_L.jpg
new file mode 100644
index 0000000..65a3c0f
Binary files /dev/null and b/projects/erp-hgrid/public/products/dyson_hairdryer_Depositphotos_751409932_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/dyson_vacuum_appliance-2255_1920.jpg b/projects/erp-hgrid/public/products/dyson_vacuum_appliance-2255_1920.jpg
new file mode 100644
index 0000000..c9c1c7b
Binary files /dev/null and b/projects/erp-hgrid/public/products/dyson_vacuum_appliance-2255_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/earphone-2640990_1920.jpg b/projects/erp-hgrid/public/products/earphone-2640990_1920.jpg
new file mode 100644
index 0000000..c855d1a
Binary files /dev/null and b/projects/erp-hgrid/public/products/earphone-2640990_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/iPad-Pro-Depositphotos_241726176_L.jpg b/projects/erp-hgrid/public/products/iPad-Pro-Depositphotos_241726176_L.jpg
new file mode 100644
index 0000000..db73fa1
Binary files /dev/null and b/projects/erp-hgrid/public/products/iPad-Pro-Depositphotos_241726176_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/iphone-X-2854322_1920.jpg b/projects/erp-hgrid/public/products/iphone-X-2854322_1920.jpg
new file mode 100644
index 0000000..66a8702
Binary files /dev/null and b/projects/erp-hgrid/public/products/iphone-X-2854322_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/laptop_Depositphotos_2996767_L.jpg b/projects/erp-hgrid/public/products/laptop_Depositphotos_2996767_L.jpg
new file mode 100644
index 0000000..05a4d39
Binary files /dev/null and b/projects/erp-hgrid/public/products/laptop_Depositphotos_2996767_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/laptop_Depositphotos_6271974_L.jpg b/projects/erp-hgrid/public/products/laptop_Depositphotos_6271974_L.jpg
new file mode 100644
index 0000000..1fd3169
Binary files /dev/null and b/projects/erp-hgrid/public/products/laptop_Depositphotos_6271974_L.jpg differ
diff --git a/projects/erp-hgrid/public/products/vacuum-cleaner-8114145-2.jpg b/projects/erp-hgrid/public/products/vacuum-cleaner-8114145-2.jpg
new file mode 100644
index 0000000..ced443b
Binary files /dev/null and b/projects/erp-hgrid/public/products/vacuum-cleaner-8114145-2.jpg differ
diff --git a/projects/erp-hgrid/public/products/video-game-console-2202582_1920.jpg b/projects/erp-hgrid/public/products/video-game-console-2202582_1920.jpg
new file mode 100644
index 0000000..17d2f80
Binary files /dev/null and b/projects/erp-hgrid/public/products/video-game-console-2202582_1920.jpg differ
diff --git a/projects/erp-hgrid/public/products/xbox-1200296_1920.jpg b/projects/erp-hgrid/public/products/xbox-1200296_1920.jpg
new file mode 100644
index 0000000..4c18255
Binary files /dev/null and b/projects/erp-hgrid/public/products/xbox-1200296_1920.jpg differ
diff --git a/projects/erp-hgrid/src/assets/icons/icons.ts b/projects/erp-hgrid/src/assets/icons/icons.ts
new file mode 100644
index 0000000..9d4b7ee
--- /dev/null
+++ b/projects/erp-hgrid/src/assets/icons/icons.ts
@@ -0,0 +1,4 @@
+export const DROPBOX = ' ';
+export const DELIVERY = ' ';
+export const BILL_PAID = ' ';
+export const CHECK = ' ';
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/components/erp-hierarchical-grid.scss b/projects/erp-hgrid/src/components/erp-hierarchical-grid.scss
new file mode 100644
index 0000000..fb46fa6
--- /dev/null
+++ b/projects/erp-hgrid/src/components/erp-hierarchical-grid.scss
@@ -0,0 +1,116 @@
+:host {
+ display: block;
+ height: 100%;
+ width: 100%;
+}
+
+#hierarchicalGrid {
+ --ig-size: var(--ig-size-medium);
+
+ igc-badge[variant="primary"]::part(base) {
+ background-color: var(--ig-primary-50);
+ }
+
+ igc-badge[variant="warning"]::part(base) {
+ background-color: var(--ig-warn-100);
+ }
+
+ igc-badge[variant="danger"]::part(base) {
+ background-color: var(--ig-error-50);
+ }
+
+ igc-badge[variant="success"]::part(base) {
+ background-color: var(--ig-success-100);
+ }
+}
+
+.product-img {
+ display: flex;
+ justify-content: center;
+
+ img {
+ height: 22px;
+ border-radius: 4px;
+ }
+}
+
+.custom-icon {
+ --size: 12px;
+ color: black;
+}
+
+.country-cell {
+ display: flex;
+ align-items: center;
+ width: fit-content;
+ padding: 0px 4px;
+ gap: 8px;
+
+ img {
+ font-size: 16px;
+ width: 18px;
+ height: 14px;
+ margin-top: 2px;
+ box-shadow: var(--ig-elevation-1);
+ }
+}
+
+.status-cell {
+ display: flex;
+ align-items: center;
+ width: fit-content;
+ padding: 0px 4px;
+ gap: 8px;
+}
+
+#product-image-tooltip {
+ background: white;
+ font-weight: bold;
+ padding: 5px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
+ border-radius: 4px;
+ font-size: 90%;
+ z-index: 9999;
+ left: -5000px; // so that scrollbar doesn't appear
+ // Transitions
+ opacity: 0;
+ transform: scale(0.97);
+ visibility: hidden;
+ pointer-events: none;
+ transition:
+ opacity 0.35s ease-out 0.4s,
+ transform 0.35s ease-out 0.4s,
+ visibility 0s linear 0.4s;
+ position: absolute;
+
+ .dialog-header {
+ padding: 16px;
+ font-size: 18px;
+ font-weight: bold;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
+ }
+
+ .dialog-body {
+ padding: 16px;
+ font-size: 14px;
+ color: #555;
+ overflow-y: auto;
+
+ img {
+ width: 312px;
+ height: 312px;
+ }
+ }
+}
+
+#product-image-tooltip.show {
+ opacity: 1;
+ transform: scale(1);
+ visibility: visible;
+ pointer-events: auto;
+ transition:
+ opacity 0.35s ease-out,
+ transform 0.35s ease-out,
+ visibility 0s linear;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/components/erp-hierarchical-grid.ts b/projects/erp-hgrid/src/components/erp-hierarchical-grid.ts
new file mode 100644
index 0000000..f0e6fe4
--- /dev/null
+++ b/projects/erp-hgrid/src/components/erp-hierarchical-grid.ts
@@ -0,0 +1,495 @@
+import { LitElement, html, unsafeCSS } from 'lit'
+import { customElement, query, state } from 'lit/decorators.js'
+import { computePosition, offset, shift, flip } from '@floating-ui/dom';
+import { DROPBOX, DELIVERY, BILL_PAID, CHECK } from "../assets/icons/icons";
+import "igniteui-webcomponents-grids/grids/combined.js";
+import {
+ configureTheme,
+ defineComponents,
+ IgcAvatarComponent,
+ IgcBadgeComponent,
+ IgcButtonComponent,
+ IgcDialogComponent,
+ IgcIconComponent,
+ IgcInputComponent,
+ IgcLinearProgressComponent,
+ IgcRatingComponent,
+ registerIconFromText,
+} from "igniteui-webcomponents";
+import {
+ GridSelectionMode,
+ IgcCellTemplateContext,
+ IgcFilteringOperand,
+ IgcGridComponent,
+ SortingDirection
+} from "igniteui-webcomponents-grids/grids";
+import './sales-trends-chart';
+import { FullAddressFilteringOperand } from '../services/custom-operations/custom-filtering-operands';
+import { TemplateDataItemExtended } from '../models/TemplateDataItem';
+import { OrderStatus } from '../models/OrderStatus';
+import { erpDataService } from "../services/erp-data.service";
+import { DataPoint } from '../models/DataPoint';
+import { OrderDetails } from '../models/OrderDetails';
+import { BadgeVariant } from '../models/BadgeVariant';
+import erpStyles from "./erp-hierarchical-grid.scss?inline";
+
+
+defineComponents(
+ IgcAvatarComponent,
+ IgcIconComponent,
+ IgcLinearProgressComponent,
+ IgcInputComponent,
+ IgcRatingComponent,
+ IgcBadgeComponent,
+ IgcDialogComponent,
+ IgcButtonComponent
+);
+// configureTheme("material");
+
+@customElement('app-erp-hgrid')
+export default class ErpHierarchicalGrid extends LitElement {
+
+ @query("igc-row-island")
+ private rowisland!: IgcGridComponent;
+
+ @query('#product-image-tooltip')
+ private productImageTooltip!: HTMLElement;
+
+ @state()
+ private erpData: TemplateDataItemExtended[] = [];
+
+ // @state()
+ // private isLoading = true;
+
+ private selectionMode: GridSelectionMode = 'multiple';
+ private orderStatus = OrderStatus;
+
+ // Image tooltip for each product fields
+ private hoveredImageUrl: string = '';
+ private hoveredImageProductName: string = '';
+
+ // Custom filtering for templated Address column
+ public fullAddressFilteringOperand: IgcFilteringOperand = FullAddressFilteringOperand.instance();
+ public shortAddressFilteringOperand: FullAddressFilteringOperand = new FullAddressFilteringOperand(true);
+
+ constructor() {
+ super();
+
+ // Icons
+ registerIconFromText("dropbox", DROPBOX, "material");
+ registerIconFromText("delivery", DELIVERY, "material");
+ registerIconFromText("bill-paid", BILL_PAID, "material");
+ registerIconFromText("check", CHECK, "material");
+
+ // Data
+ erpDataService.getErpData().then((data) => {
+ this.erpData = data;
+ // this.isLoading = false;
+ });
+ }
+
+ firstUpdated() {
+ // Default sortings
+ this.rowisland.sortingExpressions = [
+ {
+ dir: SortingDirection.Desc, fieldName: 'delivery.dateOrdered',
+ ignoreCase: true
+ }
+ ];
+ }
+
+ private exportStarted = (args: any) => {
+ args.detail.exporter.columnExporting.subscribe((columnArgs: any) => {
+ // Don't export Performance column
+ columnArgs.cancel = columnArgs.field === 'salesTrendData';
+ });
+ }
+
+ // TEMPLATES
+
+ /* Grid */
+ private imageTemplate = (ctx: IgcCellTemplateContext) => {
+ const imageUrl: string = ctx.cell.value;
+
+ return html`
+
+
this.showTooltip(event, ctx)}"
+ @mouseleave="${this.hideTooltip}"/>
+
+ `;
+ };
+
+ private ratingTemplate = (ctx: IgcCellTemplateContext) => {
+ return html`
+
+
+
+ `;
+ };
+
+ private salesTrendsChartTemplate = (ctx: IgcCellTemplateContext) => {
+ const trendData: DataPoint[] = ctx.cell.value;
+
+ if (!trendData || trendData.length === 0) {
+ return html`No data `;
+ }
+
+ return html`
+
+ `;
+ };
+
+ /* RowIsland */
+ private rowIslandToolbarTemplate = () => {
+ return html`
+
+ Sales data for the last month
+ `;
+ }
+
+ private getOrderStatusBadgeVariant = (status: string): BadgeVariant => {
+ switch (status) {
+ case this.orderStatus.PACKED:
+ return "primary";
+ case this.orderStatus.IN_TRANSIT:
+ return "warning";
+ case this.orderStatus.CUSTOMS:
+ return "danger";
+ case this.orderStatus.DELIVERED:
+ return "success";
+ default:
+ return "primary";
+ }
+ };
+
+ private getOrderStatusIconName = (status: string): string => {
+ switch (status) {
+ case this.orderStatus.PACKED:
+ return "dropbox";
+ case this.orderStatus.IN_TRANSIT:
+ return "delivery";
+ case this.orderStatus.CUSTOMS:
+ return "bill-paid";
+ case this.orderStatus.DELIVERED:
+ return "check";
+ default:
+ return "dropbox";
+ }
+ };
+
+ private statusTemplate = (ctx: IgcCellTemplateContext) => {
+ const cellValue: string = ctx.cell.value;
+ const badgeVariant: BadgeVariant = this.getOrderStatusBadgeVariant(cellValue);
+ const iconName: string = this.getOrderStatusIconName(cellValue);
+
+ return html`
+
+
+
+
+
+
+ ${cellValue}
+
+ `;
+ };
+
+ private countryTemplate = (ctx: IgcCellTemplateContext) => {
+ const cellValue: string = ctx.cell.value;
+ const flagPath: string = `country-flags/${cellValue}.svg`;
+
+ return html`
+
+
+
+
+
${cellValue}
+
+ `;
+ };
+
+ // FORMATTERS
+ private formatNumberAsIs = (value: number): number => {
+ // Bypassing the default formatting of larger numbers
+ // Example for 4-digit numbers: 1,234 => 1234
+ return value;
+ }
+
+ private formatDate = (value: string): string => {
+ return value || 'N/A';
+ }
+
+ private formatAddress = (value: OrderDetails): string => {
+ return `${value.streetNumber} ${value.streetName}`;
+ }
+
+ private formatFullAddress = (value: OrderDetails): string => {
+ return `${value.streetNumber} ${value.streetName}, ${value.zipCode} ${value.city}, ${value.country}`;
+ }
+
+ // PRODUCT IMAGE COLUMN OVERLAYS
+ private showTooltip = (event: MouseEvent, context: IgcCellTemplateContext): void => {
+ const targetEl: HTMLElement = event.target as HTMLElement;
+ const imageUrl: string = context.implicit;
+
+ // Set current hovered image properties
+ this.hoveredImageUrl = imageUrl;
+ const productName: string = context.cell.row?.cells?.find((c: any) => c.column.field === 'productName')?.value;
+ this.hoveredImageProductName = productName;
+
+ // Add floating-ui setups and styles
+ this.setupImageDialog(targetEl, this.productImageTooltip);
+ this.requestUpdate();
+ }
+
+ private setupImageDialog = (targetElement: HTMLElement, tooltip: HTMLElement): void => {
+ computePosition(targetElement, tooltip, {
+ placement: 'right-start',
+ middleware: [
+ offset(6),
+ flip(),
+ shift({padding: 5}),
+ ],
+ }).then(({x, y}) => {
+ Object.assign(tooltip.style, {
+ left: `${x}px`,
+ top: `${y}px`,
+ });
+ });
+
+ tooltip.classList.add('show');
+ }
+
+ private hideTooltip = (): void => {
+ this.productImageTooltip.classList.remove('show');
+ }
+
+ render() {
+ configureTheme("material");
+
+ return html`
+
+
+
+
+
+ Inventory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+
+ static styles = unsafeCSS(erpStyles);
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/components/sales-trends-chart.ts b/projects/erp-hgrid/src/components/sales-trends-chart.ts
new file mode 100644
index 0000000..975e68b
--- /dev/null
+++ b/projects/erp-hgrid/src/components/sales-trends-chart.ts
@@ -0,0 +1,90 @@
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators.js";
+import { ModuleManager } from "igniteui-webcomponents-core";
+import {
+ IgcCategoryXAxisModule,
+ IgcColumnSeriesModule,
+ IgcDataChartCoreModule,
+ IgcDataChartInteractivityModule,
+ IgcDataChartVisualDataModule,
+ IgcNumericYAxisModule
+ } from "igniteui-webcomponents-charts";
+import { DataPoint } from "../models/DataPoint";
+
+
+ModuleManager.register(
+ IgcDataChartCoreModule,
+ IgcCategoryXAxisModule,
+ IgcNumericYAxisModule,
+ IgcColumnSeriesModule,
+ IgcDataChartVisualDataModule,
+ IgcDataChartInteractivityModule
+ );
+
+@customElement("app-sales-trends-chart")
+export class GridChart extends LitElement {
+
+ @property({ type: Array }) trendData: DataPoint[] = [];
+
+ render() {
+ return html`
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+
+ static styles = css`
+ :host {
+ width: 100%;
+ height: 100%;
+ }
+
+
+ igc-tooltip-container {
+ background-color: white;
+ color: black;
+ padding: 8px 12px;
+ font-size: 12px;
+ border: 1px solid black;
+ border-radius: 2px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
+ }
+ `;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/index.css b/projects/erp-hgrid/src/index.css
new file mode 100644
index 0000000..690c48d
--- /dev/null
+++ b/projects/erp-hgrid/src/index.css
@@ -0,0 +1,6 @@
+html,
+body {
+ margin: 0;
+ width: 100%;
+ height: 100%;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/BadgeVariant.ts b/projects/erp-hgrid/src/models/BadgeVariant.ts
new file mode 100644
index 0000000..1d0ba61
--- /dev/null
+++ b/projects/erp-hgrid/src/models/BadgeVariant.ts
@@ -0,0 +1 @@
+export type BadgeVariant = "primary" | "info" | "success" | "warning" | "danger";
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/DataPoint.ts b/projects/erp-hgrid/src/models/DataPoint.ts
new file mode 100644
index 0000000..e038936
--- /dev/null
+++ b/projects/erp-hgrid/src/models/DataPoint.ts
@@ -0,0 +1,4 @@
+export interface DataPoint {
+ unitsSold: number;
+ month: string;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/DeliveryDetails.ts b/projects/erp-hgrid/src/models/DeliveryDetails.ts
new file mode 100644
index 0000000..62f3f8c
--- /dev/null
+++ b/projects/erp-hgrid/src/models/DeliveryDetails.ts
@@ -0,0 +1,5 @@
+export interface DeliveryDetails {
+ dateOrdered: string | null;
+ dateShipped: string | null;
+ dateDelivered: string | null;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/Order.ts b/projects/erp-hgrid/src/models/Order.ts
new file mode 100644
index 0000000..75bcdc8
--- /dev/null
+++ b/projects/erp-hgrid/src/models/Order.ts
@@ -0,0 +1,10 @@
+import { DeliveryDetails } from "./DeliveryDetails";
+import { OrderDetails } from "./OrderDetails";
+import { OrderStatus } from "./OrderStatus";
+
+export interface Order {
+ orderId: number;
+ status: OrderStatus;
+ delivery: DeliveryDetails;
+ orderInformation: OrderDetails;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/OrderDetails.ts b/projects/erp-hgrid/src/models/OrderDetails.ts
new file mode 100644
index 0000000..fbbfa3c
--- /dev/null
+++ b/projects/erp-hgrid/src/models/OrderDetails.ts
@@ -0,0 +1,7 @@
+export interface OrderDetails {
+ country: string;
+ city: string;
+ zipCode: number;
+ streetName: string;
+ streetNumber: string;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/OrderStatus.ts b/projects/erp-hgrid/src/models/OrderStatus.ts
new file mode 100644
index 0000000..7c74390
--- /dev/null
+++ b/projects/erp-hgrid/src/models/OrderStatus.ts
@@ -0,0 +1,6 @@
+export enum OrderStatus {
+ PACKED = "Packed",
+ IN_TRANSIT = "In Transit",
+ CUSTOMS = "Customs",
+ DELIVERED = "Delivered"
+ }
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/models/TemplateDataItem.ts b/projects/erp-hgrid/src/models/TemplateDataItem.ts
new file mode 100644
index 0000000..fee04f3
--- /dev/null
+++ b/projects/erp-hgrid/src/models/TemplateDataItem.ts
@@ -0,0 +1,21 @@
+import { DataPoint } from "./DataPoint";
+import { Order } from "./Order";
+
+export interface TemplateDataItem {
+ sku: string;
+ imageUrl: string;
+ productName: string;
+ category: string;
+ rating: number;
+ unitsSold?: number;
+ grossPrice: number;
+ netPrice: number;
+ totalNetProfit?: number;
+ salesTrendData: DataPoint[];
+ orders: Order[];
+}
+
+export interface TemplateDataItemExtended extends TemplateDataItem {
+ unitsSold: number;
+ totalNetProfit: number;
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/services/custom-operations/custom-filtering-operands.ts b/projects/erp-hgrid/src/services/custom-operations/custom-filtering-operands.ts
new file mode 100644
index 0000000..b0f6a3a
--- /dev/null
+++ b/projects/erp-hgrid/src/services/custom-operations/custom-filtering-operands.ts
@@ -0,0 +1,97 @@
+import { IgcFilteringOperation, IgcStringFilteringOperand } from "igniteui-webcomponents-grids/grids";
+
+export class FullAddressFilteringOperand extends IgcStringFilteringOperand {
+ public constructor(isAddressShort: boolean = false) {
+ super();
+ const getShortAddress = (target: any) => `${target.streetNumber} ${target.streetName}`;
+ const getFullAddress = (target: any) => `${target.streetNumber} ${target.streetName}, ${target.zipCode} ${target.city}, ${target.country}`;
+
+ const customOperations: IgcFilteringOperation[] = [
+ {
+ iconName: 'filter_contains',
+ isUnary: false,
+ logic: (target: any, searchVal: string, ignoreCase?: boolean) => {
+ const address = isAddressShort ? getShortAddress(target) : getFullAddress(target);
+ ignoreCase = true;
+ const search = IgcStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);
+ target = IgcStringFilteringOperand.applyIgnoreCase(address, ignoreCase);
+ return target.indexOf(search) !== -1;
+ },
+ name: 'Contains'
+ },
+ {
+ iconName: 'filter_does_not_contain',
+ isUnary: false,
+ logic: (target: any, searchVal: string, ignoreCase?: boolean) => {
+ const address = isAddressShort ? getShortAddress(target) : getFullAddress(target);
+ ignoreCase = true;
+ const search = IgcStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);
+ target = IgcStringFilteringOperand.applyIgnoreCase(address, ignoreCase);
+ return target.indexOf(search) === -1;
+ },
+ name: 'Does Not Contain'
+ },
+ {
+ iconName: 'filter_starts_with',
+ isUnary: false,
+ logic: (target: any, searchVal: string, ignoreCase?: boolean) => {
+ const address = isAddressShort ? getShortAddress(target) : getFullAddress(target);
+ ignoreCase = true;
+ const search = IgcStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);
+ target = IgcStringFilteringOperand.applyIgnoreCase(address, ignoreCase);
+ return target.startsWith(search);
+ },
+ name: 'Starts With'
+ },
+ {
+ iconName: 'filter_ends_with',
+ isUnary: false,
+ logic: (target: any, searchVal: string, ignoreCase?: boolean) => {
+ const address = isAddressShort ? getShortAddress(target) : getFullAddress(target);
+ ignoreCase = true;
+ const search = IgcStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);
+ target = IgcStringFilteringOperand.applyIgnoreCase(address, ignoreCase);
+ return target.endsWith(search);
+ },
+ name: 'Ends With'
+ },
+ {
+ iconName: 'filter_equal',
+ isUnary: false,
+ logic: (target: any, searchVal: string, ignoreCase?: boolean) => {
+ const address = isAddressShort ? getShortAddress(target) : getFullAddress(target);
+ ignoreCase = true;
+ const search = IgcStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);
+ target = IgcStringFilteringOperand.applyIgnoreCase(address, ignoreCase);
+ return target === search;
+ },
+ name: 'Equals'
+ },
+ {
+ iconName: 'filter_not_equal',
+ isUnary: false,
+ logic: (target: any, searchVal: string, ignoreCase?: boolean) => {
+ const address = isAddressShort ? getShortAddress(target) : getFullAddress(target);
+ ignoreCase = true;
+ const search = IgcStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);
+ target = IgcStringFilteringOperand.applyIgnoreCase(address, ignoreCase);
+ return target !== search;
+ },
+ name: 'Does Not Equal'
+ },
+ ];
+
+ const emptyOperators = [
+ // 'Empty'
+ this.operations[6],
+ // 'Not Empty'
+ this.operations[7],
+ // 'Null'
+ this.operations[8],
+ // 'Not Null'
+ this.operations[9],
+ ];
+
+ this.operations = customOperations.concat(emptyOperators);
+ }
+}
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/services/erp-data.service.ts b/projects/erp-hgrid/src/services/erp-data.service.ts
new file mode 100644
index 0000000..97fd4f0
--- /dev/null
+++ b/projects/erp-hgrid/src/services/erp-data.service.ts
@@ -0,0 +1,42 @@
+import { TemplateDataItem, TemplateDataItemExtended } from "../models/TemplateDataItem";
+
+const DATA_URL = "https://www.infragistics.com/grid-examples-data/data/erp/products.json";
+
+class ErpDataService {
+ public async getErpData(): Promise {
+ try {
+ const response = await fetch(DATA_URL);
+ if (!response.ok) {
+ console.error(response.statusText);
+ return Promise.resolve([]);
+ }
+ const currData = await response.json();
+
+ currData.forEach((record: TemplateDataItem) => {
+ // Set unitsSold
+ record["unitsSold"] = this.getLastMonthSoldUnits(record);
+
+ // calculate totalNetProfit
+ record["totalNetProfit"] = this.calculateTotalNetProfit(record);
+ });
+
+ return currData;
+
+ } catch (err) {
+ throw new Error("Failed to fetch data");
+ }
+ };
+
+ private getLastMonthSoldUnits(product: TemplateDataItem): number {
+ const lastItemIndex = product.salesTrendData.length - 1;
+ return product.salesTrendData[lastItemIndex].unitsSold;
+ }
+
+ private calculateTotalNetProfit(product: TemplateDataItem): number {
+ const unitsSold: number = product.unitsSold || 0;
+ return unitsSold * (product.netPrice);
+ }
+
+}
+
+export const erpDataService: ErpDataService = new ErpDataService();
\ No newline at end of file
diff --git a/projects/erp-hgrid/src/vite-env.d.ts b/projects/erp-hgrid/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/projects/erp-hgrid/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/projects/erp-hgrid/tsconfig.json b/projects/erp-hgrid/tsconfig.json
new file mode 100644
index 0000000..cdb96f3
--- /dev/null
+++ b/projects/erp-hgrid/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/projects/erp-hgrid/vite.config.ts b/projects/erp-hgrid/vite.config.ts
new file mode 100644
index 0000000..b13c10b
--- /dev/null
+++ b/projects/erp-hgrid/vite.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig } from "vite";
+import { viteStaticCopy } from "vite-plugin-static-copy";
+
+export default defineConfig({
+ resolve: {
+ alias: {
+ "igniteui-theming": new URL("./node_modules/igniteui-theming", import.meta.url).pathname,
+ },
+ },
+ plugins: [
+ viteStaticCopy({
+ targets: [
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/material.css",
+ dest: "themes",
+ },
+ ],
+ }),
+ ],
+});
\ No newline at end of file
diff --git a/projects/finance-grid/.gitignore b/projects/finance-grid/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/projects/finance-grid/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/projects/finance-grid/ignite-ui-cli.json b/projects/finance-grid/ignite-ui-cli.json
new file mode 100644
index 0000000..fa4ee3a
--- /dev/null
+++ b/projects/finance-grid/ignite-ui-cli.json
@@ -0,0 +1,16 @@
+{
+ "version": "$(cliVersion)",
+ "project": {
+ "defaultPort": 8000,
+ "framework": "webcomponents",
+ "projectTemplate": "$(projectTemplate)",
+ "projectType": "igc-ts",
+ "theme": "$(theme)",
+ "isBundle": false,
+ "components": [],
+ "sourceFiles": [],
+ "isShowcase": false,
+ "version": ""
+ },
+ "build": {}
+}
diff --git a/projects/finance-grid/index.html b/projects/finance-grid/index.html
new file mode 100644
index 0000000..0bde520
--- /dev/null
+++ b/projects/finance-grid/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Finance
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/finance-grid/package-lock.json b/projects/finance-grid/package-lock.json
new file mode 100644
index 0000000..619d26d
--- /dev/null
+++ b/projects/finance-grid/package-lock.json
@@ -0,0 +1,2002 @@
+{
+ "name": "finance-grid",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "finance-grid",
+ "version": "0.0.0",
+ "dependencies": {
+ "igniteui-theming": "^17.0.0",
+ "igniteui-webcomponents": "^5.3.0-RC.1",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.0"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.3.1",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
+ "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
+ "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
+ "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
+ "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
+ "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
+ "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
+ "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
+ "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
+ "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
+ "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
+ "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
+ "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
+ "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
+ "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
+ "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
+ "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
+ "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
+ "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
+ "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
+ "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+ "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
+ "license": "MIT"
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
+ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@lit-labs/virtualizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.1.0.tgz",
+ "integrity": "sha512-I79sNaalK9rD6FWO/AoxBMnA6jjNBrQu7F6lzz8W/GkQLcqveMWK3IrJAilso+XeFFn7BvlxBv6FqZaoMt+Qkg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "lit": "^3.2.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/@lit/context": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.4.tgz",
+ "integrity": "sha512-0b8wOWNUPcXjGHFtVP+odwhrZBZw+PpCjKWn8IGO10iHT95Xd6FcUAxe1aE7PUtOBvHZoxvrfdBzweYnDW7VNQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.2 || ^2.0.0"
+ }
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz",
+ "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz",
+ "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz",
+ "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz",
+ "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz",
+ "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz",
+ "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz",
+ "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz",
+ "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz",
+ "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz",
+ "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz",
+ "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz",
+ "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz",
+ "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz",
+ "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz",
+ "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz",
+ "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz",
+ "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz",
+ "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz",
+ "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz",
+ "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
+ "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.1",
+ "@esbuild/android-arm": "0.25.1",
+ "@esbuild/android-arm64": "0.25.1",
+ "@esbuild/android-x64": "0.25.1",
+ "@esbuild/darwin-arm64": "0.25.1",
+ "@esbuild/darwin-x64": "0.25.1",
+ "@esbuild/freebsd-arm64": "0.25.1",
+ "@esbuild/freebsd-x64": "0.25.1",
+ "@esbuild/linux-arm": "0.25.1",
+ "@esbuild/linux-arm64": "0.25.1",
+ "@esbuild/linux-ia32": "0.25.1",
+ "@esbuild/linux-loong64": "0.25.1",
+ "@esbuild/linux-mips64el": "0.25.1",
+ "@esbuild/linux-ppc64": "0.25.1",
+ "@esbuild/linux-riscv64": "0.25.1",
+ "@esbuild/linux-s390x": "0.25.1",
+ "@esbuild/linux-x64": "0.25.1",
+ "@esbuild/netbsd-arm64": "0.25.1",
+ "@esbuild/netbsd-x64": "0.25.1",
+ "@esbuild/openbsd-arm64": "0.25.1",
+ "@esbuild/openbsd-x64": "0.25.1",
+ "@esbuild/sunos-x64": "0.25.1",
+ "@esbuild/win32-arm64": "0.25.1",
+ "@esbuild/win32-ia32": "0.25.1",
+ "@esbuild/win32-x64": "0.25.1"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/igniteui-theming": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/igniteui-theming/-/igniteui-theming-17.0.0.tgz",
+ "integrity": "sha512-ktxEk5Xgq2k1Lv+A54W+MtFtlo4Jdtg2L59Pk9zJGx56upjzxuqSHJXdbnTCnbPZmx4xPYxdWkpVKylk47GPQA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "sass": "^1.69.5"
+ }
+ },
+ "node_modules/igniteui-webcomponents": {
+ "version": "5.3.0-RC.1",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-5.3.0-RC.1.tgz",
+ "integrity": "sha512-AknShVoFLTu9f2AiL1OiJIhorZqKeE/yYHCWZxFTX6OGwcr2bUYAGDR7zJHRLTv0E6GrevuxGUqJKcO4j7yzqQ==",
+ "license": "SEE LICENSE IN LICENSE",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.0",
+ "@lit-labs/virtualizer": "^2.1.0",
+ "@lit/context": "^1.1.0",
+ "lit": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/igniteui-webcomponents-core": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-core/-/igniteui-webcomponents-core-5.3.0.tgz",
+ "integrity": "sha512-Sf82hGMsb95kxF9vtiXhZ4oTgGpRyNOQ2PfYnm+eYpZWyOPXtKUkgFJMsuksMA0hgXMkVsLCm1gMB1Ti9E0iVw==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-grids": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-grids/-/igniteui-webcomponents-grids-5.3.0.tgz",
+ "integrity": "sha512-H196T6wla2nG+ocb9aUnUQ5eJVI3Vslrc10I9/MjRYJ2EDwx3/5/ODxx1hUk/NpVHm38cb2thjX/44LOMI0Yqw==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0",
+ "igniteui-webcomponents-inputs": "5.3.0",
+ "igniteui-webcomponents-layouts": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-inputs": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-inputs/-/igniteui-webcomponents-inputs-5.3.0.tgz",
+ "integrity": "sha512-m+OyX8K2pVwQgz8GyqCY4Z6OU0HdFH8LjOPzN+fG9VKnLoj1CLZ2SxFiHk1AX4dTAYsR5zltZP0GnKrC7QD2XA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-layouts": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-layouts/-/igniteui-webcomponents-layouts-5.3.0.tgz",
+ "integrity": "sha512-gy3fdroVJ2BUtQ7/Lnag2lUqMI7YO+iczXPGi5DVFhbOMEf1fbJFaQAwnjPanntEAOVafRDbeZO+k+MGJ3xjoA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0",
+ "igniteui-webcomponents-inputs": "5.3.0"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz",
+ "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==",
+ "license": "MIT"
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/lit": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz",
+ "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^2.0.4",
+ "lit-element": "^4.1.0",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz",
+ "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.0.4",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz",
+ "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+ "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz",
+ "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.6"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.35.0",
+ "@rollup/rollup-android-arm64": "4.35.0",
+ "@rollup/rollup-darwin-arm64": "4.35.0",
+ "@rollup/rollup-darwin-x64": "4.35.0",
+ "@rollup/rollup-freebsd-arm64": "4.35.0",
+ "@rollup/rollup-freebsd-x64": "4.35.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.35.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.35.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.35.0",
+ "@rollup/rollup-linux-arm64-musl": "4.35.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.35.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.35.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.35.0",
+ "@rollup/rollup-linux-x64-gnu": "4.35.0",
+ "@rollup/rollup-linux-x64-musl": "4.35.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.35.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.35.0",
+ "@rollup/rollup-win32-x64-msvc": "4.35.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.86.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz",
+ "integrity": "sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==",
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.1.tgz",
+ "integrity": "sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.12"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-static-copy": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.0.tgz",
+ "integrity": "sha512-LLKwhhHetGaCnWz4mas4qqjjguDka6/6b4+SeIohRroj8aCE7QTfiZECfPecslFQkWZ3HdQuq5kOPmWZjNYlKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "p-map": "^7.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ }
+ }
+}
diff --git a/projects/finance-grid/package.json b/projects/finance-grid/package.json
new file mode 100644
index 0000000..8030ac1
--- /dev/null
+++ b/projects/finance-grid/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "finance-grid",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "igniteui-theming": "^17.0.0",
+ "igniteui-webcomponents": "^5.3.0-RC.1",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.0"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.3.1",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+}
diff --git a/projects/finance-grid/public/companies/3M.png b/projects/finance-grid/public/companies/3M.png
new file mode 100644
index 0000000..459eb05
Binary files /dev/null and b/projects/finance-grid/public/companies/3M.png differ
diff --git a/projects/finance-grid/public/companies/Adobe.png b/projects/finance-grid/public/companies/Adobe.png
new file mode 100644
index 0000000..faeb8c6
Binary files /dev/null and b/projects/finance-grid/public/companies/Adobe.png differ
diff --git a/projects/finance-grid/public/companies/Advanced.png b/projects/finance-grid/public/companies/Advanced.png
new file mode 100644
index 0000000..aaeaaa9
Binary files /dev/null and b/projects/finance-grid/public/companies/Advanced.png differ
diff --git a/projects/finance-grid/public/companies/Airbnb.png b/projects/finance-grid/public/companies/Airbnb.png
new file mode 100644
index 0000000..3948673
Binary files /dev/null and b/projects/finance-grid/public/companies/Airbnb.png differ
diff --git a/projects/finance-grid/public/companies/Alibaba.png b/projects/finance-grid/public/companies/Alibaba.png
new file mode 100644
index 0000000..3ca2aa9
Binary files /dev/null and b/projects/finance-grid/public/companies/Alibaba.png differ
diff --git a/projects/finance-grid/public/companies/Alphabet.png b/projects/finance-grid/public/companies/Alphabet.png
new file mode 100644
index 0000000..d76a483
Binary files /dev/null and b/projects/finance-grid/public/companies/Alphabet.png differ
diff --git a/projects/finance-grid/public/companies/Amazon.com.png b/projects/finance-grid/public/companies/Amazon.com.png
new file mode 100644
index 0000000..d56cf46
Binary files /dev/null and b/projects/finance-grid/public/companies/Amazon.com.png differ
diff --git a/projects/finance-grid/public/companies/American.png b/projects/finance-grid/public/companies/American.png
new file mode 100644
index 0000000..6fd8aeb
Binary files /dev/null and b/projects/finance-grid/public/companies/American.png differ
diff --git a/projects/finance-grid/public/companies/Apple.png b/projects/finance-grid/public/companies/Apple.png
new file mode 100644
index 0000000..4962775
Binary files /dev/null and b/projects/finance-grid/public/companies/Apple.png differ
diff --git a/projects/finance-grid/public/companies/Bitcoin.png b/projects/finance-grid/public/companies/Bitcoin.png
new file mode 100644
index 0000000..dc6d97d
Binary files /dev/null and b/projects/finance-grid/public/companies/Bitcoin.png differ
diff --git a/projects/finance-grid/public/companies/Boeing.png b/projects/finance-grid/public/companies/Boeing.png
new file mode 100644
index 0000000..fb3eb84
Binary files /dev/null and b/projects/finance-grid/public/companies/Boeing.png differ
diff --git a/projects/finance-grid/public/companies/Booking.png b/projects/finance-grid/public/companies/Booking.png
new file mode 100644
index 0000000..9953e70
Binary files /dev/null and b/projects/finance-grid/public/companies/Booking.png differ
diff --git a/projects/finance-grid/public/companies/Caterpillar.png b/projects/finance-grid/public/companies/Caterpillar.png
new file mode 100644
index 0000000..45e35ce
Binary files /dev/null and b/projects/finance-grid/public/companies/Caterpillar.png differ
diff --git a/projects/finance-grid/public/companies/Chevron.png b/projects/finance-grid/public/companies/Chevron.png
new file mode 100644
index 0000000..4c97dbd
Binary files /dev/null and b/projects/finance-grid/public/companies/Chevron.png differ
diff --git a/projects/finance-grid/public/companies/Cisco.png b/projects/finance-grid/public/companies/Cisco.png
new file mode 100644
index 0000000..2e2c553
Binary files /dev/null and b/projects/finance-grid/public/companies/Cisco.png differ
diff --git a/projects/finance-grid/public/companies/Coca-Cola.png b/projects/finance-grid/public/companies/Coca-Cola.png
new file mode 100644
index 0000000..e8e11e6
Binary files /dev/null and b/projects/finance-grid/public/companies/Coca-Cola.png differ
diff --git a/projects/finance-grid/public/companies/Costco.png b/projects/finance-grid/public/companies/Costco.png
new file mode 100644
index 0000000..dbba209
Binary files /dev/null and b/projects/finance-grid/public/companies/Costco.png differ
diff --git a/projects/finance-grid/public/companies/Dominos.png b/projects/finance-grid/public/companies/Dominos.png
new file mode 100644
index 0000000..b23e21e
Binary files /dev/null and b/projects/finance-grid/public/companies/Dominos.png differ
diff --git a/projects/finance-grid/public/companies/Ethereum.png b/projects/finance-grid/public/companies/Ethereum.png
new file mode 100644
index 0000000..96ba8c4
Binary files /dev/null and b/projects/finance-grid/public/companies/Ethereum.png differ
diff --git a/projects/finance-grid/public/companies/Exxon.png b/projects/finance-grid/public/companies/Exxon.png
new file mode 100644
index 0000000..5649014
Binary files /dev/null and b/projects/finance-grid/public/companies/Exxon.png differ
diff --git a/projects/finance-grid/public/companies/FedEx.png b/projects/finance-grid/public/companies/FedEx.png
new file mode 100644
index 0000000..61b23ac
Binary files /dev/null and b/projects/finance-grid/public/companies/FedEx.png differ
diff --git a/projects/finance-grid/public/companies/Ford.png b/projects/finance-grid/public/companies/Ford.png
new file mode 100644
index 0000000..78f1a00d
Binary files /dev/null and b/projects/finance-grid/public/companies/Ford.png differ
diff --git a/projects/finance-grid/public/companies/General.png b/projects/finance-grid/public/companies/General.png
new file mode 100644
index 0000000..53442e5
Binary files /dev/null and b/projects/finance-grid/public/companies/General.png differ
diff --git a/projects/finance-grid/public/companies/Honeywell.png b/projects/finance-grid/public/companies/Honeywell.png
new file mode 100644
index 0000000..f51ba37
Binary files /dev/null and b/projects/finance-grid/public/companies/Honeywell.png differ
diff --git a/projects/finance-grid/public/companies/IBM.png b/projects/finance-grid/public/companies/IBM.png
new file mode 100644
index 0000000..9695845
Binary files /dev/null and b/projects/finance-grid/public/companies/IBM.png differ
diff --git a/projects/finance-grid/public/companies/Intel.png b/projects/finance-grid/public/companies/Intel.png
new file mode 100644
index 0000000..f56839b
Binary files /dev/null and b/projects/finance-grid/public/companies/Intel.png differ
diff --git a/projects/finance-grid/public/companies/JPMorgan.png b/projects/finance-grid/public/companies/JPMorgan.png
new file mode 100644
index 0000000..d086d15
Binary files /dev/null and b/projects/finance-grid/public/companies/JPMorgan.png differ
diff --git a/projects/finance-grid/public/companies/Johnson.png b/projects/finance-grid/public/companies/Johnson.png
new file mode 100644
index 0000000..8c7bee8
Binary files /dev/null and b/projects/finance-grid/public/companies/Johnson.png differ
diff --git a/projects/finance-grid/public/companies/Kellogg.png b/projects/finance-grid/public/companies/Kellogg.png
new file mode 100644
index 0000000..bc8d451
Binary files /dev/null and b/projects/finance-grid/public/companies/Kellogg.png differ
diff --git a/projects/finance-grid/public/companies/McDonalds.png b/projects/finance-grid/public/companies/McDonalds.png
new file mode 100644
index 0000000..77f9109
Binary files /dev/null and b/projects/finance-grid/public/companies/McDonalds.png differ
diff --git a/projects/finance-grid/public/companies/Microsoft.png b/projects/finance-grid/public/companies/Microsoft.png
new file mode 100644
index 0000000..fb4711b
Binary files /dev/null and b/projects/finance-grid/public/companies/Microsoft.png differ
diff --git a/projects/finance-grid/public/companies/Mondelez.png b/projects/finance-grid/public/companies/Mondelez.png
new file mode 100644
index 0000000..3d0e611
Binary files /dev/null and b/projects/finance-grid/public/companies/Mondelez.png differ
diff --git a/projects/finance-grid/public/companies/Morgan.png b/projects/finance-grid/public/companies/Morgan.png
new file mode 100644
index 0000000..044c16c
Binary files /dev/null and b/projects/finance-grid/public/companies/Morgan.png differ
diff --git a/projects/finance-grid/public/companies/NVIDIA.png b/projects/finance-grid/public/companies/NVIDIA.png
new file mode 100644
index 0000000..39ee3a0
Binary files /dev/null and b/projects/finance-grid/public/companies/NVIDIA.png differ
diff --git a/projects/finance-grid/public/companies/Netflix.png b/projects/finance-grid/public/companies/Netflix.png
new file mode 100644
index 0000000..f1c93fb
Binary files /dev/null and b/projects/finance-grid/public/companies/Netflix.png differ
diff --git a/projects/finance-grid/public/companies/PayPal.png b/projects/finance-grid/public/companies/PayPal.png
new file mode 100644
index 0000000..069ca17
Binary files /dev/null and b/projects/finance-grid/public/companies/PayPal.png differ
diff --git a/projects/finance-grid/public/companies/PepsiCo.png b/projects/finance-grid/public/companies/PepsiCo.png
new file mode 100644
index 0000000..8be0a30
Binary files /dev/null and b/projects/finance-grid/public/companies/PepsiCo.png differ
diff --git a/projects/finance-grid/public/companies/Pfizer.png b/projects/finance-grid/public/companies/Pfizer.png
new file mode 100644
index 0000000..ffecb04
Binary files /dev/null and b/projects/finance-grid/public/companies/Pfizer.png differ
diff --git a/projects/finance-grid/public/companies/Procter.png b/projects/finance-grid/public/companies/Procter.png
new file mode 100644
index 0000000..aed1027
Binary files /dev/null and b/projects/finance-grid/public/companies/Procter.png differ
diff --git a/projects/finance-grid/public/companies/Salesforce.png b/projects/finance-grid/public/companies/Salesforce.png
new file mode 100644
index 0000000..316712c
Binary files /dev/null and b/projects/finance-grid/public/companies/Salesforce.png differ
diff --git a/projects/finance-grid/public/companies/Spotify.png b/projects/finance-grid/public/companies/Spotify.png
new file mode 100644
index 0000000..8f15517
Binary files /dev/null and b/projects/finance-grid/public/companies/Spotify.png differ
diff --git a/projects/finance-grid/public/companies/Starbucks.png b/projects/finance-grid/public/companies/Starbucks.png
new file mode 100644
index 0000000..d3b3d8f
Binary files /dev/null and b/projects/finance-grid/public/companies/Starbucks.png differ
diff --git a/projects/finance-grid/public/companies/Tesla.png b/projects/finance-grid/public/companies/Tesla.png
new file mode 100644
index 0000000..56856ff
Binary files /dev/null and b/projects/finance-grid/public/companies/Tesla.png differ
diff --git a/projects/finance-grid/public/companies/The.png b/projects/finance-grid/public/companies/The.png
new file mode 100644
index 0000000..2ab44f2
Binary files /dev/null and b/projects/finance-grid/public/companies/The.png differ
diff --git a/projects/finance-grid/public/companies/Uber.png b/projects/finance-grid/public/companies/Uber.png
new file mode 100644
index 0000000..82f26bf
Binary files /dev/null and b/projects/finance-grid/public/companies/Uber.png differ
diff --git a/projects/finance-grid/public/companies/Visa.png b/projects/finance-grid/public/companies/Visa.png
new file mode 100644
index 0000000..a3ebd79
Binary files /dev/null and b/projects/finance-grid/public/companies/Visa.png differ
diff --git a/projects/finance-grid/public/companies/Walmart.png b/projects/finance-grid/public/companies/Walmart.png
new file mode 100644
index 0000000..c7d6038
Binary files /dev/null and b/projects/finance-grid/public/companies/Walmart.png differ
diff --git a/projects/finance-grid/public/companies/Walt.png b/projects/finance-grid/public/companies/Walt.png
new file mode 100644
index 0000000..9846ac5
Binary files /dev/null and b/projects/finance-grid/public/companies/Walt.png differ
diff --git a/projects/finance-grid/public/companies/Zoom.png b/projects/finance-grid/public/companies/Zoom.png
new file mode 100644
index 0000000..4aa2bc7
Binary files /dev/null and b/projects/finance-grid/public/companies/Zoom.png differ
diff --git a/projects/finance-grid/src/assets/icons/icons.ts b/projects/finance-grid/src/assets/icons/icons.ts
new file mode 100644
index 0000000..61a3c5d
--- /dev/null
+++ b/projects/finance-grid/src/assets/icons/icons.ts
@@ -0,0 +1,2 @@
+export const TRENDING_UP = ' ';
+export const TRENDING_DOWN = ' ';
diff --git a/projects/finance-grid/src/finance-grid.scss b/projects/finance-grid/src/finance-grid.scss
new file mode 100644
index 0000000..c15cbd6
--- /dev/null
+++ b/projects/finance-grid/src/finance-grid.scss
@@ -0,0 +1,46 @@
+@use "./styles/utils" as *;
+@use "igniteui-theming" as *;
+@use "igniteui-theming/sass/typography/presets/bootstrap" as *;
+@use "igniteui-theming/sass/elevations/presets" as *;
+@use "igniteui-theming/sass/color/presets/light/bootstrap" as *;
+
+:host {
+ height: 100%;
+ width: 100%;
+ font-family: var(--ig-font-family);
+ @include theme($palette, $material-elevations, $typeface, $type-scale, "light");
+}
+
+:host {
+ display: block;
+ height: 100%;
+ width: 100%;
+}
+
+.profitCondition {
+ color: var(--ig-success-500);
+}
+
+.lossCondition {
+ color: var(--ig-error-500);
+}
+
+.assets-container {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ & igc-avatar {
+ --size: 24px;
+ }
+}
+
+.grid-sizing {
+ --ig-size: var(--ig-size-small);
+}
+
+.progress-container {
+ display: grid;
+ grid-template-columns: 0.5fr 1fr;
+ width: 100%;
+ gap: 0.5rem;
+}
diff --git a/projects/finance-grid/src/finance-grid.ts b/projects/finance-grid/src/finance-grid.ts
new file mode 100644
index 0000000..8bced9e
--- /dev/null
+++ b/projects/finance-grid/src/finance-grid.ts
@@ -0,0 +1,162 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement, query, state } from "lit/decorators.js";
+import { dataService } from "./services/data.service";
+import { TRENDING_DOWN, TRENDING_UP } from "./assets/icons/icons";
+import { configureTheme, defineComponents, IgcAvatarComponent, IgcIconComponent, IgcInputComponent, IgcLinearProgressComponent, registerIconFromText } from "igniteui-webcomponents";
+import { FilteringLogic, IgcCellTemplateContext, IgcFilteringExpressionsTree, IgcGridComponent, IgcStringFilteringOperand } from "igniteui-webcomponents-grids/grids";
+import "igniteui-webcomponents-grids/grids/combined.js";
+import financeStyles from "./finance-grid.scss?inline";
+
+defineComponents(IgcAvatarComponent, IgcIconComponent, IgcLinearProgressComponent, IgcInputComponent);
+@customElement("app-finance-grid")
+export default class FinanceGrid extends LitElement {
+ constructor() {
+ super();
+ registerIconFromText("trending_up", TRENDING_UP, "material");
+ registerIconFromText("trending_down", TRENDING_DOWN, "material");
+ dataService.getFinanceData().then((data) => {
+ this.financeData = data;
+ // this.isLoading = false;
+ });
+ this._timer = setInterval(() => {
+ dataService.updateAllPrices(this.grid.data);
+ this.grid.markForCheck();
+ }, this.updateTimerInMs);
+ }
+
+ disconnectedCallback() {
+ super.disconnectedCallback();
+ clearInterval(this._timer);
+ }
+ @query("igc-grid")
+ private grid!: IgcGridComponent;
+
+ @state()
+ private financeData = [];
+
+ // @state()
+ // private isLoading = true;
+
+ private profitConditionHandler = (rowData: any, columnKey: string) => {
+ return rowData[columnKey] >= 0;
+ };
+
+ private lossConditionHandler = (rowData: any, columnKey: string) => {
+ return rowData[columnKey] < 0;
+ };
+
+ private profitLossValueClasses = {
+ profitCondition: this.profitConditionHandler,
+ lossCondition: this.lossConditionHandler,
+ };
+ private _timer!: ReturnType;
+ private readonly updateTimerInMs = 3000;
+
+ private getPathToImage(val: string): string {
+ return `${import.meta.env.BASE_URL}companies/${val.split(" ")[0]}.png`;
+ }
+
+ private assetTemplate = (ctx: IgcCellTemplateContext) => {
+ return html`
+
+
+ ${ctx.cell.value}
+
+ `;
+ };
+
+ private renderIcon = (val: number) => {
+ return val >= 0 ? html` ` : html` `;
+ };
+
+ private dailyChangePercentageTemplate = (ctx: IgcCellTemplateContext) => {
+ const percentageValue = (ctx.cell.value * 100).toFixed(2);
+ return html`
+
+
${percentageValue}%
+ ${this.renderIcon(ctx.cell.value)}
+
+ `;
+ };
+
+ private profitLossValueTemplate = (ctx: IgcCellTemplateContext) => {
+ const formattedValue = `${ctx.cell.value < 0 ? "-" : ""}$${Math.abs(ctx.cell.value).toFixed(2)}`;
+ return html`
+
+
${formattedValue}
+ ${this.renderIcon(ctx.cell.value)}
+
+ `;
+ };
+
+ private allocationTemplate = (ctx: IgcCellTemplateContext) => {
+ const percentageValue = (ctx.cell.value * 100).toFixed(2);
+
+ return html`
+
+
${percentageValue}%
+
+
+ `;
+ };
+
+ private holdingPeriodTemplate = (ctx: IgcCellTemplateContext) => {
+ return html` ${ctx.cell.value} days `;
+ };
+
+ private filter = (e: any) => {
+ const value = e.target.value;
+ const expressionTree = new IgcFilteringExpressionsTree();
+ expressionTree.operator = FilteringLogic.Or;
+ const tickerExpression = {
+ condition: IgcStringFilteringOperand.instance().condition("contains"),
+ fieldName: "id",
+ searchVal: value,
+ ignoreCase: true,
+ };
+ const assetExpression = {
+ condition: IgcStringFilteringOperand.instance().condition("contains"),
+ fieldName: "holdingName",
+ searchVal: value,
+ ignoreCase: true,
+ };
+ expressionTree.filteringOperands.push(tickerExpression, assetExpression);
+ if (value) {
+ this.grid.filteringExpressionsTree = expressionTree;
+ } else {
+ this.grid.clearFilter();
+ }
+ };
+
+ render() {
+ configureTheme("bootstrap");
+
+ return html`
+
+
+
+ Financial Portfolio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+
+ static styles = unsafeCSS(financeStyles);
+}
diff --git a/projects/finance-grid/src/services/data.service.ts b/projects/finance-grid/src/services/data.service.ts
new file mode 100644
index 0000000..03ebc56
--- /dev/null
+++ b/projects/finance-grid/src/services/data.service.ts
@@ -0,0 +1,98 @@
+const DATA_URL = "https://www.infragistics.com/grid-examples-data/data/finance/finance.json";
+
+class DataService {
+ public getFinanceData = async () => {
+ try {
+ const response = await fetch(DATA_URL);
+ if (!response.ok) {
+ console.error(response.statusText);
+ return Promise.resolve([]);
+ }
+ const currData = await response.json();
+
+ const totalPortfolioInvestment = currData.reduce((acc: any, x: any) => {
+ acc += x.value.boughtPrice * x.positions;
+ return acc;
+ }, 0);
+ currData.forEach((record: any) => {
+ record["profitLossValue"] = this.calculateProfitLossValue(record.value.currentPrice, record.value.boughtPrice, record.positions);
+
+ record["profitLossPercentage"] = this.calculateProfitLossPercentage(record.profitLossValue, record.value.boughtPrice, record.positions);
+
+ const totalInitialInvestment = record.value.boughtPrice * record.positions;
+ record["allocation"] = parseFloat((totalInitialInvestment / totalPortfolioInvestment).toFixed(4));
+
+ record["marketValue"] = parseFloat((record.value.currentPrice * record.positions).toFixed(2));
+
+ record["initialPrice"] = record.value.currentPrice;
+
+ record["dailyPercentageChange"] = 0;
+ });
+
+ return currData;
+ } catch (err) {
+ console.error(err);
+ }
+ };
+
+ public updateAllPrices = (data: any) => {
+ for (const dataRow of data) {
+ const randomizedData = this.randomizeData(dataRow);
+ dataRow.value.currentPrice = randomizedData.newPrice;
+ dataRow.profitLossValue = randomizedData.profitLossValue;
+ dataRow.profitLossPercentage = randomizedData.profitLossPercentage;
+ dataRow.marketValue = randomizedData.marketValue;
+ dataRow.dailyPercentageChange = randomizedData.dailyPercentageChange;
+ }
+ return Array.from(data);
+ };
+
+ private calculateProfitLossValue = (currentPrice: number, boughtPrice: number, positions: number) => {
+ const profitLossValue = (currentPrice - boughtPrice) * positions;
+ return parseFloat(profitLossValue.toFixed(2));
+ };
+
+ private calculateProfitLossPercentage = (profitLossValue: number, boughtPrice: number, positions: number) => {
+ const totalInitialInvestment = boughtPrice * positions;
+ const profitLossPercentage = profitLossValue / totalInitialInvestment;
+ return parseFloat(profitLossPercentage.toFixed(4));
+ };
+
+ private calculateDailyPercentageChange = (initialPrice: number, finalPrice: number) => {
+ const priceDifference = finalPrice - initialPrice;
+ const percentageChange = (priceDifference / initialPrice) * 100;
+ return percentageChange;
+ };
+
+ private randomizeData(dataRow: any): {
+ newPrice: number;
+ profitLossValue: number;
+ profitLossPercentage: number;
+ marketValue: number;
+ dailyPercentageChange: number;
+ } {
+ const rnd = parseFloat(Math.random().toFixed(2));
+ const volatility = 0.01; // Maximum percentage change of a price will be either -0.01% or 0.01%
+
+ let changePercent = 2 * volatility * rnd; // this can exceed volatility when rnd is > 0.5
+ if (changePercent > volatility) {
+ // if exceeds then make the change percentage negative
+ changePercent -= 2 * volatility;
+ }
+ const changeAmount = dataRow.value.currentPrice * (changePercent / 100);
+ const newPrice = parseFloat((dataRow.value.currentPrice + changeAmount).toFixed(2));
+ const newProfitLossValue = this.calculateProfitLossValue(newPrice, dataRow.value.boughtPrice, dataRow.positions);
+ const newProfitLossPercentage = this.calculateProfitLossPercentage(newProfitLossValue, dataRow.value.boughtPrice, dataRow.positions);
+ const newMarketValue = parseFloat((newPrice * dataRow.positions).toFixed(2));
+ const newDailyPercentage = this.calculateDailyPercentageChange(dataRow.initialPrice, newPrice);
+ return {
+ newPrice,
+ profitLossValue: newProfitLossValue,
+ profitLossPercentage: newProfitLossPercentage,
+ marketValue: newMarketValue,
+ dailyPercentageChange: newDailyPercentage,
+ };
+ }
+}
+
+export const dataService: DataService = new DataService();
diff --git a/projects/finance-grid/src/styles/index.css b/projects/finance-grid/src/styles/index.css
new file mode 100644
index 0000000..a950b4c
--- /dev/null
+++ b/projects/finance-grid/src/styles/index.css
@@ -0,0 +1,19 @@
+html,
+body {
+ height: 100%;
+}
+
+html {
+ box-sizing: border-box;
+}
+
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p {
+ margin: 0;
+}
diff --git a/projects/finance-grid/src/styles/utils.scss b/projects/finance-grid/src/styles/utils.scss
new file mode 100644
index 0000000..28e2924
--- /dev/null
+++ b/projects/finance-grid/src/styles/utils.scss
@@ -0,0 +1,33 @@
+@use "sass:map";
+@use "igniteui-theming" as *;
+
+@function is-root() {
+ @each $selector in & {
+ @return $selector == null;
+ }
+}
+
+@mixin theme($palette, $elevations, $typeface, $type-scale, $variant) {
+ $root: is-root();
+ $scope: if($root, ":root", "&");
+
+ #{$scope} {
+ --ig-theme: #{map.get($palette, "_meta", "variant")};
+ --ig-theme-variant: #{$variant};
+ --ig-spacing: 1;
+ --ig-spacing-inline: 1;
+ --ig-spacing-block: 1;
+ --ig-size-small: 1;
+ --ig-size-medium: 2;
+ --ig-size-large: 3;
+ --ig-scrollbar-size: #{rem(16px)};
+ }
+
+ #{$scope}[dir="rtl"] {
+ --ig-dir: -1;
+ }
+
+ @include palette($palette);
+ @include elevations($elevations);
+ @include typography($font-family: $typeface, $type-scale: $type-scale);
+}
diff --git a/projects/finance-grid/src/vite-env.d.ts b/projects/finance-grid/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/projects/finance-grid/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/projects/finance-grid/tsconfig.json b/projects/finance-grid/tsconfig.json
new file mode 100644
index 0000000..cdb96f3
--- /dev/null
+++ b/projects/finance-grid/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/projects/finance-grid/vite.config.ts b/projects/finance-grid/vite.config.ts
new file mode 100644
index 0000000..87e2435
--- /dev/null
+++ b/projects/finance-grid/vite.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig } from "vite";
+import { viteStaticCopy } from "vite-plugin-static-copy";
+
+export default defineConfig({
+ resolve: {
+ alias: {
+ "igniteui-theming": new URL("./node_modules/igniteui-theming", import.meta.url).pathname,
+ },
+ },
+ plugins: [
+ viteStaticCopy({
+ targets: [
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/bootstrap.css",
+ dest: "themes",
+ },
+ ],
+ }),
+ ],
+});
diff --git a/projects/fleet-management-grid/.gitignore b/projects/fleet-management-grid/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/projects/fleet-management-grid/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/projects/fleet-management-grid/ignite-ui-cli.json b/projects/fleet-management-grid/ignite-ui-cli.json
new file mode 100644
index 0000000..fa4ee3a
--- /dev/null
+++ b/projects/fleet-management-grid/ignite-ui-cli.json
@@ -0,0 +1,16 @@
+{
+ "version": "$(cliVersion)",
+ "project": {
+ "defaultPort": 8000,
+ "framework": "webcomponents",
+ "projectTemplate": "$(projectTemplate)",
+ "projectType": "igc-ts",
+ "theme": "$(theme)",
+ "isBundle": false,
+ "components": [],
+ "sourceFiles": [],
+ "isShowcase": false,
+ "version": ""
+ },
+ "build": {}
+}
diff --git a/projects/fleet-management-grid/index.html b/projects/fleet-management-grid/index.html
new file mode 100644
index 0000000..9a89ecc
--- /dev/null
+++ b/projects/fleet-management-grid/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Fleet Management
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/fleet-management-grid/package-lock.json b/projects/fleet-management-grid/package-lock.json
new file mode 100644
index 0000000..e00b488
--- /dev/null
+++ b/projects/fleet-management-grid/package-lock.json
@@ -0,0 +1,1921 @@
+{
+ "name": "fleet-management-grid",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "fleet-management-grid",
+ "version": "0.0.0",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.13",
+ "@igniteui/material-icons-extended": "^3.1.0",
+ "igniteui-theming": "^17.0.0",
+ "igniteui-webcomponents": "^5.3.0",
+ "igniteui-webcomponents-charts": "^5.3.0",
+ "igniteui-webcomponents-core": "^5.4.0",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "igniteui-webcomponents-maps": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.0"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.2.0",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
+ "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz",
+ "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz",
+ "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz",
+ "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz",
+ "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz",
+ "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz",
+ "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz",
+ "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz",
+ "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz",
+ "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz",
+ "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz",
+ "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz",
+ "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz",
+ "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz",
+ "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz",
+ "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz",
+ "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz",
+ "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz",
+ "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz",
+ "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz",
+ "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz",
+ "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz",
+ "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz",
+ "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz",
+ "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+ "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg=="
+ },
+ "node_modules/@igniteui/material-icons-extended": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@igniteui/material-icons-extended/-/material-icons-extended-3.1.0.tgz",
+ "integrity": "sha512-gtkIaeOHAWbppCAdVFNtEhnJ/tML6q4hIHF8zM5Fo0THJmu2+iJvBSCNyb8/c7P+mr1ImNqwhKuu+PqUlz493A=="
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
+ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ=="
+ },
+ "node_modules/@lit-labs/virtualizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.1.0.tgz",
+ "integrity": "sha512-I79sNaalK9rD6FWO/AoxBMnA6jjNBrQu7F6lzz8W/GkQLcqveMWK3IrJAilso+XeFFn7BvlxBv6FqZaoMt+Qkg==",
+ "dependencies": {
+ "lit": "^3.2.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/@lit/context": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.5.tgz",
+ "integrity": "sha512-57KyQD9of4RlBXkOIF1N40/BLY1j+1wLB5wRmB207+VtwNIRfXbanLsB6BsnFYXrycOUIp2d8gqTNGwuW1lE9Q==",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.2 || ^2.1.0"
+ }
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.0.tgz",
+ "integrity": "sha512-L2qyoZSQClcBmq0qajBVbhYEcG6iK0XfLn66ifLe/RfC0/ihpc+pl0Wdn8bJ8o+hj38cG0fGXRgSS20MuXn7qA==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz",
+ "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz",
+ "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz",
+ "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz",
+ "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz",
+ "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz",
+ "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz",
+ "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz",
+ "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz",
+ "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz",
+ "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz",
+ "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz",
+ "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz",
+ "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz",
+ "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz",
+ "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz",
+ "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz",
+ "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz",
+ "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz",
+ "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz",
+ "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
+ "dev": true
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "devOptional": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.2",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz",
+ "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.2",
+ "@esbuild/android-arm": "0.25.2",
+ "@esbuild/android-arm64": "0.25.2",
+ "@esbuild/android-x64": "0.25.2",
+ "@esbuild/darwin-arm64": "0.25.2",
+ "@esbuild/darwin-x64": "0.25.2",
+ "@esbuild/freebsd-arm64": "0.25.2",
+ "@esbuild/freebsd-x64": "0.25.2",
+ "@esbuild/linux-arm": "0.25.2",
+ "@esbuild/linux-arm64": "0.25.2",
+ "@esbuild/linux-ia32": "0.25.2",
+ "@esbuild/linux-loong64": "0.25.2",
+ "@esbuild/linux-mips64el": "0.25.2",
+ "@esbuild/linux-ppc64": "0.25.2",
+ "@esbuild/linux-riscv64": "0.25.2",
+ "@esbuild/linux-s390x": "0.25.2",
+ "@esbuild/linux-x64": "0.25.2",
+ "@esbuild/netbsd-arm64": "0.25.2",
+ "@esbuild/netbsd-x64": "0.25.2",
+ "@esbuild/openbsd-arm64": "0.25.2",
+ "@esbuild/openbsd-x64": "0.25.2",
+ "@esbuild/sunos-x64": "0.25.2",
+ "@esbuild/win32-arm64": "0.25.2",
+ "@esbuild/win32-ia32": "0.25.2",
+ "@esbuild/win32-x64": "0.25.2"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "devOptional": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/igniteui-theming": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/igniteui-theming/-/igniteui-theming-17.2.0.tgz",
+ "integrity": "sha512-i2zMlims6zjWd8aWJsimtDtgqRe9O2i7aH/85wf+Es5x2aSkGZsE2/OLrDb0GMXt2ISIsvjVnb1P46hZYiH+BQ==",
+ "peerDependencies": {
+ "sass": "^1.69.5"
+ }
+ },
+ "node_modules/igniteui-webcomponents": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-5.3.0.tgz",
+ "integrity": "sha512-K5PPwfT2ECp/W3+mNapt1HW6PRIQK7DkehK4SbsCc513LwTzBL1gfHYax0Hk3eiPJP2M/8ANBJ3yDZdRy6YzXQ==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.0",
+ "@lit-labs/virtualizer": "^2.1.0",
+ "@lit/context": "^1.1.0",
+ "lit": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/igniteui-webcomponents-charts": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-charts/-/igniteui-webcomponents-charts-5.4.0.tgz",
+ "integrity": "sha512-PsJdwh67xioJxg7LRugYJWezMTVZG+uHXRH3xUtiYVgC5WeW26T4yP8biKG/BCxG7DJ0agP5W4spshvJq5T2Ig==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-core": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-core/-/igniteui-webcomponents-core-5.4.0.tgz",
+ "integrity": "sha512-JKQ0CXPprcHwEyV7uO62YmONcfN+0ExqeSiW+X3Ge390aetIW49HT0ynph6rZAg3UP4NVeh2i0OitmH7jgkQUA==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-grids": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-grids/-/igniteui-webcomponents-grids-5.4.0.tgz",
+ "integrity": "sha512-qt9SEMf+//pbDly5uOo/O+e6DWgSTLC7fdop2RhzlNZYF+ygPRe/PXijtbo1UCr1QvXjTwNYRzQ3zFGoUg3ILw==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0",
+ "igniteui-webcomponents-inputs": "5.4.0",
+ "igniteui-webcomponents-layouts": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-inputs": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-inputs/-/igniteui-webcomponents-inputs-5.4.0.tgz",
+ "integrity": "sha512-sGVwoHNsf9P7aEEyz+zyKgb5K6s+SHn7Pi9f3m/XJb2CGIaGgEkBWyA+nQocsBHGegPFE13LtGDhd2fjo8WJAQ==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-layouts": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-layouts/-/igniteui-webcomponents-layouts-5.4.0.tgz",
+ "integrity": "sha512-Nbg3dEKX2xYTSoPHbyoQdRvcsemEBk+Ej+QM7qfZFw0G+uqyIf11hgOWvm8WEmMzFGnfbqpS43V8j2MEAc/LnA==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0",
+ "igniteui-webcomponents-inputs": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-maps": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-maps/-/igniteui-webcomponents-maps-5.4.0.tgz",
+ "integrity": "sha512-OMrfEXgeVOwQu9K0QQRgp4pOfMg01QY1RmGj4WUyqojJt5L07WaE2evq+Sl4DwIh8Fz5nL5RPx7bBnhq6grj1w==",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-charts": "5.4.0",
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg=="
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "devOptional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/lit": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz",
+ "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==",
+ "dependencies": {
+ "@lit/reactive-element": "^2.1.0",
+ "lit-element": "^4.2.0",
+ "lit-html": "^3.3.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.0.tgz",
+ "integrity": "sha512-MGrXJVAI5x+Bfth/pU9Kst1iWID6GHDLEzFEnyULB/sFiRLgkd8NPK/PeeXxktA3T6EIIaq8U3KcbTU5XFcP2Q==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.1.0",
+ "lit-html": "^3.3.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.0.tgz",
+ "integrity": "sha512-RHoswrFAxY2d8Cf2mm4OZ1DgzCoBKUKSPvA1fhtSELxUERq2aQQ2h05pO9j81gS1o7RIRJ+CePLogfyahwmynw==",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "devOptional": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "optional": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.40.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz",
+ "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.7"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.40.0",
+ "@rollup/rollup-android-arm64": "4.40.0",
+ "@rollup/rollup-darwin-arm64": "4.40.0",
+ "@rollup/rollup-darwin-x64": "4.40.0",
+ "@rollup/rollup-freebsd-arm64": "4.40.0",
+ "@rollup/rollup-freebsd-x64": "4.40.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.40.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.40.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.40.0",
+ "@rollup/rollup-linux-arm64-musl": "4.40.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.40.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.40.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.40.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.40.0",
+ "@rollup/rollup-linux-x64-gnu": "4.40.0",
+ "@rollup/rollup-linux-x64-musl": "4.40.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.40.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.40.0",
+ "@rollup/rollup-win32-x64-msvc": "4.40.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.3.tgz",
+ "integrity": "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
+ "dev": true,
+ "dependencies": {
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "devOptional": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.1.tgz",
+ "integrity": "sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.12"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-static-copy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz",
+ "integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "p-map": "^7.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ }
+ }
+}
diff --git a/projects/fleet-management-grid/package.json b/projects/fleet-management-grid/package.json
new file mode 100644
index 0000000..f19b014
--- /dev/null
+++ b/projects/fleet-management-grid/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "fleet-management-grid",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.13",
+ "@igniteui/material-icons-extended": "^3.1.0",
+ "igniteui-theming": "^17.0.0",
+ "igniteui-webcomponents": "^5.3.0",
+ "igniteui-webcomponents-charts": "^5.3.0",
+ "igniteui-webcomponents-core": "^5.4.0",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "igniteui-webcomponents-maps": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.0"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.2.0",
+ "vite-plugin-static-copy": "^2.3.0"
+ }
+}
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/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..c87da4b
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..64b23ba
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..78f1a00b
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..7fe953e
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..793050e
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..28485eb
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..fa9b0b4
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..c8b10c9
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..4582ff9
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..ec8efea
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..22146cf
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..46b50b3
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..443ca04
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..db7d2e1
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..a684a66
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..e01c7c3
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..1cd8992
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..638bba9
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..1e540f2
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..a1ca2b7
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..3d2b1d4
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..a925c20
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..e2a8a00
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..5cc24cf
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..79342d9
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..676b050
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..11adb72
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..9c0db98
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..6939e63
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..19472d3
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..4c4cf0e
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..97505f6
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..7ba8f35
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..52d0986
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..119b560
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..c6fb88b
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..e8cc163
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..d2a4dad
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..9273d25
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..5c4668b
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..d8e6acc
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..f02a947
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..6a65364
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..7b04bf0
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..5e97b5c
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..75c60ae
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..22ee31d
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..8d913a4
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..a85d010
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..42e1c5b
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..e88ff99
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..2178980
Binary files /dev/null and b/projects/fleet-management-grid/public/people/women/9.jpg differ
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/driver_categories.json b/projects/fleet-management-grid/src/assets/driver_categories.json
new file mode 100644
index 0000000..f2328cb
--- /dev/null
+++ b/projects/fleet-management-grid/src/assets/driver_categories.json
@@ -0,0 +1,9 @@
+{
+ "driverCategories": [
+ { "label": "Driver's License", "key": "license" },
+ { "label": "Address", "key": "address" },
+ { "label": "City", "key": "city" },
+ { "label": "Phone", "key": "phone" },
+ { "label": "Email", "key": "email" }
+ ]
+}
diff --git a/projects/fleet-management-grid/src/assets/icons/icons.ts b/projects/fleet-management-grid/src/assets/icons/icons.ts
new file mode 100644
index 0000000..f57b36a
--- /dev/null
+++ b/projects/fleet-management-grid/src/assets/icons/icons.ts
@@ -0,0 +1,2 @@
+export const CLEAR = ` `;
+
diff --git a/projects/fleet-management-grid/src/assets/vehicle_details.json b/projects/fleet-management-grid/src/assets/vehicle_details.json
new file mode 100644
index 0000000..a0aeb46
--- /dev/null
+++ b/projects/fleet-management-grid/src/assets/vehicle_details.json
@@ -0,0 +1,20 @@
+{
+ "detailsCategories": [
+ { "label": "Make", "key": "make" },
+ { "label": "Generation", "key": "details.generation" },
+ { "label": "Year of Manufacture", "key": "details.yearOfManufacture" },
+ { "label": "Fuel Type", "key": "details.fuelType" },
+ { "label": "Doors", "key": "details.doors" },
+ { "label": "Seats", "key": "details.seats" },
+ { "label": "Transmission", "key": "details.transmission" }
+ ],
+ "engineCategories": [
+ { "label": "Engine", "key": "details.engine" },
+ { "label": "Power", "key": "details.power" },
+ { "label": "Mileage", "key": "details.mileage" },
+ { "label": "Cubature", "key": "details.cubature" },
+ { "label": "Color", "key": "details.color" },
+ { "label": "MSRP", "key": "details.msrp" },
+ { "label": "Toll Pass ID", "key": "details.tollPassId" }
+ ]
+}
diff --git a/projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid.scss b/projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid.scss
new file mode 100644
index 0000000..e4d88fd
--- /dev/null
+++ b/projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid.scss
@@ -0,0 +1,344 @@
+@use "../../styles/utils" as *;
+@use "igniteui-theming" as *;
+@use "igniteui-theming/sass/typography/presets/material" as *;
+@use "igniteui-theming/sass/elevations/presets" as *;
+@use "igniteui-theming/sass/color/presets/dark/material" as *;
+
+/* --------------------------------------------- */
+/* GLOBAL STYLES */
+/* --------------------------------------------- */
+
+:host {
+ display: block;
+ height: 100%;
+ width: 100%;
+ font-family: var(--ig-font-family);
+ @include theme($palette, $material-elevations, $typeface, $type-scale, "dark");
+}
+
+igc-tabs {
+ flex: 1;
+ width: 100%;
+}
+
+igc-divider {
+ color: var(--ig-gray-200);
+ opacity: 24%;
+}
+
+.overlay-backdrop {
+ position: fixed;
+ inset: 0;
+ background-color: rgba(0, 0, 0, 0.4);
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 200ms ease;
+ z-index: 9998;
+ pointer-events: none;
+}
+
+.overlay-backdrop.visible {
+ opacity: 1;
+ visibility: visible;
+ pointer-events: auto;
+}
+
+/* Global Grid Styles */
+.main-grid {
+ --ig-size: var(--ig-size-small)
+}
+
+
+/* --------------------------------------------- */
+/* COMMON ELEMENT STYLES */
+/* --------------------------------------------- */
+
+.icon-style {
+ color: #000000;
+}
+
+.link-style {
+ color: var(--primary-text-color);
+}
+
+.grid-container {
+ padding: 16px;
+}
+
+.chart-canvas {
+ width: 100%;
+ height: 100%;
+}
+
+.pie-chart-canvas {
+ width: 90%;
+ height: 90%;
+}
+
+/* --------------------------------------------- */
+/* CHART STYLES */
+/* --------------------------------------------- */
+
+.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;
+}
+
+/*Specfic Chart Types*/
+.pie-chart-container {
+ grid-column: 1;
+ grid-row: 1;
+}
+
+.area-chart-container {
+ grid-column: 1;
+ grid-row: 2;
+}
+
+.column-chart-container {
+ grid-column: 2;
+ grid-row: 1 / span 2;
+}
+
+.column-chart {
+ width: 95%;
+ height: 420px;
+}
+
+.column-chart-two-series {
+ align-self: center;
+ width: 95%;
+ height: 390px;
+}
+
+.utilization-chart-container {
+ flex-direction: column;
+ align-items: start;
+}
+
+/* --------------------------------------------- */
+/* DETAILS & TABLE STYLES */
+/* --------------------------------------------- */
+
+.details-container {
+ display: flex;
+ align-items: flex-start;
+ padding: 16px;
+ width: 100%;
+}
+
+.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,
+.detail-content-container {
+ width: 50%;
+}
+
+.detail-category-container {
+ padding-left: 25px;
+}
+
+.detail-item {
+ padding: 5px 0;
+ font-size: 0.8125rem;
+}
+
+.detail-category {
+ font-weight: bold;
+}
+
+/* --------------------------------------------- */
+/* OVERLAYS & CARDS */
+/* --------------------------------------------- */
+
+.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);
+}
+
+.overlay-wrapper {
+ position: absolute;
+ display: none;
+ opacity: 0;
+ transition: opacity 500ms ease;
+ width: max-content;
+ z-index: 9999;
+ pointer-events: none;
+}
+
+.overlay-wrapper.visible {
+ opacity: 1;
+ pointer-events: auto;
+}
+
+.overlay-driver {
+ width: 327px;
+ height: 360px;
+ padding: 0px;
+ margin: 0px;
+}
+
+/*Overlay Sections*/
+.overlay-avatar {
+ --ig-size: var(--ig-size-medium);
+ margin-bottom: 16px;
+}
+
+.overlay-text {
+ font-size: 14px;
+}
+
+.overlay-title {
+ font-size: 20px;
+ margin: 0;
+}
+
+.overlay-header-content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
+}
+
+.overlay-location-header,
+.overlay-driver-header {
+ height: 38%;
+ width: 100%;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ align-content: center;
+}
+
+.overlay-location-content,
+.overlay-driver-content {
+ height: 48%;
+ width: 100%;
+ padding: 0px;
+ justify-content: center;
+}
+
+.overlay-location-actions,
+.overlay-driver-actions {
+ height: 13%;
+ width: 100%;
+ justify-content: end;
+ margin: 8px;
+}
+
+.overlay-location-actions {
+ margin: 0px;
+}
+
+/* --------------------------------------------- */
+/* DRIVER STYLES */
+/* --------------------------------------------- */
+
+.driver-block-container {
+ display: flex;
+ flex-direction: row;
+ justify-self: center;
+ width: 85%;
+}
+
+.driver-category-container,
+.driver-detail-container {
+ width: 50%;
+}
+
+.logo-avatar {
+ --size: 22px;
+ border-radius: 0.25rem;
+
+}
+
+/* --------------------------------------------- */
+/* MISC STYLES */
+/* --------------------------------------------- */
+
+.image-container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+}
+
+.image-container img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.status-value {
+ padding-left: 8px;
+ color: var(--primary-text-color);
+}
+
+.carousel-container {
+ width: 420px;
+ height: 240px;
+}
+
+h3 {
+ margin: 0 0;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid.ts b/projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid.ts
new file mode 100644
index 0000000..dbf4a11
--- /dev/null
+++ b/projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid.ts
@@ -0,0 +1,682 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement, query, state } from "lit/decorators.js";
+import { dataService } from "../../services/data.service";
+import { IgcCellTemplateContext, IgcGridComponent, IgcGridMasterDetailContext, SortingDirection } from 'igniteui-webcomponents-grids/grids';
+import { configureTheme, defineComponents, IgcAvatarComponent, IgcBadgeComponent, IgcButtonComponent, IgcCardComponent, IgcCarouselComponent, IgcDividerComponent, IgcIconComponent, IgcSelectComponent, IgcSelectHeaderComponent, IgcSelectItemComponent, IgcTabsComponent, registerIconFromText } from "igniteui-webcomponents";
+import { check, delivery, wrench } from '@igniteui/material-icons-extended';
+import { DataTemplateMeasureInfo, DataTemplateRenderInfo, IgDataTemplate, ModuleManager } from "igniteui-webcomponents-core";
+import "../trip-history-grid.component";
+import "../maintenance.component"
+import 'igniteui-webcomponents-grids/grids/combined.js';
+import { CLEAR } from "../../assets/icons/icons";
+import CAR_PHOTO_MANIFEST from '../../assets/car_photo_manifest.json';
+import CAR_IMAGES from '../../assets/car_images.json';
+import VEHICLE_DETAILS from '../../assets/vehicle_details.json';
+import DRIVER_CATEGORIES from '../../assets/driver_categories.json'
+import { Period } from "../../models/enums";
+import { ChartType } from "../../models/enums";
+import { IgcCategoryChartModule, IgcDataChartInteractivityModule, IgcLegendComponent, IgcLegendModule, IgcPieChartModule } from "igniteui-webcomponents-charts";
+import { OverlayVehicle } from "../../models/vehicle.model";
+import { IgcGeographicMapComponent, IgcGeographicMapModule, IgcGeographicSymbolSeriesComponent, IgcGeographicSymbolSeriesModule } from "igniteui-webcomponents-maps";
+import { computePosition, flip, offset, shift } from "@floating-ui/dom";
+import { Driver } from "../../models/driver.model";
+import { Vehicle } from "../../models/vehicle.model";
+import { STATUS_ICON_MAP, STATUS_TYPE_MAP } from "../../models/status.mapping";
+import fleetStyles from "./fleet-management-grid.scss?inline";
+
+
+defineComponents(IgcIconComponent, IgcButtonComponent, IgcIconComponent, IgcAvatarComponent, IgcBadgeComponent, IgcTabsComponent, IgcCarouselComponent, IgcDividerComponent, IgcSelectComponent, IgcSelectItemComponent, IgcSelectHeaderComponent, IgcCardComponent)
+
+ModuleManager.register(IgcCategoryChartModule, IgcPieChartModule, IgcLegendModule, IgcGeographicMapModule, IgcGeographicSymbolSeriesModule, IgcDataChartInteractivityModule)
+
+@customElement("app-fleet-management")
+export class FleetManagementGrid extends LitElement {
+
+ /** Reactive State */
+
+ @state() private hasSorting = false;
+ @state() private periods: { [vehicleId: string]: { costPerTypePeriod: Period, costPerMeterPeriod: Period, fuelCostPeriod: Period } | null } = {};
+
+ /** Query Selectors */
+
+ @query('#main-grid') mainGrid!: IgcGridComponent;
+ @query('#legend') legend!: IgcLegendComponent;
+ @query('#map') map!: IgcGeographicMapComponent
+ @query('#locationOverlay') locationOverlay!: HTMLElement;
+ @query('#driverOverlay') driverOverlay!: HTMLElement;
+ @query('#overlayBackdrop') overlayBackdrop!: HTMLElement
+
+ /** Data & References */
+
+ private vehiclesData: Vehicle[] = [];
+ private lastOverlayTrigger: any;
+ private vehicleDetails: OverlayVehicle = {
+ vehiclePhoto: '',
+ make: '',
+ model: '',
+ mileage: '',
+ markerLocations: []
+ }
+ private driverDetails: Driver = {
+ name: "",
+ license: "",
+ address: "",
+ city: "",
+ phone: "",
+ email: "",
+ photo: ""
+ }
+
+ /** Lifecycle Methods */
+
+ constructor() {
+ super();
+ registerIconFromText("clear", CLEAR, "material");
+ registerIconFromText(check.name, check.value, "imx-icons");
+ registerIconFromText(wrench.name, wrench.value, "imx-icons");
+ registerIconFromText(delivery.name, delivery.value, "imx-icons");
+ }
+
+ firstUpdated() {
+ this.mainGrid.sortingExpressions = [
+ { dir: SortingDirection.Asc, fieldName: "vehicleId", ignoreCase: true }
+ ]
+
+ this.mainGrid.addEventListener("sortingDone", () => {
+ this.hasSorting = this.mainGrid.sortingExpressions.length > 0;
+ });
+
+ this.hasSorting = this.mainGrid.sortingExpressions.length > 0;
+ }
+
+ async connectedCallback() {
+ super.connectedCallback()
+ dataService.getVehiclesData().then(() => {
+ this.vehiclesData = dataService.vehicleList;
+ this.requestUpdate();
+ });
+
+ dataService.loadOptionalData();
+ }
+
+ /** Utility Methods */
+
+ private onPeriodChange(event: any, chart: string, vehicleId: string): void {
+ if (!this.periods[vehicleId]) {
+ this.periods[vehicleId] = {
+ costPerTypePeriod: Period.YTD,
+ costPerMeterPeriod: Period.YTD,
+ fuelCostPeriod: Period.YTD
+ };
+ }
+
+ if (chart === ChartType.CostPerType) {
+ this.periods[vehicleId].costPerTypePeriod = event.detail.value;
+ } else if (chart === ChartType.CostPerMeter) {
+ this.periods[vehicleId].costPerMeterPeriod = event.detail.value;
+ } else if (chart === ChartType.FuelCosts) {
+ this.periods[vehicleId].fuelCostPeriod = event.detail.value;
+ }
+
+ this.mainGrid.markForCheck();
+ }
+
+ private clearSorting() {
+ if (this.mainGrid) {
+ this.mainGrid.sortingExpressions = [];
+ this.hasSorting = false;
+ }
+ }
+
+ /** Templates */
+
+ private masterDetailTemplate = (ctx: IgcGridMasterDetailContext) => {
+ const images: string[] = this.getPathToCarImage(ctx.implicit.vehicleId)
+
+ return html`
+
+
+ Details
+
+ Trip History
+ Maintenance
+ Cost
+ Utilization
+
+
+
+
+
+
+ ${images.map(image => html`
+
+
+
+
+
+ `)}
+
+
+
+
+ ${ [VEHICLE_DETAILS.detailsCategories, VEHICLE_DETAILS.engineCategories].map(categorySet => html`
+
+
+ ${ categorySet.map(category => html`
+
+ ${ category.label }:
+
+
+ `)}
+
+
+ ${ categorySet.map(category => html`
+
+ ${ this.getValueByPath(ctx.implicit, category.key) }
+
+
+ `) }
+
+
+ `) }
+
+
+
+
+
+ this.showDriverOverlay(event)}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Utilization per Month
+
+
+
+
+
+
+
+
+
+ `
+ }
+
+ private makeCellTemplate = (ctx: IgcCellTemplateContext) => {
+ return html`
+
+ ${ctx.implicit}
+ `
+ }
+
+ private statusCellTemplate = (ctx: IgcCellTemplateContext) => {
+ return html`
+
+
+
+ ${ctx.implicit}
+ `
+ }
+
+ private locationCellTemplate = (ctx: IgcCellTemplateContext) => {
+ return html`
+ this.showLocationOverlay(event, ctx)}">${ctx.implicit}
+ `
+ }
+
+ /** Overlay Logic */
+
+ /* Show */
+ private showLocationOverlay(event: MouseEvent, ctx: IgcCellTemplateContext) {
+ event.preventDefault();
+
+ const vehicleId = ctx.cell.row?.cells?.find((c: any) => c.column.field === 'vehicleId')?.value;
+
+ if (!vehicleId) {
+ console.error('Vehicle ID not found in data');
+ return;
+ }
+
+ const vehicle = this.vehiclesData.find(v => v.vehicleId === vehicleId)
+
+ if (!vehicle) {
+ console.error(`No vehicle found for ID: ${vehicleId}`);
+ return;
+ }
+
+ this.vehicleDetails.vehiclePhoto = this.getPathToCarImage(vehicleId)[0];
+ this.vehicleDetails.make = vehicle.make;
+ this.vehicleDetails.model = vehicle.model;
+ this.vehicleDetails.mileage = vehicle.details.mileage;
+ this.vehicleDetails.markerLocations = [
+ { latitude: parseFloat(vehicle.locationGps.split(',')[0]), longitude: parseFloat(vehicle.locationGps.split(',')[1]) },
+ ];
+
+ this.map.series.clear();
+ this.addSeriesWith(this.vehicleDetails.markerLocations, "Red");
+ const centerPoint = {
+ left: this.vehicleDetails.markerLocations[0].longitude - 0.01,
+ top: this.vehicleDetails.markerLocations[0].latitude - 0.01,
+ width: 0.01,
+ height: 0.01
+ };
+ this.map.zoomToGeographic(centerPoint);
+
+ this.requestUpdate();
+
+ const target = event.target as HTMLElement;
+ const overlay = this.locationOverlay
+
+ computePosition(target, overlay, {
+ placement: 'left-start',
+ middleware: [offset(8), flip(), shift()],
+ }).then(({ x, y }) => {
+ Object.assign(overlay.style, {
+ left: `${x}px`,
+ top: `${y}px`,
+ });
+ });
+
+ this.overlayBackdrop.classList.add("visible");
+ this.locationOverlay.style.display = 'block';
+
+ requestAnimationFrame(() => {
+ overlay.classList.add('visible');
+ });
+
+
+ this.lastOverlayTrigger = target;
+ document.addEventListener("mousedown", this.locationEventHandler);
+ window.addEventListener("wheel", this.locationEventHandler, { passive: true, capture: true });
+ }
+
+ private showDriverOverlay(event: CustomEvent) {
+
+ const driverDetails = event.detail.driverDetails;
+ const originalEvent = event.detail.originalEvent;
+
+ this.driverDetails.name = driverDetails.name;
+ this.driverDetails.license = driverDetails.license;
+ this.driverDetails.address = driverDetails.address;
+ this.driverDetails.city = driverDetails.city;
+ this.driverDetails.phone = driverDetails.phone;
+ this.driverDetails.email = driverDetails.email;
+ this.driverDetails.photo = `people/${driverDetails.photo}.jpg`;
+
+ this.requestUpdate();
+
+ const target = originalEvent.target as HTMLElement;
+ const overlay = this.driverOverlay
+
+ computePosition(target, overlay, {
+ placement: 'left-start',
+ middleware: [offset(8), flip(), shift()],
+ }).then(({ x, y }) => {
+ Object.assign(overlay.style, {
+ left: `${x}px`,
+ top: `${y}px`,
+ });
+ });
+
+ this.overlayBackdrop.classList.add("visible");
+ this.driverOverlay.style.display = 'block';
+
+ requestAnimationFrame(() => {
+ overlay.classList.add('visible');
+ });
+
+
+ this.lastOverlayTrigger = target;
+ document.addEventListener("mousedown", this.driverEventHandler);
+ window.addEventListener("wheel", this.driverEventHandler, { passive: true, capture: true });
+
+ }
+
+ /* Event Handlers */
+ private locationEventHandler = (event: any) => {
+ const path = event.composedPath();
+
+ const clickedInsideOverlay = path.includes(this.locationOverlay);
+ const clickedOnTrigger = this.lastOverlayTrigger ? path.includes(this.lastOverlayTrigger) : false;
+
+ if (!clickedInsideOverlay && !clickedOnTrigger) {
+ this.closeLocationOverlay();
+ }
+ };
+
+ private driverEventHandler = (event: any) => {
+ const path = event.composedPath();
+
+ const clickedInsideOverlay = path.includes(this.driverOverlay);
+ const clickedOnTrigger = this.lastOverlayTrigger ? path.includes(this.lastOverlayTrigger) : false;
+
+ if (!clickedInsideOverlay && !clickedOnTrigger) {
+ this.closeDriverOverlay();
+ }
+ };
+
+ /* Close */
+ private closeLocationOverlay() {
+ if (this.locationOverlay) {
+ const overlay = this.locationOverlay;
+
+ overlay.classList.remove('visible');
+ this.overlayBackdrop.classList.remove("visible");
+
+ overlay.addEventListener('transitionend', () => {
+ overlay.style.display = 'none';
+ }, { once: true })
+ }
+
+ document.removeEventListener("mousedown", this.locationEventHandler);
+ window.removeEventListener("wheel", this.locationEventHandler, true);
+ }
+
+ private closeDriverOverlay() {
+ if (this.driverOverlay) {
+ const overlay = this.driverOverlay;
+
+ overlay.classList.remove('visible');
+ this.overlayBackdrop.classList.remove("visible");
+
+ overlay.addEventListener('transitionend', () => {
+ overlay.style.display = 'none';
+ }, { once: true })
+ }
+
+ document.removeEventListener("mousedown", this.driverEventHandler);
+ window.removeEventListener("wheel", this.driverEventHandler, true);
+ }
+
+
+ /* Map Logic */
+ private addSeriesWith(locations: any[], brush: string) {
+ const symbolSeries = new IgcGeographicSymbolSeriesComponent();
+ symbolSeries.dataSource = locations;
+ symbolSeries.latitudeMemberPath = "latitude";
+ symbolSeries.longitudeMemberPath = "longitude";
+ symbolSeries.markerBrush = "White";
+ symbolSeries.markerOutline = brush;
+ symbolSeries.markerTemplate = {
+ measure: (measureInfo: DataTemplateMeasureInfo) => {
+ measureInfo.width = 24;
+ measureInfo.height = 24;
+ },
+ render: (renderInfo: DataTemplateRenderInfo) => {
+ 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);
+ }
+
+ /** Data Helpers */
+
+ private getStatusType(status: string): string {
+ return STATUS_TYPE_MAP[status] || "default";
+ }
+
+ private getStatusIcon(status: string): string {
+ return STATUS_ICON_MAP[status] || "info";
+ }
+
+ private 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;
+ }
+
+ private getValueByPath(obj: any, path: string) {
+ return path.split('.').reduce((o, key) => (o && o[key] !== undefined) ? o[key] : 'N/A', obj);
+ }
+
+ render() {
+ configureTheme("material");
+
+ return html`
+
+
+
+ Fleet Management
+
+
+ Clear Sort
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (this.closeLocationOverlay())}>Close
+
+
+
+
+
+
+
+
+
+
+
+
+ ${DRIVER_CATEGORIES.driverCategories.map(category => html`
+
+ ${category.label}:
+
+
+ `)}
+
+
+ ${DRIVER_CATEGORIES.driverCategories.map(category => html`
+
+ ${this.driverDetails[category.key]}
+
+
+ `)}
+
+
+
+
+ (this.closeDriverOverlay())}>Close
+
+
+
+ `;
+ }
+
+
+ static styles = unsafeCSS(fleetStyles);
+}
diff --git a/projects/fleet-management-grid/src/components/maintenance.component.ts b/projects/fleet-management-grid/src/components/maintenance.component.ts
new file mode 100644
index 0000000..45a00e4
--- /dev/null
+++ b/projects/fleet-management-grid/src/components/maintenance.component.ts
@@ -0,0 +1,69 @@
+import { configureTheme, defineComponents, IgcBadgeComponent, IgcIconComponent, registerIconFromText } from "igniteui-webcomponents";
+import { IgcCellTemplateContext } from "igniteui-webcomponents-grids/grids";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators.js";
+import 'igniteui-webcomponents-grids/grids/combined.js';
+import { check, gitIssue } from "@igniteui/material-icons-extended";
+import { Maintenance } from "../models/maintenance-history.model";
+
+
+defineComponents(IgcBadgeComponent, IgcIconComponent)
+configureTheme("material")
+
+@customElement("maintenance-grid")
+export class TripHistoryGrid extends LitElement {
+ constructor() {
+ super();
+
+ registerIconFromText(check.name, check.value, "imx-icons");
+ registerIconFromText(gitIssue.name, gitIssue.value, 'imx-icons');
+ }
+
+ @property({ type: Array }) maintenanceData: Maintenance[] | undefined = [];
+
+ private typeCellTemplate = (ctx: IgcCellTemplateContext) => {
+ const value = ctx.implicit;
+ const variant = value === "Regular" ? "success" : "warning";
+ const iconName = value === "Regular" ? "check" : "git-issue";
+ return html`
+
+
+
+ ${value}
+ `;
+ }
+
+ private rightAlignedCellStyles = {
+ 'justify-content': 'flex-end',
+ 'display': 'flex'
+ };
+
+ private rightAlignedHeaderStyles = {
+ 'text-align': 'right'
+ };
+
+ render() {
+ return html`
+
+
+
+
+
+
+
+
+
+ `
+ }
+
+ static styles = css`
+ .icon-style {
+ color: #000000;
+ }
+
+ .status-value {
+ padding-left: 8px;
+ color: var(--primary-text-color);
+ }
+ `;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/components/trip-history-grid.component.ts b/projects/fleet-management-grid/src/components/trip-history-grid.component.ts
new file mode 100644
index 0000000..ac78e4a
--- /dev/null
+++ b/projects/fleet-management-grid/src/components/trip-history-grid.component.ts
@@ -0,0 +1,115 @@
+import { configureTheme, defineComponents, IgcAvatarComponent, IgcBadgeComponent } from "igniteui-webcomponents";
+import { IgcCellTemplateContext } from "igniteui-webcomponents-grids/grids";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators.js";
+import { dataService } from "../services/data.service";
+import 'igniteui-webcomponents-grids/grids/combined.js';
+import { Trip } from "../models/trip-history.model";
+
+defineComponents(IgcAvatarComponent, IgcBadgeComponent)
+configureTheme('material');
+
+@customElement('trip-history-grid')
+export class TripHistoryGrid extends LitElement {
+
+ constructor() {
+ super();
+ }
+
+ @property({ type: Array }) tripHistoryData: Trip[] | undefined = []
+
+ private rightAlignedCellStyles = {
+ 'justify-content': 'flex-end',
+ 'display': 'flex'
+ };
+
+ private rightAlignedHeaderStyles = {
+ 'text-align': 'right'
+ };
+
+ private driverCellTemplate = (ctx: IgcCellTemplateContext) => {
+ const isVisible = ctx.cell.row.index === 0 && ctx.cell.row.data.end === "N/A";
+ return html`
+
+ this.handleDriverClick(e, ctx)}">${ctx.implicit}
+ ${isVisible
+ ? html`
+ Current
+ `
+ : ""
+ }
+ `
+ }
+
+ private handleDriverClick(event: MouseEvent, ctx: IgcCellTemplateContext) {
+ event.preventDefault();
+
+ const driverName = ctx.cell.row?.cells?.find((c: any) => c.column.field === 'driverName')?.value;
+
+ if (!driverName) {
+ console.error('Driver not found in data');
+ return;
+ }
+
+ const driverDetails = dataService.findDriverByName(driverName);
+
+ if (!driverDetails) {
+ console.error(`No data found for driver: ${driverName}`);
+ return;
+ }
+
+ const detail = {
+ driverDetails: driverDetails,
+ ctx: ctx,
+ originalEvent: event
+ };
+
+ this.dispatchEvent(new CustomEvent("driver-cell-click", {
+ detail,
+ bubbles: true,
+ composed: true
+ }));
+ }
+
+ private getPathToDriverPhoto(cell: any) {
+ return `people/${dataService.getDriverPhoto(cell.row.data.driverName)}.jpg`;
+ }
+
+
+ render() {
+ return html`
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `
+ }
+
+ static styles = css`
+ .driver-avatar {
+ --size: 22px
+ }
+
+ .status-value {
+ padding-left: 8px;
+ color: var(--primary-text-color);
+ }
+
+ .driver-badge {
+ margin-left: 10px;
+ }
+
+ .current-badge-text {
+ margin: 0 8px;
+ }
+ `;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/cost.model.ts b/projects/fleet-management-grid/src/models/cost.model.ts
new file mode 100644
index 0000000..06ade50
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/cost.model.ts
@@ -0,0 +1,35 @@
+export interface CostRecord {
+ vehicleId: string;
+ costPerType: {
+ ytd: CostPerTypeEntry[];
+ '3months': CostPerTypeEntry[];
+ '6months': CostPerTypeEntry[];
+ '12months': CostPerTypeEntry[];
+ [key: string]: CostPerTypeEntry[];
+ };
+ costsPerMeterPerQuarter: {
+ ytd: CostsPerMeterQuarter[];
+ "'2023'": CostsPerMeterQuarter[];
+ "'2022'": CostsPerMeterQuarter[];
+ "'2021'": CostsPerMeterQuarter[];
+ "'2020'": CostsPerMeterQuarter[];
+ [key: string]: CostsPerMeterQuarter[];
+ };
+ fuelCostsPerMonth: FuelCostsPerMonth[];
+}
+
+export interface CostPerTypeEntry {
+ value: number;
+ category: string;
+ summary: string;
+}
+
+export interface CostsPerMeterQuarter {
+ quarter: string;
+ costPerMeter: number;
+}
+
+export interface FuelCostsPerMonth {
+ month: string;
+ cost: number;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/driver.model.ts b/projects/fleet-management-grid/src/models/driver.model.ts
new file mode 100644
index 0000000..942eaa7
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/driver.model.ts
@@ -0,0 +1,11 @@
+export interface Driver {
+ name: string;
+ license: string;
+ address: string;
+ city: string;
+ phone: string;
+ email: string;
+ photo: string;
+
+ [key: string]: string;
+}
diff --git a/projects/fleet-management-grid/src/models/enums.ts b/projects/fleet-management-grid/src/models/enums.ts
new file mode 100644
index 0000000..d14afbe
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/enums.ts
@@ -0,0 +1,13 @@
+export enum ChartType {
+ CostPerType = 'costsPerType',
+ CostPerMeter = 'costsPerMeter',
+ FuelCosts = 'fuelCosts'
+}
+
+export enum Period {
+ YTD = 'ytd',
+ ThreeMonths = '3months',
+ SixMonths = '6months',
+ TwelveMonths = '12months'
+}
+
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/maintenance-history.model.ts b/projects/fleet-management-grid/src/models/maintenance-history.model.ts
new file mode 100644
index 0000000..d2118cf
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/maintenance-history.model.ts
@@ -0,0 +1,13 @@
+export interface MaintenanceHistory {
+ vehicleId: string;
+ maintenance: Maintenance[]
+}
+
+export interface Maintenance {
+ id: number;
+ event: string;
+ date: string;
+ location: string;
+ type: string;
+ remarks: string
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/status.mapping.ts b/projects/fleet-management-grid/src/models/status.mapping.ts
new file mode 100644
index 0000000..c420a96
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/status.mapping.ts
@@ -0,0 +1,11 @@
+export const STATUS_TYPE_MAP: Record = {
+ "Available": "success",
+ "In Maintenance": "danger",
+ "Active": "info",
+};
+
+export const STATUS_ICON_MAP: Record = {
+ "Available": "check",
+ "In Maintenance": "wrench",
+ "Active": "delivery",
+};
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/trip-history.model.ts b/projects/fleet-management-grid/src/models/trip-history.model.ts
new file mode 100644
index 0000000..ed86187
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/trip-history.model.ts
@@ -0,0 +1,17 @@
+export interface TripHistory {
+ vehicleId: string;
+ tripHistory: Trip[]
+}
+
+export interface Trip {
+ id: number;
+ driverName: string;
+ start: string;
+ end: string;
+ startLocation: string;
+ endLocation: string;
+ startMeter: string;
+ endMeter: string;
+ distance: string;
+ totalTime: string
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/utilization.model.ts b/projects/fleet-management-grid/src/models/utilization.model.ts
new file mode 100644
index 0000000..0959be6
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/utilization.model.ts
@@ -0,0 +1,10 @@
+export interface UtilizationRecord {
+ vehicleId: string;
+ utilization: UtilizationDataPoint[];
+}
+
+export interface UtilizationDataPoint {
+ month: string;
+ "'2023'": number;
+ "'2024'": number;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/models/vehicle.model.ts b/projects/fleet-management-grid/src/models/vehicle.model.ts
new file mode 100644
index 0000000..4b6f067
--- /dev/null
+++ b/projects/fleet-management-grid/src/models/vehicle.model.ts
@@ -0,0 +1,41 @@
+export interface Vehicle {
+ vehicleId: string;
+ licensePlate: string;
+ make: string;
+ model: string;
+ type: string;
+ vin: string;
+ status: string;
+ locationCity: string;
+ locationGps: string;
+ details: VehicleDetails
+}
+
+export interface VehicleDetails {
+ generation: string;
+ yearOfManufacture: number;
+ fuelType: string;
+ doors: number;
+ seats: number;
+ transmission: string;
+ engine: string;
+ power: string;
+ mileage: string;
+ cubature: string;
+ color: string;
+ msrp: string;
+ tollPassId: string
+}
+
+export interface OverlayVehicle {
+ vehiclePhoto: string;
+ make: string;
+ model: string;
+ mileage: string;
+ markerLocations: MarkerPoint[];
+}
+
+export interface MarkerPoint {
+ latitude: number;
+ longitude: number;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/services/data.service.ts b/projects/fleet-management-grid/src/services/data.service.ts
new file mode 100644
index 0000000..3004b97
--- /dev/null
+++ b/projects/fleet-management-grid/src/services/data.service.ts
@@ -0,0 +1,149 @@
+import { CostRecord } from "../models/cost.model";
+import { Driver } from "../models/driver.model";
+import { MaintenanceHistory } from "../models/maintenance-history.model";
+import { TripHistory } from "../models/trip-history.model";
+import { UtilizationRecord } from "../models/utilization.model";
+import { Vehicle } from "../models/vehicle.model";
+
+const VEHICLE_DATA_URL =
+ 'https://www.infragistics.com/grid-examples-data/data/fleet/vehicles.json';
+const DRIVERS_DATA_URL =
+ 'https://www.infragistics.com/grid-examples-data/data/fleet/drivers.json';
+const COST_DATA_URL =
+ 'https://www.infragistics.com/grid-examples-data/data/fleet/cost.json';
+const MAINTENANCE_DATA_URL =
+ 'https://www.infragistics.com/grid-examples-data/data/fleet/maintenance.json';
+const UTILIZATION_DATA_URL =
+ 'https://www.infragistics.com/grid-examples-data/data/fleet/utilization.json';
+const TRIP_HISTORY_DATA_URL =
+ 'https://www.infragistics.com/grid-examples-data/data/fleet/trip_history.json';
+
+export class DataService {
+ private vehiclesRecords: Vehicle[] = [];
+ private driverRecords: Driver[] = [];
+ private tripHistoryRecords: TripHistory[] = [];
+ private maintenanceRecords: MaintenanceHistory[] = [];
+ private costRecords: CostRecord[] = [];
+ private utilizationRecords: UtilizationRecord[] = [];
+
+ private fuelCostsCache: { [key: string]: any[] } = {};
+
+ async getVehiclesData() {
+ const response = await fetch(VEHICLE_DATA_URL);
+ this.vehiclesRecords = await response.json();
+ }
+
+ public async getDriverData() {
+ const response = await fetch(DRIVERS_DATA_URL);
+ this.driverRecords = await response.json();
+ }
+
+ public async getTripHistoryData() {
+ const response = await fetch(TRIP_HISTORY_DATA_URL);
+ this.tripHistoryRecords = await response.json();
+ }
+
+ public async getMaintenanceData() {
+ const response = await fetch(MAINTENANCE_DATA_URL);
+ this.maintenanceRecords = await response.json();
+ }
+
+ public async getCostData() {
+ const response = await fetch(COST_DATA_URL);
+ this.costRecords = await response.json();
+ }
+
+ public async getUtilizationData() {
+ const response = await fetch(UTILIZATION_DATA_URL);
+ const data = await response.json();
+
+ data.forEach((vehicle: any) => {
+ vehicle.utilization.__dataIntents = {
+ "'2023'": ['SeriesTitle/2023'],
+ "'2024'": ['SeriesTitle/2024']
+ };
+ });
+
+ this.utilizationRecords = data;
+ }
+
+ public async loadOptionalData() {
+ await Promise.all([
+ this.getDriverData(),
+ this.getTripHistoryData(),
+ this.getMaintenanceData(),
+ this.getCostData(),
+ this.getUtilizationData()
+ ]);
+ }
+
+ public findDriverByName(driverName: string) {
+ return this.driverRecords.find((d: Driver) => d.name === driverName)
+ }
+
+ public getDriverPhoto(driverName: string) {
+ return this.findDriverByName(driverName)?.photo;
+ }
+
+ public findTripHistoryById(vehicleId: string) {
+ return this.tripHistoryRecords.find((d: TripHistory) => d.vehicleId === vehicleId)?.tripHistory;
+ }
+
+ public findMaintenanceDataById(vehicleId: string) {
+ return this.maintenanceRecords.find((d: MaintenanceHistory) => d.vehicleId === vehicleId)?.maintenance;
+ }
+
+ public findCostsPerTypeData(vehicleId: string, period: any) {
+ const item = this.costRecords.find((d: CostRecord) => d.vehicleId === vehicleId);
+ return item?.costPerType?.[period] || [];
+ }
+
+ public findCostsPerMeterData(vehicleId: string, period: any) {
+ const item = this.costRecords.find((d: CostRecord) => d.vehicleId === vehicleId);
+ return item?.costsPerMeterPerQuarter?.[period] || [];
+ }
+
+ public getFuelCostsData(vehicleId: string, period: any) {
+ const cacheKey = vehicleId + period;
+ if (this.fuelCostsCache[cacheKey]) {
+ return this.fuelCostsCache[cacheKey];
+ }
+
+ const item = this.costRecords.find((d: CostRecord) => d.vehicleId === vehicleId);
+ const fuelCosts = item?.fuelCostsPerMonth || [];
+
+ let result: any[] = [];
+ switch (period) {
+ case 'ytd':
+ case '12months':
+ result = fuelCosts;
+ break;
+ case '6months':
+ result = fuelCosts.slice(-6);
+ break;
+ case '3months':
+ result = fuelCosts.slice(-3);
+ break;
+ default:
+ console.warn('Invalid period:', period);
+ return [];
+ }
+
+ this.fuelCostsCache[cacheKey] = result;
+ return result;
+ }
+
+ public findUtilizationDataById(vehicleId: string) {
+ const item = this.utilizationRecords.find((d: UtilizationRecord) => d.vehicleId === vehicleId);
+ return item ? item.utilization : [];
+ }
+
+ public get vehicleList() {
+ return this.vehiclesRecords;
+ }
+ public get driverList() {
+ return this.driverRecords;
+ }
+ }
+
+ export const dataService = new DataService();
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/styles/index.css b/projects/fleet-management-grid/src/styles/index.css
new file mode 100644
index 0000000..7d1a76b
--- /dev/null
+++ b/projects/fleet-management-grid/src/styles/index.css
@@ -0,0 +1,11 @@
+html, body {
+ height: 100%;
+}
+
+html {
+ box-sizing: border-box;
+}
+
+body, h1, h2, h3, h4, h5, h6, p {
+ margin: 0;
+}
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/styles/utils.scss b/projects/fleet-management-grid/src/styles/utils.scss
new file mode 100644
index 0000000..015276d
--- /dev/null
+++ b/projects/fleet-management-grid/src/styles/utils.scss
@@ -0,0 +1,33 @@
+@use "sass:map";
+@use "igniteui-theming" as *;
+
+@function is-root() {
+ @each $selector in & {
+ @return $selector == null;
+ }
+}
+
+@mixin theme($palette, $elevations, $typeface, $type-scale, $variant) {
+ $root: is-root();
+ $scope: if($root, ":root", "&");
+
+ #{$scope} {
+ --ig-theme: #{map.get($palette, "_meta", "variant")};
+ --ig-theme-variant: #{$variant};
+ --ig-spacing: 1;
+ --ig-spacing-inline: 1;
+ --ig-spacing-block: 1;
+ --ig-size-small: 1;
+ --ig-size-medium: 2;
+ --ig-size-large: 3;
+ --ig-scrollbar-size: #{rem(16px)};
+ }
+
+ #{$scope}[dir="rtl"] {
+ --ig-dir: -1;
+ }
+
+ @include palette($palette);
+ @include elevations($elevations);
+ @include typography($font-family: $typeface, $type-scale: $type-scale);
+ }
\ No newline at end of file
diff --git a/projects/fleet-management-grid/src/vite-env.d.ts b/projects/fleet-management-grid/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/projects/fleet-management-grid/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/projects/fleet-management-grid/tsconfig.json b/projects/fleet-management-grid/tsconfig.json
new file mode 100644
index 0000000..cdb96f3
--- /dev/null
+++ b/projects/fleet-management-grid/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/projects/fleet-management-grid/vite.config.ts b/projects/fleet-management-grid/vite.config.ts
new file mode 100644
index 0000000..b43048e
--- /dev/null
+++ b/projects/fleet-management-grid/vite.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig } from "vite";
+ import { viteStaticCopy } from "vite-plugin-static-copy";
+
+ export default defineConfig({
+ resolve: {
+ alias: {
+ "igniteui-theming": new URL("./node_modules/igniteui-theming", import.meta.url).pathname,
+ },
+ },
+ plugins: [
+ viteStaticCopy({
+ targets: [
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/dark/material.css",
+ dest: "themes/dark",
+ },
+ ],
+ }),
+ ],
+ });
\ No newline at end of file
diff --git a/projects/hr-portal/.gitignore b/projects/hr-portal/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/projects/hr-portal/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/projects/hr-portal/ignite-ui-cli.json b/projects/hr-portal/ignite-ui-cli.json
new file mode 100644
index 0000000..fa4ee3a
--- /dev/null
+++ b/projects/hr-portal/ignite-ui-cli.json
@@ -0,0 +1,16 @@
+{
+ "version": "$(cliVersion)",
+ "project": {
+ "defaultPort": 8000,
+ "framework": "webcomponents",
+ "projectTemplate": "$(projectTemplate)",
+ "projectType": "igc-ts",
+ "theme": "$(theme)",
+ "isBundle": false,
+ "components": [],
+ "sourceFiles": [],
+ "isShowcase": false,
+ "version": ""
+ },
+ "build": {}
+}
diff --git a/projects/hr-portal/index.html b/projects/hr-portal/index.html
new file mode 100644
index 0000000..a7bb787
--- /dev/null
+++ b/projects/hr-portal/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+ Vite + Lit + TS
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/package-lock.json b/projects/hr-portal/package-lock.json
new file mode 100644
index 0000000..e2480c2
--- /dev/null
+++ b/projects/hr-portal/package-lock.json
@@ -0,0 +1,1926 @@
+{
+ "name": "hr-portal",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "hr-portal",
+ "version": "0.0.0",
+ "dependencies": {
+ "igniteui-theming": "^17.1.0",
+ "igniteui-webcomponents": "^5.3.0-RC.1",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.1"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.2.6",
+ "vite-plugin-static-copy": "^2.3.1"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
+ "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
+ "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
+ "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
+ "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
+ "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
+ "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
+ "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
+ "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
+ "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
+ "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
+ "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
+ "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
+ "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
+ "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
+ "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
+ "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
+ "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
+ "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
+ "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
+ "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+ "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
+ "license": "MIT"
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
+ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@lit-labs/virtualizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.1.0.tgz",
+ "integrity": "sha512-I79sNaalK9rD6FWO/AoxBMnA6jjNBrQu7F6lzz8W/GkQLcqveMWK3IrJAilso+XeFFn7BvlxBv6FqZaoMt+Qkg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "lit": "^3.2.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/@lit/context": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.4.tgz",
+ "integrity": "sha512-0b8wOWNUPcXjGHFtVP+odwhrZBZw+PpCjKWn8IGO10iHT95Xd6FcUAxe1aE7PUtOBvHZoxvrfdBzweYnDW7VNQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.2 || ^2.0.0"
+ }
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz",
+ "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz",
+ "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz",
+ "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz",
+ "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz",
+ "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz",
+ "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz",
+ "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz",
+ "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz",
+ "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz",
+ "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz",
+ "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz",
+ "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz",
+ "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz",
+ "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz",
+ "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz",
+ "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz",
+ "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz",
+ "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz",
+ "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz",
+ "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
+ "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.1",
+ "@esbuild/android-arm": "0.25.1",
+ "@esbuild/android-arm64": "0.25.1",
+ "@esbuild/android-x64": "0.25.1",
+ "@esbuild/darwin-arm64": "0.25.1",
+ "@esbuild/darwin-x64": "0.25.1",
+ "@esbuild/freebsd-arm64": "0.25.1",
+ "@esbuild/freebsd-x64": "0.25.1",
+ "@esbuild/linux-arm": "0.25.1",
+ "@esbuild/linux-arm64": "0.25.1",
+ "@esbuild/linux-ia32": "0.25.1",
+ "@esbuild/linux-loong64": "0.25.1",
+ "@esbuild/linux-mips64el": "0.25.1",
+ "@esbuild/linux-ppc64": "0.25.1",
+ "@esbuild/linux-riscv64": "0.25.1",
+ "@esbuild/linux-s390x": "0.25.1",
+ "@esbuild/linux-x64": "0.25.1",
+ "@esbuild/netbsd-arm64": "0.25.1",
+ "@esbuild/netbsd-x64": "0.25.1",
+ "@esbuild/openbsd-arm64": "0.25.1",
+ "@esbuild/openbsd-x64": "0.25.1",
+ "@esbuild/sunos-x64": "0.25.1",
+ "@esbuild/win32-arm64": "0.25.1",
+ "@esbuild/win32-ia32": "0.25.1",
+ "@esbuild/win32-x64": "0.25.1"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/igniteui-theming": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/igniteui-theming/-/igniteui-theming-17.1.0.tgz",
+ "integrity": "sha512-oHqtA8NvV/HxverYhb78ZgN5+PXZ9ZY8NVKYxsm5+R46Ze25BsK/1RbU0/bauV1cxjzoHvruSr8lBa6njEbIdQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "sass": "^1.69.5"
+ }
+ },
+ "node_modules/igniteui-webcomponents": {
+ "version": "5.3.0-RC.1",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-5.3.0-RC.1.tgz",
+ "integrity": "sha512-AknShVoFLTu9f2AiL1OiJIhorZqKeE/yYHCWZxFTX6OGwcr2bUYAGDR7zJHRLTv0E6GrevuxGUqJKcO4j7yzqQ==",
+ "license": "SEE LICENSE IN LICENSE",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.0",
+ "@lit-labs/virtualizer": "^2.1.0",
+ "@lit/context": "^1.1.0",
+ "lit": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/igniteui-webcomponents-core": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-core/-/igniteui-webcomponents-core-5.3.0.tgz",
+ "integrity": "sha512-Sf82hGMsb95kxF9vtiXhZ4oTgGpRyNOQ2PfYnm+eYpZWyOPXtKUkgFJMsuksMA0hgXMkVsLCm1gMB1Ti9E0iVw==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-grids": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-grids/-/igniteui-webcomponents-grids-5.3.0.tgz",
+ "integrity": "sha512-H196T6wla2nG+ocb9aUnUQ5eJVI3Vslrc10I9/MjRYJ2EDwx3/5/ODxx1hUk/NpVHm38cb2thjX/44LOMI0Yqw==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0",
+ "igniteui-webcomponents-inputs": "5.3.0",
+ "igniteui-webcomponents-layouts": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-inputs": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-inputs/-/igniteui-webcomponents-inputs-5.3.0.tgz",
+ "integrity": "sha512-m+OyX8K2pVwQgz8GyqCY4Z6OU0HdFH8LjOPzN+fG9VKnLoj1CLZ2SxFiHk1AX4dTAYsR5zltZP0GnKrC7QD2XA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-layouts": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-layouts/-/igniteui-webcomponents-layouts-5.3.0.tgz",
+ "integrity": "sha512-gy3fdroVJ2BUtQ7/Lnag2lUqMI7YO+iczXPGi5DVFhbOMEf1fbJFaQAwnjPanntEAOVafRDbeZO+k+MGJ3xjoA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.3.0",
+ "igniteui-webcomponents-inputs": "5.3.0"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
+ "license": "MIT"
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/lit": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz",
+ "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^2.0.4",
+ "lit-element": "^4.1.0",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz",
+ "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.0.4",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz",
+ "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+ "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz",
+ "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.6"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.35.0",
+ "@rollup/rollup-android-arm64": "4.35.0",
+ "@rollup/rollup-darwin-arm64": "4.35.0",
+ "@rollup/rollup-darwin-x64": "4.35.0",
+ "@rollup/rollup-freebsd-arm64": "4.35.0",
+ "@rollup/rollup-freebsd-x64": "4.35.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.35.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.35.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.35.0",
+ "@rollup/rollup-linux-arm64-musl": "4.35.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.35.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.35.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.35.0",
+ "@rollup/rollup-linux-x64-gnu": "4.35.0",
+ "@rollup/rollup-linux-x64-musl": "4.35.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.35.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.35.0",
+ "@rollup/rollup-win32-x64-msvc": "4.35.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.86.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.1.tgz",
+ "integrity": "sha512-Yaok4XELL1L9Im/ZUClKu//D2OP1rOljKj0Gf34a+GzLbMveOzL7CfqYo+JUa5Xt1nhTCW+OcKp/FtR7/iqj1w==",
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz",
+ "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "postcss": "^8.5.3",
+ "rollup": "^4.30.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-static-copy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz",
+ "integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "p-map": "^7.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ }
+ }
+}
diff --git a/projects/hr-portal/package.json b/projects/hr-portal/package.json
new file mode 100644
index 0000000..7ae3ee1
--- /dev/null
+++ b/projects/hr-portal/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "hr-portal",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "igniteui-theming": "^17.1.0",
+ "igniteui-webcomponents": "^5.3.0-RC.1",
+ "igniteui-webcomponents-grids": "^5.3.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.1"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.2.6",
+ "vite-plugin-static-copy": "^2.3.1"
+ }
+}
diff --git a/projects/hr-portal/public/images/countries/Australia.svg b/projects/hr-portal/public/images/countries/Australia.svg
new file mode 100644
index 0000000..61c245e
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Australia.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Belgium.svg b/projects/hr-portal/public/images/countries/Belgium.svg
new file mode 100644
index 0000000..8123dab
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Belgium.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Brazil.svg b/projects/hr-portal/public/images/countries/Brazil.svg
new file mode 100644
index 0000000..61f8a52
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Brazil.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Bulgaria.svg b/projects/hr-portal/public/images/countries/Bulgaria.svg
new file mode 100644
index 0000000..ef9fbc5
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Bulgaria.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Canada.svg b/projects/hr-portal/public/images/countries/Canada.svg
new file mode 100644
index 0000000..6ac428d
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Canada.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/China.svg b/projects/hr-portal/public/images/countries/China.svg
new file mode 100644
index 0000000..d3d04dc
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/China.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Denmark.svg b/projects/hr-portal/public/images/countries/Denmark.svg
new file mode 100644
index 0000000..1229601
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Denmark.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Finland.svg b/projects/hr-portal/public/images/countries/Finland.svg
new file mode 100644
index 0000000..9a1012f
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Finland.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/France.svg b/projects/hr-portal/public/images/countries/France.svg
new file mode 100644
index 0000000..86fb039
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/France.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Germany.svg b/projects/hr-portal/public/images/countries/Germany.svg
new file mode 100644
index 0000000..65b7e46
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Germany.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Greece.svg b/projects/hr-portal/public/images/countries/Greece.svg
new file mode 100644
index 0000000..e1c7293
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Greece.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/India.svg b/projects/hr-portal/public/images/countries/India.svg
new file mode 100644
index 0000000..e56cdfe
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/India.svg
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Italy.svg b/projects/hr-portal/public/images/countries/Italy.svg
new file mode 100644
index 0000000..0029478
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Italy.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Japan.svg b/projects/hr-portal/public/images/countries/Japan.svg
new file mode 100644
index 0000000..a665fa5
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Japan.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Netherlands.svg b/projects/hr-portal/public/images/countries/Netherlands.svg
new file mode 100644
index 0000000..28d3cf8
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Netherlands.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Poland.svg b/projects/hr-portal/public/images/countries/Poland.svg
new file mode 100644
index 0000000..29be454
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Poland.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Romania.svg b/projects/hr-portal/public/images/countries/Romania.svg
new file mode 100644
index 0000000..a3b0274
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Romania.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Spain.svg b/projects/hr-portal/public/images/countries/Spain.svg
new file mode 100644
index 0000000..3a47a6e
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Spain.svg
@@ -0,0 +1,563 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/United Kingdom.svg b/projects/hr-portal/public/images/countries/United Kingdom.svg
new file mode 100644
index 0000000..a89e4f4
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/United Kingdom.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/United States.svg b/projects/hr-portal/public/images/countries/United States.svg
new file mode 100644
index 0000000..d69d8b1
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/United States.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/Uruguay.svg b/projects/hr-portal/public/images/countries/Uruguay.svg
new file mode 100644
index 0000000..5008f40
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/Uruguay.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/countries/uae.svg b/projects/hr-portal/public/images/countries/uae.svg
new file mode 100644
index 0000000..abddcf5
--- /dev/null
+++ b/projects/hr-portal/public/images/countries/uae.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/hr-portal/public/images/men/0.jpg b/projects/hr-portal/public/images/men/0.jpg
new file mode 100644
index 0000000..e29aaaf
Binary files /dev/null and b/projects/hr-portal/public/images/men/0.jpg differ
diff --git a/projects/hr-portal/public/images/men/1.jpg b/projects/hr-portal/public/images/men/1.jpg
new file mode 100644
index 0000000..8004cc4
Binary files /dev/null and b/projects/hr-portal/public/images/men/1.jpg differ
diff --git a/projects/hr-portal/public/images/men/10.jpg b/projects/hr-portal/public/images/men/10.jpg
new file mode 100644
index 0000000..8a9edd8
Binary files /dev/null and b/projects/hr-portal/public/images/men/10.jpg differ
diff --git a/projects/hr-portal/public/images/men/100.jpg b/projects/hr-portal/public/images/men/100.jpg
new file mode 100644
index 0000000..26f9951
Binary files /dev/null and b/projects/hr-portal/public/images/men/100.jpg differ
diff --git a/projects/hr-portal/public/images/men/11.jpg b/projects/hr-portal/public/images/men/11.jpg
new file mode 100644
index 0000000..abddef0
Binary files /dev/null and b/projects/hr-portal/public/images/men/11.jpg differ
diff --git a/projects/hr-portal/public/images/men/12.jpg b/projects/hr-portal/public/images/men/12.jpg
new file mode 100644
index 0000000..b83a773
Binary files /dev/null and b/projects/hr-portal/public/images/men/12.jpg differ
diff --git a/projects/hr-portal/public/images/men/13.jpg b/projects/hr-portal/public/images/men/13.jpg
new file mode 100644
index 0000000..43269e0
Binary files /dev/null and b/projects/hr-portal/public/images/men/13.jpg differ
diff --git a/projects/hr-portal/public/images/men/14.jpg b/projects/hr-portal/public/images/men/14.jpg
new file mode 100644
index 0000000..606b1a6
Binary files /dev/null and b/projects/hr-portal/public/images/men/14.jpg differ
diff --git a/projects/hr-portal/public/images/men/15.jpg b/projects/hr-portal/public/images/men/15.jpg
new file mode 100644
index 0000000..2818c5d
Binary files /dev/null and b/projects/hr-portal/public/images/men/15.jpg differ
diff --git a/projects/hr-portal/public/images/men/16.jpg b/projects/hr-portal/public/images/men/16.jpg
new file mode 100644
index 0000000..fc6bd14
Binary files /dev/null and b/projects/hr-portal/public/images/men/16.jpg differ
diff --git a/projects/hr-portal/public/images/men/17.jpg b/projects/hr-portal/public/images/men/17.jpg
new file mode 100644
index 0000000..cfc6f31
Binary files /dev/null and b/projects/hr-portal/public/images/men/17.jpg differ
diff --git a/projects/hr-portal/public/images/men/18.jpg b/projects/hr-portal/public/images/men/18.jpg
new file mode 100644
index 0000000..1de43e9
Binary files /dev/null and b/projects/hr-portal/public/images/men/18.jpg differ
diff --git a/projects/hr-portal/public/images/men/19.jpg b/projects/hr-portal/public/images/men/19.jpg
new file mode 100644
index 0000000..53023f8
Binary files /dev/null and b/projects/hr-portal/public/images/men/19.jpg differ
diff --git a/projects/hr-portal/public/images/men/2.jpg b/projects/hr-portal/public/images/men/2.jpg
new file mode 100644
index 0000000..7c2b4d6
Binary files /dev/null and b/projects/hr-portal/public/images/men/2.jpg differ
diff --git a/projects/hr-portal/public/images/men/20.jpg b/projects/hr-portal/public/images/men/20.jpg
new file mode 100644
index 0000000..3e5f945
Binary files /dev/null and b/projects/hr-portal/public/images/men/20.jpg differ
diff --git a/projects/hr-portal/public/images/men/21.jpg b/projects/hr-portal/public/images/men/21.jpg
new file mode 100644
index 0000000..cfba1fe
Binary files /dev/null and b/projects/hr-portal/public/images/men/21.jpg differ
diff --git a/projects/hr-portal/public/images/men/22.jpg b/projects/hr-portal/public/images/men/22.jpg
new file mode 100644
index 0000000..dcbaf26
Binary files /dev/null and b/projects/hr-portal/public/images/men/22.jpg differ
diff --git a/projects/hr-portal/public/images/men/23.jpg b/projects/hr-portal/public/images/men/23.jpg
new file mode 100644
index 0000000..3a2b514
Binary files /dev/null and b/projects/hr-portal/public/images/men/23.jpg differ
diff --git a/projects/hr-portal/public/images/men/24.jpg b/projects/hr-portal/public/images/men/24.jpg
new file mode 100644
index 0000000..c76f3f5
Binary files /dev/null and b/projects/hr-portal/public/images/men/24.jpg differ
diff --git a/projects/hr-portal/public/images/men/25.jpg b/projects/hr-portal/public/images/men/25.jpg
new file mode 100644
index 0000000..f4fb148
Binary files /dev/null and b/projects/hr-portal/public/images/men/25.jpg differ
diff --git a/projects/hr-portal/public/images/men/26.jpg b/projects/hr-portal/public/images/men/26.jpg
new file mode 100644
index 0000000..9dc0558
Binary files /dev/null and b/projects/hr-portal/public/images/men/26.jpg differ
diff --git a/projects/hr-portal/public/images/men/27.jpg b/projects/hr-portal/public/images/men/27.jpg
new file mode 100644
index 0000000..f3758fc
Binary files /dev/null and b/projects/hr-portal/public/images/men/27.jpg differ
diff --git a/projects/hr-portal/public/images/men/28.jpg b/projects/hr-portal/public/images/men/28.jpg
new file mode 100644
index 0000000..dfc34c2
Binary files /dev/null and b/projects/hr-portal/public/images/men/28.jpg differ
diff --git a/projects/hr-portal/public/images/men/29.jpg b/projects/hr-portal/public/images/men/29.jpg
new file mode 100644
index 0000000..6c3e004
Binary files /dev/null and b/projects/hr-portal/public/images/men/29.jpg differ
diff --git a/projects/hr-portal/public/images/men/3.jpg b/projects/hr-portal/public/images/men/3.jpg
new file mode 100644
index 0000000..4fc0e10
Binary files /dev/null and b/projects/hr-portal/public/images/men/3.jpg differ
diff --git a/projects/hr-portal/public/images/men/30.jpg b/projects/hr-portal/public/images/men/30.jpg
new file mode 100644
index 0000000..d04b7a2
Binary files /dev/null and b/projects/hr-portal/public/images/men/30.jpg differ
diff --git a/projects/hr-portal/public/images/men/31.jpg b/projects/hr-portal/public/images/men/31.jpg
new file mode 100644
index 0000000..d5d7391
Binary files /dev/null and b/projects/hr-portal/public/images/men/31.jpg differ
diff --git a/projects/hr-portal/public/images/men/32.jpg b/projects/hr-portal/public/images/men/32.jpg
new file mode 100644
index 0000000..279b70d
Binary files /dev/null and b/projects/hr-portal/public/images/men/32.jpg differ
diff --git a/projects/hr-portal/public/images/men/33.jpg b/projects/hr-portal/public/images/men/33.jpg
new file mode 100644
index 0000000..0765294
Binary files /dev/null and b/projects/hr-portal/public/images/men/33.jpg differ
diff --git a/projects/hr-portal/public/images/men/34.jpg b/projects/hr-portal/public/images/men/34.jpg
new file mode 100644
index 0000000..138fc39
Binary files /dev/null and b/projects/hr-portal/public/images/men/34.jpg differ
diff --git a/projects/hr-portal/public/images/men/35.jpg b/projects/hr-portal/public/images/men/35.jpg
new file mode 100644
index 0000000..ad943c9
Binary files /dev/null and b/projects/hr-portal/public/images/men/35.jpg differ
diff --git a/projects/hr-portal/public/images/men/36.jpg b/projects/hr-portal/public/images/men/36.jpg
new file mode 100644
index 0000000..62ea75f
Binary files /dev/null and b/projects/hr-portal/public/images/men/36.jpg differ
diff --git a/projects/hr-portal/public/images/men/37.jpg b/projects/hr-portal/public/images/men/37.jpg
new file mode 100644
index 0000000..41dca98
Binary files /dev/null and b/projects/hr-portal/public/images/men/37.jpg differ
diff --git a/projects/hr-portal/public/images/men/38.jpg b/projects/hr-portal/public/images/men/38.jpg
new file mode 100644
index 0000000..ed97c9d
Binary files /dev/null and b/projects/hr-portal/public/images/men/38.jpg differ
diff --git a/projects/hr-portal/public/images/men/39.jpg b/projects/hr-portal/public/images/men/39.jpg
new file mode 100644
index 0000000..26f9951
Binary files /dev/null and b/projects/hr-portal/public/images/men/39.jpg differ
diff --git a/projects/hr-portal/public/images/men/4.jpg b/projects/hr-portal/public/images/men/4.jpg
new file mode 100644
index 0000000..68b8bb4
Binary files /dev/null and b/projects/hr-portal/public/images/men/4.jpg differ
diff --git a/projects/hr-portal/public/images/men/40.jpg b/projects/hr-portal/public/images/men/40.jpg
new file mode 100644
index 0000000..c28fc2c
Binary files /dev/null and b/projects/hr-portal/public/images/men/40.jpg differ
diff --git a/projects/hr-portal/public/images/men/41.jpg b/projects/hr-portal/public/images/men/41.jpg
new file mode 100644
index 0000000..1daa4b8
Binary files /dev/null and b/projects/hr-portal/public/images/men/41.jpg differ
diff --git a/projects/hr-portal/public/images/men/42.jpg b/projects/hr-portal/public/images/men/42.jpg
new file mode 100644
index 0000000..c0ec114
Binary files /dev/null and b/projects/hr-portal/public/images/men/42.jpg differ
diff --git a/projects/hr-portal/public/images/men/43.jpg b/projects/hr-portal/public/images/men/43.jpg
new file mode 100644
index 0000000..a6a39bf
Binary files /dev/null and b/projects/hr-portal/public/images/men/43.jpg differ
diff --git a/projects/hr-portal/public/images/men/44.jpg b/projects/hr-portal/public/images/men/44.jpg
new file mode 100644
index 0000000..f24b739
Binary files /dev/null and b/projects/hr-portal/public/images/men/44.jpg differ
diff --git a/projects/hr-portal/public/images/men/45.jpg b/projects/hr-portal/public/images/men/45.jpg
new file mode 100644
index 0000000..6d1e41c
Binary files /dev/null and b/projects/hr-portal/public/images/men/45.jpg differ
diff --git a/projects/hr-portal/public/images/men/46.jpg b/projects/hr-portal/public/images/men/46.jpg
new file mode 100644
index 0000000..5609a0e
Binary files /dev/null and b/projects/hr-portal/public/images/men/46.jpg differ
diff --git a/projects/hr-portal/public/images/men/47.jpg b/projects/hr-portal/public/images/men/47.jpg
new file mode 100644
index 0000000..6888bdd
Binary files /dev/null and b/projects/hr-portal/public/images/men/47.jpg differ
diff --git a/projects/hr-portal/public/images/men/48.jpg b/projects/hr-portal/public/images/men/48.jpg
new file mode 100644
index 0000000..89f03a9
Binary files /dev/null and b/projects/hr-portal/public/images/men/48.jpg differ
diff --git a/projects/hr-portal/public/images/men/49.jpg b/projects/hr-portal/public/images/men/49.jpg
new file mode 100644
index 0000000..dcf2608
Binary files /dev/null and b/projects/hr-portal/public/images/men/49.jpg differ
diff --git a/projects/hr-portal/public/images/men/5.jpg b/projects/hr-portal/public/images/men/5.jpg
new file mode 100644
index 0000000..4d47bd1
Binary files /dev/null and b/projects/hr-portal/public/images/men/5.jpg differ
diff --git a/projects/hr-portal/public/images/men/50.jpg b/projects/hr-portal/public/images/men/50.jpg
new file mode 100644
index 0000000..822813e
Binary files /dev/null and b/projects/hr-portal/public/images/men/50.jpg differ
diff --git a/projects/hr-portal/public/images/men/51.jpg b/projects/hr-portal/public/images/men/51.jpg
new file mode 100644
index 0000000..b4101ae
Binary files /dev/null and b/projects/hr-portal/public/images/men/51.jpg differ
diff --git a/projects/hr-portal/public/images/men/52.jpg b/projects/hr-portal/public/images/men/52.jpg
new file mode 100644
index 0000000..1de43e9
Binary files /dev/null and b/projects/hr-portal/public/images/men/52.jpg differ
diff --git a/projects/hr-portal/public/images/men/53.jpg b/projects/hr-portal/public/images/men/53.jpg
new file mode 100644
index 0000000..8968d3c
Binary files /dev/null and b/projects/hr-portal/public/images/men/53.jpg differ
diff --git a/projects/hr-portal/public/images/men/54.jpg b/projects/hr-portal/public/images/men/54.jpg
new file mode 100644
index 0000000..3e229e6
Binary files /dev/null and b/projects/hr-portal/public/images/men/54.jpg differ
diff --git a/projects/hr-portal/public/images/men/55.jpg b/projects/hr-portal/public/images/men/55.jpg
new file mode 100644
index 0000000..02a1055
Binary files /dev/null and b/projects/hr-portal/public/images/men/55.jpg differ
diff --git a/projects/hr-portal/public/images/men/56.jpg b/projects/hr-portal/public/images/men/56.jpg
new file mode 100644
index 0000000..fc9f3fa
Binary files /dev/null and b/projects/hr-portal/public/images/men/56.jpg differ
diff --git a/projects/hr-portal/public/images/men/57 (1).jpg b/projects/hr-portal/public/images/men/57 (1).jpg
new file mode 100644
index 0000000..c45665b
Binary files /dev/null and b/projects/hr-portal/public/images/men/57 (1).jpg differ
diff --git a/projects/hr-portal/public/images/men/57.jpg b/projects/hr-portal/public/images/men/57.jpg
new file mode 100644
index 0000000..ea4a22e
Binary files /dev/null and b/projects/hr-portal/public/images/men/57.jpg differ
diff --git a/projects/hr-portal/public/images/men/58.jpg b/projects/hr-portal/public/images/men/58.jpg
new file mode 100644
index 0000000..8479109
Binary files /dev/null and b/projects/hr-portal/public/images/men/58.jpg differ
diff --git a/projects/hr-portal/public/images/men/59.jpg b/projects/hr-portal/public/images/men/59.jpg
new file mode 100644
index 0000000..b7b9a39
Binary files /dev/null and b/projects/hr-portal/public/images/men/59.jpg differ
diff --git a/projects/hr-portal/public/images/men/6.jpg b/projects/hr-portal/public/images/men/6.jpg
new file mode 100644
index 0000000..1258f0a
Binary files /dev/null and b/projects/hr-portal/public/images/men/6.jpg differ
diff --git a/projects/hr-portal/public/images/men/60.jpg b/projects/hr-portal/public/images/men/60.jpg
new file mode 100644
index 0000000..52c1920
Binary files /dev/null and b/projects/hr-portal/public/images/men/60.jpg differ
diff --git a/projects/hr-portal/public/images/men/61.jpg b/projects/hr-portal/public/images/men/61.jpg
new file mode 100644
index 0000000..2481114
Binary files /dev/null and b/projects/hr-portal/public/images/men/61.jpg differ
diff --git a/projects/hr-portal/public/images/men/62.jpg b/projects/hr-portal/public/images/men/62.jpg
new file mode 100644
index 0000000..124dbe7
Binary files /dev/null and b/projects/hr-portal/public/images/men/62.jpg differ
diff --git a/projects/hr-portal/public/images/men/63.jpg b/projects/hr-portal/public/images/men/63.jpg
new file mode 100644
index 0000000..fa6d481
Binary files /dev/null and b/projects/hr-portal/public/images/men/63.jpg differ
diff --git a/projects/hr-portal/public/images/men/64.jpg b/projects/hr-portal/public/images/men/64.jpg
new file mode 100644
index 0000000..6cbce1a
Binary files /dev/null and b/projects/hr-portal/public/images/men/64.jpg differ
diff --git a/projects/hr-portal/public/images/men/65.jpg b/projects/hr-portal/public/images/men/65.jpg
new file mode 100644
index 0000000..c004920
Binary files /dev/null and b/projects/hr-portal/public/images/men/65.jpg differ
diff --git a/projects/hr-portal/public/images/men/66.jpg b/projects/hr-portal/public/images/men/66.jpg
new file mode 100644
index 0000000..437143f
Binary files /dev/null and b/projects/hr-portal/public/images/men/66.jpg differ
diff --git a/projects/hr-portal/public/images/men/67.jpg b/projects/hr-portal/public/images/men/67.jpg
new file mode 100644
index 0000000..68b8bb4
Binary files /dev/null and b/projects/hr-portal/public/images/men/67.jpg differ
diff --git a/projects/hr-portal/public/images/men/68.jpg b/projects/hr-portal/public/images/men/68.jpg
new file mode 100644
index 0000000..b318dd4
Binary files /dev/null and b/projects/hr-portal/public/images/men/68.jpg differ
diff --git a/projects/hr-portal/public/images/men/69.jpg b/projects/hr-portal/public/images/men/69.jpg
new file mode 100644
index 0000000..d39345f
Binary files /dev/null and b/projects/hr-portal/public/images/men/69.jpg differ
diff --git a/projects/hr-portal/public/images/men/7.jpg b/projects/hr-portal/public/images/men/7.jpg
new file mode 100644
index 0000000..1171cfb
Binary files /dev/null and b/projects/hr-portal/public/images/men/7.jpg differ
diff --git a/projects/hr-portal/public/images/men/70.jpg b/projects/hr-portal/public/images/men/70.jpg
new file mode 100644
index 0000000..1e4b677
Binary files /dev/null and b/projects/hr-portal/public/images/men/70.jpg differ
diff --git a/projects/hr-portal/public/images/men/71.jpg b/projects/hr-portal/public/images/men/71.jpg
new file mode 100644
index 0000000..7007fab
Binary files /dev/null and b/projects/hr-portal/public/images/men/71.jpg differ
diff --git a/projects/hr-portal/public/images/men/72.jpg b/projects/hr-portal/public/images/men/72.jpg
new file mode 100644
index 0000000..fb92652
Binary files /dev/null and b/projects/hr-portal/public/images/men/72.jpg differ
diff --git a/projects/hr-portal/public/images/men/73.jpg b/projects/hr-portal/public/images/men/73.jpg
new file mode 100644
index 0000000..b6a30e2
Binary files /dev/null and b/projects/hr-portal/public/images/men/73.jpg differ
diff --git a/projects/hr-portal/public/images/men/74.jpg b/projects/hr-portal/public/images/men/74.jpg
new file mode 100644
index 0000000..abacfd1
Binary files /dev/null and b/projects/hr-portal/public/images/men/74.jpg differ
diff --git a/projects/hr-portal/public/images/men/75.jpg b/projects/hr-portal/public/images/men/75.jpg
new file mode 100644
index 0000000..04cb797
Binary files /dev/null and b/projects/hr-portal/public/images/men/75.jpg differ
diff --git a/projects/hr-portal/public/images/men/76.jpg b/projects/hr-portal/public/images/men/76.jpg
new file mode 100644
index 0000000..681a7f1
Binary files /dev/null and b/projects/hr-portal/public/images/men/76.jpg differ
diff --git a/projects/hr-portal/public/images/men/77.jpg b/projects/hr-portal/public/images/men/77.jpg
new file mode 100644
index 0000000..a243818
Binary files /dev/null and b/projects/hr-portal/public/images/men/77.jpg differ
diff --git a/projects/hr-portal/public/images/men/78.jpg b/projects/hr-portal/public/images/men/78.jpg
new file mode 100644
index 0000000..6438e80
Binary files /dev/null and b/projects/hr-portal/public/images/men/78.jpg differ
diff --git a/projects/hr-portal/public/images/men/79.jpg b/projects/hr-portal/public/images/men/79.jpg
new file mode 100644
index 0000000..cf30fdf
Binary files /dev/null and b/projects/hr-portal/public/images/men/79.jpg differ
diff --git a/projects/hr-portal/public/images/men/8.jpg b/projects/hr-portal/public/images/men/8.jpg
new file mode 100644
index 0000000..33f2cdf
Binary files /dev/null and b/projects/hr-portal/public/images/men/8.jpg differ
diff --git a/projects/hr-portal/public/images/men/80.jpg b/projects/hr-portal/public/images/men/80.jpg
new file mode 100644
index 0000000..b2d9bce
Binary files /dev/null and b/projects/hr-portal/public/images/men/80.jpg differ
diff --git a/projects/hr-portal/public/images/men/81.jpg b/projects/hr-portal/public/images/men/81.jpg
new file mode 100644
index 0000000..0b32267
Binary files /dev/null and b/projects/hr-portal/public/images/men/81.jpg differ
diff --git a/projects/hr-portal/public/images/men/82.jpg b/projects/hr-portal/public/images/men/82.jpg
new file mode 100644
index 0000000..f32459a
Binary files /dev/null and b/projects/hr-portal/public/images/men/82.jpg differ
diff --git a/projects/hr-portal/public/images/men/83.jpg b/projects/hr-portal/public/images/men/83.jpg
new file mode 100644
index 0000000..dc3ae1f
Binary files /dev/null and b/projects/hr-portal/public/images/men/83.jpg differ
diff --git a/projects/hr-portal/public/images/men/84.jpg b/projects/hr-portal/public/images/men/84.jpg
new file mode 100644
index 0000000..f3758fc
Binary files /dev/null and b/projects/hr-portal/public/images/men/84.jpg differ
diff --git a/projects/hr-portal/public/images/men/85.jpg b/projects/hr-portal/public/images/men/85.jpg
new file mode 100644
index 0000000..43ece19
Binary files /dev/null and b/projects/hr-portal/public/images/men/85.jpg differ
diff --git a/projects/hr-portal/public/images/men/86.jpg b/projects/hr-portal/public/images/men/86.jpg
new file mode 100644
index 0000000..9358491
Binary files /dev/null and b/projects/hr-portal/public/images/men/86.jpg differ
diff --git a/projects/hr-portal/public/images/men/87.jpg b/projects/hr-portal/public/images/men/87.jpg
new file mode 100644
index 0000000..2a40324
Binary files /dev/null and b/projects/hr-portal/public/images/men/87.jpg differ
diff --git a/projects/hr-portal/public/images/men/88.jpg b/projects/hr-portal/public/images/men/88.jpg
new file mode 100644
index 0000000..02fa1ca
Binary files /dev/null and b/projects/hr-portal/public/images/men/88.jpg differ
diff --git a/projects/hr-portal/public/images/men/89.jpg b/projects/hr-portal/public/images/men/89.jpg
new file mode 100644
index 0000000..57962bd
Binary files /dev/null and b/projects/hr-portal/public/images/men/89.jpg differ
diff --git a/projects/hr-portal/public/images/men/9.jpg b/projects/hr-portal/public/images/men/9.jpg
new file mode 100644
index 0000000..be4d011
Binary files /dev/null and b/projects/hr-portal/public/images/men/9.jpg differ
diff --git a/projects/hr-portal/public/images/men/90.jpg b/projects/hr-portal/public/images/men/90.jpg
new file mode 100644
index 0000000..00720c2
Binary files /dev/null and b/projects/hr-portal/public/images/men/90.jpg differ
diff --git a/projects/hr-portal/public/images/men/91.jpg b/projects/hr-portal/public/images/men/91.jpg
new file mode 100644
index 0000000..8c3ac42
Binary files /dev/null and b/projects/hr-portal/public/images/men/91.jpg differ
diff --git a/projects/hr-portal/public/images/men/92.jpg b/projects/hr-portal/public/images/men/92.jpg
new file mode 100644
index 0000000..b96231b
Binary files /dev/null and b/projects/hr-portal/public/images/men/92.jpg differ
diff --git a/projects/hr-portal/public/images/men/93.jpg b/projects/hr-portal/public/images/men/93.jpg
new file mode 100644
index 0000000..3a2b514
Binary files /dev/null and b/projects/hr-portal/public/images/men/93.jpg differ
diff --git a/projects/hr-portal/public/images/men/94.jpg b/projects/hr-portal/public/images/men/94.jpg
new file mode 100644
index 0000000..57b6c6b
Binary files /dev/null and b/projects/hr-portal/public/images/men/94.jpg differ
diff --git a/projects/hr-portal/public/images/men/95.jpg b/projects/hr-portal/public/images/men/95.jpg
new file mode 100644
index 0000000..138fc39
Binary files /dev/null and b/projects/hr-portal/public/images/men/95.jpg differ
diff --git a/projects/hr-portal/public/images/men/96.jpg b/projects/hr-portal/public/images/men/96.jpg
new file mode 100644
index 0000000..ad943c9
Binary files /dev/null and b/projects/hr-portal/public/images/men/96.jpg differ
diff --git a/projects/hr-portal/public/images/men/97.jpg b/projects/hr-portal/public/images/men/97.jpg
new file mode 100644
index 0000000..62ea75f
Binary files /dev/null and b/projects/hr-portal/public/images/men/97.jpg differ
diff --git a/projects/hr-portal/public/images/men/98.jpg b/projects/hr-portal/public/images/men/98.jpg
new file mode 100644
index 0000000..41dca98
Binary files /dev/null and b/projects/hr-portal/public/images/men/98.jpg differ
diff --git a/projects/hr-portal/public/images/men/99.jpg b/projects/hr-portal/public/images/men/99.jpg
new file mode 100644
index 0000000..ed97c9d
Binary files /dev/null and b/projects/hr-portal/public/images/men/99.jpg differ
diff --git a/projects/hr-portal/public/images/others/close.svg b/projects/hr-portal/public/images/others/close.svg
new file mode 100644
index 0000000..fbc8515
--- /dev/null
+++ b/projects/hr-portal/public/images/others/close.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/hr-portal/public/images/others/linkedin.svg b/projects/hr-portal/public/images/others/linkedin.svg
new file mode 100644
index 0000000..2749fc9
--- /dev/null
+++ b/projects/hr-portal/public/images/others/linkedin.svg
@@ -0,0 +1 @@
+
diff --git a/projects/hr-portal/public/images/others/mail.svg b/projects/hr-portal/public/images/others/mail.svg
new file mode 100644
index 0000000..d7e101e
--- /dev/null
+++ b/projects/hr-portal/public/images/others/mail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/hr-portal/public/images/others/tel.svg b/projects/hr-portal/public/images/others/tel.svg
new file mode 100644
index 0000000..7ffc188
--- /dev/null
+++ b/projects/hr-portal/public/images/others/tel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/hr-portal/public/images/women/0.jpg b/projects/hr-portal/public/images/women/0.jpg
new file mode 100644
index 0000000..c6009f9
Binary files /dev/null and b/projects/hr-portal/public/images/women/0.jpg differ
diff --git a/projects/hr-portal/public/images/women/1.jpg b/projects/hr-portal/public/images/women/1.jpg
new file mode 100644
index 0000000..d426fa2
Binary files /dev/null and b/projects/hr-portal/public/images/women/1.jpg differ
diff --git a/projects/hr-portal/public/images/women/10.jpg b/projects/hr-portal/public/images/women/10.jpg
new file mode 100644
index 0000000..c732238
Binary files /dev/null and b/projects/hr-portal/public/images/women/10.jpg differ
diff --git a/projects/hr-portal/public/images/women/100.jpg b/projects/hr-portal/public/images/women/100.jpg
new file mode 100644
index 0000000..188758a
Binary files /dev/null and b/projects/hr-portal/public/images/women/100.jpg differ
diff --git a/projects/hr-portal/public/images/women/11.jpg b/projects/hr-portal/public/images/women/11.jpg
new file mode 100644
index 0000000..1027c59
Binary files /dev/null and b/projects/hr-portal/public/images/women/11.jpg differ
diff --git a/projects/hr-portal/public/images/women/12.jpg b/projects/hr-portal/public/images/women/12.jpg
new file mode 100644
index 0000000..ab53c42
Binary files /dev/null and b/projects/hr-portal/public/images/women/12.jpg differ
diff --git a/projects/hr-portal/public/images/women/13.jpg b/projects/hr-portal/public/images/women/13.jpg
new file mode 100644
index 0000000..9ac7687
Binary files /dev/null and b/projects/hr-portal/public/images/women/13.jpg differ
diff --git a/projects/hr-portal/public/images/women/14.jpg b/projects/hr-portal/public/images/women/14.jpg
new file mode 100644
index 0000000..22ab075
Binary files /dev/null and b/projects/hr-portal/public/images/women/14.jpg differ
diff --git a/projects/hr-portal/public/images/women/15.jpg b/projects/hr-portal/public/images/women/15.jpg
new file mode 100644
index 0000000..2818c5d
Binary files /dev/null and b/projects/hr-portal/public/images/women/15.jpg differ
diff --git a/projects/hr-portal/public/images/women/16.jpg b/projects/hr-portal/public/images/women/16.jpg
new file mode 100644
index 0000000..208d902
Binary files /dev/null and b/projects/hr-portal/public/images/women/16.jpg differ
diff --git a/projects/hr-portal/public/images/women/17.jpg b/projects/hr-portal/public/images/women/17.jpg
new file mode 100644
index 0000000..97e4885
Binary files /dev/null and b/projects/hr-portal/public/images/women/17.jpg differ
diff --git a/projects/hr-portal/public/images/women/18.jpg b/projects/hr-portal/public/images/women/18.jpg
new file mode 100644
index 0000000..c21271a
Binary files /dev/null and b/projects/hr-portal/public/images/women/18.jpg differ
diff --git a/projects/hr-portal/public/images/women/19.jpg b/projects/hr-portal/public/images/women/19.jpg
new file mode 100644
index 0000000..c2e4428
Binary files /dev/null and b/projects/hr-portal/public/images/women/19.jpg differ
diff --git a/projects/hr-portal/public/images/women/2.jpg b/projects/hr-portal/public/images/women/2.jpg
new file mode 100644
index 0000000..fdf9625
Binary files /dev/null and b/projects/hr-portal/public/images/women/2.jpg differ
diff --git a/projects/hr-portal/public/images/women/20.jpg b/projects/hr-portal/public/images/women/20.jpg
new file mode 100644
index 0000000..5e359ec
Binary files /dev/null and b/projects/hr-portal/public/images/women/20.jpg differ
diff --git a/projects/hr-portal/public/images/women/21.jpg b/projects/hr-portal/public/images/women/21.jpg
new file mode 100644
index 0000000..d4ec655
Binary files /dev/null and b/projects/hr-portal/public/images/women/21.jpg differ
diff --git a/projects/hr-portal/public/images/women/22.jpg b/projects/hr-portal/public/images/women/22.jpg
new file mode 100644
index 0000000..86ee471
Binary files /dev/null and b/projects/hr-portal/public/images/women/22.jpg differ
diff --git a/projects/hr-portal/public/images/women/23.jpg b/projects/hr-portal/public/images/women/23.jpg
new file mode 100644
index 0000000..3e1fe98
Binary files /dev/null and b/projects/hr-portal/public/images/women/23.jpg differ
diff --git a/projects/hr-portal/public/images/women/24.jpg b/projects/hr-portal/public/images/women/24.jpg
new file mode 100644
index 0000000..7839f26
Binary files /dev/null and b/projects/hr-portal/public/images/women/24.jpg differ
diff --git a/projects/hr-portal/public/images/women/25.jpg b/projects/hr-portal/public/images/women/25.jpg
new file mode 100644
index 0000000..f88c98b
Binary files /dev/null and b/projects/hr-portal/public/images/women/25.jpg differ
diff --git a/projects/hr-portal/public/images/women/26.jpg b/projects/hr-portal/public/images/women/26.jpg
new file mode 100644
index 0000000..96e1934
Binary files /dev/null and b/projects/hr-portal/public/images/women/26.jpg differ
diff --git a/projects/hr-portal/public/images/women/27.jpg b/projects/hr-portal/public/images/women/27.jpg
new file mode 100644
index 0000000..4c46653
Binary files /dev/null and b/projects/hr-portal/public/images/women/27.jpg differ
diff --git a/projects/hr-portal/public/images/women/28.jpg b/projects/hr-portal/public/images/women/28.jpg
new file mode 100644
index 0000000..c6c722e
Binary files /dev/null and b/projects/hr-portal/public/images/women/28.jpg differ
diff --git a/projects/hr-portal/public/images/women/29.jpg b/projects/hr-portal/public/images/women/29.jpg
new file mode 100644
index 0000000..d916ac9
Binary files /dev/null and b/projects/hr-portal/public/images/women/29.jpg differ
diff --git a/projects/hr-portal/public/images/women/3.jpg b/projects/hr-portal/public/images/women/3.jpg
new file mode 100644
index 0000000..c0e9afe
Binary files /dev/null and b/projects/hr-portal/public/images/women/3.jpg differ
diff --git a/projects/hr-portal/public/images/women/30.jpg b/projects/hr-portal/public/images/women/30.jpg
new file mode 100644
index 0000000..ad6ad9f
Binary files /dev/null and b/projects/hr-portal/public/images/women/30.jpg differ
diff --git a/projects/hr-portal/public/images/women/31.jpg b/projects/hr-portal/public/images/women/31.jpg
new file mode 100644
index 0000000..fcd6723
Binary files /dev/null and b/projects/hr-portal/public/images/women/31.jpg differ
diff --git a/projects/hr-portal/public/images/women/32.jpg b/projects/hr-portal/public/images/women/32.jpg
new file mode 100644
index 0000000..a6a2e5f
Binary files /dev/null and b/projects/hr-portal/public/images/women/32.jpg differ
diff --git a/projects/hr-portal/public/images/women/33.jpg b/projects/hr-portal/public/images/women/33.jpg
new file mode 100644
index 0000000..f2659bd
Binary files /dev/null and b/projects/hr-portal/public/images/women/33.jpg differ
diff --git a/projects/hr-portal/public/images/women/34.jpg b/projects/hr-portal/public/images/women/34.jpg
new file mode 100644
index 0000000..49a4713
Binary files /dev/null and b/projects/hr-portal/public/images/women/34.jpg differ
diff --git a/projects/hr-portal/public/images/women/35.jpg b/projects/hr-portal/public/images/women/35.jpg
new file mode 100644
index 0000000..eb92fd8
Binary files /dev/null and b/projects/hr-portal/public/images/women/35.jpg differ
diff --git a/projects/hr-portal/public/images/women/36.jpg b/projects/hr-portal/public/images/women/36.jpg
new file mode 100644
index 0000000..f0edc42
Binary files /dev/null and b/projects/hr-portal/public/images/women/36.jpg differ
diff --git a/projects/hr-portal/public/images/women/37.jpg b/projects/hr-portal/public/images/women/37.jpg
new file mode 100644
index 0000000..13f863a
Binary files /dev/null and b/projects/hr-portal/public/images/women/37.jpg differ
diff --git a/projects/hr-portal/public/images/women/38.jpg b/projects/hr-portal/public/images/women/38.jpg
new file mode 100644
index 0000000..3e89648
Binary files /dev/null and b/projects/hr-portal/public/images/women/38.jpg differ
diff --git a/projects/hr-portal/public/images/women/39.jpg b/projects/hr-portal/public/images/women/39.jpg
new file mode 100644
index 0000000..7c0d29b
Binary files /dev/null and b/projects/hr-portal/public/images/women/39.jpg differ
diff --git a/projects/hr-portal/public/images/women/4.jpg b/projects/hr-portal/public/images/women/4.jpg
new file mode 100644
index 0000000..eb41bf6
Binary files /dev/null and b/projects/hr-portal/public/images/women/4.jpg differ
diff --git a/projects/hr-portal/public/images/women/40.jpg b/projects/hr-portal/public/images/women/40.jpg
new file mode 100644
index 0000000..8d21d68
Binary files /dev/null and b/projects/hr-portal/public/images/women/40.jpg differ
diff --git a/projects/hr-portal/public/images/women/41.jpg b/projects/hr-portal/public/images/women/41.jpg
new file mode 100644
index 0000000..a359e54
Binary files /dev/null and b/projects/hr-portal/public/images/women/41.jpg differ
diff --git a/projects/hr-portal/public/images/women/42.jpg b/projects/hr-portal/public/images/women/42.jpg
new file mode 100644
index 0000000..0abe17d
Binary files /dev/null and b/projects/hr-portal/public/images/women/42.jpg differ
diff --git a/projects/hr-portal/public/images/women/43.jpg b/projects/hr-portal/public/images/women/43.jpg
new file mode 100644
index 0000000..3aeb58e
Binary files /dev/null and b/projects/hr-portal/public/images/women/43.jpg differ
diff --git a/projects/hr-portal/public/images/women/44.jpg b/projects/hr-portal/public/images/women/44.jpg
new file mode 100644
index 0000000..a63f8ce
Binary files /dev/null and b/projects/hr-portal/public/images/women/44.jpg differ
diff --git a/projects/hr-portal/public/images/women/45.jpg b/projects/hr-portal/public/images/women/45.jpg
new file mode 100644
index 0000000..9bef78e
Binary files /dev/null and b/projects/hr-portal/public/images/women/45.jpg differ
diff --git a/projects/hr-portal/public/images/women/46.jpg b/projects/hr-portal/public/images/women/46.jpg
new file mode 100644
index 0000000..f775671
Binary files /dev/null and b/projects/hr-portal/public/images/women/46.jpg differ
diff --git a/projects/hr-portal/public/images/women/47.jpg b/projects/hr-portal/public/images/women/47.jpg
new file mode 100644
index 0000000..7839f26
Binary files /dev/null and b/projects/hr-portal/public/images/women/47.jpg differ
diff --git a/projects/hr-portal/public/images/women/48.jpg b/projects/hr-portal/public/images/women/48.jpg
new file mode 100644
index 0000000..502e684
Binary files /dev/null and b/projects/hr-portal/public/images/women/48.jpg differ
diff --git a/projects/hr-portal/public/images/women/49.jpg b/projects/hr-portal/public/images/women/49.jpg
new file mode 100644
index 0000000..ecead1f
Binary files /dev/null and b/projects/hr-portal/public/images/women/49.jpg differ
diff --git a/projects/hr-portal/public/images/women/5.jpg b/projects/hr-portal/public/images/women/5.jpg
new file mode 100644
index 0000000..0d810bd
Binary files /dev/null and b/projects/hr-portal/public/images/women/5.jpg differ
diff --git a/projects/hr-portal/public/images/women/50.jpg b/projects/hr-portal/public/images/women/50.jpg
new file mode 100644
index 0000000..98fa7b1
Binary files /dev/null and b/projects/hr-portal/public/images/women/50.jpg differ
diff --git a/projects/hr-portal/public/images/women/51.jpg b/projects/hr-portal/public/images/women/51.jpg
new file mode 100644
index 0000000..502e684
Binary files /dev/null and b/projects/hr-portal/public/images/women/51.jpg differ
diff --git a/projects/hr-portal/public/images/women/52.jpg b/projects/hr-portal/public/images/women/52.jpg
new file mode 100644
index 0000000..6efac62
Binary files /dev/null and b/projects/hr-portal/public/images/women/52.jpg differ
diff --git a/projects/hr-portal/public/images/women/53.jpg b/projects/hr-portal/public/images/women/53.jpg
new file mode 100644
index 0000000..085c6c0
Binary files /dev/null and b/projects/hr-portal/public/images/women/53.jpg differ
diff --git a/projects/hr-portal/public/images/women/54.jpg b/projects/hr-portal/public/images/women/54.jpg
new file mode 100644
index 0000000..4c57493
Binary files /dev/null and b/projects/hr-portal/public/images/women/54.jpg differ
diff --git a/projects/hr-portal/public/images/women/55.jpg b/projects/hr-portal/public/images/women/55.jpg
new file mode 100644
index 0000000..9e24b8e
Binary files /dev/null and b/projects/hr-portal/public/images/women/55.jpg differ
diff --git a/projects/hr-portal/public/images/women/56.jpg b/projects/hr-portal/public/images/women/56.jpg
new file mode 100644
index 0000000..f2659bd
Binary files /dev/null and b/projects/hr-portal/public/images/women/56.jpg differ
diff --git a/projects/hr-portal/public/images/women/57.jpg b/projects/hr-portal/public/images/women/57.jpg
new file mode 100644
index 0000000..ea4a22e
Binary files /dev/null and b/projects/hr-portal/public/images/women/57.jpg differ
diff --git a/projects/hr-portal/public/images/women/58.jpg b/projects/hr-portal/public/images/women/58.jpg
new file mode 100644
index 0000000..f39c0d7
Binary files /dev/null and b/projects/hr-portal/public/images/women/58.jpg differ
diff --git a/projects/hr-portal/public/images/women/59.jpg b/projects/hr-portal/public/images/women/59.jpg
new file mode 100644
index 0000000..b968578
Binary files /dev/null and b/projects/hr-portal/public/images/women/59.jpg differ
diff --git a/projects/hr-portal/public/images/women/6.jpg b/projects/hr-portal/public/images/women/6.jpg
new file mode 100644
index 0000000..e6e223f
Binary files /dev/null and b/projects/hr-portal/public/images/women/6.jpg differ
diff --git a/projects/hr-portal/public/images/women/60.jpg b/projects/hr-portal/public/images/women/60.jpg
new file mode 100644
index 0000000..4e88252
Binary files /dev/null and b/projects/hr-portal/public/images/women/60.jpg differ
diff --git a/projects/hr-portal/public/images/women/61.jpg b/projects/hr-portal/public/images/women/61.jpg
new file mode 100644
index 0000000..5e82264
Binary files /dev/null and b/projects/hr-portal/public/images/women/61.jpg differ
diff --git a/projects/hr-portal/public/images/women/62.jpg b/projects/hr-portal/public/images/women/62.jpg
new file mode 100644
index 0000000..f0edc42
Binary files /dev/null and b/projects/hr-portal/public/images/women/62.jpg differ
diff --git a/projects/hr-portal/public/images/women/63.jpg b/projects/hr-portal/public/images/women/63.jpg
new file mode 100644
index 0000000..21e482d
Binary files /dev/null and b/projects/hr-portal/public/images/women/63.jpg differ
diff --git a/projects/hr-portal/public/images/women/64.jpg b/projects/hr-portal/public/images/women/64.jpg
new file mode 100644
index 0000000..ec96c10
Binary files /dev/null and b/projects/hr-portal/public/images/women/64.jpg differ
diff --git a/projects/hr-portal/public/images/women/65.jpg b/projects/hr-portal/public/images/women/65.jpg
new file mode 100644
index 0000000..3cab579
Binary files /dev/null and b/projects/hr-portal/public/images/women/65.jpg differ
diff --git a/projects/hr-portal/public/images/women/66.jpg b/projects/hr-portal/public/images/women/66.jpg
new file mode 100644
index 0000000..36cc0a5
Binary files /dev/null and b/projects/hr-portal/public/images/women/66.jpg differ
diff --git a/projects/hr-portal/public/images/women/67.jpg b/projects/hr-portal/public/images/women/67.jpg
new file mode 100644
index 0000000..8d0815e
Binary files /dev/null and b/projects/hr-portal/public/images/women/67.jpg differ
diff --git a/projects/hr-portal/public/images/women/68.jpg b/projects/hr-portal/public/images/women/68.jpg
new file mode 100644
index 0000000..3391304
Binary files /dev/null and b/projects/hr-portal/public/images/women/68.jpg differ
diff --git a/projects/hr-portal/public/images/women/69.jpg b/projects/hr-portal/public/images/women/69.jpg
new file mode 100644
index 0000000..ea027b1
Binary files /dev/null and b/projects/hr-portal/public/images/women/69.jpg differ
diff --git a/projects/hr-portal/public/images/women/7.jpg b/projects/hr-portal/public/images/women/7.jpg
new file mode 100644
index 0000000..acab038
Binary files /dev/null and b/projects/hr-portal/public/images/women/7.jpg differ
diff --git a/projects/hr-portal/public/images/women/70.jpg b/projects/hr-portal/public/images/women/70.jpg
new file mode 100644
index 0000000..0cc2dff
Binary files /dev/null and b/projects/hr-portal/public/images/women/70.jpg differ
diff --git a/projects/hr-portal/public/images/women/71.jpg b/projects/hr-portal/public/images/women/71.jpg
new file mode 100644
index 0000000..402ac41
Binary files /dev/null and b/projects/hr-portal/public/images/women/71.jpg differ
diff --git a/projects/hr-portal/public/images/women/72.jpg b/projects/hr-portal/public/images/women/72.jpg
new file mode 100644
index 0000000..3435bc7
Binary files /dev/null and b/projects/hr-portal/public/images/women/72.jpg differ
diff --git a/projects/hr-portal/public/images/women/73.jpg b/projects/hr-portal/public/images/women/73.jpg
new file mode 100644
index 0000000..2b0c8a2
Binary files /dev/null and b/projects/hr-portal/public/images/women/73.jpg differ
diff --git a/projects/hr-portal/public/images/women/74.jpg b/projects/hr-portal/public/images/women/74.jpg
new file mode 100644
index 0000000..188758a
Binary files /dev/null and b/projects/hr-portal/public/images/women/74.jpg differ
diff --git a/projects/hr-portal/public/images/women/75.jpg b/projects/hr-portal/public/images/women/75.jpg
new file mode 100644
index 0000000..08b043a
Binary files /dev/null and b/projects/hr-portal/public/images/women/75.jpg differ
diff --git a/projects/hr-portal/public/images/women/76.jpg b/projects/hr-portal/public/images/women/76.jpg
new file mode 100644
index 0000000..e6dbae8
Binary files /dev/null and b/projects/hr-portal/public/images/women/76.jpg differ
diff --git a/projects/hr-portal/public/images/women/77.jpg b/projects/hr-portal/public/images/women/77.jpg
new file mode 100644
index 0000000..fcababd
Binary files /dev/null and b/projects/hr-portal/public/images/women/77.jpg differ
diff --git a/projects/hr-portal/public/images/women/78.jpg b/projects/hr-portal/public/images/women/78.jpg
new file mode 100644
index 0000000..9c1a119
Binary files /dev/null and b/projects/hr-portal/public/images/women/78.jpg differ
diff --git a/projects/hr-portal/public/images/women/79.jpg b/projects/hr-portal/public/images/women/79.jpg
new file mode 100644
index 0000000..b6dd066
Binary files /dev/null and b/projects/hr-portal/public/images/women/79.jpg differ
diff --git a/projects/hr-portal/public/images/women/8.jpg b/projects/hr-portal/public/images/women/8.jpg
new file mode 100644
index 0000000..6ab25af
Binary files /dev/null and b/projects/hr-portal/public/images/women/8.jpg differ
diff --git a/projects/hr-portal/public/images/women/80.jpg b/projects/hr-portal/public/images/women/80.jpg
new file mode 100644
index 0000000..981542f
Binary files /dev/null and b/projects/hr-portal/public/images/women/80.jpg differ
diff --git a/projects/hr-portal/public/images/women/81.jpg b/projects/hr-portal/public/images/women/81.jpg
new file mode 100644
index 0000000..bf1dc8c
Binary files /dev/null and b/projects/hr-portal/public/images/women/81.jpg differ
diff --git a/projects/hr-portal/public/images/women/82.jpg b/projects/hr-portal/public/images/women/82.jpg
new file mode 100644
index 0000000..fa1a297
Binary files /dev/null and b/projects/hr-portal/public/images/women/82.jpg differ
diff --git a/projects/hr-portal/public/images/women/83.jpg b/projects/hr-portal/public/images/women/83.jpg
new file mode 100644
index 0000000..32a4a7e
Binary files /dev/null and b/projects/hr-portal/public/images/women/83.jpg differ
diff --git a/projects/hr-portal/public/images/women/84.jpg b/projects/hr-portal/public/images/women/84.jpg
new file mode 100644
index 0000000..beb5491
Binary files /dev/null and b/projects/hr-portal/public/images/women/84.jpg differ
diff --git a/projects/hr-portal/public/images/women/85.jpg b/projects/hr-portal/public/images/women/85.jpg
new file mode 100644
index 0000000..0a900f9
Binary files /dev/null and b/projects/hr-portal/public/images/women/85.jpg differ
diff --git a/projects/hr-portal/public/images/women/86.jpg b/projects/hr-portal/public/images/women/86.jpg
new file mode 100644
index 0000000..4a01b17
Binary files /dev/null and b/projects/hr-portal/public/images/women/86.jpg differ
diff --git a/projects/hr-portal/public/images/women/87.jpg b/projects/hr-portal/public/images/women/87.jpg
new file mode 100644
index 0000000..3c40620
Binary files /dev/null and b/projects/hr-portal/public/images/women/87.jpg differ
diff --git a/projects/hr-portal/public/images/women/88.jpg b/projects/hr-portal/public/images/women/88.jpg
new file mode 100644
index 0000000..3be8271
Binary files /dev/null and b/projects/hr-portal/public/images/women/88.jpg differ
diff --git a/projects/hr-portal/public/images/women/89.jpg b/projects/hr-portal/public/images/women/89.jpg
new file mode 100644
index 0000000..ad6ad9f
Binary files /dev/null and b/projects/hr-portal/public/images/women/89.jpg differ
diff --git a/projects/hr-portal/public/images/women/9.jpg b/projects/hr-portal/public/images/women/9.jpg
new file mode 100644
index 0000000..0c730dc
Binary files /dev/null and b/projects/hr-portal/public/images/women/9.jpg differ
diff --git a/projects/hr-portal/public/images/women/90.jpg b/projects/hr-portal/public/images/women/90.jpg
new file mode 100644
index 0000000..6dff1de
Binary files /dev/null and b/projects/hr-portal/public/images/women/90.jpg differ
diff --git a/projects/hr-portal/public/images/women/91.jpg b/projects/hr-portal/public/images/women/91.jpg
new file mode 100644
index 0000000..97466f8
Binary files /dev/null and b/projects/hr-portal/public/images/women/91.jpg differ
diff --git a/projects/hr-portal/public/images/women/92.jpg b/projects/hr-portal/public/images/women/92.jpg
new file mode 100644
index 0000000..cd667ab
Binary files /dev/null and b/projects/hr-portal/public/images/women/92.jpg differ
diff --git a/projects/hr-portal/public/images/women/93.jpg b/projects/hr-portal/public/images/women/93.jpg
new file mode 100644
index 0000000..81ea061
Binary files /dev/null and b/projects/hr-portal/public/images/women/93.jpg differ
diff --git a/projects/hr-portal/public/images/women/94.jpg b/projects/hr-portal/public/images/women/94.jpg
new file mode 100644
index 0000000..fc71188
Binary files /dev/null and b/projects/hr-portal/public/images/women/94.jpg differ
diff --git a/projects/hr-portal/public/images/women/95.jpg b/projects/hr-portal/public/images/women/95.jpg
new file mode 100644
index 0000000..ff819b3
Binary files /dev/null and b/projects/hr-portal/public/images/women/95.jpg differ
diff --git a/projects/hr-portal/public/images/women/96.jpg b/projects/hr-portal/public/images/women/96.jpg
new file mode 100644
index 0000000..0cc2dff
Binary files /dev/null and b/projects/hr-portal/public/images/women/96.jpg differ
diff --git a/projects/hr-portal/public/images/women/97.jpg b/projects/hr-portal/public/images/women/97.jpg
new file mode 100644
index 0000000..402ac41
Binary files /dev/null and b/projects/hr-portal/public/images/women/97.jpg differ
diff --git a/projects/hr-portal/public/images/women/98.jpg b/projects/hr-portal/public/images/women/98.jpg
new file mode 100644
index 0000000..3435bc7
Binary files /dev/null and b/projects/hr-portal/public/images/women/98.jpg differ
diff --git a/projects/hr-portal/public/images/women/99.jpg b/projects/hr-portal/public/images/women/99.jpg
new file mode 100644
index 0000000..2b0c8a2
Binary files /dev/null and b/projects/hr-portal/public/images/women/99.jpg differ
diff --git a/projects/hr-portal/src/assets/icons/Icons.ts b/projects/hr-portal/src/assets/icons/Icons.ts
new file mode 100644
index 0000000..92feed1
--- /dev/null
+++ b/projects/hr-portal/src/assets/icons/Icons.ts
@@ -0,0 +1,74 @@
+const base = import.meta.env.BASE_URL.replace(/\/$/, ""); // Remove trailing slash if any
+
+export const icons = [
+ {
+ name: "linkedIn",
+ path: `${base}/images/others/linkedin.svg`,
+ category: "hr-icons",
+ },
+ {
+ name: "close",
+ path: `${base}/images/others/close.svg`,
+ category: "hr-icons",
+ },
+ {
+ name: "mail",
+ path: `${base}/images/others/mail.svg`,
+ category: "hr-icons",
+ },
+ {
+ name: "tel",
+ path: `${base}/images/others/tel.svg`,
+ category: "hr-icons",
+ },
+ {
+ name: "USA",
+ path: `${base}/images/countries/United States.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "CAN",
+ path: `${base}/images/countries/Canada.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "GBR",
+ path: `${base}/images/countries/United Kingdom.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "DEU",
+ path: `${base}/images/countries/Germany.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "FRA",
+ path: `${base}/images/countries/France.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "ESP",
+ path: `${base}/images/countries/Spain.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "ITA",
+ path: `${base}/images/countries/Italy.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "AUS",
+ path: `${base}/images/countries/Australia.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "JPN",
+ path: `${base}/images/countries/Japan.svg`,
+ category: "country-icons",
+ },
+ {
+ name: "ARE",
+ path: `${base}/images/countries/uae.svg`,
+ category: "country-icons",
+ },
+];
diff --git a/projects/hr-portal/src/hr-portal.scss b/projects/hr-portal/src/hr-portal.scss
new file mode 100644
index 0000000..5a86073
--- /dev/null
+++ b/projects/hr-portal/src/hr-portal.scss
@@ -0,0 +1,69 @@
+@use "./styles/utils" as *;
+@use "igniteui-theming" as *;
+@use "igniteui-theming/sass/typography/presets/fluent" as *;
+@use "igniteui-theming/sass/elevations/presets" as *;
+@use "igniteui-theming/sass/color/presets/light/fluent" as *;
+
+:host {
+ height: 100%;
+ width: 100%;
+ display: block;
+
+ font-family: var(--ig-font-family);
+ @include theme($palette, $material-elevations, $typeface, $type-scale, "light");
+}
+
+.rootDiv {
+ width: 100%;
+ height: 100%;
+}
+
+.gridStyle {
+ --ig-size: var(--ig-size-medium);
+ --row-even-background: #ffffff;
+}
+
+.small {
+ --ig-size: var(--ig-size-small);
+}
+
+.medium {
+ --ig-size: var(--ig-size-medium);
+}
+
+.center-content {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ height: 100%;
+ width: 100%;
+ gap: 8px;
+}
+
+.employeeDiv {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+igc-avatar::part(base) {
+ --size: 28px;
+}
+
+.flagDiv {
+ gap: 8px;
+ display: flex;
+}
+
+.flagDiv igc-icon {
+ height: 14px;
+ width: 18px;
+ display: flex;
+ align-items: center;
+ border-radius: 1px;
+ box-shadow: var(--ig-elevation-1);
+ display: flex;
+ justify-content: center;
+ overflow: hidden;
+}
diff --git a/projects/hr-portal/src/hr-portal.ts b/projects/hr-portal/src/hr-portal.ts
new file mode 100644
index 0000000..3581e58
--- /dev/null
+++ b/projects/hr-portal/src/hr-portal.ts
@@ -0,0 +1,155 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement, property, query } from "lit/decorators.js";
+import "igniteui-webcomponents-grids/grids/combined.js";
+import { configureTheme, defineComponents, IgcAvatarComponent, IgcButtonComponent, IgcIconButtonComponent, IgcIconComponent, registerIcon } from "igniteui-webcomponents";
+import { IgcTreeGridComponent, IgcCellTemplateContext } from "igniteui-webcomponents-grids/grids";
+import { icons } from "./assets/icons/Icons";
+import { DataService } from "./services/data.service";
+import styles from "./hr-portal.scss?inline";
+
+defineComponents(IgcAvatarComponent, IgcIconComponent, IgcTreeGridComponent, IgcIconButtonComponent, IgcButtonComponent);
+
+@customElement("app-hr-portal")
+export default class HrPortal extends LitElement {
+ @property({ type: Array })
+ data: Array = [];
+
+ @property({ type: Boolean })
+ isSorted: boolean = false;
+
+ private dataService: DataService;
+
+ constructor() {
+ super();
+ this.data = [];
+ this.dataService = new DataService();
+ icons.forEach((icon: { name: string; path: string; category: string }) => {
+ registerIcon(icon.name, icon.path, icon.category);
+ });
+ }
+
+ connectedCallback() {
+ super.connectedCallback();
+ this.dataService.fetchData().then((data) => {
+ this.data = data;
+ });
+ }
+
+ @query("igc-tree-grid")
+ private treeGrid!: IgcTreeGridComponent;
+
+ clearSorting() {
+ if (this.treeGrid) {
+ this.treeGrid.sortingExpressions = [];
+ }
+ this.isSorted = false;
+ }
+
+ handleSortingChanged() {
+ if (this.treeGrid) {
+ this.isSorted = this.treeGrid.sortingExpressions.length > 0;
+ }
+ }
+
+ public avatarTemplate = (ctx: IgcCellTemplateContext) => {
+ let row = ctx.cell.row;
+ return html`
+
+
+ ${row.data.Name}
+
+ `;
+ };
+
+ public countryIconTemplate = (ctx: IgcCellTemplateContext) => {
+ let row = ctx.cell.row;
+ return html`
+
+ ${row.data.Location}, ${row.data.Country}
+
`;
+ };
+
+ public contactsTemplate = (ctx: IgcCellTemplateContext) => {
+ let row = ctx.cell.row;
+ return html`
+
+ `;
+ };
+
+ public dateTemplate = (ctx: IgcCellTemplateContext) => {
+ let row = ctx.cell.row;
+ const date = new Date(row.data.HireDate);
+ const formattedDate = date.toISOString().split("T")[0];
+ return html` ${formattedDate} `;
+ };
+
+ render() {
+ configureTheme("fluent");
+
+ return html`
+
+
+
+
+
+
+ HR Portal
+
+ ${
+ this.isSorted
+ ? html`
+
+
+
+ Clear Sort
+
+ `
+ : ""
+ }
+
+
+
+ Export
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+
+ static styles = unsafeCSS(styles);
+}
diff --git a/projects/hr-portal/src/services/data.service.ts b/projects/hr-portal/src/services/data.service.ts
new file mode 100644
index 0000000..4246af4
--- /dev/null
+++ b/projects/hr-portal/src/services/data.service.ts
@@ -0,0 +1,14 @@
+const DATA_URL = "https://www.infragistics.com/grid-examples-data/data/hr/hr.json";
+
+export class DataService {
+ public async fetchData(): Promise {
+ try {
+ const response = await fetch(DATA_URL);
+ const jsonData = await response.json();
+ return jsonData;
+ } catch (error) {
+ console.error('Error fetching HR data:', error);
+ throw error;
+ }
+ }
+ }
\ No newline at end of file
diff --git a/projects/hr-portal/src/styles/index.css b/projects/hr-portal/src/styles/index.css
new file mode 100644
index 0000000..a5cfe4b
--- /dev/null
+++ b/projects/hr-portal/src/styles/index.css
@@ -0,0 +1,6 @@
+html, body {
+ height: 100%;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+}
\ No newline at end of file
diff --git a/projects/hr-portal/src/styles/utils.scss b/projects/hr-portal/src/styles/utils.scss
new file mode 100644
index 0000000..28e2924
--- /dev/null
+++ b/projects/hr-portal/src/styles/utils.scss
@@ -0,0 +1,33 @@
+@use "sass:map";
+@use "igniteui-theming" as *;
+
+@function is-root() {
+ @each $selector in & {
+ @return $selector == null;
+ }
+}
+
+@mixin theme($palette, $elevations, $typeface, $type-scale, $variant) {
+ $root: is-root();
+ $scope: if($root, ":root", "&");
+
+ #{$scope} {
+ --ig-theme: #{map.get($palette, "_meta", "variant")};
+ --ig-theme-variant: #{$variant};
+ --ig-spacing: 1;
+ --ig-spacing-inline: 1;
+ --ig-spacing-block: 1;
+ --ig-size-small: 1;
+ --ig-size-medium: 2;
+ --ig-size-large: 3;
+ --ig-scrollbar-size: #{rem(16px)};
+ }
+
+ #{$scope}[dir="rtl"] {
+ --ig-dir: -1;
+ }
+
+ @include palette($palette);
+ @include elevations($elevations);
+ @include typography($font-family: $typeface, $type-scale: $type-scale);
+}
diff --git a/projects/hr-portal/src/vite-env.d.ts b/projects/hr-portal/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/projects/hr-portal/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/projects/hr-portal/tsconfig.json b/projects/hr-portal/tsconfig.json
new file mode 100644
index 0000000..cdb96f3
--- /dev/null
+++ b/projects/hr-portal/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/projects/hr-portal/vite.config.ts b/projects/hr-portal/vite.config.ts
new file mode 100644
index 0000000..c497b4a
--- /dev/null
+++ b/projects/hr-portal/vite.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig } from "vite";
+import { viteStaticCopy } from "vite-plugin-static-copy";
+
+export default defineConfig({
+ resolve: {
+ alias: {
+ "igniteui-theming": new URL("./node_modules/igniteui-theming", import.meta.url).pathname,
+ },
+ },
+ plugins: [
+ viteStaticCopy({
+ targets: [
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/fluent.css",
+ dest: "themes",
+ },
+ ],
+ }),
+ ],
+});
diff --git a/projects/sales-grid/.gitignore b/projects/sales-grid/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/projects/sales-grid/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/projects/sales-grid/ignite-ui-cli.json b/projects/sales-grid/ignite-ui-cli.json
new file mode 100644
index 0000000..fa4ee3a
--- /dev/null
+++ b/projects/sales-grid/ignite-ui-cli.json
@@ -0,0 +1,16 @@
+{
+ "version": "$(cliVersion)",
+ "project": {
+ "defaultPort": 8000,
+ "framework": "webcomponents",
+ "projectTemplate": "$(projectTemplate)",
+ "projectType": "igc-ts",
+ "theme": "$(theme)",
+ "isBundle": false,
+ "components": [],
+ "sourceFiles": [],
+ "isShowcase": false,
+ "version": ""
+ },
+ "build": {}
+}
diff --git a/projects/sales-grid/index.html b/projects/sales-grid/index.html
new file mode 100644
index 0000000..56efb55
--- /dev/null
+++ b/projects/sales-grid/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Sales Grid
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/package-lock.json b/projects/sales-grid/package-lock.json
new file mode 100644
index 0000000..7f9ff3d
--- /dev/null
+++ b/projects/sales-grid/package-lock.json
@@ -0,0 +1,2002 @@
+{
+ "name": "sales-grid",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "sales-grid",
+ "version": "0.0.0",
+ "dependencies": {
+ "igniteui-theming": "^17.1.0",
+ "igniteui-webcomponents": "^5.3.0",
+ "igniteui-webcomponents-grids": "^5.4.0",
+ "lit": "^3.2.1",
+ "sass": "^1.86.1"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.3.1",
+ "vite-plugin-static-copy": "^2.3.1"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
+ "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
+ "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
+ "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
+ "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
+ "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
+ "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
+ "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
+ "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
+ "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
+ "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
+ "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
+ "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
+ "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
+ "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
+ "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
+ "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
+ "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
+ "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
+ "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
+ "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.13",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+ "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.9"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
+ "license": "MIT"
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
+ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@lit-labs/virtualizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.1.0.tgz",
+ "integrity": "sha512-I79sNaalK9rD6FWO/AoxBMnA6jjNBrQu7F6lzz8W/GkQLcqveMWK3IrJAilso+XeFFn7BvlxBv6FqZaoMt+Qkg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "lit": "^3.2.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/@lit/context": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.4.tgz",
+ "integrity": "sha512-0b8wOWNUPcXjGHFtVP+odwhrZBZw+PpCjKWn8IGO10iHT95Xd6FcUAxe1aE7PUtOBvHZoxvrfdBzweYnDW7VNQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.2 || ^2.0.0"
+ }
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz",
+ "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz",
+ "integrity": "sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz",
+ "integrity": "sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz",
+ "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz",
+ "integrity": "sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz",
+ "integrity": "sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz",
+ "integrity": "sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz",
+ "integrity": "sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz",
+ "integrity": "sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz",
+ "integrity": "sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz",
+ "integrity": "sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz",
+ "integrity": "sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz",
+ "integrity": "sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz",
+ "integrity": "sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz",
+ "integrity": "sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz",
+ "integrity": "sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz",
+ "integrity": "sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz",
+ "integrity": "sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz",
+ "integrity": "sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz",
+ "integrity": "sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
+ "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.1",
+ "@esbuild/android-arm": "0.25.1",
+ "@esbuild/android-arm64": "0.25.1",
+ "@esbuild/android-x64": "0.25.1",
+ "@esbuild/darwin-arm64": "0.25.1",
+ "@esbuild/darwin-x64": "0.25.1",
+ "@esbuild/freebsd-arm64": "0.25.1",
+ "@esbuild/freebsd-x64": "0.25.1",
+ "@esbuild/linux-arm": "0.25.1",
+ "@esbuild/linux-arm64": "0.25.1",
+ "@esbuild/linux-ia32": "0.25.1",
+ "@esbuild/linux-loong64": "0.25.1",
+ "@esbuild/linux-mips64el": "0.25.1",
+ "@esbuild/linux-ppc64": "0.25.1",
+ "@esbuild/linux-riscv64": "0.25.1",
+ "@esbuild/linux-s390x": "0.25.1",
+ "@esbuild/linux-x64": "0.25.1",
+ "@esbuild/netbsd-arm64": "0.25.1",
+ "@esbuild/netbsd-x64": "0.25.1",
+ "@esbuild/openbsd-arm64": "0.25.1",
+ "@esbuild/openbsd-x64": "0.25.1",
+ "@esbuild/sunos-x64": "0.25.1",
+ "@esbuild/win32-arm64": "0.25.1",
+ "@esbuild/win32-ia32": "0.25.1",
+ "@esbuild/win32-x64": "0.25.1"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/igniteui-theming": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/igniteui-theming/-/igniteui-theming-17.2.0.tgz",
+ "integrity": "sha512-i2zMlims6zjWd8aWJsimtDtgqRe9O2i7aH/85wf+Es5x2aSkGZsE2/OLrDb0GMXt2ISIsvjVnb1P46hZYiH+BQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "sass": "^1.69.5"
+ }
+ },
+ "node_modules/igniteui-webcomponents": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-5.3.0.tgz",
+ "integrity": "sha512-K5PPwfT2ECp/W3+mNapt1HW6PRIQK7DkehK4SbsCc513LwTzBL1gfHYax0Hk3eiPJP2M/8ANBJ3yDZdRy6YzXQ==",
+ "license": "SEE LICENSE IN LICENSE",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.0",
+ "@lit-labs/virtualizer": "^2.1.0",
+ "@lit/context": "^1.1.0",
+ "lit": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/igniteui-webcomponents-core": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-core/-/igniteui-webcomponents-core-5.4.0.tgz",
+ "integrity": "sha512-JKQ0CXPprcHwEyV7uO62YmONcfN+0ExqeSiW+X3Ge390aetIW49HT0ynph6rZAg3UP4NVeh2i0OitmH7jgkQUA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-grids": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-grids/-/igniteui-webcomponents-grids-5.4.0.tgz",
+ "integrity": "sha512-qt9SEMf+//pbDly5uOo/O+e6DWgSTLC7fdop2RhzlNZYF+ygPRe/PXijtbo1UCr1QvXjTwNYRzQ3zFGoUg3ILw==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0",
+ "igniteui-webcomponents-inputs": "5.4.0",
+ "igniteui-webcomponents-layouts": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-inputs": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-inputs/-/igniteui-webcomponents-inputs-5.4.0.tgz",
+ "integrity": "sha512-sGVwoHNsf9P7aEEyz+zyKgb5K6s+SHn7Pi9f3m/XJb2CGIaGgEkBWyA+nQocsBHGegPFE13LtGDhd2fjo8WJAQ==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0"
+ }
+ },
+ "node_modules/igniteui-webcomponents-layouts": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-webcomponents-layouts/-/igniteui-webcomponents-layouts-5.4.0.tgz",
+ "integrity": "sha512-Nbg3dEKX2xYTSoPHbyoQdRvcsemEBk+Ej+QM7qfZFw0G+uqyIf11hgOWvm8WEmMzFGnfbqpS43V8j2MEAc/LnA==",
+ "license": "Infragistics(R) Ultimate license (http://www.infragistics.com/legal/ultimate/license/)",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "peerDependencies": {
+ "igniteui-webcomponents-core": "5.4.0",
+ "igniteui-webcomponents-inputs": "5.4.0"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
+ "license": "MIT"
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/lit": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz",
+ "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^2.0.4",
+ "lit-element": "^4.1.0",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz",
+ "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.0.4",
+ "lit-html": "^3.2.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz",
+ "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.36.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz",
+ "integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.6"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.36.0",
+ "@rollup/rollup-android-arm64": "4.36.0",
+ "@rollup/rollup-darwin-arm64": "4.36.0",
+ "@rollup/rollup-darwin-x64": "4.36.0",
+ "@rollup/rollup-freebsd-arm64": "4.36.0",
+ "@rollup/rollup-freebsd-x64": "4.36.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.36.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.36.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.36.0",
+ "@rollup/rollup-linux-arm64-musl": "4.36.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.36.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.36.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.36.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.36.0",
+ "@rollup/rollup-linux-x64-gnu": "4.36.0",
+ "@rollup/rollup-linux-x64-musl": "4.36.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.36.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.36.0",
+ "@rollup/rollup-win32-x64-msvc": "4.36.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.3.tgz",
+ "integrity": "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==",
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.1.tgz",
+ "integrity": "sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.12"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-static-copy": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz",
+ "integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "p-map": "^7.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/vite-plugin-static-copy/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ }
+ }
+}
diff --git a/projects/sales-grid/package.json b/projects/sales-grid/package.json
new file mode 100644
index 0000000..b19eb32
--- /dev/null
+++ b/projects/sales-grid/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "sales-grid",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "start": "vite --force",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "lit": "^3.2.1",
+ "sass": "^1.86.1",
+ "igniteui-theming": "^17.1.0",
+ "igniteui-webcomponents": "^5.3.0",
+ "igniteui-webcomponents-grids": "^5.4.0"
+ },
+ "devDependencies": {
+ "typescript": "~5.7.2",
+ "vite": "^6.3.1",
+ "vite-plugin-static-copy": "^2.3.1"
+ }
+}
diff --git a/projects/sales-grid/public/flags/Australia.svg b/projects/sales-grid/public/flags/Australia.svg
new file mode 100644
index 0000000..61c245e
--- /dev/null
+++ b/projects/sales-grid/public/flags/Australia.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Belgium.svg b/projects/sales-grid/public/flags/Belgium.svg
new file mode 100644
index 0000000..8123dab
--- /dev/null
+++ b/projects/sales-grid/public/flags/Belgium.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Brazil.svg b/projects/sales-grid/public/flags/Brazil.svg
new file mode 100644
index 0000000..61f8a52
--- /dev/null
+++ b/projects/sales-grid/public/flags/Brazil.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Bulgaria.svg b/projects/sales-grid/public/flags/Bulgaria.svg
new file mode 100644
index 0000000..ef9fbc5
--- /dev/null
+++ b/projects/sales-grid/public/flags/Bulgaria.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Canada.svg b/projects/sales-grid/public/flags/Canada.svg
new file mode 100644
index 0000000..6ac428d
--- /dev/null
+++ b/projects/sales-grid/public/flags/Canada.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/China.svg b/projects/sales-grid/public/flags/China.svg
new file mode 100644
index 0000000..d3d04dc
--- /dev/null
+++ b/projects/sales-grid/public/flags/China.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Denmark.svg b/projects/sales-grid/public/flags/Denmark.svg
new file mode 100644
index 0000000..1229601
--- /dev/null
+++ b/projects/sales-grid/public/flags/Denmark.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Finland.svg b/projects/sales-grid/public/flags/Finland.svg
new file mode 100644
index 0000000..9a1012f
--- /dev/null
+++ b/projects/sales-grid/public/flags/Finland.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/France.svg b/projects/sales-grid/public/flags/France.svg
new file mode 100644
index 0000000..86fb039
--- /dev/null
+++ b/projects/sales-grid/public/flags/France.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Germany.svg b/projects/sales-grid/public/flags/Germany.svg
new file mode 100644
index 0000000..65b7e46
--- /dev/null
+++ b/projects/sales-grid/public/flags/Germany.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Greece.svg b/projects/sales-grid/public/flags/Greece.svg
new file mode 100644
index 0000000..e1c7293
--- /dev/null
+++ b/projects/sales-grid/public/flags/Greece.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/India.svg b/projects/sales-grid/public/flags/India.svg
new file mode 100644
index 0000000..e56cdfe
--- /dev/null
+++ b/projects/sales-grid/public/flags/India.svg
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Italy.svg b/projects/sales-grid/public/flags/Italy.svg
new file mode 100644
index 0000000..0029478
--- /dev/null
+++ b/projects/sales-grid/public/flags/Italy.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Japan.svg b/projects/sales-grid/public/flags/Japan.svg
new file mode 100644
index 0000000..a665fa5
--- /dev/null
+++ b/projects/sales-grid/public/flags/Japan.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Netherlands.svg b/projects/sales-grid/public/flags/Netherlands.svg
new file mode 100644
index 0000000..28d3cf8
--- /dev/null
+++ b/projects/sales-grid/public/flags/Netherlands.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Poland.svg b/projects/sales-grid/public/flags/Poland.svg
new file mode 100644
index 0000000..29be454
--- /dev/null
+++ b/projects/sales-grid/public/flags/Poland.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Romania.svg b/projects/sales-grid/public/flags/Romania.svg
new file mode 100644
index 0000000..a3b0274
--- /dev/null
+++ b/projects/sales-grid/public/flags/Romania.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/UnitedKingdom.svg b/projects/sales-grid/public/flags/UnitedKingdom.svg
new file mode 100644
index 0000000..a89e4f4
--- /dev/null
+++ b/projects/sales-grid/public/flags/UnitedKingdom.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/UnitedStates.svg b/projects/sales-grid/public/flags/UnitedStates.svg
new file mode 100644
index 0000000..d69d8b1
--- /dev/null
+++ b/projects/sales-grid/public/flags/UnitedStates.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/public/flags/Uruguay.svg b/projects/sales-grid/public/flags/Uruguay.svg
new file mode 100644
index 0000000..5008f40
--- /dev/null
+++ b/projects/sales-grid/public/flags/Uruguay.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/sales-grid/src/assets/data/flags.json b/projects/sales-grid/src/assets/data/flags.json
new file mode 100644
index 0000000..e2ec63a
--- /dev/null
+++ b/projects/sales-grid/src/assets/data/flags.json
@@ -0,0 +1,22 @@
+{
+ "Australia": "flags/Australia.svg",
+ "Belgium": "flags/Belgium.svg",
+ "Brazil": "flags/Brazil.svg",
+ "Bulgaria": "flags/Bulgaria.svg",
+ "Canada": "flags/Canada.svg",
+ "China": "flags/China.svg",
+ "Denmark": "flags/Denmark.svg",
+ "Finland": "flags/Finland.svg",
+ "France": "flags/France.svg",
+ "Germany": "flags/Germany.svg",
+ "Greece": "flags/Greece.svg",
+ "India": "flags/India.svg",
+ "Italy": "flags/Italy.svg",
+ "Japan": "flags/Japan.svg",
+ "Netherlands": "flags/Netherlands.svg",
+ "Poland": "flags/Poland.svg",
+ "Romania": "flags/Romania.svg",
+ "UK": "flags/UnitedKingdom.svg",
+ "USA": "flags/UnitedStates.svg",
+ "Uruguay": "flags/Uruguay.svg"
+}
diff --git a/projects/sales-grid/src/assets/images/icons/arrow_drop_down.svg b/projects/sales-grid/src/assets/images/icons/arrow_drop_down.svg
new file mode 100644
index 0000000..784d3eb
--- /dev/null
+++ b/projects/sales-grid/src/assets/images/icons/arrow_drop_down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/sales-grid/src/assets/images/icons/arrow_drop_up.svg b/projects/sales-grid/src/assets/images/icons/arrow_drop_up.svg
new file mode 100644
index 0000000..5bced54
--- /dev/null
+++ b/projects/sales-grid/src/assets/images/icons/arrow_drop_up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/sales-grid/src/assets/images/icons/file_download.svg b/projects/sales-grid/src/assets/images/icons/file_download.svg
new file mode 100644
index 0000000..2bb823e
--- /dev/null
+++ b/projects/sales-grid/src/assets/images/icons/file_download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/sales-grid/src/assets/images/icons/visibility.svg b/projects/sales-grid/src/assets/images/icons/visibility.svg
new file mode 100644
index 0000000..d336dc1
--- /dev/null
+++ b/projects/sales-grid/src/assets/images/icons/visibility.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/projects/sales-grid/src/sales-grid.scss b/projects/sales-grid/src/sales-grid.scss
new file mode 100644
index 0000000..9f84797
--- /dev/null
+++ b/projects/sales-grid/src/sales-grid.scss
@@ -0,0 +1,76 @@
+@use "./styles/utils" as *;
+@use "igniteui-theming" as *;
+@use "igniteui-theming/sass/typography/presets/indigo" as *;
+@use "igniteui-theming/sass/elevations/presets" as *;
+@use "igniteui-theming/sass/color/presets/light/indigo" as *;
+
+:host {
+ display: block;
+ height: 100%;
+ width: 100%;
+
+ font-family: var(--ig-font-family);
+ @include theme($palette, $material-elevations, $typeface, $type-scale, "light");
+}
+
+.rootSample {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+ --ig-size: var(--ig-size-small);
+}
+
+.pivotToolbar {
+ display: flex;
+ justify-content: space-between;
+ min-height: 40px;
+ border: solid 1px hsl(from var(--ig-gray-400) h s l / 1);
+ background: var(--ig-grid-header-background, hsl(from var(--ig-surface-500) h s l/1));
+}
+
+.pivotRow {
+ display: flex;
+ flex-direction: row;
+ height: calc(100% - 40px);
+}
+
+.pivotContainer {
+ width: 100%;
+ border: solid 1px hsl(from var(--ig-gray-400) h s l / 1);
+ border-top: none;
+ border-right: none;
+ overflow: auto;
+}
+
+.selectorContainer {
+ height: 100%;
+ min-width: 200px;
+ overflow-y: auto;
+}
+
+.countryHeader {
+ width: 100%;
+ display: flex;
+ align-items: center;
+}
+
+.countryImage {
+ height: 14px;
+ margin-right: 4px;
+}
+
+
+igc-pivot-data-selector {
+ border: solid 1px hsl(from var(--ig-gray-400) h s l / 1);
+ border-top: none;
+ height: 100%;
+
+ .igx-list__item-content {
+ padding: 0 8px !important;
+
+ span {
+ margin-inline-start: initial;
+ }
+ }
+}
diff --git a/projects/sales-grid/src/sales-grid.ts b/projects/sales-grid/src/sales-grid.ts
new file mode 100644
index 0000000..d5368b2
--- /dev/null
+++ b/projects/sales-grid/src/sales-grid.ts
@@ -0,0 +1,466 @@
+import { LitElement, PropertyValues, html, unsafeCSS } from "lit";
+import { customElement, query, state } from "lit/decorators.js";
+import { repeat } from "lit/directives/repeat.js";
+import { SalesDataService } from "./services/data.service";
+import {
+ configureTheme,
+ defineComponents,
+ registerIcon,
+ IgcButtonComponent,
+ IgcDropdownComponent,
+ IgcDropdownItemComponent,
+ IgcIconComponent
+} from "igniteui-webcomponents";
+import {
+ IgcPivotGridComponent,
+ IgcFilteringExpressionsTree,
+ IgcStringFilteringOperand,
+ FilteringLogic,
+ IgcPivotValue,
+ IgcPivotConfiguration,
+ IgcPivotDateDimension,
+ IgcColumnComponent,
+} from "igniteui-webcomponents-grids/grids";
+
+import 'igniteui-webcomponents-grids/grids/combined.js';
+import salesGridStyles from './sales-grid.scss?inline';
+
+import ARROW_DOWN_SVG from "./assets/images/icons/arrow_drop_down.svg";
+import ARROW_UP_SVG from "./assets/images/icons/arrow_drop_up.svg";
+import VISIBILITY_SVG from "./assets/images/icons/visibility.svg";
+import FILE_DOWNLOAD_SVG from "./assets/images/icons/file_download.svg";
+import FLAGS from "./assets/data/flags.json";
+
+defineComponents(IgcButtonComponent, IgcIconComponent, IgcDropdownComponent);
+
+enum PivotViews {
+ BrandsSeparate = 'brandsOr',
+ BrandsCombined = 'jeansAnd',
+ Stores = 'stores'
+}
+
+export class IgcSaleProfitAggregate {
+ public static totalProfit = (_: any, data: any[] | undefined) =>
+ data?.reduce((accumulator, value) => accumulator + (value.Sale - value.Cost), 0) || 0;
+
+ public static averageProfit = (_: any, data: any[] | undefined) => {
+ let average = 0;
+ if (data?.length === 1) {
+ average = data[0].Sale - data[0].Cost;
+ } else if (data && data.length > 1) {
+ const mappedData = data.map(x => x.Sale - x.Cost);
+ average = mappedData.reduce((a, b) => a + b) / mappedData.length;
+ }
+ return average;
+ }
+
+ public static minProfit = (_: any, data: any[] | undefined) => {
+ let min = 0;
+ if (data?.length === 1) {
+ min = data[0].Sale - data[0].Cost;
+ } else if (data && data.length > 1) {
+ const mappedData = data.map(x => x.Sale - x.Cost);
+ min = mappedData.reduce((a, b) => Math.min(a, b));
+ }
+ return min;
+ };
+
+ public static maxProfit = (_: any, data: any[] | undefined) => {
+ let max = 0;
+ if (data?.length === 1) {
+ max = data[0].Sale - data[0].Cost;
+ } else if (data && data.length > 1) {
+ const mappedData = data.map(x => x.Sale - x.Cost);
+ max = mappedData.reduce((a, b) => Math.max(a, b));
+ }
+ return max;
+ };
+}
+
+@customElement("app-sales-grid")
+export class SalesGrid extends LitElement {
+ @query('#viewDropdown')
+ private viewDropdown!: IgcDropdownComponent;
+
+ @query('#salesGrid')
+ private pivotGrid!: IgcPivotGridComponent;
+
+ @state()
+ public salesData = [];
+
+ @state()
+ public viewDropdownOpen = false;
+
+ public flagsData = FLAGS;
+ public brandFilter: IgcFilteringExpressionsTree = {
+ operator: FilteringLogic.Or,
+ fieldName: 'Brand',
+ filteringOperands: [
+ {
+ operator: FilteringLogic.Or,
+ fieldName: 'Brand',
+ filteringOperands: [
+ {
+ condition: IgcStringFilteringOperand.instance().condition('equals'),
+ fieldName: 'Brand',
+ searchVal: 'HM'
+ },
+ {
+ condition: IgcStringFilteringOperand.instance().condition('equals'),
+ fieldName: 'Brand',
+ searchVal: 'HM Home'
+ }
+ ]
+ }
+ ]
+ };
+ public bulgariaCountryFilter: IgcFilteringExpressionsTree = {
+ operator: FilteringLogic.And,
+ filteringOperands: [
+ {
+ condition: IgcStringFilteringOperand.instance().condition('equals'),
+ fieldName: 'Country',
+ searchVal: 'Bulgaria'
+ },
+ ]
+ };
+ // public excelExporter = new IgcExcelExporterService();
+ // public csvExporter = new IgcCsvExporterService();
+
+ public fileName = 'SalesGridApp';
+ public saleValue: IgcPivotValue = {
+ enabled: true,
+ member: 'Sale',
+ displayName: 'Sales',
+ aggregate: {
+ key: 'SUM',
+ aggregatorName: 'SUM',
+ label: 'Sum'
+ },
+ aggregateList: [
+ {
+ key: 'AVG',
+ aggregatorName: 'AVG',
+ label: 'Average'
+ },
+ {
+ key: 'COUNT',
+ aggregatorName: 'COUNT',
+ label: 'Count'
+ },
+ {
+ key: 'MAX',
+ aggregatorName: 'MAX',
+ label: 'Maximum'
+ },
+ {
+ key: 'MIN',
+ aggregatorName: 'MIN',
+ label: 'Minimum'
+ },
+ {
+ key: 'SUM',
+ aggregatorName: 'SUM',
+ label: 'Sum'
+ },
+ ],
+ formatter: (value: any, _: any, __: any) => {
+ return this.currencyFormatter(value, 'Sale');
+ }
+ };
+ public profitValue: IgcPivotValue = {
+ enabled: true,
+ member: 'Cost',
+ displayName: 'Profit',
+ aggregate: {
+ key: 'SUM',
+ aggregator: IgcSaleProfitAggregate.totalProfit,
+ label: 'Sum'
+ },
+ aggregateList: [
+ {
+ key: 'AVG',
+ aggregator: IgcSaleProfitAggregate.averageProfit,
+ label: 'Average'
+ },
+ {
+ key: 'COUNT',
+ aggregatorName: 'COUNT',
+ label: 'Count'
+ },
+ {
+ key: 'MAX',
+ aggregator: IgcSaleProfitAggregate.maxProfit,
+ label: 'Maximum'
+ },
+ {
+ key: 'MIN',
+ aggregator: IgcSaleProfitAggregate.minProfit,
+ label: 'Minimum'
+ },
+ {
+ key: 'SUM',
+ aggregator: IgcSaleProfitAggregate.totalProfit,
+ label: 'Sum'
+ },
+ ],
+ formatter: (value: any, _: any, __: any) => {
+ return this.currencyFormatter(value, 'Cost');
+ }
+ };
+ public pivotConfigBrands: IgcPivotConfiguration = {
+ columns: [
+ {
+ enabled: true,
+ memberName: 'Country',
+ displayName: 'Country'
+ },
+ {
+ enabled: true,
+ memberName: 'Brand',
+ displayName: 'Brand'
+ },
+ {
+ enabled: false,
+ memberName: 'Store',
+ displayName: 'Store'
+ },
+ ],
+ rows: [
+ new IgcPivotDateDimension({
+ memberName: 'Date',
+ displayName: 'All Periods',
+ enabled: true
+ },
+ {
+ fullDate: true,
+ quarters: true,
+ months: false,
+ })
+ ],
+ values: [
+ this.saleValue,
+ this.profitValue
+ ],
+ filters: [
+ {
+ enabled: true,
+ memberName: 'Brand',
+ displayName: 'Brand',
+ filter: this.brandFilter
+ },
+ ]
+ };
+ public pivotConfigBrandsCombined: IgcPivotConfiguration = {
+ columns: [
+ {
+ enabled: true,
+ memberName: 'Country',
+ displayName: 'Country'
+ },
+ {
+ enabled: false,
+ memberName: 'Store',
+ displayName: 'Store'
+ },
+ ],
+ rows: [
+ new IgcPivotDateDimension({
+ memberName: 'Date',
+ displayName: 'All Periods',
+ enabled: true
+ },
+ {
+ fullDate: true,
+ quarters: true,
+ months: false,
+ })
+ ],
+ values: [
+ this.saleValue,
+ this.profitValue
+ ],
+ filters: [
+ {
+ enabled: true,
+ memberName: 'Brand',
+ displayName: 'Brand',
+ filter: this.brandFilter
+ },
+ ]
+ };
+ public pivotConfigStores: IgcPivotConfiguration = {
+ columns: [
+ new IgcPivotDateDimension({
+ memberName: 'Date',
+ displayName: 'All Periods',
+ enabled: true
+ },
+ {
+ months: false,
+ fullDate: false,
+ quarters: true
+ })
+ ],
+ rows: [
+ {
+ memberName: 'Store',
+ displayName: 'Store',
+ enabled: true,
+ width: "140px"
+ },
+ {
+ memberName: 'Brand',
+ displayName: 'Brand',
+ enabled: true,
+ width: "140px"
+ }
+ ],
+ values: [
+ this.saleValue,
+ this.profitValue
+ ],
+ filters: [
+ {
+ memberName: "Country",
+ displayName: 'Country',
+ filter: this.bulgariaCountryFilter,
+ enabled: true
+ }
+ ]
+ };
+
+ public PivotViews = PivotViews;
+ public selectedConfig = PivotViews.BrandsSeparate;
+ public availableConfigs = new Map([
+ [PivotViews.BrandsSeparate, { title: 'Brands: HM and HM Home', config: this.pivotConfigBrands }],
+ [PivotViews.BrandsCombined, { title: 'Brands: HM + HM Home', config: this.pivotConfigBrandsCombined }],
+ [PivotViews.Stores, { title: 'Stores: Bulgaria', config: this.pivotConfigStores }]
+ ]);
+
+ constructor() {
+ super();
+
+ // Fetch data
+ SalesDataService.getSalesData().then(data => this.salesData = data);
+
+ registerIcon("arrow_down", ARROW_DOWN_SVG, "material");
+ registerIcon("arrow_up", ARROW_UP_SVG, "material");
+ registerIcon("visibility", VISIBILITY_SVG, "material");
+ registerIcon("file_download", FILE_DOWNLOAD_SVG, "custom");
+ }
+
+ protected firstUpdated(_changedProperties: PropertyValues): void {
+ // Workaround for not setting pivot data selector grid ref once available.
+ this.requestUpdate();
+ }
+
+ public onViewDropdownButton(event: MouseEvent) {
+ this.viewDropdown.toggle(event.currentTarget as HTMLElement);
+ this.viewDropdownOpen = !this.viewDropdownOpen;
+ }
+
+ public onExportDropdownButton() {
+ // TO DO
+ // To uncomment once Excel and CSV exporter are available in WC
+ // let options!: IgcExporterOptionsBase;
+ // const newId = event.detail.id;
+ // if (newId === 'csv') {
+ // options = new IgcCsvExporterOptions(this.fileName, CsvFileTypes.CSV);
+ // this.csvExporter.export(this.pivotGrid, options);
+ // } else if (newId === 'excel') {
+ // options = new IgcExcelExporterOptions(this.fileName);
+ // this.excelExporter.export(this.pivotGrid, options);
+ // }
+ }
+
+ public onViewDropdownVisibility(_: CustomEvent) {
+ this.viewDropdownOpen = !this.viewDropdownOpen;
+ }
+
+ public onViewSelection(event: CustomEvent) {
+ this.selectedConfig = event.detail.id;
+ }
+
+ public onColumnInit(event: CustomEvent) {
+ const col = event.detail;
+ var countryKeys = Object.keys(this.flagsData);
+ if (countryKeys.includes(col.field)) {
+ // TO DO
+ // col.headerTemplate = (_: IgcColumnTemplateContext) => html`
+ //
+ // `;
+ }
+ }
+
+ public currencyFormatter(value: any, field: string) {
+ if (value === undefined || value === null){
+ return "";
+ }
+ const valueConfig = this.pivotGrid.pivotConfiguration.values.find(value => value.member === field);
+ if (!valueConfig || valueConfig.aggregate.key === "COUNT") {
+ return value;
+ }
+ const roundedValue = (Math.round(value * 100) / 100).toString();
+ const numLength = roundedValue.split('').length;
+ const separatedValue = roundedValue.split('').reverse()
+ .reduce((prev, curr, index) => prev + curr + ((index + 1) % 3 === 0 && index < numLength - 1 ? ",": ""))
+ .split('').reverse().join("");
+ return "$" + separatedValue;
+ }
+
+ render() {
+ configureTheme("indigo");
+
+ return html`
+
+
+ `;
+ }
+
+ static styles = unsafeCSS(salesGridStyles);
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ "app-sales-grid": SalesGrid;
+ }
+}
diff --git a/projects/sales-grid/src/services/data.service.ts b/projects/sales-grid/src/services/data.service.ts
new file mode 100644
index 0000000..8ea3154
--- /dev/null
+++ b/projects/sales-grid/src/services/data.service.ts
@@ -0,0 +1,20 @@
+class DataService {
+ public DATA_URL = 'https://www.infragistics.com/grid-examples-data/data/sales/sales.json';
+
+ public async getSalesData() {
+ try {
+ const response = await fetch(this.DATA_URL);
+ if (!response.ok) {
+ console.error(response.statusText);
+ return [];
+ }
+
+ const json = await response.json();
+ return json;
+ } catch(error: any) {
+ console.error(error.message);
+ }
+ }
+}
+
+export const SalesDataService: DataService = new DataService();
\ No newline at end of file
diff --git a/projects/sales-grid/src/styles/index.css b/projects/sales-grid/src/styles/index.css
new file mode 100644
index 0000000..a950b4c
--- /dev/null
+++ b/projects/sales-grid/src/styles/index.css
@@ -0,0 +1,19 @@
+html,
+body {
+ height: 100%;
+}
+
+html {
+ box-sizing: border-box;
+}
+
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p {
+ margin: 0;
+}
diff --git a/projects/sales-grid/src/styles/utils.scss b/projects/sales-grid/src/styles/utils.scss
new file mode 100644
index 0000000..28e2924
--- /dev/null
+++ b/projects/sales-grid/src/styles/utils.scss
@@ -0,0 +1,33 @@
+@use "sass:map";
+@use "igniteui-theming" as *;
+
+@function is-root() {
+ @each $selector in & {
+ @return $selector == null;
+ }
+}
+
+@mixin theme($palette, $elevations, $typeface, $type-scale, $variant) {
+ $root: is-root();
+ $scope: if($root, ":root", "&");
+
+ #{$scope} {
+ --ig-theme: #{map.get($palette, "_meta", "variant")};
+ --ig-theme-variant: #{$variant};
+ --ig-spacing: 1;
+ --ig-spacing-inline: 1;
+ --ig-spacing-block: 1;
+ --ig-size-small: 1;
+ --ig-size-medium: 2;
+ --ig-size-large: 3;
+ --ig-scrollbar-size: #{rem(16px)};
+ }
+
+ #{$scope}[dir="rtl"] {
+ --ig-dir: -1;
+ }
+
+ @include palette($palette);
+ @include elevations($elevations);
+ @include typography($font-family: $typeface, $type-scale: $type-scale);
+}
diff --git a/projects/sales-grid/src/vite-env.d.ts b/projects/sales-grid/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/projects/sales-grid/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/projects/sales-grid/tsconfig.json b/projects/sales-grid/tsconfig.json
new file mode 100644
index 0000000..cdb96f3
--- /dev/null
+++ b/projects/sales-grid/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/projects/sales-grid/vite.config.ts b/projects/sales-grid/vite.config.ts
new file mode 100644
index 0000000..2fb9181
--- /dev/null
+++ b/projects/sales-grid/vite.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig } from "vite";
+import { viteStaticCopy } from "vite-plugin-static-copy";
+
+export default defineConfig({
+ resolve: {
+ alias: {
+ "igniteui-theming": new URL("./node_modules/igniteui-theming", import.meta.url).pathname,
+ },
+ },
+ plugins: [
+ viteStaticCopy({
+ targets: [
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/indigo.css",
+ dest: "themes",
+ },
+ ],
+ }),
+ ],
+});
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..1372d01
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/loading.svg b/public/loading.svg
new file mode 100644
index 0000000..b1ce45f
--- /dev/null
+++ b/public/loading.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app-routing.ts b/src/app-routing.ts
new file mode 100644
index 0000000..a70b2e9
--- /dev/null
+++ b/src/app-routing.ts
@@ -0,0 +1,25 @@
+import { Route } from "@vaadin/router";
+
+export const routes: Route[] = [
+ { path: "", redirect: "home" },
+ {
+ path: "home",
+ component: "home-view",
+ children: [
+ { path: "", redirect: "home/inventory" },
+ { path: "inventory", component: "erp-hgrid-view" },
+ { path: "finance", component: "finance-view" },
+ { path: "hr-portal", component: "hr-portal-view" },
+ { path: "sales", component: "sales-view" },
+ { path: "fleet", component: "fleet-management-view" },
+ ],
+ },
+ { path: "inventory", component: "app-erp-hgrid" },
+ { path: "finance", component: "app-finance-grid" },
+ { path: "hr-portal", component: "app-hr-portal" },
+ { path: "sales", component: "app-sales-grid" },
+ { path: "fleet", component: "app-fleet-management" },
+
+ // Fallback route
+ { path: "(.*)", redirect: "home" },
+];
diff --git a/src/app.ts b/src/app.ts
new file mode 100644
index 0000000..df620f4
--- /dev/null
+++ b/src/app.ts
@@ -0,0 +1,26 @@
+import { LitElement, css, html } from "lit";
+import { customElement } from "lit/decorators.js";
+import { Router } from "@vaadin/router";
+import { routes } from "./app-routing";
+
+import "./views/home/home-view";
+
+@customElement("app-root")
+export default class App extends LitElement {
+ firstUpdated() {
+ const outlet = this.shadowRoot?.querySelector("router-outlet");
+ const router = new Router(outlet, {
+ baseUrl: "/webcomponents-grid-examples/",
+ });
+ router.setRoutes(routes);
+ }
+
+ render() {
+ return html` `;
+ }
+
+ static styles = css`
+ :host {
+ }
+ `;
+}
diff --git a/src/assets/icons.ts b/src/assets/icons.ts
new file mode 100644
index 0000000..964b65a
--- /dev/null
+++ b/src/assets/icons.ts
@@ -0,0 +1 @@
+export const FILE_DOWNLOAD = ` `;
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 0000000..f428f8e
--- /dev/null
+++ b/src/index.css
@@ -0,0 +1,11 @@
+html, body {
+ height: 100%;
+}
+
+html {
+ box-sizing: border-box;
+}
+
+body, h1, h2, h3, h4, h5, h6, p {
+ margin: 0;
+}
\ No newline at end of file
diff --git a/src/shared/styles.scss b/src/shared/styles.scss
new file mode 100644
index 0000000..93b07af
--- /dev/null
+++ b/src/shared/styles.scss
@@ -0,0 +1,22 @@
+.iframe-wrapper {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ &.loading::before {
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ content: "";
+ background-image: url("/loading.svg");
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center center;
+ z-index: 9999;
+ backface-visibility: hidden;
+ }
+}
diff --git a/src/views/erp-hgrid/erp-hgrid-view.scss b/src/views/erp-hgrid/erp-hgrid-view.scss
new file mode 100644
index 0000000..e88154c
--- /dev/null
+++ b/src/views/erp-hgrid/erp-hgrid-view.scss
@@ -0,0 +1,14 @@
+:host {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+
+ iframe {
+ width: 100%;
+ height: 100%;
+ border: 0;
+ }
+
\ No newline at end of file
diff --git a/src/views/erp-hgrid/erp-hgrid-view.ts b/src/views/erp-hgrid/erp-hgrid-view.ts
new file mode 100644
index 0000000..6163b03
--- /dev/null
+++ b/src/views/erp-hgrid/erp-hgrid-view.ts
@@ -0,0 +1,24 @@
+import { LitElement, unsafeCSS, html } from "lit";
+import { customElement } from "lit/decorators.js";
+import "../../../projects/erp-hgrid/src/components/erp-hierarchical-grid";
+import namedStyles from "./erp-hgrid-view.scss?inline";
+import sharedStyles from "../../shared/styles.scss?inline";
+
+@customElement("erp-hgrid-view")
+export default class ErpHgridView extends LitElement {
+ constructor() {
+ super();
+ }
+
+ private onLoad = (event: any) => {
+ event.target.parentElement.classList.remove("loading");
+ };
+
+ render() {
+ const iframeSrc = `${import.meta.env.BASE_URL}inventory`;
+ return html`
+
+
`;
+ }
+ static styles = [unsafeCSS(namedStyles), unsafeCSS(sharedStyles)];
+}
diff --git a/src/views/finance/finance-view.scss b/src/views/finance/finance-view.scss
new file mode 100644
index 0000000..35db6f7
--- /dev/null
+++ b/src/views/finance/finance-view.scss
@@ -0,0 +1,13 @@
+:host {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+iframe {
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
diff --git a/src/views/finance/finance-view.ts b/src/views/finance/finance-view.ts
new file mode 100644
index 0000000..9e492cf
--- /dev/null
+++ b/src/views/finance/finance-view.ts
@@ -0,0 +1,24 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement } from "lit/decorators.js";
+import "../../../projects/finance-grid/src/finance-grid";
+import namedStyles from "./finance-view.scss?inline";
+import sharedStyles from "../../shared/styles.scss?inline";
+
+@customElement("finance-view")
+export default class FinanceView extends LitElement {
+ constructor() {
+ super();
+ }
+
+ private onLoad = (event: any) => {
+ event.target.parentElement.classList.remove("loading");
+ };
+ render() {
+ const iframeSrc = `${import.meta.env.BASE_URL}finance`;
+ return html`
+
+
`;
+ }
+
+ static styles = [unsafeCSS(namedStyles), unsafeCSS(sharedStyles)];
+}
diff --git a/src/views/fleet-management/fleet-management-view.scss b/src/views/fleet-management/fleet-management-view.scss
new file mode 100644
index 0000000..66034e2
--- /dev/null
+++ b/src/views/fleet-management/fleet-management-view.scss
@@ -0,0 +1,13 @@
+:host {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+
+ iframe {
+ width: 100%;
+ height: 100%;
+ border: 0;
+ }
\ No newline at end of file
diff --git a/src/views/fleet-management/fleet-management-view.ts b/src/views/fleet-management/fleet-management-view.ts
new file mode 100644
index 0000000..6d3dc5e
--- /dev/null
+++ b/src/views/fleet-management/fleet-management-view.ts
@@ -0,0 +1,24 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement } from "lit/decorators.js";
+import "../../../projects/fleet-management-grid/src/components/fleet-management/fleet-management-grid";
+import namedStyles from './fleet-management-view.scss?inline';
+import sharedStyles from '../../shared/styles.scss?inline';
+
+@customElement("fleet-management-view")
+export default class FinanceView extends LitElement {
+ constructor() {
+ super();
+ }
+
+ private onLoad = (event: any) => {
+ event.target.parentElement.classList.remove("loading");
+ };
+ render() {
+ const iframeSrc = `${import.meta.env.BASE_URL}fleet`;
+ return html`
+
+
`;
+ }
+
+ static styles = [unsafeCSS(namedStyles), unsafeCSS(sharedStyles)];
+}
diff --git a/src/views/home/home-view.scss b/src/views/home/home-view.scss
new file mode 100644
index 0000000..e19de1a
--- /dev/null
+++ b/src/views/home/home-view.scss
@@ -0,0 +1,197 @@
+:host {
+ display: block;
+ width: 100%;
+ height: 100%;
+ & * {
+ box-sizing: border-box;
+ }
+}
+
+.demo-container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ box-sizing: border-box;
+ igc-chip {
+ --ig-chip-hover-background: var(--ig-gray-300);
+ --ig-chip-focus-background: var(--ig-gray-300);
+ }
+}
+
+.router-container {
+ width: 100%;
+ overflow: hidden;
+ display: flex;
+ position: relative;
+ flex: 1;
+}
+
+.tab-container {
+ width: 100%;
+ min-height: 132px;
+ overflow: hidden;
+ flex-shrink: 0;
+ padding: 16px;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ background-color: var(--ig-surface-500);
+ box-sizing: border-box;
+ & a {
+ text-decoration: none;
+ display: block;
+ width: 100%;
+ height: 100%;
+ }
+}
+
+.tab-item-container {
+ height: 100%;
+ display: inline-flex;
+}
+
+.tab-item {
+ height: 100%;
+ display: flex;
+ flex-grow: 1;
+ flex-basis: 0;
+ flex-direction: column;
+ justify-content: space-between;
+ gap: 8px;
+ padding: 12px;
+ cursor: pointer;
+ user-select: none;
+ border-bottom: 1px solid var(--ig-gray-300);
+
+ &--selected {
+ border-bottom: 3px solid var(--ig-primary-500);
+ }
+
+ &:hover {
+ background: hsl(from var(--ig-gray-100) h s l/0.5);
+ }
+}
+
+.tab-header {
+ display: flex;
+ flex-direction: row;
+ gap: 8px;
+ color: var(--ig-gray-900);
+ font-size: 20px;
+ font-weight: 600;
+ line-height: 24px;
+ letter-spacing: 0.15px;
+ --ig-size: var(--ig-size-medium);
+
+ &--disabled {
+ color: var(--ig-gray-700) !important;
+ }
+}
+
+.tab-content {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ color: var(--ig-gray-900);
+ font-size: 14px;
+ font-weight: 400;
+ font-family: "aktiv-grotesk", sans-serif;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+
+ &--disabled {
+ color: var(--ig-gray-700) !important;
+ }
+}
+
+.tab-actions {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ --ig-size: var(--ig-size-small);
+ --disabled-icon-color: #ffffff;
+
+ igc-icon-button.button--disabled::part(base) {
+ background-color: var(--ig-gray-600);
+ color: #ffffff;
+ &:hover {
+ background-color: var(--ig-gray-800);
+ }
+ }
+
+ igc-icon-button.button--enabled::part(base) {
+ background-color: #212121;
+ color: #ffffff;
+ &:hover {
+ background-color: var(--ig-gray-600);
+ }
+ }
+
+ a {
+ width: unset;
+ padding-bottom: 2px;
+ transition: background-size 350ms;
+ background: linear-gradient(0deg, var(--bg-color), var(--bg-color)) no-repeat right bottom / 0 var(--bg-h);
+ --bg-h: 2px;
+ --bg-color: var(--ig-primary-500);
+
+ &:where(:hover, :focus-visible) {
+ background-size: 100% var(--bg-h);
+ background-position-x: left;
+ }
+
+ &.link--disabled {
+ color: var(--ig-primary-200);
+ --bg-color: var(--ig-primary-200);
+
+ &:hover {
+ color: var(--ig-primary-500);
+ --bg-color: var(--ig-primary-500);
+ }
+ }
+ }
+}
+
+.learn-text {
+ text-decoration: none;
+ color: var(--ig-primary-500);
+ font-size: 14px;
+ font-weight: 700;
+ font-family: "aktiv-grotesk", sans-serif;
+ line-height: 20px;
+}
+
+.tooltip {
+ position: relative;
+ display: inline-block;
+
+ & .tooltip--text {
+ visibility: hidden;
+ background: #85888fe6;
+ box-shadow: rgba(36, 37, 44, 0.2) 0px 2px 2px 0px;
+ color: white;
+ padding: 4px 8px;
+ font-size: 0.625rem;
+ border-radius: 4px;
+ min-height: 24px;
+ top: 100%;
+ left: 50%;
+ width: 120px;
+ transform: translateX(-50%) translateY(5px);
+ text-align: center;
+ position: absolute;
+ z-index: 1;
+ font-family: var(--ig-font-family);
+ opacity: 0;
+ transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
+ }
+ &:hover > .tooltip--text {
+ opacity: 1;
+ transform: translateX(-50%) translateY(0);
+ visibility: visible;
+ transition-delay: 1s;
+ }
+}
diff --git a/src/views/home/home-view.ts b/src/views/home/home-view.ts
new file mode 100644
index 0000000..c78fd4c
--- /dev/null
+++ b/src/views/home/home-view.ts
@@ -0,0 +1,169 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement, state } from "lit/decorators.js";
+import { defineComponents, IgcChipComponent, IgcIconButtonComponent, IgcRippleComponent, registerIconFromText } from "igniteui-webcomponents";
+import { FILE_DOWNLOAD } from "../../assets/icons";
+import styles from "./home-view.scss?inline";
+
+import "../finance/finance-view";
+import "../hr-portal/hr-portal-view";
+import "../erp-hgrid/erp-hgrid-view";
+import "../fleet-management/fleet-management-view";
+import "../sales/sales-view";
+import { classMap } from "lit/directives/class-map.js";
+
+defineComponents(IgcIconButtonComponent, IgcChipComponent, IgcRippleComponent);
+
+interface TabInfo {
+ title: string;
+ theme: string;
+ content: string;
+ moreLink: string;
+ downloadLink: string;
+}
+
+@customElement("home-view")
+export default class HomeView extends LitElement {
+ constructor() {
+ super();
+ registerIconFromText("file_download", FILE_DOWNLOAD, "indigo_internal");
+ }
+
+ connectedCallback(): void {
+ super.connectedCallback();
+ window.addEventListener("vaadin-router-location-changed", this.updateCurrentPath);
+ }
+
+ disconnectedCallback(): void {
+ super.disconnectedCallback();
+ window.removeEventListener("vaadin-router-location-changed", this.updateCurrentPath);
+ }
+
+ public tabInfo = new Map([
+ [
+ "inventory",
+ {
+ title: "ERP/ Inventory",
+ theme: "Material Light",
+ content: "Tracking and managing quantity, location and details of products in stock.",
+ moreLink: "https://www.infragistics.com/products/ignite-ui-angular/angular/components/hierarchicalgrid/hierarchical-grid",
+ downloadLink: "https://www.infragistics.com/resources/sample-applications/erp-inventory-sample-app-web-components",
+ },
+ ],
+ [
+ "hr-portal",
+ {
+ title: "Org Chart/HR Portal",
+ theme: "Fluent Light",
+ content: "Displaying company's hierarchical structure and showing employees data.",
+ moreLink: "https://www.infragistics.com/products/ignite-ui-angular/angular/components/treegrid/tree-grid",
+ downloadLink: "https://www.infragistics.com/resources/sample-applications/org-charthr-portal-sample-app-web-components",
+ },
+ ],
+ [
+ "finance",
+ {
+ title: "Financial Portfolio",
+ theme: "Bootstrap Light",
+ content: "Asset tracking, profit and loss analysis, featuring interactive dynamic charts.",
+ moreLink: "https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid",
+ downloadLink: "https://www.infragistics.com/resources/sample-applications/financial-portfolio-sample-app-web-components",
+ },
+ ],
+ [
+ "sales",
+ {
+ title: "Sales Dashboard",
+ theme: "Indigo Light",
+ content: "For trend analysis, KPIs and viewing sales summaries by region, product, etc.",
+ moreLink: "https://www.infragistics.com/products/ignite-ui-angular/angular/components/pivotGrid/pivot-grid",
+ downloadLink: "https://www.infragistics.com/resources/sample-applications/sales-grid-sample-app-web-components",
+ },
+ ],
+ [
+ "fleet",
+ {
+ title: "Fleet Management",
+ theme: "Material Dark",
+ content: "A master-detail grid for managing vehicle acquisition, operations, and maintenance.",
+ moreLink: "https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/master-detail",
+ downloadLink: "https://www.infragistics.com/resources/sample-applications/fleet-management-sample-app-web-components",
+ },
+ ],
+ ]);
+
+ @state()
+ private routeName: string = "inventory";
+
+ private updateCurrentPath = (event: any) => {
+ const { route } = event.detail.location;
+ this.routeName = route.path;
+ };
+
+ private onLinkClick = (event: MouseEvent) => {
+ const targetHTML = event.currentTarget as HTMLAnchorElement;
+ window.open(targetHTML.href, "_blank")?.focus();
+
+ event.preventDefault();
+ event.stopPropagation();
+ };
+
+ private onDownloadClick = (event: MouseEvent, tabName: string) => {
+ const downloadLink = this.tabInfo.get(tabName)?.downloadLink;
+ window.open(downloadLink, "_blank")?.focus();
+
+ event.preventDefault();
+ event.stopPropagation();
+ };
+
+ private tabItemTemplate = (tabName: string) => {
+ return html`
+
+
+
+ ${this.tabInfo.get(tabName)?.content}
+
+
+
Learn more
+
+ this.onDownloadClick(e, tabName)}">
+
+
+
+ Download sample.
+
+
+
+ `;
+ };
+
+ render() {
+ return html`
+
+ `;
+ }
+ static styles = unsafeCSS(styles);
+}
diff --git a/src/views/hr-portal/hr-portal-view.scss b/src/views/hr-portal/hr-portal-view.scss
new file mode 100644
index 0000000..35db6f7
--- /dev/null
+++ b/src/views/hr-portal/hr-portal-view.scss
@@ -0,0 +1,13 @@
+:host {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+iframe {
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
diff --git a/src/views/hr-portal/hr-portal-view.ts b/src/views/hr-portal/hr-portal-view.ts
new file mode 100644
index 0000000..91bd39a
--- /dev/null
+++ b/src/views/hr-portal/hr-portal-view.ts
@@ -0,0 +1,24 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement } from "lit/decorators.js";
+import "../../../projects/hr-portal/src/hr-portal";
+import namedStyles from "./hr-portal-view.scss?inline";
+import sharedStyles from "../../shared/styles.scss?inline";
+
+@customElement("hr-portal-view")
+export default class HrPortalView extends LitElement {
+ constructor() {
+ super();
+ }
+ private onLoad = (event: any) => {
+ event.target.parentElement.classList.remove("loading");
+ };
+ render() {
+ const iframeSrc = `${import.meta.env.BASE_URL}hr-portal`;
+
+ return html`
+
+
`;
+ }
+
+ static styles = [unsafeCSS(namedStyles), unsafeCSS(sharedStyles)];
+}
diff --git a/src/views/sales/sales-view.scss b/src/views/sales/sales-view.scss
new file mode 100644
index 0000000..35db6f7
--- /dev/null
+++ b/src/views/sales/sales-view.scss
@@ -0,0 +1,13 @@
+:host {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+iframe {
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
diff --git a/src/views/sales/sales-view.ts b/src/views/sales/sales-view.ts
new file mode 100644
index 0000000..85f9efd
--- /dev/null
+++ b/src/views/sales/sales-view.ts
@@ -0,0 +1,25 @@
+import { LitElement, html, unsafeCSS } from "lit";
+import { customElement } from "lit/decorators.js";
+import "../../../projects/sales-grid/src/sales-grid";
+
+import namedStyles from "./sales-view.scss?inline";
+import sharedStyles from "../../shared/styles.scss?inline";
+
+@customElement("sales-view")
+export default class SalesView extends LitElement {
+ constructor() {
+ super();
+ }
+
+ private onLoad = (event: any) => {
+ event.target.parentElement.classList.remove("loading");
+ };
+ render() {
+ const iframeSrc = `${import.meta.env.BASE_URL}sales`;
+ return html`
+
+
`;
+ }
+
+ static styles = [unsafeCSS(namedStyles), unsafeCSS(sharedStyles)];
+}
diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..cdb96f3
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 0000000..ed497c8
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,62 @@
+import { defineConfig } from "vite";
+import { viteStaticCopy } from "vite-plugin-static-copy";
+export default defineConfig(() => {
+ return {
+ base: "/webcomponents-grid-examples/",
+ resolve: {
+ alias: {
+ "igniteui-theming": new URL("./node_modules/igniteui-theming", import.meta.url).pathname,
+ },
+ },
+ plugins: [
+ viteStaticCopy({
+ targets: [
+ {
+ src: "./web.config",
+ dest: "",
+ },
+ {
+ src: "./projects/finance-grid/public/*",
+ dest: "",
+ },
+ {
+ src: "./projects/hr-portal/public/*",
+ dest: "",
+ },
+ {
+ src: "./projects/erp-hgrid/public/*",
+ dest: "",
+ },
+ {
+ src: "./projects/fleet-management-grid/public/*",
+ dest: "",
+ },
+ {
+ src: "./projects/sales-grid/public/*",
+ dest: "",
+ },
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/bootstrap.css",
+ dest: "themes",
+ },
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/fluent.css",
+ dest: "themes",
+ },
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/material.css",
+ dest: "themes",
+ },
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/dark/material.css",
+ dest: "themes/dark",
+ },
+ {
+ src: "node_modules/igniteui-webcomponents-grids/grids/themes/light/indigo.css",
+ dest: "themes",
+ },
+ ],
+ }),
+ ],
+ };
+});
diff --git a/web.config b/web.config
new file mode 100644
index 0000000..dc5e6d0
--- /dev/null
+++ b/web.config
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+