https://github.com/angular/angular
- HEAD
- refs/heads/10.0.x
- refs/heads/10.1.x
- refs/heads/10.2.x
- refs/heads/11.0.x
- refs/heads/11.1.x
- refs/heads/11.2.x
- refs/heads/12.0.x
- refs/heads/12.1.x
- refs/heads/12.2.x
- refs/heads/12.3.x
- refs/heads/13.0.x
- refs/heads/13.1.x
- refs/heads/13.2.x
- refs/heads/13.3.x
- refs/heads/13.4.x
- refs/heads/14.0.x
- refs/heads/14.1.x
- refs/heads/14.2.x
- refs/heads/14.3.x
- refs/heads/15.0.x
- refs/heads/15.1.x
- refs/heads/15.2.x
- refs/heads/16.0.x
- refs/heads/16.1.x
- refs/heads/16.2.x
- refs/heads/17.0.x
- refs/heads/17.1.x
- refs/heads/17.2.x
- refs/heads/17.3.x
- refs/heads/2.0.x
- refs/heads/2.1.x
- refs/heads/2.2.x
- refs/heads/2.3.x
- refs/heads/2.4.x
- refs/heads/4.0.x
- refs/heads/4.1.x
- refs/heads/4.2.x
- refs/heads/4.3.x
- refs/heads/4.4.x
- refs/heads/5.0.x
- refs/heads/5.1.x
- refs/heads/5.2.x
- refs/heads/5.2x
- refs/heads/52695-improve-clarity-of-tutorial-intro
- refs/heads/53015-add-h1-for-skip-to-main-content
- refs/heads/55303-fix-v0-version-number
- refs/heads/6.0.x
- refs/heads/6.1.x
- refs/heads/7.0.x
- refs/heads/7.1.x
- refs/heads/7.2.x
- refs/heads/8.0.x
- refs/heads/8.1.x
- refs/heads/8.2.x
- refs/heads/9.0.x
- refs/heads/9.1.x
- refs/heads/JeanMeche-patch-1
- refs/heads/add-ben-to-reviewers
- refs/heads/add-docs-script-command
- refs/heads/backup-7.2.x
- refs/heads/bazel
- refs/heads/default-cookie-banner-state
- refs/heads/docs/update-security-guide-reference
- refs/heads/fix-extra-padding-on-tutorial-editor
- refs/heads/fix-missing-security-guide
- refs/heads/g3
- refs/heads/image-directive-13.3.x
- refs/heads/in-depth-guides-refactor
- refs/heads/jperrott-test
- refs/heads/main
- refs/heads/publish-snapshots
- refs/heads/remove-aio-stuff
- refs/heads/saucelabs-bazel
- refs/heads/signals
- refs/heads/sonukapoor-patch-1
- refs/heads/styling-experiments
- refs/heads/template_pipeline
- refs/heads/twerske-patch-1
- refs/heads/watch-burn-rates
- refs/heads/windows-executor-no-cache
- refs/remotes/presubmit-pr-2853
- refs/renovate/branches/renovate/core-js-3.x
- refs/renovate/branches/renovate/cross-repo-angular-dependencies
- refs/renovate/branches/renovate/firebase-tools-11.x
- refs/reviewable/pr1707/r1
- refs/reviewable/pr1855/r1
- refs/reviewable/pr1977/r1
- refs/reviewable/pr1995/r1
- refs/reviewable/pr2164/r1
- refs/reviewable/pr2218/r1
- refs/reviewable/pr2255/r1
- refs/reviewable/pr2257/r1
- refs/reviewable/pr2317/r1
- refs/reviewable/pr2337/r1
- refs/reviewable/pr2347/r1
- refs/reviewable/pr2407/r1
- refs/reviewable/pr2419/r1
- refs/reviewable/pr2419/r2
- refs/reviewable/pr2419/r3
- refs/reviewable/pr2463/r1
- refs/reviewable/pr2464/r1
- refs/reviewable/pr2464/r2
- refs/reviewable/pr2568/r1
- refs/reviewable/pr2573/r1
- refs/reviewable/pr2573/r2
- refs/reviewable/pr2587/r1
- refs/reviewable/pr2588/r1
- refs/reviewable/pr2593/r1
- refs/reviewable/pr2610/r1
- refs/reviewable/pr2634/r1
- refs/reviewable/pr2641/r1
- refs/reviewable/pr2658/r1
- refs/reviewable/pr2658/r2
- refs/reviewable/pr2665/r1
- refs/reviewable/pr2666/r1
- refs/reviewable/pr2666/r2
- refs/reviewable/pr2667/r1
- refs/reviewable/pr2668/r1
- refs/reviewable/pr2676/r1
- refs/reviewable/pr2679/r1
- refs/reviewable/pr2679/r2
- refs/reviewable/pr2690/r1
- refs/reviewable/pr2695/r1
- refs/reviewable/pr2695/r2
- refs/reviewable/pr2695/r3
- refs/reviewable/pr2699/r1
- refs/reviewable/pr2699/r2
- refs/reviewable/pr2699/r3
- refs/reviewable/pr2699/r4
- refs/reviewable/pr2699/r5
- refs/reviewable/pr2699/r6
- refs/reviewable/pr2703/r1
- refs/reviewable/pr2709/r1
- refs/reviewable/pr2709/r2
- refs/reviewable/pr2711/r1
- refs/reviewable/pr2711/r2
- refs/reviewable/pr2713/r1
- refs/reviewable/pr2713/r2
- refs/reviewable/pr2713/r3
- refs/reviewable/pr2714/r1
- refs/reviewable/pr2714/r2
- refs/reviewable/pr2714/r3
- refs/reviewable/pr2715/r1
- refs/reviewable/pr2715/r2
- refs/reviewable/pr2717/r1
- refs/reviewable/pr2717/r2
- refs/reviewable/pr2719/r1
- refs/reviewable/pr2729/r1
- refs/reviewable/pr2729/r2
- refs/reviewable/pr2731/r1
- refs/reviewable/pr2731/r2
- refs/reviewable/pr2734/r1
- refs/reviewable/pr2735/r1
- refs/reviewable/pr2735/r2
- refs/reviewable/pr2736/r1
- refs/reviewable/pr2737/r1
- refs/reviewable/pr2737/r2
- refs/reviewable/pr2737/r3
- refs/reviewable/pr2737/r4
- refs/reviewable/pr2738/r1
- refs/reviewable/pr2738/r2
- refs/reviewable/pr2742/r1
- refs/reviewable/pr2743/r1
- refs/reviewable/pr2744/r1
- refs/reviewable/pr2744/r2
- refs/reviewable/pr2746/r1
- refs/reviewable/pr2746/r2
- refs/reviewable/pr2749/r1
- refs/reviewable/pr2750/r1
- refs/reviewable/pr2752/r1
- refs/reviewable/pr2757/r1
- refs/reviewable/pr2758/r1
- refs/reviewable/pr2759/r1
- refs/reviewable/pr2760/r1
- refs/reviewable/pr2762/r1
- refs/reviewable/pr2764/r1
- refs/reviewable/pr2767/r1
- refs/reviewable/pr2769/r1
- refs/reviewable/pr2772/r1
- refs/reviewable/pr2772/r2
- refs/reviewable/pr2772/r3
- refs/reviewable/pr2772/r4
- refs/reviewable/pr2773/r1
- refs/reviewable/pr2778/r1
- refs/reviewable/pr2778/r2
- refs/reviewable/pr2780/r1
- refs/reviewable/pr2781/r1
- refs/reviewable/pr2784/r1
- refs/reviewable/pr2789/r1
- refs/reviewable/pr2791/r1
- refs/reviewable/pr2792/r1
- refs/reviewable/pr2792/r2
- refs/reviewable/pr2797/r1
- refs/reviewable/pr2801/r1
- refs/reviewable/pr2802/r1
- refs/reviewable/pr2804/r1
- refs/reviewable/pr2805/r1
- refs/reviewable/pr2854/r1
- refs/reviewable/pr3118/r1
- refs/reviewable/pr3126/r1
- refs/reviewable/pr3132/r1
- refs/reviewable/pr3135/r1
- refs/reviewable/pr3135/r2
- refs/reviewable/pr3135/r3
- refs/reviewable/pr3158/r1
- refs/reviewable/pr3564/r1
- refs/reviewable/pr3592/r1
- refs/reviewable/pr4656/r1
- refs/reviewable/pr4657/r1
- refs/reviewable/pr4702/r1
- refs/reviewable/pr4745/r1
- refs/reviewable/pr864/r1
- refs/tags/10.0.0
- refs/tags/10.0.0-next.0
- refs/tags/10.0.0-next.1
- refs/tags/10.0.0-next.2
- refs/tags/10.0.0-next.3
- refs/tags/10.0.0-next.4
- refs/tags/10.0.0-next.5
- refs/tags/10.0.0-next.6
- refs/tags/10.0.0-next.7
- refs/tags/10.0.0-next.8
- refs/tags/10.0.0-next.9
- refs/tags/10.0.0-rc.0
- refs/tags/10.0.0-rc.2
- refs/tags/10.0.0-rc.3
- refs/tags/10.0.0-rc.4
- refs/tags/10.0.0-rc.5
- refs/tags/10.0.0-rc.6
- refs/tags/10.0.1
- refs/tags/10.0.10
- refs/tags/10.0.11
- refs/tags/10.0.12
- refs/tags/10.0.13
- refs/tags/10.0.14
- refs/tags/10.0.2
- refs/tags/10.0.3
- refs/tags/10.0.4
- refs/tags/10.0.5
- refs/tags/10.0.6
- refs/tags/10.0.7
- refs/tags/10.0.8
- refs/tags/10.0.9
- refs/tags/10.1.0
- refs/tags/10.1.0-next.0
- refs/tags/10.1.0-next.1
- refs/tags/10.1.0-next.2
- refs/tags/10.1.0-next.3
- refs/tags/10.1.0-next.4
- refs/tags/10.1.0-next.5
- refs/tags/10.1.0-next.6
- refs/tags/10.1.0-next.7
- refs/tags/10.1.0-next.8
- refs/tags/10.1.0-rc.0
- refs/tags/10.1.1
- refs/tags/10.1.2
- refs/tags/10.1.3
- refs/tags/10.1.4
- refs/tags/10.1.5
- refs/tags/10.1.6
- refs/tags/10.2.0
- refs/tags/10.2.1
- refs/tags/10.2.2
- refs/tags/10.2.3
- refs/tags/10.2.4
- refs/tags/10.2.5
- refs/tags/11.0.0
- refs/tags/11.0.0-next.0
- refs/tags/11.0.0-next.1
- refs/tags/11.0.0-next.2
- refs/tags/11.0.0-next.3
- refs/tags/11.0.0-next.4
- refs/tags/11.0.0-next.5
- refs/tags/11.0.0-next.6
- refs/tags/11.0.0-rc.0
- refs/tags/11.0.0-rc.1
- refs/tags/11.0.0-rc.2
- refs/tags/11.0.0-rc.3
- refs/tags/11.0.1
- refs/tags/11.0.2
- refs/tags/11.0.3
- refs/tags/11.0.4
- refs/tags/11.0.5
- refs/tags/11.0.6
- refs/tags/11.0.7
- refs/tags/11.0.8
- refs/tags/11.0.9
- refs/tags/11.1.0
- refs/tags/11.1.0-next.0
- refs/tags/11.1.0-next.1
- refs/tags/11.1.0-next.2
- refs/tags/11.1.0-next.3
- refs/tags/11.1.0-next.4
- refs/tags/11.1.0-next.5
- refs/tags/11.1.0-rc.0
- refs/tags/11.1.1
- refs/tags/11.1.2
- refs/tags/11.2.0
- refs/tags/11.2.0-next.0
- refs/tags/11.2.0-next.1
- refs/tags/11.2.0-rc.0
- refs/tags/11.2.1
- refs/tags/11.2.10
- refs/tags/11.2.11
- refs/tags/11.2.12
- refs/tags/11.2.13
- refs/tags/11.2.14
- refs/tags/11.2.2
- refs/tags/11.2.3
- refs/tags/11.2.4
- refs/tags/11.2.5
- refs/tags/11.2.6
- refs/tags/11.2.7
- refs/tags/11.2.8
- refs/tags/11.2.9
- refs/tags/12.0.0-next.0
- refs/tags/12.0.0-next.1
- refs/tags/12.0.0-next.2
- refs/tags/12.0.0-next.3
- refs/tags/12.0.0-next.4
- refs/tags/12.0.0-next.5
- refs/tags/12.0.0-next.6
- refs/tags/12.0.0-next.7
- refs/tags/12.0.0-next.8
- refs/tags/12.0.0-next.9
- refs/tags/12.0.0-rc.0
- refs/tags/12.0.0-rc.1
- refs/tags/12.0.0-rc.2
- refs/tags/12.0.0-rc.3
- refs/tags/12.0.1
- refs/tags/12.0.2
- refs/tags/12.0.3
- refs/tags/12.0.4
- refs/tags/12.0.5
- refs/tags/12.1.0
- refs/tags/12.1.0-next.2
- refs/tags/12.1.0-next.3
- refs/tags/12.1.0-next.4
- refs/tags/12.1.0-next.5
- refs/tags/12.1.0-next.6
- refs/tags/12.1.1
- refs/tags/12.1.2
- refs/tags/12.1.3
- refs/tags/12.1.4
- refs/tags/12.1.5
- refs/tags/12.2.0
- refs/tags/12.2.0-next.0
- refs/tags/12.2.0-next.1
- refs/tags/12.2.0-next.2
- refs/tags/12.2.0-next.3
- refs/tags/12.2.0-rc.0
- refs/tags/12.2.1
- refs/tags/12.2.10
- refs/tags/12.2.11
- refs/tags/12.2.12
- refs/tags/12.2.13
- refs/tags/12.2.14
- refs/tags/12.2.15
- refs/tags/12.2.16
- refs/tags/12.2.17
- refs/tags/12.2.2
- refs/tags/12.2.3
- refs/tags/12.2.4
- refs/tags/12.2.5
- refs/tags/12.2.6
- refs/tags/12.2.7
- refs/tags/12.2.8
- refs/tags/12.2.9
- refs/tags/13.0.0
- refs/tags/13.0.0-next.0
- refs/tags/13.0.0-next.1
- refs/tags/13.0.0-next.10
- refs/tags/13.0.0-next.11
- refs/tags/13.0.0-next.12
- refs/tags/13.0.0-next.13
- refs/tags/13.0.0-next.14
- refs/tags/13.0.0-next.15
- refs/tags/13.0.0-next.2
- refs/tags/13.0.0-next.3
- refs/tags/13.0.0-next.4
- refs/tags/13.0.0-next.5
- refs/tags/13.0.0-next.6
- refs/tags/13.0.0-next.7
- refs/tags/13.0.0-next.8
- refs/tags/13.0.0-next.9
- refs/tags/13.0.0-rc.0
- refs/tags/13.0.0-rc.1
- refs/tags/13.0.0-rc.2
- refs/tags/13.0.0-rc.3
- refs/tags/13.0.1
- refs/tags/13.0.2
- refs/tags/13.0.3
- refs/tags/13.1.0
- refs/tags/13.1.0-next.0
- refs/tags/13.1.0-next.1
- refs/tags/13.1.0-next.2
- refs/tags/13.1.0-next.3
- refs/tags/13.1.1
- refs/tags/13.1.2
- refs/tags/13.1.3
- refs/tags/13.2.0
- refs/tags/13.2.0-next.0
- refs/tags/13.2.0-next.1
- refs/tags/13.2.0-next.2
- refs/tags/13.2.0-rc.0
- refs/tags/13.2.0-rc.1
- refs/tags/13.2.1
- refs/tags/13.2.2
- refs/tags/13.2.3
- refs/tags/13.2.4
- refs/tags/13.2.5
- refs/tags/13.2.6
- refs/tags/13.2.7
- refs/tags/13.3.0
- refs/tags/13.3.0-next.0
- refs/tags/13.3.0-rc.0
- refs/tags/13.3.1
- refs/tags/13.3.10
- refs/tags/13.3.11
- refs/tags/13.3.12
- refs/tags/13.3.2
- refs/tags/13.3.3
- refs/tags/13.3.4
- refs/tags/13.3.5
- refs/tags/13.3.6
- refs/tags/13.3.7
- refs/tags/13.3.8
- refs/tags/13.3.9
- refs/tags/13.4.0
- refs/tags/14.0.0
- refs/tags/14.0.0-next.0
- refs/tags/14.0.0-next.1
- refs/tags/14.0.0-next.10
- refs/tags/14.0.0-next.11
- refs/tags/14.0.0-next.12
- refs/tags/14.0.0-next.13
- refs/tags/14.0.0-next.14
- refs/tags/14.0.0-next.15
- refs/tags/14.0.0-next.16
- refs/tags/14.0.0-next.2
- refs/tags/14.0.0-next.3
- refs/tags/14.0.0-next.4
- refs/tags/14.0.0-next.5
- refs/tags/14.0.0-next.6
- refs/tags/14.0.0-next.7
- refs/tags/14.0.0-next.8
- refs/tags/14.0.0-next.9
- refs/tags/14.0.0-rc.0
- refs/tags/14.0.0-rc.1
- refs/tags/14.0.0-rc.2
- refs/tags/14.0.0-rc.3
- refs/tags/14.0.1
- refs/tags/14.0.2
- refs/tags/14.0.3
- refs/tags/14.0.4
- refs/tags/14.0.5
- refs/tags/14.0.6
- refs/tags/14.0.7
- refs/tags/14.1.0
- refs/tags/14.1.0-next.0
- refs/tags/14.1.0-next.1
- refs/tags/14.1.0-next.2
- refs/tags/14.1.0-next.3
- refs/tags/14.1.0-next.4
- refs/tags/14.1.0-rc.0
- refs/tags/14.1.1
- refs/tags/14.1.2
- refs/tags/14.1.3
- refs/tags/14.2.0
- refs/tags/14.2.0-next.0
- refs/tags/14.2.0-next.1
- refs/tags/14.2.0-rc.0
- refs/tags/14.2.1
- refs/tags/14.2.10
- refs/tags/14.2.11
- refs/tags/14.2.12
- refs/tags/14.2.2
- refs/tags/14.2.3
- refs/tags/14.2.4
- refs/tags/14.2.5
- refs/tags/14.2.6
- refs/tags/14.2.7
- refs/tags/14.2.8
- refs/tags/14.2.9
- refs/tags/14.3.0
- refs/tags/15.0.0
- refs/tags/15.0.0-next.0
- refs/tags/15.0.0-next.1
- refs/tags/15.0.0-next.2
- refs/tags/15.0.0-next.3
- refs/tags/15.0.0-next.4
- refs/tags/15.0.0-next.5
- refs/tags/15.0.0-next.6
- refs/tags/15.0.0-rc.0
- refs/tags/15.0.0-rc.1
- refs/tags/15.0.0-rc.2
- refs/tags/15.0.0-rc.3
- refs/tags/15.0.0-rc.4
- refs/tags/15.0.1
- refs/tags/15.0.2
- refs/tags/15.0.3
- refs/tags/15.0.4
- refs/tags/15.1.0
- refs/tags/15.1.0-next.0
- refs/tags/15.1.0-next.1
- refs/tags/15.1.0-next.2
- refs/tags/15.1.0-next.3
- refs/tags/15.1.0-rc.0
- refs/tags/15.1.1
- refs/tags/15.1.2
- refs/tags/15.1.3
- refs/tags/15.1.4
- refs/tags/15.1.5
- refs/tags/15.2.0
- refs/tags/15.2.0-next.0
- refs/tags/15.2.0-next.1
- refs/tags/15.2.0-next.2
- refs/tags/15.2.0-next.3
- refs/tags/15.2.0-next.4
- refs/tags/15.2.0-rc.0
- refs/tags/15.2.1
- refs/tags/15.2.10
- refs/tags/15.2.2
- refs/tags/15.2.3
- refs/tags/15.2.4
- refs/tags/15.2.5
- refs/tags/15.2.6
- refs/tags/15.2.7
- refs/tags/15.2.8
- refs/tags/15.2.9
- refs/tags/16.0.0
- refs/tags/16.0.0-next.0
- refs/tags/16.0.0-next.1
- refs/tags/16.0.0-next.2
- refs/tags/16.0.0-next.3
- refs/tags/16.0.0-next.4
- refs/tags/16.0.0-next.5
- refs/tags/16.0.0-next.6
- refs/tags/16.0.0-next.7
- refs/tags/16.0.0-rc.0
- refs/tags/16.0.0-rc.1
- refs/tags/16.0.0-rc.2
- refs/tags/16.0.0-rc.3
- refs/tags/16.0.0-rc.4
- refs/tags/16.0.1
- refs/tags/16.0.2
- refs/tags/16.0.3
- refs/tags/16.0.4
- refs/tags/16.0.5
- refs/tags/16.0.6
- refs/tags/16.1.0
- refs/tags/16.1.0-next.0
- refs/tags/16.1.0-next.1
- refs/tags/16.1.0-next.2
- refs/tags/16.1.0-next.3
- refs/tags/16.1.0-rc.0
- refs/tags/16.1.1
- refs/tags/16.1.2
- refs/tags/16.1.3
- refs/tags/16.1.4
- refs/tags/16.1.5
- refs/tags/16.1.6
- refs/tags/16.1.7
- refs/tags/16.1.8
- refs/tags/16.1.9
- refs/tags/16.2.0
- refs/tags/16.2.0-next.0
- refs/tags/16.2.0-next.1
- refs/tags/16.2.0-next.2
- refs/tags/16.2.0-next.3
- refs/tags/16.2.0-next.4
- refs/tags/16.2.0-rc.0
- refs/tags/16.2.1
- refs/tags/16.2.10
- refs/tags/16.2.11
- refs/tags/16.2.12
- refs/tags/16.2.2
- refs/tags/16.2.3
- refs/tags/16.2.4
- refs/tags/16.2.5
- refs/tags/16.2.6
- refs/tags/16.2.7
- refs/tags/16.2.8
- refs/tags/16.2.9
- refs/tags/17.0.0
- refs/tags/17.0.0-next.0
- refs/tags/17.0.0-next.1
- refs/tags/17.0.0-next.2
- refs/tags/17.0.0-next.3
- refs/tags/17.0.0-next.4
- refs/tags/17.0.0-next.5
- refs/tags/17.0.0-next.6
- refs/tags/17.0.0-next.7
- refs/tags/17.0.0-next.8
- refs/tags/17.0.0-rc.0
- refs/tags/17.0.0-rc.1
- refs/tags/17.0.0-rc.2
- refs/tags/17.0.0-rc.3
- refs/tags/17.0.1
- refs/tags/17.0.2
- refs/tags/17.0.3
- refs/tags/17.0.4
- refs/tags/17.0.5
- refs/tags/17.0.6
- refs/tags/17.0.7
- refs/tags/17.0.8
- refs/tags/17.0.9
- refs/tags/17.1.0
- refs/tags/17.1.0-next.0
- refs/tags/17.1.0-next.1
- refs/tags/17.1.0-next.2
- refs/tags/17.1.0-next.3
- refs/tags/17.1.0-next.4
- refs/tags/17.1.0-next.5
- refs/tags/17.1.0-rc.0
- refs/tags/17.1.1
- refs/tags/17.1.2
- refs/tags/17.1.3
- refs/tags/17.2.0
- refs/tags/17.2.0-next.0
- refs/tags/17.2.0-next.1
- refs/tags/17.2.0-rc.0
- refs/tags/17.2.0-rc.1
- refs/tags/17.2.1
- refs/tags/17.2.2
- refs/tags/17.2.3
- refs/tags/17.2.4
- refs/tags/17.3.0
- refs/tags/17.3.0-next.0
- refs/tags/17.3.0-next.1
- refs/tags/17.3.0-rc.0
- refs/tags/17.3.1
- refs/tags/17.3.2
- refs/tags/17.3.3
- refs/tags/17.3.4
- refs/tags/17.3.5
- refs/tags/18.0.0-next.0
- refs/tags/18.0.0-next.1
- refs/tags/18.0.0-next.2
- refs/tags/18.0.0-next.3
- refs/tags/18.0.0-next.4
- refs/tags/18.0.0-next.5
- refs/tags/2.0.0
- refs/tags/2.0.0-alpha.13
- refs/tags/2.0.0-alpha.14
- refs/tags/2.0.0-alpha.15
- refs/tags/2.0.0-alpha.16
- refs/tags/2.0.0-alpha.17
- refs/tags/2.0.0-alpha.18
- refs/tags/2.0.0-alpha.19
- refs/tags/2.0.0-alpha.20
- refs/tags/2.0.0-alpha.21
- refs/tags/2.0.0-alpha.22
- refs/tags/2.0.0-alpha.23
- refs/tags/2.0.0-alpha.24
- refs/tags/2.0.0-alpha.25
- refs/tags/2.0.0-alpha.26
- refs/tags/2.0.0-alpha.27
- refs/tags/2.0.0-alpha.28
- refs/tags/2.0.0-alpha.29
- refs/tags/2.0.0-alpha.30
- refs/tags/2.0.0-alpha.31
- refs/tags/2.0.0-alpha.32
- refs/tags/2.0.0-alpha.33
- refs/tags/2.0.0-alpha.34
- refs/tags/2.0.0-alpha.35
- refs/tags/2.0.0-alpha.36
- refs/tags/2.0.0-alpha.37
- refs/tags/2.0.0-alpha.38
- refs/tags/2.0.0-alpha.39
- refs/tags/2.0.0-alpha.40
- refs/tags/2.0.0-alpha.41
- refs/tags/2.0.0-alpha.42
- refs/tags/2.0.0-alpha.44
- refs/tags/2.0.0-alpha.45
- refs/tags/2.0.0-alpha.46
- refs/tags/2.0.0-alpha.47
- refs/tags/2.0.0-alpha.48
- refs/tags/2.0.0-alpha.49
- refs/tags/2.0.0-alpha.50
- refs/tags/2.0.0-alpha.51
- refs/tags/2.0.0-alpha.52
- refs/tags/2.0.0-alpha.53
- refs/tags/2.0.0-alpha.54
- refs/tags/2.0.0-alpha.55
- refs/tags/2.0.0-beta.0
- refs/tags/2.0.0-beta.1
- refs/tags/2.0.0-beta.10
- refs/tags/2.0.0-beta.11
- refs/tags/2.0.0-beta.12
- refs/tags/2.0.0-beta.13
- refs/tags/2.0.0-beta.14
- refs/tags/2.0.0-beta.15
- refs/tags/2.0.0-beta.16
- refs/tags/2.0.0-beta.17
- refs/tags/2.0.0-beta.2
- refs/tags/2.0.0-beta.3
- refs/tags/2.0.0-beta.4
- refs/tags/2.0.0-beta.5
- refs/tags/2.0.0-beta.6
- refs/tags/2.0.0-beta.7
- refs/tags/2.0.0-beta.8
- refs/tags/2.0.0-beta.9
- refs/tags/2.0.0-build.006a96d.js
- refs/tags/2.0.0-build.00822c3.dart
- refs/tags/2.0.0-build.00822c3.js
- refs/tags/2.0.0-build.015faee.dart
- refs/tags/2.0.0-build.015faee.js
- refs/tags/2.0.0-build.016ab31.dart
- refs/tags/2.0.0-build.016ab31.js
- refs/tags/2.0.0-build.019cb41.dart
- refs/tags/2.0.0-build.019cb41.js
- refs/tags/2.0.0-build.01ba94b.dart
- refs/tags/2.0.0-build.01ba94b.js
- refs/tags/2.0.0-build.0206d72.dart
- refs/tags/2.0.0-build.0206d72.js
- refs/tags/2.0.0-build.020ce32.dart
- refs/tags/2.0.0-build.020ce32.js
- refs/tags/2.0.0-build.0290362.dart
- refs/tags/2.0.0-build.0290362.js
- refs/tags/2.0.0-build.03823d4.dart
- refs/tags/2.0.0-build.03823d4.js
- refs/tags/2.0.0-build.039ed3b.dart
- refs/tags/2.0.0-build.039ed3b.js
- refs/tags/2.0.0-build.03e3035.dart
- refs/tags/2.0.0-build.03e3035.js
- refs/tags/2.0.0-build.041c599.dart
- refs/tags/2.0.0-build.041c599.js
- refs/tags/2.0.0-build.046758c.dart
- refs/tags/2.0.0-build.046758c.js
- refs/tags/2.0.0-build.0544e07.dart
- refs/tags/2.0.0-build.0544e07.js
- refs/tags/2.0.0-build.059e09c.dart
- refs/tags/2.0.0-build.059e09c.js
- refs/tags/2.0.0-build.05fa1fd.dart
- refs/tags/2.0.0-build.05fa1fd.js
- refs/tags/2.0.0-build.05fb269.dart
- refs/tags/2.0.0-build.05fb269.js
- refs/tags/2.0.0-build.0614797.dart
- refs/tags/2.0.0-build.0614797.js
- refs/tags/2.0.0-build.065ac93.dart
- refs/tags/2.0.0-build.065ac93.js
- refs/tags/2.0.0-build.06b2aa1.dart
- refs/tags/2.0.0-build.06b2aa1.js
- refs/tags/2.0.0-build.06d076a.dart
- refs/tags/2.0.0-build.06d076a.js
- refs/tags/2.0.0-build.06e32eb.dart
- refs/tags/2.0.0-build.06e32eb.js
- refs/tags/2.0.0-build.070d818.dart
- refs/tags/2.0.0-build.070d818.js
- refs/tags/2.0.0-build.071165f.dart
- refs/tags/2.0.0-build.071165f.js
- refs/tags/2.0.0-build.074075d.dart
- refs/tags/2.0.0-build.074075d.js
- refs/tags/2.0.0-build.080469f.dart
- refs/tags/2.0.0-build.080469f.js
- refs/tags/2.0.0-build.0815a77.dart
- refs/tags/2.0.0-build.0815a77.js
- refs/tags/2.0.0-build.093b794.dart
- refs/tags/2.0.0-build.093b794.js
- refs/tags/2.0.0-build.0a3a17f.dart
- refs/tags/2.0.0-build.0a3a17f.js
- refs/tags/2.0.0-build.0a44fc6.dart
- refs/tags/2.0.0-build.0a44fc6.js
- refs/tags/2.0.0-build.0ae7775.dart
- refs/tags/2.0.0-build.0ae7775.js
- refs/tags/2.0.0-build.0b6e75a.dart
- refs/tags/2.0.0-build.0b6e75a.js
- refs/tags/2.0.0-build.0c9596a.dart
- refs/tags/2.0.0-build.0c9596a.js
- refs/tags/2.0.0-build.0cdf280.dart
- refs/tags/2.0.0-build.0cdf280.js
- refs/tags/2.0.0-build.0db0252.dart
- refs/tags/2.0.0-build.0db0252.js
- refs/tags/2.0.0-build.0df8bc4.dart
- refs/tags/2.0.0-build.0df8bc4.js
- refs/tags/2.0.0-build.0ec9ccf.dart
- refs/tags/2.0.0-build.0ec9ccf.js
- refs/tags/2.0.0-build.0ef6809.dart
- refs/tags/2.0.0-build.0ef6809.js
- refs/tags/2.0.0-build.0f85b36.dart
- refs/tags/2.0.0-build.0f85b36.js
- refs/tags/2.0.0-build.0f8e40b.dart
- refs/tags/2.0.0-build.0f8e40b.js
- refs/tags/2.0.0-build.116015b.dart
- refs/tags/2.0.0-build.116015b.js
- refs/tags/2.0.0-build.125fa38.dart
- refs/tags/2.0.0-build.125fa38.js
- refs/tags/2.0.0-build.132829e.dart
- refs/tags/2.0.0-build.132829e.js
- refs/tags/2.0.0-build.13e6354.dart
- refs/tags/2.0.0-build.13e6354.js
- refs/tags/2.0.0-build.140ce9f.dart
- refs/tags/2.0.0-build.140ce9f.js
- refs/tags/2.0.0-build.1417e12.dart
- refs/tags/2.0.0-build.1417e12.js
- refs/tags/2.0.0-build.15f5f27.dart
- refs/tags/2.0.0-build.15f5f27.js
- refs/tags/2.0.0-build.1607ef8.dart
- refs/tags/2.0.0-build.1607ef8.js
- refs/tags/2.0.0-build.16d9c60.dart
- refs/tags/2.0.0-build.16d9c60.js
- refs/tags/2.0.0-build.16e74cf.dart
- refs/tags/2.0.0-build.16e74cf.js
- refs/tags/2.0.0-rc.0
- refs/tags/2.0.0-rc.1
- refs/tags/2.0.0-rc.2
- refs/tags/2.0.0-rc.3
- refs/tags/2.0.0-rc.4
- refs/tags/2.0.0-rc.5
- refs/tags/2.0.0-rc.6
- refs/tags/2.0.0-rc.7
- refs/tags/2.0.1
- refs/tags/2.0.2
- refs/tags/2.1.0
- refs/tags/2.1.0-beta.0
- refs/tags/2.1.0-rc.0
- refs/tags/2.1.1
- refs/tags/2.1.2
- refs/tags/2.2.0
- refs/tags/2.2.0-beta.0
- refs/tags/2.2.0-beta.1
- refs/tags/2.2.0-rc.0
- refs/tags/2.2.1
- refs/tags/2.2.2
- refs/tags/2.2.3
- refs/tags/2.2.4
- refs/tags/2.3.0
- refs/tags/2.3.0-beta.0
- refs/tags/2.3.0-beta.1
- refs/tags/2.3.0-rc.0
- refs/tags/2.3.1
- refs/tags/2.4.0
- refs/tags/2.4.0-marker
- refs/tags/2.4.1
- refs/tags/2.4.10
- refs/tags/2.4.2
- refs/tags/2.4.3
- refs/tags/2.4.4
- refs/tags/2.4.5
- refs/tags/2.4.6
- refs/tags/2.4.7
- refs/tags/2.4.8
- refs/tags/2.4.9
- refs/tags/4.0.0
- refs/tags/4.0.0-beta.0
- refs/tags/4.0.0-beta.1
- refs/tags/4.0.0-beta.2
- refs/tags/4.0.0-beta.3
- refs/tags/4.0.0-beta.4
- refs/tags/4.0.0-beta.5
- refs/tags/4.0.0-beta.6
- refs/tags/4.0.0-beta.7
- refs/tags/4.0.0-beta.8
- refs/tags/4.0.0-rc.1
- refs/tags/4.0.0-rc.2
- refs/tags/4.0.0-rc.3
- refs/tags/4.0.0-rc.4
- refs/tags/4.0.0-rc.5
- refs/tags/4.0.0-rc.6
- refs/tags/4.0.1
- refs/tags/4.0.2
- refs/tags/4.0.3
- refs/tags/4.1.0
- refs/tags/4.1.0-beta.0
- refs/tags/4.1.0-beta.1
- refs/tags/4.1.0-rc.0
- refs/tags/4.1.1
- refs/tags/4.1.2
- refs/tags/4.1.3
- refs/tags/4.2.0
- refs/tags/4.2.0-beta.0
- refs/tags/4.2.0-beta.1
- refs/tags/4.2.0-rc.0
- refs/tags/4.2.0-rc.1
- refs/tags/4.2.0-rc.2
- refs/tags/4.2.1
- refs/tags/4.2.2
- refs/tags/4.2.3
- refs/tags/4.2.4
- refs/tags/4.2.5
- refs/tags/4.2.6
- refs/tags/4.3.0
- refs/tags/4.3.0-beta.0
- refs/tags/4.3.0-beta.1
- refs/tags/4.3.0-rc.0
- refs/tags/4.3.1
- refs/tags/4.3.2
- refs/tags/4.3.3
- refs/tags/4.3.4
- refs/tags/4.3.5
- refs/tags/4.3.6
- refs/tags/4.4.0
- refs/tags/4.4.0-RC.0
- refs/tags/4.4.1
- refs/tags/4.4.2
- refs/tags/4.4.3
- refs/tags/4.4.4
- refs/tags/4.4.5
- refs/tags/4.4.6
- refs/tags/4.4.7
- refs/tags/5.0.0
- refs/tags/5.0.0-beta.0
- refs/tags/5.0.0-beta.1
- refs/tags/5.0.0-beta.2
- refs/tags/5.0.0-beta.3
- refs/tags/5.0.0-beta.4
- refs/tags/5.0.0-beta.5
- refs/tags/5.0.0-beta.6
- refs/tags/5.0.0-beta.7
- refs/tags/5.0.0-rc.0
- refs/tags/5.0.0-rc.1
- refs/tags/5.0.0-rc.2
- refs/tags/5.0.0-rc.3
- refs/tags/5.0.0-rc.4
- refs/tags/5.0.0-rc.5
- refs/tags/5.0.0-rc.6
- refs/tags/5.0.0-rc.7
- refs/tags/5.0.0-rc.8
- refs/tags/5.0.0-rc.9
- refs/tags/5.0.1
- refs/tags/5.0.2
- refs/tags/5.0.3
- refs/tags/5.0.4
- refs/tags/5.0.5
- refs/tags/5.1.0
- refs/tags/5.1.0-beta.0
- refs/tags/5.1.0-beta.1
- refs/tags/5.1.0-beta.2
- refs/tags/5.1.0-rc.0
- refs/tags/5.1.0-rc.1
- refs/tags/5.1.1
- refs/tags/5.1.2
- refs/tags/5.1.3
- refs/tags/5.2.0
- refs/tags/5.2.0-beta.0
- refs/tags/5.2.0-beta.1
- refs/tags/5.2.0-rc.0
- refs/tags/5.2.1
- refs/tags/5.2.10
- refs/tags/5.2.11
- refs/tags/5.2.2
- refs/tags/5.2.3
- refs/tags/5.2.4
- refs/tags/5.2.5
- refs/tags/5.2.6
- refs/tags/5.2.7
- refs/tags/5.2.8
- refs/tags/5.2.9
- refs/tags/6.0.0
- refs/tags/6.0.0-beta.0
- refs/tags/6.0.0-beta.1
- refs/tags/6.0.0-beta.2
- refs/tags/6.0.0-beta.3
- refs/tags/6.0.0-beta.4
- refs/tags/6.0.0-beta.5
- refs/tags/6.0.0-beta.6
- refs/tags/6.0.0-beta.7
- refs/tags/6.0.0-beta.8
- refs/tags/6.0.0-rc.0
- refs/tags/6.0.0-rc.1
- refs/tags/6.0.0-rc.2
- refs/tags/6.0.0-rc.3
- refs/tags/6.0.0-rc.4
- refs/tags/6.0.0-rc.5
- refs/tags/6.0.0-rc.6
- refs/tags/6.0.1
- refs/tags/6.0.2
- refs/tags/6.0.3
- refs/tags/6.0.4
- refs/tags/6.0.5
- refs/tags/6.0.6
- refs/tags/6.0.7
- refs/tags/6.0.8
- refs/tags/6.0.9
- refs/tags/6.1.0
- refs/tags/6.1.0-beta.0
- refs/tags/6.1.0-beta.1
- refs/tags/6.1.0-beta.2
- refs/tags/6.1.0-beta.3
- refs/tags/6.1.0-rc.0
- refs/tags/6.1.0-rc.3
- refs/tags/6.1.1
- refs/tags/6.1.10
- refs/tags/6.1.2
- refs/tags/6.1.3
- refs/tags/6.1.4
- refs/tags/6.1.5
- refs/tags/6.1.6
- refs/tags/6.1.7
- refs/tags/6.1.8
- refs/tags/6.1.9
- refs/tags/7.0.0
- refs/tags/7.0.0-beta.0
- refs/tags/7.0.0-beta.1
- refs/tags/7.0.0-beta.2
- refs/tags/7.0.0-beta.3
- refs/tags/7.0.0-beta.4
- c2149dfaa82aa0e1963d4a8b1f49063a9c4a9d69
- Branches list truncated to 1000 entries, 177 were omitted.
- 12.0.0
- Releases list truncated to 1 entries, 8 were omitted.
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.Processing "take a new snapshot" request ...
Revision | Author | Date | Message | Commit Date |
---|---|---|---|---|
c2149df | Andrew Scott | 20 March 2024, 19:25:38 UTC | release: cut the v17.3.1 release | 20 March 2024, 19:49:30 UTC |
99e9474 | Alex Rickabaugh | 05 March 2024, 23:27:21 UTC | fix(compiler-cli): symbol feature detection for the compiler (#54711) Use the actual symbol presence in the .d.ts to detect whether two-way binding to writable signals should be template type-checked. PR Close #54711 | 20 March 2024, 19:14:42 UTC |
766bdf3 | Angular Robot | 19 March 2024, 04:04:46 UTC | build: update dependency google-closure-compiler to v20240317 (#54931) See associated pull request for more information. PR Close #54931 | 19 March 2024, 17:00:46 UTC |
2a1ea5a | Angular Robot | 19 March 2024, 05:04:10 UTC | build: update github/codeql-action action to v3.24.8 (#54932) See associated pull request for more information. PR Close #54932 | 19 March 2024, 16:59:49 UTC |
529a5f4 | Joey Perrott | 18 March 2024, 18:27:30 UTC | refactor(docs-infra): don't rely on aio_npm in adev (#54928) Use @npm// instead of @aio_npm// in adev BUILD files PR Close #54928 | 19 March 2024, 16:55:45 UTC |
e70228a | Matthieu Riegler | 01 March 2024, 14:20:27 UTC | refactor(core): Add hydration missmatch on the component rather than the node. (#54671) In some cases the hydration mismatch is nested within a component. As the devTool only reports issues on the component level, we need to mark the component node rather than the actual mismatched node. PR Close #54671 | 18 March 2024, 23:52:19 UTC |
4ab3a9a | Angular Robot | 17 March 2024, 00:42:18 UTC | docs: update Angular CLI help [17.3.x] (#54911) Updated Angular CLI help contents. PR Close #54911 | 18 March 2024, 23:51:28 UTC |
1f5ab96 | Andrew Kushnir | 15 March 2024, 22:05:36 UTC | refactor(core): allow passing an environment injector while creating a view (#54903) This commit updates the name of an internal function argument that represents an embedded view injector. Also it introduces a new config option that allows passing an environment injector to be used in the underlying LView. There are no changes to the behavior, just some initial cleanup for upcoming changes. PR Close #54903 | 18 March 2024, 23:37:36 UTC |
860ecce | Joey Perrott | 18 March 2024, 15:50:28 UTC | ci: move saucelabs to regular CI job (#54926) Move the saucelabs job to regular CI instead of the priviledged CI to prevent cache poisoning/overload PR Close #54926 | 18 March 2024, 18:02:39 UTC |
e61ccd2 | Joey Perrott | 15 March 2024, 23:13:31 UTC | build: update to latest angular/dev-infra/github-actions/create-pr-for-changes (#54904) Update to latest to correct node verison issue PR Close #54904 | 17 March 2024, 00:41:31 UTC |
80e5a0a | Paul Gschwendtner | 13 March 2024, 12:32:56 UTC | test(compiler-cli): add unit tests for `output()` JIT transform (#54841) We are already testing the JIT transforms via integration tests, but this commit adds dedicated unit tests for the transform behavior for proper test coverage (planned follow-up). PR Close #54841 | 15 March 2024, 22:14:32 UTC |
c078820 | Kristiyan Kostadinov | 15 March 2024, 12:36:59 UTC | fix(compiler): capture data bindings for content projection purposes in blocks (#54876) Fixes a regression in the template pipeline where data bindings weren't being captured for content projection purposes. Fixes #54872. PR Close #54876 | 15 March 2024, 22:11:19 UTC |
42318e7 | Chinthoorie | 12 March 2024, 22:41:16 UTC | refactor(compiler-cli): move DelegatingPerfRecorder initialization into constructor (#54834) Move the initialization of class field `DelegatingPerfRecorder` into the constructor. This fixes the error : `TypeError: Cannot read properties of undefined (reading 'eventCount')` This is blocking the roll-out of public class. PR Close #54834 | 15 March 2024, 22:10:46 UTC |
33dc072 | Angular Robot | 15 March 2024, 18:07:25 UTC | build: update dependency google-closure-compiler to v20231112 (#54893) See associated pull request for more information. PR Close #54893 | 15 March 2024, 18:31:23 UTC |
209632e | Angular Robot | 15 March 2024, 18:07:11 UTC | build: update dependency archiver to v7 (#54892) See associated pull request for more information. PR Close #54892 | 15 March 2024, 18:18:35 UTC |
e78dd31 | Angular Robot | 15 March 2024, 17:05:22 UTC | build: update actions/cache digest to ab5e6d0 (#54886) See associated pull request for more information. PR Close #54886 | 15 March 2024, 17:28:14 UTC |
91029aa | Angular Robot | 15 March 2024, 17:05:43 UTC | build: update dependency @octokit/graphql to v8 (#54888) See associated pull request for more information. PR Close #54888 | 15 March 2024, 17:24:52 UTC |
52296bc | Angular Robot | 15 March 2024, 17:06:02 UTC | build: update dependency lighthouse to v11 (#54292) See associated pull request for more information. PR Close #54292 | 15 March 2024, 17:22:55 UTC |
64862cb | Angular Robot | 15 March 2024, 17:05:26 UTC | build: update io_bazel_rules_sass digest to 79bd239 (#54887) See associated pull request for more information. PR Close #54887 | 15 March 2024, 17:16:23 UTC |
90bbc68 | Angular Robot | 07 March 2024, 14:05:47 UTC | build: update cross-repo angular dependencies (#54883) See associated pull request for more information. PR Close #54883 | 15 March 2024, 17:06:44 UTC |
a5cc82e | Angular Robot | 07 March 2024, 15:03:38 UTC | docs: update events (#54749) Generated `events.json` with the latest events retrieved from the Firebase DB. PR Close #54749 | 15 March 2024, 16:38:14 UTC |
855b8e0 | Angular Robot | 15 March 2024, 16:06:23 UTC | build: update dependency puppeteer-core to v22 (#54298) See associated pull request for more information. PR Close #54298 | 15 March 2024, 16:31:26 UTC |
35e8184 | Angular Robot | 06 February 2024, 22:06:32 UTC | build: update peter-evans/create-or-update-comment action to v4 (#54299) See associated pull request for more information. PR Close #54299 | 15 March 2024, 16:30:52 UTC |
74506e7 | Angular Robot | 11 March 2024, 18:06:22 UTC | build: update eslint dependencies (#50993) See associated pull request for more information. PR Close #50993 | 15 March 2024, 16:30:11 UTC |
c22c5c4 | Andrew Scott | 13 March 2024, 20:47:47 UTC | release: cut the v17.3.0 release | 13 March 2024, 21:05:31 UTC |
5d41ab9 | JoostK | 10 March 2024, 21:05:30 UTC | refactor(core): restructure logic in `isCssClassMatching` function (#54800) The logic in `isCssClassMatching` is only interested in two areas in the attributes: implicit attributes and the `AttributeMarker.Classes` area, with the first area only of interest for projection matching, not directive matching. This commit splits these two searches to make this more apparent. PR Close #54800 | 12 March 2024, 21:05:19 UTC |
243ccce | JoostK | 10 March 2024, 13:39:32 UTC | fix(core): exclude class attribute intended for projection matching from directive matching (#54800) This commit resolves a regression that was introduced when the compiler switched from `TemplateDefinitionBuilder` (TDB) to the template pipeline (TP) compiler. The TP compiler has changed the output of ```html if (false) { <div class="test"></div> } ``` from ```ts defineComponent({ consts: [['class', 'test'], [AttributeMarker.Classes, 'test']], template: function(rf) { if (rf & 1) { ɵɵtemplate(0, App_Conditional_0_Template, 2, 0, "div", 0) } } }); ``` to ```ts defineComponent({ consts: [[AttributeMarker.Classes, 'test']], template: function(rf) { if (rf & 1) { ɵɵtemplate(0, App_Conditional_0_Template, 2, 0, "div", 0) } } }); ``` The last argument to the `ɵɵtemplate` instruction (0 in both compilation outputs) corresponds with the index in `consts` of the element's attribute's, and we observe how TP has allocated only a single attribute array for the `div`, where there used to be two `consts` entries with TDB. Consequently, the `ɵɵtemplate` instruction is now effectively referencing a different attributes array, where the distinction between the `"class"` attribute vs. the `AttributeMarker.Classes` distinction affects the behavior: TP's emit causes the runtime to incorrectly match a directive with `selector: '.foo'` to be instantiated on the `ɵɵtemplate` instruction as if it corresponds with a structural directive! Instead of changing TP to align with TDB's emit, this commit updates the runtime instead. This uncovered an inconsistency in selector matching for class names, where there used to be two paths dealing with class matching: 1. The first check was commented to be a special-case for class matching, implemented in `isCssClassMatching`. 2. The second path was part of the main selector matching algorithm, where `findAttrIndexInNode` was being used to find the start position in `tNode.attrs` to match the selector's value against. The second path only considers `AttributeMarker.Classes` values if matching for content projection, OR of the `TNode` is not an inline template. The special-case in path 1 however does not make that distinction, so it would consider the `AttributeMarker.Classes` binding as a selector match, incorrectly causing a directive to match on the `ɵɵtemplate` itself. The second path was also buggy for class bindings, as the return value of `classIndexOf` was incorrectly negated: it considered a matching class attribute as non-matching and vice-versa. This bug was not observable because of another issue, where the class-handling in part 2 was never relevant because of the special-case in part 1. This commit separates path 1 entirely from path 2 and removes the buggy class-matching logic in part 2, as that is entirely handled by path 1 anyway. `isCssClassMatching` is updated to exclude class bindings from being matched for inline templates. Fixes #54798 PR Close #54800 | 12 March 2024, 21:05:18 UTC |
e8badec | Ben Hong | 12 March 2024, 19:18:54 UTC | docs: fix missing security guide in navigation (#54830) The paths for the security guide were flipped in the original PR. As a result, it looked for a markdown file in the best-practices directory when it should have looked for it in the guide directory instead. PR Close #54830 | 12 March 2024, 20:13:03 UTC |
cdfcb77 | Gerald Monaco | 08 March 2024, 18:13:15 UTC | refactor(core): add internal API to enable i18n hydration (#54784) Add an internal API to enable and use i18n hydration for testing and development. This helps ensure that we don't accidentally break the current behavior until we are completely ready to roll out i18n support. PR Close #54784 | 12 March 2024, 18:39:03 UTC |
ac395d0 | cexbrayat | 08 March 2024, 13:54:11 UTC | refactor(compiler-cli): cleanup unused code (#54775) The initializer api no longer needs to take care of `ɵoutput`. PR Close #54775 | 12 March 2024, 18:31:39 UTC |
e75a9a4 | Ben Hong | 15 February 2024, 21:56:42 UTC | docs: improve in-depth guides information architecture (#54365) PR Close #54365 | 12 March 2024, 17:25:40 UTC |
41f28f8 | Joey Perrott | 11 March 2024, 16:53:45 UTC | fix(docs-infra): remove the prerender directory from adev (#54820) Remove the prerender directory as it is entirely unused and unneeded PR Close #54820 | 12 March 2024, 17:24:08 UTC |
7df0a8a | Paul Gschwendtner | 11 March 2024, 16:49:11 UTC | refactor(core): report subscription errors for `OutputEmitterRef` to `ErrorHandler` (#54821) Currently if an `(output)` listener fails, it will be handled gracefully by Angular and reported to the `ErrorHandler`. For programmatic subscriptions with `OutputEmitterRef`, this is not the case. Instead, as soon as any subscription is failing, all other subsequent subscription callbacks are not firing anymore. This commit intends to make this more consistent by gracefully reporting errors from `OutputEmitterRef#emit` to `ErrorHandler`, allowing for listener execution to continue. PR Close #54821 | 12 March 2024, 17:21:50 UTC |
9889346 | cexbrayat | 08 March 2024, 13:54:34 UTC | docs: typo in output documentation (#54773) PR Close #54773 | 12 March 2024, 16:15:05 UTC |
39a50f9 | Kristiyan Kostadinov | 08 March 2024, 13:22:53 UTC | fix(core): ensure all initializer functions run in an injection context (#54761) Ensures that all of the functions intended to be run in initializers are in an injection context. This is a stop-gap until we have a compiler diagnostic for it. PR Close #54761 | 12 March 2024, 16:08:08 UTC |
1f77083 | Pawel Kozlowski | 11 March 2024, 13:47:15 UTC | refactor(core): assert presence of the track function (#54814) This commits assert that the repeater instruction gets a reference to a tracking function. This change will allow us to better track occurences of https://github.com/angular/angular/issues/53628 - in certain situations a reference to a tracking function might be undefiened. We are not fixing the underlying issue here, just getting better visibility. PR Close #54814 | 11 March 2024, 23:33:01 UTC |
bb35414 | Paul Gschwendtner | 07 March 2024, 14:53:19 UTC | perf(core): speed up retrieval of `DestroyRef` in `EventEmitter` (#54748) Speeds up the retrieval of `DestroyRef` in `EventEmitter` because `try/catch` is expensive if there is no injection context. We saw a script time regression in Cloud. The goldens had to be updated because `getInjectImplementation` is now referenced. `inject` also references the underlying field, but directly. This is super minimal overhead of a function exposing the internal field. PR Close #54748 | 11 March 2024, 23:31:03 UTC |
fcfb42a | Matthieu Riegler | 11 March 2024, 22:53:38 UTC | docs: use the right path for first-app images (#54694) PR Close #54694 | 11 March 2024, 23:30:28 UTC |
57e54e2 | Joey Perrott | 11 March 2024, 17:37:36 UTC | docs: bump to 2024 for copyright text (#54822) Bump copyright text to 2024 PR Close #54822 | 11 March 2024, 20:39:49 UTC |
2909e98 | Andrew Kushnir | 13 February 2024, 02:48:54 UTC | fix(core): prevent infinite loops in clobbered elements check (#54425) This commit updates HTML sanitization logic to avoid infinite loops in case clobbered elements contain fields like `nextSibling` or `parentNode`. Those fields are used for DOM traversal and this update makes sure that those calls return valid results. Also this commit fixes an issue when clobbering `nodeName` causes JS exceptions. PR Close #54425 | 11 March 2024, 19:46:26 UTC |
619f3c8 | Gerald Monaco | 07 March 2024, 15:28:43 UTC | refactor(core): add `i18nNodes` in preparation for i18n hydration (#54750) An i18n message effectively acts as a dynamic template: two elements with contiguous instruction indices won't necessarily be contiguous in the DOM. For that reason, we need to maintain a mapping from instruction index to a physical DOM node in order to hydrate views with i18n, pointing to where hydration for that view should begin. PR Close #54750 | 11 March 2024, 18:12:46 UTC |
0ee1a14 | Andrew Scott | 11 March 2024, 15:38:49 UTC | refactor(core): Remove isG3 usages in patch branch (#54816) This commit removes uses of isG3 in the patch branch. G3 always executes against main so any references in patch are unused. PR Close #54816 | 11 March 2024, 18:11:32 UTC |
f386a04 | Kristiyan Kostadinov | 08 March 2024, 12:39:57 UTC | fix(compiler): handle two-way bindings to signal-based template variables in instruction generation (#54714) Updates the instruction generation for two-way bindings to only emit the `twoWayBindingSet` call when writing to template variables. Since template variables are constants, it's only allowed to write to them when they're signals. Non-signal values are flagged during template type checking. Fixes #54670. PR Close #54714 | 11 March 2024, 18:01:43 UTC |
492e03f | Kristiyan Kostadinov | 06 March 2024, 10:30:38 UTC | fix(compiler-cli): flag two-way bindings to non-signal values in templates (#54714) We have a diagnostic that reports writes to template variables which worked both for regular event bindings and two-way bindings, however the latter was broken by #54154 because two-way bindings no longer had a `PropertyWrite` AST. These changes fix the diagnostic and expand it to allow two-way bindings to template variables that are signals. PR Close #54714 | 11 March 2024, 18:01:43 UTC |
ba9ddd7 | Kristiyan Kostadinov | 06 March 2024, 10:08:49 UTC | refactor(compiler-cli): move illegal template assignment check into template semantics checker (#54714) Moves the check which ensures that there are no writes to template variables into the `TemplateSemanticsChecker` to prepare for the upcoming changes. PR Close #54714 | 11 March 2024, 18:01:43 UTC |
5d23e60 | Kristiyan Kostadinov | 06 March 2024, 08:43:07 UTC | refactor(compiler-cli): move signal identification function (#54714) Moves the function that identifies signals into a separate file so that it can be reused outside of extended diagnostics. PR Close #54714 | 11 March 2024, 18:01:43 UTC |
a7872ca | Kristiyan Kostadinov | 06 March 2024, 08:07:10 UTC | refactor(compiler-cli): introduce template semantics checker (#54714) Introduces a new `TemplateSemanticsChecker` that will be used to flag semantic errors in the user's template. Currently we do some of this in the type check block, but the problem is that it doesn't have access to the template type checker which prevents us from properly checking cases like #54670. This pass is also distinct from the extended template checks, because we don't want users to be able to turn the checks off and we want them to run even if `strictTemplates` are disabled. PR Close #54714 | 11 March 2024, 18:01:43 UTC |
1031478 | Matthieu Riegler | 07 March 2024, 19:57:46 UTC | docs: adding signal inputs and model to ADEV. (#54753) Those docs are a copy from AIO. PR Close #54753 | 11 March 2024, 18:01:01 UTC |
40a94b3 | theRealc0d3c | 11 March 2024, 15:39:37 UTC | docs: fix typo in tutorial (#54817) PR Close #54817 | 11 March 2024, 17:59:53 UTC |
1f129f1 | Kristiyan Kostadinov | 08 March 2024, 13:07:47 UTC | fix(compiler): not catching for loop empty tracking expressions (#54772) Fixes that the template parser wasn't catching empty expressions in the `track` parameter of for loops. Fixes #54763. PR Close #54772 | 11 March 2024, 16:17:43 UTC |
962934b | Kristiyan Kostadinov | 07 March 2024, 08:12:48 UTC | build: update to TypeScript 5.4 stable (#54743) Updates the repo to the stable version of TypeScript 5.4. PR Close #54743 | 11 March 2024, 16:16:55 UTC |
6ce8fc8 | JoostK | 10 March 2024, 21:14:57 UTC | refactor(core): avoid additional closure for queued microtask callback (#54801) The `runCallbackOnce` closure is declared not to have any parameters itself, so it is compatible as `queueMicrotask` callback without the extra closure. This reduces the call stack by a frame and avoids the extra closure allocation. PR Close #54801 | 11 March 2024, 15:59:55 UTC |
e82173e | JoostK | 10 March 2024, 21:48:29 UTC | refactor(core): properly type `withBody` and `withHead` testing helpers (#54801) This commit addresses a typing mismatch, where these functions were declared to return whichever value their callback returned, but this was inaccurate: it's always a test callback function with `done` argument. PR Close #54801 | 11 March 2024, 15:59:55 UTC |
b6a7d50 | JoostK | 10 March 2024, 21:13:04 UTC | test(core): ensure async tests are awaited properly (#54801) The assertion in `packages/core/test/acceptance/after_render_hook_spec.ts:165` was prone to flakes, where Jasmine could frequently report an error: ``` Error: 'expect' was used when there was no current spec, this could be because an asynchronous test timed out at Env.expect (node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1945:15) at expect (node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8267:18) at file:///packages/core/test/acceptance/after_render_hook_spec.ts:165:12 ``` This happens because `wrapTestFn` checks for an exact type of `Promise`, which may have been patched by zone.js such that the `instanceof` condition is dependent on whether zone.js has patched the `Promise` constructor. PR Close #54801 | 11 March 2024, 15:59:55 UTC |
01722ee | Kristiyan Kostadinov | 07 March 2024, 22:16:37 UTC | build: fix size failure (#54756) Fixes a broken size CI check. PR Close #54756 | 08 March 2024, 00:13:44 UTC |
7225485 | Andrew Scott | 05 March 2024, 20:57:43 UTC | fix(router): Navigations triggered by cancellation events should cancel previous navigation (#54710) There is an edge case where synchronous navigations caused in response to navigation events can result in a previous navigation not being unsubscribed from. b/328219996 PR Close #54710 | 07 March 2024, 21:07:10 UTC |
a45e69f | Andrew Scott | 25 January 2024, 23:48:13 UTC | refactor(core): render hooks should always run on node attach or detach (#54083) This commit ensures that render hooks are rerun when a node is attached or detached. We do not necessarily need to run change detection but DOM did change so render hooks should execute. PR Close #54083 | 07 March 2024, 20:59:11 UTC |
a7d6c64 | Andrew Scott | 25 January 2024, 18:48:16 UTC | refactor(core): Skip refresh views if render hooks are the only notification source (#54083) Do not refresh views if the only thing that notified the scheduler was registration of a new render hook. PR Close #54083 | 07 March 2024, 20:59:10 UTC |
2f7c7b3 | Andrew Scott | 25 January 2024, 18:33:36 UTC | refactor(core): registering `afterRender` hooks notify scheduler (#54083) This commit updates the `afterRender` and `afterNextRender` hooks to notify the scheduler (which subsequently schedules change detection) when created. This makes the hooks similar to `requestAnimationFrame`, which requests that the browser schedule a rendering operation. This reqeust is not conditional. Even if there was nothing to repaint, the `requestAnimationFrame` callback will execute. In Angular, this is useful because callers of `afterNextRender` don't necessarily have any way of knowing whether a change detection is even scheduled. For example, the anchor scrolling with the Angular Router needs to wait for rendering to complete before attempting to scroll because rendering can affect the size of the page. However, if the user is already on the page that the navigation is targeting, such as navigating to an anchor on the page, there is nothing new for the Router to render so a render might not even be scheduled. Related to https://github.com/angular/angular/issues/53985, which could use `afterNextRender` instead of `setTimeout` to ensure the scrolling happens in the same frame as the page rendering, but would not necessarily work without this change (as described above). Note that the scrolling _cannot_ use a microtask to ensure scrolling happens in the same frame because `NgZone` will ensure microtasks flush before change detection, so it would cause the scroll to happen before rendering. PR Close #54083 | 07 March 2024, 20:59:10 UTC |
0daa1ea | Gerald Monaco | 06 March 2024, 15:59:08 UTC | refactor(core): refactor i18n node creation to prepare for hydration (#54722) Adds a `locateOrCreateNode` helper and uses it for all DOM operations in preparation for supporting hydration. PR Close #54722 | 07 March 2024, 20:41:46 UTC |
658ae69 | Leonardo Ortiz | 02 January 2024, 21:52:55 UTC | docs: update content readme link (#53763) PR Close #53763 | 07 March 2024, 19:07:09 UTC |
9cf6b93 | Leonardo Ortiz | 02 January 2024, 21:47:43 UTC | docs: readme from blossom (#53763) PR Close #53763 | 07 March 2024, 19:07:09 UTC |
9ea0d69 | Angular Robot | 06 March 2024, 15:03:52 UTC | docs: update events (#54721) Generated `events.json` with the latest events retrieved from the Firebase DB. PR Close #54721 | 07 March 2024, 19:05:39 UTC |
f1991d4 | Gerald Monaco | 06 March 2024, 16:17:31 UTC | refactor(core): don't hydrate detached nodes (#54723) In preparation for hydration support, make sure that we don't attempt to hydrate detached nodes and instead, always newly create them. PR Close #54723 | 07 March 2024, 19:01:31 UTC |
198f2ff | Gerald Monaco | 06 March 2024, 16:44:57 UTC | refactor(core): add i18n AST to prepare for hydration (#54724) In order to serialize and hydrate i18n blocks, we need to be able to walk an AST for the translated message. This AST is generated during normal parsing of the message. PR Close #54724 | 07 March 2024, 19:00:38 UTC |
8d37ed0 | Alan Agius | 07 March 2024, 13:04:53 UTC | fix(http): exclude caching for authenticated HTTP requests (#54746) This update modifies the transfer cache logic to prevent caching of HTTP requests that require authorization. Closes: #54745 PR Close #54746 | 07 March 2024, 19:00:03 UTC |
3659553 | Andrew Scott | 07 March 2024, 00:11:48 UTC | refactor(core): Remove isInternal flag (#54740) This is not needed any longer since the changes that used it have landed. PR Close #54740 | 07 March 2024, 17:07:01 UTC |
d870856 | Andrew Scott | 06 March 2024, 21:09:06 UTC | refactor(core): Fix internal test util types (#54736) This fixes and error that has been seen recently where compilation fails due to domino.impl type not being recognized PR Close #54736 | 06 March 2024, 21:34:55 UTC |
7bfa361 | Pawel Kozlowski | 06 March 2024, 19:37:56 UTC | release: cut the v17.3.0-rc.0 release | 06 March 2024, 19:40:30 UTC |
4be9632 | Pawel Kozlowski | 06 March 2024, 19:33:21 UTC | docs: release notes for the v17.2.4 release | 06 March 2024, 19:34:37 UTC |
7243c70 | Matthieu Riegler | 05 March 2024, 14:12:19 UTC | fix(core): return a readonly signal on `asReadonly`. (#54706) Previous `asReadonly()` returned the signal value and not the signal itself. Fixes #54704 PR Close #54706 | 06 March 2024, 13:41:12 UTC |
e5885fa | Paul Gschwendtner | 06 March 2024, 11:56:00 UTC | build: update ng-dev to avoid node-fetch usages (#54715) See: https://github.com/angular/dev-infra/pull/1829 PR Close #54715 | 06 March 2024, 12:16:38 UTC |
d4154f9 | Paul Gschwendtner | 29 February 2024, 22:57:06 UTC | refactor(core): revert listener subscription typeof check (#54650) For model signals we introduced some sniffing on the return type of a `.subscribe` invocation- allowing for subscribe to _just_ return a callback directly to unsubscribe. This works in practice, but the positive `tCleanup` indices have more meaning, especially in the context of `DebugElement`. A positive index indicates a DOM event- so we need to revert this change. This now surfaced as we made `EventEmitter` return a function + the subscription via a proxy that ended up `typeof function` --> and broke some tests where debug element incorrectly invoked non-dom outputs as dom listeners. We don't need this change with current unsubscribe function concept. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
2df8584 | Paul Gschwendtner | 28 February 2024, 15:44:59 UTC | refactor(compiler-cli): speed up compiler tests by caching Angular (#54650) Currently the `makeProgram` utility from `ngtsc/testing` does not use the test host by default- optimizing for source file caching. Additionally, the host can be updated to attempt caching of the `.d.ts` files from `@angular/core`— whether that's fake core, or the real core- is irrelevant. We are never caching if these changes between tests, so correctness is guaranteed. This commit reduces the type check test times form 80s to just 11 seconds, faster than what it was before with `fake_core`. The ngtsc tests also run significantly faster. From 40s to 30s PR Close #54650 | 06 March 2024, 11:34:39 UTC |
8a8b682 | Paul Gschwendtner | 26 February 2024, 14:59:19 UTC | test: integration test for `output()` api (#54650) Adds an integration test for `output()` and `outputFromObservable()`. The test verifies the JIT transform as well. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
6b1401a | Paul Gschwendtner | 28 February 2024, 12:47:22 UTC | test: add compiler ngtsc tests for new `outputFromObservable` API (#54650) Adds additional ngtsc compiler tests for the `outputFromObservable` API. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
ea03104 | Paul Gschwendtner | 28 February 2024, 12:45:27 UTC | test: fix global augmentation leaking into all source files (#54650) The `inject` global augmentation from upgrade tests, leak into all source files for IDEs, making it easy to run into issues when actually trying to deal with `inject` from Angular core for DI. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
400b739 | Paul Gschwendtner | 28 February 2024, 12:45:21 UTC | test: add language-service tests for `outputFromObservable()` (#54650) Adds additional language-service tests for `outputFromObservable()`. Existing tests already verify the behavior for `output()`. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
500a13e | Paul Gschwendtner | 28 February 2024, 12:52:46 UTC | refactor(core): enforce `model()` and `output()` is used in an injection context (#54650) Technically `model()` and `output()` already need to be defined in an injection context- because `OutputRef` requires this. To improve the error messaging, this commit asserts this as part of the top-level entry functions for `model()` and `output()`. Without this change, the error would mention the `_createOutputRef` internal function. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
db7962a | Paul Gschwendtner | 28 February 2024, 12:52:05 UTC | test: add runtime tests for `output()` function API (#54650) Adds runtime acceptance tests for `output()` and `outputFromObservable()`. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
866271a | Paul Gschwendtner | 28 February 2024, 12:51:27 UTC | refactor(core): `EventEmitter` implements `OutputRef`. (#54650) An `EventEmitter` is a construct owned by Angular that should be used for outputs as of right now. As we are introducing the new `OutputRef` interface for the new output function APIs, we also think `EventEmitter` should implement `OutputRef`— ensuring all "known" outputs follow the same contract. This commit ensures `EventEmitter` implements an `OutputRef` Note: An output ref captures the destroy ref from the current injection context for clean-up purposes. This is also done for `EventEmitter` in a backwards compatible way: - not requiring an injection context. EventEmitter may be used elsewhere. - not cleaning up subscriptions/completing the emitter when the directive/component is destroyed. This would be a change in behavior. Note 2: The dependency on `DestroyRef` causes it to be retained in all bundling examples because ironically `NgZone` uses `EventEmitter`- not for outputs. The code is pretty minimal though, so that should be acceptable. `EventEmitter` will now always retain `NgZone. This increases the payload size slightly around 800b for AIO. Note that the other increases were coming from previous changes. This commit just pushed it over the threshold. PR Close #54650 | 06 March 2024, 11:34:39 UTC |
30355f6 | Paul Gschwendtner | 28 February 2024, 12:51:16 UTC | refactor(core): `model()` implements `OutputRef` (#54650) A model signal is technically an output, at runtime and conceptually. This commit re-uses the shared output ref logic and ensures the interfaces match. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
e7ea6c0 | Paul Gschwendtner | 28 February 2024, 12:44:48 UTC | test: add compliance generated output tests for `output()` (#54650) This commit adds compliance tests for the new output APIs. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
aff65fd | Paul Gschwendtner | 28 February 2024, 12:49:57 UTC | feat(core): introduce `outputToObservable` interop helper (#54650) This commit introduces an addition to `output()` and `outputFromObservable`()` —called `outputToObservable()`. The helper lives in the RxJS interop package and allows agnostic programmatic subscriptions to `OutputRef`s by converting the output to an observable with `.pipe` etc. The function is ideally used in all places where you subscribe to an output programmatically. Those outputs in the future, with the new APIs, may not be actual RxJS constructs, but abstract `OutputRef`'s that simply expose a `.subscribe` method. The helper allows you to agnostically convert outputs to RxJS observables that you can safely interact with. The observables are also completed automatically, if possible, when the owning directive/component is destroyed— Something that is not guaranteed right now. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
c809069 | Paul Gschwendtner | 28 February 2024, 12:56:16 UTC | feat(core): introduce `outputFromObservable()` interop function (#54650) Introduces a second API in addition to the new `output()` function. The new function `outputFromObservable()` can be used to declare outputs using the new `OutputRef` API and `output()` API, while using a custom RxJS observable as data source. This is something that is currently possible in Angular and we would like to keep possible- even though we never intended to support custom observables aside from RxJS-based `EventEmitter`. The interop bridges the gap and allows you to continue using `Subject`, `ReplaySubject`, `BehaivorSubjct,` - or cold custom observables for outputs. You can still trigger logic only when the output is subscribed- unlike with imperative `emit`s of `EventEmitter` or the new `OutputEmitterRef`. A notable difference is that you need two class members where you previously could access the `Subject` directly. This is an intentional trade-off we've made to ensure that all new outputs implement the `OutputRef` interface and we are exposing a minimal API surface to consumers of components that currently access the output programmatically. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
9b51292 | Paul Gschwendtner | 26 February 2024, 14:59:45 UTC | refactor(compiler-cli): support detecting initializer APIs from different modules (#54650) This commit allows us to detect initializer APIs like `outputFromObservable` that are declared in different modules- not necessarily `@angular/core`. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
c687b8f | Paul Gschwendtner | 28 February 2024, 15:06:44 UTC | feat(core): expose new `output()` API (#54650) This commit exposes the new `output()` API with numerous benefits: - Symmetrical API to `input()`, `model()` etc. - Fixed types for `EventEmitter.emit`— current `emit` method of `EventEmitter` is broken and accepts `undefined` via `emit(value?: T)` - Removal of RxJS specific concepts from outputs. error channels, completion channels etc. We now have a simple consistent interface. - Automatic clean-up of subscribers upon directive/component destory- when subscribed programmatically. ```ts @Directive({..}) export class MyDir { nameChange = output<string>(); // OutputEmitterRef<string> onClick = output(); // OutputEmitterRef<void> } ``` Note: RxJS custom observable cases will be handled in future commits via explicit helpers from the interop. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
9ce6277 | Paul Gschwendtner | 26 February 2024, 15:00:23 UTC | refactor(core): create `OutputRef` runtime construct (#54650) This commit creates the proposed `OutputRef` interface along with `OutputEmitterRef`: - `OutputRef` is the consistent interface for all Angular outputs. - `OutputEmitterRef` is an extension for emitting values. Like `EventEmitter`. - subscriptions are cleaned up automatically upon directive/component destroy. - emitting is an error when destroyed - subscribing programmatically is an error when already destroyed. This commit will also implement the shared output ref runtime construct, that can be used by `output()`, `outputFromObservable()` and `model()`. We will manage subscriptions in a simple way, manually, without RxJS. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
2564b45 | Paul Gschwendtner | 26 February 2024, 14:46:10 UTC | test: replace `fake_core` with real `@angular/core` output (#54650) This commit replaces `fake_core` with the real `@angular/core` output. See previous commit for reasons. Overall, this commit: * Replaces references of `fake_core` * Fixes tests that were testing Angular compiler detection that _would_ already be flagged by type-checking of TS directly. We keep these tests for now, and add `@ts-ignore` to verify the Angular checks, in case type checking is disabled in user applications- but it's worth considering to remove these tests. Follow-up question/non-priority. * Adds `@ts-ignore` to the tests for `defer` 1P because the property is marked as `@internal` and now is (correctly) causing failures in the compiler test environment. * Fixes a couple of tests with typos, wrong properties etc that previously weren't detected! A good sign. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
5afa4f0 | Paul Gschwendtner | 26 February 2024, 14:34:55 UTC | fix(compiler-cli): support `ModuleWithProviders` literal detection with `typeof` (#54650) As part of improving test safety of the compiler, I've noticed that we have a special pass for detecting external `ModuleWithProviders` where we detect the module type from an object literal. This literal is structured like the following: `{ngModule: T}`. The detection currently takes `T` directly, but in practice it should be `typeof T` to satisfy the `ModuleWithProviders` type that is accepted as part of `Component#imports`. This commit adds support for this, so that we can fix the unit test in preparation for using the real Angular core types in ngtsc tests. PR Close #54650 | 06 March 2024, 11:34:38 UTC |
bd60fb1 | Angular Robot | 06 March 2024, 09:18:47 UTC | docs: update Angular CLI help [main] (#54712) Updated Angular CLI help contents. PR Close #54712 | 06 March 2024, 09:34:11 UTC |
4842eed | Alan Agius | 05 March 2024, 16:20:15 UTC | fix(docs-infra): do not delete `BUILD.bazel` in help directory during updates (#54697) In https://github.com/angular/angular/pull/54591, a `BUILD.bazel` file was created in `aio/content/cli/help/BUILD.bazel`, this however breaks the automatic CLI help pages updates as prior to this change, the `help` directory was being deleted. See: https://github.com/angular/angular/pull/54691/commits/17346e89da2fbddf8274eeadf12bab9c5b8983d8 This commit, updates the process to delete only the JSON files and copying the new files. PR Close #54697 | 06 March 2024, 09:18:03 UTC |
755390a | Jessica Janiuk | 29 February 2024, 19:25:19 UTC | docs: add process documentation to CARETAKER.md (#54664) This adds documentation regarding the latest changes to framework merge tools. It specifically covers the requires: TGP label and separate sync for primitives. PR Close #54664 | 05 March 2024, 18:11:41 UTC |
d2ec5b6 | Matthieu Riegler | 28 February 2024, 21:27:58 UTC | docs: fix clipped `docs-code` block in `docs-reference-api-tab` (#54621) PR Close #54621 | 05 March 2024, 17:35:09 UTC |
b5366f2 | Matthieu Riegler | 28 February 2024, 20:56:32 UTC | docs: fix tutorial preview size (#54621) PR Close #54621 | 05 March 2024, 17:35:06 UTC |
40424fc | Matthieu Riegler | 28 February 2024, 13:46:37 UTC | docs: fix label on API link. (#54621) Remove the unecessary double quotes on a @see link. PR Close #54621 | 05 March 2024, 17:35:04 UTC |
70996ed | Matthieu Riegler | 27 February 2024, 11:31:49 UTC | docs(docs-infra): remove unwanted styling on API page. (#54621) `box-sizing: border-box` prevents overflow caused by borders. PR Close #54621 | 05 March 2024, 17:35:02 UTC |
0ecf515 | Jessica Janiuk | 05 March 2024, 16:17:59 UTC | ci: fix ng-dev build for pr merging (#54707) This updates ng-dev to the latest hash fixing the merge files query. PR Close #54707 | 05 March 2024, 17:16:30 UTC |
b40f1e5 | Dylan Hunn | 04 March 2024, 20:17:24 UTC | refactor(compiler): Remove deep imports in the language service (#54695) Previously, the language service relied on deep imports such as `@angular/compiler/render3/...`. This is bad form, because that creates a dependency on the package's internal structure. Additionally, this is not compatible with google3. In this PR, I replace all the deep imports with shallow imports, in some cases adding the missing symbol to the `compiler.ts` exports. PR Close #54695 | 05 March 2024, 09:28:45 UTC |
33a6fab | Andrew Kushnir | 01 March 2024, 01:36:56 UTC | fix(core): apply TestBed provider overrides to `@defer` dependencies (#54667) This commit updates TestBed logic to take into account situations when dependencies loaded within `@defer` blocks may import NgModules with providers. For such components, we invoke provider override function, which recursively inspects and applies the necessary changes. PR Close #54667 | 05 March 2024, 08:21:22 UTC |