Compare commits
144 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dee6817407 | |||
| 7f5d0352c5 | |||
| 21af883970 | |||
| d5b2c249a3 | |||
| 5ccca91654 | |||
| c3dcb379c9 | |||
| c5a50ce72d | |||
| 48997c15a4 | |||
| ba5c4d4cc4 | |||
| a6bea306d5 | |||
| 71a713dc51 | |||
| 6193cebacd | |||
| 8c45033577 | |||
| d4926f3861 | |||
| b4d93d16d4 | |||
| 73972c684e | |||
| 2d30161a03 | |||
| 23df724359 | |||
| ef6e0b8f65 | |||
| cfb55b0592 | |||
| 6df21fb7d0 | |||
| d36dfd4b62 | |||
| 64430869fb | |||
| 74603b9437 | |||
| 9e86dd231b | |||
| af31f98b00 | |||
| a334e4efbe | |||
| 6e197520dd | |||
| 936beade99 | |||
| 566f2918eb | |||
| 171b4d4640 | |||
| 6caa51ee6e | |||
| 8514e14a49 | |||
| 0861471112 | |||
| 2403d3dac8 | |||
| 552cd3fb5c | |||
| 067c4ce4fd | |||
| 6cf4364ced | |||
| d80b98dc08 | |||
| 98ccb57117 | |||
| 64416a6e4d | |||
| 145f848a10 | |||
| a89e8afebe | |||
| e9c5c60d9b | |||
| eeb952ba25 | |||
| 7d2a28d746 | |||
| 72a07c4301 | |||
| 8255e455e3 | |||
| a79bee689c | |||
| 2f83366f58 | |||
| 0b00817079 | |||
| 92ab80d44a | |||
| 6632a06ba5 | |||
| 2341433d0c | |||
| 8441972237 | |||
| 60a7214ab2 | |||
| 97f6535219 | |||
| a6b10f6e59 | |||
| 080b87559e | |||
| fe3eadd5d0 | |||
| 9c04c7691a | |||
| 314b2a7658 | |||
| e3a8a5cc42 | |||
| 0f8a4f97d6 | |||
| e611a22294 | |||
| 6686eacb90 | |||
| dc1972c822 | |||
| ec5aae467c | |||
| 0eec71f806 | |||
| a386496cbf | |||
| 032b2bd689 | |||
| 3f440d979e | |||
| 22d099a41e | |||
| 99c55c4345 | |||
| 2f332cdc6c | |||
| 112941d693 | |||
| 0f7cb3b271 | |||
| 35b2c82d18 | |||
| cec9365604 | |||
| 5978eedec0 | |||
| 4e2bf140e8 | |||
| dd54f6bd96 | |||
| 68ce4f6ab4 | |||
| 20a1b43e52 | |||
| 30ee969a76 | |||
| 686a4077c3 | |||
| 952d3b74f5 | |||
| d3223010b0 | |||
| 8daf9c8406 | |||
| 866ccd62a6 | |||
| 079b1d3e17 | |||
| ef61bc4355 | |||
| 905993fe31 | |||
| 42fdaab971 | |||
| e51df686a5 | |||
| c771469684 | |||
| 696bffd159 | |||
| cc392e532b | |||
| ea5bbd3fce | |||
| 262b985401 | |||
| 497329522e | |||
| fcbd12f2b3 | |||
| 8157ae45d4 | |||
| d8d29a541a | |||
| 7d65c8cb35 | |||
| 11c6659ae0 | |||
| c05aa940d5 | |||
| 0c779d098e | |||
| c1f88824b7 | |||
| 6d83493096 | |||
| a853f32496 | |||
| 84f1648053 | |||
| c3ce2954a1 | |||
| 5ae7ca827f | |||
| 1aef7a8848 | |||
| df77bbc70b | |||
| 65baae803b | |||
| 99723fc64e | |||
| 6a8ea29a04 | |||
| caf7228f8a | |||
| 896c04fac4 | |||
| 772ddc1baa | |||
| 9e013d3dd7 | |||
| 9770964acf | |||
| 8d251fc0cf | |||
| f112f8d211 | |||
| 1c1c4555a2 | |||
| 057e495db5 | |||
| b86c6a8909 | |||
| 783d21431f | |||
| 2ffa34eebc | |||
| e615b598ba | |||
| 6ce7d76a0e | |||
| 8aa8b4b77c | |||
| 61fc47475d | |||
| 3fe75710d9 | |||
| b09a716e80 | |||
| b3d0a2717e | |||
| f672d8fa46 | |||
| a8ba26561b | |||
| d832cb2e23 | |||
| 23b465e5ed | |||
| d7d23b0320 | |||
| 28ea114d54 |
@@ -1,7 +1,7 @@
|
||||
# Image metadata and config.
|
||||
# Ideally, the Node.js version should match what we use on CI.
|
||||
# See `executors > default-executor` in `.circleci/config.yml`.
|
||||
FROM cimg/node:14-browsers
|
||||
FROM cimg/node:16.13-browsers
|
||||
|
||||
|
||||
LABEL name="Angular dev environment" \
|
||||
|
||||
@@ -4,7 +4,7 @@ description: 'Installs the dependencies using Yarn'
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
|
||||
- uses: actions/cache@627f0f41f6904a5b1efbaed9f96d9eb58e92e920 # v3
|
||||
with:
|
||||
path: |
|
||||
./node_modules/
|
||||
|
||||
@@ -22,10 +22,10 @@ jobs:
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'aio: preview') ||
|
||||
(github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'aio: preview'))
|
||||
steps:
|
||||
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
- uses: ./.github/actions/yarn-install
|
||||
|
||||
- uses: angular/dev-infra/github-actions/setup-bazel-remote-exec@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: angular/dev-infra/github-actions/setup-bazel-remote-exec@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
bazelrc: ./.bazelrc.user
|
||||
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
# the number of concurrent actions is determined based on the host resources.
|
||||
- run: bazel build //aio:build --jobs=32 --announce_rc --verbose_failures
|
||||
|
||||
- uses: angular/dev-infra/github-actions/deploy-previews/pack-and-upload-artifact@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: angular/dev-infra/github-actions/deploy-previews/pack-and-upload-artifact@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
workflow-artifact-name: 'aio'
|
||||
pull-number: '${{github.event.pull_request.number}}'
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
|
||||
|
||||
- name: Configure Firebase deploy target
|
||||
working-directory: aio/
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
npx -y firebase-tools@latest target:clear --project ${{env.PREVIEW_PROJECT}} hosting aio
|
||||
npx -y firebase-tools@latest target:apply --project ${{env.PREVIEW_PROJECT}} hosting aio ${{env.PREVIEW_SITE}}
|
||||
|
||||
- uses: angular/dev-infra/github-actions/deploy-previews/upload-artifacts-to-firebase@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: angular/dev-infra/github-actions/deploy-previews/upload-artifacts-to-firebase@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
github-token: '${{secrets.GITHUB_TOKEN}}'
|
||||
workflow-artifact-name: 'aio'
|
||||
|
||||
@@ -13,9 +13,9 @@ jobs:
|
||||
assistant_to_the_branch_manager:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: angular/dev-infra/github-actions/branch-manager@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: angular/dev-infra/github-actions/branch-manager@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
|
||||
|
||||
@@ -12,14 +12,14 @@ jobs:
|
||||
labels:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
|
||||
- uses: angular/dev-infra/github-actions/commit-message-based-labels@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
- uses: angular/dev-infra/github-actions/commit-message-based-labels@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
|
||||
post_approval_changes:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
|
||||
- uses: angular/dev-infra/github-actions/post-approval-changes@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
- uses: angular/dev-infra/github-actions/post-approval-changes@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
|
||||
|
||||
@@ -14,6 +14,6 @@ jobs:
|
||||
if: github.repository == 'angular/angular'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: angular/dev-infra/github-actions/feature-request@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: angular/dev-infra/github-actions/feature-request@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
|
||||
|
||||
@@ -12,8 +12,8 @@ jobs:
|
||||
trigger:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
|
||||
- uses: angular/dev-infra/github-actions/google-internal-tests@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
- uses: angular/dev-infra/github-actions/google-internal-tests@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
run-tests-guide-url: http://go/angular/g3sync
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -14,6 +14,6 @@ jobs:
|
||||
if: github.repository == 'angular/angular'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: angular/dev-infra/github-actions/lock-closed@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
- uses: angular/dev-infra/github-actions/lock-closed@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
lock-bot-key: ${{ secrets.LOCK_BOT_PRIVATE_KEY }}
|
||||
|
||||
@@ -9,6 +9,6 @@ jobs:
|
||||
status:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: angular/dev-infra/github-actions/unified-status-check@f1e8862e5034f046cc0bc66641d37f5b36d3e9b5
|
||||
- uses: angular/dev-infra/github-actions/unified-status-check@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
|
||||
|
||||
@@ -25,12 +25,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: 'Checkout code'
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: 'Run analysis'
|
||||
uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # tag=v2.0.6
|
||||
uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
|
||||
# Upload the results as artifacts.
|
||||
- name: 'Upload artifact'
|
||||
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # tag=v3.1.1
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
@@ -47,6 +47,6 @@ jobs:
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: 'Upload to code-scanning'
|
||||
uses: github/codeql-action/upload-sarif@b2a92eb56d8cb930006a1c6ed86b0782dd8a4297 # tag=v2.1.35
|
||||
uses: github/codeql-action/upload-sarif@a34ca99b4610d924e04c68db79e503e1f79f9f02 # v2.1.39
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
name: Update AIO Angular CLI help
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs: {}
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
- '[0-9]+.[0-9]+.x'
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
update_cli_help:
|
||||
name: Update Angular CLI help (if necessary)
|
||||
if: github.repository == 'angular/angular'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
with:
|
||||
# Setting `persist-credentials: false` prevents the github-action account from being the
|
||||
# account that is attempted to be used for authentication, instead the remote is set to
|
||||
# an authenticated URL.
|
||||
persist-credentials: false
|
||||
# This is needed as otherwise the PR creation will fail with `shallow update not allowed` when the forked branch is not in sync.
|
||||
fetch-depth: 0
|
||||
- name: Generate CLI help
|
||||
run: node aio/scripts/update-cli-help/index.mjs
|
||||
env:
|
||||
ANGULAR_CLI_BUILDS_READONLY_GITHUB_TOKEN: ${{ secrets.ANGULAR_CLI_BUILDS_READONLY_GITHUB_TOKEN }}
|
||||
- name: Create a PR (if necessary)
|
||||
uses: angular/dev-infra/github-actions/create-pr-for-changes@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
branch-prefix: update-cli-help
|
||||
pr-title: 'docs: update Angular CLI help [${{github.ref_name}}]'
|
||||
pr-description: |
|
||||
Updated Angular CLI help contents.
|
||||
pr-labels: |
|
||||
action: review
|
||||
area: docs
|
||||
angular-robot-token: ${{ secrets.ANGULAR_ROBOT_ACCESS_TOKEN }}
|
||||
@@ -24,16 +24,18 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
with:
|
||||
# Setting `persist-credentials: false` prevents the github-action account from being the
|
||||
# account that is attempted to be used for authentication, instead the remote is set to
|
||||
# an authenticated URL.
|
||||
persist-credentials: false
|
||||
# This is needed as otherwise the PR creation will fail with `shallow update not allowed` when the forked branch is not in sync.
|
||||
fetch-depth: 0
|
||||
- name: Generate `events.json`
|
||||
run: node aio/scripts/generate-events/index.mjs --ignore-invalid-dates
|
||||
- name: Create a PR (if necessary)
|
||||
uses: angular/dev-infra/github-actions/create-pr-for-changes@96fdaaa056f1cfa7ffbc4c69b7e9007279f76c94
|
||||
uses: angular/dev-infra/github-actions/create-pr-for-changes@fa428ee0accc999f051008f0daa5651ba2728c2b
|
||||
with:
|
||||
branch-prefix: docs-update-events
|
||||
pr-title: 'docs: update events'
|
||||
|
||||
@@ -127,8 +127,10 @@ groups:
|
||||
'packages/animations/**/{*,.*}',
|
||||
'packages/platform-browser/animations/**/{*,.*}',
|
||||
'aio/content/guide/animations.md',
|
||||
'aio/content/guide/add-an-animation.md',
|
||||
'aio/content/guide/animate-state-style.md',
|
||||
'aio/content/guide/animation-api-summary.md',
|
||||
'aio/content/guide/understanding-angular-animation.md',
|
||||
'aio/content/examples/animations/**/{*,.*}',
|
||||
'aio/content/images/guide/animations/**/{*,.*}',
|
||||
'aio/content/guide/complex-animation-sequences.md',
|
||||
@@ -144,6 +146,7 @@ groups:
|
||||
- crisbeto
|
||||
- ~jelbourn
|
||||
- jessicajaniuk
|
||||
- treladyone
|
||||
|
||||
# =========================================================
|
||||
# Framework: Compiler
|
||||
@@ -408,6 +411,20 @@ groups:
|
||||
'packages/common/http/**/{*,.*}',
|
||||
'packages/examples/http/**/{*,.*}',
|
||||
'aio/content/guide/http.md',
|
||||
'aio/content/guide/understanding-communicating-with-http.md',
|
||||
'aio/content/guide/http-configure-http-url-parameters.md',
|
||||
'aio/content/guide/http-handle-request-errors.md',
|
||||
'aio/content/guide/http-intercept-requests-and-responses.md',
|
||||
'aio/content/guide/http-interceptor-use-cases.md',
|
||||
'aio/content/guide/http-make-jsonp-request.md',
|
||||
'aio/content/guide/http-optimize-server-interaction.md',
|
||||
'aio/content/guide/http-pass-metadata-to-interceptors.md',
|
||||
'aio/content/guide/http-request-data-from-server.md',
|
||||
'aio/content/guide/http-security-xsrf-protection.md',
|
||||
'aio/content/guide/http-send-data-to-server.md',
|
||||
'aio/content/guide/http-setup-server-communication.md',
|
||||
'aio/content/guide/http-test-requests.md',
|
||||
'aio/content/guide/http-track-show-request-progress.md',
|
||||
'aio/content/examples/http/**/{*,.*}',
|
||||
'aio/content/images/guide/http/**/{*,.*}'
|
||||
])
|
||||
@@ -848,6 +865,7 @@ groups:
|
||||
'aio/content/tutorial/**/{*,.*}',
|
||||
'aio/content/images/guide/toh/**/{*,.*}',
|
||||
'aio/content/demos/first-app/**/{*,.*}',
|
||||
'aio/content/examples/first-app-*/**/{*,.*}',
|
||||
'aio/content/examples/toh-pt0/**/{*,.*}',
|
||||
'aio/content/examples/toh-pt1/**/{*,.*}',
|
||||
'aio/content/examples/toh-pt2/**/{*,.*}',
|
||||
|
||||
@@ -1,24 +1,144 @@
|
||||
<a name="15.1.0-next.3"></a>
|
||||
# 15.1.0-next.3 (2022-12-14)
|
||||
<a name="15.1.3"></a>
|
||||
# 15.1.3 (2023-02-02)
|
||||
### animations
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [c86484507f](https://github.com/angular/angular/commit/c86484507fdc0a44b3d20ea8b988b23f25ad9ac2) | fix | fix incorrect handling of camel-case css properties ([#48436](https://github.com/angular/angular/pull/48436)) |
|
||||
| [d36dfd4b62](https://github.com/angular/angular/commit/d36dfd4b626ff4c5894ca67136f71dd1f7f56e3e) | fix | fix non-animatable warnings for easing ([#48583](https://github.com/angular/angular/pull/48583)) |
|
||||
### common
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [a334e4efbe](https://github.com/angular/angular/commit/a334e4efbe9380776e574f745390901552df771e) | fix | warn if using ngSrcset without a configured image loader ([#48804](https://github.com/angular/angular/pull/48804)) |
|
||||
### compiler
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [171b4d4640](https://github.com/angular/angular/commit/171b4d46407e7c2860fdce4a5196fd6a34b455f0) | fix | incorrect code when non-null assertion is used after a safe access ([#48801](https://github.com/angular/angular/pull/48801)) |
|
||||
### migrations
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [9e86dd231b](https://github.com/angular/angular/commit/9e86dd231bd0fb818da537191bbe197f15efc44d) | fix | Fixed file format issue with lint ([#48859](https://github.com/angular/angular/pull/48859)) |
|
||||
| [af31f98b00](https://github.com/angular/angular/commit/af31f98b00a5d3decbb39df1f998346b3002b89e) | fix | migration host incorrectly reading empty files ([#48849](https://github.com/angular/angular/pull/48849)) |
|
||||
### platform-server
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [73972c684e](https://github.com/angular/angular/commit/73972c684e214bc0e7c88338e001ff99a14dbcdc) | fix | insert transfer state `script` before other `script` tags ([#48868](https://github.com/angular/angular/pull/48868)) |
|
||||
### router
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [d5b2c249a3](https://github.com/angular/angular/commit/d5b2c249a3b220d0a47413c6e1054fd49d9d8cd8) | fix | Handle routerLink directive on svg anchors. ([#48857](https://github.com/angular/angular/pull/48857)) |
|
||||
## Special Thanks
|
||||
Alan Agius, Besim Gürbüz, Brecht Billiet, Dario Piotrowicz, Dylan Hunn, Iván Navarro, Jessica Janiuk, Kristiyan Kostadinov, Matthieu Riegler, Onkar Ruikar, Payam Valadkhan, Santosh Yadav, Virginia Dooley and Walid Bouguima
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.1.2"></a>
|
||||
# 15.1.2 (2023-01-25)
|
||||
### compiler
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [98ccb57117](https://github.com/angular/angular/commit/98ccb571176632cf4d434e9e54b086bb63601148) | fix | handle css selectors with space after an escaped character. ([#48558](https://github.com/angular/angular/pull/48558)) |
|
||||
### compiler-cli
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [145f848a10](https://github.com/angular/angular/commit/145f848a10b4dc791cbf42b803983357735d5f86) | fix | resolve deprecation warning ([#48812](https://github.com/angular/angular/pull/48812)) |
|
||||
### router
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [a6b10f6e59](https://github.com/angular/angular/commit/a6b10f6e597e666a55ef1cd2aecdf3a309cebad8) | fix | 'createUrlTreeFromSnapshot' with empty paths and named outlets ([#48734](https://github.com/angular/angular/pull/48734)) |
|
||||
## Special Thanks
|
||||
Alan Agius, AleksanderBodurri, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, JoostK, Matthieu Riegler, Paul Gschwendtner, Payam Valadkhan, Virginia Dooley, Yann Thomas LE MOIGNE and dario-piotrowicz
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.1.1"></a>
|
||||
# 15.1.1 (2023-01-18)
|
||||
### common
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [68ce4f6ab4](https://github.com/angular/angular/commit/68ce4f6ab495f78858281b902e6433fe90ed6dbf) | fix | Update `Location` to get a normalized URL valid in case a represented URL starts with the substring equals `APP_BASE_HREF` ([#48489](https://github.com/angular/angular/pull/48489)) |
|
||||
| [032b2bd689](https://github.com/angular/angular/commit/032b2bd689e24ece61e23bfe9a39a11676958b8d) | perf | avoid excessive DOM mutation in NgClass ([#48433](https://github.com/angular/angular/pull/48433)) |
|
||||
### core
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [dd54f6bd96](https://github.com/angular/angular/commit/dd54f6bd963f859d18af90d5b3834c443ec073f9) | fix | makeEnvironmentProviders should accept EnvironmentProviders ([#48720](https://github.com/angular/angular/pull/48720)) |
|
||||
## Special Thanks
|
||||
Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, Jens, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Vladyslav Slipchenko, ced, dario-piotrowicz, mgechev and ノウラ
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.1.0"></a>
|
||||
# 15.1.0 (2023-01-10)
|
||||
## Deprecations
|
||||
### router
|
||||
* `CanLoad` guards in the Router are deprecated. Use `CanMatch`
|
||||
instead.
|
||||
|
||||
* None of the public properties of the Router are meant to be writeable. They should all be configured using other methods, all of which have been documented:
|
||||
|
||||
The following strategies are meant to be configured by registering the
|
||||
application strategy in DI via the `providers` in the root `NgModule` or
|
||||
`bootstrapApplication`:
|
||||
* `routeReuseStrategy`
|
||||
* `titleStrategy`
|
||||
* `urlHandlingStrategy`
|
||||
|
||||
The following options are meant to be configured using the options
|
||||
available in `RouterModule.forRoot` or `provideRouter`.
|
||||
* `onSameUrlNavigation`
|
||||
* `paramsInheritanceStrategy`
|
||||
* `urlUpdateStrategy`
|
||||
* `canceledNavigationResolution`
|
||||
|
||||
The following options are available in `RouterModule.forRoot` but not
|
||||
available in `provideRouter`:
|
||||
* `malformedUriErrorHandler` - This was found to not be used anywhere
|
||||
internally.
|
||||
* `errorHandler` - Developers can instead subscribe to `Router.events`
|
||||
and filter for `NavigationError`.
|
||||
|
||||
### common
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [fe50813664](https://github.com/angular/angular/commit/fe50813664809a1177132a77bd2a316ad0858b9e) | feat | Add BrowserPlatformLocation to the public API ([#48488](https://github.com/angular/angular/pull/48488)) |
|
||||
| [e362214924](https://github.com/angular/angular/commit/e362214924dbb784e5bd0efd96530134f8c91d32) | fix | Fix TestBed.overrideProvider type to include multi ([#48424](https://github.com/angular/angular/pull/48424)) |
|
||||
### compiler-cli
|
||||
| [2f4f0638c7](https://github.com/angular/angular/commit/2f4f0638c74dccfc2d0522f67ab226d3227c0566) | fix | Add data attribtue to NgOptimizedImage ([#48497](https://github.com/angular/angular/pull/48497)) |
|
||||
### compiler
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [a6849f27af](https://github.com/angular/angular/commit/a6849f27af129588091f635c6ae7a326241344fc) | fix | evaluate const tuple types statically ([#48091](https://github.com/angular/angular/pull/48091)) |
|
||||
| [a532d71975](https://github.com/angular/angular/commit/a532d71975bef463223fd5d8322e3140760c9134) | feat | allow self-closing tags on custom elements ([#48535](https://github.com/angular/angular/pull/48535)) |
|
||||
| [33f35b04ef](https://github.com/angular/angular/commit/33f35b04ef0f32f25624a6be59f8635675e3e131) | fix | type-only symbols incorrectly retained when downlevelling custom decorators ([#48638](https://github.com/angular/angular/pull/48638)) |
|
||||
### core
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [6acae1477a](https://github.com/angular/angular/commit/6acae1477a212bbd85d0670913c2925fa3bc0c24) | feat | Add `TestBed.runInInjectionContext` to help test functions which use `inject` ([#47955](https://github.com/angular/angular/pull/47955)) |
|
||||
| [38421578a2](https://github.com/angular/angular/commit/38421578a2573bcbc86c927ed4015e20fc39f04a) | feat | Make the `isStandalone()` function available in public API ([#48114](https://github.com/angular/angular/pull/48114)) |
|
||||
| [dd42974b07](https://github.com/angular/angular/commit/dd42974b070b068135c1bc34072486ae440e45e0) | feat | support TypeScript 4.9 ([#48005](https://github.com/angular/angular/pull/48005)) |
|
||||
### forms
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [8aa8b4b77c](https://github.com/angular/angular/commit/8aa8b4b77cefcdd400ec9767b946b295ef42a066) | fix | Form provider FormsModule.withConfig return a FormsModule ([#48526](https://github.com/angular/angular/pull/48526)) |
|
||||
### language-service
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [5f0b53c735](https://github.com/angular/angular/commit/5f0b53c7352f19480185c6b5c769e5012a2d2faa) | feat | Allow auto-imports to suggest multiple possible imports. ([#47787](https://github.com/angular/angular/pull/47787)) |
|
||||
| [ce8160ecb2](https://github.com/angular/angular/commit/ce8160ecb28d6765d438eb65035835984eb956ec) | fix | Prevent crashes on unemitable references ([#47938](https://github.com/angular/angular/pull/47938)) |
|
||||
### localize
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [a1a8e91eca](https://github.com/angular/angular/commit/a1a8e91ecaded6a2e4d700109a26d3117ad77c9c) | fix | add triple slash type reference on `@angular/localize` on `ng add ([#48502](https://github.com/angular/angular/pull/48502)) |
|
||||
### migrations
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [cc284afbbc](https://github.com/angular/angular/commit/cc284afbbc33b91884882204c5958a44a5d11392) | fix | combine newly-added imports in import manager ([#48620](https://github.com/angular/angular/pull/48620)) |
|
||||
### router
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [228e992db7](https://github.com/angular/angular/commit/228e992db75bd7a2213b4596e6e2a8696578aa19) | docs | Deprecate canLoad guards in favor of canMatch ([#48180](https://github.com/angular/angular/pull/48180)) |
|
||||
| [0a8b8a66cd](https://github.com/angular/angular/commit/0a8b8a66cdfb86586811c79bec938b3ab7215e8f) | docs | Deprecate public members of Router that are meant to be configured elsewhere ([#48006](https://github.com/angular/angular/pull/48006)) |
|
||||
| [332461bd0c](https://github.com/angular/angular/commit/332461bd0c5f5734a9d7f051f0f4c6c173dd87c9) | feat | Add ability to override `onSameUrlNavigation` default per-navigation ([#48050](https://github.com/angular/angular/pull/48050)) |
|
||||
| [f58ad86e51](https://github.com/angular/angular/commit/f58ad86e51817f83ff18db790a347528262b850b) | feat | Add feature provider for enabling hash navigation ([#48301](https://github.com/angular/angular/pull/48301)) |
|
||||
| [73f03ad2d2](https://github.com/angular/angular/commit/73f03ad2d29811dda2ee03c5f18c79ebc9519c0b) | feat | Add new NavigationSkipped event for ignored navigations ([#48024](https://github.com/angular/angular/pull/48024)) |
|
||||
| [3fe75710d9](https://github.com/angular/angular/commit/3fe75710d97a0f3224b2b09c45d9b8a9ad6efe91) | fix | page refresh should not destroy history state ([#48540](https://github.com/angular/angular/pull/48540)) |
|
||||
## Special Thanks
|
||||
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, BrowserPerson, Jens, Jessica Janiuk, Joey Perrott, JoostK, Konstantin Kharitonov, Lukas Matta, Matthieu Riegler, Piotr Kowalski, Virginia Dooley, Yannick Baron, dario-piotrowicz, lsst25, piyush132000 and why520crazy
|
||||
Alan Agius, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Doug Parker, Dylan Hunn, George Kalpakas, Greg Magolan, Jessica Janiuk, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Renan Ferro, Tim Gates, Vadim, Virginia Dooley, ced, mgechev, piyush132000, robertIsaac and sr5434
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
@@ -41,32 +161,6 @@ Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Brows
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.1.0-next.2"></a>
|
||||
# 15.1.0-next.2 (2022-12-07)
|
||||
### common
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [8e52ca2714](https://github.com/angular/angular/commit/8e52ca271496b0feebf66b2dc7c8f396b73d61a0) | fix | Don't generate srcsets with very large sources ([#47997](https://github.com/angular/angular/pull/47997)) |
|
||||
| [f8ecc194e9](https://github.com/angular/angular/commit/f8ecc194e93bf9f80af0cb0e77032341bf2f9886) | fix | Update `Location` to support base href containing `origin` ([#48327](https://github.com/angular/angular/pull/48327)) |
|
||||
### compiler
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [4c023956d8](https://github.com/angular/angular/commit/4c023956d8dd05d8455612dff185a7e7918c9fed) | fix | make sure selectors inside container queries are correctly scoped ([#48353](https://github.com/angular/angular/pull/48353)) |
|
||||
### compiler-cli
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [27eaded62d](https://github.com/angular/angular/commit/27eaded62dbe059fc9ac02cfa7f53ccf8aebccbf) | fix | Produce diagnostic rather than crash when using invalid hostDirective ([#48314](https://github.com/angular/angular/pull/48314)) |
|
||||
### core
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [38421578a2](https://github.com/angular/angular/commit/38421578a2573bcbc86c927ed4015e20fc39f04a) | feat | Make the `isStandalone()` function available in public API ([#48114](https://github.com/angular/angular/pull/48114)) |
|
||||
| [dd42974b07](https://github.com/angular/angular/commit/dd42974b070b068135c1bc34072486ae440e45e0) | feat | support TypeScript 4.9 ([#48005](https://github.com/angular/angular/pull/48005)) |
|
||||
| [5f9c7ceb90](https://github.com/angular/angular/commit/5f9c7ceb907be47dff3e203dd837fd6ee9133fcb) | fix | unable to inject ChangeDetectorRef inside host directives ([#48355](https://github.com/angular/angular/pull/48355)) |
|
||||
## Special Thanks
|
||||
Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Joey Perrott, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz, piyush132000 and sr5434
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.0.3"></a>
|
||||
# 15.0.3 (2022-12-07)
|
||||
### common
|
||||
@@ -91,26 +185,6 @@ Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Derek Cormier
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.1.0-next.1"></a>
|
||||
# 15.1.0-next.1 (2022-11-30)
|
||||
## Deprecations
|
||||
### router
|
||||
- CanLoad guards in the Router are deprecated. Use CanMatch
|
||||
instead.
|
||||
### compiler-cli
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [7d88700933](https://github.com/angular/angular/commit/7d8870093313575d89c8abe584c43d6fa8105fc8) | fix | accept inheriting the constructor from a class in a library ([#48156](https://github.com/angular/angular/pull/48156)) |
|
||||
### router
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [228e992db7](https://github.com/angular/angular/commit/228e992db75bd7a2213b4596e6e2a8696578aa19) | docs | Deprecate canLoad guards in favor of canMatch ([#48180](https://github.com/angular/angular/pull/48180)) |
|
||||
| [332461bd0c](https://github.com/angular/angular/commit/332461bd0c5f5734a9d7f051f0f4c6c173dd87c9) | feat | Add ability to override `onSameUrlNavigation` default per-navigation ([#48050](https://github.com/angular/angular/pull/48050)) |
|
||||
## Special Thanks
|
||||
Alan Agius, Andrew Scott, Aristeidis Bampakos, Bob Watson, Derek Cormier, Dylan Hunn, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Rokas Brazdžionis and piyush132000
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.0.2"></a>
|
||||
# 15.0.2 (2022-11-30)
|
||||
### compiler-cli
|
||||
@@ -149,65 +223,6 @@ Alan Agius, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn,
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="15.1.0-next.0"></a>
|
||||
# 15.1.0-next.0 (2022-11-22)
|
||||
## Deprecations
|
||||
### router
|
||||
- router writable properties
|
||||
|
||||
The following strategies are meant to be configured by registering the
|
||||
application strategy in DI via the `providers` in the root `NgModule` or
|
||||
`bootstrapApplication`:
|
||||
* `routeReuseStrategy`
|
||||
* `titleStrategy`
|
||||
* `urlHandlingStrategy`
|
||||
|
||||
The following options are meant to be configured using the options
|
||||
available in `RouterModule.forRoot` or `provideRouter`.
|
||||
* `onSameUrlNavigation`
|
||||
* `paramsInheritanceStrategy`
|
||||
* `urlUpdateStrategy`
|
||||
* `canceledNavigationResolution`
|
||||
|
||||
The following options are available in `RouterModule.forRoot` but not
|
||||
available in `provideRouter`:
|
||||
* `malformedUriErrorHandler` - This was found to not be used anywhere
|
||||
internally.
|
||||
* `errorHandler` - Developers can instead subscribe to `Router.events`
|
||||
and filter for `NavigationError`.
|
||||
### common
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [b0a62bea47](https://github.com/angular/angular/commit/b0a62bea475480768f2cffeb134960dc1165181c) | fix | Fix MockPlatformLocation events and missing onPopState implementation ([#48113](https://github.com/angular/angular/pull/48113)) |
|
||||
### core
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [6acae1477a](https://github.com/angular/angular/commit/6acae1477a212bbd85d0670913c2925fa3bc0c24) | feat | Add `TestBed.runInInjectionContext` to help test functions which use `inject` ([#47955](https://github.com/angular/angular/pull/47955)) |
|
||||
### forms
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [0329c13e95](https://github.com/angular/angular/commit/0329c13e95127fd6f0044b6809b9bccb27f3cb91) | fix | don't mutate validators array ([#47830](https://github.com/angular/angular/pull/47830)) |
|
||||
| [d321880440](https://github.com/angular/angular/commit/d3218804401fb35d8da1de91960bbdf9ab0aa823) | fix | FormBuilder.group return right type with shorthand parameters. ([#48084](https://github.com/angular/angular/pull/48084)) |
|
||||
### language-service
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [5f0b53c735](https://github.com/angular/angular/commit/5f0b53c7352f19480185c6b5c769e5012a2d2faa) | feat | Allow auto-imports to suggest multiple possible imports. ([#47787](https://github.com/angular/angular/pull/47787)) |
|
||||
| [fd2eea5961](https://github.com/angular/angular/commit/fd2eea59613ab3cdde871046b6086216d77a386e) | fix | correctly handle host directive inputs/outputs ([#48147](https://github.com/angular/angular/pull/48147)) |
|
||||
| [ce8160ecb2](https://github.com/angular/angular/commit/ce8160ecb28d6765d438eb65035835984eb956ec) | fix | Prevent crashes on unemitable references ([#47938](https://github.com/angular/angular/pull/47938)) |
|
||||
| [764fa3d9c3](https://github.com/angular/angular/commit/764fa3d9c37eb70acd21879296ec039de07173ea) | fix | update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build ([#48120](https://github.com/angular/angular/pull/48120)) |
|
||||
### router
|
||||
| Commit | Type | Description |
|
||||
| -- | -- | -- |
|
||||
| [0a8b8a66cd](https://github.com/angular/angular/commit/0a8b8a66cdfb86586811c79bec938b3ab7215e8f) | docs | Deprecate public members of Router that are meant to be configured elsewhere ([#48006](https://github.com/angular/angular/pull/48006)) |
|
||||
| [73f03ad2d2](https://github.com/angular/angular/commit/73f03ad2d29811dda2ee03c5f18c79ebc9519c0b) | feat | Add new NavigationSkipped event for ignored navigations ([#48024](https://github.com/angular/angular/pull/48024)) |
|
||||
| [b51929a394](https://github.com/angular/angular/commit/b51929a394acaa129699bc72e34882b7e577dd7f) | fix | correct type of nextState parameter in canDeactivate ([#48038](https://github.com/angular/angular/pull/48038)) |
|
||||
| [1df0ed7d6e](https://github.com/angular/angular/commit/1df0ed7d6e636d921ad617465c3956dc1b6292eb) | fix | Ensure renavigating in component init works with enabledBlocking ([#48063](https://github.com/angular/angular/pull/48063)) |
|
||||
| [1976e37475](https://github.com/angular/angular/commit/1976e37475e144d4df27b1558b2acd929bd439be) | fix | restore 'history.state' on popstate even if navigationId missing ([#48033](https://github.com/angular/angular/pull/48033)) |
|
||||
## Special Thanks
|
||||
Alan Agius, Andrew Kushnir, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, JiaLiPassion, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr, Wooshaah and mgechev
|
||||
|
||||
<!-- CHANGELOG SPLIT MARKER -->
|
||||
|
||||
<a name="12.2.17"></a>
|
||||
# 12.2.17 (2022-11-22)
|
||||
## Breaking Changes
|
||||
|
||||
@@ -52,35 +52,9 @@ http_archive(
|
||||
# Fetch Aspect lib for utilities like write_source_files
|
||||
http_archive(
|
||||
name = "aspect_bazel_lib",
|
||||
sha256 = "a7bfc7aed7b86a4caaba382116e0214ebbaa623f393a9e716d87a3e1bab29d78",
|
||||
strip_prefix = "bazel-lib-1.19.0",
|
||||
url = "https://github.com/aspect-build/bazel-lib/archive/refs/tags/v1.19.0.tar.gz",
|
||||
)
|
||||
|
||||
# Download cli source from angular/cli-builds for doc generation at a specific tag or commit.
|
||||
# If the ref is a commit sha, use the full sha instead of the abbreviated form. Tags, which
|
||||
# hold an abbreviated sha by convention in cli-builds, can continue to use the short form.
|
||||
CLI_SRC_REF = "f0163d17d581f7ea59ada47420599264060db77a"
|
||||
|
||||
http_archive(
|
||||
name = "angular_cli_src",
|
||||
build_file_content = """
|
||||
# Include files used in doc generation
|
||||
filegroup(
|
||||
name = "files_for_docgen",
|
||||
srcs = glob([
|
||||
"help/**/*.json",
|
||||
"package.json",
|
||||
]),
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
""",
|
||||
# Run the following command to calculate the sha256, substituting the CLI_SRC_REF
|
||||
# wget -O- -q https://github.com/angular/cli-builds/archive/{CLI_SRC_REF}.tar.gz | sha256sum
|
||||
# Alternatively, just remove the parameter and bazel debug will output the sha as a suggestion.
|
||||
sha256 = "952a62ce2b040af74fe3ae4d0bef5eaca505b7986df3bcf776e4ce84628cd3ed",
|
||||
strip_prefix = "cli-builds-%s" % CLI_SRC_REF,
|
||||
url = "https://github.com/angular/cli-builds/archive/%s.tar.gz" % CLI_SRC_REF,
|
||||
sha256 = "4b2e774387bae6242879820086b7b738d49bf3d0659522ea5d9363be01a27582",
|
||||
strip_prefix = "bazel-lib-1.23.2",
|
||||
url = "https://github.com/aspect-build/bazel-lib/archive/refs/tags/v1.23.2.tar.gz",
|
||||
)
|
||||
|
||||
# Setup the Node.js toolchain.
|
||||
@@ -220,10 +194,10 @@ cldr_xml_data_repository(
|
||||
# sass rules
|
||||
http_archive(
|
||||
name = "io_bazel_rules_sass",
|
||||
sha256 = "618f0b7aae019c149ac2ff4142a66c110de116fb5c173dbeccedbaee06fc5f6d",
|
||||
strip_prefix = "rules_sass-a2fce75bcf103750f7accbf7f966ad48bcbca2d4",
|
||||
sha256 = "425d93db6667060db581aaaace7b77b3d7e114b41f36a0c5b86e5e9497832174",
|
||||
strip_prefix = "rules_sass-901d22c63864aa781b902b14c55c423117469286",
|
||||
urls = [
|
||||
"https://github.com/bazelbuild/rules_sass/archive/a2fce75bcf103750f7accbf7f966ad48bcbca2d4.zip",
|
||||
"https://github.com/bazelbuild/rules_sass/archive/901d22c63864aa781b902b14c55c423117469286.zip",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ filegroup(
|
||||
name = "content",
|
||||
srcs = glob(
|
||||
["**"],
|
||||
exclude = ["BUILD.bazel"],
|
||||
exclude = [
|
||||
"BUILD.bazel",
|
||||
],
|
||||
),
|
||||
)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "cli",
|
||||
srcs = glob(
|
||||
["**"],
|
||||
exclude = [
|
||||
"BUILD.bazel",
|
||||
],
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"name": "add",
|
||||
"command": "ng add <collection>",
|
||||
"shortDescription": "Adds support for an external library to your project.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/add/long-description.md",
|
||||
"longDescription": "Adds the npm package for a published library to your workspace, and configures\nthe project in the current working directory to use that library, as specified by the library's schematic.\nFor example, adding `@angular/pwa` configures your project for PWA support:\n\n```bash\nng add @angular/pwa\n```\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "collection",
|
||||
"type": "string",
|
||||
"description": "The package to be added.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "defaults",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable interactive input prompts for options with a default."
|
||||
},
|
||||
{
|
||||
"name": "dry-run",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Run through and reports activity without writing out results."
|
||||
},
|
||||
{
|
||||
"name": "force",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Force overwriting of existing files."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "interactive",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Enable interactive input prompts."
|
||||
},
|
||||
{
|
||||
"name": "registry",
|
||||
"type": "string",
|
||||
"description": "The NPM registry to use."
|
||||
},
|
||||
{
|
||||
"name": "skip-confirmation",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Skip asking a confirmation prompt before installing and executing the package. Ensure package name is correct prior to using this option."
|
||||
},
|
||||
{
|
||||
"name": "verbose",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Display additional details about internal operations during execution."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"name": "analytics",
|
||||
"command": "ng analytics",
|
||||
"shortDescription": "Configures the gathering of Angular CLI usage metrics.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/analytics/long-description.md",
|
||||
"longDescription": "You can help the Angular Team to prioritize features and improvements by permitting the Angular team to send command-line command usage statistics to Google.\nThe Angular Team does not collect usage statistics unless you explicitly opt in. When installing the Angular CLI you are prompted to allow global collection of usage statistics.\nIf you say no or skip the prompt, no data is collected.\n\n### What is collected?\n\nUsage analytics include the commands and selected flags for each execution.\nUsage analytics may include the following information:\n\n- Your operating system \\(macOS, Linux distribution, Windows\\) and its version.\n- Package manager name and version \\(local version only\\).\n- Node.js version \\(local version only\\).\n- Angular CLI version \\(local version only\\).\n- Command name that was run.\n- Workspace information, the number of application and library projects.\n- For schematics commands \\(add, generate and new\\), the schematic collection and name and a list of selected flags.\n- For build commands \\(build, serve\\), the builder name, the number and size of bundles \\(initial and lazy\\), compilation units, the time it took to build and rebuild, and basic Angular-specific API usage.\n\nOnly Angular owned and developed schematics and builders are reported.\nThird-party schematics and builders do not send data to the Angular Team.\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
}
|
||||
],
|
||||
"subcommands": [
|
||||
{
|
||||
"name": "disable",
|
||||
"command": "disable",
|
||||
"shortDescription": "Disables analytics gathering and reporting for the user.",
|
||||
"options": [
|
||||
{
|
||||
"name": "global",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Configure analytics gathering and reporting globally in the caller's home directory."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"off"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "enable",
|
||||
"command": "enable",
|
||||
"shortDescription": "Enables analytics gathering and reporting for the user.",
|
||||
"options": [
|
||||
{
|
||||
"name": "global",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Configure analytics gathering and reporting globally in the caller's home directory."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"on"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "info",
|
||||
"command": "info",
|
||||
"shortDescription": "Prints analytics gathering and reporting configuration in the console.",
|
||||
"options": [],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "prompt",
|
||||
"command": "prompt",
|
||||
"shortDescription": "Prompts the user to set the analytics gathering status interactively.",
|
||||
"options": [
|
||||
{
|
||||
"name": "global",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Configure analytics gathering and reporting globally in the caller's home directory."
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"branchName": "refs/heads/15.1.x",
|
||||
"sha": "1754242e3fcd7dd4a099a9e2c3633f630256d9b0"
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
{
|
||||
"name": "build",
|
||||
"command": "ng build [project]",
|
||||
"shortDescription": "Compiles an Angular application or library into an output directory named dist/ at the given output path.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/build/long-description.md",
|
||||
"longDescription": "The command can be used to build a project of type \"application\" or \"library\".\nWhen used to build a library, a different builder is invoked, and only the `ts-config`, `configuration`, and `watch` options are applied.\nAll other options apply only to building applications.\n\nThe application builder uses the [webpack](https://webpack.js.org/) build tool, with default configuration options specified in the workspace configuration file (`angular.json`) or with a named alternative configuration.\nA \"development\" configuration is created by default when you use the CLI to create the project, and you can use that configuration by specifying the `--configuration development`.\n\nThe configuration options generally correspond to the command options.\nYou can override individual configuration defaults by specifying the corresponding options on the command line.\nThe command can accept option names given in either dash-case or camelCase.\nNote that in the configuration file, you must specify names in camelCase.\n\nSome additional options can only be set through the configuration file,\neither by direct editing or with the `ng config` command.\nThese include `assets`, `styles`, and `scripts` objects that provide runtime-global resources to include in the project.\nResources in CSS, such as images and fonts, are automatically written and fingerprinted at the root of the output folder.\n\nFor further details, see [Workspace Configuration](guide/workspace-config).\n",
|
||||
"aliases": [
|
||||
"b"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "allowed-common-js-dependencies",
|
||||
"type": "array",
|
||||
"description": "A list of CommonJS packages that are allowed to be used without a build time warning."
|
||||
},
|
||||
{
|
||||
"name": "aot",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Build using Ahead of Time compilation."
|
||||
},
|
||||
{
|
||||
"name": "base-href",
|
||||
"type": "string",
|
||||
"description": "Base url for the application being built."
|
||||
},
|
||||
{
|
||||
"name": "build-optimizer",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Enables advanced build optimizations when using the 'aot' option."
|
||||
},
|
||||
{
|
||||
"name": "common-chunk",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Generate a seperate bundle containing code used across multiple bundles."
|
||||
},
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "cross-origin",
|
||||
"type": "string",
|
||||
"default": "none",
|
||||
"enum": [
|
||||
"none",
|
||||
"anonymous",
|
||||
"use-credentials"
|
||||
],
|
||||
"description": "Define the crossorigin attribute setting of elements that provide CORS support."
|
||||
},
|
||||
{
|
||||
"name": "delete-output-path",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Delete the output path before building."
|
||||
},
|
||||
{
|
||||
"name": "deploy-url",
|
||||
"type": "string",
|
||||
"deprecated": "Use \"baseHref\" option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url.",
|
||||
"description": "URL where files will be deployed."
|
||||
},
|
||||
{
|
||||
"name": "extract-licenses",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Extract all licenses in a separate file."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "i18n-duplicate-translation",
|
||||
"type": "string",
|
||||
"default": "warning",
|
||||
"enum": [
|
||||
"warning",
|
||||
"error",
|
||||
"ignore"
|
||||
],
|
||||
"description": "How to handle duplicate translations for i18n."
|
||||
},
|
||||
{
|
||||
"name": "i18n-missing-translation",
|
||||
"type": "string",
|
||||
"default": "warning",
|
||||
"enum": [
|
||||
"warning",
|
||||
"error",
|
||||
"ignore"
|
||||
],
|
||||
"description": "How to handle missing translations for i18n."
|
||||
},
|
||||
{
|
||||
"name": "index",
|
||||
"type": "string",
|
||||
"description": "Configures the generation of the application's HTML index."
|
||||
},
|
||||
{
|
||||
"name": "inline-style-language",
|
||||
"type": "string",
|
||||
"default": "css",
|
||||
"enum": [
|
||||
"css",
|
||||
"less",
|
||||
"sass",
|
||||
"scss"
|
||||
],
|
||||
"description": "The stylesheet language to use for the application's inline component styles."
|
||||
},
|
||||
{
|
||||
"name": "localize",
|
||||
"type": "boolean",
|
||||
"description": "Translate the bundles in one or more locales."
|
||||
},
|
||||
{
|
||||
"name": "main",
|
||||
"type": "string",
|
||||
"description": "The full path for the main entry point to the app, relative to the current workspace."
|
||||
},
|
||||
{
|
||||
"name": "named-chunks",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Use file name for lazy loaded chunks."
|
||||
},
|
||||
{
|
||||
"name": "ngsw-config-path",
|
||||
"type": "string",
|
||||
"description": "Path to ngsw-config.json."
|
||||
},
|
||||
{
|
||||
"name": "optimization",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration."
|
||||
},
|
||||
{
|
||||
"name": "output-hashing",
|
||||
"type": "string",
|
||||
"default": "none",
|
||||
"enum": [
|
||||
"none",
|
||||
"all",
|
||||
"media",
|
||||
"bundles"
|
||||
],
|
||||
"description": "Define the output filename cache-busting hashing mode."
|
||||
},
|
||||
{
|
||||
"name": "output-path",
|
||||
"type": "string",
|
||||
"description": "The full path for the new output directory, relative to the current workspace.\nBy default, writes output to a folder named dist/ in the current project."
|
||||
},
|
||||
{
|
||||
"name": "poll",
|
||||
"type": "number",
|
||||
"description": "Enable and define the file watching poll time period in milliseconds."
|
||||
},
|
||||
{
|
||||
"name": "polyfills",
|
||||
"type": "string",
|
||||
"description": "Polyfills to be included in the build."
|
||||
},
|
||||
{
|
||||
"name": "preserve-symlinks",
|
||||
"type": "boolean",
|
||||
"description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Log progress to the console while building."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "resources-output-path",
|
||||
"type": "string",
|
||||
"description": "The path where style resources will be placed, relative to outputPath."
|
||||
},
|
||||
{
|
||||
"name": "service-worker",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Generates a service worker config for production builds."
|
||||
},
|
||||
{
|
||||
"name": "source-map",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration."
|
||||
},
|
||||
{
|
||||
"name": "stats-json",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'."
|
||||
},
|
||||
{
|
||||
"name": "subresource-integrity",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Enables the use of subresource integrity validation."
|
||||
},
|
||||
{
|
||||
"name": "ts-config",
|
||||
"type": "string",
|
||||
"description": "The full path for the TypeScript configuration file, relative to the current workspace."
|
||||
},
|
||||
{
|
||||
"name": "vendor-chunk",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Generate a seperate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time."
|
||||
},
|
||||
{
|
||||
"name": "verbose",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Adds more details to output logging."
|
||||
},
|
||||
{
|
||||
"name": "watch",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Run build when files change."
|
||||
},
|
||||
{
|
||||
"name": "web-worker-ts-config",
|
||||
"type": "string",
|
||||
"description": "TypeScript configuration for Web Worker modules."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"name": "cache",
|
||||
"command": "ng cache",
|
||||
"shortDescription": "Configure persistent disk cache and retrieve cache statistics.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/cache/long-description.md",
|
||||
"longDescription": "Angular CLI saves a number of cachable operations on disk by default.\n\nWhen you re-run the same build, the build system restores the state of the previous build and re-uses previously performed operations, which decreases the time taken to build and test your applications and libraries.\n\nTo amend the default cache settings, add the `cli.cache` object to your [Workspace Configuration](guide/workspace-config).\nThe object goes under `cli.cache` at the top level of the file, outside the `projects` sections.\n\n```jsonc\n{\n \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n \"version\": 1,\n \"cli\": {\n \"cache\": {\n // ...\n }\n },\n \"projects\": {}\n}\n```\n\nFor more information, see [cache options](guide/workspace-config#cache-options).\n\n### Cache environments\n\nBy default, disk cache is only enabled for local environments. The value of environment can be one of the following:\n\n- `all` - allows disk cache on all machines.\n- `local` - allows disk cache only on development machines.\n- `ci` - allows disk cache only on continuous integration (CI) systems.\n\nTo change the environment setting to `all`, run the following command:\n\n```bash\nng config cli.cache.environment all\n```\n\nFor more information, see `environment` in [cache options](guide/workspace-config#cache-options).\n\n<div class=\"alert is-helpful\">\n\nThe Angular CLI checks for the presence and value of the `CI` environment variable to determine in which environment it is running.\n\n</div>\n\n### Cache path\n\nBy default, `.angular/cache` is used as a base directory to store cache results.\n\nTo change this path to `.cache/ng`, run the following command:\n\n```bash\nng config cli.cache.path \".cache/ng\"\n```\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
}
|
||||
],
|
||||
"subcommands": [
|
||||
{
|
||||
"name": "clean",
|
||||
"command": "clean",
|
||||
"shortDescription": "Deletes persistent disk cache from disk.",
|
||||
"options": [],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "disable",
|
||||
"command": "disable",
|
||||
"shortDescription": "Disables persistent disk cache for all projects in the workspace.",
|
||||
"options": [],
|
||||
"aliases": [
|
||||
"off"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "enable",
|
||||
"command": "enable",
|
||||
"shortDescription": "Enables disk cache for all projects in the workspace.",
|
||||
"options": [],
|
||||
"aliases": [
|
||||
"on"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "info",
|
||||
"command": "info",
|
||||
"shortDescription": "Prints persistent disk cache configuration and statistics in the console.",
|
||||
"options": [],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "completion",
|
||||
"command": "ng completion",
|
||||
"shortDescription": "Set up Angular CLI autocompletion for your terminal.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/completion/long-description.md",
|
||||
"longDescription": "Setting up autocompletion configures your terminal, so pressing the `<TAB>` key while in the middle\nof typing will display various commands and options available to you. This makes it very easy to\ndiscover and use CLI commands without lots of memorization.\n\n\n\n## Automated setup\n\nThe CLI should prompt and ask to set up autocompletion for you the first time you use it (v14+).\nSimply answer \"Yes\" and the CLI will take care of the rest.\n\n```\n$ ng serve\n? Would you like to enable autocompletion? This will set up your terminal so pressing TAB while typing Angular CLI commands will show possible options and autocomplete arguments. (Enabling autocompletion will modify configuration files in your home directory.) Yes\nAppended `source <(ng completion script)` to `/home/my-username/.bashrc`. Restart your terminal or run:\n\nsource <(ng completion script)\n\nto autocomplete `ng` commands.\n\n# Serve output...\n```\n\nIf you already refused the prompt, it won't ask again. But you can run `ng completion` to\ndo the same thing automatically.\n\nThis modifies your terminal environment to load Angular CLI autocompletion, but can't update your\ncurrent terminal session. Either restart it or run `source <(ng completion script)` directly to\nenable autocompletion in your current session.\n\nTest it out by typing `ng ser<TAB>` and it should autocomplete to `ng serve`. Ambiguous arguments\nwill show all possible options and their documentation, such as `ng generate <TAB>`.\n\n## Manual setup\n\nSome users may have highly customized terminal setups, possibly with configuration files checked\ninto source control with an opinionated structure. `ng completion` only ever appends Angular's setup\nto an existing configuration file for your current shell, or creates one if none exists. If you want\nmore control over exactly where this configuration lives, you can manually set it up by having your\nshell run at startup:\n\n```bash\nsource <(ng completion script)\n```\n\nThis is equivalent to what `ng completion` will automatically set up, and gives power users more\nflexibility in their environments when desired.\n\n## Platform support\n\nAngular CLI supports autocompletion for the Bash and Zsh shells on MacOS and Linux operating\nsystems. On Windows, Git Bash and [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/)\nusing Bash or Zsh are supported.\n\n## Global install\n\nAutocompletion works by configuring your terminal to invoke the Angular CLI on startup to load the\nsetup script. This means the terminal must be able to find and execute the Angular CLI, typically\nthrough a global install that places the binary on the user's `$PATH`. If you get\n`command not found: ng`, make sure the CLI is installed globally which you can do with the `-g`\nflag:\n\n```bash\nnpm install -g @angular/cli\n```\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
}
|
||||
],
|
||||
"subcommands": [
|
||||
{
|
||||
"name": "script",
|
||||
"command": "script",
|
||||
"shortDescription": "Generate a bash and zsh real-time type-ahead autocompletion script.",
|
||||
"options": [],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "config",
|
||||
"command": "ng config [json-path] [value]",
|
||||
"shortDescription": "Retrieves or sets Angular configuration values in the angular.json file for the workspace.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/config/long-description.md",
|
||||
"longDescription": "A workspace has a single CLI configuration file, `angular.json`, at the top level.\nThe `projects` object contains a configuration object for each project in the workspace.\n\nYou can edit the configuration directly in a code editor,\nor indirectly on the command line using this command.\n\nThe configurable property names match command option names,\nexcept that in the configuration file, all names must use camelCase,\nwhile on the command line options can be given dash-case.\n\nFor further details, see [Workspace Configuration](guide/workspace-config).\n\nFor configuration of CLI usage analytics, see [ng analytics](cli/analytics).\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "global",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Access the global configuration in the caller's home directory."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "json-path",
|
||||
"type": "string",
|
||||
"description": "The configuration key to set or query, in JSON path format. For example: \"a[3].foo.bar[2]\". If no new value is provided, returns the current value of this key.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "string",
|
||||
"description": "If provided, a new value for the given configuration key.",
|
||||
"positional": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "deploy",
|
||||
"command": "ng deploy [project]",
|
||||
"shortDescription": "Invokes the deploy builder for a specified project or for the default project in the workspace.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/deploy/long-description.md",
|
||||
"longDescription": "The command takes an optional project name, as specified in the `projects` section of the `angular.json` workspace configuration file.\nWhen a project name is not supplied, executes the `deploy` builder for the default project.\n\nTo use the `ng deploy` command, use `ng add` to add a package that implements deployment capabilities to your favorite platform.\nAdding the package automatically updates your workspace configuration, adding a deployment\n[CLI builder](guide/cli-builder).\nFor example:\n\n```json\n\"projects\": {\n \"my-project\": {\n ...\n \"architect\": {\n ...\n \"deploy\": {\n \"builder\": \"@angular/fire:deploy\",\n \"options\": {}\n }\n }\n }\n}\n```\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "doc",
|
||||
"command": "ng doc <keyword>",
|
||||
"shortDescription": "Opens the official Angular documentation (angular.io) in a browser, and searches for a given keyword.",
|
||||
"aliases": [
|
||||
"d"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "keyword",
|
||||
"type": "string",
|
||||
"description": "The keyword to search for, as provided in the search bar in angular.io.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "search",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"s"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Search all of angular.io. Otherwise, searches only API reference documentation."
|
||||
},
|
||||
{
|
||||
"name": "version",
|
||||
"type": "string",
|
||||
"description": "Contains the version of Angular to use for the documentation. If not provided, the command uses your current Angular core version."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "e2e",
|
||||
"command": "ng e2e [project]",
|
||||
"shortDescription": "Builds and serves an Angular application, then runs end-to-end tests.",
|
||||
"aliases": [
|
||||
"e"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"name": "extract-i18n",
|
||||
"command": "ng extract-i18n [project]",
|
||||
"shortDescription": "Extracts i18n messages from source code.",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "browser-target",
|
||||
"type": "string",
|
||||
"description": "A browser builder target to extract i18n messages in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`."
|
||||
},
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "format",
|
||||
"type": "string",
|
||||
"default": "xlf",
|
||||
"enum": [
|
||||
"xmb",
|
||||
"xlf",
|
||||
"xlif",
|
||||
"xliff",
|
||||
"xlf2",
|
||||
"xliff2",
|
||||
"json",
|
||||
"arb",
|
||||
"legacy-migrate"
|
||||
],
|
||||
"description": "Output format for the generated file."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "out-file",
|
||||
"type": "string",
|
||||
"description": "Name of the file to output."
|
||||
},
|
||||
{
|
||||
"name": "output-path",
|
||||
"type": "string",
|
||||
"description": "Path where output will be placed."
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Log progress to the console."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,933 @@
|
||||
{
|
||||
"name": "generate",
|
||||
"command": "ng generate <schematic>",
|
||||
"shortDescription": "Generates and/or modifies files based on a schematic.",
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "defaults",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable interactive input prompts for options with a default."
|
||||
},
|
||||
{
|
||||
"name": "dry-run",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Run through and reports activity without writing out results."
|
||||
},
|
||||
{
|
||||
"name": "force",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Force overwriting of existing files."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "interactive",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Enable interactive input prompts."
|
||||
},
|
||||
{
|
||||
"name": "schematic",
|
||||
"type": "string",
|
||||
"description": "The [collection:schematic] to run.",
|
||||
"positional": 0
|
||||
}
|
||||
],
|
||||
"subcommands": [
|
||||
{
|
||||
"name": "app-shell",
|
||||
"command": "app-shell",
|
||||
"shortDescription": "Generates an application shell for running a server-side version of an app.",
|
||||
"options": [
|
||||
{
|
||||
"name": "app-id",
|
||||
"type": "string",
|
||||
"default": "serverApp",
|
||||
"description": "The application ID to use in withServerTransition()."
|
||||
},
|
||||
{
|
||||
"name": "main",
|
||||
"type": "string",
|
||||
"default": "main.server.ts",
|
||||
"description": "The name of the main entry-point file."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the related client app."
|
||||
},
|
||||
{
|
||||
"name": "root-module-class-name",
|
||||
"type": "string",
|
||||
"default": "AppServerModule",
|
||||
"description": "The name of the root module class."
|
||||
},
|
||||
{
|
||||
"name": "root-module-file-name",
|
||||
"type": "string",
|
||||
"default": "app.server.module.ts",
|
||||
"description": "The name of the root module file"
|
||||
},
|
||||
{
|
||||
"name": "route",
|
||||
"type": "string",
|
||||
"default": "shell",
|
||||
"description": "Route path used to produce the application shell."
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "application",
|
||||
"command": "application [name]",
|
||||
"shortDescription": "Generates a new basic application definition in the \"projects\" subfolder of the workspace.",
|
||||
"options": [
|
||||
{
|
||||
"name": "inline-style",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"s"
|
||||
],
|
||||
"description": "Include styles inline in the root component.ts file. Only CSS styles can be included inline. Default is false, meaning that an external styles file is created and referenced in the root component.ts file."
|
||||
},
|
||||
{
|
||||
"name": "inline-template",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"t"
|
||||
],
|
||||
"description": "Include template inline in the root component.ts file. Default is false, meaning that an external template file is created and referenced in the root component.ts file. "
|
||||
},
|
||||
{
|
||||
"name": "minimal",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Create a bare-bones project without any testing frameworks. (Use for learning purposes only.)"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the new application.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"p"
|
||||
],
|
||||
"default": "app",
|
||||
"description": "A prefix to apply to generated selectors."
|
||||
},
|
||||
{
|
||||
"name": "project-root",
|
||||
"type": "string",
|
||||
"description": "The root directory of the new application."
|
||||
},
|
||||
{
|
||||
"name": "routing",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Create a routing NgModule."
|
||||
},
|
||||
{
|
||||
"name": "skip-install",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Skip installing dependency packages."
|
||||
},
|
||||
{
|
||||
"name": "skip-package-json",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not add dependencies to the \"package.json\" file."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"S"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the application."
|
||||
},
|
||||
{
|
||||
"name": "strict",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Creates an application with stricter bundle budgets settings."
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"type": "string",
|
||||
"default": "css",
|
||||
"enum": [
|
||||
"css",
|
||||
"scss",
|
||||
"sass",
|
||||
"less"
|
||||
],
|
||||
"description": "The file extension or preprocessor to use for style files."
|
||||
},
|
||||
{
|
||||
"name": "view-encapsulation",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Emulated",
|
||||
"None",
|
||||
"ShadowDom"
|
||||
],
|
||||
"description": "The view encapsulation strategy to use in the new application."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"app"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "class",
|
||||
"command": "class [name]",
|
||||
"shortDescription": "Creates a new, generic class definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the new class.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new class."
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": "string",
|
||||
"description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\"."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"cl"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "component",
|
||||
"command": "component [name]",
|
||||
"shortDescription": "Creates a new, generic component definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "change-detection",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"default": "Default",
|
||||
"enum": [
|
||||
"Default",
|
||||
"OnPush"
|
||||
],
|
||||
"description": "The change detection strategy to use in the new component."
|
||||
},
|
||||
{
|
||||
"name": "display-block",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"b"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Specifies if the style will contain `:host { display: block; }`."
|
||||
},
|
||||
{
|
||||
"name": "export",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "The declaring NgModule exports this component."
|
||||
},
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Create the new files at the top level of the current project."
|
||||
},
|
||||
{
|
||||
"name": "inline-style",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"s"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file."
|
||||
},
|
||||
{
|
||||
"name": "inline-template",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"t"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file."
|
||||
},
|
||||
{
|
||||
"name": "module",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"m"
|
||||
],
|
||||
"description": "The declaring NgModule."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the component.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"p"
|
||||
],
|
||||
"description": "The prefix to apply to the generated component selector."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "selector",
|
||||
"type": "string",
|
||||
"description": "The HTML selector to use for this component."
|
||||
},
|
||||
{
|
||||
"name": "skip-import",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not import this component into the owning NgModule."
|
||||
},
|
||||
{
|
||||
"name": "skip-selector",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Specifies if the component should have a selector or not."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new component."
|
||||
},
|
||||
{
|
||||
"name": "standalone",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Whether the generated component is standalone."
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"type": "string",
|
||||
"default": "css",
|
||||
"enum": [
|
||||
"css",
|
||||
"scss",
|
||||
"sass",
|
||||
"less",
|
||||
"none"
|
||||
],
|
||||
"description": "The file extension or preprocessor to use for style files, or 'none' to skip generating the style file."
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": "string",
|
||||
"default": "Component",
|
||||
"description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\"."
|
||||
},
|
||||
{
|
||||
"name": "view-encapsulation",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"v"
|
||||
],
|
||||
"enum": [
|
||||
"Emulated",
|
||||
"None",
|
||||
"ShadowDom"
|
||||
],
|
||||
"description": "The view encapsulation strategy to use in the new component."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"command": "config [type]",
|
||||
"shortDescription": "Generates a configuration file in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"karma",
|
||||
"browserslist"
|
||||
],
|
||||
"description": "Specifies which type of configuration file to create.",
|
||||
"positional": 0
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "directive",
|
||||
"command": "directive [name]",
|
||||
"shortDescription": "Creates a new, generic directive definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "export",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "The declaring NgModule exports this directive."
|
||||
},
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When true (the default), creates the new files at the top level of the current project."
|
||||
},
|
||||
{
|
||||
"name": "module",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"m"
|
||||
],
|
||||
"description": "The declaring NgModule."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the new directive.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"p"
|
||||
],
|
||||
"description": "A prefix to apply to generated selectors."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "selector",
|
||||
"type": "string",
|
||||
"description": "The HTML selector to use for this directive."
|
||||
},
|
||||
{
|
||||
"name": "skip-import",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not import this directive into the owning NgModule."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new class."
|
||||
},
|
||||
{
|
||||
"name": "standalone",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Whether the generated directive is standalone."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"d"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "enum",
|
||||
"command": "enum [name]",
|
||||
"shortDescription": "Generates a new, generic enum definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the enum.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project in which to create the enum. Default is the configured default project for the workspace."
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": "string",
|
||||
"description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\"."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"e"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "environments",
|
||||
"command": "environments",
|
||||
"shortDescription": "Generates and configures environment files for a project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "guard",
|
||||
"command": "guard [name]",
|
||||
"shortDescription": "Generates a new, generic route guard definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When true (the default), creates the new files at the top level of the current project."
|
||||
},
|
||||
{
|
||||
"name": "functional",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Specifies whether to generate a guard as a function."
|
||||
},
|
||||
{
|
||||
"name": "implements",
|
||||
"type": "array",
|
||||
"aliases": [
|
||||
"guardType"
|
||||
],
|
||||
"description": "Specifies which type of guard to create."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the new route guard.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new guard."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "interceptor",
|
||||
"command": "interceptor [name]",
|
||||
"shortDescription": "Creates a new, generic interceptor definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When true (the default), creates files at the top level of the project."
|
||||
},
|
||||
{
|
||||
"name": "functional",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Creates the interceptor as a `HttpInterceptorFn`."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the interceptor.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new interceptor."
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "interface",
|
||||
"command": "interface [name] [type]",
|
||||
"shortDescription": "Creates a new, generic interface definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the interface.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"type": "string",
|
||||
"description": "A prefix to apply to generated selectors."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": "string",
|
||||
"description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\".",
|
||||
"positional": 1
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"i"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "library",
|
||||
"command": "library [name]",
|
||||
"shortDescription": "Creates a new, generic library project in the current workspace.",
|
||||
"options": [
|
||||
{
|
||||
"name": "entry-file",
|
||||
"type": "string",
|
||||
"default": "public-api",
|
||||
"description": "The path at which to create the library's public API file, relative to the workspace root."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the library.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"p"
|
||||
],
|
||||
"default": "lib",
|
||||
"description": "A prefix to apply to generated selectors."
|
||||
},
|
||||
{
|
||||
"name": "project-root",
|
||||
"type": "string",
|
||||
"description": "The root directory of the new library."
|
||||
},
|
||||
{
|
||||
"name": "skip-install",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not install dependency packages."
|
||||
},
|
||||
{
|
||||
"name": "skip-package-json",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not add dependencies to the \"package.json\" file. "
|
||||
},
|
||||
{
|
||||
"name": "skip-ts-config",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not update \"tsconfig.json\" to add a path mapping for the new library. The path mapping is needed to use the library in an app, but can be disabled here to simplify development."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"lib"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "module",
|
||||
"command": "module [name]",
|
||||
"shortDescription": "Creates a new, generic NgModule definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Create the new files at the top level of the current project root. "
|
||||
},
|
||||
{
|
||||
"name": "module",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"m"
|
||||
],
|
||||
"description": "The declaring NgModule."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the NgModule.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "route",
|
||||
"type": "string",
|
||||
"description": "The route path for a lazy-loaded module. When supplied, creates a component in the new module, and adds the route to that component in the `Routes` array declared in the module provided in the `--module` option."
|
||||
},
|
||||
{
|
||||
"name": "routing",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Create a routing module."
|
||||
},
|
||||
{
|
||||
"name": "routing-scope",
|
||||
"type": "string",
|
||||
"default": "Child",
|
||||
"enum": [
|
||||
"Child",
|
||||
"Root"
|
||||
],
|
||||
"description": "The scope for the new routing module."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"m"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "pipe",
|
||||
"command": "pipe [name]",
|
||||
"shortDescription": "Creates a new, generic pipe definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "export",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "The declaring NgModule exports this pipe."
|
||||
},
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When true (the default) creates files at the top level of the project."
|
||||
},
|
||||
{
|
||||
"name": "module",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"m"
|
||||
],
|
||||
"description": "The declaring NgModule."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the pipe.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "skip-import",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not import this pipe into the owning NgModule."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new pipe."
|
||||
},
|
||||
{
|
||||
"name": "standalone",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Whether the generated pipe is standalone."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"p"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "resolver",
|
||||
"command": "resolver [name]",
|
||||
"shortDescription": "Generates a new, generic resolver definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When true (the default), creates the new files at the top level of the current project."
|
||||
},
|
||||
{
|
||||
"name": "functional",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Creates the resolver as a `ResolveFn`."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the new resolver.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new resolver."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"r"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "service",
|
||||
"command": "service [name]",
|
||||
"shortDescription": "Creates a new, generic service definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "flat",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "When true (the default), creates files at the top level of the project."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the service.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not create \"spec.ts\" test files for the new service."
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
"s"
|
||||
],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "service-worker",
|
||||
"command": "service-worker",
|
||||
"shortDescription": "Pass this schematic to the \"run\" command to create a service worker",
|
||||
"options": [
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string",
|
||||
"default": "build",
|
||||
"description": "The target to apply service worker to."
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
},
|
||||
{
|
||||
"name": "web-worker",
|
||||
"command": "web-worker [name]",
|
||||
"shortDescription": "Creates a new, generic web worker definition in the given project.",
|
||||
"options": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the worker.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project."
|
||||
},
|
||||
{
|
||||
"name": "snippet",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Add a worker creation snippet in a sibling file of the same name."
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"deprecated": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "lint",
|
||||
"command": "ng lint [project]",
|
||||
"shortDescription": "Runs linting tools on Angular application code in a given project folder.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/lint/long-description.md",
|
||||
"longDescription": "The command takes an optional project name, as specified in the `projects` section of the `angular.json` workspace configuration file.\nWhen a project name is not supplied, executes the `lint` builder for all projects.\n\nTo use the `ng lint` command, use `ng add` to add a package that implements linting capabilities. Adding the package automatically updates your workspace configuration, adding a lint [CLI builder](guide/cli-builder).\nFor example:\n\n```json\n\"projects\": {\n \"my-project\": {\n ...\n \"architect\": {\n ...\n \"lint\": {\n \"builder\": \"@angular-eslint/builder:lint\",\n \"options\": {}\n }\n }\n }\n}\n```\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"name": "new",
|
||||
"command": "ng new [name]",
|
||||
"shortDescription": "Creates a new Angular workspace.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/new/long-description.md",
|
||||
"longDescription": "Creates and initializes a new Angular application that is the default project for a new workspace.\n\nProvides interactive prompts for optional configuration, such as adding routing support.\nAll prompts can safely be allowed to default.\n\n- The new workspace folder is given the specified project name, and contains configuration files at the top level.\n\n- By default, the files for a new initial application (with the same name as the workspace) are placed in the `src/` subfolder.\n- The new application's configuration appears in the `projects` section of the `angular.json` workspace configuration file, under its project name.\n\n- Subsequent applications that you generate in the workspace reside in the `projects/` subfolder.\n\nIf you plan to have multiple applications in the workspace, you can create an empty workspace by using the `--no-create-application` option.\nYou can then use `ng generate application` to create an initial application.\nThis allows a workspace name different from the initial app name, and ensures that all applications reside in the `/projects` subfolder, matching the structure of the configuration file.\n",
|
||||
"aliases": [
|
||||
"n"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "collection",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "A collection of schematics to use in generating the initial application."
|
||||
},
|
||||
{
|
||||
"name": "commit",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Initial git repository commit information."
|
||||
},
|
||||
{
|
||||
"name": "create-application",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Create a new initial application project in the 'src' folder of the new workspace. When false, creates an empty workspace with no initial application. You can then use the generate application command so that all applications are created in the projects folder."
|
||||
},
|
||||
{
|
||||
"name": "defaults",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Disable interactive input prompts for options with a default."
|
||||
},
|
||||
{
|
||||
"name": "directory",
|
||||
"type": "string",
|
||||
"description": "The directory name to create the workspace in."
|
||||
},
|
||||
{
|
||||
"name": "dry-run",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Run through and reports activity without writing out results."
|
||||
},
|
||||
{
|
||||
"name": "force",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Force overwriting of existing files."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "inline-style",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"s"
|
||||
],
|
||||
"description": "Include styles inline in the component TS file. By default, an external styles file is created and referenced in the component TypeScript file."
|
||||
},
|
||||
{
|
||||
"name": "inline-template",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"t"
|
||||
],
|
||||
"description": "Include template inline in the component TS file. By default, an external template file is created and referenced in the component TypeScript file."
|
||||
},
|
||||
{
|
||||
"name": "interactive",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Enable interactive input prompts."
|
||||
},
|
||||
{
|
||||
"name": "minimal",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Create a workspace without any testing frameworks. (Use for learning purposes only.)"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the new workspace and initial project.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "new-project-root",
|
||||
"type": "string",
|
||||
"default": "projects",
|
||||
"description": "The path where new projects will be created, relative to the new workspace root."
|
||||
},
|
||||
{
|
||||
"name": "package-manager",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"npm",
|
||||
"yarn",
|
||||
"pnpm",
|
||||
"cnpm"
|
||||
],
|
||||
"description": "The package manager used to install dependencies."
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"p"
|
||||
],
|
||||
"default": "app",
|
||||
"description": "The prefix to apply to generated selectors for the initial project."
|
||||
},
|
||||
{
|
||||
"name": "routing",
|
||||
"type": "boolean",
|
||||
"description": "Generate a routing module for the initial project."
|
||||
},
|
||||
{
|
||||
"name": "skip-git",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"g"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Do not initialize a git repository."
|
||||
},
|
||||
{
|
||||
"name": "skip-install",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Do not install dependency packages."
|
||||
},
|
||||
{
|
||||
"name": "skip-tests",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"S"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Do not generate \"spec.ts\" test files for the new project."
|
||||
},
|
||||
{
|
||||
"name": "strict",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Creates a workspace with stricter type checking and stricter bundle budgets settings. This setting helps improve maintainability and catch bugs ahead of time. For more information, see https://angular.io/guide/strict-mode"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"css",
|
||||
"scss",
|
||||
"sass",
|
||||
"less"
|
||||
],
|
||||
"description": "The file extension or preprocessor to use for style files."
|
||||
},
|
||||
{
|
||||
"name": "view-encapsulation",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Emulated",
|
||||
"None",
|
||||
"ShadowDom"
|
||||
],
|
||||
"description": "The view encapsulation strategy to use in the initial project."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "run",
|
||||
"command": "ng run <target>",
|
||||
"shortDescription": "Runs an Architect target with an optional custom builder configuration defined in your project.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/run/long-description.md",
|
||||
"longDescription": "Architect is the tool that the CLI uses to perform complex tasks such as compilation, according to provided configurations.\nThe CLI commands run Architect targets such as `build`, `serve`, `test`, and `lint`.\nEach named target has a default configuration, specified by an `options` object,\nand an optional set of named alternate configurations in the `configurations` object.\n\nFor example, the `serve` target for a newly generated app has a predefined\nalternate configuration named `production`.\n\nYou can define new targets and their configuration options in the `architect` section\nof the `angular.json` file which you can run them from the command line using the `ng run` command.\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "target",
|
||||
"type": "string",
|
||||
"description": "The Architect target to run provided in the the following format `project:target[:configuration]`.",
|
||||
"positional": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"name": "serve",
|
||||
"command": "ng serve [project]",
|
||||
"shortDescription": "Builds and serves your application, rebuilding on file changes.",
|
||||
"aliases": [
|
||||
"s"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "allowed-hosts",
|
||||
"type": "array",
|
||||
"description": "List of hosts that are allowed to access the dev server."
|
||||
},
|
||||
{
|
||||
"name": "browser-target",
|
||||
"type": "string",
|
||||
"description": "A browser builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`."
|
||||
},
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "disable-host-check",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Don't verify connected clients are part of allowed hosts."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "hmr",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Enable hot module replacement."
|
||||
},
|
||||
{
|
||||
"name": "host",
|
||||
"type": "string",
|
||||
"default": "localhost",
|
||||
"description": "Host to listen on."
|
||||
},
|
||||
{
|
||||
"name": "live-reload",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Whether to reload the page on change, using live-reload."
|
||||
},
|
||||
{
|
||||
"name": "open",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"o"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Opens the url in default browser."
|
||||
},
|
||||
{
|
||||
"name": "poll",
|
||||
"type": "number",
|
||||
"description": "Enable and define the file watching poll time period in milliseconds."
|
||||
},
|
||||
{
|
||||
"name": "port",
|
||||
"type": "number",
|
||||
"default": 4200,
|
||||
"description": "Port to listen on."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "proxy-config",
|
||||
"type": "string",
|
||||
"description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server."
|
||||
},
|
||||
{
|
||||
"name": "public-host",
|
||||
"type": "string",
|
||||
"description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies."
|
||||
},
|
||||
{
|
||||
"name": "serve-path",
|
||||
"type": "string",
|
||||
"description": "The pathname where the application will be served."
|
||||
},
|
||||
{
|
||||
"name": "ssl",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Serve using HTTPS."
|
||||
},
|
||||
{
|
||||
"name": "ssl-cert",
|
||||
"type": "string",
|
||||
"description": "SSL certificate to use for serving HTTPS."
|
||||
},
|
||||
{
|
||||
"name": "ssl-key",
|
||||
"type": "string",
|
||||
"description": "SSL key to use for serving HTTPS."
|
||||
},
|
||||
{
|
||||
"name": "verbose",
|
||||
"type": "boolean",
|
||||
"description": "Adds more details to output logging."
|
||||
},
|
||||
{
|
||||
"name": "watch",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Rebuild on change."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"name": "test",
|
||||
"command": "ng test [project]",
|
||||
"shortDescription": "Runs unit tests in a project.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/test/long-description.md",
|
||||
"longDescription": "Takes the name of the project, as specified in the `projects` section of the `angular.json` workspace configuration file.\nWhen a project name is not supplied, it will execute for all projects.\n",
|
||||
"aliases": [
|
||||
"t"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "browsers",
|
||||
"type": "string",
|
||||
"description": "Override which browsers tests are run against."
|
||||
},
|
||||
{
|
||||
"name": "code-coverage",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Output a code coverage report."
|
||||
},
|
||||
{
|
||||
"name": "code-coverage-exclude",
|
||||
"type": "array",
|
||||
"description": "Globs to exclude from code coverage."
|
||||
},
|
||||
{
|
||||
"name": "configuration",
|
||||
"type": "string",
|
||||
"aliases": [
|
||||
"c"
|
||||
],
|
||||
"description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section in angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations."
|
||||
},
|
||||
{
|
||||
"name": "exclude",
|
||||
"type": "array",
|
||||
"description": "Globs of files to exclude, relative to the project root."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "include",
|
||||
"type": "array",
|
||||
"description": "Globs of files to include, relative to project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
|
||||
},
|
||||
{
|
||||
"name": "inline-style-language",
|
||||
"type": "string",
|
||||
"default": "css",
|
||||
"enum": [
|
||||
"css",
|
||||
"less",
|
||||
"sass",
|
||||
"scss"
|
||||
],
|
||||
"description": "The stylesheet language to use for the application's inline component styles."
|
||||
},
|
||||
{
|
||||
"name": "karma-config",
|
||||
"type": "string",
|
||||
"description": "The name of the Karma configuration file."
|
||||
},
|
||||
{
|
||||
"name": "main",
|
||||
"type": "string",
|
||||
"description": "The name of the main entry-point file."
|
||||
},
|
||||
{
|
||||
"name": "poll",
|
||||
"type": "number",
|
||||
"description": "Enable and define the file watching poll time period in milliseconds."
|
||||
},
|
||||
{
|
||||
"name": "polyfills",
|
||||
"type": "string",
|
||||
"description": "Polyfills to be included in the build."
|
||||
},
|
||||
{
|
||||
"name": "preserve-symlinks",
|
||||
"type": "boolean",
|
||||
"description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Log progress to the console while building."
|
||||
},
|
||||
{
|
||||
"name": "project",
|
||||
"type": "string",
|
||||
"description": "The name of the project to build. Can be an application or a library.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "reporters",
|
||||
"type": "array",
|
||||
"description": "Karma reporters to use. Directly passed to the karma runner."
|
||||
},
|
||||
{
|
||||
"name": "source-map",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration."
|
||||
},
|
||||
{
|
||||
"name": "ts-config",
|
||||
"type": "string",
|
||||
"description": "The name of the TypeScript configuration file."
|
||||
},
|
||||
{
|
||||
"name": "watch",
|
||||
"type": "boolean",
|
||||
"description": "Run build when files change."
|
||||
},
|
||||
{
|
||||
"name": "web-worker-ts-config",
|
||||
"type": "string",
|
||||
"description": "TypeScript configuration for Web Worker modules."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"name": "update",
|
||||
"command": "ng update [packages..]",
|
||||
"shortDescription": "Updates your workspace and its dependencies. See https://update.angular.io/.",
|
||||
"longDescriptionRelativePath": "@angular/cli/src/commands/update/long-description.md",
|
||||
"longDescription": "Perform a basic update to the current stable release of the core framework and CLI by running the following command.\n\n```\nng update @angular/cli @angular/core\n```\n\nTo update to the next beta or pre-release version, use the `--next` option.\n\nTo update from one major version to another, use the format\n\n```\nng update @angular/cli@^<major_version> @angular/core@^<major_version>\n```\n\nWe recommend that you always update to the latest patch version, as it contains fixes we released since the initial major release.\nFor example, use the following command to take the latest 10.x.x version and use that to update.\n\n```\nng update @angular/cli@^10 @angular/core@^10\n```\n\nFor detailed information and guidance on updating your application, see the interactive [Angular Update Guide](https://update.angular.io/).\n",
|
||||
"aliases": [],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "allow-dirty",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Whether to allow updating when the repository contains modified or untracked files."
|
||||
},
|
||||
{
|
||||
"name": "create-commits",
|
||||
"type": "boolean",
|
||||
"aliases": [
|
||||
"C"
|
||||
],
|
||||
"default": false,
|
||||
"description": "Create source control commits for updates and migrations."
|
||||
},
|
||||
{
|
||||
"name": "force",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Ignore peer dependency version mismatches."
|
||||
},
|
||||
{
|
||||
"name": "from",
|
||||
"type": "string",
|
||||
"description": "Version from which to migrate from. Only available with a single package being updated, and only with 'migrate-only'."
|
||||
},
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
},
|
||||
{
|
||||
"name": "migrate-only",
|
||||
"type": "boolean",
|
||||
"description": "Only perform a migration, do not update the installed version."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"description": "The name of the migration to run. Only available with a single package being updated, and only with 'migrate-only' option."
|
||||
},
|
||||
{
|
||||
"name": "next",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Use the prerelease version, including beta and RCs."
|
||||
},
|
||||
{
|
||||
"name": "packages",
|
||||
"type": "array",
|
||||
"default": [],
|
||||
"description": "The names of package(s) to update.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "packages",
|
||||
"type": "string",
|
||||
"default": [],
|
||||
"description": "The names of package(s) to update.",
|
||||
"positional": 0
|
||||
},
|
||||
{
|
||||
"name": "to",
|
||||
"type": "string",
|
||||
"description": "Version up to which to apply migrations. Only available with a single package being updated, and only with 'migrate-only' option. Requires 'from' to be specified. Default to the installed version detected."
|
||||
},
|
||||
{
|
||||
"name": "verbose",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Display additional details about internal operations during execution."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "version",
|
||||
"command": "ng version",
|
||||
"shortDescription": "Outputs Angular CLI version.",
|
||||
"aliases": [
|
||||
"v"
|
||||
],
|
||||
"deprecated": false,
|
||||
"options": [
|
||||
{
|
||||
"name": "help",
|
||||
"type": "boolean",
|
||||
"description": "Shows a help message for this command in the console."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,13 +11,13 @@ describe('AngularJS to Angular Quick Reference Tests', () => {
|
||||
it('should display proper movie data', async () => {
|
||||
// We check only a few samples
|
||||
const expectedSamples: any[] = [
|
||||
{row: 0, column: 0, element: 'img', attr: 'src', value: 'images/hero.png', contains: true},
|
||||
{row: 0, column: 0, element: 'img', attr: 'src', value: 'images/hero.svg', contains: true},
|
||||
{row: 0, column: 2, value: 'Celeritas'},
|
||||
{row: 1, column: 3, matches: /Dec 1[678], 2015/}, // absorb timezone dif; we care about date format
|
||||
{row: 1, column: 5, value: '$14.95'},
|
||||
{row: 2, column: 4, value: 'PG-13'},
|
||||
{row: 2, column: 7, value: '100%'},
|
||||
{row: 2, column: 0, element: 'img', attr: 'src', value: 'images/ng-logo.png', contains: true},
|
||||
{row: 2, column: 0, element: 'img', attr: 'src', value: 'images/ng-logo.svg', contains: true},
|
||||
];
|
||||
|
||||
// Go through the samples
|
||||
|
||||
@@ -8,7 +8,7 @@ export class MovieService {
|
||||
return [
|
||||
{
|
||||
hero: 'Celeritas',
|
||||
imageurl: 'assets/images/hero.png',
|
||||
imageurl: 'assets/images/hero.svg',
|
||||
movieId: 1,
|
||||
mpaa: 'pg-13',
|
||||
releaseDate: '2015-12-19T00:00:00',
|
||||
@@ -19,7 +19,7 @@ export class MovieService {
|
||||
},
|
||||
{
|
||||
hero: 'Dr Nice',
|
||||
imageurl: 'assets/images/villain.png',
|
||||
imageurl: 'assets/images/villain.svg',
|
||||
movieId: 2,
|
||||
mpaa: 'pg-13',
|
||||
releaseDate: '2015-12-18T00:00:00',
|
||||
@@ -30,7 +30,7 @@ export class MovieService {
|
||||
},
|
||||
{
|
||||
hero: 'Angular',
|
||||
imageurl: 'assets/images/ng-logo.png',
|
||||
imageurl: 'assets/images/ng-logo.svg',
|
||||
movieId: 3,
|
||||
mpaa: 'pg-13',
|
||||
releaseDate: '2015-12-17T00:00:00',
|
||||
|
||||
|
Before Width: | Height: | Size: 7.1 KiB |
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" viewBox="0 0 267.64 295.96" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<defs>
|
||||
<filter id="g" x="-.6875" y="-.36871" width="2.375" height="1.7374"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="9.821428" />
|
||||
</filter>
|
||||
<filter id="a" x="-.32323" y="-.20911" width="1.6465" height="1.4182"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="6.113183" />
|
||||
</filter>
|
||||
<filter id="i" x="-.60711" y="-.3192" width="2.2142" height="1.6384"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="2.235874" />
|
||||
</filter>
|
||||
<filter id="h" x="-.20228" y="-.6072" width="1.4046" height="2.2144"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="2.235874" />
|
||||
</filter>
|
||||
<filter id="b" x="-.16212" y="-.3564" width="1.3242" height="1.7128"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="6.351255" />
|
||||
</filter>
|
||||
<filter id="c" x="-.26311" y="-.22062" width="1.5262" height="1.4412"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="1.868782" />
|
||||
</filter>
|
||||
<filter id="j" x="-.29184" y="-.46969" width="1.5837" height="1.9394"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="6.32608" />
|
||||
</filter>
|
||||
<filter id="e" x="-.57354" y="-1.4081" width="2.1471" height="3.8162"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="6.182556" />
|
||||
</filter>
|
||||
<filter id="f" x="-.2876" y="-1.4502" width="1.5752" height="3.9004"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="2.586588" />
|
||||
</filter>
|
||||
<filter id="d" x="-.16498" y="-.36227" width="1.33" height="1.7245"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="2.252435" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata>image/svg+xml <rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g transform="translate(11.042 -9.5012)">
|
||||
<title>Layer 1</title>
|
||||
<g>
|
||||
<path
|
||||
d="m91.945 72.496c27.138 0.30258 57.949 34.887 81.317 0 29.92-34.193 62.363-13.391 82.833 0v80.812c-27.915-2.8567-46.364-29.419-82.507-11.859-42.127 20.468-87.981-29.714-123.56-66.428 24.504 2.919 36.216 1.2694 41.921-2.5254z"
|
||||
stroke="#000" />
|
||||
<path d="m74.518 172.69-23.218-7.317-13.861 51.109 21.254 6.4241 15.825-50.216h3.1e-5z"
|
||||
stroke-width="0" />
|
||||
<path d="m59.709 215.32-22.38 1.2045-7.4787 74.929 30.058-0.31159-0.19983-75.822-3.1e-5 3e-5z"
|
||||
stroke-width="0" />
|
||||
<path
|
||||
d="m62.226 194.75c-4.3262 13.599-11.065 24.104-15.052 23.464-3.9867-0.64052-3.7114-12.184 0.6148-25.783 4.3262-13.599 11.065-24.104 15.052-23.464 3.9867 0.64052 3.7114 12.184-0.61482 25.783l-4e-6 2e-5z"
|
||||
filter="url(#a)" opacity=".54808" stroke="#000" />
|
||||
<path d="m69.99 173.14 22.807-8.5128 16.391 49.832-20.787 8.0076-18.411-49.327v3e-5z"
|
||||
stroke-width="0" />
|
||||
<path
|
||||
d="m41.241 77.574 11.859 10.31-39.133 45.01s-10.562-4.4301-11.24-9.8059c-0.67784-5.3758 38.514-45.515 38.514-45.515h-1.5e-5 -3.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m64.067 47.483s4.2083 25.538-11.28 27.021 10.552 23.843 10.552 23.843l19.782 8.2676 33.094-14.913s-7.5285-12.225-10.031-12.562c-2.5028-0.33676-13.448-2.319-16.173-12.369-2.7249-10.05-0.41495-15.854-0.41495-15.854l-25.529-3.4349h-6.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m61.325 52.192c5.8849 10.744 25.445 15.003 35.243 5.1137 3.7641-4.1141 2.9136-11.869 2.1797-16.998s-4.1074-5.8897-4.1006-8.0152c7e-3 -2.1255 1.1313-1.8719 0.51407-4.3746-6.2657-27.818-53.688-12.607-40.426 12.625-3.7319 7.1826 0.1217 11.174 6.5897 11.649v3.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m62.096 52.409c5.7656 10.526 24.929 14.699 34.529 5.01 3.6878-4.0308 2.8546-11.628 2.1356-16.653s-4.0241-5.7703-4.0175-7.8528c7e-3 -2.0825 1.1083-1.834 0.50366-4.2859-6.1387-27.254-52.6-12.351-39.607 12.369-3.6562 7.037 0.11923 10.948 6.4561 11.413v-3.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m63.507 54.818c12.538 13.071 26.191 9.2315 34.417 1.4728-14.553 10.143-25.788 6.1748-34.417-1.4728z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m84.621 30.575s2.7779 14.9 5.8084 14.647c-0.44134 0.17191-6.3155 3.8076-8.8388 1.2627 0.69727-1.2367 3.1921 1.681 5.3688-1.3929 0.81992-1.7809-1.1302-6.0501-2.3384-14.517z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m84.621 30.575s2.7779 14.9 5.8084 14.647c-0.44134 0.17191-6.3155 3.8076-8.8388 1.2627 0.69727-1.2367 3.1921 1.681 5.3688-1.3929 0.81992-1.7809-1.1302-6.0501-2.3384-14.517z"
|
||||
filter="url(#i)" stroke="#000" />
|
||||
<path
|
||||
d="m69.03 37.466c0.14066 1.798 12.691-0.98444 14.467-3.9984 4.3018 0.6434 10.735-0.22946 11.178-1.4225 1.7027-4.5798-4.6747-2.635-11.629-1.0497-6.9547 1.5854-16.541-0.92746-14.284 6.4706l0.26788-3.1e-5h-3.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m69.03 37.466c0.14066 1.798 12.691-0.98444 14.467-3.9984 4.3018 0.6434 10.735-0.22946 11.178-1.4225 1.7027-4.5798-4.6747-2.635-11.629-1.0497-6.9547 1.5854-16.541-0.92746-14.284 6.4706l0.26788-3.1e-5h-3.1e-5z"
|
||||
filter="url(#h)" stroke="#000" />
|
||||
<path
|
||||
d="m81.522 32.928c0.84876 1.8448-2.5194 2.5192-5.6442 3.5081-3.1248 0.98904-5.5627 1.8298-5.7602 0.63113-0.53281-3.234 1.5685-3.0128 4.6933-4.0019 3.1248-0.98901 6.4079-1.0954 6.7111-0.13742z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m84.818 32.076c-0.05411 1.7074 2.7767 1.1278 5.5219 0.87174 2.7452-0.2561 4.9095-0.40228 4.6703-1.3958-0.64536-2.6805-2.2014-1.8215-4.9466-1.5654-2.7452 0.2561-5.3242 1.248-5.2457 2.0895l3.1e-5 -6.1e-5z"
|
||||
stroke="#000" />
|
||||
<path d="m68.05 34.513s9.1964-4.2857 12.768-3.4821" stroke="#000" stroke-width="1px" />
|
||||
<path d="m84.568 30.674s8.4821-0.625 9.1964-2.7679" stroke="#000" stroke-width="1px" />
|
||||
<path
|
||||
d="m93.883 48.197c1.6163 2.5565-0.35864 6.4995-5.2404 6.2187-4.8401-0.27841-9.5687 0.93256-9.655 0.28659-0.09891-0.741 4.0474-1.0987 8.7613-2.3987 4.7139-1.3 5.2702-4.6136 6.1341-4.1066z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m110.66 80.232-12.591 9.4031 35.689 47.787s10.861-3.6351 11.936-8.9458c1.0744-5.3107-35.034-48.244-35.034-48.244h3e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m2.4678 124.59c1.517-10.859 11.535-8.3905 11.535-8.3905l23.973 43.264-3.7433 5.6921s-33.281-29.707-31.764-40.566z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m22.743 116.29c-8.5536 7.5969-16.55 12.56-17.859 11.085-1.3098-1.4748 4.5625-8.8288 13.116-16.426 8.5536-7.5969 16.55-12.56 17.859-11.085 1.3098 1.4748-4.5625 8.8288-13.116 16.426z"
|
||||
filter="url(#b)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m146.55 130.82c-0.70239-10.942-10.876-9.2279-10.876-9.2279l-27.135 41.354 3.3081 5.9555s35.405-27.14 34.703-38.082v3e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m125.14 117c8.5536 7.5969 16.55 12.56 17.859 11.085 1.3098-1.4748-4.5625-8.8288-13.116-16.426-8.5536-7.5969-16.55-12.56-17.859-11.085-1.3098 1.4748 4.5625 8.8288 13.116 16.426z"
|
||||
filter="url(#b)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m51.988 74.692s14.415 17.143 24.394 16.071c9.9796-1.0714 20.329-8.5714 19.589-13.929-0.73923-5.3571 16.866 2.8571 16.866 2.8571s6.4495 11.429 11.105 15.357c2.4727 2.0867-8.0362 18.214-8.0362 18.214s-4.5227-7.0144-5.1931-5.3497c-7.2437 17.984-22.657 50.095-17.154 57.998 4.7157 6.7723-42.977 1.7603-42.977 1.7603 9.8284-22.663-12.917-54.815-14.158-59.888 0 0 1.5326-1.1295-5.3796 5.8368-1.4805 1.4921-11.031-15.357-11.031-15.357s9.9751-4.2857 16.828-20.357l15.146-3.2143v-6.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m50.258 166.49c-0.5813-1.1995 48.173-2.4055 45.637 0-5.6648 5.3748-9.9369 13.418-15.812 21.568-4.4765 2.3502-8.9531 1.5652-13.43 0.38849-7.2687-17.08-14.251-17.531-16.396-21.957z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m81.464 177.49c0 5.6138-3.8159 10.165-8.5232 10.165-4.7072 0-8.5232-4.5509-8.5232-10.165s3.816-10.165 8.5232-10.165c4.7072 0 8.5232 4.5509 8.5232 10.165z"
|
||||
filter="url(#c)" stroke="#000" />
|
||||
<path
|
||||
d="m67.644 181.15c-0.12726 1.2675-0.58893 7.3753 7.556 6.4745 2.901-0.32086 5.0615-2.6568 5.0615-6.2899 0-9.8345-0.20319-14.736-0.20319-14.736"
|
||||
stroke="#000" stroke-dasharray="4.18484951, 1.04621238" stroke-width="1.0462" />
|
||||
<path d="m79.991 186.04c3.9193-7.455 7.1667-13.986 14.038-18.663" stroke="#000"
|
||||
stroke-dasharray="4.18484951, 1.04621238" stroke-width="1.0462" />
|
||||
<path d="m66.662 185.88c-1.7544-10.631-9.8827-13.64-15.159-18.663" stroke="#000"
|
||||
stroke-dasharray="4.18484951, 1.04621238" stroke-width="1.0462" />
|
||||
<path d="m85.887 213.73 23.271 0.7644 5.1592 75.19-28.63-0.13312 0.19983-75.822v3e-5z"
|
||||
stroke-width="0" />
|
||||
<path
|
||||
d="m127.66 150.32c5.5904-7.0652 9.0979-13.555 7.8342-14.495-1.2637-0.94047-6.82 4.0246-12.41 11.09-5.5904 7.0652-9.0978 13.555-7.8341 14.496 1.2637 0.94047 6.82-4.0246 12.41-11.09z"
|
||||
filter="url(#b)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m98.34 177.58c-3.5569-3.6226-6.0251-8.294-4.6952-11.345 1.1842-2.7169 4.5644-4.3068 8.2529-5.5964 7.4352-2.5995 10.578-0.1094 13.177 7.3258 0.90197 4.619-12.495 12.423-16.735 9.6159z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m47.058 174.81c3.8174-3.347 6.6273-7.8212 5.5287-10.963-0.97815-2.7977-4.2303-4.6354-7.8123-6.1967-7.2205-3.1471-10.54-0.89846-13.687 6.3221-1.2442 4.5388 11.533 13.321 15.971 10.838z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m101.02 113.41c-1.4005 8.0312-10.098 11.211-17.308 7.3128-5.7908-3.1309-10.8-13.875-8.9424-7.3128 1.5825 5.5888-2.3873 6.6157-3.5214 6.712-15.173 1.2892-23.275 10.274-25.759-6.712-1.1159-7.6288-16.491-24.668-4.7454-27.457 4.396-1.0436 23.015 12.939 32.511 11.294 13.012-2.2532 27.316-12.292 32.892-12.088 13.339 0.48917 2.9559 16.665-5.1263 28.25h1e-5z"
|
||||
filter="url(#j)" stroke-width="0" />
|
||||
<path
|
||||
d="m52.928 74.769s8.8478 14.348 21.62 13.89c4.8502-0.17236-11.688 9.8029-10.751 10.607 1.1307 0.9697 14.023-9.5964 14.023-9.5964s11.682 10.669 12.621 9.5964c0.87979-1.005-13.938-10.352-9.349-11.238 6.9099-1.3343 12.621-15.026 12.621-15.026s-9.7724 12.814-16.711 13.637c-8.7678 1.0404-24.074-11.869-24.074-11.869v3.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m80.371 88.218c0 1.0602-1.0593 1.9196-2.3661 1.9196-1.3067 0-2.3661-0.85945-2.3661-1.9196 0-1.0602 1.0593-1.9196 2.3661-1.9196 1.3067 0 2.3661 0.85945 2.3661 1.9196z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m227.51 98.084c3e-5 17.653-7.6751 31.964-17.143 31.964-9.4677 0-17.143-14.311-17.143-31.964-3e-5 -17.653 7.6751-31.964 17.143-31.964 9.4678 0 17.143 14.311 17.143 31.964h3e-5z"
|
||||
filter="url(#g)" stroke="#000" />
|
||||
<path
|
||||
d="m81.464 177.49c0 5.6138-3.8159 10.165-8.5232 10.165-4.7072 0-8.5232-4.5509-8.5232-10.165s3.816-10.165 8.5232-10.165c4.7072 0 8.5232 4.5509 8.5232 10.165z"
|
||||
filter="url(#c)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m20.226 149.61c-5.5904-7.0652-9.0979-13.555-7.8342-14.495 1.2637-0.94048 6.82 4.0246 12.41 11.09 5.5904 7.0651 9.0978 13.555 7.8341 14.495-1.2637 0.94048-6.82-4.0246-12.41-11.09h4e-6z"
|
||||
filter="url(#b)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m53.645 252.36c0.0925 15.459-3.0668 28.588-7.0565 29.325-3.9897 0.73627-7.2989-11.199-7.3914-26.658-0.0925-15.459 3.0668-28.588 7.0564-29.325 3.9897-0.73628 7.2989 11.199 7.3914 26.658v1e-5z"
|
||||
filter="url(#a)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m86.032 197.78c4.3262 13.599 11.065 24.104 15.052 23.464 3.9867-0.64052 3.7114-12.184-0.61481-25.783-4.3262-13.599-11.065-24.104-15.052-23.464-3.9867 0.6405-3.7114 12.184 0.61481 25.783z"
|
||||
filter="url(#a)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m94.613 255.39c-0.0925 15.459 3.0668 28.588 7.0565 29.325 3.9897 0.7363 7.2989-11.199 7.3914-26.658 0.0925-15.459-3.0668-28.588-7.0564-29.325-3.9897-0.73628-7.2989 11.199-7.3914 26.658v1e-5z"
|
||||
filter="url(#a)" opacity=".54808" stroke="#000" />
|
||||
<path
|
||||
d="m115.33 288.38c0 6.1368-7.3851 4.326-15.614 4.326-8.2289 0-14.185 1.8108-14.185-4.326s0.24228-10.04 17.043-5.7545c7.9735 2.034 12.757-0.38232 12.757 5.7545h-3e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m60.328 288.52c0 6.1368-7.5622 4.326-15.988 4.326-8.4261 0-14.525 1.8108-14.525-4.326s0.24809-10.04 17.451-5.7546c8.1647 2.0341 13.063-0.38221 13.063 5.7546z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m111.7 288.42c0 2.2871-5.2513 1.6123-11.103 1.6123-5.8513 0-10.087 0.67487-10.087-1.6123s0.17226-3.7419 12.118-2.1447c5.6697 0.75808 9.071-0.14246 9.071 2.1447h2e-5z"
|
||||
filter="url(#e)" stroke="#000" />
|
||||
<path
|
||||
d="m54.971 288.27c0 2.1643-5.3494 1.5256-11.31 1.5256-5.9606 0-10.275 0.63867-10.275-1.5256 0-2.1643 0.17549-3.5409 12.345-2.0295 5.7756 0.71741 9.2404-0.13482 9.2404 2.0295z"
|
||||
filter="url(#f)" stroke="#000" />
|
||||
<path
|
||||
d="m54.864 42.292 6.1149 8.6494 7.5525-2.3529s-6.2699-3.0363-8.6098-5.8115c-1.0703-1.2694-0.48761-3.4601-0.67963-5.0671-0.62283-5.2123-0.13116-10.121 6.7356-13.896l11.909-0.61054s3.2668-0.35864 4.1671 1.0819c0.90036 1.4406-4.11 2.58-4.11 2.58 0.06 0 4.6575 0.29971 6.016-1.6668 0.87598-1.2681-0.1138-5.0548-0.86157-5.0548 7.6948 2.0927 1.2081-7.2626 8.4904 0.90784 1.8007 1.6206 1.6252 3.4243 1.6252 3.4243l1.8007 2.521s-2.1609-19.448-24.13-14.046c-21.969 5.4022-18.726 20.908-18.726 20.908l2.7056 8.4334 3.1e-5 6.1e-5z"
|
||||
stroke="#000" />
|
||||
<path
|
||||
d="m85.482 20.196c-0.21223 0.71253-3.3723-0.51432-3.9431 0.64492-0.41602 0.845 0.45606 2.1323-0.20563 2.611-0.53284 0.38547-2.1553-3.7216-2.7381-3.346-2.905 1.8722-6.0592 2.0577-7.897 2.0577-2.462 0-3.6555 2.1072-5.3396 1.1138-0.44664-0.26346-3.661 1.9328-5.2406 2.9736-0.60786 0.40049-4.8062 8.2142-5.9874 8.8461-1.6078 0.86008-0.10704-4.8796-0.133-5.1018-0.32276-2.7612 8.8307-11.236 9.4887-11.48 1.939-0.71674 5.4451-1.0058 7.3904-1.8905 2.7168-1.2356 9.6646-2.1329 12.725 0.40945 1.2978 1.0781 1.8801 2.338 1.8801 3.1615z"
|
||||
filter="url(#d)" opacity=".87019" stroke="#000" />
|
||||
<path
|
||||
d="m78.43 34.347c0 0.74966-0.60773 1.3574-1.3574 1.3574-0.74967 0-1.3574-0.60774-1.3574-1.3574 0-0.74966 0.60772-1.3574 1.3574-1.3574 0.74966 0 1.3574 0.60773 1.3574 1.3574z"
|
||||
opacity=".87019" stroke="#000" />
|
||||
<path
|
||||
d="m93.341 31.311c0 0.74966-0.60773 1.3574-1.3574 1.3574-0.74967 0-1.3574-0.60774-1.3574-1.3574 0-0.74966 0.60772-1.3574 1.3574-1.3574 0.74966 0 1.3574 0.60773 1.3574 1.3574z"
|
||||
opacity=".87019" stroke="#000" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 250 250" style="enable-background:new 0 0 250 250;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#DD0031;}
|
||||
.st1{fill:#C3002F;}
|
||||
.st2{fill:#FFFFFF;}
|
||||
</style>
|
||||
<g>
|
||||
<polygon class="st0" points="125,30 125,30 125,30 31.9,63.2 46.1,186.3 125,230 125,230 125,230 203.9,186.3 218.1,63.2 "/>
|
||||
<polygon class="st1" points="125,30 125,52.2 125,52.1 125,153.4 125,153.4 125,230 125,230 203.9,186.3 218.1,63.2 125,30 "/>
|
||||
<path class="st2" d="M125,52.1L66.8,182.6h0h21.7h0l11.7-29.2h49.4l11.7,29.2h0h21.7h0L125,52.1L125,52.1L125,52.1L125,52.1
|
||||
L125,52.1z M142,135.4H108l17-40.9L142,135.4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 885 B |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 10 KiB |
@@ -43,6 +43,19 @@ EXAMPLES = {
|
||||
"elements": {"stackblitz": True, "zip": True},
|
||||
"event-binding": {"stackblitz": True, "zip": True},
|
||||
"feature-modules": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-01": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-02": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-03": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-04": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-05": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-06": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-07": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-08": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-09": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-10": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-11": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-12": {"stackblitz": True, "zip": True},
|
||||
"first-app-lesson-13": {"stackblitz": True, "zip": True},
|
||||
"form-validation": {"stackblitz": True, "zip": True},
|
||||
"forms": {"stackblitz": True, "zip": True},
|
||||
"forms-overview": {"stackblitz": True, "zip": True},
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
load("//aio/content/examples:examples.bzl", "docs_example")
|
||||
load("@aio_npm//@angular/build-tooling/bazel/remote-execution:index.bzl", "ENABLE_NETWORK")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
docs_example(
|
||||
name = "first-app-lesson-01",
|
||||
# This example downloads fonts and images from googleapis.com
|
||||
test_exec_properties = ENABLE_NETWORK,
|
||||
test_tags = ["requires-network"],
|
||||
)
|
||||
@@ -0,0 +1,18 @@
|
||||
import { browser, element, by, logging } from 'protractor';
|
||||
|
||||
describe('first-app-lesson-01 app', () => {
|
||||
|
||||
beforeEach(() => browser.get(''));
|
||||
|
||||
it('should display correct title', async () => {
|
||||
expect(await element.all(by.css('h1')).get(0).getText()).toEqual('Hello world!');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Assert that there are no errors emitted from the browser
|
||||
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||
expect(logs).not.toContain(jasmine.objectContaining({
|
||||
level: logging.Level.SEVERE,
|
||||
} as logging.Entry));
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"useCommonBoilerplate": false,
|
||||
"overrideBoilerplate": [
|
||||
"src/styles.css"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
:host {
|
||||
--content-padding: 10px;
|
||||
}
|
||||
header {
|
||||
display: block;
|
||||
height: 60px;
|
||||
padding: var(--content-padding);
|
||||
box-shadow: 0px 5px 25px var(--shadow-color);
|
||||
}
|
||||
.content {
|
||||
padding: var(--content-padding);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
standalone: true,
|
||||
imports: [],
|
||||
template: `<h1>Hello world!</h1>`,
|
||||
styleUrls: ['./app.component.css'],
|
||||
})
|
||||
export class AppComponent {
|
||||
title = 'homes';
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="20pt" height="20pt" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m50 11.602c-15.398 0-27.898 12.5-27.898 27.898 0 5 1.3008 9.6992 3.6016 13.801l2.8984 4.1992 21.398 30.898 21.801-31.398 2.1992-3.1992c2.5-4.1992 3.8984-9 3.8984-14.199 0-15.5-12.5-28-27.898-28zm0 35.598c-4.1992 0-7.6992-3.3984-7.6992-7.6992s3.3984-7.6992 7.6992-7.6992 7.6992 3.3984 7.6992 7.6992-3.5 7.6992-7.6992 7.6992z" fill="#605cc8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
@@ -0,0 +1,7 @@
|
||||
<svg width="151" height="44" viewBox="0 0 151 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.15532 33.2946C5.25369 33.2946 4.58006 32.5707 4.58006 31.6701V24.0152C4.58006 19.5469 4.35206 20.6276 7.59585 17.4236C21.7317 4.06732 16.2425 4.24744 29.6149 18.054C32.0434 20.7627 31.9985 19.4534 31.9985 23.8316V31.6667C31.9985 32.5707 31.28 33.2912 30.3749 33.2912H6.15532V33.2946Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.896 35.1547L5.73676 35.2586C4.80059 35.2621 3.75042 35.8232 3.37388 36.5229L2.90061 37.4027L0.537726 41.7878L0.140457 42.529C-0.236085 43.2253 0.164639 43.7829 1.10081 43.7795L26.26 43.6756C27.1962 43.6721 28.2464 43.111 28.6229 42.4113L29.0962 41.5315L31.4591 37.1463L31.8563 36.4051C32.2329 35.7089 31.8321 35.1512 30.896 35.1547Z" fill="#605DC8"/>
|
||||
<path d="M2.54861 18.7156C2.23079 18.7156 1.90952 18.629 1.6228 18.4454C0.821352 17.9363 0.5899 16.859 1.09771 16.0554C1.46389 15.4701 2.70061 14.2231 5.50912 11.4659L6.39693 10.5931C8.73218 8.38318 10.5147 6.56817 11.9449 5.10646C15.1679 1.81587 16.7985 0.153263 18.9023 0.222538C20.9888 0.277958 22.4362 1.92325 25.3138 5.19651C26.7267 6.8037 28.4816 8.8023 30.8514 11.2477C30.8652 11.265 30.8825 11.2789 30.8963 11.2962C31.228 11.6634 31.715 12.2003 32.2401 12.7752C33.9743 14.6734 34.8206 15.6086 35.0763 15.9688C35.629 16.7413 35.4494 17.8185 34.679 18.3727C33.9087 18.9234 32.8343 18.7468 32.2816 17.9744C32.0639 17.6869 30.5889 16.0693 29.708 15.1064C29.1863 14.5348 28.6993 14.0014 28.3642 13.6308C25.9495 11.1369 24.1704 9.11057 22.7368 7.4826C21.0233 5.5325 19.4032 3.68977 18.809 3.67245H18.8021C18.1699 3.67245 16.3356 5.54289 14.3976 7.52417C12.9467 9.00666 11.14 10.8494 8.78054 13.0766L7.91001 13.9321C6.74929 15.0717 4.33804 17.4375 3.97877 17.9293C3.65405 18.4454 3.10824 18.7225 2.54515 18.7225L2.54861 18.7156Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.0976 33.2115V26.0588C22.0976 25.4665 21.6174 24.985 21.0267 24.985H15.1955C14.6047 24.985 14.1246 25.4665 14.1246 26.0588V33.2115C14.1246 33.2704 14.1142 33.3293 14.0969 33.3847H22.1252C22.1079 33.3293 22.0976 33.2739 22.0976 33.2115Z" fill="white"/>
|
||||
<path d="M58.9784 10.0512V32.2205H54.5319V22.7874H45.0353V32.2205H40.5887V10.0512H45.0353V19.1666H54.5319V10.0512H58.9784ZM70.8506 32.5063C69.1567 32.5063 67.6322 32.1358 66.277 31.3947C64.9219 30.6324 63.8526 29.5631 63.0692 28.1868C62.3069 26.8105 61.9258 25.2224 61.9258 23.4226C61.9258 21.6228 62.3175 20.0348 63.1009 18.6585C63.9055 17.2821 64.996 16.2234 66.3723 15.4823C67.7486 14.7201 69.2838 14.3389 70.9777 14.3389C72.6716 14.3389 74.2067 14.7201 75.5831 15.4823C76.9594 16.2234 78.0393 17.2821 78.8227 18.6585C79.6273 20.0348 80.0296 21.6228 80.0296 23.4226C80.0296 25.2224 79.6167 26.8105 78.7909 28.1868C77.9863 29.5631 76.8853 30.6324 75.4878 31.3947C74.1115 32.1358 72.5657 32.5063 70.8506 32.5063ZM70.8506 28.6315C71.6553 28.6315 72.4069 28.4409 73.1057 28.0597C73.8256 27.6574 74.3973 27.0646 74.8208 26.2811C75.2443 25.4977 75.456 24.5449 75.456 23.4226C75.456 21.7499 75.0114 20.4688 74.122 19.5795C73.2539 18.669 72.1846 18.2138 70.9142 18.2138C69.6437 18.2138 68.5744 18.669 67.7063 19.5795C66.8593 20.4688 66.4358 21.7499 66.4358 23.4226C66.4358 25.0954 66.8487 26.387 67.6745 27.2975C68.5215 28.1868 69.5802 28.6315 70.8506 28.6315ZM104.825 14.3707C106.985 14.3707 108.721 15.0377 110.034 16.3717C111.368 17.6844 112.035 19.5266 112.035 21.8981V32.2205H107.589V22.5016C107.589 21.1252 107.239 20.0771 106.54 19.3572C105.842 18.6161 104.889 18.2456 103.682 18.2456C102.475 18.2456 101.512 18.6161 100.792 19.3572C100.093 20.0771 99.7436 21.1252 99.7436 22.5016V32.2205H95.297V22.5016C95.297 21.1252 94.9477 20.0771 94.2489 19.3572C93.5502 18.6161 92.5974 18.2456 91.3904 18.2456C90.1623 18.2456 89.1883 18.6161 88.4684 19.3572C87.7697 20.0771 87.4203 21.1252 87.4203 22.5016V32.2205H82.9737V14.6248H87.4203V16.7528C87.992 16.0117 88.7225 15.4294 89.6118 15.0059C90.5223 14.5824 91.5175 14.3707 92.5974 14.3707C93.9737 14.3707 95.2018 14.6671 96.2816 15.26C97.3615 15.8317 98.1979 16.6575 98.7908 17.7374C99.3625 16.721 100.188 15.9058 101.268 15.2918C102.369 14.6777 103.555 14.3707 104.825 14.3707ZM132.294 23.0415C132.294 23.6767 132.252 24.2484 132.167 24.7566H119.304C119.41 26.027 119.854 27.0222 120.638 27.7421C121.421 28.4621 122.385 28.822 123.528 28.822C125.18 28.822 126.355 28.1127 127.053 26.694H131.849C131.341 28.3879 130.367 29.7854 128.927 30.8865C127.488 31.9664 125.72 32.5063 123.623 32.5063C121.929 32.5063 120.405 32.1358 119.05 31.3947C117.716 30.6324 116.668 29.5631 115.905 28.1868C115.164 26.8105 114.794 25.2224 114.794 23.4226C114.794 21.6017 115.164 20.003 115.905 18.6267C116.646 17.2504 117.684 16.1917 119.018 15.4506C120.352 14.7095 121.887 14.3389 123.623 14.3389C125.296 14.3389 126.789 14.6989 128.102 15.4188C129.436 16.1387 130.462 17.1657 131.182 18.4996C131.924 19.8124 132.294 21.3264 132.294 23.0415ZM127.689 21.771C127.668 20.6276 127.255 19.7172 126.45 19.0396C125.645 18.3408 124.661 17.9915 123.496 17.9915C122.395 17.9915 121.464 18.3303 120.701 19.0078C119.96 19.6642 119.505 20.5853 119.336 21.771H127.689ZM141.955 32.5063C140.516 32.5063 139.224 32.2522 138.081 31.744C136.937 31.2147 136.027 30.5054 135.349 29.616C134.693 28.7267 134.333 27.7421 134.269 26.6623H138.748C138.832 27.3398 139.16 27.9009 139.732 28.3456C140.325 28.7903 141.055 29.0126 141.924 29.0126C142.771 29.0126 143.427 28.8432 143.893 28.5044C144.38 28.1656 144.623 27.7316 144.623 27.2022C144.623 26.6305 144.327 26.207 143.734 25.9318C143.162 25.6353 142.241 25.3177 140.971 24.9789C139.658 24.6613 138.578 24.3331 137.731 23.9943C136.905 23.6555 136.185 23.1368 135.571 22.438C134.979 21.7393 134.682 20.797 134.682 19.6113C134.682 18.6373 134.957 17.748 135.508 16.9434C136.08 16.1387 136.884 15.5035 137.922 15.0377C138.98 14.5719 140.219 14.3389 141.638 14.3389C143.734 14.3389 145.407 14.8683 146.656 15.927C147.905 16.9645 148.593 18.3726 148.721 20.1512H144.465C144.401 19.4525 144.105 18.902 143.575 18.4996C143.067 18.0762 142.379 17.8644 141.511 17.8644C140.706 17.8644 140.081 18.0126 139.637 18.3091C139.213 18.6055 139.002 19.0184 139.002 19.5478C139.002 20.1406 139.298 20.5959 139.891 20.9135C140.484 21.2099 141.405 21.517 142.654 21.8346C143.925 22.1522 144.973 22.4804 145.798 22.8192C146.624 23.1579 147.334 23.6873 147.926 24.4072C148.541 25.106 148.858 26.0376 148.879 27.2022C148.879 28.2186 148.593 29.129 148.022 29.9337C147.471 30.7383 146.667 31.3735 145.608 31.8393C144.57 32.284 143.353 32.5063 141.955 32.5063Z" fill="#605DC8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 948 B |
@@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Homes</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Protractor support is deprecated in Angular.
|
||||
* Protractor is used in this example for compatibility with Angular documentation tools.
|
||||
*/
|
||||
import { bootstrapApplication,provideProtractorTestingSupport } from '@angular/platform-browser';
|
||||
import { AppComponent } from './app/app.component';
|
||||
|
||||
bootstrapApplication(AppComponent,
|
||||
{providers: [provideProtractorTestingSupport()]})
|
||||
.catch(err => console.error(err));
|
||||
@@ -0,0 +1,23 @@
|
||||
/* You can add global styles to this file, and also import other style files */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Be Vietnam Pro', sans-serif;
|
||||
}
|
||||
:root {
|
||||
--primary-color: #605DC8;
|
||||
--secondary-color: #8B89E6;
|
||||
--accent-color: #e8e7fa;
|
||||
--shadow-color: #E8E8E8;
|
||||
}
|
||||
|
||||
button.primary {
|
||||
padding: 10px;
|
||||
border: solid 1px var(--primary-color);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"description": "Angular - First App - Lesson 01",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"tags": [
|
||||
[
|
||||
"first",
|
||||
"angular",
|
||||
"app",
|
||||
"lesson",
|
||||
"01"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
load("//aio/content/examples:examples.bzl", "docs_example")
|
||||
load("@aio_npm//@angular/build-tooling/bazel/remote-execution:index.bzl", "ENABLE_NETWORK")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
docs_example(
|
||||
name = "first-app-lesson-02",
|
||||
# This example downloads fonts and images from googleapis.com
|
||||
test_exec_properties = ENABLE_NETWORK,
|
||||
test_tags = ["requires-network"],
|
||||
)
|
||||
@@ -0,0 +1,27 @@
|
||||
import { browser, element, by, logging } from 'protractor';
|
||||
|
||||
describe('first-app-lesson-02 app', () => {
|
||||
|
||||
beforeEach(() => browser.get(''));
|
||||
|
||||
it('should display correct title', async () => {
|
||||
expect(await element.all(by.css('.brand-logo')).get(0).getAttribute('src')).toContain('/assets/logo.svg');
|
||||
});
|
||||
|
||||
it('should have a filter string input', async () => {
|
||||
expect(await element.all(by.css('input')).get(0).getAttribute('placeholder')).toEqual('Filter by city');
|
||||
expect(await element.all(by.css('input')).get(0).getAttribute('type')).toEqual('text');
|
||||
});
|
||||
|
||||
it('should have a search button', async () => {
|
||||
expect(await element.all(by.css('button')).get(0).getText()).toEqual('Search');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Assert that there are no errors emitted from the browser
|
||||
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||
expect(logs).not.toContain(jasmine.objectContaining({
|
||||
level: logging.Level.SEVERE,
|
||||
} as logging.Entry));
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"useCommonBoilerplate": false,
|
||||
"overrideBoilerplate": [
|
||||
"src/styles.css"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
:host {
|
||||
--content-padding: 10px;
|
||||
}
|
||||
header {
|
||||
display: block;
|
||||
height: 60px;
|
||||
padding: var(--content-padding);
|
||||
box-shadow: 0px 5px 25px var(--shadow-color);
|
||||
}
|
||||
.content {
|
||||
padding: var(--content-padding);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { HomeComponent } from './home/home.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
standalone: true,
|
||||
imports: [
|
||||
HomeComponent,
|
||||
],
|
||||
template: `
|
||||
<main>
|
||||
<header class="brand-name">
|
||||
<img class="brand-logo" src="/assets/logo.svg" alt="logo" aria-hidden="true">
|
||||
</header>
|
||||
<section class="content">
|
||||
<app-home></app-home>
|
||||
</section>
|
||||
</main>
|
||||
`,
|
||||
styleUrls: ['./app.component.css'],
|
||||
})
|
||||
export class AppComponent {
|
||||
title = 'homes';
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
.results {
|
||||
display: grid;
|
||||
column-gap: 14px;
|
||||
row-gap: 14px;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
input[type='text'] {
|
||||
border: solid 1px var(--primary-color);
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
margin-right: 4px;
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px;
|
||||
border: solid 1px var(--primary-color);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
@media (min-width: 500px) and (max-width: 768px) {
|
||||
.results {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
input[type='text'] {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 499px) {
|
||||
.results {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-home',
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule,
|
||||
],
|
||||
template: `
|
||||
<section>
|
||||
<form>
|
||||
<input type="text" placeholder="Filter by city">
|
||||
<button class="primary" type="button">Search</button>
|
||||
</form>
|
||||
</section>
|
||||
`,
|
||||
styleUrls: ['./home.component.css'],
|
||||
})
|
||||
|
||||
export class HomeComponent {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="20pt" height="20pt" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m50 11.602c-15.398 0-27.898 12.5-27.898 27.898 0 5 1.3008 9.6992 3.6016 13.801l2.8984 4.1992 21.398 30.898 21.801-31.398 2.1992-3.1992c2.5-4.1992 3.8984-9 3.8984-14.199 0-15.5-12.5-28-27.898-28zm0 35.598c-4.1992 0-7.6992-3.3984-7.6992-7.6992s3.3984-7.6992 7.6992-7.6992 7.6992 3.3984 7.6992 7.6992-3.5 7.6992-7.6992 7.6992z" fill="#605cc8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
@@ -0,0 +1,7 @@
|
||||
<svg width="151" height="44" viewBox="0 0 151 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.15532 33.2946C5.25369 33.2946 4.58006 32.5707 4.58006 31.6701V24.0152C4.58006 19.5469 4.35206 20.6276 7.59585 17.4236C21.7317 4.06732 16.2425 4.24744 29.6149 18.054C32.0434 20.7627 31.9985 19.4534 31.9985 23.8316V31.6667C31.9985 32.5707 31.28 33.2912 30.3749 33.2912H6.15532V33.2946Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.896 35.1547L5.73676 35.2586C4.80059 35.2621 3.75042 35.8232 3.37388 36.5229L2.90061 37.4027L0.537726 41.7878L0.140457 42.529C-0.236085 43.2253 0.164639 43.7829 1.10081 43.7795L26.26 43.6756C27.1962 43.6721 28.2464 43.111 28.6229 42.4113L29.0962 41.5315L31.4591 37.1463L31.8563 36.4051C32.2329 35.7089 31.8321 35.1512 30.896 35.1547Z" fill="#605DC8"/>
|
||||
<path d="M2.54861 18.7156C2.23079 18.7156 1.90952 18.629 1.6228 18.4454C0.821352 17.9363 0.5899 16.859 1.09771 16.0554C1.46389 15.4701 2.70061 14.2231 5.50912 11.4659L6.39693 10.5931C8.73218 8.38318 10.5147 6.56817 11.9449 5.10646C15.1679 1.81587 16.7985 0.153263 18.9023 0.222538C20.9888 0.277958 22.4362 1.92325 25.3138 5.19651C26.7267 6.8037 28.4816 8.8023 30.8514 11.2477C30.8652 11.265 30.8825 11.2789 30.8963 11.2962C31.228 11.6634 31.715 12.2003 32.2401 12.7752C33.9743 14.6734 34.8206 15.6086 35.0763 15.9688C35.629 16.7413 35.4494 17.8185 34.679 18.3727C33.9087 18.9234 32.8343 18.7468 32.2816 17.9744C32.0639 17.6869 30.5889 16.0693 29.708 15.1064C29.1863 14.5348 28.6993 14.0014 28.3642 13.6308C25.9495 11.1369 24.1704 9.11057 22.7368 7.4826C21.0233 5.5325 19.4032 3.68977 18.809 3.67245H18.8021C18.1699 3.67245 16.3356 5.54289 14.3976 7.52417C12.9467 9.00666 11.14 10.8494 8.78054 13.0766L7.91001 13.9321C6.74929 15.0717 4.33804 17.4375 3.97877 17.9293C3.65405 18.4454 3.10824 18.7225 2.54515 18.7225L2.54861 18.7156Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.0976 33.2115V26.0588C22.0976 25.4665 21.6174 24.985 21.0267 24.985H15.1955C14.6047 24.985 14.1246 25.4665 14.1246 26.0588V33.2115C14.1246 33.2704 14.1142 33.3293 14.0969 33.3847H22.1252C22.1079 33.3293 22.0976 33.2739 22.0976 33.2115Z" fill="white"/>
|
||||
<path d="M58.9784 10.0512V32.2205H54.5319V22.7874H45.0353V32.2205H40.5887V10.0512H45.0353V19.1666H54.5319V10.0512H58.9784ZM70.8506 32.5063C69.1567 32.5063 67.6322 32.1358 66.277 31.3947C64.9219 30.6324 63.8526 29.5631 63.0692 28.1868C62.3069 26.8105 61.9258 25.2224 61.9258 23.4226C61.9258 21.6228 62.3175 20.0348 63.1009 18.6585C63.9055 17.2821 64.996 16.2234 66.3723 15.4823C67.7486 14.7201 69.2838 14.3389 70.9777 14.3389C72.6716 14.3389 74.2067 14.7201 75.5831 15.4823C76.9594 16.2234 78.0393 17.2821 78.8227 18.6585C79.6273 20.0348 80.0296 21.6228 80.0296 23.4226C80.0296 25.2224 79.6167 26.8105 78.7909 28.1868C77.9863 29.5631 76.8853 30.6324 75.4878 31.3947C74.1115 32.1358 72.5657 32.5063 70.8506 32.5063ZM70.8506 28.6315C71.6553 28.6315 72.4069 28.4409 73.1057 28.0597C73.8256 27.6574 74.3973 27.0646 74.8208 26.2811C75.2443 25.4977 75.456 24.5449 75.456 23.4226C75.456 21.7499 75.0114 20.4688 74.122 19.5795C73.2539 18.669 72.1846 18.2138 70.9142 18.2138C69.6437 18.2138 68.5744 18.669 67.7063 19.5795C66.8593 20.4688 66.4358 21.7499 66.4358 23.4226C66.4358 25.0954 66.8487 26.387 67.6745 27.2975C68.5215 28.1868 69.5802 28.6315 70.8506 28.6315ZM104.825 14.3707C106.985 14.3707 108.721 15.0377 110.034 16.3717C111.368 17.6844 112.035 19.5266 112.035 21.8981V32.2205H107.589V22.5016C107.589 21.1252 107.239 20.0771 106.54 19.3572C105.842 18.6161 104.889 18.2456 103.682 18.2456C102.475 18.2456 101.512 18.6161 100.792 19.3572C100.093 20.0771 99.7436 21.1252 99.7436 22.5016V32.2205H95.297V22.5016C95.297 21.1252 94.9477 20.0771 94.2489 19.3572C93.5502 18.6161 92.5974 18.2456 91.3904 18.2456C90.1623 18.2456 89.1883 18.6161 88.4684 19.3572C87.7697 20.0771 87.4203 21.1252 87.4203 22.5016V32.2205H82.9737V14.6248H87.4203V16.7528C87.992 16.0117 88.7225 15.4294 89.6118 15.0059C90.5223 14.5824 91.5175 14.3707 92.5974 14.3707C93.9737 14.3707 95.2018 14.6671 96.2816 15.26C97.3615 15.8317 98.1979 16.6575 98.7908 17.7374C99.3625 16.721 100.188 15.9058 101.268 15.2918C102.369 14.6777 103.555 14.3707 104.825 14.3707ZM132.294 23.0415C132.294 23.6767 132.252 24.2484 132.167 24.7566H119.304C119.41 26.027 119.854 27.0222 120.638 27.7421C121.421 28.4621 122.385 28.822 123.528 28.822C125.18 28.822 126.355 28.1127 127.053 26.694H131.849C131.341 28.3879 130.367 29.7854 128.927 30.8865C127.488 31.9664 125.72 32.5063 123.623 32.5063C121.929 32.5063 120.405 32.1358 119.05 31.3947C117.716 30.6324 116.668 29.5631 115.905 28.1868C115.164 26.8105 114.794 25.2224 114.794 23.4226C114.794 21.6017 115.164 20.003 115.905 18.6267C116.646 17.2504 117.684 16.1917 119.018 15.4506C120.352 14.7095 121.887 14.3389 123.623 14.3389C125.296 14.3389 126.789 14.6989 128.102 15.4188C129.436 16.1387 130.462 17.1657 131.182 18.4996C131.924 19.8124 132.294 21.3264 132.294 23.0415ZM127.689 21.771C127.668 20.6276 127.255 19.7172 126.45 19.0396C125.645 18.3408 124.661 17.9915 123.496 17.9915C122.395 17.9915 121.464 18.3303 120.701 19.0078C119.96 19.6642 119.505 20.5853 119.336 21.771H127.689ZM141.955 32.5063C140.516 32.5063 139.224 32.2522 138.081 31.744C136.937 31.2147 136.027 30.5054 135.349 29.616C134.693 28.7267 134.333 27.7421 134.269 26.6623H138.748C138.832 27.3398 139.16 27.9009 139.732 28.3456C140.325 28.7903 141.055 29.0126 141.924 29.0126C142.771 29.0126 143.427 28.8432 143.893 28.5044C144.38 28.1656 144.623 27.7316 144.623 27.2022C144.623 26.6305 144.327 26.207 143.734 25.9318C143.162 25.6353 142.241 25.3177 140.971 24.9789C139.658 24.6613 138.578 24.3331 137.731 23.9943C136.905 23.6555 136.185 23.1368 135.571 22.438C134.979 21.7393 134.682 20.797 134.682 19.6113C134.682 18.6373 134.957 17.748 135.508 16.9434C136.08 16.1387 136.884 15.5035 137.922 15.0377C138.98 14.5719 140.219 14.3389 141.638 14.3389C143.734 14.3389 145.407 14.8683 146.656 15.927C147.905 16.9645 148.593 18.3726 148.721 20.1512H144.465C144.401 19.4525 144.105 18.902 143.575 18.4996C143.067 18.0762 142.379 17.8644 141.511 17.8644C140.706 17.8644 140.081 18.0126 139.637 18.3091C139.213 18.6055 139.002 19.0184 139.002 19.5478C139.002 20.1406 139.298 20.5959 139.891 20.9135C140.484 21.2099 141.405 21.517 142.654 21.8346C143.925 22.1522 144.973 22.4804 145.798 22.8192C146.624 23.1579 147.334 23.6873 147.926 24.4072C148.541 25.106 148.858 26.0376 148.879 27.2022C148.879 28.2186 148.593 29.129 148.022 29.9337C147.471 30.7383 146.667 31.3735 145.608 31.8393C144.57 32.284 143.353 32.5063 141.955 32.5063Z" fill="#605DC8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 948 B |
@@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Homes</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Protractor support is deprecated in Angular.
|
||||
* Protractor is used in this example for compatibility with Angular documentation tools.
|
||||
*/
|
||||
import { bootstrapApplication,provideProtractorTestingSupport } from '@angular/platform-browser';
|
||||
import { AppComponent } from './app/app.component';
|
||||
|
||||
bootstrapApplication(AppComponent,
|
||||
{providers: [provideProtractorTestingSupport()]})
|
||||
.catch(err => console.error(err));
|
||||
@@ -0,0 +1,23 @@
|
||||
/* You can add global styles to this file, and also import other style files */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Be Vietnam Pro', sans-serif;
|
||||
}
|
||||
:root {
|
||||
--primary-color: #605DC8;
|
||||
--secondary-color: #8B89E6;
|
||||
--accent-color: #e8e7fa;
|
||||
--shadow-color: #E8E8E8;
|
||||
}
|
||||
|
||||
button.primary {
|
||||
padding: 10px;
|
||||
border: solid 1px var(--primary-color);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"description": "Angular - First App - Lesson 02",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"tags": [
|
||||
[
|
||||
"first",
|
||||
"angular",
|
||||
"app",
|
||||
"lesson",
|
||||
"02"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
load("//aio/content/examples:examples.bzl", "docs_example")
|
||||
load("@aio_npm//@angular/build-tooling/bazel/remote-execution:index.bzl", "ENABLE_NETWORK")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
docs_example(
|
||||
name = "first-app-lesson-03",
|
||||
# This example downloads fonts and images from googleapis.com
|
||||
test_exec_properties = ENABLE_NETWORK,
|
||||
test_tags = ["requires-network"],
|
||||
)
|
||||
@@ -0,0 +1,31 @@
|
||||
import { browser, element, by, logging } from 'protractor';
|
||||
|
||||
describe('first-app-lesson-03 app', () => {
|
||||
|
||||
beforeEach(() => browser.get(''));
|
||||
|
||||
it('should display correct title', async () => {
|
||||
expect(await element.all(by.css('.brand-logo')).get(0).getAttribute('src')).toContain('/assets/logo.svg');
|
||||
});
|
||||
|
||||
it('should have a filter string input', async () => {
|
||||
expect(await element.all(by.css('input')).get(0).getAttribute('placeholder')).toEqual('Filter by city');
|
||||
expect(await element.all(by.css('input')).get(0).getAttribute('type')).toEqual('text');
|
||||
});
|
||||
|
||||
it('should have a search button', async () => {
|
||||
expect(await element.all(by.css('button')).get(0).getText()).toEqual('Search');
|
||||
});
|
||||
|
||||
it('should have a template housing-location component', async () => {
|
||||
expect(await element.all(by.css('app-housing-location > p')).get(0).getText()).toEqual('housing-location works!');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Assert that there are no errors emitted from the browser
|
||||
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||
expect(logs).not.toContain(jasmine.objectContaining({
|
||||
level: logging.Level.SEVERE,
|
||||
} as logging.Entry));
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"useCommonBoilerplate": false,
|
||||
"overrideBoilerplate": [
|
||||
"src/styles.css"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
:host {
|
||||
--content-padding: 10px;
|
||||
}
|
||||
header {
|
||||
display: block;
|
||||
height: 60px;
|
||||
padding: var(--content-padding);
|
||||
box-shadow: 0px 5px 25px var(--shadow-color);
|
||||
}
|
||||
.content {
|
||||
padding: var(--content-padding);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { HomeComponent } from './home/home.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
standalone: true,
|
||||
imports: [
|
||||
HomeComponent,
|
||||
],
|
||||
template: `
|
||||
<main>
|
||||
<header class="brand-name">
|
||||
<img class="brand-logo" src="/assets/logo.svg" alt="logo" aria-hidden="true">
|
||||
</header>
|
||||
<section class="content">
|
||||
<app-home></app-home>
|
||||
</section>
|
||||
</main>
|
||||
`,
|
||||
styleUrls: ['./app.component.css'],
|
||||
})
|
||||
export class AppComponent {
|
||||
title = 'homes';
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
.results {
|
||||
display: grid;
|
||||
column-gap: 14px;
|
||||
row-gap: 14px;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
input[type='text'] {
|
||||
border: solid 1px var(--primary-color);
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
margin-right: 4px;
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px;
|
||||
border: solid 1px var(--primary-color);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
@media (min-width: 500px) and (max-width: 768px) {
|
||||
.results {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
input[type='text'] {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 499px) {
|
||||
.results {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { HousingLocationComponent } from '../housing-location/housing-location.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-home',
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule,
|
||||
HousingLocationComponent
|
||||
],
|
||||
template: `
|
||||
<section>
|
||||
<form>
|
||||
<input type="text" placeholder="Filter by city">
|
||||
<button class="primary" type="button">Search</button>
|
||||
</form>
|
||||
</section>
|
||||
<section class="results">
|
||||
<app-housing-location></app-housing-location>
|
||||
</section>
|
||||
`,
|
||||
styleUrls: ['./home.component.css'],
|
||||
})
|
||||
|
||||
export class HomeComponent {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
.listing {
|
||||
background: var(--accent-color);
|
||||
border-radius: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
.listing-heading {
|
||||
color: var(--primary-color);
|
||||
padding: 10px 10px 0 10px;
|
||||
}
|
||||
.listing-photo {
|
||||
height: 250px;
|
||||
width: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 30px 30px 0 0;
|
||||
}
|
||||
.listing-location {
|
||||
padding: 10px 10px 20px 10px;
|
||||
}
|
||||
.listing-location::before {
|
||||
content: url('/assets/location-pin.svg') / '';
|
||||
}
|
||||
|
||||
section.listing a {
|
||||
padding-left: 10px;
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
section.listing a::after {
|
||||
content: '\203A';
|
||||
margin-left: 5px;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-housing-location',
|
||||
standalone: true,
|
||||
imports: [CommonModule],
|
||||
template: `
|
||||
<p>
|
||||
housing-location works!
|
||||
</p>
|
||||
`,
|
||||
styleUrls: ['./housing-location.component.css'],
|
||||
})
|
||||
|
||||
export class HousingLocationComponent {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="20pt" height="20pt" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m50 11.602c-15.398 0-27.898 12.5-27.898 27.898 0 5 1.3008 9.6992 3.6016 13.801l2.8984 4.1992 21.398 30.898 21.801-31.398 2.1992-3.1992c2.5-4.1992 3.8984-9 3.8984-14.199 0-15.5-12.5-28-27.898-28zm0 35.598c-4.1992 0-7.6992-3.3984-7.6992-7.6992s3.3984-7.6992 7.6992-7.6992 7.6992 3.3984 7.6992 7.6992-3.5 7.6992-7.6992 7.6992z" fill="#605cc8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
@@ -0,0 +1,7 @@
|
||||
<svg width="151" height="44" viewBox="0 0 151 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.15532 33.2946C5.25369 33.2946 4.58006 32.5707 4.58006 31.6701V24.0152C4.58006 19.5469 4.35206 20.6276 7.59585 17.4236C21.7317 4.06732 16.2425 4.24744 29.6149 18.054C32.0434 20.7627 31.9985 19.4534 31.9985 23.8316V31.6667C31.9985 32.5707 31.28 33.2912 30.3749 33.2912H6.15532V33.2946Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.896 35.1547L5.73676 35.2586C4.80059 35.2621 3.75042 35.8232 3.37388 36.5229L2.90061 37.4027L0.537726 41.7878L0.140457 42.529C-0.236085 43.2253 0.164639 43.7829 1.10081 43.7795L26.26 43.6756C27.1962 43.6721 28.2464 43.111 28.6229 42.4113L29.0962 41.5315L31.4591 37.1463L31.8563 36.4051C32.2329 35.7089 31.8321 35.1512 30.896 35.1547Z" fill="#605DC8"/>
|
||||
<path d="M2.54861 18.7156C2.23079 18.7156 1.90952 18.629 1.6228 18.4454C0.821352 17.9363 0.5899 16.859 1.09771 16.0554C1.46389 15.4701 2.70061 14.2231 5.50912 11.4659L6.39693 10.5931C8.73218 8.38318 10.5147 6.56817 11.9449 5.10646C15.1679 1.81587 16.7985 0.153263 18.9023 0.222538C20.9888 0.277958 22.4362 1.92325 25.3138 5.19651C26.7267 6.8037 28.4816 8.8023 30.8514 11.2477C30.8652 11.265 30.8825 11.2789 30.8963 11.2962C31.228 11.6634 31.715 12.2003 32.2401 12.7752C33.9743 14.6734 34.8206 15.6086 35.0763 15.9688C35.629 16.7413 35.4494 17.8185 34.679 18.3727C33.9087 18.9234 32.8343 18.7468 32.2816 17.9744C32.0639 17.6869 30.5889 16.0693 29.708 15.1064C29.1863 14.5348 28.6993 14.0014 28.3642 13.6308C25.9495 11.1369 24.1704 9.11057 22.7368 7.4826C21.0233 5.5325 19.4032 3.68977 18.809 3.67245H18.8021C18.1699 3.67245 16.3356 5.54289 14.3976 7.52417C12.9467 9.00666 11.14 10.8494 8.78054 13.0766L7.91001 13.9321C6.74929 15.0717 4.33804 17.4375 3.97877 17.9293C3.65405 18.4454 3.10824 18.7225 2.54515 18.7225L2.54861 18.7156Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.0976 33.2115V26.0588C22.0976 25.4665 21.6174 24.985 21.0267 24.985H15.1955C14.6047 24.985 14.1246 25.4665 14.1246 26.0588V33.2115C14.1246 33.2704 14.1142 33.3293 14.0969 33.3847H22.1252C22.1079 33.3293 22.0976 33.2739 22.0976 33.2115Z" fill="white"/>
|
||||
<path d="M58.9784 10.0512V32.2205H54.5319V22.7874H45.0353V32.2205H40.5887V10.0512H45.0353V19.1666H54.5319V10.0512H58.9784ZM70.8506 32.5063C69.1567 32.5063 67.6322 32.1358 66.277 31.3947C64.9219 30.6324 63.8526 29.5631 63.0692 28.1868C62.3069 26.8105 61.9258 25.2224 61.9258 23.4226C61.9258 21.6228 62.3175 20.0348 63.1009 18.6585C63.9055 17.2821 64.996 16.2234 66.3723 15.4823C67.7486 14.7201 69.2838 14.3389 70.9777 14.3389C72.6716 14.3389 74.2067 14.7201 75.5831 15.4823C76.9594 16.2234 78.0393 17.2821 78.8227 18.6585C79.6273 20.0348 80.0296 21.6228 80.0296 23.4226C80.0296 25.2224 79.6167 26.8105 78.7909 28.1868C77.9863 29.5631 76.8853 30.6324 75.4878 31.3947C74.1115 32.1358 72.5657 32.5063 70.8506 32.5063ZM70.8506 28.6315C71.6553 28.6315 72.4069 28.4409 73.1057 28.0597C73.8256 27.6574 74.3973 27.0646 74.8208 26.2811C75.2443 25.4977 75.456 24.5449 75.456 23.4226C75.456 21.7499 75.0114 20.4688 74.122 19.5795C73.2539 18.669 72.1846 18.2138 70.9142 18.2138C69.6437 18.2138 68.5744 18.669 67.7063 19.5795C66.8593 20.4688 66.4358 21.7499 66.4358 23.4226C66.4358 25.0954 66.8487 26.387 67.6745 27.2975C68.5215 28.1868 69.5802 28.6315 70.8506 28.6315ZM104.825 14.3707C106.985 14.3707 108.721 15.0377 110.034 16.3717C111.368 17.6844 112.035 19.5266 112.035 21.8981V32.2205H107.589V22.5016C107.589 21.1252 107.239 20.0771 106.54 19.3572C105.842 18.6161 104.889 18.2456 103.682 18.2456C102.475 18.2456 101.512 18.6161 100.792 19.3572C100.093 20.0771 99.7436 21.1252 99.7436 22.5016V32.2205H95.297V22.5016C95.297 21.1252 94.9477 20.0771 94.2489 19.3572C93.5502 18.6161 92.5974 18.2456 91.3904 18.2456C90.1623 18.2456 89.1883 18.6161 88.4684 19.3572C87.7697 20.0771 87.4203 21.1252 87.4203 22.5016V32.2205H82.9737V14.6248H87.4203V16.7528C87.992 16.0117 88.7225 15.4294 89.6118 15.0059C90.5223 14.5824 91.5175 14.3707 92.5974 14.3707C93.9737 14.3707 95.2018 14.6671 96.2816 15.26C97.3615 15.8317 98.1979 16.6575 98.7908 17.7374C99.3625 16.721 100.188 15.9058 101.268 15.2918C102.369 14.6777 103.555 14.3707 104.825 14.3707ZM132.294 23.0415C132.294 23.6767 132.252 24.2484 132.167 24.7566H119.304C119.41 26.027 119.854 27.0222 120.638 27.7421C121.421 28.4621 122.385 28.822 123.528 28.822C125.18 28.822 126.355 28.1127 127.053 26.694H131.849C131.341 28.3879 130.367 29.7854 128.927 30.8865C127.488 31.9664 125.72 32.5063 123.623 32.5063C121.929 32.5063 120.405 32.1358 119.05 31.3947C117.716 30.6324 116.668 29.5631 115.905 28.1868C115.164 26.8105 114.794 25.2224 114.794 23.4226C114.794 21.6017 115.164 20.003 115.905 18.6267C116.646 17.2504 117.684 16.1917 119.018 15.4506C120.352 14.7095 121.887 14.3389 123.623 14.3389C125.296 14.3389 126.789 14.6989 128.102 15.4188C129.436 16.1387 130.462 17.1657 131.182 18.4996C131.924 19.8124 132.294 21.3264 132.294 23.0415ZM127.689 21.771C127.668 20.6276 127.255 19.7172 126.45 19.0396C125.645 18.3408 124.661 17.9915 123.496 17.9915C122.395 17.9915 121.464 18.3303 120.701 19.0078C119.96 19.6642 119.505 20.5853 119.336 21.771H127.689ZM141.955 32.5063C140.516 32.5063 139.224 32.2522 138.081 31.744C136.937 31.2147 136.027 30.5054 135.349 29.616C134.693 28.7267 134.333 27.7421 134.269 26.6623H138.748C138.832 27.3398 139.16 27.9009 139.732 28.3456C140.325 28.7903 141.055 29.0126 141.924 29.0126C142.771 29.0126 143.427 28.8432 143.893 28.5044C144.38 28.1656 144.623 27.7316 144.623 27.2022C144.623 26.6305 144.327 26.207 143.734 25.9318C143.162 25.6353 142.241 25.3177 140.971 24.9789C139.658 24.6613 138.578 24.3331 137.731 23.9943C136.905 23.6555 136.185 23.1368 135.571 22.438C134.979 21.7393 134.682 20.797 134.682 19.6113C134.682 18.6373 134.957 17.748 135.508 16.9434C136.08 16.1387 136.884 15.5035 137.922 15.0377C138.98 14.5719 140.219 14.3389 141.638 14.3389C143.734 14.3389 145.407 14.8683 146.656 15.927C147.905 16.9645 148.593 18.3726 148.721 20.1512H144.465C144.401 19.4525 144.105 18.902 143.575 18.4996C143.067 18.0762 142.379 17.8644 141.511 17.8644C140.706 17.8644 140.081 18.0126 139.637 18.3091C139.213 18.6055 139.002 19.0184 139.002 19.5478C139.002 20.1406 139.298 20.5959 139.891 20.9135C140.484 21.2099 141.405 21.517 142.654 21.8346C143.925 22.1522 144.973 22.4804 145.798 22.8192C146.624 23.1579 147.334 23.6873 147.926 24.4072C148.541 25.106 148.858 26.0376 148.879 27.2022C148.879 28.2186 148.593 29.129 148.022 29.9337C147.471 30.7383 146.667 31.3735 145.608 31.8393C144.57 32.284 143.353 32.5063 141.955 32.5063Z" fill="#605DC8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 948 B |
@@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Homes</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Protractor support is deprecated in Angular.
|
||||
* Protractor is used in this example for compatibility with Angular documentation tools.
|
||||
*/
|
||||
import { bootstrapApplication,provideProtractorTestingSupport } from '@angular/platform-browser';
|
||||
import { AppComponent } from './app/app.component';
|
||||
|
||||
bootstrapApplication(AppComponent,
|
||||
{providers: [provideProtractorTestingSupport()]})
|
||||
.catch(err => console.error(err));
|
||||
@@ -0,0 +1,23 @@
|
||||
/* You can add global styles to this file, and also import other style files */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Be Vietnam Pro', sans-serif;
|
||||
}
|
||||
:root {
|
||||
--primary-color: #605DC8;
|
||||
--secondary-color: #8B89E6;
|
||||
--accent-color: #e8e7fa;
|
||||
--shadow-color: #E8E8E8;
|
||||
}
|
||||
|
||||
button.primary {
|
||||
padding: 10px;
|
||||
border: solid 1px var(--primary-color);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"description": "Angular - First App - Lesson 03",
|
||||
"files": [
|
||||
"!**/*.d.ts",
|
||||
"!**/*.js",
|
||||
"!**/*.[1,2].*"
|
||||
],
|
||||
"tags": [
|
||||
[
|
||||
"first",
|
||||
"angular",
|
||||
"app",
|
||||
"lesson",
|
||||
"03"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
load("//aio/content/examples:examples.bzl", "docs_example")
|
||||
load("@aio_npm//@angular/build-tooling/bazel/remote-execution:index.bzl", "ENABLE_NETWORK")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
docs_example(
|
||||
name = "first-app-lesson-04",
|
||||
# This example downloads fonts and images from googleapis.com
|
||||
test_exec_properties = ENABLE_NETWORK,
|
||||
test_tags = ["requires-network"],
|
||||
)
|
||||
@@ -0,0 +1,31 @@
|
||||
import { browser, element, by, logging } from 'protractor';
|
||||
|
||||
describe('first-app-lesson-04 app', () => {
|
||||
|
||||
beforeEach(() => browser.get(''));
|
||||
|
||||
it('should display correct title', async () => {
|
||||
expect(await element.all(by.css('.brand-logo')).get(0).getAttribute('src')).toContain('/assets/logo.svg');
|
||||
});
|
||||
|
||||
it('should have a filter string input', async () => {
|
||||
expect(await element.all(by.css('input')).get(0).getAttribute('placeholder')).toEqual('Filter by city');
|
||||
expect(await element.all(by.css('input')).get(0).getAttribute('type')).toEqual('text');
|
||||
});
|
||||
|
||||
it('should have a search button', async () => {
|
||||
expect(await element.all(by.css('button')).get(0).getText()).toEqual('Search');
|
||||
});
|
||||
|
||||
it('should have a template housing-location component', async () => {
|
||||
expect(await element.all(by.css('app-housing-location > p')).get(0).getText()).toEqual('housing-location works!');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Assert that there are no errors emitted from the browser
|
||||
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||
expect(logs).not.toContain(jasmine.objectContaining({
|
||||
level: logging.Level.SEVERE,
|
||||
} as logging.Entry));
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"useCommonBoilerplate": false,
|
||||
"overrideBoilerplate": [
|
||||
"src/styles.css"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
:host {
|
||||
--content-padding: 10px;
|
||||
}
|
||||
header {
|
||||
display: block;
|
||||
height: 60px;
|
||||
padding: var(--content-padding);
|
||||
box-shadow: 0px 5px 25px var(--shadow-color);
|
||||
}
|
||||
.content {
|
||||
padding: var(--content-padding);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { HomeComponent } from './home/home.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
standalone: true,
|
||||
imports: [
|
||||
HomeComponent,
|
||||
],
|
||||
template: `
|
||||
<main>
|
||||
<header class="brand-name">
|
||||
<img class="brand-logo" src="/assets/logo.svg" alt="logo" aria-hidden="true">
|
||||
</header>
|
||||
<section class="content">
|
||||
<app-home></app-home>
|
||||
</section>
|
||||
</main>
|
||||
`,
|
||||
styleUrls: ['./app.component.css'],
|
||||
})
|
||||
export class AppComponent {
|
||||
title = 'homes';
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
.results {
|
||||
display: grid;
|
||||
column-gap: 14px;
|
||||
row-gap: 14px;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
input[type='text'] {
|
||||
border: solid 1px var(--primary-color);
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
margin-right: 4px;
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px;
|
||||
border: solid 1px var(--primary-color);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
@media (min-width: 500px) and (max-width: 768px) {
|
||||
.results {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
input[type='text'] {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 499px) {
|
||||
.results {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { HousingLocationComponent } from '../housing-location/housing-location.component';
|
||||
import { HousingLocation } from '../housinglocation';
|
||||
|
||||
@Component({
|
||||
selector: 'app-home',
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule,
|
||||
HousingLocationComponent
|
||||
],
|
||||
template: `
|
||||
<section>
|
||||
<form>
|
||||
<input type="text" placeholder="Filter by city">
|
||||
<button class="primary" type="button">Search</button>
|
||||
</form>
|
||||
</section>
|
||||
<section class="results">
|
||||
<app-housing-location></app-housing-location>
|
||||
</section>
|
||||
`,
|
||||
styleUrls: ['./home.component.css'],
|
||||
})
|
||||
|
||||
export class HomeComponent {
|
||||
private img_server = "https://storage.googleapis.com/angular-tutorial-assets/first-app/";
|
||||
onlyHouse: HousingLocation;
|
||||
|
||||
constructor() {
|
||||
this.onlyHouse = {
|
||||
id: 9999,
|
||||
name: 'Test Home',
|
||||
city: 'Test city',
|
||||
state: 'ST',
|
||||
photo: this.img_server + 'house_0.png',
|
||||
availableUnits: 99,
|
||||
wifi: true,
|
||||
laundry: false,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
.listing {
|
||||
background: var(--accent-color);
|
||||
border-radius: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
.listing-heading {
|
||||
color: var(--primary-color);
|
||||
padding: 10px 10px 0 10px;
|
||||
}
|
||||
.listing-photo {
|
||||
height: 250px;
|
||||
width: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 30px 30px 0 0;
|
||||
}
|
||||
.listing-location {
|
||||
padding: 10px 10px 20px 10px;
|
||||
}
|
||||
.listing-location::before {
|
||||
content: url('/assets/location-pin.svg') / '';
|
||||
}
|
||||
|
||||
section.listing a {
|
||||
padding-left: 10px;
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
section.listing a::after {
|
||||
content: '\203A';
|
||||
margin-left: 5px;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-housing-location',
|
||||
standalone: true,
|
||||
imports: [CommonModule],
|
||||
template: `
|
||||
<p>
|
||||
housing-location works!
|
||||
</p>
|
||||
`,
|
||||
styleUrls: ['./housing-location.component.css'],
|
||||
})
|
||||
|
||||
export class HousingLocationComponent {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
export interface HousingLocation {
|
||||
id: number;
|
||||
name: string;
|
||||
city: string;
|
||||
state: string;
|
||||
photo: string;
|
||||
availableUnits: number;
|
||||
wifi: boolean;
|
||||
laundry: boolean;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="20pt" height="20pt" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m50 11.602c-15.398 0-27.898 12.5-27.898 27.898 0 5 1.3008 9.6992 3.6016 13.801l2.8984 4.1992 21.398 30.898 21.801-31.398 2.1992-3.1992c2.5-4.1992 3.8984-9 3.8984-14.199 0-15.5-12.5-28-27.898-28zm0 35.598c-4.1992 0-7.6992-3.3984-7.6992-7.6992s3.3984-7.6992 7.6992-7.6992 7.6992 3.3984 7.6992 7.6992-3.5 7.6992-7.6992 7.6992z" fill="#605cc8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
@@ -0,0 +1,7 @@
|
||||
<svg width="151" height="44" viewBox="0 0 151 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.15532 33.2946C5.25369 33.2946 4.58006 32.5707 4.58006 31.6701V24.0152C4.58006 19.5469 4.35206 20.6276 7.59585 17.4236C21.7317 4.06732 16.2425 4.24744 29.6149 18.054C32.0434 20.7627 31.9985 19.4534 31.9985 23.8316V31.6667C31.9985 32.5707 31.28 33.2912 30.3749 33.2912H6.15532V33.2946Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.896 35.1547L5.73676 35.2586C4.80059 35.2621 3.75042 35.8232 3.37388 36.5229L2.90061 37.4027L0.537726 41.7878L0.140457 42.529C-0.236085 43.2253 0.164639 43.7829 1.10081 43.7795L26.26 43.6756C27.1962 43.6721 28.2464 43.111 28.6229 42.4113L29.0962 41.5315L31.4591 37.1463L31.8563 36.4051C32.2329 35.7089 31.8321 35.1512 30.896 35.1547Z" fill="#605DC8"/>
|
||||
<path d="M2.54861 18.7156C2.23079 18.7156 1.90952 18.629 1.6228 18.4454C0.821352 17.9363 0.5899 16.859 1.09771 16.0554C1.46389 15.4701 2.70061 14.2231 5.50912 11.4659L6.39693 10.5931C8.73218 8.38318 10.5147 6.56817 11.9449 5.10646C15.1679 1.81587 16.7985 0.153263 18.9023 0.222538C20.9888 0.277958 22.4362 1.92325 25.3138 5.19651C26.7267 6.8037 28.4816 8.8023 30.8514 11.2477C30.8652 11.265 30.8825 11.2789 30.8963 11.2962C31.228 11.6634 31.715 12.2003 32.2401 12.7752C33.9743 14.6734 34.8206 15.6086 35.0763 15.9688C35.629 16.7413 35.4494 17.8185 34.679 18.3727C33.9087 18.9234 32.8343 18.7468 32.2816 17.9744C32.0639 17.6869 30.5889 16.0693 29.708 15.1064C29.1863 14.5348 28.6993 14.0014 28.3642 13.6308C25.9495 11.1369 24.1704 9.11057 22.7368 7.4826C21.0233 5.5325 19.4032 3.68977 18.809 3.67245H18.8021C18.1699 3.67245 16.3356 5.54289 14.3976 7.52417C12.9467 9.00666 11.14 10.8494 8.78054 13.0766L7.91001 13.9321C6.74929 15.0717 4.33804 17.4375 3.97877 17.9293C3.65405 18.4454 3.10824 18.7225 2.54515 18.7225L2.54861 18.7156Z" fill="#605DC8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.0976 33.2115V26.0588C22.0976 25.4665 21.6174 24.985 21.0267 24.985H15.1955C14.6047 24.985 14.1246 25.4665 14.1246 26.0588V33.2115C14.1246 33.2704 14.1142 33.3293 14.0969 33.3847H22.1252C22.1079 33.3293 22.0976 33.2739 22.0976 33.2115Z" fill="white"/>
|
||||
<path d="M58.9784 10.0512V32.2205H54.5319V22.7874H45.0353V32.2205H40.5887V10.0512H45.0353V19.1666H54.5319V10.0512H58.9784ZM70.8506 32.5063C69.1567 32.5063 67.6322 32.1358 66.277 31.3947C64.9219 30.6324 63.8526 29.5631 63.0692 28.1868C62.3069 26.8105 61.9258 25.2224 61.9258 23.4226C61.9258 21.6228 62.3175 20.0348 63.1009 18.6585C63.9055 17.2821 64.996 16.2234 66.3723 15.4823C67.7486 14.7201 69.2838 14.3389 70.9777 14.3389C72.6716 14.3389 74.2067 14.7201 75.5831 15.4823C76.9594 16.2234 78.0393 17.2821 78.8227 18.6585C79.6273 20.0348 80.0296 21.6228 80.0296 23.4226C80.0296 25.2224 79.6167 26.8105 78.7909 28.1868C77.9863 29.5631 76.8853 30.6324 75.4878 31.3947C74.1115 32.1358 72.5657 32.5063 70.8506 32.5063ZM70.8506 28.6315C71.6553 28.6315 72.4069 28.4409 73.1057 28.0597C73.8256 27.6574 74.3973 27.0646 74.8208 26.2811C75.2443 25.4977 75.456 24.5449 75.456 23.4226C75.456 21.7499 75.0114 20.4688 74.122 19.5795C73.2539 18.669 72.1846 18.2138 70.9142 18.2138C69.6437 18.2138 68.5744 18.669 67.7063 19.5795C66.8593 20.4688 66.4358 21.7499 66.4358 23.4226C66.4358 25.0954 66.8487 26.387 67.6745 27.2975C68.5215 28.1868 69.5802 28.6315 70.8506 28.6315ZM104.825 14.3707C106.985 14.3707 108.721 15.0377 110.034 16.3717C111.368 17.6844 112.035 19.5266 112.035 21.8981V32.2205H107.589V22.5016C107.589 21.1252 107.239 20.0771 106.54 19.3572C105.842 18.6161 104.889 18.2456 103.682 18.2456C102.475 18.2456 101.512 18.6161 100.792 19.3572C100.093 20.0771 99.7436 21.1252 99.7436 22.5016V32.2205H95.297V22.5016C95.297 21.1252 94.9477 20.0771 94.2489 19.3572C93.5502 18.6161 92.5974 18.2456 91.3904 18.2456C90.1623 18.2456 89.1883 18.6161 88.4684 19.3572C87.7697 20.0771 87.4203 21.1252 87.4203 22.5016V32.2205H82.9737V14.6248H87.4203V16.7528C87.992 16.0117 88.7225 15.4294 89.6118 15.0059C90.5223 14.5824 91.5175 14.3707 92.5974 14.3707C93.9737 14.3707 95.2018 14.6671 96.2816 15.26C97.3615 15.8317 98.1979 16.6575 98.7908 17.7374C99.3625 16.721 100.188 15.9058 101.268 15.2918C102.369 14.6777 103.555 14.3707 104.825 14.3707ZM132.294 23.0415C132.294 23.6767 132.252 24.2484 132.167 24.7566H119.304C119.41 26.027 119.854 27.0222 120.638 27.7421C121.421 28.4621 122.385 28.822 123.528 28.822C125.18 28.822 126.355 28.1127 127.053 26.694H131.849C131.341 28.3879 130.367 29.7854 128.927 30.8865C127.488 31.9664 125.72 32.5063 123.623 32.5063C121.929 32.5063 120.405 32.1358 119.05 31.3947C117.716 30.6324 116.668 29.5631 115.905 28.1868C115.164 26.8105 114.794 25.2224 114.794 23.4226C114.794 21.6017 115.164 20.003 115.905 18.6267C116.646 17.2504 117.684 16.1917 119.018 15.4506C120.352 14.7095 121.887 14.3389 123.623 14.3389C125.296 14.3389 126.789 14.6989 128.102 15.4188C129.436 16.1387 130.462 17.1657 131.182 18.4996C131.924 19.8124 132.294 21.3264 132.294 23.0415ZM127.689 21.771C127.668 20.6276 127.255 19.7172 126.45 19.0396C125.645 18.3408 124.661 17.9915 123.496 17.9915C122.395 17.9915 121.464 18.3303 120.701 19.0078C119.96 19.6642 119.505 20.5853 119.336 21.771H127.689ZM141.955 32.5063C140.516 32.5063 139.224 32.2522 138.081 31.744C136.937 31.2147 136.027 30.5054 135.349 29.616C134.693 28.7267 134.333 27.7421 134.269 26.6623H138.748C138.832 27.3398 139.16 27.9009 139.732 28.3456C140.325 28.7903 141.055 29.0126 141.924 29.0126C142.771 29.0126 143.427 28.8432 143.893 28.5044C144.38 28.1656 144.623 27.7316 144.623 27.2022C144.623 26.6305 144.327 26.207 143.734 25.9318C143.162 25.6353 142.241 25.3177 140.971 24.9789C139.658 24.6613 138.578 24.3331 137.731 23.9943C136.905 23.6555 136.185 23.1368 135.571 22.438C134.979 21.7393 134.682 20.797 134.682 19.6113C134.682 18.6373 134.957 17.748 135.508 16.9434C136.08 16.1387 136.884 15.5035 137.922 15.0377C138.98 14.5719 140.219 14.3389 141.638 14.3389C143.734 14.3389 145.407 14.8683 146.656 15.927C147.905 16.9645 148.593 18.3726 148.721 20.1512H144.465C144.401 19.4525 144.105 18.902 143.575 18.4996C143.067 18.0762 142.379 17.8644 141.511 17.8644C140.706 17.8644 140.081 18.0126 139.637 18.3091C139.213 18.6055 139.002 19.0184 139.002 19.5478C139.002 20.1406 139.298 20.5959 139.891 20.9135C140.484 21.2099 141.405 21.517 142.654 21.8346C143.925 22.1522 144.973 22.4804 145.798 22.8192C146.624 23.1579 147.334 23.6873 147.926 24.4072C148.541 25.106 148.858 26.0376 148.879 27.2022C148.879 28.2186 148.593 29.129 148.022 29.9337C147.471 30.7383 146.667 31.3735 145.608 31.8393C144.57 32.284 143.353 32.5063 141.955 32.5063Z" fill="#605DC8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.5 KiB |