From a0ba7555d794ba556b8aa96b508a545d0c8b0719 Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 02:42:57 -0600 Subject: [PATCH 1/8] Running `ng update @angular/cli` --- package-lock.json | 431 ++++------------------------------------------ package.json | 6 +- 2 files changed, 40 insertions(+), 397 deletions(-) diff --git a/package-lock.json b/package-lock.json index 28b9249..3fb1a05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "@proangular/pro-table", - "version": "20.4.1", + "version": "20.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@proangular/pro-table", - "version": "20.4.1", + "version": "20.5.0", "hasInstallScript": true, "license": "MIT", "devDependencies": { - "@angular/build": "^20.3.3", - "@angular/cli": "^20.3.3", + "@angular/build": "^20.3.10", + "@angular/cli": "^20.3.10", "@angular/compiler": "20.3.2", "@angular/compiler-cli": "^20.3.2", "@angular/platform-browser": "20.3.2", @@ -287,13 +287,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.2003.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.3.tgz", - "integrity": "sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==", + "version": "0.2003.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.10.tgz", + "integrity": "sha512-2SWetxJzS8gRX6OKQstkWx37VRvZVgcEBDLsDSaeTjpnwh81A+niZQjAVRdwL0NEt1Wixk/RxfeUuCmdyyHvhQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.3", + "@angular-devkit/core": "20.3.10", "rxjs": "7.8.2" }, "engines": { @@ -303,9 +303,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "20.3.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.3.tgz", - "integrity": "sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==", + "version": "20.3.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.10.tgz", + "integrity": "sha512-COOT2eVebDwHhwENk12VR6m0wjL8D7p0dncEHF15zaBt1IXEnVhGESjSrs5klnPnt5T55qCBKyCTaeK7i/cS8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -331,13 +331,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "20.3.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.3.tgz", - "integrity": "sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==", + "version": "20.3.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.10.tgz", + "integrity": "sha512-2N2WF9lj+kr3uCG4+vFadYCL5hAT4dxMgzwScSdOqSd0O+GZD0CzKbDzlfvWIWC/ZealC5Sh4dFEQaRfmy72xA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.3", + "@angular-devkit/core": "20.3.10", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", "ora": "8.2.0", @@ -471,14 +471,14 @@ } }, "node_modules/@angular/build": { - "version": "20.3.3", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.3.tgz", - "integrity": "sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==", + "version": "20.3.10", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.10.tgz", + "integrity": "sha512-nQrj1nMNZygYDilThc7hPrD6/NIWF/BOSgMfE4VkXQp8d0QronP3HFJ/h77MeoughMRFRhix0pqQSlXJQ2SGTQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2003.3", + "@angular-devkit/architect": "0.2003.10", "@babel/core": "7.28.3", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", @@ -496,12 +496,12 @@ "parse5-html-rewriting-stream": "8.0.0", "picomatch": "4.0.3", "piscina": "5.1.3", - "rolldown": "1.0.0-beta.38", + "rollup": "4.52.3", "sass": "1.90.0", "semver": "7.7.2", "source-map-support": "0.5.21", "tinyglobby": "0.2.14", - "vite": "7.1.5", + "vite": "7.1.11", "watchpack": "2.4.4" }, "engines": { @@ -520,7 +520,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-server": "^20.0.0", "@angular/service-worker": "^20.0.0", - "@angular/ssr": "^20.3.3", + "@angular/ssr": "^20.3.10", "karma": "^6.4.0", "less": "^4.2.0", "ng-packagr": "^20.0.0", @@ -586,19 +586,19 @@ } }, "node_modules/@angular/cli": { - "version": "20.3.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.3.tgz", - "integrity": "sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==", + "version": "20.3.10", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.10.tgz", + "integrity": "sha512-CQzXScurBXSuMMn0jf6UYDItdggaM3bHYERKL4cUG1z5JqSozVFin1+TB1EjWYkddwdgC10R5xQurdMb+ahRNw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2003.3", - "@angular-devkit/core": "20.3.3", - "@angular-devkit/schematics": "20.3.3", + "@angular-devkit/architect": "0.2003.10", + "@angular-devkit/core": "20.3.10", + "@angular-devkit/schematics": "20.3.10", "@inquirer/prompts": "7.8.2", "@listr2/prompt-adapter-inquirer": "3.0.1", "@modelcontextprotocol/sdk": "1.17.3", - "@schematics/angular": "20.3.3", + "@schematics/angular": "20.3.10", "@yarnpkg/lockfile": "1.1.0", "algoliasearch": "5.35.0", "ini": "5.0.0", @@ -1124,40 +1124,6 @@ "node": ">=0.1.90" } }, - "node_modules/@emnapi/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", - "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@es-joy/jsdoccomment": { "version": "0.56.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.56.0.tgz", @@ -2958,19 +2924,6 @@ "node": ">= 10" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.5.tgz", - "integrity": "sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.5.0", - "@emnapi/runtime": "^1.5.0", - "@tybys/wasm-util": "^0.10.1" - } - }, "node_modules/@ngneat/until-destroy": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", @@ -3293,16 +3246,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@oxc-project/types": { - "version": "0.89.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.89.0.tgz", - "integrity": "sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -3646,251 +3589,6 @@ "node": ">=14" } }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.38.tgz", - "integrity": "sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.38.tgz", - "integrity": "sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.38.tgz", - "integrity": "sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.38.tgz", - "integrity": "sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.38.tgz", - "integrity": "sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.38.tgz", - "integrity": "sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.38.tgz", - "integrity": "sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.38.tgz", - "integrity": "sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.38.tgz", - "integrity": "sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.38.tgz", - "integrity": "sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.38.tgz", - "integrity": "sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^1.0.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.38.tgz", - "integrity": "sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-ia32-msvc": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.38.tgz", - "integrity": "sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.38.tgz", - "integrity": "sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz", - "integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==", - "dev": true, - "license": "MIT" - }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", @@ -4271,14 +3969,14 @@ "license": "MIT" }, "node_modules/@schematics/angular": { - "version": "20.3.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.3.tgz", - "integrity": "sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==", + "version": "20.3.10", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.10.tgz", + "integrity": "sha512-F9ntS2CElpoWlENf4b03nwdTcN9Ri0Nb4SAE/pfRw3In09h2UHxYyf1ex9jqQt70xltDg4wvyuc3mMs+JlSx9A==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.3", - "@angular-devkit/schematics": "20.3.3", + "@angular-devkit/core": "20.3.10", + "@angular-devkit/schematics": "20.3.10", "jsonc-parser": "3.3.1" }, "engines": { @@ -4433,17 +4131,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/cors": { "version": "2.8.19", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", @@ -4950,16 +4637,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", - "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -11743,40 +11420,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rolldown": { - "version": "1.0.0-beta.38", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.38.tgz", - "integrity": "sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.89.0", - "@rolldown/pluginutils": "1.0.0-beta.38", - "ansis": "^4.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-beta.38", - "@rolldown/binding-darwin-arm64": "1.0.0-beta.38", - "@rolldown/binding-darwin-x64": "1.0.0-beta.38", - "@rolldown/binding-freebsd-x64": "1.0.0-beta.38", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.38", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.38", - "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.38", - "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.38", - "@rolldown/binding-linux-x64-musl": "1.0.0-beta.38", - "@rolldown/binding-openharmony-arm64": "1.0.0-beta.38", - "@rolldown/binding-wasm32-wasi": "1.0.0-beta.38", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.38", - "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.38", - "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.38" - } - }, "node_modules/rollup": { "version": "4.52.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz", @@ -13391,9 +13034,9 @@ } }, "node_modules/vite": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz", - "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", + "version": "7.1.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz", + "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index dd74ede..e3c070f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@proangular/pro-table", - "version": "20.4.1", + "version": "20.5.0", "description": "A rich, dynamic, and versatile table component based on Angular Material.", "author": "Pro Angular ", "homepage": "https://www.proangular.com", @@ -38,8 +38,8 @@ "zone.js": ">=0.15 <0.16" }, "devDependencies": { - "@angular/build": "^20.3.3", - "@angular/cli": "^20.3.3", + "@angular/build": "^20.3.10", + "@angular/cli": "^20.3.10", "@angular/compiler": "20.3.2", "@angular/compiler-cli": "^20.3.2", "@angular/platform-browser": "20.3.2", From 8cfb02bcf3d03e97bdda7765d19ec3a353920c32 Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 02:44:29 -0600 Subject: [PATCH 2/8] Running `ng update @angular/core` --- package-lock.json | 114 ++++++++++++++++++++-------------------------- package.json | 21 ++++----- 2 files changed, 59 insertions(+), 76 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3fb1a05..b1bc4e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,11 +12,11 @@ "devDependencies": { "@angular/build": "^20.3.10", "@angular/cli": "^20.3.10", - "@angular/compiler": "20.3.2", - "@angular/compiler-cli": "^20.3.2", - "@angular/platform-browser": "20.3.2", - "@angular/platform-browser-dynamic": "20.3.2", - "@angular/router": "^20.3.2", + "@angular/compiler": "20.3.12", + "@angular/compiler-cli": "^20.3.12", + "@angular/platform-browser": "20.3.12", + "@angular/platform-browser-dynamic": "20.3.12", + "@angular/router": "^20.3.12", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "@types/jasmine": "~5.1.8", "@types/luxon": "^3.4.2", @@ -50,11 +50,11 @@ "url": "https://github.com/sponsors/proangular" }, "peerDependencies": { - "@angular/animations": ">=20 <21", + "@angular/animations": "20.3.12", "@angular/cdk": ">=20 <21", - "@angular/common": ">=20 <21", - "@angular/core": ">=20 <21", - "@angular/forms": ">=20 <21", + "@angular/common": "20.3.12", + "@angular/core": "20.3.12", + "@angular/forms": "20.3.12", "@angular/material": ">=20 <21", "@angular/material-luxon-adapter": ">=20 <21", "@ngneat/until-destroy": ">=10 <11", @@ -454,22 +454,6 @@ "typescript": "*" } }, - "node_modules/@angular/animations": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.2.tgz", - "integrity": "sha512-za7onSElEUbaI9iS8j7nKf8FjyvVng6wFsb2ZuHxr71dMgnYkqPfMu0KMP+mkZ3yUVc//7SllXcSkGBHShyCcw==", - "license": "MIT", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/core": "20.3.2" - } - }, "node_modules/@angular/build": { "version": "20.3.10", "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.10.tgz", @@ -621,9 +605,9 @@ } }, "node_modules/@angular/common": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.2.tgz", - "integrity": "sha512-5V9AzLhCA1dNhF+mvihmdHoZHbEhIb1jNYRA1/JMheR+G7NR8Mznu6RmWaKSWZ4AJeSJN8rizWN2wpVPWTKjSQ==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.12.tgz", + "integrity": "sha512-rFcDfe67ffrb435C6t2lc27WGbizeOcgce30tUhH0iezwEvU+kHHWezXXX6Ylx3TFgqGkhcxL0fliuFYrpM1Vw==", "license": "MIT", "peer": true, "dependencies": { @@ -633,14 +617,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "20.3.2", + "@angular/core": "20.3.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.2.tgz", - "integrity": "sha512-5fSzkPmRomZ9H43c82FJWLwdOi7MICMimP1y1oYJZcUh3jYRhXUrQvD0jifdRVkkgKNjaZYlMr0NkrYQFgFong==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.12.tgz", + "integrity": "sha512-bGESKz97nWiEQ/sydTq/Lzv3zlLvDb8t0msLG5Xti7Ch1EdLddXS8d2D/zFsjiGbAUKVsT6RgPCLHYoi4ocbhA==", "devOptional": true, "license": "MIT", "dependencies": { @@ -651,9 +635,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.2.tgz", - "integrity": "sha512-rLox2THiALVQqYGUaxZ6YD8qUoXIOGTw3s0tim9/U65GuXGRtYgG0ZQWYp3yjEBes0Ksx2/15eFPp1Ol4FdEKQ==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.12.tgz", + "integrity": "sha512-3SJkexqsydYjIs0iLiJr5AdwkvumpzvjJM6s76iaxXHkRll5k/vM0wqkXLlSIwieBrecO9D4J73lDLWDevXl5A==", "dev": true, "license": "MIT", "dependencies": { @@ -674,7 +658,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.2", + "@angular/compiler": "20.3.12", "typescript": ">=5.8 <6.0" }, "peerDependenciesMeta": { @@ -684,9 +668,9 @@ } }, "node_modules/@angular/core": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.2.tgz", - "integrity": "sha512-88uPgs5LjtnywnQaZE2ShBb1wa8IuD6jWs4nc4feo32QdBc55tjebTBFJSHbi3mUVAp0eS4wI6ITo0YIb01H4g==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.12.tgz", + "integrity": "sha512-K7vibMr55a7+EsuDhkg4Pk+ELuMm12olllwqL/CiQUcHXZ9Zgc4KYGTUuxWB69qJCG90gdSZS7tm5Dx0wDcyjg==", "license": "MIT", "peer": true, "dependencies": { @@ -696,7 +680,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.2", + "@angular/compiler": "20.3.12", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0" }, @@ -710,9 +694,9 @@ } }, "node_modules/@angular/forms": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.2.tgz", - "integrity": "sha512-ECIbtwc7n9fPbiZXZVaoZpSiOksgcNbZ27oUN9BT7EmoXRzBw6yDL2UX6Ig7pEKhQGyBkKB+TMerRwTDVkkCWg==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.12.tgz", + "integrity": "sha512-O0Jy8ScaN3qVipDfR4s0SIxGrz/+MbCdmR05ZYVWf1W5P3dvETKt9WNjX9fYYV47GdgSveyFjuCR2NvWlv94zA==", "license": "MIT", "peer": true, "dependencies": { @@ -722,9 +706,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.2", - "@angular/core": "20.3.2", - "@angular/platform-browser": "20.3.2", + "@angular/common": "20.3.12", + "@angular/core": "20.3.12", + "@angular/platform-browser": "20.3.12", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -762,9 +746,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.2.tgz", - "integrity": "sha512-d9XcT2UuWZCc0UOtkCcPEnMcOFKNczahamT/Izg3H9jLS3IcT6l0ry23d/Xf0DRwhLYQdOZiG7l8HMZ1sWPMOg==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.12.tgz", + "integrity": "sha512-14KQsXZyaQhbRwFz1W58CtbXQc9L+mfuHBgwQjQo99422Yk0ye5WVMb6DHH7dH671qFVqL0XL7zdOPBebaAnJQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -773,9 +757,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/animations": "20.3.2", - "@angular/common": "20.3.2", - "@angular/core": "20.3.2" + "@angular/animations": "20.3.12", + "@angular/common": "20.3.12", + "@angular/core": "20.3.12" }, "peerDependenciesMeta": { "@angular/animations": { @@ -784,9 +768,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.2.tgz", - "integrity": "sha512-ehoV67Vxr3ZE8BJ3g7Q4ZLHo3qJVoDUDz/4UeCqmDeOnKxcdD53HTA/pgOO4QhKStUFbzgU19OQD4e6fkP8YoQ==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.12.tgz", + "integrity": "sha512-VviTUCpcbwErQjWd+EZklQf1Fw1FtXui6ey4rEb9g9mCEJ/o08LkM7mWV5IoE6QNCfbgkfgNjEJSJvWe409Mow==", "dev": true, "license": "MIT", "dependencies": { @@ -796,16 +780,16 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.2", - "@angular/compiler": "20.3.2", - "@angular/core": "20.3.2", - "@angular/platform-browser": "20.3.2" + "@angular/common": "20.3.12", + "@angular/compiler": "20.3.12", + "@angular/core": "20.3.12", + "@angular/platform-browser": "20.3.12" } }, "node_modules/@angular/router": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.2.tgz", - "integrity": "sha512-+Crx6QpK00juoNU3A1vbVf4DQ7fduLe3DUdAob6a9Uj+IoWj2Ijd8zUWF8E0cfNNFotJ4Gost0lJORDvqKcC7A==", + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.12.tgz", + "integrity": "sha512-hUipb9JI/Euy3bdlhzkcWlw3cTyssPTVTDwSvyGxWO4i+UKATQYmxh8EDOrDYzFp6Aexiy0Hff/H8umdsn6ZdA==", "dev": true, "license": "MIT", "dependencies": { @@ -815,9 +799,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.2", - "@angular/core": "20.3.2", - "@angular/platform-browser": "20.3.2", + "@angular/common": "20.3.12", + "@angular/core": "20.3.12", + "@angular/platform-browser": "20.3.12", "rxjs": "^6.5.3 || ^7.4.0" } }, diff --git a/package.json b/package.json index e3c070f..0d06d16 100644 --- a/package.json +++ b/package.json @@ -17,19 +17,18 @@ "postinstall": "is-ci || husky install", "prettier": "prettier --write . --log-level silent", "prettier:check": "prettier --check .", - "start": "ng serve", - "start:open": "ng serve --open", + "start": "ng serve --open", "test": "ng test", "update": "ncu -u", "update:check": "ncu", "watch": "ng build --watch --configuration development" }, "peerDependencies": { - "@angular/animations": ">=20 <21", + "@angular/animations": "20.3.12", "@angular/cdk": ">=20 <21", - "@angular/common": ">=20 <21", - "@angular/core": ">=20 <21", - "@angular/forms": ">=20 <21", + "@angular/common": "20.3.12", + "@angular/core": "20.3.12", + "@angular/forms": "20.3.12", "@angular/material": ">=20 <21", "@angular/material-luxon-adapter": ">=20 <21", "@ngneat/until-destroy": ">=10 <11", @@ -40,11 +39,11 @@ "devDependencies": { "@angular/build": "^20.3.10", "@angular/cli": "^20.3.10", - "@angular/compiler": "20.3.2", - "@angular/compiler-cli": "^20.3.2", - "@angular/platform-browser": "20.3.2", - "@angular/platform-browser-dynamic": "20.3.2", - "@angular/router": "^20.3.2", + "@angular/compiler": "20.3.12", + "@angular/compiler-cli": "^20.3.12", + "@angular/platform-browser": "20.3.12", + "@angular/platform-browser-dynamic": "20.3.12", + "@angular/router": "^20.3.12", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "@types/jasmine": "~5.1.8", "@types/luxon": "^3.4.2", From eb8688a7a9918dbf3db9c1f3c8cb45c8a4ae8f42 Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 02:45:15 -0600 Subject: [PATCH 3/8] Running `ng update @angular/material` --- package-lock.json | 44 ++++++++++++++++++++++++++++++-------------- package.json | 6 +++--- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index b1bc4e6..d505d3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,12 +51,12 @@ }, "peerDependencies": { "@angular/animations": "20.3.12", - "@angular/cdk": ">=20 <21", + "@angular/cdk": "20.2.13", "@angular/common": "20.3.12", "@angular/core": "20.3.12", "@angular/forms": "20.3.12", - "@angular/material": ">=20 <21", - "@angular/material-luxon-adapter": ">=20 <21", + "@angular/material": "20.2.13", + "@angular/material-luxon-adapter": "20.2.13", "@ngneat/until-destroy": ">=10 <11", "luxon": ">=3 <4", "rxjs": ">=7.8 <8", @@ -454,6 +454,22 @@ "typescript": "*" } }, + "node_modules/@angular/animations": { + "version": "20.3.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.12.tgz", + "integrity": "sha512-tkzruF0pbcOrC2lwsPKjkp5btazs6vcX4At7kyVFjjuPbgI6RNG+MoFXHpN9ypenscYtTAhDcPSmjBnzoDaXhQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/core": "20.3.12" + } + }, "node_modules/@angular/build": { "version": "20.3.10", "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.10.tgz", @@ -554,9 +570,9 @@ } }, "node_modules/@angular/cdk": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.7.tgz", - "integrity": "sha512-QTqxPJSMXyjaswtpUrziwdoKRhqT2P9/Ascwzjg8T/SofV1850pc3YmonoOFrurYrmd4plZzWdr7raGcBWIh/Q==", + "version": "20.2.13", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.13.tgz", + "integrity": "sha512-h1jTkCmJ/rEQQMkxgKFMCBOrMfjZEnppgdekNmSTerwdVp4vdosTDTzFH/kwiOGFeRClffmvqQ2XLG8mQOKOtA==", "license": "MIT", "peer": true, "dependencies": { @@ -713,16 +729,16 @@ } }, "node_modules/@angular/material": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.7.tgz", - "integrity": "sha512-VXsP5qkQQ3sCGkSHsgDku/OVlunGsqssOM057foOKJuajECsI3ZpGuLJ13nvLm9Z147UZOZfP463ixZIjd4XuQ==", + "version": "20.2.13", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.13.tgz", + "integrity": "sha512-9pjp2mULOxojYzOO7qdqt/gSVLrpYBwsIM3K0fxp+mNEcJgNjIxvmRKx46LY9+v0yrPY9puoQvP/T2C+o1+xsw==", "license": "MIT", "peer": true, "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "20.2.7", + "@angular/cdk": "20.2.13", "@angular/common": "^20.0.0 || ^21.0.0", "@angular/core": "^20.0.0 || ^21.0.0", "@angular/forms": "^20.0.0 || ^21.0.0", @@ -731,9 +747,9 @@ } }, "node_modules/@angular/material-luxon-adapter": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/@angular/material-luxon-adapter/-/material-luxon-adapter-20.2.7.tgz", - "integrity": "sha512-6L6NU1q7OWzxQ2uLQtNAGHOp4M1p/lAB2UKc5Z/F3myWx6njJMgAtxuuq7xvaCY2TyDUP7n5bFAPmGB9fmiyZQ==", + "version": "20.2.13", + "resolved": "https://registry.npmjs.org/@angular/material-luxon-adapter/-/material-luxon-adapter-20.2.13.tgz", + "integrity": "sha512-z/3BQHEfOnfN9sudcjvR/OZwWiwyYv0FfHmUFP6T1MMuydpEdY/rUcQzyyC/wCHOtM6oUrfURdkGkWNwc6T9zw==", "license": "MIT", "peer": true, "dependencies": { @@ -741,7 +757,7 @@ }, "peerDependencies": { "@angular/core": "^20.0.0 || ^21.0.0", - "@angular/material": "20.2.7", + "@angular/material": "20.2.13", "luxon": "^3.0.0" } }, diff --git a/package.json b/package.json index 0d06d16..50b93a6 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,12 @@ }, "peerDependencies": { "@angular/animations": "20.3.12", - "@angular/cdk": ">=20 <21", + "@angular/cdk": "20.2.13", "@angular/common": "20.3.12", "@angular/core": "20.3.12", "@angular/forms": "20.3.12", - "@angular/material": ">=20 <21", - "@angular/material-luxon-adapter": ">=20 <21", + "@angular/material": "20.2.13", + "@angular/material-luxon-adapter": "20.2.13", "@ngneat/until-destroy": ">=10 <11", "luxon": ">=3 <4", "rxjs": ">=7.8 <8", From f116649d01bce43f19a62233ee30040d366f3060 Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 02:45:45 -0600 Subject: [PATCH 4/8] Running `ng update angular-eslint` --- package-lock.json | 93 +++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 54 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index d505d3f..c25b5cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@types/jasmine": "~5.1.8", "@types/luxon": "^3.4.2", "@types/node": "^24.2.1", - "angular-eslint": "^20.1.1", + "angular-eslint": "^20.6.0", "eslint": "^9.33.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", @@ -350,9 +350,9 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-20.3.0.tgz", - "integrity": "sha512-3XpWLdh+/K4+r0ChkKW00SXWyBA7ShMpE+Pt1XUmIu4srJgGRnt8e+kC4Syi+s2t5QS7PjlwRaelB1KfSMXZ5A==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-20.6.0.tgz", + "integrity": "sha512-bEvQxjnxXiajcPoSnFPRmc9MYLtultZX7Z/psqj6jiGVujgs5UObs91JcmT4QY56ZkdZjETw9RhztLmRTuLB3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -365,21 +365,21 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-20.3.0.tgz", - "integrity": "sha512-QwuNnmRNr/uNj89TxknPbGcs5snX1w7RoJJPNAsfb2QGcHzUTQovS8hqm9kaDZdpUJDPP7jt7B6F0+EjrPAXRA==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-20.6.0.tgz", + "integrity": "sha512-axeU33lBOcfQ/kcpBc/70vR69PFX9kqgUtroENK0lq6dBeRgi6LJVbBOAHRtR2Xfxd9Lv4YbqWuJ0oQ5BwSTGQ==", "dev": true, "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-20.3.0.tgz", - "integrity": "sha512-7ghzGTiExrgTetDQ6IPP5uXSa94Xhtzp2VHCIa58EcUb7oMv06HWZ1Uss3xgFmACsLpN+vayKJIdFiboqaGVRA==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-20.6.0.tgz", + "integrity": "sha512-hvFtluNRjMqlkwxYGMO1RFgJ5N5/InFZZSHIOput+XXVXYwPrNjbyMY29/ndynpvNktcVq1UPpjv5JAucp0GlA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "20.3.0", - "@angular-eslint/utils": "20.3.0", + "@angular-eslint/bundled-angular-compiler": "20.6.0", + "@angular-eslint/utils": "20.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { @@ -389,19 +389,19 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-20.3.0.tgz", - "integrity": "sha512-WMJDJfybOLCiN4QrOyrLl+Zt5F+A/xoDYMWTdn+LgACheLs2tguVQiwf+oCgHnHGcsTsulPYlRHldKBGZMgs4w==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-20.6.0.tgz", + "integrity": "sha512-HoV0QeZFP63vUyD+uBYdqGi95xNJ64Wsb9vG0/auY5sqHsed8tbmFZgNmr8/ho1AHMyQ2HhH7eLIsV2glftyEg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "20.3.0", - "@angular-eslint/utils": "20.3.0", + "@angular-eslint/bundled-angular-compiler": "20.6.0", + "@angular-eslint/utils": "20.6.0", "aria-query": "5.3.2", "axobject-query": "4.1.0" }, "peerDependencies": { - "@angular-eslint/template-parser": "20.3.0", + "@angular-eslint/template-parser": "20.6.0", "@typescript-eslint/types": "^7.11.0 || ^8.0.0", "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", @@ -409,29 +409,42 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-20.3.0.tgz", - "integrity": "sha512-4n92tHKIJm1PP+FjhnmO7AMpvKdRIoF+YgF38oUU7aMJqfZ3RXIhazMMxw2u3VU1MisKH766KSll++c4LgarVA==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-20.6.0.tgz", + "integrity": "sha512-bZ3FFyfEUqnLkNj4OzU+0LQH4NiHtWbleuoaaTeIXAG9AHZP9H5PPD9loR3CUaLoHvwY22zWBkBOEuBBDkBAtw==", "dev": true, "license": "MIT", "dependencies": { "@angular-devkit/core": ">= 20.0.0 < 21.0.0", "@angular-devkit/schematics": ">= 20.0.0 < 21.0.0", - "@angular-eslint/eslint-plugin": "20.3.0", - "@angular-eslint/eslint-plugin-template": "20.3.0", + "@angular-eslint/eslint-plugin": "20.6.0", + "@angular-eslint/eslint-plugin-template": "20.6.0", "ignore": "7.0.5", - "semver": "7.7.2", + "semver": "7.7.3", "strip-json-comments": "3.1.1" } }, + "node_modules/@angular-eslint/schematics/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular-eslint/template-parser": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-20.3.0.tgz", - "integrity": "sha512-gB564h/kZ7siWvgHDETU++sk5e25qFfVaizLaa6KoBEYFP6dOCiedz15LTcA0TsXp0rGu6Z6zkl291iSM1qzDA==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-20.6.0.tgz", + "integrity": "sha512-dDsABCf8qoFEUmSQa2F0NBZtkxT+I4GQxKcYSpsFZdgv6zrE46lpJSuRgK8OKOq1jqMmbIEXp2h0FeHyJS/qmg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "20.3.0", + "@angular-eslint/bundled-angular-compiler": "20.6.0", "eslint-scope": "^8.0.2" }, "peerDependencies": { @@ -440,13 +453,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-20.3.0.tgz", - "integrity": "sha512-7XOQeNXgyhznDwoP1TwPrCMq/uXKJHQgCVPFREkJGKbNf/jzNldB7iV1eqpBzUQIPEQFgfcDG67dexpMAq3N4g==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-20.6.0.tgz", + "integrity": "sha512-usjCCjbdtqy4p8I3BMPn6LrXECFLCohBa75h59PK0kV/TEb8OlnIWIWTVtZAMw/MgohtExl69GkSNmL3ElWbUQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "20.3.0" + "@angular-eslint/bundled-angular-compiler": "20.6.0" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -4560,19 +4573,19 @@ } }, "node_modules/angular-eslint": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/angular-eslint/-/angular-eslint-20.3.0.tgz", - "integrity": "sha512-MvmeFuPmJHRmfL1A9IMtZJEYaU6sF++saJgpsU7aOD6YDZCGJ0J6HxlJ/q7YRbWYuI1q+gF/qALxdnuwHYadSg==", + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/angular-eslint/-/angular-eslint-20.6.0.tgz", + "integrity": "sha512-SOQLhUjL5ulikHIFRrDA41euGsv9z6tYhYsmb6DYRLSaSglAiyiH/wb8sbW+COzsztBkSLb6gDVBMW+kzQ+yjw==", "dev": true, "license": "MIT", "dependencies": { "@angular-devkit/core": ">= 20.0.0 < 21.0.0", "@angular-devkit/schematics": ">= 20.0.0 < 21.0.0", - "@angular-eslint/builder": "20.3.0", - "@angular-eslint/eslint-plugin": "20.3.0", - "@angular-eslint/eslint-plugin-template": "20.3.0", - "@angular-eslint/schematics": "20.3.0", - "@angular-eslint/template-parser": "20.3.0", + "@angular-eslint/builder": "20.6.0", + "@angular-eslint/eslint-plugin": "20.6.0", + "@angular-eslint/eslint-plugin-template": "20.6.0", + "@angular-eslint/schematics": "20.6.0", + "@angular-eslint/template-parser": "20.6.0", "@typescript-eslint/types": "^8.0.0", "@typescript-eslint/utils": "^8.0.0" }, diff --git a/package.json b/package.json index 50b93a6..bf6c5ba 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@types/jasmine": "~5.1.8", "@types/luxon": "^3.4.2", "@types/node": "^24.2.1", - "angular-eslint": "^20.1.1", + "angular-eslint": "^20.6.0", "eslint": "^9.33.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", From 42bc319727365259a0e59cea0f43c2e716610d0b Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 02:48:05 -0600 Subject: [PATCH 5/8] Build updates --- .../workflows/on-merge-main-deploy-gpr.yml | 12 +++++------ .../workflows/on-merge-main-deploy-npmjs.yml | 21 +++++++++++-------- .github/workflows/verify-pull-request.yml | 2 +- package.json | 16 +++++++------- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.github/workflows/on-merge-main-deploy-gpr.yml b/.github/workflows/on-merge-main-deploy-gpr.yml index e81b35c..5d6ee89 100644 --- a/.github/workflows/on-merge-main-deploy-gpr.yml +++ b/.github/workflows/on-merge-main-deploy-gpr.yml @@ -1,12 +1,10 @@ -# Github Package Deployment -# https://docs.github.com/en/packages -# https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages - name: Verify and Deploy to GitHub Packages + on: push: - branches: - - main + tags: + - 'v*' + jobs: deploy_gpr_package: runs-on: ubuntu-latest @@ -20,7 +18,7 @@ jobs: node-version: '20.x' registry-url: 'https://npm.pkg.github.com' - run: npm ci - - run: npm run build:package + - run: npm run npm-build-package - run: cd dist/npm && npm publish --access=public env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/on-merge-main-deploy-npmjs.yml b/.github/workflows/on-merge-main-deploy-npmjs.yml index d96f9d0..3dad5ef 100644 --- a/.github/workflows/on-merge-main-deploy-npmjs.yml +++ b/.github/workflows/on-merge-main-deploy-npmjs.yml @@ -1,11 +1,14 @@ -# npmjs Package Deployment -# https://docs.npmjs.com/about-packages-and-modules - name: Verify and Deploy to npmjs + +permissions: + id-token: write + contents: read + on: push: - branches: - - main + tags: + - 'v*' + jobs: deploy_npmjs_package: runs-on: ubuntu-latest @@ -15,8 +18,8 @@ jobs: with: node-version: '20.x' registry-url: 'https://registry.npmjs.org' + - name: Update npm to latest + run: npm install -g npm@latest - run: npm ci - - run: npm run build:package - - run: cd dist/npm && npm publish --access=public - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} + - run: npm run npm-build-package + - run: cd dist/npm && npm publish diff --git a/.github/workflows/verify-pull-request.yml b/.github/workflows/verify-pull-request.yml index e0de760..7f2e145 100644 --- a/.github/workflows/verify-pull-request.yml +++ b/.github/workflows/verify-pull-request.yml @@ -16,4 +16,4 @@ jobs: - name: Build πŸ”§ run: | npm run build:prod - npm run build:package + npm run npm-build-package diff --git a/package.json b/package.json index bf6c5ba..44afd1d 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,8 @@ "node": "^20.19.0 || ^22.12.0 || ^24.0.0" }, "scripts": { + "bnpm-build-package": "ng-packagr -p ng-package.json", "build": "ng build", - "build:package": "ng-packagr -p ng-package.json", "build:prod": "ng build --configuration production", "lint": "ng lint", "ng": "ng", @@ -24,13 +24,13 @@ "watch": "ng build --watch --configuration development" }, "peerDependencies": { - "@angular/animations": "20.3.12", - "@angular/cdk": "20.2.13", - "@angular/common": "20.3.12", - "@angular/core": "20.3.12", - "@angular/forms": "20.3.12", - "@angular/material": "20.2.13", - "@angular/material-luxon-adapter": "20.2.13", + "@angular/animations": ">=20 <21", + "@angular/cdk": ">=20 <21", + "@angular/common": ">=20 <21", + "@angular/core": ">=20 <21", + "@angular/forms": ">=20 <21", + "@angular/material": ">=20 <21", + "@angular/material-luxon-adapter": ">=20 <21", "@ngneat/until-destroy": ">=10 <11", "luxon": ">=3 <4", "rxjs": ">=7.8 <8", From bb4339916c6504a3174084df08e6c8a469a33efa Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 02:48:52 -0600 Subject: [PATCH 6/8] Prettier updates --- .prettierignore | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.prettierignore b/.prettierignore index 8b1e811..ec71f36 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,8 +11,8 @@ public/ !eslint.config.js !package.json !src/ -!src/app/ -!src/app/public/ +!src/** +!src/**/* # Re-ignore sub-directories from the above exempt directories: .github/CODEOWNERS diff --git a/package.json b/package.json index 44afd1d..a8f1423 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,11 @@ "node": "^20.19.0 || ^22.12.0 || ^24.0.0" }, "scripts": { - "bnpm-build-package": "ng-packagr -p ng-package.json", "build": "ng build", "build:prod": "ng build --configuration production", "lint": "ng lint", "ng": "ng", + "npm-build-package": "ng-packagr -p ng-package.json", "postinstall": "is-ci || husky install", "prettier": "prettier --write . --log-level silent", "prettier:check": "prettier --check .", From 84fbd46f1ee46af2a0e716c201c10553c1ec7937 Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 03:00:24 -0600 Subject: [PATCH 7/8] README updates. --- .github/FUNDING.yml | 34 +----- .github/images/screenshots/.gitkeep | 0 .github/images/screenshots/screenshot.png | Bin 0 -> 54156 bytes README.md | 134 +++++++++++++--------- 4 files changed, 85 insertions(+), 83 deletions(-) delete mode 100644 .github/images/screenshots/.gitkeep create mode 100644 .github/images/screenshots/screenshot.png diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index cede4d5..33556af 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,32 +1,4 @@ -# Displaying a sponsor button in your repository -# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -# LFX Mentorship (formerly CommunityBridge) -# https://lfx.linuxfoundation.org/tools/mentorship -community_bridge: -# GitHub Sponsors -# https://github.com/sponsors -github: [ProAngular, CodyTolene] -# IssueHunt -# https://issuehunt.io/ -issuehunt: -# Ko-fi -# https://ko-fi.com/ -ko_fi: -# Liberapay -# https://en.liberapay.com/ -liberapay: -# Open Collective -# https://opencollective.com/ -open_collective: -# Otechie -# https://otechie.com/ -otechie: -# Patreon -# https://www.patreon.com/ -patreon: -# Tidelift -# https://tidelift.com/ -tidelift: -# Custom URL +github: [CodyTolene, ProAngular] +buy_me_a_coffee: CodyTolene +patreon: CodyTolene custom: ['https://www.paypal.me/CodyTolene'] diff --git a/.github/images/screenshots/.gitkeep b/.github/images/screenshots/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.github/images/screenshots/screenshot.png b/.github/images/screenshots/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..208a3e1a31dfa7ed651487782f0e9ebaf347d80d GIT binary patch literal 54156 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index fb7ad5f..8a070ab 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,30 @@ @@ -17,57 +32,72 @@ -[![npm](https://badgen.net/badge/icon/npm?icon=npm&label)](https://www.npmjs.com/@proangular/pro-table) -[![GitHub](https://badgen.net/badge/icon/GitHub?icon=github&label)](https://github.com/ProAngular/pro-table) -[![TypeScript](https://badgen.net/badge/icon/TypeScript?icon=typescript&label)](https://github.com/ProAngular/pro-table/search?l=typescript) -[![npm Version](https://badge.fury.io/js/@proangular%2Fngx-scroll-top.svg)](https://www.npmjs.com/@proangular/pro-table) -[![Node Version](https://badgen.net/npm/node/@proangular/pro-table)](https://www.npmjs.com/@proangular/pro-table) -[![Package Downloads](https://badgen.net/npm/dw/@proangular/pro-table)](https://www.npmjs.com/@proangular/pro-table) -[![Size](https://img.shields.io/bundlephobia/minzip/@proangular/pro-table.svg)](https://bundlephobia.com/result?p=ProAngular/pro-table) -[![Demo Status](https://badgen.net/badge/Demo/Online/green)](https://www.ProAngular.com/demos/pro-table) -[![Website Status](https://img.shields.io/website?down_color=lightgrey&down_message=Offline&label=Website&up_color=green&up_message=Online&url=https%3A%2F%2Fwww.proangular.com)](https://www.proangular.com) -[![Sponsors](https://img.shields.io/github/sponsors/proangular?label=Sponsors)](https://github.com/sponsors/ProAngular) -[![License](https://img.shields.io/npm/l/express.svg?maxAge=2592000)](/LICENSE) -[![GitHub Package Status](https://github.com/ProAngular/pro-table/actions/workflows/on-merge-main-deploy-gpr.yml/badge.svg)](https://github.com/ProAngular/pro-table/actions/workflows/on-merge-main-deploy-gpr.yml) -[![npmjs Package Status](https://github.com/ProAngular/pro-table/actions/workflows/on-merge-main-deploy-npmjs.yml/badge.svg)](https://github.com/ProAngular/pro-table/actions/workflows/on-merge-main-deploy-npmjs.yml) +

