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": [ "migrations": [
{ {
"version": "20.3.0-beta.1", "cli": "nx",
"description": "Update ESLint flat config to include .cjs, .mjs, .cts, and .mts files in overrides (if needed)", "version": "21.2.0-beta.3",
"implementation": "./src/migrations/update-20-3-0/add-file-extensions-to-overrides", "requires": { "@angular/core": ">=20.0.0" },
"package": "@nx/eslint", "description": "Update the @angular/cli package version to ~20.0.0.",
"name": "add-file-extensions-to-overrides" "factory": "./src/migrations/update-21-2-0/update-angular-cli",
"package": "@nx/angular",
"name": "update-angular-cli-version-20-0-0"
}, },
{ {
"cli": "nx", "version": "21.2.0-beta.3",
"version": "20.3.0-beta.2", "requires": { "@angular/core": ">=20.0.0" },
"description": "If workspace includes Module Federation projects, ensure the new @nx/module-federation package is installed.", "description": "Migrate imports of `provideServerRendering` from `@angular/platform-server` to `@angular/ssr`.",
"factory": "./src/migrations/update-20-3-0/ensure-nx-module-federation-package", "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", "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 "strict": false
}, },
"@nx/angular:component": { "@nx/angular:component": {
"style": "scss" "style": "scss",
"type": "component"
}, },
"@nx/angular": { "@nx/angular": {
"application": { "application": {
@ -31,7 +32,58 @@
}, },
"storybook-configuration": { "storybook-configuration": {
"linter": "eslint" "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", "$schema": "./node_modules/nx/schemas/nx-schema.json",

82
npm/ng-packs/package.json

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

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

@ -1,5 +1,5 @@
import { LinkedList } from '@abp/utils'; 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> {} 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>( abstract getInjected: <T>(
token: Type<T> | InjectionToken<T>, token: Type<T> | InjectionToken<T>,
notFoundValue?: T, notFoundValue?: T,
flags?: InjectOptions | InjectFlags, flags?: InjectOptions,
) => T; ) => T;
index?: number; index?: number;
abstract record: R; 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 { 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 { Observable, of } from 'rxjs';
import { ActionCallback } from './actions'; import { ActionCallback } from './actions';
import { import {
@ -93,6 +93,6 @@ export type ColumnPredicate = (getInjected: GetInjected, auxData?: any) => boole
export type GetInjected = <T>( export type GetInjected = <T>(
token: Type<T> | InjectionToken<T>, token: Type<T> | InjectionToken<T>,
notFoundValue?: T, notFoundValue?: T,
options?: InjectOptions | InjectFlags, options?: InjectOptions,
) => T; ) => T;
type PropDataObject = { [key: string]: any }; 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 { 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 { ePropType } from '../enums/props.enum';
import { FormPropTooltip } from './form-props'; import { FormPropTooltip } from './form-props';
@ -9,7 +9,7 @@ export abstract class PropData<R = any> {
abstract getInjected: <T>( abstract getInjected: <T>(
token: Type<T> | InjectionToken<T>, token: Type<T> | InjectionToken<T>,
notFoundValue?: T, notFoundValue?: T,
options?: InjectOptions | InjectFlags, options?: InjectOptions,
) => T; ) => T;
index?: number; index?: number;
abstract record: R; abstract record: R;

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

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

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

@ -12,7 +12,7 @@
}, },
"dependencies": { "dependencies": {
"chart.js": "^3.5.1", "chart.js": "^3.5.1",
"ng-zorro-antd": "~19.0.0", "ng-zorro-antd": "~20.0.0",
"@ctrl/tinycolor": "^4.0.0", "@ctrl/tinycolor": "^4.0.0",
"tslib": "^2.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', name: 'abpSort',
}) })
export class SortPipe implements PipeTransform { 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); sortOrder = sortOrder && (sortOrder.toLowerCase() as any);
if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) return value; 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; return this._totalCount;
} }
private _sortKey = ''; private _sortKey: string | number = '';
set sortKey(value: string) { set sortKey(value: string | number) {
this._sortKey = value; this._sortKey = value;
this.get(); this.get();
} }
get sortKey(): string { get sortKey(): string | number {
return this._sortKey; 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'; import { Subject } from 'rxjs';
export const mockActions = new Subject(); export const mockActions = new Subject();
@ -10,10 +10,10 @@ export class DummyInjector extends Injector {
get<T>( get<T>(
token: Type<T> | InjectionToken<T> | AbstractType<T>, token: Type<T> | InjectionToken<T> | AbstractType<T>,
notFoundValue?: T, notFoundValue?: T,
flags?: InjectFlags, flags?: { optional: true; host: true; skipSelf: true; self: true },
): T; ): T;
get(token: any, notFoundValue?: any): any; 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]; return this.payload[token.name || token._desc || token];
} }
} }

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

