Skip to content

Commit 6c5ee3d

Browse files
Development: Update to Angular 20 (#11168)
1 parent d4013e0 commit 6c5ee3d

File tree

154 files changed

+3024
-3880
lines changed

Some content is hidden

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

154 files changed

+3024
-3880
lines changed

jest.config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ module.exports = {
9696
coverageThreshold: {
9797
global: {
9898
// TODO: in the future, the following values should increase to at least 90%
99-
statements: 89.13,
100-
branches: 75.16,
101-
functions: 82.94,
102-
lines: 89.21,
99+
statements: 89.61,
100+
branches: 75.83,
101+
functions: 83.50,
102+
lines: 89.68,
103103
},
104104
},
105105
// 'json-summary' reporter is used by supporting_scripts/code-coverage/module-coverage-client/check-client-module-coverage.mjs

package-lock.json

Lines changed: 2503 additions & 3350 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -13,38 +13,38 @@
1313
"node_modules"
1414
],
1515
"dependencies": {
16-
"@angular/animations": "19.2.14",
17-
"@angular/cdk": "19.2.18",
18-
"@angular/common": "19.2.14",
19-
"@angular/compiler": "19.2.14",
20-
"@angular/core": "19.2.14",
21-
"@angular/forms": "19.2.14",
22-
"@angular/localize": "19.2.14",
23-
"@angular/material": "19.2.18",
24-
"@angular/platform-browser": "19.2.14",
25-
"@angular/platform-browser-dynamic": "19.2.14",
26-
"@angular/router": "19.2.14",
27-
"@angular/service-worker": "19.2.14",
16+
"@angular/animations": "20.1.2",
17+
"@angular/cdk": "20.1.2",
18+
"@angular/common": "20.1.2",
19+
"@angular/compiler": "20.1.2",
20+
"@angular/core": "20.1.2",
21+
"@angular/forms": "20.1.2",
22+
"@angular/localize": "20.1.2",
23+
"@angular/material": "20.1.2",
24+
"@angular/platform-browser": "20.1.2",
25+
"@angular/platform-browser-dynamic": "20.1.2",
26+
"@angular/router": "20.1.2",
27+
"@angular/service-worker": "20.1.2",
2828
"@ctrl/ngx-emoji-mart": "9.2.0",
29-
"@danielmoncada/angular-datetime-picker": "19.1.2",
29+
"@danielmoncada/angular-datetime-picker": "20.0.0",
3030
"@fingerprintjs/fingerprintjs": "4.6.2",
31-
"@fortawesome/angular-fontawesome": "1.0.0",
31+
"@fortawesome/angular-fontawesome": "2.0.1",
3232
"@fortawesome/fontawesome-svg-core": "6.7.2",
3333
"@fortawesome/free-regular-svg-icons": "6.7.2",
3434
"@fortawesome/free-solid-svg-icons": "6.7.2",
3535
"@ls1intum/apollon": "3.4.0",
36-
"@ng-bootstrap/ng-bootstrap": "18.0.0",
36+
"@ng-bootstrap/ng-bootstrap": "19.0.1",
3737
"@ngx-translate/core": "16.0.4",
3838
"@ngx-translate/http-loader": "16.0.1",
39-
"@sentry/angular": "9.32.0",
40-
"@siemens/ngx-datatable": "22.4.1",
41-
"@swimlane/ngx-charts": "22.0.0",
42-
"@swimlane/ngx-graph": "10.0.0",
43-
"@vscode/codicons": "0.0.36",
44-
"@vscode/markdown-it-katex": "1.1.1",
39+
"@sentry/angular": "9.40.0",
40+
"@siemens/ngx-datatable": "24.1.0",
41+
"@swimlane/ngx-charts": "23.0.0-alpha.0",
42+
"@swimlane/ngx-graph": "11.0.0-alpha.0",
43+
"@vscode/codicons": "0.0.38",
44+
"@vscode/markdown-it-katex": "1.1.2",
4545
"bootstrap": "5.3.7",
4646
"compare-versions": "6.1.1",
47-
"core-js": "3.43.0",
47+
"core-js": "3.44.0",
4848
"crypto-js": "4.2.0",
4949
"dayjs": "1.11.13",
5050
"diff-match-patch-typescript": "1.1.0",
@@ -65,13 +65,13 @@
6565
"markdown-it-highlightjs": "4.2.0",
6666
"mobile-drag-drop": "3.0.0-rc.0",
6767
"monaco-editor": "0.52.2",
68-
"ngx-infinite-scroll": "19.0.0",
68+
"ngx-infinite-scroll": "20.0.0",
6969
"ngx-webstorage": "19.0.1",
7070
"pako": "2.1.0",
7171
"papaparse": "5.5.3",
7272
"pdf-lib": "1.17.1",
73-
"pdfjs-dist": "5.3.31",
74-
"primeng": "19.1.3",
73+
"pdfjs-dist": "5.3.93",
74+
"primeng": "20.0.0",
7575
"rxjs": "7.8.2",
7676
"simple-statistics": "7.8.8",
7777
"smoothscroll-polyfill": "0.4.4",
@@ -90,86 +90,86 @@
9090
"cookie": "1.0.2",
9191
"critters": "0.0.25",
9292
"debug": "4.4.1",
93-
"esbuild": "0.25.5",
93+
"esbuild": "0.25.6",
9494
"eslint-plugin-deprecation": {
95-
"eslint": "^9.29.0"
95+
"eslint": "^9.31.0"
9696
},
9797
"express": "5.1.0",
9898
"jsdom": "26.1.0",
9999
"katex": "0.16.22",
100-
"ng-mocks": {
101-
"@angular/common": "^19.2.0",
102-
"@angular/core": "^19.2.0",
103-
"@angular/forms": "^19.2.0",
104-
"@angular/platform-browser": "^19.2.0"
100+
"ngx-webstorage": {
101+
"@angular/common": "^20.0.0",
102+
"@angular/core": "^20.0.0",
103+
"@angular/platform-browser": "^20.0.0"
105104
},
106105
"postcss": "8.5.6",
107106
"rimraf": "6.0.1",
108107
"semver": "7.7.2",
109108
"tough-cookie": "5.1.2",
110-
"vite": "6.3.5",
111-
"webpack": "5.99.9",
109+
"vite": "7.0.5",
110+
"webpack": "5.100.2",
112111
"webpack-dev-middleware": "7.4.2",
113112
"webpack-dev-server": "5.2.2",
114113
"word-wrap": "1.2.5",
115-
"ws": "8.18.2",
114+
"ws": "8.18.3",
116115
"yargs-parser": "22.0.0"
117116
},
118117
"devDependencies": {
119-
"@analogjs/vite-plugin-angular": "1.19.0",
120-
"@angular-builders/jest": "19.0.1",
121-
"@angular-eslint/builder": "19.8.0",
122-
"@angular-eslint/eslint-plugin": "19.8.0",
123-
"@angular-eslint/eslint-plugin-template": "19.8.0",
124-
"@angular-eslint/schematics": "19.8.0",
125-
"@angular-eslint/template-parser": "19.8.0",
126-
"@angular/build": "19.2.15",
127-
"@angular/cli": "19.2.15",
128-
"@angular/compiler-cli": "19.2.14",
129-
"@angular/language-service": "19.2.14",
130-
"@sentry/types": "9.32.0",
118+
"@analogjs/vite-plugin-angular": "1.19.1",
119+
"@angular-builders/jest": "20.0.0",
120+
"@angular-devkit/build-angular": "20.1.1",
121+
"@angular-eslint/builder": "20.1.1",
122+
"@angular-eslint/eslint-plugin": "20.1.1",
123+
"@angular-eslint/eslint-plugin-template": "20.1.1",
124+
"@angular-eslint/schematics": "20.1.1",
125+
"@angular-eslint/template-parser": "20.1.1",
126+
"@angular/build": "20.1.1",
127+
"@angular/cli": "20.1.1",
128+
"@angular/compiler-cli": "20.1.2",
129+
"@angular/language-service": "20.1.2",
130+
"@sentry/types": "9.40.0",
131131
"@testing-library/angular": "17.4.0",
132132
"@types/crypto-js": "4.2.2",
133133
"@types/d3-shape": "3.1.7",
134134
"@types/emoji-js": "3.5.2",
135135
"@types/jest": "29.5.14",
136136
"@types/lodash-es": "4.17.12",
137137
"@types/markdown-it": "14.1.2",
138-
"@types/node": "22.15.31",
138+
"@types/node": "22.15.33",
139139
"@types/pako": "2.0.3",
140140
"@types/papaparse": "5.3.16",
141141
"@types/smoothscroll-polyfill": "0.3.4",
142142
"@types/turndown": "5.0.5",
143143
"@types/uuid": "10.0.0",
144-
"@typescript-eslint/eslint-plugin": "8.35.0",
145-
"@typescript-eslint/parser": "8.35.0",
146-
"@typescript-eslint/utils": "8.35.0",
147-
"angular-eslint": "19.8.0",
144+
"@typescript-eslint/eslint-plugin": "8.37.0",
145+
"@typescript-eslint/parser": "8.37.0",
146+
"@typescript-eslint/utils": "8.37.0",
147+
"angular-eslint": "20.1.1",
148148
"cross-env": "7.0.3",
149-
"eslint": "9.29.0",
149+
"eslint": "9.31.0",
150150
"eslint-config-prettier": "10.1.5",
151151
"eslint-plugin-deprecation": "3.0.0",
152-
"eslint-plugin-jest": "28.13.5",
152+
"eslint-plugin-jest": "29.0.1",
153153
"eslint-plugin-jest-extended": "3.0.0",
154154
"eslint-plugin-prettier": "5.5.1",
155155
"folder-hash": "4.1.1",
156156
"husky": "9.1.7",
157157
"jest": "29.7.0",
158158
"jest-canvas-mock": "2.5.2",
159159
"jest-date-mock": "1.0.10",
160-
"jest-extended": "5.0.3",
160+
"jest-extended": "6.0.0",
161161
"jest-fail-on-console": "3.3.1",
162162
"jest-junit": "16.0.0",
163163
"jest-preset-angular": "14.6.0",
164164
"lint-staged": "16.1.2",
165165
"ng-mocks": "14.13.5",
166166
"patch-package": "8.0.0",
167-
"prettier": "3.6.1",
167+
"prettier": "3.6.2",
168168
"rimraf": "6.0.1",
169169
"sass": "1.89.2",
170170
"ts-jest": "29.4.0",
171171
"typescript": "5.8.3",
172-
"typescript-eslint": "8.35.0",
172+
"typescript-eslint": "8.37.0",
173173
"vite-tsconfig-paths": "5.1.4",
174174
"vitest": "3.2.4",
175175
"weak-napi": "2.0.2"

patches/@swimlane+ngx-graph+10.0.0.patch

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/node_modules/@swimlane/ngx-graph/fesm2022/swimlane-ngx-graph.mjs b/node_modules/@swimlane/ngx-graph/fesm2022/swimlane-ngx-graph.mjs
2+
index 84d6b7f..a6584da 100644
3+
--- a/node_modules/@swimlane/ngx-graph/fesm2022/swimlane-ngx-graph.mjs
4+
+++ b/node_modules/@swimlane/ngx-graph/fesm2022/swimlane-ngx-graph.mjs
5+
@@ -1482,7 +1482,7 @@ class GraphComponent {
6+
if (layoutSettings) {
7+
this.setLayoutSettings(this.layoutSettings);
8+
}
9+
- if (this.layout && this.nodes.length && this.links.length) {
10+
+ if (this.layout && this.nodes && this.links) {
11+
this.update();
12+
}
13+
}

src/main/webapp/app/assessment/manage/assessment-layout/assessment-layout.component.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@ import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
1616
import { AssessmentNoteComponent } from 'app/assessment/manage/assessment-note/assessment-note.component';
1717
import { TranslateService } from '@ngx-translate/core';
1818
import { MockTranslateService } from 'test/helpers/mocks/service/mock-translate.service';
19+
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
1920

2021
describe('AssessmentLayoutComponent', () => {
2122
let component: AssessmentLayoutComponent;
2223
let fixture: ComponentFixture<AssessmentLayoutComponent>;
2324

2425
beforeEach(() => {
2526
TestBed.configureTestingModule({
26-
imports: [MockModule(NgbTooltipModule), MockComponent(ComplaintsForTutorComponent)],
27+
imports: [MockModule(NgbTooltipModule), MockComponent(ComplaintsForTutorComponent), FaIconComponent],
2728
declarations: [
2829
AssessmentLayoutComponent,
2930
AssessmentHeaderComponent,

src/main/webapp/app/assessment/manage/grading-system/grading-key-overview/grading-key-overview.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ describe('GradingKeyOverviewComponent', () => {
4141
imports: [
4242
GradingKeyOverviewComponent,
4343
MockComponent(GradingKeyTableComponent),
44-
MockComponent(FaIconComponent),
44+
FaIconComponent,
4545
MockPipe(ArtemisTranslatePipe),
4646
MockDirective(TranslateDirective),
4747
MockPipe(SafeHtmlPipe),

src/main/webapp/app/assessment/manage/structured-grading-instructions-assessment-layout/structured-grading-instructions-assessment-layout.component.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ import { HelpIconComponent } from 'app/shared/components/help-icon/help-icon.com
1212
import { NgbCollapse, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
1313
import { MockTranslateService } from 'test/helpers/mocks/service/mock-translate.service';
1414
import { TranslateService } from '@ngx-translate/core';
15+
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
1516

1617
describe('StructuredGradingInstructionsAssessmentLayoutComponent', () => {
1718
let comp: StructuredGradingInstructionsAssessmentLayoutComponent;
1819
let fixture: ComponentFixture<StructuredGradingInstructionsAssessmentLayoutComponent>;
1920

2021
beforeEach(() => {
2122
TestBed.configureTestingModule({
22-
imports: [MockDirective(NgbTooltip), MockDirective(NgbCollapse)],
23+
imports: [MockDirective(NgbTooltip), MockDirective(NgbCollapse), FaIconComponent],
2324
declarations: [
2425
StructuredGradingInstructionsAssessmentLayoutComponent,
2526
MockComponent(HelpIconComponent),

src/main/webapp/app/assessment/shared/assessment-dashboard/exercise-dashboard/exercise-assessment-dashboard.component.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import { TutorParticipationService } from 'app/assessment/shared/assessment-dash
6565
import { InfoPanelComponent } from 'app/assessment/shared/info-panel/info-panel.component';
6666
import { SecondCorrectionEnableButtonComponent } from 'app/assessment/shared/assessment-dashboard/exercise-dashboard/second-correction-button/second-correction-enable-button.component';
6767
import { LanguageTableCellComponent } from 'app/assessment/shared/assessment-dashboard/exercise-dashboard/language-table-cell/language-table-cell.component';
68+
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
6869

6970
describe('ExerciseAssessmentDashboardComponent', () => {
7071
let comp: ExerciseAssessmentDashboardComponent;
@@ -206,7 +207,7 @@ describe('ExerciseAssessmentDashboardComponent', () => {
206207
}),
207208
},
208209
} as any as ActivatedRoute;
209-
const imports = [RouterModule.forRoot([]), ExerciseAssessmentDashboardComponent];
210+
const imports = [RouterModule.forRoot([]), ExerciseAssessmentDashboardComponent, FaIconComponent];
210211

211212
const declarations = [
212213
MockComponent(TutorLeaderboardComponent),

src/main/webapp/app/atlas/manage/import-standardized-competencies/course-import-standardized-competencies.spec.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { StandardizedCompetencyFilterComponent } from 'app/atlas/shared/standard
2222
import { StandardizedCompetencyService } from 'app/atlas/shared/standardized-competencies/standardized-competency.service';
2323
import { StandardizedCompetencyDetailComponent } from 'app/atlas/shared/standardized-competencies/standardized-competency-detail.component';
2424
import { KnowledgeAreaTreeComponent } from 'app/atlas/shared/standardized-competencies/knowledge-area-tree.component';
25+
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
2526

2627
describe('CourseImportStandardizedCompetenciesComponent', () => {
2728
let componentFixture: ComponentFixture<CourseImportStandardizedCompetenciesComponent>;
@@ -33,7 +34,13 @@ describe('CourseImportStandardizedCompetenciesComponent', () => {
3334

3435
beforeEach(() => {
3536
TestBed.configureTestingModule({
36-
imports: [CourseImportStandardizedCompetenciesComponent, StandardizedCompetencyFilterComponent, StandardizedCompetencyDetailComponent, KnowledgeAreaTreeComponent],
37+
imports: [
38+
CourseImportStandardizedCompetenciesComponent,
39+
StandardizedCompetencyFilterComponent,
40+
StandardizedCompetencyDetailComponent,
41+
KnowledgeAreaTreeComponent,
42+
FaIconComponent,
43+
],
3744
declarations: [
3845
StandardizedCompetencyFilterStubComponent,
3946
StandardizedCompetencyDetailStubComponent,

0 commit comments

Comments
 (0)