Browse Source

Merge pull request #25931 from abpframework/taskever--ht6tpok4

abp#1519 — Angular 22.0.0 → 22.1.0 — abp
pull/25939/head
sumeyye 1 week ago
committed by GitHub
parent
commit
a1700fee15
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 50
      npm/ng-packs/package.json
  2. 4
      npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts
  3. 2
      npm/ng-packs/packages/feature-management/package.json
  4. 2
      npm/ng-packs/packages/permission-management/package.json
  5. 8
      npm/ng-packs/packages/schematics/package.json
  6. 2
      npm/ng-packs/packages/setting-management/package.json
  7. 2
      npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.html
  8. 13
      npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts
  9. 6
      npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts
  10. 2
      npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts
  11. 38
      templates/app-nolayers/angular/package.json
  12. 38
      templates/app/angular/package.json
  13. 42
      templates/module/angular/package.json
  14. 4
      templates/module/angular/projects/my-project-name/package.json
  15. 2
      templates/module/angular/tsconfig.prod.json

50
npm/ng-packs/package.json

@ -51,29 +51,29 @@
"@abp/ng.theme.lepton-x": "~5.7.0-rc.1",
"@abp/ng.schematics": "~10.7.0-rc.1",
"@abp/utils": "~10.7.0-rc.1",
"@angular-devkit/build-angular": "~22.0.0",
"@angular-devkit/core": "~22.0.0",
"@angular-devkit/schematics": "~22.0.0",
"@angular-devkit/schematics-cli": "~22.0.0",
"@angular-eslint/eslint-plugin": "~22.0.0",
"@angular-eslint/eslint-plugin-template": "~22.0.0",
"@angular-eslint/template-parser": "~22.0.0",
"@angular/animations": "~22.0.0",
"@angular/aria": "~22.0.0",
"@angular/build": "~22.0.0",
"@angular/cli": "~22.0.0",
"@angular/common": "~22.0.0",
"@angular/compiler": "~22.0.0",
"@angular/compiler-cli": "~22.0.0",
"@angular/core": "~22.0.0",
"@angular/forms": "~22.0.0",
"@angular/language-service": "~22.0.0",
"@angular/localize": "~22.0.0",
"@angular/platform-browser": "~22.0.0",
"@angular/platform-browser-dynamic": "~22.0.0",
"@angular/platform-server": "~22.0.0",
"@angular/router": "~22.0.0",
"@angular/ssr": "~22.0.0",
"@angular-devkit/build-angular": "~22.1.0",
"@angular-devkit/core": "~22.1.0",
"@angular-devkit/schematics": "~22.1.0",
"@angular-devkit/schematics-cli": "~22.1.0",
"@angular-eslint/eslint-plugin": "~22.1.0",
"@angular-eslint/eslint-plugin-template": "~22.1.0",
"@angular-eslint/template-parser": "~22.1.0",
"@angular/animations": "~22.1.0",
"@angular/aria": "~22.1.0",
"@angular/build": "~22.1.0",
"@angular/cli": "~22.1.0",
"@angular/common": "~22.1.0",
"@angular/compiler": "~22.1.0",
"@angular/compiler-cli": "~22.1.0",
"@angular/core": "~22.1.0",
"@angular/forms": "~22.1.0",
"@angular/language-service": "~22.1.0",
"@angular/localize": "~22.1.0",
"@angular/platform-browser": "~22.1.0",
"@angular/platform-browser-dynamic": "~22.1.0",
"@angular/platform-server": "~22.1.0",
"@angular/router": "~22.1.0",
"@angular/ssr": "~22.1.0",
"@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "~20.0.0",
"@ngneat/spectator": "~19.6.2",
@ -91,7 +91,7 @@
"@nx/web": "~22.7.5",
"@nx/workspace": "~22.7.5",
"@popperjs/core": "~2.11.0",
"@schematics/angular": "~22.0.0",
"@schematics/angular": "~22.1.0",
"@swc-node/register": "~1.11.1",
"@swc/cli": "~0.7.10",
"@swc/core": "~1.15.8",
@ -129,7 +129,7 @@
"just-compare": "^2.0.0",
"lerna": "^4.0.0",
"lint-staged": "^13.0.0",
"ng-packagr": "~22.0.0",
"ng-packagr": "~22.1.0",
"ng-zorro-antd": "~21.1.0",
"nx": "~22.7.5",
"postcss": "^8.0.0",

4
npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts

@ -52,7 +52,9 @@ export class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit
if (!this.rendered) {
this.cdrSubject.next();
} else {
this.cdRef.detectChanges();
// Defer via queue — sync detectChanges during ApplicationRef.tick
// (e.g. post-login permission/config refresh) can contribute to NG0101.
this.queue.add(() => this.cdRef.detectChanges());
}
} else {
this.cdRef.markForCheck();

2
npm/ng-packs/packages/feature-management/package.json

@ -11,7 +11,7 @@
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/aria": "~21.2.0"
"@angular/aria": "~22.1.0"
},
"publishConfig": {
"access": "public"

2
npm/ng-packs/packages/permission-management/package.json

@ -11,7 +11,7 @@
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/aria": "~21.2.0"
"@angular/aria": "~22.1.0"
},
"publishConfig": {
"access": "public"

8
npm/ng-packs/packages/schematics/package.json

@ -4,16 +4,16 @@
"author": "",
"schematics": "./collection.json",
"dependencies": {
"@angular-devkit/core": "~22.0.0",
"@angular-devkit/schematics": "~22.0.0",
"@angular/cli": "~22.0.0",
"@angular-devkit/core": "~22.1.0",
"@angular-devkit/schematics": "~22.1.0",
"@angular/cli": "~22.1.0",
"got": "^11.5.2",
"jsonc-parser": "^2.3.0",
"should-quote": "^1.0.0",
"typescript": "~6.0.3"
},
"devDependencies": {
"@schematics/angular": "~22.0.0",
"@schematics/angular": "~22.1.0",
"@types/jest": "29.4.4",
"@types/node": "20.2.5",
"jest": "29.4.3",

2
npm/ng-packs/packages/setting-management/package.json

@ -12,7 +12,7 @@
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/aria": "~21.2.0"
"@angular/aria": "~22.1.0"
},
"publishConfig": {
"access": "public"

2
npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.html

@ -1 +1 @@
<abp-breadcrumb-items [items]="segments"></abp-breadcrumb-items>
<abp-breadcrumb-items [items]="segments()" />

13
npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts

@ -6,7 +6,7 @@ import {
SubscriptionService,
TreeNode,
} from '@abp/ng.core';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, inject } from '@angular/core';
import { ChangeDetectionStrategy, Component, OnInit, inject, signal } from '@angular/core';
import { Router } from '@angular/router';
import { map, startWith } from 'rxjs/operators';
import { eThemeSharedRouteNames } from '../../enums/route-names';
@ -20,14 +20,13 @@ import { BreadcrumbItemsComponent } from '../breadcrumb-items/breadcrumb-items.c
imports: [BreadcrumbItemsComponent],
})
export class BreadcrumbComponent implements OnInit {
readonly cdRef = inject(ChangeDetectorRef);
private router = inject(Router);
private routes = inject(RoutesService);
private subscription = inject(SubscriptionService);
private routerEvents = inject(RouterEvents);
private routeCultureUrl = inject(RouteBasedCultureUrlService);
segments: Partial<ABP.Route>[] = [];
readonly segments = signal<Partial<ABP.Route>[]>([]);
ngOnInit(): void {
this.subscription.addOne(
@ -38,18 +37,18 @@ export class BreadcrumbComponent implements OnInit {
),
),
route => {
this.segments = [];
const next: Partial<ABP.Route>[] = [];
if (route) {
let node = { parent: route } as TreeNode<ABP.Route>;
while (node.parent) {
node = node.parent;
const { parent, children, isLeaf, ...segment } = node;
if (!isAdministration(segment)) this.segments.unshift(segment);
if (!isAdministration(segment)) next.unshift(segment);
}
this.cdRef.detectChanges();
}
this.segments.set(next);
},
);
}

6
npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts

