Browse Source

Merge pull request #23234 from abpframework/auto-merge/rel-9-3/3843

Merge branch dev with rel-9.3
pull/23246/head
maliming 1 year ago
committed by GitHub
parent
commit
9d521cf339
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 46
      npm/ng-packs/migrations.json
  2. 54
      npm/ng-packs/nx.json
  3. 82
      npm/ng-packs/package.json
  4. 4
      npm/ng-packs/packages/components/extensible/src/lib/models/actions.ts
  5. 4
      npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts
  6. 4
      npm/ng-packs/packages/components/extensible/src/lib/models/props.ts
  7. 12
      npm/ng-packs/packages/components/extensible/src/lib/pipes/create-injector.pipe.ts
  8. 2
      npm/ng-packs/packages/components/package.json
  9. 2
      npm/ng-packs/packages/core/src/lib/pipes/sort.pipe.ts
  10. 6
      npm/ng-packs/packages/core/src/lib/services/list.service.ts
  11. 6
      npm/ng-packs/packages/core/src/lib/tests/utils/common.utils.ts
  12. 2
      npm/ng-packs/packages/oauth/package.json
  13. 10
      npm/ng-packs/packages/schematics/package.json
  14. 6
      npm/ng-packs/packages/theme-shared/package.json
  15. 5
      npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts
  16. 26
      templates/app-nolayers/angular/angular.json
  17. 38
      templates/app-nolayers/angular/package.json
  18. 3
      templates/app-nolayers/angular/tsconfig.json
  19. 26
      templates/app/angular/angular.json
  20. 38
      templates/app/angular/package.json
  21. 3
      templates/app/angular/tsconfig.json
  22. 26
      templates/module/angular/angular.json
  23. 40
      templates/module/angular/package.json
  24. 1
      templates/module/angular/tsconfig.json

46
npm/ng-packs/migrations.json

@ -1,19 +1,45 @@
{
"migrations": [
{
"version": "20.3.0-beta.1",
"description": "Update ESLint flat config to include .cjs, .mjs, .cts, and .mts files in overrides (if needed)",
"implementation": "./src/migrations/update-20-3-0/add-file-extensions-to-overrides",
"package": "@nx/eslint",
"name": "add-file-extensions-to-overrides"
"cli": "nx",
"version": "21.2.0-beta.3",
"requires": { "@angular/core": ">=20.0.0" },
"description": "Update the @angular/cli package version to ~20.0.0.",
"factory": "./src/migrations/update-21-2-0/update-angular-cli",
"package": "@nx/angular",
"name": "update-angular-cli-version-20-0-0"
},
{
"cli": "nx",
"version": "20.3.0-beta.2",
"description": "If workspace includes Module Federation projects, ensure the new @nx/module-federation package is installed.",
"factory": "./src/migrations/update-20-3-0/ensure-nx-module-federation-package",
"version": "21.2.0-beta.3",
"requires": { "@angular/core": ">=20.0.0" },
"description": "Migrate imports of `provideServerRendering` from `@angular/platform-server` to `@angular/ssr`.",
"factory": "./src/migrations/update-21-2-0/migrate-provide-server-rendering-import",
"package": "@nx/angular",
"name": "migrate-provide-server-rendering-import"
},
{
"version": "21.2.0-beta.3",
"requires": { "@angular/core": ">=20.0.0" },
"description": "Replace `provideServerRouting` and `provideServerRoutesConfig` with `provideServerRendering` using `withRoutes`.",
"factory": "./src/migrations/update-21-2-0/replace-provide-server-routing",
"package": "@nx/angular",
"name": "replace-provide-server-routing"
},
{
"version": "21.2.0-beta.3",
"requires": { "@angular/core": ">=20.0.0" },
"description": "Update the generator defaults to maintain the previous style guide behavior.",
"factory": "./src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide",
"package": "@nx/angular",
"name": "set-generator-defaults-for-previous-style-guide"
},
{
"version": "21.2.0-beta.3",
"requires": { "@angular/core": ">=20.0.0" },
"description": "Update 'moduleResolution' to 'bundler' in TypeScript configurations. You can read more about this here: https://www.typescriptlang.org/tsconfig/#moduleResolution.",
"factory": "./src/migrations/update-21-2-0/update-module-resolution",
"package": "@nx/angular",
"name": "ensure-nx-module-federation-package"
"name": "update-module-resolution"
}
]
}

