Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a new pull request by comparing changes across two branches #236

Merged
merged 41 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
39b7be8
refactor(compiler-cli): Add support for inheritance in API extraction…
JeanMeche Aug 20, 2024
a84cecf
docs(docs-infra): add support for `extends`/`implements` on API entri…
JeanMeche Aug 20, 2024
7defbb1
docs(upgrade): change example wording on Input tutorial (#57625)
mfdebian Sep 2, 2024
fc17344
build: update dependency diff to v6 (#57631)
angular-robot Sep 2, 2024
4c82eb2
build: update all non-major dependencies (#57633)
angular-robot Sep 3, 2024
5a2faed
build: update scorecard action dependencies (#57636)
angular-robot Sep 3, 2024
5ce9abf
build: update babel dependencies to v7.25.6 (#57634)
angular-robot Sep 3, 2024
a65e874
refactor(migrations): add explicit test for non-null assertions (#57629)
devversion Sep 2, 2024
a8e3ba9
refactor(migrations): properly handle cases of `--strict=false` in si…
devversion Sep 2, 2024
2679dcf
refactor(migrations): simplify signal input migration language-servic…
devversion Aug 30, 2024
e6e5d29
feat(core): initial version of the output migration (#57604)
pkozlowski-opensource Aug 29, 2024
aa8eb15
build: delete v18 migrations (#57603)
crisbeto Aug 30, 2024
9e83ca8
docs: Fix 'EnvironmentInjector' description (#57582)
IliaBrahinets Aug 27, 2024
36d8d19
refactor(core): removing a pending task delays stability until the ne…
atscott Aug 28, 2024
3896f86
refactor(migrations): switch from esbuild to Rollup for schematics bu…
alan-agius4 Aug 30, 2024
fe5c4e0
fix(elements): support `output()`-shaped outputs (#57535)
alxhub Aug 26, 2024
c2892fe
fix(http): Dynamicaly call the global fetch implementation (#57531)
JeanMeche Aug 26, 2024
be2e496
feat(core): introduce `afterRenderEffect` (#57549)
alxhub Aug 12, 2024
1f87cba
release: bump Angular DevTools version to 1.0.18 (#57585)
dgp1130 Aug 29, 2024
108a88c
refactor(language-service): support caching in code refactorings (#57…
devversion Sep 3, 2024
1251ee0
refactor(migrations): share logic for looking up property access (#57…
devversion Sep 3, 2024
ec94e1e
refactor(migrations): move reference signal input migration into dedi…
devversion Sep 3, 2024
61dfb2b
refactor(migrations): share `ts.Printer` for signal input migration (…
devversion Sep 3, 2024
0764981
refactor(migrations): add performance logging for input reference loo…
devversion Sep 3, 2024
a777bee
refactor(migrations): improve element binding migration for input mig…
devversion Sep 3, 2024
a2e4ee0
feat(compiler): add diagnostic for unused standalone imports (#57605)
crisbeto Sep 3, 2024
8da9fb4
feat(language-service): add code fix for unused standalone imports (#…
crisbeto Sep 3, 2024
c19b02f
docs: release notes for the v18.2.3 release
AndrewKushnir Sep 4, 2024
3c75684
release: cut the v19.0.0-next.3 release
AndrewKushnir Sep 4, 2024
e2d6494
docs: Add fallback content for <ng-content> in content projection gui…
Arshjeet2003 Aug 25, 2024
69c2ef7
build: update io_bazel_rules_sass digest to 5a7e3f4 (#57649)
angular-robot Sep 3, 2024
89d7351
docs: update top level banner styles (#57503)
twerske Aug 23, 2024
71f5ef2
fix(migrations): change imports to be G3 compatible (#57654)
pkozlowski-opensource Sep 4, 2024
9da21f7
feat(migrations): replace .next usage on outputs (#57654)
pkozlowski-opensource Sep 4, 2024
d8338b5
refactor(migrations): generate blocks to support narrowing inside arr…
devversion Sep 4, 2024
9c31ba9
refactor(migrations): properly apply edits in signal input refactorin…
devversion Sep 4, 2024
f694acb
refactor(language-service): improve error messaging for signal input …
devversion Sep 4, 2024
aa43966
refactor(migrations): speed up migration for subset of signal inputs …
devversion Sep 4, 2024
c3f2420
refactor(migrations): use proper suffix for object expansion input va…
devversion Sep 4, 2024
f6c40f1
refactor(migrations): expose all input migration helpers (#57659)
devversion Sep 4, 2024
7a4199a
refactor(devtools): use signal apis for directive forest (#56998)
sheikalthaf Jul 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
- name: Run CI tests for framework
run: yarn tsx ./scripts/build/build-packages-dist.mts
- name: Archive build artifacts
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: pr-artifacts-${{ github.event.number }}
path: dist/packages-dist/
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ jobs:

# Upload the results as artifacts.
- name: 'Upload artifact'
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: SARIF file
path: results.sarif
retention-days: 5

# Upload the results to GitHub's code scanning dashboard.
- name: 'Upload to code-scanning'
uses: github/codeql-action/upload-sarif@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
uses: github/codeql-action/upload-sarif@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6
with:
sarif_file: results.sarif
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,44 @@
<a name="19.0.0-next.3"></a>
# 19.0.0-next.3 (2024-09-04)
## Breaking Changes
### core
- * TypeScript versions less than 5.5 are no longer supported.
### compiler
| Commit | Type | Description |
| -- | -- | -- |
| [a2e4ee0cb3](https://github.com/angular/angular/commit/a2e4ee0cb3d40cadc05e28d58b06853973944456) | feat | add diagnostic for unused standalone imports ([#57605](https://github.com/angular/angular/pull/57605)) |
### core
| Commit | Type | Description |
| -- | -- | -- |
| [8bcc663a53](https://github.com/angular/angular/commit/8bcc663a53888717cdf4ce0c23404caa00abb1b2) | feat | drop support for TypeScript 5.4 ([#57577](https://github.com/angular/angular/pull/57577)) |
| [e6e5d29e83](https://github.com/angular/angular/commit/e6e5d29e830a0a74d7677d5f2345f29391064853) | feat | initial version of the output migration ([#57604](https://github.com/angular/angular/pull/57604)) |
| [be2e49639b](https://github.com/angular/angular/commit/be2e49639bda831831ad62d49253db942a83fd46) | feat | introduce `afterRenderEffect` ([#57549](https://github.com/angular/angular/pull/57549)) |
### elements
| Commit | Type | Description |
| -- | -- | -- |
| [fe5c4e086a](https://github.com/angular/angular/commit/fe5c4e086add655bf53315d71b0736ff758c7199) | fix | support `output()`-shaped outputs ([#57535](https://github.com/angular/angular/pull/57535)) |
### http
| Commit | Type | Description |
| -- | -- | -- |
| [c2892fee58](https://github.com/angular/angular/commit/c2892fee58d28ffec0dfeaad6a5d6822c040cf03) | fix | Dynamicaly call the global fetch implementation ([#57531](https://github.com/angular/angular/pull/57531)) |
### language-service
| Commit | Type | Description |
| -- | -- | -- |
| [8da9fb49b5](https://github.com/angular/angular/commit/8da9fb49b54e50de2d028691f73fb773def62ecd) | feat | add code fix for unused standalone imports ([#57605](https://github.com/angular/angular/pull/57605)) |
| [1f067f4507](https://github.com/angular/angular/commit/1f067f4507b6e908fe991d5de0dc4d3a627ab2f9) | feat | add code reactoring action to migrate `@Input` to signal-input ([#57214](https://github.com/angular/angular/pull/57214)) |
| [56ee47f2ec](https://github.com/angular/angular/commit/56ee47f2ec6e983e2ffdf59476ab29a92590811e) | feat | allow code refactorings to compute edits asynchronously ([#57214](https://github.com/angular/angular/pull/57214)) |

<!-- CHANGELOG SPLIT MARKER -->

<a name="18.2.3"></a>
# 18.2.3 (2024-09-04)
### http
| Commit | Type | Description |
| -- | -- | -- |
| [de68e049e4](https://github.com/angular/angular/commit/de68e049e40ab702d9e2b7dd02070de9856377df) | fix | Dynamicaly call the global fetch implementation ([#57531](https://github.com/angular/angular/pull/57531)) |

<!-- CHANGELOG SPLIT MARKER -->

<a name="19.0.0-next.2"></a>
# 19.0.0-next.2 (2024-08-28)
## Breaking Changes
Expand Down
6 changes: 3 additions & 3 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -143,10 +143,10 @@ cldr_xml_data_repository(
# sass rules
http_archive(
name = "io_bazel_rules_sass",
sha256 = "cd83736ea65d0df064283aea5922dbaf132dd2b3aa54e7151aae7edaa9572c3e",
strip_prefix = "rules_sass-83022b98114c07e9588089c7fe8f76bc0262c7e7",
sha256 = "99c26eb38ef3e4e63253796dec37030834b1db25d12f1aeed1481f7020eb95b3",
strip_prefix = "rules_sass-5a7e3f4e1ed8def01b2a1e52625b09f11e98f1f8",
urls = [
"https://github.com/bazelbuild/rules_sass/archive/83022b98114c07e9588089c7fe8f76bc0262c7e7.zip",
"https://github.com/bazelbuild/rules_sass/archive/5a7e3f4e1ed8def01b2a1e52625b09f11e98f1f8.zip",
],
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
@if (!hasClosed()) {
@if (link()) {
<a [href]="link()" class="docs-top-level-banner">
<h1 tabindex="-1" class="docs-top-level-banner-cta">{{ text() }}</h1>
<h1 tabindex="-1" class="docs-top-level-banner-cta background">{{ text() }}</h1>
<h1 tabindex="0" class="docs-top-level-banner-cta shimmer">{{ text() }}</h1>
</a>
} @else {
<div class="docs-top-level-banner">
<h1 tabindex="-1" class="docs-top-level-banner-cta">{{ text() }}</h1>
<h1 tabindex="-1" class="docs-top-level-banner-cta background">{{ text() }}</h1>
<h1 tabindex="0" class="docs-top-level-banner-cta shimmer">{{ text() }}</h1>
</div>
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,40 +18,42 @@

h1.docs-top-level-banner-cta {
display: inline;
position: relative;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 0.875rem;
margin: 0;
background-image: var(--red-to-pink-to-purple-horizontal-gradient);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
width: fit-content;
font-weight: 500;

&::after {
content: '';
position: absolute;
width: 100%;
transform: scaleX(0);
height: 1px;
bottom: -2px;
left: 0;
background: var(--tertiary-contrast);
animation-name: shimmer;
-webkit-animation-duration: 5s;
-moz-animation-duration: 5s;
animation-duration: 5s;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
animation-iteration-count: infinite;
&.background {
color: var(--tertiary-contrast);
}
}

&:hover {
h1.docs-top-level-banner-cta {
&:not(.background) {
color: transparent;

&::after {
transform: scaleX(1);
transform-origin: bottom left;
content: '';
position: absolute;
width: 100%;
height: 1px;
bottom: -2px;
left: 0;
background: var(--tertiary-contrast);
transform: scaleX(0);
transform-origin: bottom right;
@media (prefers-reduced-motion: no-preference) {
transition: transform 0.3s ease;
}
}

&:hover {
&::after {
transform: scaleX(1);
transform-origin: bottom left;
}
}
}
}
Expand All @@ -60,17 +62,73 @@
position: absolute;
top: 0.25rem;
right: 0.5rem;
color: var(--primary-contrast);
color: var(--tertiary-contrast);
}
}

.shimmer {
background: var(--red-to-pink-to-purple-horizontal-gradient);

@media (prefers-reduced-motion: no-preference) {
background-repeat: no-repeat;
-webkit-background-size: 125px 100%;
-moz-background-size: 125px 100%;
background-size: 125px 100%;
-webkit-background-clip: text;
-moz-background-clip: text;
background-clip: text;
-webkit-animation-name: shimmer;
-moz-animation-name: shimmer;
animation-name: shimmer;
-webkit-animation-duration: 10s;
-moz-animation-duration: 10s;
animation-duration: 10s;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
animation-iteration-count: infinite;
}
}

@-moz-keyframes shimmer {
0% {
background-position: top left;
background-position-x: -150px;
}
100% {
background-position: top right;
background-position-x: 500px;
}
}

@-webkit-keyframes shimmer {
0% {
background-position: top left;
background-position-x: -150px;
}
100% {
background-position: top right;
background-position-x: 500px;
}
}

@-o-keyframes shimmer {
0% {
background-position: top left;
background-position-x: -150px;
}
100% {
background-position: top right;
background-position-x: 500px;
}
}

@keyframes shimmer {
0% {
transform: scaleX(0);
transform-origin: bottom right;
background-position: top left;
background-position-x: -150px;
}
100% {
transform: scaleX(1);
transform-origin: bottom left;
background-position: top right;
background-position-x: 500px;
}
}
2 changes: 1 addition & 1 deletion adev/shared-docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
"dependencies": {
"@webcontainer/api": "^1.1.8",
"diff": "~5.2.0",
"diff": "~6.0.0",
"emoji-regex": "~10.4.0",
"fast-glob": "~3.3.2",
"fflate": "^0.8.2",
Expand Down
2 changes: 2 additions & 0 deletions adev/shared-docs/pipeline/api-gen/rendering/entities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ export interface ClassEntry extends DocEntry {
isAbstract: boolean;
members: MemberEntry[];
generics: GenericEntry[];
extends?: string;
implements: string[];
}

// From an API doc perspective, class and interfaces are identical.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -426,9 +426,28 @@ function appendPrefixAndSuffix(entry: DocEntry, codeTocData: CodeTableOfContents
data.contents = `${firstLine}\n${data.contents}${lastLine}`;
};

if (isClassEntry(entry)) {
const abstractPrefix = entry.isAbstract ? 'abstract ' : '';
appendFirstAndLastLines(codeTocData, `${abstractPrefix}class ${entry.name} {`, `}`);
if (isClassEntry(entry) || isInterfaceEntry(entry)) {
const generics =
entry.generics?.length > 0
? `<${entry.generics
.map((g) => (g.constraint ? `${g.name} extends ${g.constraint}` : g.name))
.join(', ')}>`
: '';

const extendsStr = entry.extends ? ` extends ${entry.extends}` : '';
// TODO: remove the ? when we distinguish Class & Decorator entries
const implementsStr =
entry.implements?.length > 0 ? ` implements ${entry.implements.join(' ,')}` : '';

const signature = `${entry.name}${generics}${extendsStr}${implementsStr}`;
if (isClassEntry(entry)) {
const abstractPrefix = entry.isAbstract ? 'abstract ' : '';
appendFirstAndLastLines(codeTocData, `${abstractPrefix}class ${signature} {`, `}`);
}

if (isInterfaceEntry(entry)) {
appendFirstAndLastLines(codeTocData, `interface ${signature} {`, `}`);
}
}

if (isEnumEntry(entry)) {
Expand Down
2 changes: 1 addition & 1 deletion adev/src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@defer (when isBrowser) {
<adev-progress-bar />
<!-- <docs-top-level-banner id="ng-survey-2024" link="https://goo.gle/angular-v18" text="Take the Angular Developer Survey today!" /> -->
<docs-top-level-banner id="ng-survey-2024" link="https://goo.gle/angular-survey-2024" text="Take the 2024 Angular Developer Survey today!" />
}
<button (click)="focusFirstHeading()" class="adev-skip">Skip to main content</button>

Expand Down
5 changes: 5 additions & 0 deletions adev/src/app/sub-navigation-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1368,6 +1368,11 @@ const REFERENCE_SUB_NAVIGATION_DATA: NavigationItem[] = [
path: 'extended-diagnostics/NG8111',
contentPath: 'reference/extended-diagnostics/NG8111',
},
{
label: 'NG8113: Unused Standalone Imports',
path: 'extended-diagnostics/NG8113',
contentPath: 'reference/extended-diagnostics/NG8113',
},
],
},
{
Expand Down
32 changes: 32 additions & 0 deletions adev/src/content/guide/components/content-projection.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,38 @@ did not match a `select` attribute:
If a component does not include an `<ng-content>` placeholder without a `select` attribute, any
elements that don't match one of the component's placeholders do not render into the DOM.

## Fallback content

Angular can show *fallback content* for a component's `<ng-content>` placeholder if that component doesn't have any matching child content. You can specify fallback content by adding child content to the `<ng-content>` element itself.

```angular-html
<!-- Component template -->
<div class="card-shadow">
<ng-content select="card-title">Default Title</ng-content>
<div class="card-divider"></div>
<ng-content select="card-body">Default Body</ng-content>
</div>
```

```angular-html
<!-- Using the component -->
<custom-card>
<card-title>Hello</card-title>
<!-- No card-body provided -->
</custom-card>
```

```angular-html
<!-- Rendered DOM -->
<custom-card>
<div class="card-shadow">
Hello
<div class="card-divider"></div>
Default Body
</div>
</custom-card>
```

## Aliasing content for projection

Angular supports a special attribute, `ngProjectAs`, that allows you to specify a CSS selector on
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Angular has two injector hierarchies:

| Injector hierarchies | Details |
|:--- |:--- |
| `EnvironmentInjector` hierarchy | Configure an `ElementInjector` in this hierarchy using `@Injectable()` or `providers` array in `ApplicationConfig`. |
| `EnvironmentInjector` hierarchy | Configure an `EnvironmentInjector` in this hierarchy using `@Injectable()` or `providers` array in `ApplicationConfig`. |
| `ElementInjector` hierarchy | Created implicitly at each DOM element. An `ElementInjector` is empty by default unless you configure it in the `providers` property on `@Directive()` or `@Component()`. |

<docs-callout title="NgModule Based Applications">
Expand Down
Loading
Loading