+ + + + + + + + + +

+ + -## Index - -- [Preview](#preview) -- [Description](#description) -- [Installation](#installation) - - [Prerequisites](#prerequisites) - - [Install Pro Table Components](#install-pro-table-components) -- [Usage](#usage) - - [Importing](#importing) - - [Expandable Rows](#expandable-rows) - - [API](#api) -- [Compatibility](#compatibility) -- [Contributions](#contributions) -- [Licensing](#licensing) -- [Wrapping Up](#wrapping-up) +

+ ng add @proangular/pro-table +

+

+ +

+

+ Click here to preview it live! +

-## Preview - -Preview the live demo below to see the Pro Table Components in action: - -https://www.ProAngular.com/demos/pro-table +## Index -

[ Index ]

+- [πŸ“„ Description](#description) +- [πŸ“¦ Installation](#installation) + - [πŸ“‹ Prerequisites](#prerequisites) + - [πŸ“₯ Install Pro Table Components](#install-pro-table-components) +- [πŸ’» Usage](#usage) + - [πŸ“€ Importing](#importing) + - [πŸ”½ Expandable Rows](#expandable-rows) + - [πŸ“š API](#api) +- [πŸ”„ Compatibility](#compatibility) +- [🀝 Contributions](#contributions) +- [βš–οΈ Licensing](#licensing) +- [🏁 Wrapping Up](#wrapping-up) -## Description +## πŸ“„ Description `@proangular/pro-table` is a **type-safe, Angular abstraction** over Angular Material’s table. It’s designed for apps using **standalone components, signals, @@ -131,12 +161,12 @@ data. -## Installation +## πŸ“¦ Installation Using Node Package Manager ([NPM][url-node-js]) in a new terminal window run the following commands to install the required dependencies. -### Prerequisites +### πŸ“‹ Prerequisites **Angular Material** @@ -147,7 +177,7 @@ https://material.angular.io/guide/theming ng add @angular/material ``` -### Install Pro Table Components +### πŸ“₯ Install Pro Table Components ```bash ng add @proangular/pro-table@latest @@ -165,9 +195,9 @@ npm install @proangular/pro-table --save -## Usage +## πŸ’» Usage -### Importing +### πŸ“€ Importing Import the table component to use in your Angular application where used: @@ -202,7 +232,7 @@ Import the table component to use in your Angular application where used: -### Expandable Rows +### πŸ”½ Expandable Rows ```html @@ -226,7 +256,7 @@ the template when expanded. -### API +### πŸ“š API #### Input Bindings (required): @@ -312,7 +342,7 @@ interface TableTemplateReferenceExpandableObject< -## Compatibility +## πŸ”„ Compatibility | Angular version | @proangular/pro-table | Install | | --------------- | --------------------- | -------------------------------- | @@ -327,7 +357,7 @@ interface TableTemplateReferenceExpandableObject< -## Contributions +## 🀝 Contributions Please submit all issues, and feature requests here: [https://github.com/ProAngular/pro-table/issues][url-new-issue] @@ -362,7 +392,7 @@ Thank you for any and all contributions! -## Licensing +## βš–οΈ Licensing This project is licensed under the **MIT** License. See the [LICENSE](LICENSE.md) file for the pertaining license text. @@ -375,7 +405,7 @@ This project is licensed under the **MIT** License. See the -## Wrapping Up +## 🏁 Wrapping Up Thank you to the entire Angular team and community for such a great framework to build upon. If you have any questions, please let me know by opening an issue From d7d0b953d8b32fd47d990eef639fe9ee8c50e6d1 Mon Sep 17 00:00:00 2001 From: Cody Tolene Date: Sat, 15 Nov 2025 03:06:59 -0600 Subject: [PATCH 8/8] Update icons --- public/favicon.ico | Bin 15086 -> 15406 bytes src/app/layout/footer.component.html | 5 +---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/public/favicon.ico b/public/favicon.ico index 57614f9c967596fad0a3989bec2b1deff33034f6..1d6ecf1ae8dadbbb376bdf8a9fcf443edbe9de06 100644 GIT binary patch literal 15406 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 literal 15086 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 Nr__JTFzvMr^FKp4S3v*( diff --git a/src/app/layout/footer.component.html b/src/app/layout/footer.component.html index 896f272..a95ecd1 100644 --- a/src/app/layout/footer.component.html +++ b/src/app/layout/footer.component.html @@ -1,9 +1,6 @@
- Pro Angular Logo + Pro Angular Logo

Copyright © Pro Angular 2022

- +

- Pro Angular: Table Component + @proangular/pro-table

- - View Github Repository -

- An abstraction of Angular Material’s table that speeds up development time and gives you quick access to features such as type safe columns, row selection, copy on click, expandable rows, intent based sorting, and more! + + ProAngular +   |   + + GitHub Repo +   |   + + NPM Package +   |   + + Demo Page + +

+

+ An abstraction of Angular Material’s table that speeds up development time + and gives you quick access to features such as type safe columns, row + selection, copy on click, expandable rows, intent based sorting, and more!