Skip to content

Commit 3aaf9e6

Browse files
feat: add compatibility with Angular 21
This adds support for Angular 21 and removes support for all previous versions. fixes #122 BREAKING CHANGE: Angular v21 is now required as peer dependency
1 parent cf83717 commit 3aaf9e6

20 files changed

+7572
-4741
lines changed

package-lock.json

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

package.json

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,36 +36,34 @@
3636
"dev:ng-add": "npm run build:lib && npm link ./dist/ngx-matomo-client && ng add ngx-matomo-client --project demo"
3737
},
3838
"dependencies": {
39-
"@angular/animations": "^20.0.1",
40-
"@angular/cdk": "^20.0.2",
41-
"@angular/common": "^20.0.1",
42-
"@angular/compiler": "^20.0.1",
43-
"@angular/core": "^20.0.1",
44-
"@angular/forms": "^20.0.1",
45-
"@angular/material": "^20.0.2",
46-
"@angular/platform-browser": "^20.0.1",
47-
"@angular/platform-browser-dynamic": "^20.0.1",
48-
"@angular/router": "^20.0.1",
39+
"@angular/cdk": "^21.0.0",
40+
"@angular/common": "^21.0.0",
41+
"@angular/compiler": "^21.0.0",
42+
"@angular/core": "^21.0.0",
43+
"@angular/forms": "^21.0.0",
44+
"@angular/material": "^21.0.0",
45+
"@angular/platform-browser": "^21.0.0",
46+
"@angular/router": "^21.0.0",
4947
"rxjs": "~7.5.5",
5048
"tslib": "^2.8.1",
5149
"zone.js": "~0.15.0"
5250
},
5351
"devDependencies": {
54-
"@angular-devkit/core": "^20.0.2",
55-
"@angular-devkit/schematics": "^20.0.2",
56-
"@angular/build": "^20.0.1",
57-
"@angular/cli": "^20.0.1",
58-
"@angular/compiler-cli": "^20.0.1",
52+
"@angular-devkit/core": "^21.0.0",
53+
"@angular-devkit/schematics": "^21.0.0",
54+
"@angular/build": "^21.0.0",
55+
"@angular/cli": "^21.0.0",
56+
"@angular/compiler-cli": "^21.0.0",
5957
"@commitlint/cli": "^19.6.1",
6058
"@commitlint/config-conventional": "^19.6.0",
61-
"@schematics/angular": "^20.0.2",
59+
"@schematics/angular": "^21.0.0",
6260
"@semantic-release/changelog": "^6.0.3",
6361
"@semantic-release/exec": "^7.1.0",
6462
"@semantic-release/git": "^10.0.1",
6563
"@types/jasmine": "~4.6.4",
6664
"@types/ncp": "^2.0.8",
6765
"@types/node": "^22.10.5",
68-
"angular-eslint": "^20.0.0",
66+
"angular-eslint": "^20.6.0",
6967
"cheerio": "^1.0.0",
7068
"compare-func": "^2.0.0",
7169
"eslint": "^9.28.0",
@@ -84,15 +82,15 @@
8482
"markdown-toc": "^1.2.0",
8583
"ncp": "^2.0.0",
8684
"nerf-dart": "^1.0.0",
87-
"ng-packagr": "^20.0.0",
85+
"ng-packagr": "^21.0.0",
8886
"node-fetch": "^3.3.2",
8987
"prettier": "3.5.3",
9088
"protractor": "~7.0.0",
9189
"semantic-release": "^24.2.5",
9290
"semver": "^7.7.2",
9391
"ts-node": "~10.9.2",
94-
"typescript": "~5.8.3",
95-
"typescript-eslint": "^8.33.1"
92+
"typescript": "~5.9.3",
93+
"typescript-eslint": "^8.39.1"
9694
},
9795
"private": true,
9896
"repository": {

projects/demo/src/app/track-event-component/track-event-component.component.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NO_ERRORS_SCHEMA } from '@angular/core';
22
import { ComponentFixture, TestBed } from '@angular/core/testing';
3-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
43
import { provideMatomoTesting } from 'ngx-matomo-client/testing';
54
import { TrackEventComponentComponent } from './track-event-component.component';
65

