diff --git a/package-lock.json b/package-lock.json index 67e92f3..fe0c496 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,9 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", + "@ngrx/component-store": "^19.2.1", + "@ngrx/store": "^19.2.1", + "@ngrx/store-devtools": "^19.2.1", "rxjs": "~7.8.0", "tslib": "^2.3.0" }, @@ -21,6 +24,7 @@ "@angular/build": "^20.0.4", "@angular/cli": "^20.0.4", "@angular/compiler-cli": "^20.0.0", + "@ngrx/schematics": "^19.2.1", "typescript": "~5.8.2" } }, @@ -2217,6 +2221,53 @@ "node": ">= 10" } }, + "node_modules/@ngrx/component-store": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/@ngrx/component-store/-/component-store-19.2.1.tgz", + "integrity": "sha512-a1ghKdR1O2YNQSQfbwC472u+SFK41PDJZuvRIJ8k6B0MKoUWD6LyD4owyrPCUMxtMz9PLoAkch7FUD5qxgY23Q==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^19.0.0", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, + "node_modules/@ngrx/schematics": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/@ngrx/schematics/-/schematics-19.2.1.tgz", + "integrity": "sha512-6N7nyQ5QkHnFVAHPEHGiIKTgBqbwv/lS/vqbbuY4H4Gd4DYH/wAHcN97/EU+wVzlsrK7I1cCUEL2zwQ7WsbPdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ngrx/store": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-19.2.1.tgz", + "integrity": "sha512-c5vQId7YoAhM0y4HASrz9mtLju+28vJspd6OBlhPbBlSae8GN8m9S/oav+8LaSY19yh95cZ5B/nMcLNNWgL/jA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^19.0.0", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, + "node_modules/@ngrx/store-devtools": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-19.2.1.tgz", + "integrity": "sha512-gj1YO+4yl6D0l9vzLWdw07TQSu5UPKgsSLsNJfDLXraaLCUcB8voAp4J7zohN8qR5ixDuHeMoiSSVuklQ75u2w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^19.0.0", + "@ngrx/store": "19.2.1", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, "node_modules/@npmcli/agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", diff --git a/package.json b/package.json index ba85ac7..cafb93a 100644 --- a/package.json +++ b/package.json @@ -15,13 +15,17 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", + "@ngrx/component-store": "^19.2.1", + "@ngrx/store": "^19.2.1", + "@ngrx/store-devtools": "^19.2.1", "rxjs": "~7.8.0", "tslib": "^2.3.0" }, - "devDependencies": { - "@angular/build": "^20.0.4", + "devDependencies": { + "@angular/build": "^20.0.4", "@angular/cli": "^20.0.4", "@angular/compiler-cli": "^20.0.0", + "@ngrx/schematics": "^19.2.1", "typescript": "~5.8.2" } } diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 0a09ddd..c79bb5e 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,5 +1,21 @@ -import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZonelessChangeDetection } from '@angular/core'; +import { + ApplicationConfig, + isDevMode, + provideBrowserGlobalErrorListeners, + provideZonelessChangeDetection, +} from '@angular/core'; +import { provideStoreDevtools } from '@ngrx/store-devtools'; export const appConfig: ApplicationConfig = { - providers: [provideBrowserGlobalErrorListeners(), provideZonelessChangeDetection()], + providers: [ + provideBrowserGlobalErrorListeners(), + provideZonelessChangeDetection(), + provideStoreDevtools({ + maxAge: 25, + logOnly: !isDevMode(), + autoPause: true, + trace: false, + traceLimit: 75, + }), + ], };