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` +
+ Product +
+ `; + }; + + 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 + + + +
+ + +
+ ${ [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) } + +
+ `) } +
+
+ `) } +
+
+
+ + + + + + + + + + + + + +
+
+
+ Costs per Type + + Period + YTD + Last 3 Months + Last 6 Months + Last 12 Months + +
+
+ + +
+
+ +
+
+ Costs per Meter, per Quarter + + Period + YTD + 2023 + 2022 + 2021 + 2020 + +
+
+ + +
+
+ +
+
+ Fuel Costs per Month + + Period + YTD + Last 3 Months + Last 6 Months + Last 12 Months + +
+
+ + +
+
+
+
+ + + +
+
+

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` + ${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.vehicleDetails.make} ${this.vehicleDetails.model}
+ Mileage: ${this.vehicleDetails.mileage} +
+
+ + + + + + (this.closeLocationOverlay())}>Close + +
+
+
+ + +
+ + +
+ +
${this.driverDetails.name}
+
+
+ +
+
+ ${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` + + ${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` + //
+ // ${col.field} + //
+ // `; + } + } + + 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` + +
+
+ Sales Dashboard +
+ + + ${this.availableConfigs.get(this.selectedConfig)?.title} + + + + + Export to Excel + + + ${repeat(this.availableConfigs, (configInfo) => configInfo[0], (configInfo, _) => html` + ${this.availableConfigs.get(configInfo[0])?.title} + `)} + +
+
+
+
+ + +
+
+ +
+
+
+ `; + } + + 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)?.title} + ${this.tabInfo.get(tabName)?.theme} +
+
+ ${this.tabInfo.get(tabName)?.content} +
+
+ Learn more +
+ + + + + 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 @@ + + + + + + + + + + + + + + + + + + +