@ -9,7 +9,7 @@
"dependencies": { "dependencies": {
"@abp/ng.core": "~9.3.0-rc.2", "@abp/ng.core": "~9.3.0-rc.2",
"@abp/utils": "~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-clone": "^6.0.0",
"just-compare": "^2.0.0", "just-compare": "^2.0.0",
"tslib": "^2.0.0" "tslib": "^2.0.0"

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

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

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

@ -8,11 +8,11 @@
}, },
"dependencies": { "dependencies": {
"@abp/ng.core": "~9.3.0-rc.2", "@abp/ng.core": "~9.3.0-rc.2",
"@fortawesome/fontawesome-free": "^5.0.0", "@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "~18.0.0", "@ng-bootstrap/ng-bootstrap": "~19.0.0",
"@ngx-validate/core": "^0.2.0", "@ngx-validate/core": "^0.2.0",
"@popperjs/core": "~2.11.0", "@popperjs/core": "~2.11.0",
"@swimlane/ngx-datatable": "^20.0.0", "@swimlane/ngx-datatable": "^21.0.0",
"bootstrap": "^5.0.0", "bootstrap": "^5.0.0",
"tslib": "^2.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 spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent);
const spinnerElement = spinnerRef.location.nativeElement; const spinnerElement = spinnerRef.location.nativeElement;
if (placeholder?.parentNode === parent) {
this.renderer.insertBefore(parent, spinnerElement, placeholder); this.renderer.insertBefore(parent, spinnerElement, placeholder);
}
this.renderer.removeChild(parent, 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.tenant-management": "~9.3.0-rc.2",
"@abp/ng.theme.lepton-x": "~4.3.0-rc.2", "@abp/ng.theme.lepton-x": "~4.3.0-rc.2",
"@abp/ng.theme.shared": "~9.3.0-rc.2", "@abp/ng.theme.shared": "~9.3.0-rc.2",
"@angular/animations": "~19.1.0", "@angular/animations": "~20.0.0",
"@angular/common": "~19.1.0", "@angular/common": "~20.0.0",
"@angular/compiler": "~19.1.0", "@angular/compiler": "~20.0.0",
"@angular/core": "~19.1.0", "@angular/core": "~20.0.0",
"@angular/forms": "~19.1.0", "@angular/forms": "~20.0.0",
"@angular/localize": "~19.1.0", "@angular/localize": "~20.0.0",
"@angular/platform-browser": "~19.1.0", "@angular/platform-browser": "~20.0.0",
"@angular/platform-browser-dynamic": "~19.1.0", "@angular/platform-browser-dynamic": "~20.0.0",
"@angular/router": "~19.1.0", "@angular/router": "~20.0.0",
"bootstrap-icons": "~1.8.0", "bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
@ -37,15 +37,15 @@
}, },
"devDependencies": { "devDependencies": {
"@abp/ng.schematics": "~9.3.0-rc.2", "@abp/ng.schematics": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0", "@angular-devkit/build-angular": "~20.0.0",
"@angular-eslint/builder": "~19.0.0", "@angular-eslint/builder": "~20.0.0",
"@angular-eslint/eslint-plugin": "~19.0.0", "@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0", "@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/schematics": "~19.0.0", "@angular-eslint/schematics": "~20.0.0",
"@angular-eslint/template-parser": "~19.0.0", "@angular-eslint/template-parser": "~20.0.0",
"@angular/cli": "~19.1.0", "@angular/cli": "~20.0.0",
"@angular/compiler-cli": "~19.1.0", "@angular/compiler-cli": "~20.0.0",
"@angular/language-service": "~19.1.0", "@angular/language-service": "~20.0.0",
"@types/jasmine": "~3.6.0", "@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1", "@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0", "@typescript-eslint/eslint-plugin": "7.16.0",
@ -57,6 +57,6 @@
"karma-coverage": "~2.1.0", "karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0", "karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.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, "declaration": false,
"downlevelIteration": true, "downlevelIteration": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"moduleResolution": "node", "moduleResolution": "bundler",
"importHelpers": true, "importHelpers": true,
"target": "ES2022", "target": "ES2022",
"module": "es2020", "module": "es2020",
"skipLibCheck": true,
"lib": [ "lib": [
"es2018", "es2018",
"dom" "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.tenant-management": "~9.3.0-rc.2",
"@abp/ng.theme.lepton-x": "~4.3.0-rc.2", "@abp/ng.theme.lepton-x": "~4.3.0-rc.2",
"@abp/ng.theme.shared": "~9.3.0-rc.2", "@abp/ng.theme.shared": "~9.3.0-rc.2",
"@angular/animations": "~19.1.0", "@angular/animations": "~20.0.0",
"@angular/common": "~19.1.0", "@angular/common": "~20.0.0",
"@angular/compiler": "~19.1.0", "@angular/compiler": "~20.0.0",
"@angular/core": "~19.1.0", "@angular/core": "~20.0.0",
"@angular/forms": "~19.1.0", "@angular/forms": "~20.0.0",
"@angular/localize": "~19.1.0", "@angular/localize": "~20.0.0",
"@angular/platform-browser": "~19.1.0", "@angular/platform-browser": "~20.0.0",
"@angular/platform-browser-dynamic": "~19.1.0", "@angular/platform-browser-dynamic": "~20.0.0",
"@angular/router": "~19.1.0", "@angular/router": "~20.0.0",
"bootstrap-icons": "~1.8.0", "bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
@ -37,15 +37,15 @@
}, },
"devDependencies": { "devDependencies": {
"@abp/ng.schematics": "~9.3.0-rc.2", "@abp/ng.schematics": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0", "@angular-devkit/build-angular": "~20.0.0",
"@angular-eslint/builder": "~19.0.0", "@angular-eslint/builder": "~20.0.0",
"@angular-eslint/eslint-plugin": "~19.0.0", "@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0", "@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/schematics": "~19.0.0", "@angular-eslint/schematics": "~20.0.0",
"@angular-eslint/template-parser": "~19.0.0", "@angular-eslint/template-parser": "~20.0.0",
"@angular/cli": "~19.1.0", "@angular/cli": "~20.0.0",
"@angular/compiler-cli": "~19.1.0", "@angular/compiler-cli": "~20.0.0",
"@angular/language-service": "~19.1.0", "@angular/language-service": "~20.0.0",
"@types/jasmine": "~3.6.0", "@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1", "@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0", "@typescript-eslint/eslint-plugin": "7.16.0",
@ -57,6 +57,6 @@
"karma-coverage": "~2.1.0", "karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0", "karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.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, "declaration": false,
"downlevelIteration": true, "downlevelIteration": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"moduleResolution": "node", "moduleResolution": "bundler",
"importHelpers": true, "importHelpers": true,
"target": "ES2022", "target": "ES2022",
"module": "es2020", "module": "es2020",
"skipLibCheck": true,
"lib": [ "lib": [
"es2018", "es2018",
"dom" "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.tenant-management": "~9.3.0-rc.2",
"@abp/ng.theme.basic": "~9.3.0-rc.2", "@abp/ng.theme.basic": "~9.3.0-rc.2",
"@abp/ng.theme.shared": "~9.3.0-rc.2", "@abp/ng.theme.shared": "~9.3.0-rc.2",
"@angular/animations": "~19.1.0", "@angular/animations": "~20.0.0",
"@angular/common": "~19.1.0", "@angular/common": "~20.0.0",
"@angular/compiler": "~19.1.0", "@angular/compiler": "~20.0.0",
"@angular/core": "~19.1.0", "@angular/core": "~20.0.0",
"@angular/forms": "~19.1.0", "@angular/forms": "~20.0.0",
"@angular/localize": "~19.1.0", "@angular/localize": "~20.0.0",
"@angular/platform-browser": "~19.1.0", "@angular/platform-browser": "~20.0.0",
"@angular/platform-browser-dynamic": "~19.1.0", "@angular/platform-browser-dynamic": "~20.0.0",
"@angular/router": "~19.1.0", "@angular/router": "~20.0.0",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
"zone.js": "~0.15.0" "zone.js": "~0.15.0"
}, },
"devDependencies": { "devDependencies": {
"@abp/ng.schematics": "~9.3.0-rc.2", "@abp/ng.schematics": "~9.3.0-rc.2",
"@angular-devkit/build-angular": "~19.1.0", "@angular-devkit/build-angular": "~20.0.0",
"@angular-eslint/builder": "~19.0.0", "@angular-eslint/builder": "~20.0.0",
"@angular-eslint/eslint-plugin": "~19.0.0", "@angular-eslint/eslint-plugin": "~20.0.0",
"@angular-eslint/eslint-plugin-template": "~19.0.0", "@angular-eslint/eslint-plugin-template": "~20.0.0",
"@angular-eslint/schematics": "~19.0.0", "@angular-eslint/schematics": "~20.0.0",
"@angular-eslint/template-parser": "~19.0.0", "@angular-eslint/template-parser": "~20.0.0",
"@angular/cli": "~19.1.0", "@angular/cli": "~20.0.0",
"@angular/compiler-cli": "~19.1.0", "@angular/compiler-cli": "~20.0.0",
"@angular/language-service": "~19.1.0", "@angular/language-service": "~20.0.0",
"@types/jasmine": "~3.6.0", "@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1", "@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0", "@typescript-eslint/eslint-plugin": "7.16.0",
@ -57,8 +57,8 @@
"karma-coverage": "~2.1.0", "karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0", "karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0", "karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "~19.1.0", "ng-packagr": "~20.0.0",
"symlink": "^2.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", "extends": "./tsconfig.prod.json",
"compilerOptions": { "compilerOptions": {
"skipLibCheck": true,
"paths": { "paths": {
"@my-company-name/my-project-name": [ "@my-company-name/my-project-name": [
"projects/my-project-name/src/public-api.ts" "projects/my-project-name/src/public-api.ts"

Loading…
Cancel
Save