Compare commits
83 Commits
6.0.0-beta
...
rollup
Author | SHA1 | Date | |
---|---|---|---|
5269ce287e | |||
3e03dbe576 | |||
33b338120c | |||
811679a583 | |||
2c33d17609 | |||
9c99e6a838 | |||
98174758ad | |||
97b928053d | |||
1fe55e252c | |||
53ed4b4648 | |||
d08785d2e1 | |||
c24533eb51 | |||
4b1aadee94 | |||
e4b11b2de6 | |||
92ddd46bcc | |||
bf5f50d9ee | |||
753622414a | |||
c6ecb638a0 | |||
5f681f9745 | |||
c7c5214029 | |||
12f801e3dc | |||
925e654a29 | |||
d0e086a5fe | |||
15c2a93f14 | |||
8522546a8a | |||
1a75934cc0 | |||
1e9cd95f5c | |||
acf381bcb7 | |||
cb5090cdc8 | |||
4b70bcd200 | |||
8baff1858b | |||
f11b2fb00b | |||
01cef016ee | |||
43d1b9864f | |||
f9a6a94be4 | |||
dd8679037e | |||
e82812b9a9 | |||
c65634215b | |||
0ad02de47e | |||
6472661ae8 | |||
c5586b7dfa | |||
95fbb7d675 | |||
a64af40c0b | |||
2015ccd1f5 | |||
7d49443060 | |||
86d9612230 | |||
8c51c276c7 | |||
6c51665c82 | |||
d39d1ce412 | |||
88045a5050 | |||
0b38a039d0 | |||
a0dc0a2f46 | |||
6397062e22 | |||
e18f1de003 | |||
21e37e47c6 | |||
8e8924ac7c | |||
b2e902deb4 | |||
97b18b2a5c | |||
135a2822ea | |||
1104d17252 | |||
a1492a73ce | |||
c8a1a14b87 | |||
64d16dee02 | |||
ce8b5877e2 | |||
44a4b1680f | |||
4596b9d0df | |||
81e87095b4 | |||
bf248792eb | |||
1ce46b56f8 | |||
d07760f5e3 | |||
2b4f3004ac | |||
7f93aad836 | |||
879756d44c | |||
2cf9d6d75b | |||
af2a843446 | |||
02377335ec | |||
e79e98ab44 | |||
52cfe3952a | |||
f74130c9f7 | |||
d3d9aac4e9 | |||
1ccc3242f1 | |||
47b7898697 | |||
0eabd07f3a |
@ -62,7 +62,7 @@ jobs:
|
||||
# Use bazel query so that we explicitly ask for all buildable targets to be built as well
|
||||
# This avoids waiting for a build command to finish before running the first test
|
||||
# See https://github.com/bazelbuild/bazel/issues/4257
|
||||
- run: bazel query --output=label '//modules/... union //packages/... union //tools/... union @angular//...' | xargs bazel test --config=ci
|
||||
- run: bazel query --output=label '//modules/... union //packages/... union //tools/...' | xargs bazel test --config=ci
|
||||
|
||||
- save_cache:
|
||||
key: *cache_key
|
||||
|
32
.github/angular-robot.yml
vendored
32
.github/angular-robot.yml
vendored
@ -14,8 +14,8 @@ merge:
|
||||
failureText: "The following checks are failing:"
|
||||
|
||||
# comment that will be added to a PR when there is a conflict, leave empty or set to false to disable
|
||||
mergeConflictComment: "Hello? Don't want to hassle you. Sure you're busy. But this PR has some merge conflicts that you probably ought to resolve.
|
||||
\nThat is... if you want it to be merged someday..."
|
||||
mergeConflictComment: "Hi @{{PRAuthor}}! This PR has merge conflicts due to recent upstream merges.
|
||||
\nPlease help to unblock it by resolving these conflicts. Thanks!"
|
||||
|
||||
# label to monitor
|
||||
mergeLabel: "PR action: merge"
|
||||
@ -32,6 +32,7 @@ merge:
|
||||
# list of labels that a PR shouldn't have, checked after the required labels with a regexp
|
||||
forbiddenLabels:
|
||||
- "PR target: TBD"
|
||||
- "PR action: cleanup"
|
||||
- "cla: no"
|
||||
|
||||
# list of PR statuses that need to be successful
|
||||
@ -44,9 +45,24 @@ merge:
|
||||
# the comment that will be added when the merge label is added despite failing checks, leave empty or set to false to disable
|
||||
# {{MERGE_LABEL}} will be replaced by the value of the mergeLabel option
|
||||
# {{PLACEHOLDER}} will be replaced by the list of failing checks
|
||||
mergeRemovedComment: "I see that you just added the `{{MERGE_LABEL}}` label. It won't do anything good though, because the following checks are still failing:
|
||||
\n{{PLACEHOLDER}}
|
||||
\n
|
||||
\n**If you want your PR to be merged, it has to pass all the CI checks.**
|
||||
\n
|
||||
\nIf you can't get the PR to a green state due to flakes or broken master, please try rebasing to master and/or restarting the CI job. If that fails and you believe that the issue is not due to your change, please contact the caretaker and ask for help."
|
||||
mergeRemovedComment: "I see that you just added the `{{MERGE_LABEL}}` label, but the following checks are still failing:
|
||||
\n{{PLACEHOLDER}}
|
||||
\n
|
||||
\n**If you want your PR to be merged, it has to pass all the CI checks.**
|
||||
\n
|
||||
\nIf you can't get the PR to a green state due to flakes or broken master, please try rebasing to master and/or restarting the CI job. If that fails and you believe that the issue is not due to your change, please contact the caretaker and ask for help."
|
||||
|
||||
# options for the triage plugin
|
||||
triage:
|
||||
# number of the milestone to apply when the issue is triaged
|
||||
defaultMilestone: 82,
|
||||
# arrays of labels that determine if an issue is triaged
|
||||
triagedLabels:
|
||||
-
|
||||
- "type: bug"
|
||||
- "severity"
|
||||
- "freq"
|
||||
- "comp:"
|
||||
-
|
||||
- "type: feature"
|
||||
- "comp:"
|
||||
|
@ -92,6 +92,7 @@ groups:
|
||||
- alexeagle #primary
|
||||
- chuckjaz
|
||||
- IgorMinar #fallback
|
||||
- mhevery
|
||||
- vikerman #fallback
|
||||
|
||||
build-and-ci:
|
||||
|
@ -1,7 +1,5 @@
|
||||
language: node_js
|
||||
# Work-around for https://github.com/travis-ci/travis-ci/issues/8836#issuecomment-356362524.
|
||||
# (Restore `sudo: false` once that is resolved.)
|
||||
sudo: required
|
||||
sudo: false
|
||||
dist: trusty
|
||||
node_js:
|
||||
- '8.9.1'
|
||||
|
45
CHANGELOG.md
45
CHANGELOG.md
@ -1,3 +1,48 @@
|
||||
<a name="6.0.0-beta.1"></a>
|
||||
# [6.0.0-beta.1](https://github.com/angular/angular/compare/6.0.0-beta.0...6.0.0-beta.1) (2018-01-25)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **common:** A null value should remove the style on IE ([#21679](https://github.com/angular/angular/issues/21679)) ([7d49443](https://github.com/angular/angular/commit/7d49443)), closes [#21064](https://github.com/angular/angular/issues/21064)
|
||||
* avoid triggering a cli bug ([#21611](https://github.com/angular/angular/issues/21611)) ([0eabd07](https://github.com/angular/angular/commit/0eabd07))
|
||||
* **common:** don't remove special characters when extracting CLDR data ([#21626](https://github.com/angular/angular/issues/21626)) ([135a282](https://github.com/angular/angular/commit/135a282))
|
||||
* **common:** extract plural function from i18n locale data files for TS 2.6 ([#21626](https://github.com/angular/angular/issues/21626)) ([97b18b2](https://github.com/angular/angular/commit/97b18b2)), closes [#21608](https://github.com/angular/angular/issues/21608)
|
||||
* **common:** fallback to last defined value for named date and time formats ([#21299](https://github.com/angular/angular/issues/21299)) ([879756d](https://github.com/angular/angular/commit/879756d)), closes [#21282](https://github.com/angular/angular/issues/21282)
|
||||
* **compiler:** add support for marker tags in xliff serializers ([#21250](https://github.com/angular/angular/issues/21250)) ([f74130c](https://github.com/angular/angular/commit/f74130c)), closes [#21078](https://github.com/angular/angular/issues/21078)
|
||||
* **compiler:** Don't strip `/*# sourceURL ... */` ([#16088](https://github.com/angular/angular/issues/16088)) ([5f681f9](https://github.com/angular/angular/commit/5f681f9))
|
||||
* **compiler:** fix ICU select messages to use male/female/other ([#21713](https://github.com/angular/angular/issues/21713)) ([cb5090c](https://github.com/angular/angular/commit/cb5090c))
|
||||
* **compiler-cli:** do not fold errors past calls in the collector ([#21708](https://github.com/angular/angular/issues/21708)) ([dd86790](https://github.com/angular/angular/commit/dd86790))
|
||||
* **compiler-cli:** do not lower expressions in non-modules ([#21649](https://github.com/angular/angular/issues/21649)) ([7f93aad](https://github.com/angular/angular/commit/7f93aad))
|
||||
* **router:** don't use ParamsInheritanceStrategy in declarations ([#21574](https://github.com/angular/angular/issues/21574)) ([925e654](https://github.com/angular/angular/commit/925e654)), closes [#21456](https://github.com/angular/angular/issues/21456)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **compiler:** implement "enableIvy" compiler option ([#21427](https://github.com/angular/angular/issues/21427)) ([64d16de](https://github.com/angular/angular/commit/64d16de))
|
||||
* **core:** optional generic type for ElementRef ([#20765](https://github.com/angular/angular/issues/20765)) ([d3d9aac](https://github.com/angular/angular/commit/d3d9aac)), closes [#13139](https://github.com/angular/angular/issues/13139)
|
||||
|
||||
|
||||
|
||||
<a name="5.2.2"></a>
|
||||
## [5.2.2](https://github.com/angular/angular/compare/5.2.1...5.2.2) (2018-01-25)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **common:** A null value should remove the style on IE ([#21679](https://github.com/angular/angular/issues/21679)) ([c12ea3a](https://github.com/angular/angular/commit/c12ea3a)), closes [#21064](https://github.com/angular/angular/issues/21064)
|
||||
* **common:** don't remove special characters when extracting CLDR data ([#21626](https://github.com/angular/angular/issues/21626)) ([a62c186](https://github.com/angular/angular/commit/a62c186))
|
||||
* **common:** extract plural function from i18n locale data files for TS 2.6 ([#21626](https://github.com/angular/angular/issues/21626)) ([71f9eaa](https://github.com/angular/angular/commit/71f9eaa)), closes [#21608](https://github.com/angular/angular/issues/21608)
|
||||
* **common:** fallback to last defined value for named date and time formats ([#21299](https://github.com/angular/angular/issues/21299)) ([982eb7b](https://github.com/angular/angular/commit/982eb7b)), closes [#21282](https://github.com/angular/angular/issues/21282)
|
||||
* **compiler:** add support for marker tags in xliff serializers ([#21250](https://github.com/angular/angular/issues/21250)) ([02352bc](https://github.com/angular/angular/commit/02352bc)), closes [#21078](https://github.com/angular/angular/issues/21078)
|
||||
* **compiler:** Don't strip `/*# sourceURL ... */` ([#16088](https://github.com/angular/angular/issues/16088)) ([de6c644](https://github.com/angular/angular/commit/de6c644))
|
||||
* **compiler:** fix ICU select messages to use male/female/other ([#21713](https://github.com/angular/angular/issues/21713)) ([8e44577](https://github.com/angular/angular/commit/8e44577))
|
||||
* **compiler-cli:** do not fold errors past calls in the collector ([#21708](https://github.com/angular/angular/issues/21708)) ([52970c0](https://github.com/angular/angular/commit/52970c0))
|
||||
* **compiler-cli:** do not lower expressions in non-modules ([#21649](https://github.com/angular/angular/issues/21649)) ([ba4ea82](https://github.com/angular/angular/commit/ba4ea82))
|
||||
* **router:** don't use ParamsInheritanceStrategy in declarations ([#21574](https://github.com/angular/angular/issues/21574)) ([8b3fbb5](https://github.com/angular/angular/commit/8b3fbb5)), closes [#21456](https://github.com/angular/angular/issues/21456)
|
||||
|
||||
|
||||
|
||||
<a name="6.0.0-beta.0"></a>
|
||||
# [6.0.0-beta.0](https://github.com/angular/angular/compare/5.2.0...6.0.0-beta.0) (2018-01-17)
|
||||
|
||||
|
12
WORKSPACE
12
WORKSPACE
@ -1,4 +1,4 @@
|
||||
workspace(name = "angular_src")
|
||||
workspace(name = "angular")
|
||||
|
||||
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
|
||||
|
||||
@ -16,19 +16,13 @@ node_repositories(package_json = ["//:package.json"])
|
||||
git_repository(
|
||||
name = "build_bazel_rules_typescript",
|
||||
remote = "https://github.com/bazelbuild/rules_typescript.git",
|
||||
# tag = "0.7.1+",
|
||||
commit = "89d2c75066bea3d9c942f29dd1d2ea543c58d6d5"
|
||||
commit = "c4ea003acd7d42269b81a2d25eb832972cd24912"
|
||||
)
|
||||
|
||||
load("@build_bazel_rules_typescript//:setup.bzl", "ts_setup_workspace")
|
||||
load("@build_bazel_rules_typescript//:defs.bzl", "ts_setup_workspace")
|
||||
|
||||
ts_setup_workspace()
|
||||
|
||||
local_repository(
|
||||
name = "angular",
|
||||
path = "packages/bazel",
|
||||
)
|
||||
|
||||
local_repository(
|
||||
name = "rxjs",
|
||||
path = "node_modules/rxjs/src",
|
||||
|
@ -4,7 +4,7 @@ Everything in this folder is part of the documentation project. This includes
|
||||
|
||||
* the web site for displaying the documentation
|
||||
* the dgeni configuration for converting source files to rendered files that can be viewed in the web site.
|
||||
* the tooling for setting up examples for development; and generating plunkers and zip files from the examples.
|
||||
* the tooling for setting up examples for development; and generating live-example and zip files from the examples.
|
||||
|
||||
## Developer tasks
|
||||
|
||||
@ -13,7 +13,7 @@ You should run all these tasks from the `angular/aio` folder.
|
||||
Here are the most important tasks you might need to use:
|
||||
|
||||
* `yarn` - install all the dependencies.
|
||||
* `yarn setup` - install all the dependencies, boilerplate, plunkers, zips and run dgeni on the docs.
|
||||
* `yarn setup` - install all the dependencies, boilerplate, stackblitz, zips and run dgeni on the docs.
|
||||
* `yarn setup-local` - same as `setup`, but use the locally built Angular packages for aio and docs examples boilerplate.
|
||||
|
||||
* `yarn build` - create a production build of the application (after installing dependencies, boilerplate, etc).
|
||||
@ -32,7 +32,7 @@ Here are the most important tasks you might need to use:
|
||||
|
||||
* `yarn boilerplate:add` - generate all the boilerplate code for the examples, so that they can be run locally. Add the option `--local` to use your local version of Angular contained in the "dist" folder.
|
||||
* `yarn boilerplate:remove` - remove all the boilerplate code that was added via `yarn boilerplate:add`.
|
||||
* `yarn generate-plunkers` - generate the plunker files that are used by the `live-example` tags in the docs.
|
||||
* `yarn generate-stackblitz` - generate the stackblitz files that are used by the `live-example` tags in the docs.
|
||||
* `yarn generate-zips` - generate the zip files from the examples. Zip available via the `live-example` tags in the docs.
|
||||
|
||||
* `yarn example-e2e` - run all e2e tests for examples
|
||||
|
4
aio/content/examples/.gitignore
vendored
4
aio/content/examples/.gitignore
vendored
@ -76,8 +76,8 @@ aot-compiler/**/*.factory.d.ts
|
||||
# universal
|
||||
!universal/webpack.server.config.js
|
||||
|
||||
# plunkers
|
||||
*plnkr.no-link.html
|
||||
# stackblitz
|
||||
*stackblitz.no-link.html
|
||||
|
||||
# ngUpgrade testing
|
||||
!upgrade-phonecat-*/**/karma.conf.js
|
||||
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "AngularJS to Angular Quick Reference",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Angular Animations",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"description": "Intro to Angular",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!app/hero-list.component.1.*"
|
||||
]
|
||||
"!**/*.[1].*"
|
||||
],
|
||||
"file": "src/app/app.module.ts"
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
// Not used. Keep away from plunker
|
||||
// Not used. Keep away from stackblitz
|
||||
// Keeps ATLS from complaining about undeclared directives.
|
||||
import { NgModule } from '@angular/core';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
"description": "Attribute Directive",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!app/*.[0,1,2,3].*"
|
||||
"!**/*.[1,2,3].*"
|
||||
],
|
||||
"tags": ["attribute", "directive"]
|
||||
}
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"description": "Bootstrapping",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["ngmodules"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Component Communication Cookbook samples",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Component Styles",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Dependency Injection",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Dependency Injection",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Displaying Data",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,9 +0,0 @@
|
||||
{
|
||||
"description": "Second authors style guide plunker (non-executing)",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"index.2.html"
|
||||
],
|
||||
"main": "index.2.html",
|
||||
"tags": ["author", "style guide"]
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"description": "Second authors style guide stackblitz (non-executing)",
|
||||
"files": [
|
||||
"src/index.2.html"
|
||||
],
|
||||
"main": "src/index.2.html",
|
||||
"tags": ["author", "style guide"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Authors style guide",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Dynamic Component Loader",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Dynamic Form",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"description": "Feature Modules",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["feature modules"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Validation",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Forms",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Hierarchical Dependency Injection",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Http",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -41,29 +41,30 @@
|
||||
<!-- #enddocregion translated-plural -->
|
||||
<!-- #docregion translated-select -->
|
||||
<!-- #docregion translate-select-1 -->
|
||||
<trans-unit id="52515023fc70c216ef291086c1962ff135a9fe13" datatype="html">
|
||||
<source>The author is <x id="ICU" equiv-text="{gender, select, m {...} f {...} o {...}}"/></source>
|
||||
<target>L'auteur est <x id="ICU" equiv-text="{gender, select, m {...} f {...} o {...}}"/></target>
|
||||
</trans-unit>
|
||||
<trans-unit id="f99f34ac9bd4606345071bd813858dec29f3b7d1" datatype="html">
|
||||
<source>The author is <x id="ICU" equiv-text="{gender, select, male {...} female {...} other {...}}"/></source>
|
||||
<target>L'auteur est <x id="ICU" equiv-text="{gender, select, male {...} female {...} other {...}}"/></target>
|
||||
</trans-unit>
|
||||
<!-- #enddocregion translate-select-1 -->
|
||||
<!-- #docregion translate-select-2 -->
|
||||
<trans-unit id="4e6fd3f2bb3477e8ad2088f03257f6e1b8b515a5" datatype="html">
|
||||
<source>{VAR_SELECT, select, m {male} f {female} o {other} }</source>
|
||||
<target>{VAR_SELECT, select, m {un homme} f {une femme} o {autre} }</target>
|
||||
<trans-unit id="eff74b75ab7364b6fa888f1cbfae901aaaf02295" datatype="html">
|
||||
<source>{VAR_SELECT, select, male {male} female {female} other {other} }</source>
|
||||
<target>{VAR_SELECT, select, male {un homme} female {une femme} other {autre} }</target>
|
||||
</trans-unit>
|
||||
<!-- #enddocregion translate-select-2 -->
|
||||
<!-- #enddocregion translated-select -->
|
||||
<!-- #docregion translate-nested -->
|
||||
<!-- #docregion translate-nested-1 -->
|
||||
<trans-unit id="f7a55c9ef7c5b37147825a9041263305063e63e9" datatype="html">
|
||||
<trans-unit id="972cb0cf3e442f7b1c00d7dab168ac08d6bdf20c" datatype="html">
|
||||
<source>Updated: <x id="ICU" equiv-text="{minutes, plural, =0 {...} =1 {...} other {...}}"/></source>
|
||||
<target>Mis à jour: <x id="ICU" equiv-text="{minutes, plural, =0 {...} =1 {...} other {...}}"/></target>
|
||||
</trans-unit>
|
||||
<!-- #enddocregion translate-nested-1 -->
|
||||
<!-- #docregion translate-nested-2 -->
|
||||
<trans-unit id="80b5ac44661751e191225c0b1e000bceeeccb52c" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago by {VAR_SELECT, select, m {male} f {female} o {other} }} }</source>
|
||||
<target>{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a <x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes par {VAR_SELECT, select, m {un homme} f {une femme} o {autre} }} }</target>
|
||||
<trans-unit id="7151c2e67748b726f0864fc443861d45df21d706" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago by {VAR_SELECT, select, male {male} female {female} other {other} }} }</source>
|
||||
<target>{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a <x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes par {VAR_SELECT, select, male {un homme} female {une femme} other {autre} }} }</target>
|
||||
</trans-unit>
|
||||
<!-- #enddocregion translate-nested-2 -->
|
||||
<!-- #enddocregion translate-nested -->
|
||||
|
@ -23,13 +23,13 @@
|
||||
<br><br>
|
||||
<button (click)="male()">♂</button> <button (click)="female()">♀</button> <button (click)="other()">⚧</button>
|
||||
<!--#docregion i18n-select-->
|
||||
<span i18n>The author is {gender, select, m {male} f {female} o {other}}</span>
|
||||
<span i18n>The author is {gender, select, male {male} female {female} other {other}}</span>
|
||||
<!--#enddocregion i18n-select-->
|
||||
<br><br>
|
||||
<!--#docregion i18n-nested-->
|
||||
<span i18n>Updated: {minutes, plural,
|
||||
=0 {just now}
|
||||
=1 {one minute ago}
|
||||
other {{{minutes}} minutes ago by {gender, select, m {male} f {female} o {other}}}}
|
||||
other {{{minutes}} minutes ago by {gender, select, male {male} female {female} other {other}}}}
|
||||
</span>
|
||||
<!--#enddocregion i18n-nested-->
|
||||
|
@ -7,15 +7,15 @@ import { Component } from '@angular/core';
|
||||
})
|
||||
export class AppComponent {
|
||||
minutes = 0;
|
||||
gender = 'f';
|
||||
gender = 'female';
|
||||
fly = true;
|
||||
logo = 'https://angular.io/assets/images/logos/angular/angular.png';
|
||||
heroes: string[] = ['Magneta', 'Celeritas', 'Dynama'];
|
||||
inc(i: number) {
|
||||
this.minutes = Math.min(5, Math.max(0, this.minutes + i));
|
||||
}
|
||||
male() { this.gender = 'm'; }
|
||||
female() { this.gender = 'f'; }
|
||||
other() { this.gender = 'o'; }
|
||||
male() { this.gender = 'male'; }
|
||||
female() { this.gender = 'female'; }
|
||||
other() { this.gender = 'other'; }
|
||||
}
|
||||
|
||||
|
@ -48,23 +48,23 @@
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="52515023fc70c216ef291086c1962ff135a9fe13" datatype="html">
|
||||
<source>The author is <x id="ICU" equiv-text="{gender, select, m {...} f {...} o {...}}"/></source>
|
||||
<target>L'auteur est <x id="ICU" equiv-text="{gender, select, m {...} f {...} o {...}}"/></target>
|
||||
<trans-unit id="f99f34ac9bd4606345071bd813858dec29f3b7d1" datatype="html">
|
||||
<source>The author is <x id="ICU" equiv-text="{gender, select, male {...} female {...} other {...}}"/></source>
|
||||
<target>L'auteur est <x id="ICU" equiv-text="{gender, select, male {...} female {...} other {...}}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4e6fd3f2bb3477e8ad2088f03257f6e1b8b515a5" datatype="html">
|
||||
<source>{VAR_SELECT, select, m {male} f {female} o {other} }</source>
|
||||
<target>{VAR_SELECT, select, m {un homme} f {une femme} o {autre} }</target>
|
||||
<trans-unit id="eff74b75ab7364b6fa888f1cbfae901aaaf02295" datatype="html">
|
||||
<source>{VAR_SELECT, select, male {male} female {female} other {other} }</source>
|
||||
<target>{VAR_SELECT, select, male {un homme} female {une femme} other {autre} }</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f7a55c9ef7c5b37147825a9041263305063e63e9" datatype="html">
|
||||
<trans-unit id="972cb0cf3e442f7b1c00d7dab168ac08d6bdf20c" datatype="html">
|
||||
<source>Updated: <x id="ICU" equiv-text="{minutes, plural, =0 {...} =1 {...} other {...}}"/>
|
||||
</source>
|
||||
<target>Mis à jour: <x id="ICU" equiv-text="{minutes, plural, =0 {...} =1 {...} other {...}}"/>
|
||||
@ -74,9 +74,9 @@
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80b5ac44661751e191225c0b1e000bceeeccb52c" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago by {VAR_SELECT, select, m {male} f {female} o {other} }} }</source>
|
||||
<target>{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a <x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes par {VAR_SELECT, select, m {un homme} f {une femme} o {autre} }} }</target>
|
||||
<trans-unit id="7151c2e67748b726f0864fc443861d45df21d706" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago by {VAR_SELECT, select, male {male} female {female} other {other} }} }</source>
|
||||
<target>{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a <x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes par {VAR_SELECT, select, male {un homme} female {une femme} other {autre} }} }</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
|
@ -7,8 +7,8 @@
|
||||
Hello i18n!
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">An introduction header for this sample</note>
|
||||
<note priority="1" from="meaning">User welcome</note>
|
||||
@ -16,58 +16,58 @@
|
||||
<trans-unit id="ba0cc104d3d69bf669f97b8d96a4c5d8d9559aa3" datatype="html">
|
||||
<source>I don't output any element</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="701174153757adf13e7c24a248c8a873ac9f5193" datatype="html">
|
||||
<source>Angular logo</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d69f6b42305f49332026fef24b40227f02e34594" datatype="html">
|
||||
<source>Updated <x id="ICU" equiv-text="{minutes, plural, =0 {...} =1 {...} other {...}}"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a134dee893586d02bffc9611056b9cadf9abfad" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago} }</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="52515023fc70c216ef291086c1962ff135a9fe13" datatype="html">
|
||||
<source>The author is <x id="ICU" equiv-text="{gender, select, m {...} f {...} o {...}}"/></source>
|
||||
<trans-unit id="f99f34ac9bd4606345071bd813858dec29f3b7d1" datatype="html">
|
||||
<source>The author is <x id="ICU" equiv-text="{gender, select, male {...} female {...} other {...}}"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4e6fd3f2bb3477e8ad2088f03257f6e1b8b515a5" datatype="html">
|
||||
<source>{VAR_SELECT, select, m {male} f {female} o {other} }</source>
|
||||
<trans-unit id="eff74b75ab7364b6fa888f1cbfae901aaaf02295" datatype="html">
|
||||
<source>{VAR_SELECT, select, male {male} female {female} other {other} }</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f7a55c9ef7c5b37147825a9041263305063e63e9" datatype="html">
|
||||
<trans-unit id="972cb0cf3e442f7b1c00d7dab168ac08d6bdf20c" datatype="html">
|
||||
<source>Updated: <x id="ICU" equiv-text="{minutes, plural, =0 {...} =1 {...} other {...}}"/>
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80b5ac44661751e191225c0b1e000bceeeccb52c" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago by {VAR_SELECT, select, m {male} f {female} o {other} }} }</source>
|
||||
<trans-unit id="7151c2e67748b726f0864fc443861d45df21d706" datatype="html">
|
||||
<source>{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other {<x id="INTERPOLATION" equiv-text="{{minutes}}"/> minutes ago by {VAR_SELECT, select, male {male} female {female} other {other} }} }</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app\app.component.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="sourcefile">app/app.component.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
@ -15,8 +15,7 @@ const routes: Routes = [
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule],
|
||||
providers: []
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class CustomersRoutingModule { }
|
||||
// #enddocregion customers-routing-module
|
@ -6,23 +6,17 @@ import { Routes, RouterModule } from '@angular/router';
|
||||
// #docregion orders-routing-module-detail
|
||||
import { OrderListComponent } from './order-list/order-list.component';
|
||||
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
component: OrderListComponent
|
||||
}
|
||||
];
|
||||
|
||||
// #enddocregion orders-routing-module-detail
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
RouterModule.forChild(routes)
|
||||
],
|
||||
exports: [
|
||||
RouterModule
|
||||
]
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class OrdersRoutingModule { }
|
||||
// #enddocregion orders-routing-module
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"description": "Lazy Loading Feature Modules",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["lazy loading"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Lifecycle Hooks",
|
||||
"basePath": "src/",
|
||||
"files":["!**/*.d.ts", "!**/*.js"],
|
||||
"tags": ["lifecycle", "hooks",
|
||||
"OnInit", "OnDestroy", "OnChange", "DoCheck",
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "<ng-container>",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,25 +0,0 @@
|
||||
{
|
||||
"description": "Contact NgModule v.1",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.1b.ts",
|
||||
"app/app.module.1b.ts",
|
||||
"app/highlight.directive.ts",
|
||||
"app/title.component.html",
|
||||
"app/title.component.ts",
|
||||
"app/user.service.ts",
|
||||
|
||||
"app/contact/awesome.pipe.ts",
|
||||
"app/contact/contact.component.css",
|
||||
"app/contact/contact.component.html",
|
||||
"app/contact/contact.component.3.ts",
|
||||
"app/contact/contact.service.ts",
|
||||
"app/contact/contact-highlight.directive.ts",
|
||||
|
||||
"main.1b.ts",
|
||||
"styles.css",
|
||||
"index.1b.html"
|
||||
],
|
||||
"main": "index.1b.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
24
aio/content/examples/ngmodule-faq/contact.1b.stackblitz.json
Normal file
24
aio/content/examples/ngmodule-faq/contact.1b.stackblitz.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"description": "Contact NgModule v.1",
|
||||
"files": [
|
||||
"src/app/app.component.1b.ts",
|
||||
"src/app/app.module.1b.ts",
|
||||
"src/app/highlight.directive.ts",
|
||||
"src/app/title.component.html",
|
||||
"src/app/title.component.ts",
|
||||
"src/app/user.service.ts",
|
||||
|
||||
"src/app/contact/awesome.pipe.ts",
|
||||
"src/app/contact/contact.component.css",
|
||||
"src/app/contact/contact.component.html",
|
||||
"src/app/contact/contact.component.3.ts",
|
||||
"src/app/contact/contact.service.ts",
|
||||
"src/app/contact/contact-highlight.directive.ts",
|
||||
|
||||
"src/main.1b.ts",
|
||||
"src/styles.css",
|
||||
"src/index.1b.html"
|
||||
],
|
||||
"main": "src/index.1b.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
"description": "Contact NgModule v.2",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.2.ts",
|
||||
"app/app.module.2.ts",
|
||||
"app/highlight.directive.ts",
|
||||
"app/title.component.html",
|
||||
"app/title.component.ts",
|
||||
"app/user.service.ts",
|
||||
|
||||
"app/contact/contact.component.css",
|
||||
"app/contact/contact.component.html",
|
||||
"app/contact/contact.service.ts",
|
||||
|
||||
"app/contact/awesome.pipe.ts",
|
||||
"app/contact/contact.component.3.ts",
|
||||
"app/contact/contact.module.2.ts",
|
||||
"app/contact/contact-highlight.directive.ts",
|
||||
|
||||
"main.2.ts",
|
||||
"styles.css",
|
||||
"index.2.html"
|
||||
],
|
||||
"main": "index.2.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
26
aio/content/examples/ngmodule-faq/contact.2.stackblitz.json
Normal file
26
aio/content/examples/ngmodule-faq/contact.2.stackblitz.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"description": "Contact NgModule v.2",
|
||||
"files": [
|
||||
"src/app/app.component.2.ts",
|
||||
"src/app/app.module.2.ts",
|
||||
"src/app/highlight.directive.ts",
|
||||
"src/app/title.component.html",
|
||||
"src/app/title.component.ts",
|
||||
"src/app/user.service.ts",
|
||||
|
||||
"src/app/contact/contact.component.css",
|
||||
"src/app/contact/contact.component.html",
|
||||
"src/app/contact/contact.service.ts",
|
||||
|
||||
"src/app/contact/awesome.pipe.ts",
|
||||
"src/app/contact/contact.component.3.ts",
|
||||
"src/app/contact/contact.module.2.ts",
|
||||
"src/app/contact/contact-highlight.directive.ts",
|
||||
|
||||
"src/main.2.ts",
|
||||
"src/styles.css",
|
||||
"src/index.2.html"
|
||||
],
|
||||
"main": "src/index.2.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"description": "Minimal NgModule",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.0.ts",
|
||||
"app/app.module.0.ts",
|
||||
"main.0.ts",
|
||||
"styles.css",
|
||||
"index.0.html"
|
||||
],
|
||||
"main": "index.0.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
12
aio/content/examples/ngmodule-faq/minimal.0.stackblitz.json
Normal file
12
aio/content/examples/ngmodule-faq/minimal.0.stackblitz.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"description": "Minimal NgModule",
|
||||
"files": [
|
||||
"src/app/app.component.0.ts",
|
||||
"src/app/app.module.0.ts",
|
||||
"src/main.0.ts",
|
||||
"src/styles.css",
|
||||
"src/index.0.html"
|
||||
],
|
||||
"main": "src/index.0.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
{
|
||||
"description": "NgModule Final",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.ts",
|
||||
"app/app.module.ts",
|
||||
"app/app-routing.module.ts",
|
||||
|
||||
"app/contact/contact.component.css",
|
||||
"app/contact/contact.component.html",
|
||||
"app/contact/contact.service.ts",
|
||||
|
||||
"app/contact/contact.component.ts",
|
||||
"app/contact/contact.module.ts",
|
||||
"app/contact/contact-routing.module.ts",
|
||||
|
||||
"app/crisis/*.ts",
|
||||
|
||||
"app/hero/hero-detail.component.ts",
|
||||
"app/hero/hero-list.component.ts",
|
||||
"app/hero/hero.service.ts",
|
||||
|
||||
"app/hero/hero.component.ts",
|
||||
"app/hero/hero.module.ts",
|
||||
"app/hero/hero-routing.module.ts",
|
||||
|
||||
"app/core/*.css",
|
||||
"app/core/*.html",
|
||||
"app/core/*.ts",
|
||||
|
||||
"app/shared/*.css",
|
||||
"app/shared/*.html",
|
||||
"app/shared/*.ts",
|
||||
|
||||
"main.ts",
|
||||
"styles.css",
|
||||
"index.html"
|
||||
],
|
||||
"main": "index.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
{
|
||||
"description": "NgModule v.3",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.3.ts",
|
||||
"app/app.module.3.ts",
|
||||
"app/app-routing.module.3.ts",
|
||||
|
||||
"app/highlight.directive.ts",
|
||||
"app/title.component.html",
|
||||
"app/title.component.ts",
|
||||
"app/user.service.ts",
|
||||
|
||||
"app/contact/contact.component.css",
|
||||
"app/contact/contact.component.html",
|
||||
"app/contact/contact.service.ts",
|
||||
|
||||
"app/contact/awesome.pipe.ts",
|
||||
"app/contact/contact.component.3.ts",
|
||||
"app/contact/contact.module.3.ts",
|
||||
"app/contact/contact-routing.module.3.ts",
|
||||
"app/contact/contact-highlight.directive.ts",
|
||||
|
||||
"app/crisis/*.ts",
|
||||
|
||||
"app/hero/hero-detail.component.ts",
|
||||
"app/hero/hero-list.component.ts",
|
||||
"app/hero/hero.service.ts",
|
||||
|
||||
"app/hero/hero.component.3.ts",
|
||||
"app/hero/hero.module.3.ts",
|
||||
"app/hero/hero-routing.module.3.ts",
|
||||
"app/hero/highlight.directive.ts",
|
||||
|
||||
"main.3.ts",
|
||||
"styles.css",
|
||||
"index.3.html"
|
||||
],
|
||||
"main": "index.3.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"description": "NgModule v.3",
|
||||
"files": [
|
||||
"src/app/app.component.3.ts",
|
||||
"src/app/app.module.3.ts",
|
||||
"src/app/app-routing.module.3.ts",
|
||||
|
||||
"src/app/highlight.directive.ts",
|
||||
"src/app/title.component.html",
|
||||
"src/app/title.component.ts",
|
||||
"src/app/user.service.ts",
|
||||
|
||||
"src/app/contact/contact.component.css",
|
||||
"src/app/contact/contact.component.html",
|
||||
"src/app/contact/contact.service.ts",
|
||||
|
||||
"src/app/contact/awesome.pipe.ts",
|
||||
"src/app/contact/contact.component.3.ts",
|
||||
"src/app/contact/contact.module.3.ts",
|
||||
"src/app/contact/contact-routing.module.3.ts",
|
||||
"src/app/contact/contact-highlight.directive.ts",
|
||||
|
||||
"src/app/crisis/*.ts",
|
||||
|
||||
"src/app/hero/hero-detail.component.ts",
|
||||
"src/app/hero/hero-list.component.ts",
|
||||
"src/app/hero/hero.service.ts",
|
||||
|
||||
"src/app/hero/hero.component.3.ts",
|
||||
"src/app/hero/hero.module.3.ts",
|
||||
"src/app/hero/hero-routing.module.3.ts",
|
||||
"src/app/hero/highlight.directive.ts",
|
||||
|
||||
"src/main.3.ts",
|
||||
"src/styles.css",
|
||||
"src/index.3.html"
|
||||
],
|
||||
"main": "src/index.3.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -1,13 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<head>
|
||||
<base href="/">
|
||||
<title>NgModule Minimal</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
</head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
40
aio/content/examples/ngmodule-faq/stackblitz.json
Normal file
40
aio/content/examples/ngmodule-faq/stackblitz.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"description": "NgModule Final",
|
||||
"files": [
|
||||
"src/app/app.component.ts",
|
||||
"src/app/app.module.ts",
|
||||
"src/app/app-routing.module.ts",
|
||||
|
||||
"src/app/contact/contact.component.css",
|
||||
"src/app/contact/contact.component.html",
|
||||
"src/app/contact/contact.service.ts",
|
||||
|
||||
"src/app/contact/contact.component.ts",
|
||||
"src/app/contact/contact.module.ts",
|
||||
"src/app/contact/contact-routing.module.ts",
|
||||
|
||||
"src/app/crisis/*.ts",
|
||||
|
||||
"src/app/hero/hero-detail.component.ts",
|
||||
"src/app/hero/hero-list.component.ts",
|
||||
"src/app/hero/hero.service.ts",
|
||||
|
||||
"src/app/hero/hero.component.ts",
|
||||
"src/app/hero/hero.module.ts",
|
||||
"src/app/hero/hero-routing.module.ts",
|
||||
|
||||
"src/app/core/*.css",
|
||||
"src/app/core/*.html",
|
||||
"src/app/core/*.ts",
|
||||
|
||||
"src/app/shared/*.css",
|
||||
"src/app/shared/*.html",
|
||||
"src/app/shared/*.ts",
|
||||
|
||||
"src/main.ts",
|
||||
"src/styles.css",
|
||||
"src/index.html"
|
||||
],
|
||||
"main": "src/index.html",
|
||||
"tags": ["NgModule"]
|
||||
}
|
@ -8,18 +8,16 @@ import { AppComponent } from './app.component';
|
||||
|
||||
/* Feature Modules */
|
||||
import { ContactModule } from './contact/contact.module';
|
||||
// #docregion import-for-root
|
||||
import { CoreModule } from './core/core.module';
|
||||
// #enddocregion import-for-root
|
||||
|
||||
/* Routing Module */
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
|
||||
|
||||
|
||||
// #docregion import-for-root
|
||||
@NgModule({
|
||||
declarations: [
|
||||
AppComponent
|
||||
],
|
||||
// #docregion import-for-root
|
||||
imports: [
|
||||
BrowserModule,
|
||||
ContactModule,
|
||||
@ -28,6 +26,11 @@ import { AppRoutingModule } from './app-routing.module';
|
||||
],
|
||||
// #enddocregion import-for-root
|
||||
providers: [],
|
||||
declarations: [
|
||||
AppComponent
|
||||
],
|
||||
bootstrap: [AppComponent]
|
||||
// #docregion import-for-root
|
||||
})
|
||||
export class AppModule { }
|
||||
// #enddocregion import-for-root
|
||||
|
@ -1,22 +1,26 @@
|
||||
/* tslint:disable:member-ordering no-unused-variable */
|
||||
// #docregion whole-core-module
|
||||
import {
|
||||
ModuleWithProviders, NgModule,
|
||||
Optional, SkipSelf } from '@angular/core';
|
||||
// #docregion whole-core-module
|
||||
import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
|
||||
import { TitleComponent } from './title.component';
|
||||
// #docregion user-service
|
||||
import { UserService } from './user.service';
|
||||
// #enddocregion user-service
|
||||
import { UserServiceConfig } from './user.service';
|
||||
|
||||
|
||||
// #docregion user-service
|
||||
@NgModule({
|
||||
// #enddocregion user-service
|
||||
imports: [ CommonModule ],
|
||||
declarations: [ TitleComponent ],
|
||||
exports: [ TitleComponent ],
|
||||
// #docregion user-service
|
||||
providers: [ UserService ]
|
||||
})
|
||||
export class CoreModule {
|
||||
// #enddocregion user-service
|
||||
// #docregion ctor
|
||||
constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
|
||||
if (parentModule) {
|
||||
@ -24,8 +28,7 @@ export class CoreModule {
|
||||
'CoreModule is already loaded. Import it in the AppModule only');
|
||||
}
|
||||
}
|
||||
// #enddocregion ctor
|
||||
|
||||
// #enddocregion ctor
|
||||
|
||||
// #docregion for-root
|
||||
static forRoot(config: UserServiceConfig): ModuleWithProviders {
|
||||
@ -36,9 +39,8 @@ export class CoreModule {
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
// #enddocregion for-root
|
||||
// #docregion user-service
|
||||
}
|
||||
|
||||
// #enddocregion user-service
|
||||
// #enddocregion whole-core-module
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"description": "NgModules",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["NgModules"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Pipes",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"],
|
@ -1,26 +1,25 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
import { User } from './core/user';
|
||||
import { UserService } from './core/user.service';
|
||||
import { User, UserService } from './user.service';
|
||||
|
||||
// #docregion component-providers
|
||||
@Component({
|
||||
// #enddocregion component-providers
|
||||
selector: 'app-root',
|
||||
templateUrl: './app.component.html',
|
||||
styleUrls: ['./app.component.css'],
|
||||
// #docregion component-providers
|
||||
providers: [UserService]
|
||||
})
|
||||
// #enddocregion component-providers
|
||||
export class AppComponent implements OnInit {
|
||||
title = 'Users list';
|
||||
users: User[];
|
||||
|
||||
constructor(private userService: UserService) { }
|
||||
|
||||
getUsers(): void {
|
||||
ngOnInit(): void {
|
||||
this.userService.getUsers().then(users => this.users = users);
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.getUsers();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,25 +1,13 @@
|
||||
// #docplaster
|
||||
// #docregion app-module
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { NgModule } from '@angular/core';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { HttpModule } from '@angular/http';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
|
||||
import { AppComponent } from './app.component';
|
||||
// CoreModule provides the UserService.
|
||||
import { CoreModule } from './core/core.module';
|
||||
import { UserService } from './user.service';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
AppComponent
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
FormsModule,
|
||||
HttpModule,
|
||||
CoreModule
|
||||
],
|
||||
bootstrap: [AppComponent]
|
||||
imports: [ BrowserModule ],
|
||||
providers: [ UserService ],
|
||||
declarations: [ AppComponent ],
|
||||
bootstrap: [ AppComponent ]
|
||||
})
|
||||
export class AppModule { }
|
||||
// #enddocregion app-module
|
||||
|
@ -1,16 +0,0 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
import { UserService } from './user.service';
|
||||
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule
|
||||
],
|
||||
declarations: [],
|
||||
providers: [UserService]
|
||||
})
|
||||
export class CoreModule { }
|
@ -1,14 +0,0 @@
|
||||
import { User } from './user';
|
||||
|
||||
export const USERS: User[] = [
|
||||
{ id: 1, name: 'Maria' },
|
||||
{ id: 2, name: 'Alex' },
|
||||
{ id: 3, name: 'Chuntao' },
|
||||
{ id: 4, name: 'Béatrice' },
|
||||
{ id: 5, name: 'Sarah' },
|
||||
{ id: 6, name: 'Andrés' },
|
||||
{ id: 7, name: 'Abdul' },
|
||||
{ id: 8, name: 'Pierre' },
|
||||
{ id: 9, name: 'Jiao' },
|
||||
{ id: 10, name: 'Seth' }
|
||||
];
|
@ -1,15 +0,0 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
import { User } from './user';
|
||||
import { USERS } from './mock-users';
|
||||
|
||||
@Injectable()
|
||||
export class UserService {
|
||||
|
||||
constructor() { }
|
||||
|
||||
|
||||
getUsers(): Promise<User[]> {
|
||||
return Promise.resolve(USERS);
|
||||
}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export class User {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
28
aio/content/examples/providers/src/app/user.service.ts
Normal file
28
aio/content/examples/providers/src/app/user.service.ts
Normal file
@ -0,0 +1,28 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
export class User {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class UserService {
|
||||
|
||||
constructor() { }
|
||||
|
||||
getUsers(): Promise<User[]> {
|
||||
return Promise.resolve([
|
||||
{ id: 1, name: 'Maria' },
|
||||
{ id: 2, name: 'Alex' },
|
||||
{ id: 3, name: 'Chuntao' },
|
||||
{ id: 4, name: 'Béatrice' },
|
||||
{ id: 5, name: 'Sarah' },
|
||||
{ id: 6, name: 'Andrés' },
|
||||
{ id: 7, name: 'Abdul' },
|
||||
{ id: 8, name: 'Pierre' },
|
||||
{ id: 9, name: 'Jiao' },
|
||||
{ id: 10, name: 'Seth' }
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"description": "Providers",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["providers"]
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"description": "QuickStart",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.ts",
|
||||
"app/app.module.ts",
|
||||
"main.ts",
|
||||
"index.html"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"tags": ["quickstart"]
|
||||
}
|
11
aio/content/examples/quickstart/stackblitz.json
Normal file
11
aio/content/examples/quickstart/stackblitz.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"description": "QuickStart",
|
||||
"files": [
|
||||
"src/app/app.component.ts",
|
||||
"src/app/app.module.ts",
|
||||
"src/main.ts",
|
||||
"src/index.html"
|
||||
],
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["quickstart"]
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
{
|
||||
"description": "Angular Reactive Forms (final)",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"styles.css",
|
||||
|
||||
"app/app.component.ts",
|
||||
"app/app.component.html",
|
||||
"app/app.component.css",
|
||||
"app/app.module.ts",
|
||||
"app/data-model.ts",
|
||||
"app/hero.service.ts",
|
||||
"app/hero-detail/hero-detail.component.html",
|
||||
"app/hero-detail/hero-detail.component.ts",
|
||||
"app/hero-detail/hero-detail.component.css",
|
||||
"app/hero-list/hero-list.component.html",
|
||||
"app/hero-list/hero-list.component.ts",
|
||||
"app/hero-list/hero-list.component.css",
|
||||
|
||||
"main-final.ts",
|
||||
"index-final.html"
|
||||
],
|
||||
"main": "index-final.html",
|
||||
"tags": ["reactive", "forms"]
|
||||
}
|
24
aio/content/examples/reactive-forms/final.stackblitz.json
Normal file
24
aio/content/examples/reactive-forms/final.stackblitz.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"description": "Angular Reactive Forms (final)",
|
||||
"files":[
|
||||
"src/styles.css",
|
||||
|
||||
"src/app/app.component.ts",
|
||||
"src/app/app.component.html",
|
||||
"src/app/app.component.css",
|
||||
"src/app/app.module.ts",
|
||||
"src/app/data-model.ts",
|
||||
"src/app/hero.service.ts",
|
||||
"src/app/hero-detail/hero-detail.component.html",
|
||||
"src/app/hero-detail/hero-detail.component.ts",
|
||||
"src/app/hero-detail/hero-detail.component.css",
|
||||
"src/app/hero-list/hero-list.component.html",
|
||||
"src/app/hero-list/hero-list.component.ts",
|
||||
"src/app/hero-list/hero-list.component.css",
|
||||
|
||||
"src/main-final.ts",
|
||||
"src/index-final.html"
|
||||
],
|
||||
"main": "src/index-final.html",
|
||||
"tags": ["reactive", "forms"]
|
||||
}
|
@ -1,15 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- #docregion -->
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<head>
|
||||
<title>Hero Form</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- #docregion bootstrap -->
|
||||
<link rel="stylesheet" href="https://unpkg.com/bootstrap@3.3.7/dist/css/bootstrap.min.css">
|
||||
</head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -1,15 +1,14 @@
|
||||
{
|
||||
"description": "Angular Reactive Forms (Demo runner)",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
|
||||
"!app/app.component.1.ts",
|
||||
"!app/hero-list.component.1.html",
|
||||
"!src/app/app.component.1.ts",
|
||||
"!src/app/hero-list.component.1.html",
|
||||
|
||||
"!app/main-final.ts",
|
||||
"!index-final.html"
|
||||
"!src/app/main-final.ts",
|
||||
"!src/index-final.html"
|
||||
],
|
||||
"tags": ["reactive", "forms"]
|
||||
}
|
@ -1,12 +1,11 @@
|
||||
{
|
||||
"description": "Router",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[0-9].*",
|
||||
"!app/crisis-list.component.ts",
|
||||
"!app/hero-list.component.ts"
|
||||
"!src/app/crisis-list.component.ts",
|
||||
"!src/app/hero-list.component.ts"
|
||||
],
|
||||
"tags": ["router"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Content Security",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"description": "Service Worker",
|
||||
"basePath": "src/",
|
||||
"tags": ["service worker"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Set The Document Title In Angular",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"description": "QuickStart Setup",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"app/app.component.ts",
|
||||
"app/app.module.ts",
|
||||
"index.html",
|
||||
"main.ts",
|
||||
"styles.css"
|
||||
],
|
||||
"open": "app/app.component.ts",
|
||||
"tags": ["quickstart", "setup", "seed"]
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"description": "Quickstart AppComponent Testing",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"browser-test-shim.js",
|
||||
"app/app.component.ts",
|
||||
"app/app.component.spec.ts",
|
||||
"quickstart-specs.html"
|
||||
],
|
||||
"main": "quickstart-specs.html",
|
||||
"open": "app/app.component.spec.ts",
|
||||
"tags": ["quickstart", "setup", "testing"]
|
||||
}
|
12
aio/content/examples/setup/quickstart-specs.stackblitz.json
Normal file
12
aio/content/examples/setup/quickstart-specs.stackblitz.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"description": "Quickstart AppComponent Testing",
|
||||
"files":[
|
||||
"src/browser-test-shim.js",
|
||||
"src/app/app.component.ts",
|
||||
"src/app/app.component.spec.ts",
|
||||
"src/quickstart-specs.html"
|
||||
],
|
||||
"main": "src/quickstart-specs.html",
|
||||
"file": "src/app/app.component.spec.ts",
|
||||
"tags": ["quickstart", "setup", "testing"]
|
||||
}
|
12
aio/content/examples/setup/stackblitz.json
Normal file
12
aio/content/examples/setup/stackblitz.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"description": "QuickStart Setup",
|
||||
"files": [
|
||||
"src/app/app.component.ts",
|
||||
"src/app/app.module.ts",
|
||||
"src/index.html",
|
||||
"src/main.ts",
|
||||
"src/styles.css"
|
||||
],
|
||||
"file": "src/app/app.component.ts",
|
||||
"tags": ["quickstart", "setup", "seed"]
|
||||
}
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
"description": "Structural directives",
|
||||
"basePath": "src/",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!app/scrap.txt"
|
||||
"!src/app/scrap.txt"
|
||||
],
|
||||
"tags": [
|
||||
"structural", "directives", "template", "ngIf",
|
@ -1,9 +0,0 @@
|
||||
{
|
||||
"description": "Style Guide",
|
||||
"basePath": "src/",
|
||||
"files":[
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js"
|
||||
],
|
||||
"tags": ["style guide, styleguide"]
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"description": "Template Syntax Collection",
|
||||
"basePath": "src/",
|
||||
"files":["!**/*.d.ts", "!**/*.js"],
|
||||
"tags": ["template"]
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user