feat: Upgraded component-library-angular to Angular 20 and added a new Angular app to example-project#652
Conversation
… any conversation otherwise an error during the build will occur
…rary package.json, fixed
otherwise it tries to build parallel to the library build scripts, causing the angular compiler to fail does anybody have a better solution? :(
// TODO adjust generators
christian-bromann
left a comment
There was a problem hiding this comment.
First off, thanks a ton 🫶 I've never used Angular so I always pushed this to the back burner. This is super helpful, thanks a lot!
Aside from the inline comments, I have a more general questions:
In the example-project/component-library-angular project, is there any advantage of using Angular's multiple project file structure? I am sure this makes sense when building a large scale Angular project but for this context I wonder if it creates complexity - I am asking also because it is currently how we have setup our designsystem-boilerplate and I wonder if this makes sense there too
| multi: true | ||
| } | ||
| ] | ||
| ],standalone: true |
There was a problem hiding this comment.
Can we update the template to put this into a new line?
| ],standalone: true | |
| ], | |
| standalone: true |
There was a problem hiding this comment.
I was contemplating to change it, but didn't want to bloat up the PR with unrelated stuff.
I think it would be wise to clean up the template generators when implementing this: #648
example-project/component-library-angular/projects/library/test/my-range.spec.ts
Outdated
Show resolved
Hide resolved
example-project/ng-app/src/app/component-tests/checkbox-tests/checkbox-tests.html
Outdated
Show resolved
Hide resolved
example-project/ng-app/src/app/component-tests/complex-props-tests/complex-props-tests.ts
Outdated
Show resolved
Hide resolved
| </div> | ||
| </form> | ||
|
|
||
| {{ formGroup.getRawValue() | json }} |
There was a problem hiding this comment.
Is this just printing out the raw value as text?
There was a problem hiding this comment.
yes, to show that the form properties are updated correctly
…checkbox-tests.html Co-authored-by: Christian Bromann <git@bromann.dev>
…ests/complex-props-tests.ts Co-authored-by: Christian Bromann <git@bromann.dev>
…t/my-range.spec.ts Co-authored-by: Christian Bromann <git@bromann.dev>
Thank you for taking the time to review my pull request! The way the angular workspace is set up now, is simply how the angular team defines libraries to be set up. Also, looking at the designsystem-boilerplate, this "modernized" project structure is already in place there, so that's good. |
…ry project + npm run prettier
|
Also I just had a idea to consider... Would it be possible to use the designsystem-boilerplate repo as a submodule in place of the example-project? Then there would only be one example repo which needs to be maintained |
I did consider that but recognised that the example projects we have here are straight for testing, e.g. for React I created a little testbed to run validations for all React variations easily. I don't want to bloat up the boilerplate with that and rather keep it basic. |
|
Let me investigate the build issue: This seems unrelated to your change. I will go ahead and merge this and then fix it on |
## [0.2.0](https://github.com/stenciljs/output-targets/compare/@stencil/ssr@0.1.0...@stencil/ssr@0.2.0) (2026-01-03) ### 🚀 Enhancement * **react:** enhance React output target with unified server/client imports and improved SSR property serialization ([132f9d9](132f9d9)) * Upgraded component-library-angular to Angular 20 and added a new Angular app to example-project ([#652](#652)) ([a6fefb6](a6fefb6)), closes [#643](#643) * **vue:** implement custom event property as source for v-model ([#689](#689)) ([bc385bb](bc385bb)) ### 🐛 Bug Fix * **#646:** react create components.ts file ([#647](#647)) ([7524cbf](7524cbf)), closes [#646](#646) [#646](#646) * **angular:** include outputs in angular component definition ([#688](#688)) ([16f1fd1](16f1fd1)), closes [#643](#643) [#643](#643) * **angular:** prettify code ([69e1cba](69e1cba)) * **angular:** use forwardRef in control value accessor directives. ([#697](#697)) ([dcb4bd2](dcb4bd2)) * **ci:** run in macos environment ([0631306](0631306)) * **dependabot:** don't run updates based on projects ([3d43687](3d43687)) * **dependabot:** group updates of minor and patch versions in a single PR ([47bdb20](47bdb20)) * **dependabot:** optimize configuration ([ce29757](ce29757)) * **internal:** update changelog ([4bb6cfc](4bb6cfc)) * nuxt ssr mismatch class errors ([#651](#651)) ([be797b1](be797b1)) * **react:** always use per-component CustomEvent types for event props ([#716](#716)) ([8ebba85](8ebba85)), closes [#531](#531) * **react:** better style to css transformation ([ccc76a7](ccc76a7)) * **react:** fixed wording in component wrapper ([a83bb4b](a83bb4b)) * **react:** forward ref to underlying web component ([#655](#655)) ([9f20ee0](9f20ee0)) * **react:** improved SSR for Next.js ([#683](#683)) ([c49a3b5](c49a3b5)) * **react:** make types compatible with v18 and v19 ([f887ae7](f887ae7)) * **react:** properly type generated component files ([3e7cc0c](3e7cc0c)) * **react:** revive esModules option ([d98df24](d98df24)) * revert model update event renaming ([#649](#649)) ([5c67692](5c67692)) * **ssr:** improved SSR handling in Next.js ([#641](#641)) ([22e075f](22e075f)) * **vue:** remove unnecessary vue patch ([34f7ce2](34f7ce2)) ### 📝 Documentation * **internal:** link release workflow ([0e69d0e](0e69d0e)) * **internal:** update contributing guidelines ([08c96fd](08c96fd))
## [0.2.0](https://github.com/stenciljs/output-targets/compare/@stencil/ssr@0.1.0...@stencil/ssr@0.2.0) (2026-01-03) ### 🚀 Enhancement * **react:** enhance React output target with unified server/client imports and improved SSR property serialization ([132f9d9](132f9d9)) * Upgraded component-library-angular to Angular 20 and added a new Angular app to example-project ([#652](#652)) ([a6fefb6](a6fefb6)), closes [#643](#643) * **vue:** implement custom event property as source for v-model ([#689](#689)) ([bc385bb](bc385bb)) ### 🐛 Bug Fix * **#646:** react create components.ts file ([#647](#647)) ([7524cbf](7524cbf)), closes [#646](#646) [#646](#646) * **angular:** include outputs in angular component definition ([#688](#688)) ([16f1fd1](16f1fd1)), closes [#643](#643) [#643](#643) * **angular:** prettify code ([69e1cba](69e1cba)) * **angular:** use forwardRef in control value accessor directives. ([#697](#697)) ([dcb4bd2](dcb4bd2)) * **ci:** run in macos environment ([0631306](0631306)) * **dependabot:** don't run updates based on projects ([3d43687](3d43687)) * **dependabot:** group updates of minor and patch versions in a single PR ([47bdb20](47bdb20)) * **dependabot:** optimize configuration ([ce29757](ce29757)) * **internal:** update changelog ([4bb6cfc](4bb6cfc)) * nuxt ssr mismatch class errors ([#651](#651)) ([be797b1](be797b1)) * **react:** always use per-component CustomEvent types for event props ([#716](#716)) ([8ebba85](8ebba85)), closes [#531](#531) * **react:** better style to css transformation ([ccc76a7](ccc76a7)) * **react:** fixed wording in component wrapper ([a83bb4b](a83bb4b)) * **react:** forward ref to underlying web component ([#655](#655)) ([9f20ee0](9f20ee0)) * **react:** improved SSR for Next.js ([#683](#683)) ([c49a3b5](c49a3b5)) * **react:** make types compatible with v18 and v19 ([f887ae7](f887ae7)) * **react:** properly type generated component files ([3e7cc0c](3e7cc0c)) * **react:** revive esModules option ([d98df24](d98df24)) * revert model update event renaming ([#649](#649)) ([5c67692](5c67692)) * **ssr:** improved SSR handling in Next.js ([#641](#641)) ([22e075f](22e075f)) * **vue:** remove unnecessary vue patch ([34f7ce2](34f7ce2)) ### 📝 Documentation * **internal:** link release workflow ([0e69d0e](0e69d0e)) * **internal:** update contributing guidelines ([08c96fd](08c96fd))
## [0.2.0](https://github.com/stenciljs/output-targets/compare/@stencil/ssr@0.1.0...@stencil/ssr@0.2.0) (2026-01-03) ### 🚀 Enhancement * **react:** enhance React output target with unified server/client imports and improved SSR property serialization ([132f9d9](132f9d9)) * Upgraded component-library-angular to Angular 20 and added a new Angular app to example-project ([#652](#652)) ([a6fefb6](a6fefb6)), closes [#643](#643) * **vue:** implement custom event property as source for v-model ([#689](#689)) ([bc385bb](bc385bb)) ### 🐛 Bug Fix * **#646:** react create components.ts file ([#647](#647)) ([7524cbf](7524cbf)), closes [#646](#646) [#646](#646) * **angular:** include outputs in angular component definition ([#688](#688)) ([16f1fd1](16f1fd1)), closes [#643](#643) [#643](#643) * **angular:** prettify code ([69e1cba](69e1cba)) * **angular:** use forwardRef in control value accessor directives. ([#697](#697)) ([dcb4bd2](dcb4bd2)) * **ci:** run in macos environment ([0631306](0631306)) * **dependabot:** don't run updates based on projects ([3d43687](3d43687)) * **dependabot:** group updates of minor and patch versions in a single PR ([47bdb20](47bdb20)) * **dependabot:** optimize configuration ([ce29757](ce29757)) * **internal:** update changelog ([4bb6cfc](4bb6cfc)) * nuxt ssr mismatch class errors ([#651](#651)) ([be797b1](be797b1)) * **react:** always use per-component CustomEvent types for event props ([#716](#716)) ([8ebba85](8ebba85)), closes [#531](#531) * **react:** better style to css transformation ([ccc76a7](ccc76a7)) * **react:** fixed wording in component wrapper ([a83bb4b](a83bb4b)) * **react:** forward ref to underlying web component ([#655](#655)) ([9f20ee0](9f20ee0)) * **react:** improved SSR for Next.js ([#683](#683)) ([c49a3b5](c49a3b5)) * **react:** make types compatible with v18 and v19 ([f887ae7](f887ae7)) * **react:** properly type generated component files ([3e7cc0c](3e7cc0c)) * **react:** revive esModules option ([d98df24](d98df24)) * revert model update event renaming ([#649](#649)) ([5c67692](5c67692)) * **ssr:** improved SSR handling in Next.js ([#641](#641)) ([22e075f](22e075f)) * **vue:** remove unnecessary vue patch ([34f7ce2](34f7ce2)) ### 📝 Documentation * **internal:** link release workflow ([0e69d0e](0e69d0e)) * **internal:** update contributing guidelines ([08c96fd](08c96fd))
* chore(release): @stencil/vue-output-target@0.11.0 [skip ci] ## [0.11.0](https://github.com/stenciljs/output-targets/compare/@stencil/vue-output-target@0.10.8...@stencil/vue-output-target@0.11.0) (2026-01-03) ### 🚀 Enhancement * **react:** enhance React output target with unified server/client imports and improved SSR property serialization ([132f9d9](132f9d9)) * **vue:** implement custom event property as source for v-model ([#689](#689)) ([bc385bb](bc385bb)) ### 🐛 Bug Fix * **angular:** include outputs in angular component definition ([#688](#688)) ([16f1fd1](16f1fd1)), closes [#643](#643) [#643](#643) * **angular:** prettify code ([69e1cba](69e1cba)) * **angular:** use forwardRef in control value accessor directives. ([#697](#697)) ([dcb4bd2](dcb4bd2)) * **dependabot:** don't run updates based on projects ([3d43687](3d43687)) * **dependabot:** group updates of minor and patch versions in a single PR ([47bdb20](47bdb20)) * **dependabot:** optimize configuration ([ce29757](ce29757)) * **internal:** update changelog ([4bb6cfc](4bb6cfc)) * **react:** always use per-component CustomEvent types for event props ([#716](#716)) ([8ebba85](8ebba85)), closes [#531](#531) * **react:** better style to css transformation ([ccc76a7](ccc76a7)) * **react:** forward ref to underlying web component ([#655](#655)) ([9f20ee0](9f20ee0)) * **react:** improved SSR for Next.js ([#683](#683)) ([c49a3b5](c49a3b5)) * **react:** properly type generated component files ([3e7cc0c](3e7cc0c)) * **vue:** remove unnecessary vue patch ([34f7ce2](34f7ce2)) ### 📝 Documentation * **internal:** link release workflow ([0e69d0e](0e69d0e)) * **internal:** update contributing guidelines ([08c96fd](08c96fd)) * chore(release): @stencil/react-output-target@1.2.1 [skip ci] ## [1.2.1](https://github.com/stenciljs/output-targets/compare/@stencil/react-output-target@1.2.0...@stencil/react-output-target@1.2.1) (2026-01-03) ### 🚀 Enhancement * **vue:** implement custom event property as source for v-model ([#689](#689)) ([bc385bb](bc385bb)) ### 🐛 Bug Fix * **angular:** include outputs in angular component definition ([#688](#688)) ([16f1fd1](16f1fd1)), closes [#643](#643) [#643](#643) * **angular:** use forwardRef in control value accessor directives. ([#697](#697)) ([dcb4bd2](dcb4bd2)) * **react:** always use per-component CustomEvent types for event props ([#716](#716)) ([8ebba85](8ebba85)), closes [#531](#531) ### 📝 Documentation * **internal:** link release workflow ([0e69d0e](0e69d0e)) * **internal:** update contributing guidelines ([08c96fd](08c96fd)) * chore(release): @stencil/ssr@0.2.0 [skip ci] ## [0.2.0](https://github.com/stenciljs/output-targets/compare/@stencil/ssr@0.1.0...@stencil/ssr@0.2.0) (2026-01-03) ### 🚀 Enhancement * **react:** enhance React output target with unified server/client imports and improved SSR property serialization ([132f9d9](132f9d9)) * Upgraded component-library-angular to Angular 20 and added a new Angular app to example-project ([#652](#652)) ([a6fefb6](a6fefb6)), closes [#643](#643) * **vue:** implement custom event property as source for v-model ([#689](#689)) ([bc385bb](bc385bb)) ### 🐛 Bug Fix * **#646:** react create components.ts file ([#647](#647)) ([7524cbf](7524cbf)), closes [#646](#646) [#646](#646) * **angular:** include outputs in angular component definition ([#688](#688)) ([16f1fd1](16f1fd1)), closes [#643](#643) [#643](#643) * **angular:** prettify code ([69e1cba](69e1cba)) * **angular:** use forwardRef in control value accessor directives. ([#697](#697)) ([dcb4bd2](dcb4bd2)) * **ci:** run in macos environment ([0631306](0631306)) * **dependabot:** don't run updates based on projects ([3d43687](3d43687)) * **dependabot:** group updates of minor and patch versions in a single PR ([47bdb20](47bdb20)) * **dependabot:** optimize configuration ([ce29757](ce29757)) * **internal:** update changelog ([4bb6cfc](4bb6cfc)) * nuxt ssr mismatch class errors ([#651](#651)) ([be797b1](be797b1)) * **react:** always use per-component CustomEvent types for event props ([#716](#716)) ([8ebba85](8ebba85)), closes [#531](#531) * **react:** better style to css transformation ([ccc76a7](ccc76a7)) * **react:** fixed wording in component wrapper ([a83bb4b](a83bb4b)) * **react:** forward ref to underlying web component ([#655](#655)) ([9f20ee0](9f20ee0)) * **react:** improved SSR for Next.js ([#683](#683)) ([c49a3b5](c49a3b5)) * **react:** make types compatible with v18 and v19 ([f887ae7](f887ae7)) * **react:** properly type generated component files ([3e7cc0c](3e7cc0c)) * **react:** revive esModules option ([d98df24](d98df24)) * revert model update event renaming ([#649](#649)) ([5c67692](5c67692)) * **ssr:** improved SSR handling in Next.js ([#641](#641)) ([22e075f](22e075f)) * **vue:** remove unnecessary vue patch ([34f7ce2](34f7ce2)) ### 📝 Documentation * **internal:** link release workflow ([0e69d0e](0e69d0e)) * **internal:** update contributing guidelines ([08c96fd](08c96fd)) * chore: * Update CHANGELOG.md --------- Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net> Co-authored-by: John Jenkins <johnljenkins@Hotmail.com> Co-authored-by: John Jenkins <john.jenkins@nanoporetech.com>
Pull request checklist
Please check if your PR fulfills the following requirements:
npm run build) was run locally for affected output targets^On this note, the build only works if ng-app is run last, this is accounted for in the build script.. But the solution is not pretty. Maybe somebody has a better idea
npm test) were run locally and passednpm run prettier) was run locally and passedPull request type
Please check the type of change your PR introduces:
What is the current behavior?
example-project's component-library-angular uses angular 16 and relies heavily on Angular Modules instead of standalone components, which are the default way to go since Angular 17.
Furthermore, there is no current angular demo application, making it difficult to debug angular output issues, for other bug fixes, such as #54 in my case
What is the new behavior?
Does this introduce a breaking change?
This PR (almost) only affects the example-project, except the typescript fix, which does not affect the functionality
Other information
It is a big jump from angular 16 to angular 20, but this PR would allow future modifications and fixes to the angular output package.
If you have any questions or concerns about this PR, feel free to ping me on discord
@gratzl