This is a major update that modernizes the ngx-pinch-zoom library with Angular 20 and the signals API, while removing unnecessary dependencies and bloat. ## Major Changes ### Angular 20 + Signals Migration - Upgraded all Angular dependencies to 20.0.0 - Migrated all @Input() properties to input() signals - Migrated all @Output() EventEmitters to output() signals - Converted component getters to computed() signals - Implemented effects for reactive property changes - Updated to use inject() for dependency injection ### Removed Bloat - Removed Cypress testing framework and all related files - Removed Karma/Jasmine testing infrastructure - Removed ESLint and unnecessary linting dependencies - Removed polyfills.ts (not needed for modern browsers) - Removed all *.spec.ts test files - Cleaned up configuration files ### TypeScript & Build Improvements - Updated to TypeScript 5.8 with strict mode enabled - Fixed all strict mode type errors in touches.ts and ivypinch.ts - Updated tsconfig with modern settings (bundler module resolution) - Simplified angular.json configuration - Updated to latest ng-packagr (20.0.0) ### Documentation - Complete rewrite of README.md with Angular 20 examples - Added CONTRIBUTING.md with comprehensive maintainer guide - Added CHANGELOG.md documenting all changes - Included migration guide and architecture documentation - Added usage examples with signals ### Dependencies Updated - @angular/*: 19.0.0 → 20.0.0 - typescript: 5.5.4 → 5.8.0 - rxjs: 7.5.2 → 7.8.0 - ng-packagr: 19.0.0 → 20.0.0 - prettier: 2.7.1 → 3.0.0 - And many more... ## Files Changed - Modified: pinch-zoom.component.ts (signals migration) - Modified: ivypinch.ts (type safety improvements) - Modified: touches.ts (strict mode fixes) - Modified: package.json (simplified dependencies) - Modified: angular.json (simplified configuration) - Modified: tsconfig.json (modern settings) - Added: CONTRIBUTING.md, CHANGELOG.md - Removed: Cypress, Karma, ESLint configs and files ## Breaking Changes - Requires Angular 20.0.0+ - Requires TypeScript 5.8.0+ - Requires Node.js 18.19.1+ - Computed properties must be called as functions: component.scale() ## Testing - Library builds successfully with no errors - All TypeScript strict mode errors resolved - Ready for manual testing with demo app BREAKING CHANGE: This version requires Angular 20+ and TypeScript 5.8+
39 lines
1.2 KiB
JSON
39 lines
1.2 KiB
JSON
{
|
|
"name": "ngx-pinch-zoom",
|
|
"version": "20.0.0",
|
|
"description": "Angular pinch-zoom component with signals support for touch-enabled image zooming and panning",
|
|
"scripts": {
|
|
"ng": "ng",
|
|
"start": "ng serve",
|
|
"build": "ng build",
|
|
"build-lib": "ng build ngx-pinch-zoom",
|
|
"format": "prettier --write \"**/*.{ts,html,scss,json,md}\"",
|
|
"format:check": "prettier --check \"**/*.{ts,html,scss,json,md}\""
|
|
},
|
|
"dependencies": {
|
|
"@angular/animations": "^20.0.0",
|
|
"@angular/common": "^20.0.0",
|
|
"@angular/compiler": "^20.0.0",
|
|
"@angular/core": "^20.0.0",
|
|
"@angular/forms": "^20.0.0",
|
|
"@angular/platform-browser": "^20.0.0",
|
|
"@angular/platform-browser-dynamic": "^20.0.0",
|
|
"@angular/router": "^20.0.0",
|
|
"rxjs": "~7.8.0",
|
|
"tslib": "^2.8.0",
|
|
"zone.js": "~0.15.0"
|
|
},
|
|
"devDependencies": {
|
|
"@angular-devkit/build-angular": "^20.0.0",
|
|
"@angular/cli": "^20.0.0",
|
|
"@angular/compiler-cli": "^20.0.0",
|
|
"@types/node": "^22.0.0",
|
|
"ng-packagr": "^20.0.0",
|
|
"prettier": "^3.0.0",
|
|
"typescript": "~5.8.0"
|
|
},
|
|
"engines": {
|
|
"node": "^18.19.1 || ^20.11.1 || ^22.0.0",
|
|
"npm": "^9.0.0 || ^10.0.0"
|
|
}
|
|
}
|