Conversation
BREAKING CHANGE: angular 20 or higher is now required to use this package
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1771 +/- ##
==========================================
+ Coverage 97.49% 97.91% +0.41%
==========================================
Files 39 42 +3
Lines 679 671 -8
Branches 143 145 +2
==========================================
- Hits 662 657 -5
Misses 1 1
+ Partials 16 13 -3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Co-authored-by: mattlewis92 <6425649+mattlewis92@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
BREAKING CHANGE: the compiled .css is no longer auto prefixed. If using the angular CLI, it will automatically do this for you when you build your app
… functions (#1774) BREAKING CHANGE: if extending the `CalendarWeekViewComponent` or `CalendarMonthViewComponent` components, or using custom templates, all track by helper functions have been removed in favor of `@for` and inlining the `track` expression inside the template Before: ``` <ng-template let-day="day" let-trackByEventId="trackByEventId"> <div *ngFor="let event of day.events; trackBy: trackByEventId">{{ event.title }}</div> </ng-template> ``` After: ``` <ng-template let-day="day"> @for (event of day.events; track event.id ?? event) { <div>{{ event.title }}</div> } </ng-template> ```
…tor based DI (#1776) BREAKING CHANGE: if extending any of the built in classes and you implement a constructor, you no longer need to call `super()` with any injectables
…es instead BREAKING CHANGE: native Intl.PluralRules is now required to use this library, this should be available in all browsers supported by angular though
… in ng-add schematic (#1783) Co-authored-by: mattlewis92 <6425649+mattlewis92@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
BREAKING CHANGE: date-fns v4 is now required to use this package
There was a problem hiding this comment.
Pull Request Overview
This PR updates angular-calendar from version 0.31.1 to 0.32.0, modernizing the codebase to work with Angular 20+ and implementing several architectural improvements including migrating to standalone components, new control flow syntax, and the inject() pattern.
Key changes:
- Migration to standalone components and deprecation of NgModule-based CalendarModule
- Adoption of Angular's new control flow syntax (@if, @for, @switch instead of *ngIf, *ngFor, *ngSwitch)
- Migration from constructor injection to the inject() function pattern
- Update from Sass @import to @use syntax for better module system compliance
Reviewed Changes
Copilot reviewed 269 out of 271 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig-date-adapters.json | Updates module and target to ES2015 for modern JavaScript support |
| projects/demos/styles.scss | Migrates from @import to @use syntax for Sass imports |
| projects/demos/main.ts | Complete rewrite from NgModule to standalone bootstrapping with provider configuration |
| projects/demos/index.html | Updates title to reflect Angular 20.2+ compatibility |
| Multiple template files | Systematic migration to new Angular control flow syntax |
| Multiple component files | Migration to standalone components with inject() pattern and proper imports |
| Multiple module files | Removal of NgModule files as part of standalone migration |
| Multiple sources files | Updates to new import system with text loader attributes |
Comments suppressed due to low confidence (1)
projects/demos/main.ts:1
- The @ts-expect-error comment is repeated throughout the codebase. Consider adding a more descriptive comment explaining why TypeScript cannot provide types for the 'with { loader: "text" }' syntax and potentially referencing the relevant TypeScript issue or documentation.
import { enableProdMode, importProvidersFrom } from '@angular/core';
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
everything seems to work fine except my tests, it worked with 31.1, but with next they fail with this error: I use nx with vitest via analogjs for testing... |
Any chance you could put together a minimal repro where I can reproduce the issue? I'm not sure what would have changed there to cause this issue (especially as |
|
I'll see if I get time later today or tomorrow... |
I'm unable to reproduce my end - I made a new project via Installed these deps: Set the root app to: |
|
I'm guessing it's only a problem when using pnpm, I'll try and verify |
|
here is a repro: https://github.com/atsjo/repro.git Basically the same as you did, but stripped some generated setup, used pnpm and running zoneless... if running with pool: 'thread' as in the repro it fails with This setup works fine with the former angular-calendar... |
|
tried using your exact description with npm and minimal changes using zonejs... still the same problem, repro here: https://github.com/atsjo/vitest-angular-test.git clone -> npm i -> npm exec nx test I have tested this with node 22.18 and node 24.6, but only on windows... |
Thank you, I was able to reproduce! Hacking around locally I was able to fix the issue by adding an |
|
calendar-utils@0.12.1 fixed the problem with that package, now it fails with the positioning package, requiring the same fix |
Thanks, working on it! |
|
@atsjo I just published |
|
thanks! new version run tests fine in the project I actually use it as well... When will we see a final release @mattlewis92 ? |
Awesome! I just want to test the new version in my work application where we have a heavy usage of this library as well, just to sanity check everything works OK, and then will release as final once I do that sometime in the next few days |

Tip
Try out the next version before it's marked as stable with
npm i angular-calendar@nextTo be in the release (aim is just to get everything modernized and working with the latest angular 20 version rather than any new features):
inject()