54
npm/ng-packs/nx.json

@ -20,7 +20,8 @@
"strict": false
},
"@nx/angular:component": {
"style": "scss"
"style": "scss",
"type": "component"
},
"@nx/angular": {
"application": {
@ -31,7 +32,58 @@
},
"storybook-configuration": {
"linter": "eslint"
},
"directive": {
"type": "directive"
},
"service": {
"type": "service"
},
"scam": {
"type": "component"
},
"scam-directive": {
"type": "directive"
},
"guard": {
"typeSeparator": "."
},
"interceptor": {
"typeSeparator": "."
},
"module": {
"typeSeparator": "."
},
"pipe": {
"typeSeparator": "."
},
"resolver": {
"typeSeparator": "."
}
},
"@schematics/angular:component": {
"type": "component"
},
"@schematics/angular:directive": {
"type": "directive"
},
"@schematics/angular:service": {
"type": "service"
},
"@schematics/angular:guard": {
"typeSeparator": "."
},
"@schematics/angular:interceptor": {
"typeSeparator": "."
},
"@schematics/angular:module": {
"typeSeparator": "."
},
"@schematics/angular:pipe": {
"typeSeparator": "."
},
"@schematics/angular:resolver": {
"typeSeparator": "."
}
},
"$schema": "./node_modules/nx/schemas/nx-schema.json",

82
npm/ng-packs/package.json

