Skip to content

Commit dee996f

Browse files
Update to Angular 22 (#495)
Update to Angular 22
1 parent 9eebd92 commit dee996f

455 files changed

Lines changed: 4451 additions & 3973 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,41 +26,41 @@
2626
"lint-utils --fix": "eslint --fix utils"
2727
},
2828
"devDependencies": {
29-
"@babel/runtime": "^7.28.0",
30-
"@typescript-eslint/eslint-plugin": "^5.0.0",
31-
"@typescript-eslint/parser": "^5.0.0",
32-
"@typescript-eslint/utils": "^8.46.2",
29+
"@babel/runtime": "^7.29.7",
30+
"@typescript-eslint/eslint-plugin": "^5.62.0",
31+
"@typescript-eslint/parser": "^5.62.0",
32+
"@typescript-eslint/utils": "^8.60.1",
3333
"devextreme-cli": "latest",
34-
"eslint": "^8.55.0",
34+
"eslint": "^8.57.1",
3535
"eslint-config-airbnb-base": "^15.0.0",
3636
"eslint-config-airbnb-typescript": "^17.1.0",
3737
"eslint-config-react-app": "^7.0.1",
38-
"eslint-plugin-import": "^2.29.0",
38+
"eslint-plugin-import": "^2.32.0",
3939
"eslint-plugin-jest": "^27.9.0",
4040
"eslint-plugin-n": "^14.0.0",
41-
"eslint-plugin-no-only-tests": "^3.1.0",
42-
"eslint-plugin-promise": "^6.1.1",
43-
"eslint-plugin-react": "^7.33.2",
44-
"eslint-plugin-react-perf": "^3.3.1",
41+
"eslint-plugin-no-only-tests": "^3.4.0",
42+
"eslint-plugin-promise": "^6.6.0",
43+
"eslint-plugin-react": "^7.37.5",
44+
"eslint-plugin-react-perf": "^3.3.3",
4545
"eslint-plugin-spellcheck": "^0.0.20",
46-
"fs-extra": "^10.0.0",
46+
"fs-extra": "^10.1.0",
4747
"globals": "^16.5.0",
4848
"prettier": "2.4.1",
49-
"stylelint": "^15.0.0",
49+
"stylelint": "^15.11.0",
5050
"stylelint-config-standard": "^33.0.0",
5151
"stylelint-config-standard-scss": "^11.1.0",
5252
"stylelint-scss": "^5.3.2",
5353
"typescript": "~5.8.3",
54-
"vue": "^3.2.38",
55-
"vue-eslint-parser": "^9.3.2"
54+
"vue": "^3.5.35",
55+
"vue-eslint-parser": "^9.4.3"
5656
},
5757
"dependencies": {
5858
"devextreme": "25.2.4",
5959
"devextreme-dist": "25.2.4",
6060
"devextreme-themebuilder": "25.2.4",
6161
"eslint-config-devextreme": "1.1.6",
6262
"jspdf": "^4.2.1",
63-
"jspdf-autotable": "^5.0.7"
63+
"jspdf-autotable": "^5.0.8"
6464
},
6565
"pre-commit": [
6666
"lint-bundles"

packages/angular/angular.json

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"prefix": "app",
3535
"architect": {
3636
"build": {
37-
"builder": "@angular-devkit/build-angular:browser",
37+
"builder": "@angular/build:application",
3838
"options": {
3939
"allowedCommonJsDependencies": [
4040
"jspdf-autotable",
@@ -49,16 +49,14 @@
4949
"rgbcolor",
5050
"jszip"
5151
],
52-
"outputPath": "build",
52+
"outputPath": {
53+
"base": "build"
54+
},
5355
"index": "src/index.html",
54-
"main": "src/main.ts",
55-
"polyfills": "src/polyfills.ts",
56+
"polyfills": ["src/polyfills.ts"],
5657
"tsConfig": "tsconfig.app.json",
5758
"inlineStyleLanguage": "scss",
58-
"assets": [
59-
"src/favicon.ico",
60-
"src/assets"
61-
],
59+
"assets": ["src/favicon.ico", "src/assets"],
6260
"styles": [
6361
"src/styles.scss",
6462
"devexpress-gantt/dist/dx-gantt.css",
@@ -79,7 +77,8 @@
7977
"bundleName": "theme-dark"
8078
}
8179
],
82-
"scripts": []
80+
"scripts": [],
81+
"browser": "src/main.ts"
8382
},
8483
"configurations": {
8584
"production": {
@@ -112,9 +111,7 @@
112111
}
113112
},
114113
"development": {
115-
"buildOptimizer": false,
116114
"optimization": false,
117-
"vendorChunk": true,
118115
"extractLicenses": false,
119116
"sourceMap": true,
120117
"namedChunks": true
@@ -123,7 +120,7 @@
123120
"defaultConfiguration": "production"
124121
},
125122
"serve": {
126-
"builder": "@angular-devkit/build-angular:dev-server",
123+
"builder": "@angular/build:dev-server",
127124
"configurations": {
128125
"production": {
129126
"buildTarget": "angular:build:production"
@@ -135,45 +132,35 @@
135132
"defaultConfiguration": "development"
136133
},
137134
"extract-i18n": {
138-
"builder": "@angular-devkit/build-angular:extract-i18n",
135+
"builder": "@angular/build:extract-i18n",
139136
"options": {
140137
"buildTarget": "angular:build"
141138
}
142139
},
143140
"test": {
144-
"builder": "@angular-devkit/build-angular:karma",
141+
"builder": "@angular/build:karma",
145142
"options": {
146143
"main": "src/test.ts",
147-
"polyfills": "src/polyfills.ts",
144+
"polyfills": ["src/polyfills.ts"],
148145
"tsConfig": "tsconfig.spec.json",
149146
"karmaConfig": "karma.conf.js",
150147
"inlineStyleLanguage": "scss",
151-
"assets": [
152-
"src/favicon.ico",
153-
"src/assets"
154-
],
155-
"styles": [
156-
"src/styles.scss"
157-
],
148+
"assets": ["src/favicon.ico", "src/assets"],
149+
"styles": ["src/styles.scss"],
158150
"scripts": []
159151
}
160152
},
161153
"lint": {
162154
"builder": "@angular-eslint/builder:lint",
163155
"options": {
164-
"lintFilePatterns": [
165-
"src/**/*.ts",
166-
"src/**/*.html"
167-
]
156+
"lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
168157
}
169158
}
170159
}
171160
}
172161
},
173162
"cli": {
174-
"schematicCollections": [
175-
"@angular-eslint/schematics"
176-
],
163+
"schematicCollections": ["@angular-eslint/schematics"],
177164
"analytics": false
178165
},
179166
"schematics": {

packages/angular/karma.conf.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@
55
module.exports = function (config) {
66
config.set({
77
basePath: '',
8-
frameworks: ['jasmine', '@angular-devkit/build-angular'],
8+
frameworks: ['jasmine'],
99
plugins: [
1010
require('karma-jasmine'),
1111
require('karma-chrome-launcher'),
1212
require('karma-jasmine-html-reporter'),
1313
require('karma-coverage'),
14-
require('@angular-devkit/build-angular/plugins/karma'),
1514
],
1615
client: {
1716
jasmine: {
@@ -28,10 +27,7 @@ module.exports = function (config) {
2827
coverageReporter: {
2928
dir: require('path').join(__dirname, './coverage/angular'),
3029
subdir: '.',
31-
reporters: [
32-
{ type: 'html' },
33-
{ type: 'text-summary' },
34-
],
30+
reporters: [{ type: 'html' }, { type: 'text-summary' }],
3531
},
3632
reporters: ['progress', 'kjhtml'],
3733
port: 9876,

packages/angular/package.json

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
"@angular/router": "catalog:angular",
2323
"devexpress-gantt": "^4.1.33",
2424
"devextreme-angular": "catalog:angular",
25-
"devextreme-schematics": "^1.10.1",
25+
"devextreme-schematics": "^1.15.0",
2626
"rxjs": "^7.8.2",
2727
"exceljs": "3.10.0",
2828
"file-saver-es": "2.0.5",
29-
"luxon": "^3.3.0",
29+
"luxon": "^3.7.2",
30+
"tslib": "^2.8.1",
3031
"micromark": "^4.0.2",
3132
"openai": "^6.42.0",
32-
"tslib": "^2.2.0",
3333
"zone.js": "catalog:angular"
3434
},
3535
"devDependencies": {
@@ -42,18 +42,20 @@
4242
"@angular/build": "catalog:angular",
4343
"@angular/cli": "catalog:angular",
4444
"@angular/compiler-cli": "catalog:angular",
45+
"@types/file-saver-es": "^2.0.3",
4546
"@types/jasmine": "^4.3.0",
46-
"@types/node": "^20.10.4",
47-
"@typescript-eslint/eslint-plugin": "^8.46.2",
48-
"@typescript-eslint/parser": "^8.46.2",
47+
"@types/luxon": "^3.7.1",
48+
"@types/node": "^24.12.4",
49+
"@typescript-eslint/eslint-plugin": "^8.60.1",
50+
"@typescript-eslint/parser": "^8.60.1",
4951
"eslint-plugin-jest": "^29.0.1",
50-
"eslint": "^8.55.0",
52+
"eslint": "^10.4.1",
5153
"jasmine-core": "^4.5.0",
5254
"karma": "^6.4.4",
53-
"karma-chrome-launcher": "~3.1.0",
55+
"karma-chrome-launcher": "~3.1.1",
5456
"karma-coverage": "~2.0.3",
5557
"karma-jasmine": "^5.1.0",
5658
"karma-jasmine-html-reporter": "^1.7.0",
5759
"typescript": "catalog:angular"
5860
}
59-
}
61+
}

packages/angular/src/app/components/library/app-header/app-header.component.html

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
<header>
22
<dx-toolbar class="header-toolbar">
3-
<dxi-item
4-
*ngIf="menuToggleEnabled"
5-
location="before"
6-
widget="dxButton"
7-
cssClass="menu-button"
8-
[options]="{
3+
@if (menuToggleEnabled) {
4+
<dxi-item
5+
location="before"
6+
widget="dxButton"
7+
cssClass="menu-button"
8+
[options]="{
99
icon: 'menu',
1010
stylingMode: 'text',
1111
onClick: toggleMenu
1212
}"
13-
>
14-
</dxi-item>
15-
<dxi-item
16-
location="before"
17-
cssClass="header-title"
18-
*ngIf="title"
19-
[text]="title"
20-
>
21-
</dxi-item>
13+
>
14+
</dxi-item>
15+
}
16+
@if (title) {
17+
<dxi-item
18+
location="before"
19+
cssClass="header-title"
20+
[text]="title"
21+
>
22+
</dxi-item>
23+
}
2224

2325
<dxi-item
2426
location="after"
@@ -49,7 +51,7 @@
4951
</dxi-item>
5052

5153
<dxi-item location="after" locateInMenu="auto" menuItemTemplate="menuItem">
52-
<div *dxTemplate="let data of 'item'">
54+
<div *dxTemplate>
5355
<user-panel
5456
[user]="user"
5557
[menuItems]="userMenuItems"

packages/angular/src/app/components/library/app-header/app-header.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { DxButtonModule } from 'devextreme-angular/ui/button';
77
import { DxToolbarModule } from 'devextreme-angular/ui/toolbar';
88

99
import { UserPanelComponent } from '../user-panel/user-panel.component';
10-
import { AuthService, IUser } from 'src/app/services';
10+
import { AuthService, defaultUser, IUser } from 'src/app/services';
1111
import { ThemeSwitcherComponent } from 'src/app/components/library/theme-switcher/theme-switcher.component';
1212

1313
@Component({
@@ -35,7 +35,7 @@ export class AppHeaderComponent implements OnInit {
3535

3636
private authService = inject(AuthService);
3737

38-
user: IUser | null = { email: '' };
38+
user: IUser | null = defaultUser;
3939

4040
userMenuItems = [
4141
{

packages/angular/src/app/components/library/card-activities/card-activities.component.html

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
<div id="activities-list" [ngClass]="activities ? 'load' : null">
2-
<dx-list
3-
*ngIf="activities"
4-
class="activities-list"
5-
[items]="activities"
6-
[scrollingEnabled]="false"
7-
>
8-
<div *dxTemplate="let item of 'item'">
9-
<div class="activity">
10-
<div class="name">{{ item.name }}</div>
11-
<div class="date" [ngClass]="{ by: showBy }">
12-
<span>{{ item.date | date: 'MM/dd/yyyy' }}</span>
13-
<span *ngIf="showBy">by</span>
14-
<span>{{ item.manager }}</span>
2+
@if (activities && !isLoading) {
3+
<dx-list
4+
class="activities-list"
5+
[items]="activities"
6+
[scrollingEnabled]="false"
7+
>
8+
<div *dxTemplate="let item of 'item'">
9+
<div class="activity">
10+
<div class="name">{{ item.name }}</div>
11+
<div class="date" [ngClass]="{ by: showBy }">
12+
<span>{{ item.date | date: 'MM/dd/yyyy' }}</span>
13+
@if (showBy) {
14+
<span>by</span>
15+
}
16+
<span>{{ item.manager }}</span>
17+
</div>
18+
<card-menu [items]="activityMenuItems"> </card-menu>
1519
</div>
16-
<card-menu [items]="activityMenuItems"> </card-menu>
1720
</div>
18-
</div>
19-
</dx-list>
21+
</dx-list>
22+
}
2023

2124
<dx-load-panel
2225
container="#activities-list"

packages/angular/src/app/components/library/card-activities/card-activities.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { Activity } from 'src/app/types/activities';
1919
]
2020
})
2121
export class CardActivitiesComponent {
22-
@Input() activities: Activity[];
22+
@Input() activities?: Activity[];
2323

2424
@Input() showBy? = false;
2525

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
<div class="card {{ contentClass }}">
22
<div class="header">
33
<card-menu [visible]="isMenuVisible" [items]="menuItems"> </card-menu>
4-
<div *ngIf="titleText" class="title">{{ titleText }}</div>
4+
@if (titleText) {
5+
<div class="title">{{ titleText }}</div>
6+
}
57
<ng-content select="[filter]"></ng-content>
68
</div>
7-
<div *ngIf="!isLoading" class="content">
8-
<ng-content></ng-content>
9-
</div>
9+
@if (!isLoading) {
10+
<div class="content">
11+
<ng-content></ng-content>
12+
</div>
13+
}
1014
</div>

0 commit comments

Comments
 (0)