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
- 970a3b5c70fee29aa40945836ebeb464d75438e4
- 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 ...
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Revision | Author | Date | Message | Commit Date |
---|---|---|---|---|
970a3b5 | Joey Perrott | 22 April 2022, 15:33:17 UTC | fix(bazel): add this_is_bazel marker (#45728) Add marker for noting that this check confirms we are running in a bazel environment. PR Close #45728 | 22 April 2022, 19:46:23 UTC |
4962a4a | Andrew Scott | 04 April 2022, 21:05:32 UTC | feat(router): Allow `loadChildren` to return a `Route` array (#45700) This commit expands the `LoadChildrenCallback` to accept returning `Routes` in addition to the existing `NgModule` type. In addition, it adds a check to ensure these loaded routes all use standalone components. The components must be standalone because if they were not, we would not have the required `NgModule` which the component is declared in. Existing API: ``` {path: 'lazy/route', loadChildren: import('./lazy').then(m => m.LazyModule)} @NgModule({ imports: [ ExtraCmpModule, RouterModule.forChild([ {path: 'extra/route', component: ExtraCmp}, ]), ], }) export class LazyModule {} ``` The new API for lazy loading route configs with standalone components (no NgModule) is to expand `loadChildren` to allow returning simply a `Routes` array. ``` // parent.ts { path: 'parent', loadChildren: () => import('./children').then(m => m.ROUTES), } // children.ts export const ROUTES: Route[] = [ {path: 'child', component: ChildCmp}, ]; ``` Note that this includes minimal documentation updates. We need to include a holistic update to the documentation for standalone components in the future that includes this feature. PR Close #45700 | 22 April 2022, 16:25:20 UTC |
3e46a42 | Andrew Kushnir | 21 April 2022, 02:32:33 UTC | test(core): add integration test apps for the `bootstrapApplication` API (#45674) This commit adds 2 integration apps to verify the `bootstrapApplication` API behavior as well as keep track of the bundle size and retained symbols (tree-shaking). PR Close #45674 | 22 April 2022, 00:47:54 UTC |
5771b18 | Andrew Kushnir | 21 April 2022, 02:31:35 UTC | feat(core): add the `bootstrapApplication` function (#45674) This commit implements the `bootstrapApplication` function that allows bootstrapping an application and pass a standalone component as a root component. PR Close #45674 | 22 April 2022, 00:47:54 UTC |
612d6e0 | Paul Gschwendtner | 13 April 2022, 13:02:54 UTC | test: update size golden for hello-world-ivy-compat integration test (#45405) The main bundle fell below the 500b threshold. Likely because the global constant was fixed and is now tree-shakeable. The actual diff in the commit is a little confusing since it makes it seem that polyfills increased as part of this commit. This is not the case but just a side-effect of us accumulating various changes which are not reflected on a per-commit basis in the size golden. The actual sizes in master were: ``` SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 1105, actual: 1102). SUCCESS: Commit undefined uncompressed polyfills did NOT cross size threshold of 500 bytes or >1% (expected: 33846, actual: 33957). SUCCESS: Commit undefined uncompressed main did NOT cross size threshold of 500 bytes or >1% (expected: 132392, actual: 131893). ``` Now with this change: ``` SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 1105, actual: 1102). SUCCESS: Commit undefined uncompressed polyfills did NOT cross size threshold of 500 bytes or >1% (expected: 33846, actual: 33957). FAIL: Commit undefined uncompressed main fell below expected size by 500 bytes or >1% (expected: 132392, actual: 131883). ``` PR Close #45405 | 21 April 2022, 18:09:39 UTC |
067e4c2 | Paul Gschwendtner | 13 April 2022, 08:16:37 UTC | build: update systemjs aio boilerplate to work with APF v13+ `exports` field (#45405) The SystemJS examples were using an outdated version of rollup that did not support export fields. Now with the recent changes where we removed secondary package.json files, the rather old/somewhat outdated SystemJS examples failed bundling since exports were not considered. PR Close #45405 | 21 April 2022, 18:09:39 UTC |
a50e2da | Paul Gschwendtner | 12 April 2022, 13:28:28 UTC | fix(localize): ensure transitively loaded compiler code is tree-shakable (#45405) The localize primary entry-point (used at runtime in application code) indirectly loads from the compiler package for computing message ids. The compiler package has a couple of constants which cannot be DCE-ded/ tree-shaken due to side-effect reliance that is detected by Terser. We fix these constants to be three-shakable. Note that another issue technically would be that the compiler package has a side-effect call for `publishFacade` (for JIT), but that invocation is marked as pure by the Angular CLI babel optimization pipeline. So this results is no unused code currently but is risky and should be addressed in the future. PR Close #45405 | 21 April 2022, 18:09:39 UTC |
4c56c45 | Paul Gschwendtner | 21 March 2022, 16:43:31 UTC | refactor(localize): init APF entry-point should not duplicate code (#45405) This commit addresses two issues: * The init entry-point currenly access code from another entry-point using relative imports, resulting in code to be duplicated. * The init types are now bundled as part of the ng_package APF rule. There is an API extractor bundling issue with global module augmentations. API extractor does not properly handle module augmentation. We need to disable dts bundling for this entry-point to ensure `$localize` remains globally accessible for users. This is an option in the `ng_package` rule. Note that this worked before because `localize/init` was a `ts_library` that did not have its types bundled. As part of this change, the `MessageId` and `TargetMessage` exports are also made public. The localize exported functions rely on these types but they were not exported. Related to types, an exception is added for three private exports from the primary entry-point so that they will show up in the API golden. These private exports are re-exposed publicly in the init entry-point but no golden would capture them due to the private symbol prefix. One might wonder why the symbols are not guarded in the init golden. The reason is that goldens never inline signatures from cross-entry-points/packages to avoid duplication. Lastly, the i18n integration test golden had to be updated because the polyfills bundle increased slightly. After thorough and time-consuming investigation, this mostly happens due to different mangle identifies being used (the input code changed --> so the mangling determinism) Size before this change: ``` SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 929, actual: 926). SUCCESS: Commit undefined uncompressed main did NOT cross size threshold of 500 bytes or >1% (expected: 124544, actual: 124660). SUCCESS: Commit undefined uncompressed polyfills did NOT cross size threshold of 500 bytes or >1% (expected: 34530, actual: 34641). ``` After: ``` SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 929, actual: 926). SUCCESS: Commit undefined uncompressed main did NOT cross size threshold of 500 bytes or >1% (expected: 124544, actual: 124650). FAIL: Commit undefined uncompressed polyfills exceeded expected size by 500 bytes or >1% (expected: 34530, actual: 35252). ``` Inspecting/comparing without mangling shows that the new changes would actually result in a bundle reduction (potentially visible with gzip/brotli): ``` ➜ Desktop stat -f%z master-nomangle.js 101357 ➜ Desktop stat -f%z with-changes-nomangle.js 101226 ``` PR Close #45405 | 21 April 2022, 18:09:39 UTC |
7a8a929 | Paul Gschwendtner | 21 March 2022, 16:40:42 UTC | refactor: fix duplication in platform-server NPM package (#45405) The platform-server init entry-point imported code from another entry-point using a relative import. This resulted in the code to be bundled into the `init` entry-point as well. This has no breaking impact but resulted in a little code duplication that we should clean up. PR Close #45405 | 21 April 2022, 18:09:39 UTC |
dd0fc0f | Paul Gschwendtner | 14 April 2022, 19:52:33 UTC | test: add test for new `types_bundle` rule from Angular bazel package (#45405) Adds a little golden test for the new `types_bundle` rule that ensures the rule works at a general level. This rule will be useful for non-APF ESM packages like the Angular compiler-cli (for which we also want to bundle types to make them compatible with TypeScripts ESM type resolution) PR Close #45405 | 21 April 2022, 18:09:39 UTC |
68597bb | Paul Gschwendtner | 21 March 2022, 11:24:52 UTC | feat(bazel): speed up dev-turnaround by bundling types only when packaging (#45405) Speeds up the dev-turnaround by only bundling types when packaging. Currently bundling occurs for all the `ng_module` targets in devmode. This has various positive benefits: * Avoidance of this rather slower operation in development * Makes APF-built packages also handle types for `ts_library` targets consistently. * Allows us to ensure APF entry-points have `d.ts` _always_ bundled (working with ESM module resolution in TypeScript -- currently experimental) * Allows us to remove the secondary `package.json` files from APF (maybe APF v14? - seems low-impact). This would clean-up the APF even more and fix resolution issues (like in Vite) PR Close #45405 | 21 April 2022, 18:09:39 UTC |
3dee3d1 | George Kalpakas | 14 April 2022, 14:10:45 UTC | fix(docs-infra): fix placement of "Edit source" button on errors and diagnostics pages (#45634) This commit aligns the layout of errors and extended diagnostics pages more closely with other docs pages to ensure that the "Edit source" button is displayed correctly even when the heading is too long to fit on a single line. For error pages, in particular, this ensures that the button is not obscured by the error video. **Before:** ![error-pages before][1] **After:** ![error-pages after][2] [1]: https://user-images.githubusercontent.com/8604205/163408291-7aebd029-891c-4045-8fa2-a8e2b2b06dab.png [2]: https://user-images.githubusercontent.com/8604205/163408296-40e6df8e-aadc-4a82-978a-ab4d902b6f6e.png PR Close #45634 | 21 April 2022, 18:07:27 UTC |
9292953 | Andrew Kushnir | 21 April 2022, 06:04:23 UTC | fix(docs-infra): include `tslib` into SystemJS config in `upgrade-module` example app (#45706) This commit updates the SystemJS for one of the example apps (the `upgrade-module` one) to include a resolution rule for the `tslib`. This is needed in case `tslib` is referenced from the framework code (for example in case of downleveling of some operators). This makes it consistent with other example app configs. PR Close #45706 | 21 April 2022, 18:05:37 UTC |
9e4c4bc | Pawel Kozlowski | 19 April 2022, 11:45:27 UTC | docs(core): add API documentation to standalone-related classes (#45687) This commit adds some internal documentation. PR Close #45687 | 20 April 2022, 23:01:56 UTC |
e162fa3 | Pawel Kozlowski | 14 April 2022, 17:19:54 UTC | test(core): add more tests for the standalone injector (#45687) This commit reorganizes the tests around the EnvironmentInjector and its use for standalone injectors, and adds a number of new test cases. PR Close #45687 | 20 April 2022, 23:01:56 UTC |
3616d7e | Pawel Kozlowski | 31 March 2022, 14:24:18 UTC | refactor(core): implement standalone injectors (#45687) This commit implements the `StandaloneFeature` which provides for the creation of standalone injectors, for those components which need them. The feature-based implementation ensures the machinery for standalone injectors is properly tree-shakable. PR Close #45687 | 20 April 2022, 23:01:56 UTC |
9f79513 | Alex Rickabaugh | 18 April 2022, 23:44:03 UTC | refactor(core): support standalone components in importProvidersFrom (#45687) This commit refactors `importProvidersFrom` to support pulling providers from the dependencies of a standalone component, in addition to NgModules. Tests will be added in a future commit when standalone components can be created without calling private APIs. PR Close #45687 | 20 April 2022, 23:01:55 UTC |
5a10fc4 | Alex Rickabaugh | 31 March 2022, 18:54:55 UTC | feat(core): implement standalone directives, components, and pipes (#45687) This commit exposes the `standalone` flag on `@Directive`, `@Component`, and `@Pipe`, effectively making standalone components a part of Angular's public API. As part of this operation, it also implements JIT compilation for standalone types. Standalone types are Angular-decorated types which act as their own "declarations", where they would otherwise be declared in an NgModule. Marking an Angular type as standalone means that it can be used directly in other standalone components and in NgModules, without needing an associated NgModule to depend on it. In the case of a standalone component, template dependencies which would otherwise be specified by an NgModule are instead specified directly on the component itself, via the `imports` field. Other standalone types can be imported, as well as NgModules. PR Close #45687 | 20 April 2022, 23:01:55 UTC |
bb6e11c | Alex Rickabaugh | 19 April 2022, 15:06:09 UTC | refactor(compiler-cli): reorganize importProvidersFrom to avoid cycles (#45687) This commit extracts the `importProvidersFrom` function and associated machinery into a separate file, as opposed to being colocated with `R3Injector`. Separating these functions will mitigate potential future circular dependencies as `importProvidersFrom` starts being used in different parts of the codebase. PR Close #45687 | 20 April 2022, 23:01:55 UTC |
dea8c86 | dario-piotrowicz | 22 February 2022, 22:38:47 UTC | feat(router): add ariaCurrentWhenActive input to RouterLinkActive directive (#45167) add the ariaCurrentWhenActive input to the RouterLinkActive directive so that users can easily set the aria-current property to their active router links resolves #35051 PR Close #45167 | 20 April 2022, 22:14:01 UTC |
d8226de | Dylan Hunn | 20 April 2022, 21:46:22 UTC | release: cut the v14.0.0-next.14 release (#45704) PR Close #45704 | 20 April 2022, 21:47:03 UTC |
f14763e | Dylan Hunn | 20 April 2022, 21:38:11 UTC | docs: release notes for the v13.3.4 release (#45703) PR Close #45703 | 20 April 2022, 21:41:58 UTC |
1d2f5c1 | Andrew Scott | 18 April 2022, 21:57:19 UTC | refactor(router): deprecate no longer needed resolver fields (#45597) DEPRECATED: The `resolver` argument of the `RouterOutletContract.activateWith` function and the `resolver` field of the `OutletContext` class are deprecated. Passing component factory resolvers are no longer needed. The `ComponentFactoryResolver`-related symbols were deprecated in `@angular/core` package since v13. PR Close #45597 | 20 April 2022, 19:57:37 UTC |
f4fd1a8 | Andrew Scott | 18 April 2022, 21:56:26 UTC | feat(router): Add `EnvironmentInjector` to `RouterOutlet.activateWith` (#45597) The current API for `activateWith` uses the deprecated `ComponentFactoryResolver`. The replacement for this is to use `EnvironmentInjector`. That is, instead of ``` const factory = componentFactoryResolver.resolveComponentFactory(component); location.createComponent(factory, location.length, injector); ``` the replacement would be ``` location.createComponent( component, {index: location.length, injector, environmentInjector}); ``` PR Close #45597 | 20 April 2022, 19:57:37 UTC |
4e0957a | Andrew Scott | 12 April 2022, 00:36:41 UTC | feat(router): Add ability to specify providers on a Route (#45673) Currently, the only way to specify new providers for a `Route` and the children is to create a new `NgModule` with those providers and use the `loadChildren` feature. This is pretty confusing and a wholly indirect way of accomplishing this task. With this commit, developers will be able to specify a list of providers directly on the `Route` itself. These providers will apply the that route and its children. This feature was inspired by the upcoming standalone components feature. This ties in there because, as mentioned before, the prior art for lazy loading configs was to load an `NgModule`. This loaded module contained new route configs _and_ could specify new providers. Separating those two concepts, there should be a way to load _just_ some new routes, but there should also be a way to specify new providers as well (something you could do in the `NgModule` world and now will be able to do in the world without any `NgModule` through this feature). PR Close #45673 | 20 April 2022, 18:32:07 UTC |
ba45428 | Andrew Kushnir | 20 April 2022, 17:08:00 UTC | ci: update payload size golden file (#45699) This commit updates the payload size for the Forms-related test app. The CI started to fail after merging https://github.com/angular/angular/commit/ff3f5a8d12e3243620e311b690a050e26493e539. The payload size increase is most likely accumulated. PR Close #45699 | 20 April 2022, 17:29:38 UTC |
ff3f5a8 | Dylan Hunn | 19 April 2022, 20:17:07 UTC | fix(forms): Fix a typing bug in FormBuilder. (#45684) Previously, the following code would fail to compile: ``` let form: FormGroup<{email: FormControl<string | null>}>; form = fb.group({ email: ['', Validators.required] }); ``` This is because the compiler was unable to properly infer the inner type of `ControlConfig` arrays in some cases. The same issue applies to `FormArray` as well under certain circumstances. This change cleans up the `FormBuilder` type signatures to always use the explicit Element type, and to catch `ControlConfig` types that might fall through. PR Close #45684 | 20 April 2022, 16:15:46 UTC |
788f587 | Andrew Kushnir | 20 April 2022, 04:51:14 UTC | fix(docs-infra): avoid internal symbols from being referenced during auto-linking (#45689) This commit adds extra logic to avoid internal and privately exported symbols from being referenced during auto-linking. Currently such symbols can be used for linking, thus resulting in a non-existing link and causing the linking process to fail. PR Close #45689 | 20 April 2022, 16:11:22 UTC |
47e5b05 | Adrian Kunz | 16 February 2022, 20:52:32 UTC | test(http): Add + to encoding test (#45111) Changes the existing test for query parameter encoding to include the + symbol and its expected encoding to %2B. PR Close #45111 | 20 April 2022, 16:00:19 UTC |
76a9a24 | Adrian Kunz | 16 February 2022, 19:47:57 UTC | fix(http): encode + signs in query params as %2B (angular#11058) (#45111) Servers always decode + as a space, which is undesirable when one actually wants to query for a plus. BREAKING CHANGE: Queries including + will now actually query for + instead of space. Most workarounds involving custom codecs will be unaffected. Possible server-side workarounds will need to be undone. Fixes angular#11058 PR Close #45111 | 20 April 2022, 16:00:19 UTC |
b8d3389 | Alex Rickabaugh | 18 April 2022, 15:59:00 UTC | test(compiler-cli): tests for standalone components/directives/pipes (#45672) This commit bundles tests for standalone components that are possible after previous implementation commits. Most new tests are compliance tests, but a test is also included to validate that the template type-checking system can work with standalone components as well. PR Close #45672 | 20 April 2022, 12:45:57 UTC |
d3c0fa3 | Alex Rickabaugh | 19 April 2022, 20:15:39 UTC | refactor(compiler-cli): propagate standalone flag in .d.ts metadata (#45672) This commit adds a type field to .d.ts metadata for directives, components, and pipes which carries a boolean literal indicating whether the given type is standalone or not. For backwards compatibility, this flag defaults to `false`. Tests are added to validate that standalone types coming from .d.ts files can be correctly imported into new standalone components. PR Close #45672 | 20 April 2022, 12:45:57 UTC |
80d2cda | Alex Rickabaugh | 20 April 2022, 00:00:22 UTC | test: set skipLibCheck on ngcc integration test (#45672) The ngcc integration test is in an awkward state: it's attempting to test that the current ngcc can process @angular/core at v12. We need to make a forwards-incompatible change to the typings of @angular/core, which means that the compiled typings from the current ngcc won't be compatible with core as of v12. To get around this and allow the integration test to have some value, we're disabling library checking for the time being. PR Close #45672 | 20 April 2022, 12:45:57 UTC |
99b3af4 | Alex Rickabaugh | 18 April 2022, 16:58:23 UTC | refactor(compiler-cli): emit isStandalone flag in partial declarations (#45672) This commit propagates the `isStandalone` flag for a component, directive, or pipe during partial compilation of a standalone declaration. This flag allows the linker to properly process a standalone declaration that it encounters. PR Close #45672 | 20 April 2022, 12:45:57 UTC |
1244a14 | Alex Rickabaugh | 15 April 2022, 18:24:51 UTC | refactor(compiler-cli): move standalone scope computation out of handler (#45672) Standalone component scopes were first implemented in the `ComponentDecoratorHandler` itself, due to an assumption that "standalone" allowed for a localized analysis of the component's dependencies. However, this is not strictly true. Other compiler machinery also needs to understand component scopes, including standalone component scopes. A good example is the template type-checking engine, which uses a `ComponentScopeReader` to build full metadata objects (that is, metadata that considers the entire inheritance chain) for type-checking purposes. Therefore, the `ComponentScopeReader` should be able to give the scope for a standalone component. To achieve this, a new `StandaloneComponentScopeReader` is implemented, and the return type of `ComponentScopeReader.getScopeForComponent` is expanded to express standalone scopes. This cleanly integrates the "standalone" concept into the existing machinery. PR Close #45672 | 20 April 2022, 12:45:56 UTC |
d8086a1 | Alex Rickabaugh | 30 March 2022, 22:24:55 UTC | refactor(compiler-cli): emit StandaloneFeature for standalone components (#45672) This commit adds an emit for standalone components of the `StandaloneFeature`, which will support creation of standalone injectors and any other mechanisms necessary for standalone component functionality at runtime. Using a feature allows for standalone functionality to be tree-shaken in applications that aren't using them. PR Close #45672 | 20 April 2022, 12:45:56 UTC |
f9f8ef9 | Alex Rickabaugh | 30 March 2022, 22:16:56 UTC | refactor(compiler-cli): emit NgModule dependencies of standalone components (#45672) This commit expands on the unified dependency tracking in the previous commit and adds tracking of NgModule dependencies. These are not used for standard components, but are emitted for standalone components to allow the runtime to roll up providers from those NgModules into standalone injectors. PR Close #45672 | 20 April 2022, 12:45:56 UTC |
9b35787 | Alex Rickabaugh | 29 March 2022, 23:26:40 UTC | refactor(compiler-cli): unify tracked template scope dependencies (#45672) Previously, the compiler tracked directives and pipes in template scopes separately. This commit refactors the scope system to unify them into a single data structure, disambiguated by a `kind` field. PR Close #45672 | 20 April 2022, 12:45:56 UTC |
1527e8f | Alex Rickabaugh | 28 March 2022, 23:50:26 UTC | refactor(core): change component emit to 'dependencies' (#45672) Previously, the compiler would represent template dependencies of a component in its component definition through separate fields (`directives`, `pipes`). This commit refactors the compiler/runtime interface to use a single field (`dependencies`). The runtime component definition object still has separate `directiveDefs` and `pipeDefs`, which are calculated from the `dependencies` when the definition is evaluated. This change is also reflected in partially compiled declarations. To ensure compatibility with partially compiled code already on NPM, the linker will still honor the old form of declaration (with separate fields). PR Close #45672 | 20 April 2022, 12:45:56 UTC |
046dad1 | Alex Rickabaugh | 30 March 2022, 00:58:24 UTC | fix(compiler-cli): fix issue with incremental tracking of APIs for pipes (#45672) `PipeSymbol` contains logic to detect changes in the public API surface of pipes, which includes the pipe name. However, the pipe handler inadvertently uses the pipe class name instead of the actual pipe name to initialize the `PipeSymbol`, which breaks incremental compilation when pipe names change. There is a test which attempts to verify that this logic is working, but the test actually passes for a different reason. The test swaps the names of 2 pipes that are both used in a component, and asserts that the component is re-emitted, theoretically because the public APIs of the pipes is changed. However, the emit order of the references to the pipes depends on the order in which they match in the template, which changes when the names are swapped. This ordering dependency is picked up by the semantic dependency tracking system, and is what actually causes the component to be re-emitted and therefore the pipe test to pass in spite of the bug with name tracking. This commit fixes the `PipeSymbol` initialization to use the correct pipe name. The test is still flawed in that it's sensitive to the ordering of pipe emits, but this ordering is due to change soon as a result of the standalone components work, so this issue will be resolved in a future commit. PR Close #45672 | 20 April 2022, 12:45:56 UTC |
989e840 | Andrew Scott | 14 April 2022, 00:35:19 UTC | fix(router): Remove unused string type for ActivatedRoute.component (#45625) BREAKING CHANGE: The type of `component` on `ActivatedRoute` and `ActivatedRouteSnapshot` includes `string`. In reality, this is not the case. The component cannot be anything other than a component class. PR Close #45625 | 20 April 2022, 03:21:35 UTC |
4ad7c2e | Mangalraj | 15 April 2022, 23:06:51 UTC | docs: Update aio/content/guide/setup-local.md (#45644) Co-authored-by: George Kalpakas <kalpakas.g@gmail.com> PR Close #45644 | 20 April 2022, 03:20:39 UTC |
89f9d28 | Mangalraj | 14 April 2022, 23:52:52 UTC | docs: correct the example command to install angular (#45644) PR Close #45644 | 20 April 2022, 03:20:39 UTC |
0231a36 | Paul Gschwendtner | 19 April 2022, 15:48:25 UTC | build: preparation for primary branch rename in the Angular repos (#45681) Preparation for the framework repo as outlined our planning document. PR Close #45681 | 20 April 2022, 03:19:46 UTC |
6c4d9eb | Andrew Scott | 19 April 2022, 20:15:06 UTC | test(common): Fix flaky Location test (#45683) This test has proven to be flaky. This commit greatly simplifies the test and moves it to a more appropriate location (pun intended). PR Close #45683 | 20 April 2022, 03:17:56 UTC |
5d15595 | Saurabh Kamble | 19 April 2022, 15:16:53 UTC | Fix typo (#45680) PR Close #45680 | 19 April 2022, 16:26:12 UTC |
ceffded | George Kalpakas | 17 April 2022, 09:12:20 UTC | docs(common): fix links to locales in i18n guides (#45661) In PR #42230, the locale file generation process was modified so that generated locale files are no longer checked into the repository. Update a few links in the docs that pointed to the previously checked in files to point to other places where the files exist. PR Close #45661 | 19 April 2022, 16:17:33 UTC |
c6feb0a | Jeremy Elbourn | 18 April 2022, 16:29:19 UTC | build: don't assign jelbourn to most review categories (#45668) Configure pullapprove to not automatically assign jelbourn to most review categories. PR Close #45668 | 19 April 2022, 16:15:39 UTC |
f5299a3 | Louis Gombert | 18 April 2022, 14:59:00 UTC | docs: update decorators proposal stage and link in glossary (#45669) PR Close #45669 | 19 April 2022, 16:14:36 UTC |
63202b9 | Andrew Kushnir | 18 April 2022, 17:39:41 UTC | test: reset counters before running a styling test (#45670) This commit updates one of the styling tests to reset perf counters, making it order-independent and non-flaky (previously the test got random failures depending on whether there are other tests invoked before). PR Close #45670 | 19 April 2022, 16:14:09 UTC |
ea8256f | Andrew Scott | 15 April 2022, 23:54:17 UTC | refactor(router): Move config loader tracking to the RouterConfigLoader (#45656) This wasn't exactly possible before because the `RouterConfigLoader` was not an Injectable so there wasn't a straightforward way to share information between `ApplyRedirects` and the preloader. They each had their own implementation so they needed to store the values on the `Route` so they both had access to them. I imagine this was the case because trying to inject `Router` (to get access to the events) into the preloader would have caused a circular dependency. This refactor co-locates the loading details with the loader itself rather than leaking implementation into the public route config and mutating the object in an awkward way. This also promotes `RouterConfigLoader` to a proper `Injectable` so data can be shared throughout the system. PR Close #45656 | 18 April 2022, 23:05:45 UTC |
ec5cb0b | Marko Kaznovac | 18 April 2022, 09:38:36 UTC | docs: use language agnostic mdn urls (#45666) PR Close #45666 | 18 April 2022, 21:10:16 UTC |
3477364 | Marko Kaznovac | 18 April 2022, 09:34:46 UTC | docs: fix mdn links (#45666) PR Close #45666 | 18 April 2022, 21:10:16 UTC |
174ce7d | Andrew Kushnir | 05 April 2022, 04:28:01 UTC | feat(core): add `ApplicationRef.destroy` method (#45624) This commit implements the `destroy` method on the `ApplicationRef` class. This feature is a preparation for the new logic to bootstrap (and teardown) standalone components (without going through the `NgModuleRef` destroy), which would return an instance of the `ApplicationRef` (the current bootstrap APIs return an instance of the `NgModuleRef`). PR Close #45624 | 18 April 2022, 21:09:47 UTC |
aa966fd | Andrew Scott | 18 April 2022, 17:44:42 UTC | refactor(router): Use `EnvironmentInjector` for lazy loading APIs (#45671) The `EnvironmentInjector` should be used instead of `Injector` for the lazy loading. A future refactor will further update `RouterOutlet` to use this injector to create the component rather the deprecated `ComponentFactoryResolver`. PR Close #45671 | 18 April 2022, 21:08:43 UTC |
eb7661c | Andrew Scott | 11 April 2022, 23:09:26 UTC | refactor(router): unbundle the lazy loaded routes from the lazy loaded module injector (#45593) In the standalone world, these concepts will no longer be one and the same. You can load routes without them being inside an `NgModule` with `RouterModule.forChild`. In addition, routes will be able to define their own providers, which will be included in an injector that is not necessarily lazy loaded. PR Close #45593 | 18 April 2022, 16:52:56 UTC |
d9f550c | Andrew Scott | 11 April 2022, 22:22:30 UTC | refactor(router): Refactor loaded config to track injectors rather than `NgModuleRef` (#45593) The `Injector` is really the piece of information that the `Router` is interested in keeping track of. Storing the `NgModuleRef` is somewhat confusing based on how it's used later on. `RouterOutlet` uses it for the `componentFactoryResolver`, but this is not needed anymore (and deprecated). In fact, we can get back to the `NgModuleRef` anyways using the injector. For now, that's what this change does. A different refactor will remove the use of the `componentFactoryResolver` altogether. Additionally, in the standalone world, we plan to implement a feature to allow defining `providers` directly on the `Route`. This means there won't be an associated `NgModuleRef` so this refactor prepares for that feature. PR Close #45593 | 18 April 2022, 16:52:56 UTC |
3578e94 | Alex Rickabaugh | 13 April 2022, 00:04:55 UTC | refactor(core): internally support `providedIn: environment` (#45626) This commit adds a new internal scope to `R3Injector` for `EnvironmentInjector`s specifically. This will allow us to scope services to the environment side of the injector hierarchy specifically, as opposed to the `'any'` scope which also includes view-side injectors created via `Injector.create`. For now, this functionality is not exposed publicly, but is available to use within `@angular/core` only. PR Close #45626 | 18 April 2022, 16:28:43 UTC |
d5a6cd1 | Alex Rickabaugh | 12 April 2022, 22:15:04 UTC | feat(core): implement EnvironmentInjector with adapter to NgModuleRef (#45626) This commit exposes a new `EnvironmentInjector` abstraction, which generalizes the "module injector" concept to injectors that are not based on NgModules. An EnvironmentInjector is a conceptual analogue of an `NgModuleRef` - it represents an injector on the former "module" DI hierarchy in Angular (now renamed to the "environment injector hierarchy"). Environment injectors are created via the `createEnvironmentInjector` function from a list of `Provider`s. For backwards compatibility with current code using `NgModuleRef`, `EnvironmentInjector`s are wrapped by an adapter `NgModuleRef` implementation, so injecting `NgModuleRef` always returns the latest `EnvironmentInjector`, even if that injector was not based on an NgModule. Conversely, NgModule-based `NgModuleRef`s created via `createNgModuleRef` are _also_ `EnvironmentInjector`s. PR Close #45626 | 18 April 2022, 16:28:42 UTC |
b568a5e | Andrew Kushnir | 01 April 2022, 05:48:25 UTC | feat(core): implement `importProvidersFrom` function (#45626) This commit implements the `importProvidersFrom` function that allows extracting a list of `Provider`s from a list of NgModule types. The R3Injector which implements DI at the "module" level for Angular is refactored to use this functionality under the hood. This commit also implements `INJECTOR_INITIALIZER`, a DI multi-provider token which is used to run initialization logic when an injector is created. PR Close #45626 | 18 April 2022, 16:28:42 UTC |
a5a7fbc | Alex Rickabaugh | 14 April 2022, 18:51:06 UTC | test(core): fix a crosstalk issue with locale ids (#45626) Previously there was a test ordering issue with the application_module_spec tests where the value of `getLocaleId()` depended on the order in which tests ran. Specifically, `setLocaleId()` lower-cases the current locale ID, so the measured value in a test depended on whether a previous test had called `setLocaleId()` (the difference between 'en-US' and 'en-us'). PR Close #45626 | 18 April 2022, 16:28:42 UTC |
1fe255c | Doug Parker | 11 April 2022, 23:28:35 UTC | refactor(compiler): add `original_code` to `goog.getMsg()` options (#45606) This links back each placeholder in a message to the original Angular template span which defines its expression. This is useful for understanding where each placeholder comes from in the context of the full message. PR Close #45606 | 18 April 2022, 16:26:16 UTC |
8c83f12 | Andrew Kushnir | 15 April 2022, 20:03:10 UTC | ci: add more reviewers to the `docs-packaging-and-releasing` group (#45652) Currently that group has just 2 reviewers, but we often update the files that belong to that group during the deprecation period. Adding more people would allow to balance the reviews better. PR Close #45652 | 18 April 2022, 16:24:57 UTC |
57f8ab2 | Kristiyan Kostadinov | 16 April 2022, 05:13:37 UTC | fix(core): better error message when directive extends a component (#45658) We throw an error when a directive is trying to extend a component, but we don't actually say which class is responsible which can be difficult to track down. These changes add the two class names to the error message. PR Close #45658 | 18 April 2022, 16:24:23 UTC |
b29b95b | Kristiyan Kostadinov | 18 April 2022, 07:35:56 UTC | fix(devtools): clean up menu layout (#45665) The menus weren't using the `mat-menu` component correctly which had led to some inconsistent spacing and the need for style overrides. These changes correctly wrap the menu content in `mat-menu-item` which has the added benefit of having keyboard support. I had to keep some of the overrides in order to preserve the dense layout of the menus. I've also cleaned up the component by: * Removing some unnecessary styles. * Switching single-class usages of `ngClass` to `class.` bindings. * Not using `br` tags for spacing. PR Close #45665 | 18 April 2022, 16:23:13 UTC |
6835710 | Renovate Bot | 15 April 2022, 21:02:04 UTC | build: lock file maintenance (#45457) PR Close #45457 | 15 April 2022, 21:38:16 UTC |
0b64072 | dario-piotrowicz | 12 April 2022, 20:08:51 UTC | fix(docs-infra): fix aio search-results issue with toolbar and notification (#45579) use border-top-width instead of padding-top as the strategy for moving the search-results panel down, this fixes the issue of the panel going behind the toolbar (which causes either overlapping text in the home page or the results scrollbar to be hidden behind the toolbar in other pages) PR Close #45579 | 15 April 2022, 21:22:14 UTC |
9e69579 | dario-piotrowicz | 11 April 2022, 19:02:08 UTC | fix(docs-infra): amend notification close button aria-label (#45579) move the aria-label used inside the close-button to the button itself (since otherwise the button's aria-label overrides the childs) PR Close #45579 | 15 April 2022, 21:22:14 UTC |
d2436bf | dario-piotrowicz | 09 April 2022, 19:33:44 UTC | feat(docs-infra): add close button to search-results aio panel (#45579) add a close button to the search-results aio panel so that the user can conveniently close it via keyboard this complements the focus trap implemented in PR #44989 (more here: https://github.com/angular/angular/pull/44989#issuecomment-1037287678) PR Close #45579 | 15 April 2022, 21:22:13 UTC |
f57e46c | ivanwonder | 10 April 2022, 14:46:16 UTC | fix(language-service): two-way binding completion should not remove the trailing quote (#45582) We allow the path to contain both the `t.BoundAttribute` and `t.BoundEvent` for two-way bindings but do not want the path to contain both the `t.BoundAttribute` with its children when the position is in the value span because we would then logically create a path that also contains the `PropertyWrite` from the `t.BoundEvent`. This early return condition ensures we target just `t.BoundAttribute` for this case and exclude `t.BoundEvent` children. Fixes https://github.com/angular/vscode-ng-language-service/issues/1626 PR Close #45582 | 15 April 2022, 20:53:48 UTC |
c6e0e3f | Andrew Kushnir | 15 April 2022, 02:10:43 UTC | fix(core): improve multiple components match error (#45645) This commit improves the error message that is thrown at runtime when multiple components match the same element. Now the error message contains names of classes that represent those components. PR Close #45645 | 15 April 2022, 20:52:19 UTC |
2e97312 | Andrew Kushnir | 15 April 2022, 18:20:52 UTC | test(core): add a test for multiple named interpolations with the same name (#45651) The test from this commit verifies that i18n logic can handle multiple named interpolations with the same name. PR Close #45651 | 15 April 2022, 20:51:55 UTC |
96fd29c | Andrew Scott | 04 April 2022, 23:33:25 UTC | fix(router): validate lazy loaded configs (#45526) Lazy loaded configs are not validated at runtime like the initial set of routes are. This change also validates lazy loaded configs right after they're loaded. BREAKING CHANGE: Lazy loaded configs are now also validated once loaded like the initial set of routes are. Lazy loaded modules which have invalid Route configs will now error. Note that this is only done in dev mode so there is no production impact of this change. Fixes #25431 PR Close #45526 | 15 April 2022, 19:30:44 UTC |
f13295f | Dmitrij Kuba | 13 April 2022, 19:59:26 UTC | perf(router): cancel the navigation instantly if at least one resolver doesn't emit any value (#45621) Recently the navigation was on hold even at least one resolver didn't emit any value and completed, but another ones still are in progress to resolve any value. The changes cancel the navigation instantly if at least one resolver doesn't emit any value and completed. PR Close #45621 | 15 April 2022, 17:06:26 UTC |
770ea92 | Renovate Bot | 15 April 2022, 03:34:14 UTC | build: update dependency @microsoft/api-extractor to v7.22.2 (#45641) PR Close #45641 | 15 April 2022, 16:27:39 UTC |
b5b0a50 | Ilya Marchik | 14 April 2022, 16:46:41 UTC | docs: fix typo (#45637) Replace wrong mention of 'heroService.delete()' with 'heroService.deleteHero()' because 'heroService.delete()' doesn't exist and 'heroService.deleteHero()' should be mentioned instead Resolves #45636 PR Close #45637 | 14 April 2022, 23:30:03 UTC |
7d2a619 | Renovate Bot | 14 April 2022, 19:37:46 UTC | build: update all non-major dependencies (#45632) PR Close #45632 | 14 April 2022, 22:02:45 UTC |
6444a02 | Andrew Kushnir | 14 April 2022, 19:24:17 UTC | docs: move old changelog entries to a separate file (#45638) This commit moves all release notes for everything before v11.0.0 to a separate file, so that the changelog can be rendered correctly via GitHub UI. Closes #45635. PR Close #45638 | 14 April 2022, 22:01:21 UTC |
2f08b80 | George Kalpakas | 14 April 2022, 08:58:24 UTC | build(docs-infra): upgrade cli command docs sources to 5bd17a256 (#45630) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/0e8f3c34b...5bd17a256): **Added** - help/completion.json PR Close #45630 | 14 April 2022, 22:00:40 UTC |
94fba9b | George Kalpakas | 14 April 2022, 08:20:29 UTC | docs(core): fix typo in View Encapsulation code example (#45629) Fix closing tag name to match opening one (`</hero-detail>` --> `<hero-details>`). PR Close #45629 | 14 April 2022, 22:00:04 UTC |
e0a2248 | Dylan Hunn | 12 April 2022, 17:44:45 UTC | feat(forms): Add a FormRecord type. (#45607) As part of the typed forms RFC, we proposed the creation of a new FormRecord type, to support dynamic groups with homogenous values. This PR introduces FormRecord, as a subclass of FormGroup. PR Close #45607 | 14 April 2022, 21:59:10 UTC |
f8a1ea0 | Paul Gschwendtner | 13 April 2022, 20:11:04 UTC | fix(bazel): do not error if files part of `srcs` are outside of package (#45622) We recently refactored how the ng package rule deals with static files. As part of this refactoring, transitive files outside of the current Bazel package were flagged as errors, while previously this was just ignored. We need to revert back this behavior (even though code remains much simpler and predicable now) since sass library targets for example reference all transtive files in the default info and break packages then PR Close #45622 | 14 April 2022, 21:58:27 UTC |
000363e | Andrew Scott | 13 April 2022, 17:07:11 UTC | refactor(router): combine functions for getting loaded config (#45613) There are two functions which do the same thing and are meant to search for the closest loaded config in the `ActivatedRouteSnapshot` parent tree. These can be combined to reduce code duplication. One difference in the current implementation is the early exit for the implementation in `activate_routes` when `route.component` is defined. This early exit takes advantage of the fact that the component must then also have a `RouterOutlet`, which injects `ComponentFactoryResolver`, which would end up being the same one as what would be found if we continued to look up the parent tree. This is only a tiny optimization that will actually break when we add `providers` as a feature to the `Route` config. In this scenario, we _must_ find the correct injector in the parent routes and cannot rely on a parent `RouterOutlet` since there may be some route with a providers list in between. PR Close #45613 | 14 April 2022, 00:29:42 UTC |
e250db4 | Andrew Kushnir | 04 April 2022, 05:40:57 UTC | refactor(core): avoid referencing `PlatformRef` in bootstrap code (#45519) This commit updates an existing bootstrap logic to avoid referencing the `PlatformRef` instance to keep track of the platform status. Instead, we use platform injector, so that the `PlatformRef`can be tree-shaken away in the bootstrap logic for Standalone Components. The motivation for this change is that retaining the `PlatformRef` class also retains NgModule-based bootstrap code, which would not be needed in case of Standalone Components. PR Close #45519 | 13 April 2022, 22:34:46 UTC |
fbbed3d | Jessica Janiuk | 13 April 2022, 18:40:40 UTC | release: cut the v14.0.0-next.13 release (#45616) | 13 April 2022, 18:40:40 UTC |
0f8e181 | Jessica Janiuk | 13 April 2022, 18:37:13 UTC | docs: release notes for the v13.3.3 release (#45615) | 13 April 2022, 18:37:13 UTC |
47e7a28 | Andrew Scott | 08 March 2022, 18:42:39 UTC | refactor(router): Add warning for `relativeLinkResolution: 'legacy'` (#45523) This change adds code to compute the corrected value for a link, regardless of the `relativeLinkResolution` value. Then, if the `relativeLinkResolution` is set to `legacy` and differs from the correct value, a warning is printed to the console in dev mode. This change is meant to assist in notifying developers that they have code which relies on the deprecated, broken behavior so they can fix and update the code before the `relativeLinkResolution` option is fully removed. PR Close #45523 | 13 April 2022, 17:19:08 UTC |
598b759 | Kristiyan Kostadinov | 09 April 2022, 14:26:47 UTC | fix(compiler): avoid errors with extremely long instruction chains (#45574) Our logic for generating code from an AST uses recursion which limits the number of expressions we can nest before we reach the call stack limit. These changes add a limit in order to avoid errors in some cases where the chains become extremely long. Fixes #45564. PR Close #45574 | 13 April 2022, 16:18:55 UTC |
7bf1cf4 | Renovate Bot | 13 April 2022, 02:09:33 UTC | build: update all non-major dependencies (#45493) PR Close #45493 | 13 April 2022, 15:33:33 UTC |
a6ab3f7 | 4javier | 12 April 2022, 23:23:33 UTC | docs: fix grammar (#45455) PR Close #45455 | 12 April 2022, 23:55:32 UTC |
9e86a31 | 4javier | 12 April 2022, 11:24:53 UTC | docs: fix to comply with new codeblock guidelines (#45455) PR Close #45455 | 12 April 2022, 23:55:32 UTC |
062fa76 | 4javier | 11 April 2022, 19:32:40 UTC | docs: modified as per dylhunn suggestions (#45455) https://github.com/angular/angular/pull/45455#pullrequestreview-925369970 PR Close #45455 | 12 April 2022, 23:55:32 UTC |
b9e7983 | 4javier | 26 March 2022, 22:51:34 UTC | docs: update template reference variables (#45455) - Specify `NgForm` gets applied by default on `<form>` elements before the long example using it - Move the strange (and questioned in a commented line) snippet about undefined ref vars in a standalone paragraph and clarify its meanings (adding the part about directive just because there was something similar already there) - Extend and modify `*ngFor` example, since in the original that was misleading to think reference variable couldn't be used inside a loop - Remove two lines stating that with `*ngIf` and `*ngFor` the framework cannot know if a template is ever instantiated (can't see how this relate with the page) - Add an explanation of assignment of default `$implicit` value to undefined input variables - Modify template example for template input variable to be a complete ngForOf loop instead of the original poor intelligible truncated one - Replace last generic statements about variable namespaces with a more pragmatic and explanatory one concerning the resolution in case of homonymy PR Close #45455 | 12 April 2022, 23:55:32 UTC |
9add714 | Andrew Kushnir | 31 March 2022, 02:13:39 UTC | refactor(core): remove deprecated `aotSummaries` fields in TestBed config (#45487) BREAKING CHANGE: Since Ivy, TestBed doesn't use AOT summaries. The `aotSummaries` fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The `aotSummaries` fields were completely unused, so you can just drop them from the TestBed APIs usage. PR Close #45487 | 12 April 2022, 23:29:38 UTC |
89ed8d8 | Andrew Kushnir | 02 April 2022, 01:50:13 UTC | refactor(core): make ComponentFactoryResolver lazily instantiated in ApplicationRef (#45507) This commit removes the `ComponentFactoryResolver` as a constructor argument of the `ApplicationRef` class. This makes it lazily instantiated + simplifies further refactoring in a context of Standalone Components. PR Close #45507 | 12 April 2022, 22:29:17 UTC |
f38c344 | Andrew Kushnir | 02 April 2022, 01:36:12 UTC | refactor(core): make platform core providers tree-shakable (#45506) This commit refactors the set of hardcoded platform core providers into tree-shakable providers. In addition to making them tree-shakable, this would also avoid the need to rely on the platform creation logic in an upcoming bootstrap logic for Standalone Components. PR Close #45506 | 12 April 2022, 22:28:23 UTC |
3c1695e | Jason Hendee | 12 April 2022, 18:48:39 UTC | docs: make tutorial instructions consistent (#45372) When starting this tutorial, it's not clear to the user whether they should add routing right away, Etc. The other tutorials within the routing section do a better job of this. Also.. the suggested name of this sample app clashes with that of a previous tutorial, forcing the user to either delete the previous tutorial files, choose a different name for this tutorial's app, or place this app in a different parent directory. Conflicts: aio/content/guide/router-tutorial-toh.md PR Close #45372 | 12 April 2022, 22:27:37 UTC |
8d7351d | Dylan Hunn | 12 April 2022, 21:43:02 UTC | build: only allow renovate to run on Monday nights (#45605) By running renovate once a week, we can consolidate all the updates into a single weekly PR, before each Wednesday release. That will significantly reduce the burden on caretakers, and make patch ports less onerous. PR Close #45605 | 12 April 2022, 22:26:48 UTC |
663d477 | Michal Materowski | 12 April 2022, 18:05:10 UTC | refactor(core): remove duplicated code in change_detection_util (#45599) Removes duplicated code in change_detection_util and reorganizes imports to use utils module. PR Close #45599 | 12 April 2022, 22:26:09 UTC |
820077d | Renovate Bot | 12 April 2022, 05:31:40 UTC | build: update dependency glob to v8 (#45598) PR Close #45598 | 12 April 2022, 22:02:26 UTC |