@ -46,74 +46,74 @@
"devDependencies": {
"@abp/ng.theme.lepton-x": "~4.3.0-rc.2",
"@abp/utils": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0",
"@angular-devkit/core": "~19.1.0",
"@angular-devkit/schematics": "~19.1.0",
"@angular-devkit/schematics-cli": "~19.1.0",
"@angular-eslint/eslint-plugin": "~19.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0",
"@angular-eslint/template-parser": "~19.0.0",
"@angular/animations": "~19.1.0",
"@angular/cli": "~19.1.0",
"@angular/common": "~19.1.0",
"@angular/compiler": "~19.1.0",
"@angular/compiler-cli": "~19.1.0",
"@angular/core": "~19.1.0",
"@angular/forms": "~19.1.0",
"@angular/language-service": "~19.1.0",
"@angular/localize": "~19.1.0",
"@angular/platform-browser": "~19.1.0",
"@angular/platform-browser-dynamic": "~19.1.0",
"@angular/router": "~19.1.0",
"@angular-devkit/build-angular": "~20.0.0",
"@angular-devkit/core": "~20.0.0",
"@angular-devkit/schematics": "~20.0.0",
"@angular-devkit/schematics-cli": "~20.0.0",
"@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/template-parser": "~20.0.0",
"@angular/animations": "~20.0.0",
"@angular/cli": "~20.0.1",
"@angular/common": "~20.0.0",
"@angular/compiler": "~20.0.0",
"@angular/compiler-cli": "~20.0.0",
"@angular/core": "~20.0.0",
"@angular/forms": "~20.0.0",
"@angular/language-service": "~20.0.0",
"@angular/localize": "~20.0.0",
"@angular/platform-browser": "~20.0.0",
"@angular/platform-browser-dynamic": "~20.0.0",
"@angular/router": "~20.0.0",
"@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "~18.0.0",
"@ngneat/spectator": "~19.1.0",
"@ng-bootstrap/ng-bootstrap": "~19.0.0",
"@ngneat/spectator": "~19.6.2",
"@ngx-validate/core": "^0.2.0",
"@nx/angular": "~20.3.0",
"@nx/cypress": "~20.3.0",
"@nx/devkit": "~20.3.0",
"@nx/eslint": "~20.3.0",
"@nx/eslint-plugin": "~20.3.0",
"@nx/jest": "~20.3.0",
"@nx/js": "~20.3.0",
"@nx/plugin": "~20.3.0",
"@nx/workspace": "~20.3.0",
"@nx/angular": "~21.2.0",
"@nx/cypress": "~21.2.0",
"@nx/devkit": "~21.2.0",
"@nx/eslint": "~21.2.0",
"@nx/eslint-plugin": "~21.2.0",
"@nx/jest": "~21.2.0",
"@nx/js": "~21.2.0",
"@nx/plugin": "~21.2.0",
"@nx/workspace": "~21.2.0",
"@popperjs/core": "~2.11.0",
"@schematics/angular": "~19.0.0",
"@schematics/angular": "~20.0.0",
"@swc-node/register": "1.9.2",
"@swc/cli": "0.3.12",
"@swc/cli": "0.6.0",
"@swc/core": "~1.5.0",
"@swc/helpers": "~0.5.0",
"@swimlane/ngx-datatable": "^20.0.0",
"@swimlane/ngx-datatable": "~21.1.0",
"@types/jest": "29.5.14",
"@types/node": "^20.0.0",
"@typescript-eslint/eslint-plugin": "7.16.0",
"@typescript-eslint/parser": "7.16.0",
"@typescript-eslint/utils": "^7.16.0",
"angular-oauth2-oidc": "^19.0.0",
"autoprefixer": "^10.0.0",
"angular-oauth2-oidc": "^20.0.0",
"autoprefixer": "^10.4.21",
"bootstrap": "^5.0.0",
"bootstrap-icons": "^1.0.0",
"chart.js": "^4.0.0",
"cypress": "^7.0.0",
"dotenv": "10.0.0",
"eslint": "^8.0.0",
"eslint-config-prettier": "9.0.0",
"eslint-config-prettier": "10.0.0",
"eslint-plugin-cypress": "^2.10.3",
"got": "^11.0.0",
"jest": "^29.0.0",
"jest-canvas-mock": "^2.0.0",
"jest-environment-jsdom": "^29.0.0",
"jest-preset-angular": "14.4.2",
"jest-preset-angular": "14.6.0",
"jsonc-eslint-parser": "^2.0.0",
"jsonc-parser": "^2.0.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
"lerna": "^4.0.0",
"lint-staged": "^13.0.0",
"ng-packagr": "~19.1.0",
"ng-zorro-antd": "~19.0.0",
"nx": "~20.3.0",
"ng-packagr": "~20.0.0",
"ng-zorro-antd": "~20.0.0",
"nx": "~21.2.0",
"postcss": "^8.0.0",
"postcss-import": "14.1.0",
"postcss-preset-env": "7.5.0",
@ -127,7 +127,7 @@
"ts-toolbelt": "^9.0.0",
"tslib": "^2.0.0",
"tslint": "~6.1.0",
"typescript": "~5.6.0",
"typescript": "~5.8.0",
"zone.js": "~0.15.0"
},
"lint-staged": {

4
npm/ng-packs/packages/components/extensible/src/lib/models/actions.ts

@ -1,5 +1,5 @@
import { LinkedList } from '@abp/utils';
import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core';
import { InjectionToken, InjectOptions, Type } from '@angular/core';
export abstract class ActionList<R = any, A = Action<R>> extends LinkedList<A> {}
@ -7,7 +7,7 @@ export abstract class ActionData<R = any> {
abstract getInjected: <T>(
token: Type<T> | InjectionToken<T>,
notFoundValue?: T,
flags?: InjectOptions | InjectFlags,
flags?: InjectOptions,
) => T;
index?: number;
abstract record: R;

4
npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts

@ -1,5 +1,5 @@
import { ABP, escapeHtmlChars } from '@abp/ng.core';
import { InjectFlags, InjectOptions, InjectionToken, Type } from '@angular/core';
import { InjectOptions, InjectionToken, Type } from '@angular/core';
import { Observable, of } from 'rxjs';
import { ActionCallback } from './actions';
import {
@ -93,6 +93,6 @@ export type ColumnPredicate = (getInjected: GetInjected, auxData?: any) => boole
export type GetInjected = <T>(
token: Type<T> | InjectionToken<T>,
notFoundValue?: T,
options?: InjectOptions | InjectFlags,
options?: InjectOptions,
) => T;
type PropDataObject = { [key: string]: any };

4
npm/ng-packs/packages/components/extensible/src/lib/models/props.ts

@ -1,5 +1,5 @@
import { LinkedList } from '@abp/utils';
import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core';
import { InjectionToken, InjectOptions, Type } from '@angular/core';
import { ePropType } from '../enums/props.enum';
import { FormPropTooltip } from './form-props';
@ -9,7 +9,7 @@ export abstract class PropData<R = any> {
abstract getInjected: <T>(
token: Type<T> | InjectionToken<T>,
notFoundValue?: T,
options?: InjectOptions | InjectFlags,
options?: InjectOptions,
) => T;
index?: number;
abstract record: R;

12
npm/ng-packs/packages/components/extensible/src/lib/pipes/create-injector.pipe.ts

@ -1,12 +1,4 @@
import {
InjectFlags,
InjectionToken,
InjectOptions,
Injector,
Pipe,
PipeTransform,
Type,
} from '@angular/core';
import { InjectionToken, InjectOptions, Injector, Pipe, PipeTransform, Type } from '@angular/core';
import { HasCreateInjectorPipe, ToolbarComponent } from '../models/toolbar-actions';
import { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens/extensions.token';
@ -22,7 +14,7 @@ export class CreateInjectorPipe<R> implements PipeTransform {
const get = <T>(
token: Type<T> | InjectionToken<T>,
notFoundValue?: T,
options?: InjectOptions | InjectFlags,
options?: InjectOptions,
) => {
const componentData = context.getData();
const componentDataCallback = (data: any) => {

2
npm/ng-packs/packages/components/package.json

@ -12,7 +12,7 @@
},
"dependencies": {
"chart.js": "^3.5.1",
"ng-zorro-antd": "~19.0.0",
"ng-zorro-antd": "~20.0.0",
"@ctrl/tinycolor": "^4.0.0",
"tslib": "^2.0.0"
},

2
npm/ng-packs/packages/core/src/lib/pipes/sort.pipe.ts

@ -6,7 +6,7 @@ export type SortOrder = 'asc' | 'desc';
name: 'abpSort',
})
export class SortPipe implements PipeTransform {
transform(value: any[], sortOrder: SortOrder | string = 'asc', sortKey?: string): any {
transform(value: any[], sortOrder: SortOrder | string = 'asc', sortKey?: string | number): any {
sortOrder = sortOrder && (sortOrder.toLowerCase() as any);
if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) return value;

6
npm/ng-packs/packages/core/src/lib/services/list.service.ts

@ -65,12 +65,12 @@ export class ListService<QueryParamsType = ABP.PageQueryParams | any> implements
return this._totalCount;
}
private _sortKey = '';
set sortKey(value: string) {
private _sortKey: string | number = '';
set sortKey(value: string | number) {
this._sortKey = value;
this.get();
}
get sortKey(): string {
get sortKey(): string | number {
return this._sortKey;
}

6
npm/ng-packs/packages/core/src/lib/tests/utils/common.utils.ts

@ -1,4 +1,4 @@
import { AbstractType, InjectFlags, InjectionToken, Injector, Type } from '@angular/core';
import { AbstractType, InjectionToken, Injector, Type } from '@angular/core';
import { Subject } from 'rxjs';
export const mockActions = new Subject();
@ -10,10 +10,10 @@ export class DummyInjector extends Injector {
get<T>(
token: Type<T> | InjectionToken<T> | AbstractType<T>,
notFoundValue?: T,
flags?: InjectFlags,
flags?: { optional: true; host: true; skipSelf: true; self: true },
): T;
get(token: any, notFoundValue?: any): any;
get(token, notFoundValue?, flags?: InjectFlags): any {
get(token, notFoundValue?, flags?: { optional: true; host: true; skipSelf: true }): any {
return this.payload[token.name || token._desc || token];
}
}

2
npm/ng-packs/packages/oauth/package.json

@ -9,7 +9,7 @@
"dependencies": {
"@abp/ng.core": "~9.3.0-rc.2",
"@abp/utils": "~9.3.0-rc.2",
"angular-oauth2-oidc": "^17.0.0",
"angular-oauth2-oidc": "^20.0.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
"tslib": "^2.0.0"

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

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

6
npm/ng-packs/packages/theme-shared/package.json

@ -8,11 +8,11 @@
},
"dependencies": {
"@abp/ng.core": "~9.3.0-rc.2",
"@fortawesome/fontawesome-free": "^5.0.0",
"@ng-bootstrap/ng-bootstrap": "~18.0.0",
"@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "~19.0.0",
"@ngx-validate/core": "^0.2.0",
"@popperjs/core": "~2.11.0",
"@swimlane/ngx-datatable": "^20.0.0",
"@swimlane/ngx-datatable": "^21.0.0",
"bootstrap": "^5.0.0",
"tslib": "^2.0.0"
},

5
npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts

@ -111,8 +111,9 @@ export class NgxDatatableListDirective implements OnChanges, OnInit, DoCheck {
const spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent);
const spinnerElement = spinnerRef.location.nativeElement;
this.renderer.insertBefore(parent, spinnerElement, placeholder);
if (placeholder?.parentNode === parent) {
this.renderer.insertBefore(parent, spinnerElement, placeholder);
}
this.renderer.removeChild(parent, placeholder);
}

26
templates/app-nolayers/angular/angular.json

@ -186,5 +186,31 @@
}
}
}
},
"schematics": {
"@schematics/angular:component": {
"type": "component"
},
"@schematics/angular:directive": {
"type": "directive"
},
"@schematics/angular:service": {
"type": "service"
},
"@schematics/angular:guard": {
"typeSeparator": "."
},
"@schematics/angular:interceptor": {
"typeSeparator": "."
},
"@schematics/angular:module": {
"typeSeparator": "."
},
"@schematics/angular:pipe": {
"typeSeparator": "."
},
"@schematics/angular:resolver": {
"typeSeparator": "."
}
}
}

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

@ -21,15 +21,15 @@
"@abp/ng.tenant-management": "~9.3.0-rc.2",
"@abp/ng.theme.lepton-x": "~4.3.0-rc.2",
"@abp/ng.theme.shared": "~9.3.0-rc.2",
"@angular/animations": "~19.1.0",
"@angular/common": "~19.1.0",
"@angular/compiler": "~19.1.0",
"@angular/core": "~19.1.0",
"@angular/forms": "~19.1.0",
"@angular/localize": "~19.1.0",
"@angular/platform-browser": "~19.1.0",
"@angular/platform-browser-dynamic": "~19.1.0",
"@angular/router": "~19.1.0",
"@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/localize": "~20.0.0",
"@angular/platform-browser": "~20.0.0",
"@angular/platform-browser-dynamic": "~20.0.0",
"@angular/router": "~20.0.0",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@ -37,15 +37,15 @@
},
"devDependencies": {
"@abp/ng.schematics": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0",
"@angular-eslint/builder": "~19.0.0",
"@angular-eslint/eslint-plugin": "~19.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0",
"@angular-eslint/schematics": "~19.0.0",
"@angular-eslint/template-parser": "~19.0.0",
"@angular/cli": "~19.1.0",
"@angular/compiler-cli": "~19.1.0",
"@angular/language-service": "~19.1.0",
"@angular-devkit/build-angular": "~20.0.0",
"@angular-eslint/builder": "~20.0.0",
"@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/schematics": "~20.0.0",
"@angular-eslint/template-parser": "~20.0.0",
"@angular/cli": "~20.0.0",
"@angular/compiler-cli": "~20.0.0",
"@angular/language-service": "~20.0.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0",
@ -57,6 +57,6 @@
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"typescript": "~5.6.0"
"typescript": "~5.8.0"
}
}

3
templates/app-nolayers/angular/tsconfig.json

@ -8,10 +8,11 @@
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"moduleResolution": "bundler",
"importHelpers": true,
"target": "ES2022",
"module": "es2020",
"skipLibCheck": true,
"lib": [
"es2018",
"dom"

26
templates/app/angular/angular.json

@ -186,5 +186,31 @@
}
}
}
},
"schematics": {
"@schematics/angular:component": {
"type": "component"
},
"@schematics/angular:directive": {
"type": "directive"
},
"@schematics/angular:service": {
"type": "service"
},
"@schematics/angular:guard": {
"typeSeparator": "."
},
"@schematics/angular:interceptor": {
"typeSeparator": "."
},
"@schematics/angular:module": {
"typeSeparator": "."
},
"@schematics/angular:pipe": {
"typeSeparator": "."
},
"@schematics/angular:resolver": {
"typeSeparator": "."
}
}
}

