diff --git a/index.html b/index.html index ced1fcd..307fa31 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,6 @@ - Vite + Lit + TS diff --git a/package-lock.json b/package-lock.json index cea2dd7..66f00f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "0.0.0", "dependencies": { "@vaadin/router": "^2.0.0", + "igniteui-webcomponents": "^5.3.0-RC.1", + "igniteui-webcomponents-grids": "^5.3.0", "lit": "^3.2.1" }, "devDependencies": { @@ -441,12 +443,56 @@ "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", @@ -821,6 +867,75 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "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.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/lit": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", @@ -962,6 +1077,12 @@ "node": ">=0.10.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/type-fest": { "version": "4.37.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz", diff --git a/package.json b/package.json index ecf651c..2e6a7fc 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,8 @@ "preview": "vite preview" }, "dependencies": { + "igniteui-webcomponents": "^5.3.0-RC.1", + "igniteui-webcomponents-grids": "^5.3.0", "@vaadin/router": "^2.0.0", "lit": "^3.2.1" }, diff --git a/projects/erp-hgrid/index.html b/projects/erp-hgrid/index.html index a2ef58f..8ca4e01 100644 --- a/projects/erp-hgrid/index.html +++ b/projects/erp-hgrid/index.html @@ -2,7 +2,6 @@ - Vite + Lit + TS diff --git a/projects/erp-hgrid/src/erp-hierarchical-grid.ts b/projects/erp-hgrid/src/erp-hierarchical-grid.ts index 2f14576..f26f07f 100644 --- a/projects/erp-hgrid/src/erp-hierarchical-grid.ts +++ b/projects/erp-hgrid/src/erp-hierarchical-grid.ts @@ -27,9 +27,6 @@ export default class ErpHierarchicalGrid extends LitElement { ` } - private _onClick() { - this.count++ - } static styles = css` :host { diff --git a/projects/finance-grid/index.html b/projects/finance-grid/index.html index 0efbcb5..07b8ae3 100644 --- a/projects/finance-grid/index.html +++ b/projects/finance-grid/index.html @@ -1,14 +1,18 @@ - + - - Vite + Lit + TS + Finance + + + + + - + diff --git a/projects/finance-grid/package-lock.json b/projects/finance-grid/package-lock.json new file mode 100644 index 0000000..d79f5a9 --- /dev/null +++ b/projects/finance-grid/package-lock.json @@ -0,0 +1,1136 @@ +{ + "name": "finance-grid", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "finance-grid", + "version": "0.0.0", + "dependencies": { + "igniteui-webcomponents": "^5.3.0-RC.1", + "igniteui-webcomponents-grids": "^5.3.0", + "lit": "^3.2.1" + }, + "devDependencies": { + "typescript": "~5.7.2", + "vite": "^6.2.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/@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/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/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/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/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/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/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/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/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/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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.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/vite": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.1.tgz", + "integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==", + "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 + } + } + } + } +} diff --git a/projects/finance-grid/package.json b/projects/finance-grid/package.json index 15c2793..c6fac33 100644 --- a/projects/finance-grid/package.json +++ b/projects/finance-grid/package.json @@ -9,6 +9,8 @@ "preview": "vite preview" }, "dependencies": { + "igniteui-webcomponents": "^5.3.0-RC.1", + "igniteui-webcomponents-grids": "^5.3.0", "lit": "^3.2.1" }, "devDependencies": { 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.ts b/projects/finance-grid/src/finance-grid.ts index 4b94490..d46d427 100644 --- a/projects/finance-grid/src/finance-grid.ts +++ b/projects/finance-grid/src/finance-grid.ts @@ -1,102 +1,194 @@ -import { LitElement, css, html } from 'lit' -import { customElement, property } from 'lit/decorators.js' +import { LitElement, css, html } 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"; +defineComponents(IgcAvatarComponent, IgcIconComponent, IgcLinearProgressComponent, IgcInputComponent); +configureTheme("bootstrap"); -/** - * An example element. - * - * @slot - This element has a slot - * @csspart button - The button - */ -@customElement('app-finance-grid') +@customElement("app-finance-grid") export default class FinanceGrid extends LitElement { - /** - * Copy for the read the docs hint. - */ - @property() - docsHint = 'Click on the Vite and Lit logos to learn more' - - /** - * The number of times the button has been clicked. - */ - @property({ type: Number }) - count = 0 + 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); + } - render() { + disconnectedCallback() { + super.disconnectedCallback(); + clearInterval(this._timer); + } + @query("igc-grid") + private grid!: IgcGridComponent; + + @state() + private financeData = []; + + // @state() + // private isLoading = true; + private profitLossValueClasses = { + profitCondition: this.profitConditionHandler, + lossCondition: this.lossConditionHandler, + }; + private _timer!: ReturnType; + private readonly updateTimerInMs = 3000; + + private getPathToImage(val: string): string { + return `companies/${val.split(" ")[0]}.png`; + } + + private assetTemplate = (ctx: IgcCellTemplateContext) => { return html` -
Finance
- ` +
+ + ${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 profitConditionHandler(rowData: any, columnKey: string) { + return rowData[columnKey] >= 0; } - static styles = css` - :host { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; - } + private lossConditionHandler(rowData: any, columnKey: string) { + return rowData[columnKey] < 0; + } - .logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; - } - .logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); - } - .logo.lit:hover { - filter: drop-shadow(0 0 2em #325cffaa); + 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(); } + } - .card { - padding: 2em; - } + render() { + return html` + + + + Financial Portfolio + + + + + + + + + + + + + + + + + + + + `; + } - .read-the-docs { - color: #888; + static styles = css` + :host { + display: block; + height: 100%; + width: 100%; } - ::slotted(h1) { - font-size: 3.2em; - line-height: 1.1; + .profitCondition { + color: var(--ig-success-500); } - a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; - } - a:hover { - color: #535bf2; + .lossCondition { + color: var(--ig-error-500); } - button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; - } - button:hover { - border-color: #646cff; + .assets-container { + display: flex; + align-items: center; + gap: 0.5rem; + & igc-avatar { + --size: 24px; + } } - button:focus, - button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; + + .grid-sizing { + --ig-size: var(--ig-size-small); } - @media (prefers-color-scheme: light) { - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } + .progress-container { + display: grid; + grid-template-columns: 0.5fr 1fr; + width: 100%; + gap: 0.5rem; } - ` -} \ No newline at end of file + `; +} diff --git a/projects/finance-grid/src/index.css b/projects/finance-grid/src/index.css index e69de29..f35c658 100644 --- a/projects/finance-grid/src/index.css +++ b/projects/finance-grid/src/index.css @@ -0,0 +1,12 @@ +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/finance-grid/src/services/data.service.ts b/projects/finance-grid/src/services/data.service.ts new file mode 100644 index 0000000..3c604bb --- /dev/null +++ b/projects/finance-grid/src/services/data.service.ts @@ -0,0 +1,98 @@ +const DATA_URL = "https://staging.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/fleet-management-grid/index.html b/projects/fleet-management-grid/index.html index 6968e6a..1d44d70 100644 --- a/projects/fleet-management-grid/index.html +++ b/projects/fleet-management-grid/index.html @@ -2,7 +2,6 @@ - Vite + Lit + TS diff --git a/projects/fleet-management-grid/src/fleet-management-grid.ts b/projects/fleet-management-grid/src/fleet-management-grid.ts index 2389c56..21f0ac9 100644 --- a/projects/fleet-management-grid/src/fleet-management-grid.ts +++ b/projects/fleet-management-grid/src/fleet-management-grid.ts @@ -1,8 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; -import litLogo from "./assets/lit.svg"; -import viteLogo from "/vite.svg"; - +import { customElement } from "lit/decorators.js"; @customElement("app-fleet-management") export class FleetManagementGrid extends LitElement { render() { @@ -81,10 +78,4 @@ export class FleetManagementGrid extends LitElement { } } `; -} - -declare global { - interface HTMLElementTagNameMap { - "my-element": MyElement; - } -} +} \ No newline at end of file diff --git a/projects/hr-portal/index.html b/projects/hr-portal/index.html index 752cfed..50157cc 100644 --- a/projects/hr-portal/index.html +++ b/projects/hr-portal/index.html @@ -2,7 +2,6 @@ - Vite + Lit + TS diff --git a/projects/hr-portal/src/hr-portal.ts b/projects/hr-portal/src/hr-portal.ts index 59bf5ab..0750c75 100644 --- a/projects/hr-portal/src/hr-portal.ts +++ b/projects/hr-portal/src/hr-portal.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; @customElement("app-hr-portal") export default class HrPortal extends LitElement { diff --git a/projects/sales-grid/index.html b/projects/sales-grid/index.html index 280f451..abd58d4 100644 --- a/projects/sales-grid/index.html +++ b/projects/sales-grid/index.html @@ -1,8 +1,7 @@ - + - Vite + Lit + TS diff --git a/projects/sales-grid/src/sales-grid.ts b/projects/sales-grid/src/sales-grid.ts index 391c13f..bcf86b2 100644 --- a/projects/sales-grid/src/sales-grid.ts +++ b/projects/sales-grid/src/sales-grid.ts @@ -1,16 +1,12 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; - +import { customElement } from "lit/decorators.js"; @customElement("app-sales-grid") export class SalesGrid extends LitElement { render() { - return html`
- Sales grid -
`; + return html`
Sales grid
`; } - static styles = css` :host { max-width: 1280px; @@ -83,9 +79,3 @@ export class SalesGrid extends LitElement { } `; } - -declare global { - interface HTMLElementTagNameMap { - "my-element": MyElement; - } -} diff --git a/src/app.ts b/src/app.ts index 9cf468e..288e1c2 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import { Router } from "@vaadin/router"; import { routes } from "./app-routing"; diff --git a/src/views/erp-hgrid/erp-hgrid-view.ts b/src/views/erp-hgrid/erp-hgrid-view.ts index acc6859..dede820 100644 --- a/src/views/erp-hgrid/erp-hgrid-view.ts +++ b/src/views/erp-hgrid/erp-hgrid-view.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import "../../../projects/erp-hgrid/src/erp-hierarchical-grid"; @customElement("erp-hgrid-view") diff --git a/src/views/finance/finance-view.ts b/src/views/finance/finance-view.ts index bd0677b..57581bf 100644 --- a/src/views/finance/finance-view.ts +++ b/src/views/finance/finance-view.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import "../../../projects/finance-grid/src/finance-grid"; @customElement("finance-view") diff --git a/src/views/fleet-management/fleet-management-view.ts b/src/views/fleet-management/fleet-management-view.ts index 3853591..43c5773 100644 --- a/src/views/fleet-management/fleet-management-view.ts +++ b/src/views/fleet-management/fleet-management-view.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import "../../../projects/fleet-management-grid/src/fleet-management-grid"; @customElement("fleet-management-view") diff --git a/src/views/home/home-view.ts b/src/views/home/home-view.ts index b9c4613..c30a618 100644 --- a/src/views/home/home-view.ts +++ b/src/views/home/home-view.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import "../finance/finance-view"; import "../hr-portal/hr-portal-view"; diff --git a/src/views/hr-portal/hr-portal-view.ts b/src/views/hr-portal/hr-portal-view.ts index 7c0f402..50e1372 100644 --- a/src/views/hr-portal/hr-portal-view.ts +++ b/src/views/hr-portal/hr-portal-view.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import "../../../projects/hr-portal/src/hr-portal"; @customElement("hr-portal-view") diff --git a/src/views/sales/sales-view.ts b/src/views/sales/sales-view.ts index 32a81d6..575895d 100644 --- a/src/views/sales/sales-view.ts +++ b/src/views/sales/sales-view.ts @@ -1,5 +1,5 @@ import { LitElement, css, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement } from "lit/decorators.js"; import "../../../projects/sales-grid/src/sales-grid"; @customElement("sales-view")