@ -1,4 +1,4 @@
import { ApplicationRef, ComponentRef, inject, Injectable } from '@angular/core';
import { ComponentRef, inject, Injectable } from '@angular/core';
import {
ContentProjectionService,
LocalizationParam,
@ -12,7 +12,6 @@ import { Toaster } from '../models';
providedIn: 'root',
})
export class ToasterService implements ToasterContract {
private readonly appRef = inject(ApplicationRef);
private readonly contentProjectionService = inject(ContentProjectionService);
private lastId = -1;
@ -37,8 +36,9 @@ export class ToasterService implements ToasterContract {
}
this.containerComponentRef.instance.setToasts(this.toasts);
// Only refresh the projected toast host. Calling ApplicationRef.tick() here
// races with zone-driven CD and throws NG0101 (recursive tick).
this.containerComponentRef.changeDetectorRef.detectChanges();
this.appRef.tick();
}
/**

2
npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts

@ -135,7 +135,7 @@ describe('BreadcrumbComponent', () => {
const breadcrumb = spectator.fixture.debugElement.query(By.directive(BreadcrumbComponent))
.componentInstance as BreadcrumbComponent;
expect(breadcrumb.segments.map(segment => segment.path)).toEqual([
expect(breadcrumb.segments().map(segment => segment.path)).toEqual([
'/identity',
'/identity/users',
]);

38
templates/app-nolayers/angular/package.json

@ -21,16 +21,16 @@
"@abp/ng.tenant-management": "~10.7.0-rc.1",
"@abp/ng.theme.lepton-x": "~5.7.0-rc.1",
"@abp/ng.theme.shared": "~10.7.0-rc.1",
"@angular/animations": "~22.0.1",
"@angular/aria": "~22.0.0",
"@angular/common": "~22.0.1",
"@angular/compiler": "~22.0.1",
"@angular/core": "~22.0.1",
"@angular/forms": "~22.0.1",
"@angular/localize": "~22.0.1",
"@angular/platform-browser": "~22.0.1",
"@angular/platform-browser-dynamic": "~22.0.1",
"@angular/router": "~22.0.1",
"@angular/animations": "~22.1.0",
"@angular/aria": "~22.1.0",
"@angular/common": "~22.1.0",
"@angular/compiler": "~22.1.0",
"@angular/core": "~22.1.0",
"@angular/forms": "~22.1.0",
"@angular/localize": "~22.1.0",
"@angular/platform-browser": "~22.1.0",
"@angular/platform-browser-dynamic": "~22.1.0",
"@angular/router": "~22.1.0",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@ -38,15 +38,15 @@
},
"devDependencies": {
"@abp/ng.schematics": "~10.7.0-rc.1",
"@angular-eslint/builder": "~21.2.0",
"@angular-eslint/eslint-plugin": "~21.2.0",
"@angular-eslint/eslint-plugin-template": "~21.2.0",
"@angular-eslint/schematics": "~21.2.0",
"@angular-eslint/template-parser": "~21.2.0",
"@angular/build": "~22.0.1",
"@angular/cli": "~22.0.1",
"@angular/compiler-cli": "~22.0.1",
"@angular/language-service": "~22.0.1",
"@angular-eslint/builder": "~22.1.0",
"@angular-eslint/eslint-plugin": "~22.1.0",
"@angular-eslint/eslint-plugin-template": "~22.1.0",
"@angular-eslint/schematics": "~22.1.0",
"@angular-eslint/template-parser": "~22.1.0",
"@angular/build": "~22.1.0",
"@angular/cli": "~22.1.0",
"@angular/compiler-cli": "~22.1.0",
"@angular/language-service": "~22.1.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0",
"@typescript-eslint/parser": "7.16.0",

38
templates/app/angular/package.json

@ -21,16 +21,16 @@
"@abp/ng.tenant-management": "~10.7.0-rc.1",
"@abp/ng.theme.lepton-x": "~5.7.0-rc.1",
"@abp/ng.theme.shared": "~10.7.0-rc.1",
"@angular/animations": "~22.0.1",
"@angular/aria": "~22.0.0",
"@angular/common": "~22.0.1",
"@angular/compiler": "~22.0.1",
"@angular/core": "~22.0.1",
"@angular/forms": "~22.0.1",
"@angular/localize": "~22.0.1",
"@angular/platform-browser": "~22.0.1",
"@angular/platform-browser-dynamic": "~22.0.1",
"@angular/router": "~22.0.1",
"@angular/animations": "~22.1.0",
"@angular/aria": "~22.1.0",
"@angular/common": "~22.1.0",
"@angular/compiler": "~22.1.0",
"@angular/core": "~22.1.0",
"@angular/forms": "~22.1.0",
"@angular/localize": "~22.1.0",
"@angular/platform-browser": "~22.1.0",
"@angular/platform-browser-dynamic": "~22.1.0",
"@angular/router": "~22.1.0",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@ -38,15 +38,15 @@
},
"devDependencies": {
"@abp/ng.schematics": "~10.7.0-rc.1",
"@angular-eslint/builder": "~21.2.0",
"@angular-eslint/eslint-plugin": "~21.2.0",
"@angular-eslint/eslint-plugin-template": "~21.2.0",
"@angular-eslint/schematics": "~21.2.0",
"@angular-eslint/template-parser": "~21.2.0",
"@angular/build": "~22.0.1",
"@angular/cli": "~22.0.1",
"@angular/compiler-cli": "~22.0.1",
"@angular/language-service": "~22.0.1",
"@angular-eslint/builder": "~22.1.0",
"@angular-eslint/eslint-plugin": "~22.1.0",
"@angular-eslint/eslint-plugin-template": "~22.1.0",
"@angular-eslint/schematics": "~22.1.0",
"@angular-eslint/template-parser": "~22.1.0",
"@angular/build": "~22.1.0",
"@angular/cli": "~22.1.0",
"@angular/compiler-cli": "~22.1.0",
"@angular/language-service": "~22.1.0",
"@types/node": "~20.11.0",
"@typescript-eslint/eslint-plugin": "7.16.0",
"@typescript-eslint/parser": "7.16.0",

42
templates/module/angular/package.json

@ -22,39 +22,39 @@
"@abp/ng.tenant-management": "~10.7.0-rc.1",
"@abp/ng.theme.basic": "~10.7.0-rc.1",
"@abp/ng.theme.shared": "~10.7.0-rc.1",
"@angular/animations": "~22.0.0",
"@angular/aria": "~22.0.0",
"@angular/common": "~22.0.0",
"@angular/compiler": "~22.0.0",
"@angular/core": "~22.0.0",
"@angular/forms": "~22.0.0",
"@angular/localize": "~22.0.0",
"@angular/platform-browser": "~22.0.0",
"@angular/platform-browser-dynamic": "~22.0.0",
"@angular/router": "~22.0.0",
"@angular/animations": "~22.1.0",
"@angular/aria": "~22.1.0",
"@angular/common": "~22.1.0",
"@angular/compiler": "~22.1.0",
"@angular/core": "~22.1.0",
"@angular/forms": "~22.1.0",
"@angular/localize": "~22.1.0",
"@angular/platform-browser": "~22.1.0",
"@angular/platform-browser-dynamic": "~22.1.0",
"@angular/router": "~22.1.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
"zone.js": "~0.15.0"
},
"devDependencies": {
"@abp/ng.schematics": "~10.7.0-rc.1",
"@angular-eslint/builder": "~21.2.0",
"@angular-eslint/eslint-plugin": "~21.2.0",
"@angular-eslint/eslint-plugin-template": "~21.2.0",
"@angular-eslint/schematics": "~21.2.0",
"@angular-eslint/template-parser": "~21.2.0",
"@angular/build": "~21.2.0",
"@angular/cli": "~21.2.0",
"@angular/compiler-cli": "~21.2.0",
"@angular/language-service": "~21.2.0",
"@angular-eslint/builder": "~22.1.0",
"@angular-eslint/eslint-plugin": "~22.1.0",
"@angular-eslint/eslint-plugin-template": "~22.1.0",
"@angular-eslint/schematics": "~22.1.0",
"@angular-eslint/template-parser": "~22.1.0",
"@angular/build": "~22.1.0",
"@angular/cli": "~22.1.0",
"@angular/compiler-cli": "~22.1.0",
"@angular/language-service": "~22.1.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0",
"@typescript-eslint/parser": "7.16.0",
"eslint": "^8.0.0",
"jsdom": "^27.1.0",
"ng-packagr": "~22.0.0",
"ng-packagr": "~22.1.0",
"symlink": "^2.0.0",
"typescript": "~6.0.3",
"vitest": "^4.0.0"
}
}
}

4
templates/module/angular/projects/my-project-name/package.json

@ -2,8 +2,8 @@
"name": "@my-company-name/my-project-name",
"version": "0.0.1",
"peerDependencies": {
"@angular/common": "~21.2.0",
"@angular/core": "~21.2.0",
"@angular/common": "~22.1.0",
"@angular/core": "~22.1.0",
"@abp/ng.core": "~10.7.0-rc.1",
"@abp/ng.theme.shared": "~10.7.0-rc.1"
},

2
templates/module/angular/tsconfig.prod.json

@ -4,13 +4,13 @@
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "bundler",
"importHelpers": true,
"target": "es2022",
"module": "ES2022",
"esModuleInterop": true,
"skipLibCheck": true,
"lib": [
"es2020",
"dom"

Loading…
Cancel
Save