38
templates/app/angular/package.json

@ -21,15 +21,15 @@
"@abp/ng.tenant-management": "~9.3.0-rc.2",
"@abp/ng.theme.lepton-x": "~4.3.0-rc.2",
"@abp/ng.theme.shared": "~9.3.0-rc.2",
"@angular/animations": "~19.1.0",
"@angular/common": "~19.1.0",
"@angular/compiler": "~19.1.0",
"@angular/core": "~19.1.0",
"@angular/forms": "~19.1.0",
"@angular/localize": "~19.1.0",
"@angular/platform-browser": "~19.1.0",
"@angular/platform-browser-dynamic": "~19.1.0",
"@angular/router": "~19.1.0",
"@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/localize": "~20.0.0",
"@angular/platform-browser": "~20.0.0",
"@angular/platform-browser-dynamic": "~20.0.0",
"@angular/router": "~20.0.0",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@ -37,15 +37,15 @@
},
"devDependencies": {
"@abp/ng.schematics": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0",
"@angular-eslint/builder": "~19.0.0",
"@angular-eslint/eslint-plugin": "~19.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0",
"@angular-eslint/schematics": "~19.0.0",
"@angular-eslint/template-parser": "~19.0.0",
"@angular/cli": "~19.1.0",
"@angular/compiler-cli": "~19.1.0",
"@angular/language-service": "~19.1.0",
"@angular-devkit/build-angular": "~20.0.0",
"@angular-eslint/builder": "~20.0.0",
"@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/schematics": "~20.0.0",
"@angular-eslint/template-parser": "~20.0.0",
"@angular/cli": "~20.0.0",
"@angular/compiler-cli": "~20.0.0",
"@angular/language-service": "~20.0.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0",
@ -57,6 +57,6 @@
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"typescript": "~5.6.0"
"typescript": "~5.8.0"
}
}