@@ -10,7 +9,7 @@ describe('TrackEventComponentComponent', () => {
109

1110
beforeEach(() => {
1211
TestBed.configureTestingModule({
13-
imports: [BrowserAnimationsModule, TrackEventComponentComponent],
12+
imports: [TrackEventComponentComponent],
1413
providers: [
1514
provideMatomoTesting({
1615
trackerUrl: '',

projects/demo/src/app/track-event-template/track-event-template.component.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NO_ERRORS_SCHEMA } from '@angular/core';
22
import { ComponentFixture, TestBed } from '@angular/core/testing';
3-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
43
import { provideMatomoTesting } from 'ngx-matomo-client/testing';
54
import { TrackEventTemplateComponent } from './track-event-template.component';
65

@@ -10,7 +9,7 @@ describe('TrackEventTemplateComponent', () => {
109

1110
beforeEach(() => {
1211
TestBed.configureTestingModule({
13-
imports: [BrowserAnimationsModule, TrackEventTemplateComponent],
12+
imports: [TrackEventTemplateComponent],
1413
providers: [
1514
provideMatomoTesting({
1615
trackerUrl: '',

projects/demo/src/app/track-page-view-without-router/track-page-view-without-router.component.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NO_ERRORS_SCHEMA } from '@angular/core';
22
import { ComponentFixture, TestBed } from '@angular/core/testing';
3-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
43
import { provideMatomoTesting } from 'ngx-matomo-client/testing';
54
import { TrackPageViewWithoutRouterComponent } from './track-page-view-without-router.component';
65

@@ -10,7 +9,7 @@ describe('TrackPageViewWithoutRouterComponent', () => {
109

1110
beforeEach(() => {
1211
TestBed.configureTestingModule({
13-
imports: [BrowserAnimationsModule, TrackPageViewWithoutRouterComponent],
12+
imports: [TrackPageViewWithoutRouterComponent],
1413
providers: [
1514
provideMatomoTesting({
1615
trackerUrl: '',

projects/demo/src/app/track-simple-click-event/track-simple-click-event.component.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NO_ERRORS_SCHEMA } from '@angular/core';
22
import { ComponentFixture, TestBed } from '@angular/core/testing';
3-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
43
import { provideMatomoTesting } from 'ngx-matomo-client/testing';
54
import { TrackSimpleClickEventComponent } from './track-simple-click-event.component';
65

@@ -10,7 +9,7 @@ describe('TrackSimpleClickEventComponent', () => {
109

1110
beforeEach(() => {
1211
TestBed.configureTestingModule({
13-
imports: [BrowserAnimationsModule, TrackSimpleClickEventComponent],
12+
imports: [TrackSimpleClickEventComponent],
1413
providers: [
1514
provideMatomoTesting({
1615
trackerUrl: '',

projects/demo/src/main.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { enableProdMode, importProvidersFrom } from '@angular/core';
1+
import { enableProdMode, importProvidersFrom, provideZoneChangeDetection } from '@angular/core';
22
import { FormsModule } from '@angular/forms';
33
import { MatButtonModule } from '@angular/material/button';
44
import { MatFormFieldModule } from '@angular/material/form-field';
55
import { MatIconModule } from '@angular/material/icon';
66
import { MatInputModule } from '@angular/material/input';
77
import { MatTabsModule } from '@angular/material/tabs';
88
import { bootstrapApplication, BrowserModule } from '@angular/platform-browser';
9-
import { provideAnimations } from '@angular/platform-browser/animations';
109
import { provideMatomo, withRouter } from 'ngx-matomo-client';
1110
import { AppRoutingModule } from './app/app-routing.module';
1211
import { AppComponent } from './app/app.component';
@@ -19,6 +18,7 @@ if (environment.production) {
1918

2019
bootstrapApplication(AppComponent, {
2120
providers: [
21+
provideZoneChangeDetection(),
2222
importProvidersFrom(
2323
BrowserModule,
2424
FormsModule,
@@ -29,7 +29,6 @@ bootstrapApplication(AppComponent, {
2929
MatButtonModule,
3030
MatIconModule,
3131
),
32-
provideAnimations(),
3332
provideMatomo(
3433
{
3534
siteId: environment.matomoSiteId,

projects/demo/src/test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
import 'zone.js/testing';
44
import { getTestBed } from '@angular/core/testing';
5-
import {
6-
BrowserDynamicTestingModule,
7-
platformBrowserDynamicTesting,
8-
} from '@angular/platform-browser-dynamic/testing';
5+
import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
96

107
// First, initialize the Angular testing environment.
11-
getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
8+
getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting());

projects/ngx-matomo-client/core/directives/matomo-opt-out-form.component.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, LOCALE_ID } from '@angular/core';
1+
import { Component, LOCALE_ID, provideZoneChangeDetection } from '@angular/core';
22
import { fakeAsync, flush, TestBed } from '@angular/core/testing';
33
import { By, DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
44
import { provideMatomo } from '../providers';
@@ -100,6 +100,7 @@ describe('MatomoOptOutFormComponent', () => {
100100
imports: [MatomoOptOutFormComponent],
101101
providers: [
102102
provideMatomo({ siteId: 1, trackerUrl: 'http://localhost' }),
103+
provideZoneChangeDetection(),
103104
provideTestingTracker(),
104105
{
105106
provide: LOCALE_ID,

projects/ngx-matomo-client/core/directives/matomo-track-click.directive.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, ElementRef, ViewChild } from '@angular/core';
1+
import { Component, ElementRef, provideZoneChangeDetection, ViewChild } from '@angular/core';
22
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
33
import { MatomoTracker } from '../tracker/matomo-tracker.service';
44
import { MatomoTrackClickDirective } from './matomo-track-click.directive';
@@ -35,6 +35,7 @@ describe('MatomoTrackClickDirective', () => {
3535
beforeEach(waitForAsync(() => {
3636
TestBed.configureTestingModule({
3737
providers: [
38+
provideZoneChangeDetection(),
3839
{
3940
provide: MatomoTracker,
4041
useValue: jasmine.createSpyObj<MatomoTracker>('MatomoTracker', ['trackEvent']),

0 commit comments

Comments
 (0)