3
templates/app/angular/tsconfig.json

@ -8,10 +8,11 @@
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"moduleResolution": "bundler",
"importHelpers": true,
"target": "ES2022",
"module": "es2020",
"skipLibCheck": true,
"lib": [
"es2018",
"dom"

26
templates/module/angular/angular.json

@ -188,5 +188,31 @@
}
}
}
},
"schematics": {
"@schematics/angular:component": {
"type": "component"
},
"@schematics/angular:directive": {
"type": "directive"
},
"@schematics/angular:service": {
"type": "service"
},
"@schematics/angular:guard": {
"typeSeparator": "."
},
"@schematics/angular:interceptor": {
"typeSeparator": "."
},
"@schematics/angular:module": {
"typeSeparator": "."
},
"@schematics/angular:pipe": {
"typeSeparator": "."
},
"@schematics/angular:resolver": {
"typeSeparator": "."
}
}
}

40
templates/module/angular/package.json

@ -22,30 +22,30 @@
"@abp/ng.tenant-management": "~9.3.0-rc.2",
"@abp/ng.theme.basic": "~9.3.0-rc.2",
"@abp/ng.theme.shared": "~9.3.0-rc.2",
"@angular/animations": "~19.1.0",
"@angular/common": "~19.1.0",
"@angular/compiler": "~19.1.0",
"@angular/core": "~19.1.0",
"@angular/forms": "~19.1.0",
"@angular/localize": "~19.1.0",
"@angular/platform-browser": "~19.1.0",
"@angular/platform-browser-dynamic": "~19.1.0",
"@angular/router": "~19.1.0",
"@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/localize": "~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.0.0",
"zone.js": "~0.15.0"
},
"devDependencies": {
"@abp/ng.schematics": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0",
"@angular-eslint/builder": "~19.0.0",
"@angular-eslint/eslint-plugin": "~19.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0",
"@angular-eslint/schematics": "~19.0.0",
"@angular-eslint/template-parser": "~19.0.0",
"@angular/cli": "~19.1.0",
"@angular/compiler-cli": "~19.1.0",
"@angular/language-service": "~19.1.0",
"@angular-devkit/build-angular": "~20.0.0",
"@angular-eslint/builder": "~20.0.0",
"@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/schematics": "~20.0.0",
"@angular-eslint/template-parser": "~20.0.0",
"@angular/cli": "~20.0.0",
"@angular/compiler-cli": "~20.0.0",
"@angular/language-service": "~20.0.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0",
@ -57,8 +57,8 @@
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "~19.1.0",
"ng-packagr": "~20.0.0",
"symlink": "^2.0.0",
"typescript": "~5.6.0"
"typescript": "~5.8.0"
}
}

1
templates/module/angular/tsconfig.json

@ -1,6 +1,7 @@
{
"extends": "./tsconfig.prod.json",
"compilerOptions": {
"skipLibCheck": true,
"paths": {
"@my-company-name/my-project-name": [
"projects/my-project-name/src/public-api.ts"

Loading…
Cancel
Save