From 06472cd41d94443c2984a1a9ff0f83533a9e5966 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 22 Sep 2022 17:52:29 +0400 Subject: [PATCH] Add angular roadmap content skeleton --- content/roadmaps.json | 1 + .../roadmaps/104-angular/content-paths.json | 79 + .../100-what-is-typescript.md | 1 + .../101-why-use-typescript.md | 1 + .../102-structural-typing.md | 1 + .../103-type-inference.md | 1 + .../100-typescript-basics/104-union-types.md | 1 + .../105-builtin-types.md | 1 + .../100-typescript-basics/106-type-guard.md | 1 + .../content/100-typescript-basics/readme.md | 1 + .../101-rxjs-basics/100-observable-pattern.md | 1 + .../101-observable-lifecycle.md | 1 + .../101-rxjs-basics/102-marble-diagrams.md | 1 + .../101-rxjs-basics/103-rxjs-vs-promises.md | 1 + .../104-operators/100-filtering.md | 1 + .../104-operators/101-rate-limiting.md | 1 + .../104-operators/102-transformation.md | 1 + .../104-operators/103-combination.md | 1 + .../101-rxjs-basics/104-operators/readme.md | 1 + .../content/101-rxjs-basics/readme.md | 1 + .../100-angularjs-vs-angular.md | 1 + .../101-angular-components.md | 1 + .../102-angular-templates.md | 1 + .../102-angular-basics/103-angular-modules.md | 1 + .../104-dependency-injection.md | 1 + .../102-angular-basics/105-services.md | 1 + .../content/102-angular-basics/106-routing.md | 1 + .../content/102-angular-basics/readme.md | 1 + .../content/103-angular-cli/100-ng-build.md | 1 + .../content/103-angular-cli/101-ng-serve.md | 1 + .../103-angular-cli/102-ng-generate.md | 1 + .../content/103-angular-cli/103-ng-test.md | 1 + .../content/103-angular-cli/104-ng-e2e.md | 1 + .../content/103-angular-cli/105-ng-new.md | 1 + .../content/103-angular-cli/106-schematics.md | 1 + .../content/103-angular-cli/readme.md | 1 + .../104-templates/100-interpolation.md | 1 + .../104-templates/101-property-binding.md | 1 + .../104-templates/102-template-statements.md | 1 + .../103-binding-data-props-attrs-events.md | 1 + .../104-templates/104-reference-vars.md | 1 + .../content/104-templates/105-input-output.md | 1 + .../content/104-templates/readme.md | 1 + .../100-builtin-directives.md | 1 + .../105-rendering-topics/101-builtin-pipes.md | 1 + .../102-change-detection.md | 1 + .../content/105-rendering-topics/readme.md | 1 + .../content/106-forms/100-reactive-forms.md | 1 + .../106-forms/101-template-driven-forms.md | 1 + .../104-angular/content/106-forms/readme.md | 1 + .../content/107-routing/100-configuration.md | 1 + .../content/107-routing/101-router-outlets.md | 1 + .../content/107-routing/102-router-links.md | 1 + .../content/107-routing/103-router-events.md | 1 + .../content/107-routing/104-guards.md | 1 + .../content/107-routing/105-lazy-loading.md | 1 + .../104-angular/content/107-routing/readme.md | 1 + .../100-dependency-injection.md | 1 + .../108-services-remote-data/readme.md | 1 + .../content/109-lifecycle-hooks.md | 1 + .../content/110-state-management/100-ngxs.md | 1 + .../content/110-state-management/101-ngrx.md | 1 + .../content/110-state-management/readme.md | 1 + .../roadmaps/104-angular/content/111-zones.md | 1 + .../112-creating-a-custom-x/100-directive.md | 1 + .../112-creating-a-custom-x/101-pipe.md | 1 + .../112-creating-a-custom-x/102-library.md | 1 + .../content/112-creating-a-custom-x/readme.md | 1 + .../113-angular-ssr/100-angular-universal.md | 1 + .../content/113-angular-ssr/readme.md | 1 + .../content/114-angular-ssg/100-scully.md | 1 + .../content/114-angular-ssg/readme.md | 1 + .../100-testing-pipes.md | 1 + .../101-testing-services.md | 1 + .../102-testing-component-bindings.md | 1 + .../103-testing-directives.md | 1 + .../104-testing-component-templates.md | 1 + .../115-testing-angular-apps/readme.md | 1 + .../roadmaps/104-angular/content/readme.md | 1 + content/roadmaps/104-angular/meta.json | 5 +- public/project/angular.json | 7180 ++++++++++------- public/sitemap.xml | 2 +- 82 files changed, 4511 insertions(+), 2833 deletions(-) create mode 100644 content/roadmaps/104-angular/content-paths.json create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/100-what-is-typescript.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/101-why-use-typescript.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/102-structural-typing.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/103-type-inference.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/104-union-types.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/105-builtin-types.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/106-type-guard.md create mode 100644 content/roadmaps/104-angular/content/100-typescript-basics/readme.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/100-observable-pattern.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/101-observable-lifecycle.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/102-marble-diagrams.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/103-rxjs-vs-promises.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/100-filtering.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/102-transformation.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/103-combination.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/readme.md create mode 100644 content/roadmaps/104-angular/content/101-rxjs-basics/readme.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/100-angularjs-vs-angular.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/101-angular-components.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/102-angular-templates.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/103-angular-modules.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/104-dependency-injection.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/105-services.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/106-routing.md create mode 100644 content/roadmaps/104-angular/content/102-angular-basics/readme.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/100-ng-build.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/101-ng-serve.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/102-ng-generate.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/103-ng-test.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/104-ng-e2e.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/105-ng-new.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/106-schematics.md create mode 100644 content/roadmaps/104-angular/content/103-angular-cli/readme.md create mode 100644 content/roadmaps/104-angular/content/104-templates/100-interpolation.md create mode 100644 content/roadmaps/104-angular/content/104-templates/101-property-binding.md create mode 100644 content/roadmaps/104-angular/content/104-templates/102-template-statements.md create mode 100644 content/roadmaps/104-angular/content/104-templates/103-binding-data-props-attrs-events.md create mode 100644 content/roadmaps/104-angular/content/104-templates/104-reference-vars.md create mode 100644 content/roadmaps/104-angular/content/104-templates/105-input-output.md create mode 100644 content/roadmaps/104-angular/content/104-templates/readme.md create mode 100644 content/roadmaps/104-angular/content/105-rendering-topics/100-builtin-directives.md create mode 100644 content/roadmaps/104-angular/content/105-rendering-topics/101-builtin-pipes.md create mode 100644 content/roadmaps/104-angular/content/105-rendering-topics/102-change-detection.md create mode 100644 content/roadmaps/104-angular/content/105-rendering-topics/readme.md create mode 100644 content/roadmaps/104-angular/content/106-forms/100-reactive-forms.md create mode 100644 content/roadmaps/104-angular/content/106-forms/101-template-driven-forms.md create mode 100644 content/roadmaps/104-angular/content/106-forms/readme.md create mode 100644 content/roadmaps/104-angular/content/107-routing/100-configuration.md create mode 100644 content/roadmaps/104-angular/content/107-routing/101-router-outlets.md create mode 100644 content/roadmaps/104-angular/content/107-routing/102-router-links.md create mode 100644 content/roadmaps/104-angular/content/107-routing/103-router-events.md create mode 100644 content/roadmaps/104-angular/content/107-routing/104-guards.md create mode 100644 content/roadmaps/104-angular/content/107-routing/105-lazy-loading.md create mode 100644 content/roadmaps/104-angular/content/107-routing/readme.md create mode 100644 content/roadmaps/104-angular/content/108-services-remote-data/100-dependency-injection.md create mode 100644 content/roadmaps/104-angular/content/108-services-remote-data/readme.md create mode 100644 content/roadmaps/104-angular/content/109-lifecycle-hooks.md create mode 100644 content/roadmaps/104-angular/content/110-state-management/100-ngxs.md create mode 100644 content/roadmaps/104-angular/content/110-state-management/101-ngrx.md create mode 100644 content/roadmaps/104-angular/content/110-state-management/readme.md create mode 100644 content/roadmaps/104-angular/content/111-zones.md create mode 100644 content/roadmaps/104-angular/content/112-creating-a-custom-x/100-directive.md create mode 100644 content/roadmaps/104-angular/content/112-creating-a-custom-x/101-pipe.md create mode 100644 content/roadmaps/104-angular/content/112-creating-a-custom-x/102-library.md create mode 100644 content/roadmaps/104-angular/content/112-creating-a-custom-x/readme.md create mode 100644 content/roadmaps/104-angular/content/113-angular-ssr/100-angular-universal.md create mode 100644 content/roadmaps/104-angular/content/113-angular-ssr/readme.md create mode 100644 content/roadmaps/104-angular/content/114-angular-ssg/100-scully.md create mode 100644 content/roadmaps/104-angular/content/114-angular-ssg/readme.md create mode 100644 content/roadmaps/104-angular/content/115-testing-angular-apps/100-testing-pipes.md create mode 100644 content/roadmaps/104-angular/content/115-testing-angular-apps/101-testing-services.md create mode 100644 content/roadmaps/104-angular/content/115-testing-angular-apps/102-testing-component-bindings.md create mode 100644 content/roadmaps/104-angular/content/115-testing-angular-apps/103-testing-directives.md create mode 100644 content/roadmaps/104-angular/content/115-testing-angular-apps/104-testing-component-templates.md create mode 100644 content/roadmaps/104-angular/content/115-testing-angular-apps/readme.md create mode 100644 content/roadmaps/104-angular/content/readme.md diff --git a/content/roadmaps.json b/content/roadmaps.json index 31cc78564..16c779f56 100644 --- a/content/roadmaps.json +++ b/content/roadmaps.json @@ -271,6 +271,7 @@ "vue", "nodejs" ], + "contentPathsFilePath": "/roadmaps/104-angular/content-paths.json", "id": "angular", "metaPath": "/roadmaps/104-angular/meta.json", "isUpcoming": false diff --git a/content/roadmaps/104-angular/content-paths.json b/content/roadmaps/104-angular/content-paths.json new file mode 100644 index 000000000..40a7fdde3 --- /dev/null +++ b/content/roadmaps/104-angular/content-paths.json @@ -0,0 +1,79 @@ +{ + "home": "/roadmaps/104-angular/content/readme.md", + "typescript-basics": "/roadmaps/104-angular/content/100-typescript-basics/readme.md", + "typescript-basics:what-is-typescript": "/roadmaps/104-angular/content/100-typescript-basics/100-what-is-typescript.md", + "typescript-basics:why-use-typescript": "/roadmaps/104-angular/content/100-typescript-basics/101-why-use-typescript.md", + "typescript-basics:structural-typing": "/roadmaps/104-angular/content/100-typescript-basics/102-structural-typing.md", + "typescript-basics:type-inference": "/roadmaps/104-angular/content/100-typescript-basics/103-type-inference.md", + "typescript-basics:union-types": "/roadmaps/104-angular/content/100-typescript-basics/104-union-types.md", + "typescript-basics:builtin-types": "/roadmaps/104-angular/content/100-typescript-basics/105-builtin-types.md", + "typescript-basics:type-guard": "/roadmaps/104-angular/content/100-typescript-basics/106-type-guard.md", + "rxjs-basics": "/roadmaps/104-angular/content/101-rxjs-basics/readme.md", + "rxjs-basics:observable-pattern": "/roadmaps/104-angular/content/101-rxjs-basics/100-observable-pattern.md", + "rxjs-basics:observable-lifecycle": "/roadmaps/104-angular/content/101-rxjs-basics/101-observable-lifecycle.md", + "rxjs-basics:marble-diagrams": "/roadmaps/104-angular/content/101-rxjs-basics/102-marble-diagrams.md", + "rxjs-basics:rxjs-vs-promises": "/roadmaps/104-angular/content/101-rxjs-basics/103-rxjs-vs-promises.md", + "rxjs-basics:operators": "/roadmaps/104-angular/content/101-rxjs-basics/104-operators/readme.md", + "rxjs-basics:operators:filtering": "/roadmaps/104-angular/content/101-rxjs-basics/104-operators/100-filtering.md", + "rxjs-basics:operators:rate-limiting": "/roadmaps/104-angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md", + "rxjs-basics:operators:transformation": "/roadmaps/104-angular/content/101-rxjs-basics/104-operators/102-transformation.md", + "rxjs-basics:operators:combination": "/roadmaps/104-angular/content/101-rxjs-basics/104-operators/103-combination.md", + "angular-basics": "/roadmaps/104-angular/content/102-angular-basics/readme.md", + "angular-basics:angularjs-vs-angular": "/roadmaps/104-angular/content/102-angular-basics/100-angularjs-vs-angular.md", + "angular-basics:angular-components": "/roadmaps/104-angular/content/102-angular-basics/101-angular-components.md", + "angular-basics:angular-templates": "/roadmaps/104-angular/content/102-angular-basics/102-angular-templates.md", + "angular-basics:angular-modules": "/roadmaps/104-angular/content/102-angular-basics/103-angular-modules.md", + "angular-basics:dependency-injection": "/roadmaps/104-angular/content/102-angular-basics/104-dependency-injection.md", + "angular-basics:services": "/roadmaps/104-angular/content/102-angular-basics/105-services.md", + "angular-basics:routing": "/roadmaps/104-angular/content/102-angular-basics/106-routing.md", + "angular-cli": "/roadmaps/104-angular/content/103-angular-cli/readme.md", + "angular-cli:ng-build": "/roadmaps/104-angular/content/103-angular-cli/100-ng-build.md", + "angular-cli:ng-serve": "/roadmaps/104-angular/content/103-angular-cli/101-ng-serve.md", + "angular-cli:ng-generate": "/roadmaps/104-angular/content/103-angular-cli/102-ng-generate.md", + "angular-cli:ng-test": "/roadmaps/104-angular/content/103-angular-cli/103-ng-test.md", + "angular-cli:ng-e2e": "/roadmaps/104-angular/content/103-angular-cli/104-ng-e2e.md", + "angular-cli:ng-new": "/roadmaps/104-angular/content/103-angular-cli/105-ng-new.md", + "angular-cli:schematics": "/roadmaps/104-angular/content/103-angular-cli/106-schematics.md", + "templates": "/roadmaps/104-angular/content/104-templates/readme.md", + "templates:interpolation": "/roadmaps/104-angular/content/104-templates/100-interpolation.md", + "templates:property-binding": "/roadmaps/104-angular/content/104-templates/101-property-binding.md", + "templates:template-statements": "/roadmaps/104-angular/content/104-templates/102-template-statements.md", + "templates:binding-data-props-attrs-events": "/roadmaps/104-angular/content/104-templates/103-binding-data-props-attrs-events.md", + "templates:reference-vars": "/roadmaps/104-angular/content/104-templates/104-reference-vars.md", + "templates:input-output": "/roadmaps/104-angular/content/104-templates/105-input-output.md", + "rendering-topics": "/roadmaps/104-angular/content/105-rendering-topics/readme.md", + "rendering-topics:builtin-directives": "/roadmaps/104-angular/content/105-rendering-topics/100-builtin-directives.md", + "rendering-topics:builtin-pipes": "/roadmaps/104-angular/content/105-rendering-topics/101-builtin-pipes.md", + "rendering-topics:change-detection": "/roadmaps/104-angular/content/105-rendering-topics/102-change-detection.md", + "forms": "/roadmaps/104-angular/content/106-forms/readme.md", + "forms:reactive-forms": "/roadmaps/104-angular/content/106-forms/100-reactive-forms.md", + "forms:template-driven-forms": "/roadmaps/104-angular/content/106-forms/101-template-driven-forms.md", + "routing": "/roadmaps/104-angular/content/107-routing/readme.md", + "routing:configuration": "/roadmaps/104-angular/content/107-routing/100-configuration.md", + "routing:router-outlets": "/roadmaps/104-angular/content/107-routing/101-router-outlets.md", + "routing:router-links": "/roadmaps/104-angular/content/107-routing/102-router-links.md", + "routing:router-events": "/roadmaps/104-angular/content/107-routing/103-router-events.md", + "routing:guards": "/roadmaps/104-angular/content/107-routing/104-guards.md", + "routing:lazy-loading": "/roadmaps/104-angular/content/107-routing/105-lazy-loading.md", + "services-remote-data": "/roadmaps/104-angular/content/108-services-remote-data/readme.md", + "services-remote-data:dependency-injection": "/roadmaps/104-angular/content/108-services-remote-data/100-dependency-injection.md", + "lifecycle-hooks": "/roadmaps/104-angular/content/109-lifecycle-hooks.md", + "state-management": "/roadmaps/104-angular/content/110-state-management/readme.md", + "state-management:ngxs": "/roadmaps/104-angular/content/110-state-management/100-ngxs.md", + "state-management:ngrx": "/roadmaps/104-angular/content/110-state-management/101-ngrx.md", + "zones": "/roadmaps/104-angular/content/111-zones.md", + "creating-a-custom-x": "/roadmaps/104-angular/content/112-creating-a-custom-x/readme.md", + "creating-a-custom-x:directive": "/roadmaps/104-angular/content/112-creating-a-custom-x/100-directive.md", + "creating-a-custom-x:pipe": "/roadmaps/104-angular/content/112-creating-a-custom-x/101-pipe.md", + "creating-a-custom-x:library": "/roadmaps/104-angular/content/112-creating-a-custom-x/102-library.md", + "angular-ssr": "/roadmaps/104-angular/content/113-angular-ssr/readme.md", + "angular-ssr:angular-universal": "/roadmaps/104-angular/content/113-angular-ssr/100-angular-universal.md", + "angular-ssg": "/roadmaps/104-angular/content/114-angular-ssg/readme.md", + "angular-ssg:scully": "/roadmaps/104-angular/content/114-angular-ssg/100-scully.md", + "testing-angular-apps": "/roadmaps/104-angular/content/115-testing-angular-apps/readme.md", + "testing-angular-apps:testing-pipes": "/roadmaps/104-angular/content/115-testing-angular-apps/100-testing-pipes.md", + "testing-angular-apps:testing-services": "/roadmaps/104-angular/content/115-testing-angular-apps/101-testing-services.md", + "testing-angular-apps:testing-component-bindings": "/roadmaps/104-angular/content/115-testing-angular-apps/102-testing-component-bindings.md", + "testing-angular-apps:testing-directives": "/roadmaps/104-angular/content/115-testing-angular-apps/103-testing-directives.md", + "testing-angular-apps:testing-component-templates": "/roadmaps/104-angular/content/115-testing-angular-apps/104-testing-component-templates.md" +} \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/100-what-is-typescript.md b/content/roadmaps/104-angular/content/100-typescript-basics/100-what-is-typescript.md new file mode 100644 index 000000000..fbb700b76 --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/100-what-is-typescript.md @@ -0,0 +1 @@ +# What is typescript \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/101-why-use-typescript.md b/content/roadmaps/104-angular/content/100-typescript-basics/101-why-use-typescript.md new file mode 100644 index 000000000..db8a72abc --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/101-why-use-typescript.md @@ -0,0 +1 @@ +# Why use typescript \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/102-structural-typing.md b/content/roadmaps/104-angular/content/100-typescript-basics/102-structural-typing.md new file mode 100644 index 000000000..d5f545dad --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/102-structural-typing.md @@ -0,0 +1 @@ +# Structural typing \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/103-type-inference.md b/content/roadmaps/104-angular/content/100-typescript-basics/103-type-inference.md new file mode 100644 index 000000000..b38016d0d --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/103-type-inference.md @@ -0,0 +1 @@ +# Type inference \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/104-union-types.md b/content/roadmaps/104-angular/content/100-typescript-basics/104-union-types.md new file mode 100644 index 000000000..68d004f8b --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/104-union-types.md @@ -0,0 +1 @@ +# Union types \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/105-builtin-types.md b/content/roadmaps/104-angular/content/100-typescript-basics/105-builtin-types.md new file mode 100644 index 000000000..241fe4570 --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/105-builtin-types.md @@ -0,0 +1 @@ +# Builtin types \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/106-type-guard.md b/content/roadmaps/104-angular/content/100-typescript-basics/106-type-guard.md new file mode 100644 index 000000000..f1cebe6af --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/106-type-guard.md @@ -0,0 +1 @@ +# Type guard \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/100-typescript-basics/readme.md b/content/roadmaps/104-angular/content/100-typescript-basics/readme.md new file mode 100644 index 000000000..5c471a2c6 --- /dev/null +++ b/content/roadmaps/104-angular/content/100-typescript-basics/readme.md @@ -0,0 +1 @@ +# Typescript basics \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/100-observable-pattern.md b/content/roadmaps/104-angular/content/101-rxjs-basics/100-observable-pattern.md new file mode 100644 index 000000000..ea3b5d9fb --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/100-observable-pattern.md @@ -0,0 +1 @@ +# Observable pattern \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/101-observable-lifecycle.md b/content/roadmaps/104-angular/content/101-rxjs-basics/101-observable-lifecycle.md new file mode 100644 index 000000000..317543150 --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/101-observable-lifecycle.md @@ -0,0 +1 @@ +# Observable lifecycle \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/102-marble-diagrams.md b/content/roadmaps/104-angular/content/101-rxjs-basics/102-marble-diagrams.md new file mode 100644 index 000000000..34e624ddc --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/102-marble-diagrams.md @@ -0,0 +1 @@ +# Marble diagrams \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/103-rxjs-vs-promises.md b/content/roadmaps/104-angular/content/101-rxjs-basics/103-rxjs-vs-promises.md new file mode 100644 index 000000000..e07feeedd --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/103-rxjs-vs-promises.md @@ -0,0 +1 @@ +# Rxjs vs promises \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/100-filtering.md b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/100-filtering.md new file mode 100644 index 000000000..a46bebea9 --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/100-filtering.md @@ -0,0 +1 @@ +# Filtering \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md new file mode 100644 index 000000000..2f7164892 --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md @@ -0,0 +1 @@ +# Rate limiting \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/102-transformation.md b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/102-transformation.md new file mode 100644 index 000000000..e6ad4acf4 --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/102-transformation.md @@ -0,0 +1 @@ +# Transformation \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/103-combination.md b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/103-combination.md new file mode 100644 index 000000000..9029b2388 --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/103-combination.md @@ -0,0 +1 @@ +# Combination \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/readme.md b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/readme.md new file mode 100644 index 000000000..4978bc66d --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/readme.md @@ -0,0 +1 @@ +# Operators \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/101-rxjs-basics/readme.md b/content/roadmaps/104-angular/content/101-rxjs-basics/readme.md new file mode 100644 index 000000000..d0969160e --- /dev/null +++ b/content/roadmaps/104-angular/content/101-rxjs-basics/readme.md @@ -0,0 +1 @@ +# Rxjs basics \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/100-angularjs-vs-angular.md b/content/roadmaps/104-angular/content/102-angular-basics/100-angularjs-vs-angular.md new file mode 100644 index 000000000..43c981a6c --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/100-angularjs-vs-angular.md @@ -0,0 +1 @@ +# Angularjs vs angular \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/101-angular-components.md b/content/roadmaps/104-angular/content/102-angular-basics/101-angular-components.md new file mode 100644 index 000000000..1780d85ad --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/101-angular-components.md @@ -0,0 +1 @@ +# Angular components \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/102-angular-templates.md b/content/roadmaps/104-angular/content/102-angular-basics/102-angular-templates.md new file mode 100644 index 000000000..9eedb2e4e --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/102-angular-templates.md @@ -0,0 +1 @@ +# Angular templates \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/103-angular-modules.md b/content/roadmaps/104-angular/content/102-angular-basics/103-angular-modules.md new file mode 100644 index 000000000..9005f0182 --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/103-angular-modules.md @@ -0,0 +1 @@ +# Angular modules \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/104-dependency-injection.md b/content/roadmaps/104-angular/content/102-angular-basics/104-dependency-injection.md new file mode 100644 index 000000000..450bde1c7 --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/104-dependency-injection.md @@ -0,0 +1 @@ +# Dependency injection \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/105-services.md b/content/roadmaps/104-angular/content/102-angular-basics/105-services.md new file mode 100644 index 000000000..a02b5d886 --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/105-services.md @@ -0,0 +1 @@ +# Services \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/106-routing.md b/content/roadmaps/104-angular/content/102-angular-basics/106-routing.md new file mode 100644 index 000000000..5904c1e21 --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/106-routing.md @@ -0,0 +1 @@ +# Routing \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/102-angular-basics/readme.md b/content/roadmaps/104-angular/content/102-angular-basics/readme.md new file mode 100644 index 000000000..926b35ecd --- /dev/null +++ b/content/roadmaps/104-angular/content/102-angular-basics/readme.md @@ -0,0 +1 @@ +# Angular basics \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/100-ng-build.md b/content/roadmaps/104-angular/content/103-angular-cli/100-ng-build.md new file mode 100644 index 000000000..3ede36d2c --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/100-ng-build.md @@ -0,0 +1 @@ +# Ng build \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/101-ng-serve.md b/content/roadmaps/104-angular/content/103-angular-cli/101-ng-serve.md new file mode 100644 index 000000000..1f0509136 --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/101-ng-serve.md @@ -0,0 +1 @@ +# Ng serve \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/102-ng-generate.md b/content/roadmaps/104-angular/content/103-angular-cli/102-ng-generate.md new file mode 100644 index 000000000..57de07068 --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/102-ng-generate.md @@ -0,0 +1 @@ +# Ng generate \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/103-ng-test.md b/content/roadmaps/104-angular/content/103-angular-cli/103-ng-test.md new file mode 100644 index 000000000..fd32cc8a6 --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/103-ng-test.md @@ -0,0 +1 @@ +# Ng test \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/104-ng-e2e.md b/content/roadmaps/104-angular/content/103-angular-cli/104-ng-e2e.md new file mode 100644 index 000000000..3aa9dd551 --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/104-ng-e2e.md @@ -0,0 +1 @@ +# Ng e2e \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/105-ng-new.md b/content/roadmaps/104-angular/content/103-angular-cli/105-ng-new.md new file mode 100644 index 000000000..bfb508d18 --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/105-ng-new.md @@ -0,0 +1 @@ +# Ng new \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/106-schematics.md b/content/roadmaps/104-angular/content/103-angular-cli/106-schematics.md new file mode 100644 index 000000000..68f3d5e3d --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/106-schematics.md @@ -0,0 +1 @@ +# Schematics \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/103-angular-cli/readme.md b/content/roadmaps/104-angular/content/103-angular-cli/readme.md new file mode 100644 index 000000000..5e1e4b333 --- /dev/null +++ b/content/roadmaps/104-angular/content/103-angular-cli/readme.md @@ -0,0 +1 @@ +# Angular cli \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/100-interpolation.md b/content/roadmaps/104-angular/content/104-templates/100-interpolation.md new file mode 100644 index 000000000..691cf495c --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/100-interpolation.md @@ -0,0 +1 @@ +# Interpolation \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/101-property-binding.md b/content/roadmaps/104-angular/content/104-templates/101-property-binding.md new file mode 100644 index 000000000..5f56ef452 --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/101-property-binding.md @@ -0,0 +1 @@ +# Property binding \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/102-template-statements.md b/content/roadmaps/104-angular/content/104-templates/102-template-statements.md new file mode 100644 index 000000000..53276f033 --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/102-template-statements.md @@ -0,0 +1 @@ +# Template statements \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/103-binding-data-props-attrs-events.md b/content/roadmaps/104-angular/content/104-templates/103-binding-data-props-attrs-events.md new file mode 100644 index 000000000..7edf96dec --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/103-binding-data-props-attrs-events.md @@ -0,0 +1 @@ +# Binding data props attrs events \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/104-reference-vars.md b/content/roadmaps/104-angular/content/104-templates/104-reference-vars.md new file mode 100644 index 000000000..54543ca7d --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/104-reference-vars.md @@ -0,0 +1 @@ +# Reference vars \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/105-input-output.md b/content/roadmaps/104-angular/content/104-templates/105-input-output.md new file mode 100644 index 000000000..64006a139 --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/105-input-output.md @@ -0,0 +1 @@ +# Input output \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/104-templates/readme.md b/content/roadmaps/104-angular/content/104-templates/readme.md new file mode 100644 index 000000000..fd5397edd --- /dev/null +++ b/content/roadmaps/104-angular/content/104-templates/readme.md @@ -0,0 +1 @@ +# Templates \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/105-rendering-topics/100-builtin-directives.md b/content/roadmaps/104-angular/content/105-rendering-topics/100-builtin-directives.md new file mode 100644 index 000000000..dfb9c5600 --- /dev/null +++ b/content/roadmaps/104-angular/content/105-rendering-topics/100-builtin-directives.md @@ -0,0 +1 @@ +# Builtin directives \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/105-rendering-topics/101-builtin-pipes.md b/content/roadmaps/104-angular/content/105-rendering-topics/101-builtin-pipes.md new file mode 100644 index 000000000..ca2fc7e54 --- /dev/null +++ b/content/roadmaps/104-angular/content/105-rendering-topics/101-builtin-pipes.md @@ -0,0 +1 @@ +# Builtin pipes \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/105-rendering-topics/102-change-detection.md b/content/roadmaps/104-angular/content/105-rendering-topics/102-change-detection.md new file mode 100644 index 000000000..5b273a428 --- /dev/null +++ b/content/roadmaps/104-angular/content/105-rendering-topics/102-change-detection.md @@ -0,0 +1 @@ +# Change detection \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/105-rendering-topics/readme.md b/content/roadmaps/104-angular/content/105-rendering-topics/readme.md new file mode 100644 index 000000000..63bac718d --- /dev/null +++ b/content/roadmaps/104-angular/content/105-rendering-topics/readme.md @@ -0,0 +1 @@ +# Rendering topics \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/106-forms/100-reactive-forms.md b/content/roadmaps/104-angular/content/106-forms/100-reactive-forms.md new file mode 100644 index 000000000..10ffb066a --- /dev/null +++ b/content/roadmaps/104-angular/content/106-forms/100-reactive-forms.md @@ -0,0 +1 @@ +# Reactive forms \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/106-forms/101-template-driven-forms.md b/content/roadmaps/104-angular/content/106-forms/101-template-driven-forms.md new file mode 100644 index 000000000..206e64697 --- /dev/null +++ b/content/roadmaps/104-angular/content/106-forms/101-template-driven-forms.md @@ -0,0 +1 @@ +# Template driven forms \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/106-forms/readme.md b/content/roadmaps/104-angular/content/106-forms/readme.md new file mode 100644 index 000000000..4c010a860 --- /dev/null +++ b/content/roadmaps/104-angular/content/106-forms/readme.md @@ -0,0 +1 @@ +# Forms \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/100-configuration.md b/content/roadmaps/104-angular/content/107-routing/100-configuration.md new file mode 100644 index 000000000..af4abbfe2 --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/100-configuration.md @@ -0,0 +1 @@ +# Configuration \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/101-router-outlets.md b/content/roadmaps/104-angular/content/107-routing/101-router-outlets.md new file mode 100644 index 000000000..e2f49690f --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/101-router-outlets.md @@ -0,0 +1 @@ +# Router outlets \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/102-router-links.md b/content/roadmaps/104-angular/content/107-routing/102-router-links.md new file mode 100644 index 000000000..ac8fa1f83 --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/102-router-links.md @@ -0,0 +1 @@ +# Router links \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/103-router-events.md b/content/roadmaps/104-angular/content/107-routing/103-router-events.md new file mode 100644 index 000000000..7b8aaf456 --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/103-router-events.md @@ -0,0 +1 @@ +# Router events \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/104-guards.md b/content/roadmaps/104-angular/content/107-routing/104-guards.md new file mode 100644 index 000000000..505206e50 --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/104-guards.md @@ -0,0 +1 @@ +# Guards \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/105-lazy-loading.md b/content/roadmaps/104-angular/content/107-routing/105-lazy-loading.md new file mode 100644 index 000000000..5d92f6288 --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/105-lazy-loading.md @@ -0,0 +1 @@ +# Lazy loading \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/107-routing/readme.md b/content/roadmaps/104-angular/content/107-routing/readme.md new file mode 100644 index 000000000..5904c1e21 --- /dev/null +++ b/content/roadmaps/104-angular/content/107-routing/readme.md @@ -0,0 +1 @@ +# Routing \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/108-services-remote-data/100-dependency-injection.md b/content/roadmaps/104-angular/content/108-services-remote-data/100-dependency-injection.md new file mode 100644 index 000000000..450bde1c7 --- /dev/null +++ b/content/roadmaps/104-angular/content/108-services-remote-data/100-dependency-injection.md @@ -0,0 +1 @@ +# Dependency injection \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/108-services-remote-data/readme.md b/content/roadmaps/104-angular/content/108-services-remote-data/readme.md new file mode 100644 index 000000000..b66ecd41f --- /dev/null +++ b/content/roadmaps/104-angular/content/108-services-remote-data/readme.md @@ -0,0 +1 @@ +# Services remote data \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/109-lifecycle-hooks.md b/content/roadmaps/104-angular/content/109-lifecycle-hooks.md new file mode 100644 index 000000000..08c5ee17c --- /dev/null +++ b/content/roadmaps/104-angular/content/109-lifecycle-hooks.md @@ -0,0 +1 @@ +# Lifecycle hooks \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/110-state-management/100-ngxs.md b/content/roadmaps/104-angular/content/110-state-management/100-ngxs.md new file mode 100644 index 000000000..f57c4c61d --- /dev/null +++ b/content/roadmaps/104-angular/content/110-state-management/100-ngxs.md @@ -0,0 +1 @@ +# Ngxs \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/110-state-management/101-ngrx.md b/content/roadmaps/104-angular/content/110-state-management/101-ngrx.md new file mode 100644 index 000000000..30c9ae709 --- /dev/null +++ b/content/roadmaps/104-angular/content/110-state-management/101-ngrx.md @@ -0,0 +1 @@ +# Ngrx \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/110-state-management/readme.md b/content/roadmaps/104-angular/content/110-state-management/readme.md new file mode 100644 index 000000000..c9ab9d07b --- /dev/null +++ b/content/roadmaps/104-angular/content/110-state-management/readme.md @@ -0,0 +1 @@ +# State management \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/111-zones.md b/content/roadmaps/104-angular/content/111-zones.md new file mode 100644 index 000000000..3921f153e --- /dev/null +++ b/content/roadmaps/104-angular/content/111-zones.md @@ -0,0 +1 @@ +# Zones \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/112-creating-a-custom-x/100-directive.md b/content/roadmaps/104-angular/content/112-creating-a-custom-x/100-directive.md new file mode 100644 index 000000000..677742e3b --- /dev/null +++ b/content/roadmaps/104-angular/content/112-creating-a-custom-x/100-directive.md @@ -0,0 +1 @@ +# Directive \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/112-creating-a-custom-x/101-pipe.md b/content/roadmaps/104-angular/content/112-creating-a-custom-x/101-pipe.md new file mode 100644 index 000000000..0f4544dfb --- /dev/null +++ b/content/roadmaps/104-angular/content/112-creating-a-custom-x/101-pipe.md @@ -0,0 +1 @@ +# Pipe \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/112-creating-a-custom-x/102-library.md b/content/roadmaps/104-angular/content/112-creating-a-custom-x/102-library.md new file mode 100644 index 000000000..677109641 --- /dev/null +++ b/content/roadmaps/104-angular/content/112-creating-a-custom-x/102-library.md @@ -0,0 +1 @@ +# Library \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/112-creating-a-custom-x/readme.md b/content/roadmaps/104-angular/content/112-creating-a-custom-x/readme.md new file mode 100644 index 000000000..a3c31bb2a --- /dev/null +++ b/content/roadmaps/104-angular/content/112-creating-a-custom-x/readme.md @@ -0,0 +1 @@ +# Creating a custom x \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/113-angular-ssr/100-angular-universal.md b/content/roadmaps/104-angular/content/113-angular-ssr/100-angular-universal.md new file mode 100644 index 000000000..3bd416d57 --- /dev/null +++ b/content/roadmaps/104-angular/content/113-angular-ssr/100-angular-universal.md @@ -0,0 +1 @@ +# Angular universal \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/113-angular-ssr/readme.md b/content/roadmaps/104-angular/content/113-angular-ssr/readme.md new file mode 100644 index 000000000..1e4574e34 --- /dev/null +++ b/content/roadmaps/104-angular/content/113-angular-ssr/readme.md @@ -0,0 +1 @@ +# Angular ssr \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/114-angular-ssg/100-scully.md b/content/roadmaps/104-angular/content/114-angular-ssg/100-scully.md new file mode 100644 index 000000000..4b69d862d --- /dev/null +++ b/content/roadmaps/104-angular/content/114-angular-ssg/100-scully.md @@ -0,0 +1 @@ +# Scully \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/114-angular-ssg/readme.md b/content/roadmaps/104-angular/content/114-angular-ssg/readme.md new file mode 100644 index 000000000..c99e199dc --- /dev/null +++ b/content/roadmaps/104-angular/content/114-angular-ssg/readme.md @@ -0,0 +1 @@ +# Angular ssg \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/115-testing-angular-apps/100-testing-pipes.md b/content/roadmaps/104-angular/content/115-testing-angular-apps/100-testing-pipes.md new file mode 100644 index 000000000..bda2ede45 --- /dev/null +++ b/content/roadmaps/104-angular/content/115-testing-angular-apps/100-testing-pipes.md @@ -0,0 +1 @@ +# Testing pipes \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/115-testing-angular-apps/101-testing-services.md b/content/roadmaps/104-angular/content/115-testing-angular-apps/101-testing-services.md new file mode 100644 index 000000000..86756b0ff --- /dev/null +++ b/content/roadmaps/104-angular/content/115-testing-angular-apps/101-testing-services.md @@ -0,0 +1 @@ +# Testing services \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/115-testing-angular-apps/102-testing-component-bindings.md b/content/roadmaps/104-angular/content/115-testing-angular-apps/102-testing-component-bindings.md new file mode 100644 index 000000000..d5bd924f1 --- /dev/null +++ b/content/roadmaps/104-angular/content/115-testing-angular-apps/102-testing-component-bindings.md @@ -0,0 +1 @@ +# Testing component bindings \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/115-testing-angular-apps/103-testing-directives.md b/content/roadmaps/104-angular/content/115-testing-angular-apps/103-testing-directives.md new file mode 100644 index 000000000..42ab6313a --- /dev/null +++ b/content/roadmaps/104-angular/content/115-testing-angular-apps/103-testing-directives.md @@ -0,0 +1 @@ +# Testing directives \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/115-testing-angular-apps/104-testing-component-templates.md b/content/roadmaps/104-angular/content/115-testing-angular-apps/104-testing-component-templates.md new file mode 100644 index 000000000..976db092e --- /dev/null +++ b/content/roadmaps/104-angular/content/115-testing-angular-apps/104-testing-component-templates.md @@ -0,0 +1 @@ +# Testing component templates \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/115-testing-angular-apps/readme.md b/content/roadmaps/104-angular/content/115-testing-angular-apps/readme.md new file mode 100644 index 000000000..27be57f10 --- /dev/null +++ b/content/roadmaps/104-angular/content/115-testing-angular-apps/readme.md @@ -0,0 +1 @@ +# Testing angular apps \ No newline at end of file diff --git a/content/roadmaps/104-angular/content/readme.md b/content/roadmaps/104-angular/content/readme.md new file mode 100644 index 000000000..4e768b56d --- /dev/null +++ b/content/roadmaps/104-angular/content/readme.md @@ -0,0 +1 @@ +# \ No newline at end of file diff --git a/content/roadmaps/104-angular/meta.json b/content/roadmaps/104-angular/meta.json index 94ccf8742..4ff642817 100644 --- a/content/roadmaps/104-angular/meta.json +++ b/content/roadmaps/104-angular/meta.json @@ -41,5 +41,6 @@ "react", "vue", "nodejs" - ] -} + ], + "contentPathsFilePath": "./content-paths.json" +} \ No newline at end of file diff --git a/public/project/angular.json b/public/project/angular.json index a079c558e..51012bf2a 100644 --- a/public/project/angular.json +++ b/public/project/angular.json @@ -333,7 +333,7 @@ { "ID": "7801", "typeID": "Arrow", - "zOrder": "61", + "zOrder": "58", "w": "35", "h": "96", "measuredW": "150", @@ -363,7 +363,7 @@ { "ID": "7802", "typeID": "Arrow", - "zOrder": "62", + "zOrder": "59", "w": "10", "h": "81", "measuredW": "150", @@ -392,7 +392,7 @@ { "ID": "7804", "typeID": "Label", - "zOrder": "64", + "zOrder": "61", "measuredW": "97", "measuredH": "36", "x": "612", @@ -405,7 +405,7 @@ { "ID": "7805", "typeID": "Arrow", - "zOrder": "65", + "zOrder": "62", "w": "27", "h": "92", "measuredW": "150", @@ -432,522 +432,468 @@ } }, { - "ID": "7809", + "ID": "7839", "typeID": "Canvas", - "zOrder": "70", - "w": "303", - "h": "52", + "zOrder": "79", + "w": "198", + "h": "393", "measuredW": "100", "measuredH": "70", - "x": "545", - "y": "447", - "properties": { - "color": "16776960" - } + "x": "964", + "y": "1001" }, { - "ID": "7810", + "ID": "7840", "typeID": "Label", - "zOrder": "71", - "measuredW": "197", + "zOrder": "80", + "measuredW": "101", "measuredH": "26", - "x": "598", - "y": "460", + "x": "1012", + "y": "1018", "properties": { - "text": "Learn TypeScript Basics", + "text": "What are __", "size": "18" } }, { - "ID": "7815", - "typeID": "Canvas", - "zOrder": "80", - "w": "262", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "586", - "y": "712", + "ID": "7903", + "typeID": "Arrow", + "zOrder": "40", + "w": "137", + "h": "97", + "measuredW": "150", + "measuredH": "100", + "x": "467", + "y": "740", "properties": { - "color": "16776960" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 137.79594489989745, + "y": -0.30749565311725746 + }, + "p1": { + "x": 0.5656811947576953, + "y": -0.055470893020420554 + }, + "p2": { + "x": 0.38433587934019897, + "y": 96.9750594056843 + } } }, { - "ID": "7816", - "typeID": "Label", - "zOrder": "81", - "measuredW": "145", - "measuredH": "25", - "x": "649", - "y": "724", + "ID": "7904", + "typeID": "Arrow", + "zOrder": "41", + "w": "152", + "h": "67", + "measuredW": "150", + "measuredH": "100", + "x": "461", + "y": "658", "properties": { - "text": "Learn RxJS Basics", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 152.30816846754254, + "y": 67.10012108806256 + }, + "p1": { + "x": 0.5245584633234497, + "y": 0.05852778135877274 + }, + "p2": { + "x": 0.30417618816505865, + "y": 0.21836448513636242 + } } }, { - "ID": "7817", - "typeID": "Canvas", - "zOrder": "82", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "635", + "ID": "7905", + "typeID": "Arrow", + "zOrder": "42", + "w": "148", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "449", + "y": "735", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 148.4997532704873, + "y": -0.17162340605727877 + }, + "p1": { + "x": 0.5656811947576955, + "y": -0.055470893020420554 + }, + "p2": { + "x": 0.1438568058148917, + "y": 47.2536221851085 + } } }, { - "ID": "7818", - "typeID": "Label", - "zOrder": "83", - "measuredW": "210", - "measuredH": "25", - "x": "244", - "y": "647", + "ID": "7906", + "typeID": "Arrow", + "zOrder": "43", + "w": "145", + "h": "15", + "measuredW": "150", + "measuredH": "100", + "x": "459", + "y": "713", "properties": { - "text": "What is Observable Pattern", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 144.5799129616624, + "y": 14.532184964532576 + }, + "p1": { + "x": 0.5205160087037614, + "y": 0.039011501398818746 + }, + "p2": { + "x": -0.127887688304952, + "y": -0.060198294287715726 + } } }, { - "ID": "7819", - "typeID": "Canvas", - "zOrder": "84", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "690", + "ID": "7907", + "typeID": "Arrow", + "zOrder": "39", + "w": "194", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "753", + "y": "963", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 194, + "y": 4 + }, + "p1": { + "x": 0.5232067510548526, + "y": -0.00421940928270042 + }, + "p2": { + "x": 0, + "y": 0 + } } }, { - "ID": "7820", - "typeID": "Label", - "zOrder": "85", - "measuredW": "161", - "measuredH": "25", - "x": "268", - "y": "702", + "ID": "7909", + "typeID": "Arrow", + "zOrder": "38", + "w": "1", + "h": "137", + "measuredW": "150", + "measuredH": "100", + "x": "1070", + "y": "897", "properties": { - "text": "Observable Lifecycle", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0.6653417460931905, + "y": 137 + }, + "p1": { + "x": 0.5209787928221855, + "y": 0.00574225122349123 + }, + "p2": { + "x": 0.6653417460931905, + "y": -0.1453471090021594 + } } }, { - "ID": "7821", - "typeID": "Canvas", - "zOrder": "86", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "746", + "ID": "7922", + "typeID": "Arrow", + "zOrder": "36", + "w": "152", + "h": "16", + "measuredW": "150", + "measuredH": "100", + "x": "454", + "y": "960", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 152.11465204170747, + "y": 0.7908157952633701 + }, + "p1": { + "x": 0.5449664429530199, + "y": -0.04519015659955239 + }, + "p2": { + "x": -0.35063894976218535, + "y": 16.165466987680475 + } } }, { - "ID": "7822", - "typeID": "Label", - "zOrder": "87", - "measuredW": "133", - "measuredH": "25", - "x": "282", - "y": "758", + "ID": "7924", + "typeID": "Arrow", + "zOrder": "37", + "w": "137", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "463", + "y": "903", "properties": { - "text": "Marble Diagrams", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 136.70854737820036, + "y": 47.54104833365204 + }, + "p1": { + "x": 0.5198780554566916, + "y": 0.06964721983543047 + }, + "p2": { + "x": -0.38209242085218875, + "y": 0.1358738236992849 + } } }, { - "ID": "7823", - "typeID": "Canvas", - "zOrder": "128", - "w": "222", - "h": "274", - "measuredW": "100", - "measuredH": "70", - "x": "941", - "y": "567" - }, - { - "ID": "7824", - "typeID": "Label", - "zOrder": "129", - "measuredW": "83", - "measuredH": "26", - "x": "1000", - "y": "580", + "ID": "7927", + "typeID": "Arrow", + "zOrder": "35", + "w": "153", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "810", + "y": "734", "properties": { - "text": "Operators", - "size": "18" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 152.30933474099322, + "y": 0.48329069395197166 + }, + "p1": { + "x": 0.5209787928221856, + "y": 0.0057422512234912345 + }, + "p2": { + "x": -0.3346582539068095, + "y": 1.2239221875944395 + } } }, { - "ID": "7825", + "ID": "7928", "typeID": "Canvas", - "zOrder": "130", - "w": "196", - "h": "50", + "zOrder": "90", + "w": "253", + "h": "188", "measuredW": "100", "measuredH": "70", - "x": "955", - "y": "616", - "properties": { - "color": "16770457" - } + "x": "221", + "y": "877" }, { - "ID": "7826", - "typeID": "Label", - "zOrder": "131", - "measuredW": "63", - "measuredH": "25", - "x": "1025", - "y": "628", + "ID": "7939", + "typeID": "Arrow", + "zOrder": "34", + "w": "133", + "h": "72", + "measuredW": "150", + "measuredH": "100", + "x": "464", + "y": "963", "properties": { - "text": "Filtering", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 133.14610551279748, + "y": 0.35325766066625874 + }, + "p1": { + "x": 0.54496644295302, + "y": -0.04519015659955244 + }, + "p2": { + "x": -0.10087148815074443, + "y": 72.101629891946 + } } }, { - "ID": "7827", - "typeID": "Canvas", - "zOrder": "132", - "w": "195", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "955", - "y": "670", + "ID": "7964", + "typeID": "Arrow", + "zOrder": "33", + "w": "2", + "h": "212", + "measuredW": "150", + "measuredH": "100", + "x": "744", + "y": "966", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 2, + "y": 211.63760017984214 + }, + "p1": { + "x": 0.5232067510548527, + "y": -0.004219409282700418 + }, + "p2": { + "x": -0.36468620791185913, + "y": -0.28900271550764955 + } } }, { - "ID": "7828", - "typeID": "Label", - "zOrder": "133", - "measuredW": "102", - "measuredH": "25", - "x": "1006", - "y": "682", + "ID": "7967", + "typeID": "Arrow", + "zOrder": "32", + "w": "1", + "h": "109", + "measuredW": "150", + "measuredH": "100", + "x": "642", + "y": "858", "properties": { - "text": "Rate Limiting", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0.6653417460931905, + "y": 108.91512571003409 + }, + "p1": { + "x": 0.5209787928221856, + "y": 0.005742251223491229 + }, + "p2": { + "x": 0.6653417460931905, + "y": -0.1453471090021594 + } } }, { - "ID": "7829", - "typeID": "Canvas", - "zOrder": "134", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "954", - "y": "726", + "ID": "7980", + "typeID": "Arrow", + "zOrder": "28", + "w": "137", + "h": "97", + "measuredW": "150", + "measuredH": "100", + "x": "535", + "y": "1199", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 137.79594489989745, + "y": -0.30749565311725746 + }, + "p1": { + "x": 0.5656811947576953, + "y": -0.055470893020420554 + }, + "p2": { + "x": 0.38433587934019897, + "y": 96.9750594056843 + } } }, { - "ID": "7830", - "typeID": "Label", - "zOrder": "135", - "measuredW": "116", - "measuredH": "25", - "x": "999", - "y": "738", + "ID": "7981", + "typeID": "Arrow", + "zOrder": "29", + "w": "152", + "h": "67", + "measuredW": "150", + "measuredH": "100", + "x": "529", + "y": "1117", "properties": { - "text": "Transformation", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 152.30816846754254, + "y": 67.10012108806256 + }, + "p1": { + "x": 0.5245584633234497, + "y": 0.05852778135877274 + }, + "p2": { + "x": 0.30417618816505865, + "y": 0.21836448513636242 + } } }, { - "ID": "7831", - "typeID": "Canvas", - "zOrder": "136", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "954", - "y": "781", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7832", - "typeID": "Label", - "zOrder": "137", - "measuredW": "98", - "measuredH": "25", - "x": "1008", - "y": "793", - "properties": { - "text": "Combination", - "size": "17" - } - }, - { - "ID": "7833", - "typeID": "Canvas", - "zOrder": "88", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "802", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7834", - "typeID": "Label", - "zOrder": "89", - "measuredW": "137", - "measuredH": "25", - "x": "280", - "y": "814", - "properties": { - "text": "RxJS vs Promises", - "size": "17" - } - }, - { - "ID": "7835", - "typeID": "Canvas", - "zOrder": "90", - "w": "262", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "901", - "y": "935", - "properties": { - "color": "16776960" - } - }, - { - "ID": "7836", - "typeID": "Label", - "zOrder": "91", - "measuredW": "176", - "measuredH": "25", - "x": "949", - "y": "947", - "properties": { - "text": "Understand the Basics", - "size": "17" - } - }, - { - "ID": "7837", - "typeID": "Canvas", - "zOrder": "92", - "w": "262", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "900", - "y": "876", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7838", - "typeID": "Label", - "zOrder": "93", - "measuredW": "158", - "measuredH": "25", - "x": "952", - "y": "888", - "properties": { - "text": "Angular.js vs Angular", - "size": "17" - } - }, - { - "ID": "7839", - "typeID": "Canvas", - "zOrder": "94", - "w": "198", - "h": "393", - "measuredW": "100", - "measuredH": "70", - "x": "964", - "y": "1001" - }, - { - "ID": "7840", - "typeID": "Label", - "zOrder": "95", - "measuredW": "101", - "measuredH": "26", - "x": "1012", - "y": "1018", - "properties": { - "text": "What are __", - "size": "18" - } - }, - { - "ID": "7841", - "typeID": "Canvas", - "zOrder": "96", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "657", - "y": "1166", - "properties": { - "color": "16776960" - } - }, - { - "ID": "7842", - "typeID": "Label", - "zOrder": "97", - "measuredW": "80", - "measuredH": "25", - "x": "728", - "y": "1178", - "properties": { - "text": "Templates", - "size": "17" - } - }, - { - "ID": "7869", - "typeID": "Canvas", - "zOrder": "102", - "w": "126", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "691", - "y": "1732", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7870", - "typeID": "Label", - "zOrder": "103", - "measuredW": "46", - "measuredH": "25", - "x": "724", - "y": "1744", - "properties": { - "text": "NGXS", - "size": "17" - } - }, - { - "ID": "7871", - "typeID": "Canvas", - "zOrder": "104", - "w": "126", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "691", - "y": "1789", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7872", - "typeID": "Label", - "zOrder": "105", - "measuredW": "48", - "measuredH": "25", - "x": "723", - "y": "1801", - "properties": { - "size": "17", - "text": "NGRX" - } - }, - { - "ID": "7882", - "typeID": "Canvas", - "zOrder": "106", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "2128", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7883", - "typeID": "Label", - "zOrder": "107", - "measuredW": "104", - "measuredH": "25", - "x": "298", - "y": "2140", - "properties": { - "size": "17", - "text": "Testing Pipes" - } - }, - { - "ID": "7884", - "typeID": "Canvas", - "zOrder": "108", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "2183", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7885", - "typeID": "Label", - "zOrder": "109", - "measuredW": "219", - "measuredH": "25", - "x": "240", - "y": "2195", - "properties": { - "size": "17", - "text": "Services with Dependencies" - } - }, - { - "ID": "7903", - "typeID": "Arrow", - "zOrder": "40", - "w": "137", - "h": "97", - "measuredW": "150", - "measuredH": "100", - "x": "467", - "y": "740", + "ID": "7982", + "typeID": "Arrow", + "zOrder": "30", + "w": "148", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "517", + "y": "1194", "properties": { "curvature": "0", "leftArrow": "false", @@ -955,29 +901,29 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 137.79594489989745, - "y": -0.30749565311725746 + "x": 148.4997532704873, + "y": -0.17162340605727877 }, "p1": { - "x": 0.5656811947576953, + "x": 0.5656811947576955, "y": -0.055470893020420554 }, "p2": { - "x": 0.38433587934019897, - "y": 96.9750594056843 + "x": 0.1438568058148917, + "y": 47.2536221851085 } } }, { - "ID": "7904", + "ID": "7983", "typeID": "Arrow", - "zOrder": "41", - "w": "152", - "h": "67", + "zOrder": "31", + "w": "145", + "h": "15", "measuredW": "150", "measuredH": "100", - "x": "461", - "y": "658", + "x": "527", + "y": "1172", "properties": { "curvature": "0", "leftArrow": "false", @@ -985,59 +931,58 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 152.30816846754254, - "y": 67.10012108806256 + "x": 144.5799129616624, + "y": 14.532184964532576 }, "p1": { - "x": 0.5245584633234497, - "y": 0.05852778135877274 + "x": 0.5205160087037614, + "y": 0.039011501398818746 }, "p2": { - "x": 0.30417618816505865, - "y": 0.21836448513636242 + "x": -0.127887688304952, + "y": -0.060198294287715726 } } }, { - "ID": "7905", + "ID": "7990", "typeID": "Arrow", - "zOrder": "42", - "w": "148", - "h": "47", + "zOrder": "27", + "w": "162", + "h": "253", "measuredW": "150", "measuredH": "100", - "x": "449", - "y": "735", + "x": "583", + "y": "1206", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", "p0": { - "x": 148.4997532704873, - "y": -0.17162340605727877 + "x": -0.3084915658236014, + "y": 252.89791781788676 }, "p1": { - "x": 0.5656811947576955, - "y": -0.055470893020420554 + "x": 0.45433123552684945, + "y": -0.17593627878712412 }, "p2": { - "x": 0.1438568058148917, - "y": 47.2536221851085 + "x": 162, + "y": 0 } } }, { - "ID": "7906", + "ID": "8000", "typeID": "Arrow", - "zOrder": "43", - "w": "145", - "h": "15", + "zOrder": "25", + "w": "137", + "h": "3", "measuredW": "150", "measuredH": "100", - "x": "459", - "y": "713", + "x": "376", + "y": "1476", "properties": { "curvature": "0", "leftArrow": "false", @@ -1045,41 +990,42 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 144.5799129616624, - "y": 14.532184964532576 + "x": 137, + "y": 3 }, "p1": { - "x": 0.5205160087037614, - "y": 0.039011501398818746 + "x": 0.5718039173147684, + "y": -0.006974564311454229 }, "p2": { - "x": -0.127887688304952, - "y": -0.060198294287715726 + "x": -0.08142479985480122, + "y": 0.7671836529266329 } } }, { - "ID": "7907", + "ID": "8001", "typeID": "Arrow", - "zOrder": "39", - "w": "194", - "h": "4", + "zOrder": "26", + "w": "122", + "h": "54", "measuredW": "150", "measuredH": "100", - "x": "753", - "y": "963", + "x": "383", + "y": "1415", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", + "stroke": "dotted", "color": "10027263", "p0": { - "x": 194, - "y": 4 + "x": 121.83256443864616, + "y": 54.10892686648094 }, "p1": { - "x": 0.5232067510548526, - "y": -0.00421940928270042 + "x": 0.516182454167905, + "y": 0.07501328692757032 }, "p2": { "x": 0, @@ -1088,180 +1034,44 @@ } }, { - "ID": "7909", + "ID": "8004", "typeID": "Arrow", - "zOrder": "38", - "w": "1", - "h": "137", + "zOrder": "24", + "w": "153", + "h": "1", "measuredW": "150", "measuredH": "100", - "x": "1070", - "y": "897", + "x": "650", + "y": "1472", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", "p0": { - "x": 0.6653417460931905, - "y": 137 + "x": 152.30933474099322, + "y": 0.48329069395197166 }, "p1": { - "x": 0.5209787928221855, - "y": 0.00574225122349123 + "x": 0.5209787928221856, + "y": 0.0057422512234912345 }, "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 + "x": -0.3346582539068095, + "y": 1.2239221875944395 } } }, { - "ID": "7910", - "typeID": "Canvas", - "zOrder": "111", - "w": "243", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "579", - "y": "940", - "properties": { - "color": "16776960" - } - }, - { - "ID": "7911", - "typeID": "Label", - "zOrder": "112", - "measuredW": "91", - "measuredH": "25", - "x": "655", - "y": "952", - "properties": { - "text": "Angular CLI", - "size": "17" - } - }, - { - "ID": "7912", - "typeID": "Canvas", - "zOrder": "114", - "w": "123", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "235", - "y": "891", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7913", - "typeID": "Label", - "zOrder": "115", - "measuredW": "61", - "measuredH": "25", - "x": "268", - "y": "903", - "properties": { - "text": "ng build", - "size": "17" - } - }, - { - "ID": "7916", - "typeID": "Canvas", - "zOrder": "116", - "w": "94", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "364", - "y": "891", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7917", - "typeID": "Label", - "zOrder": "117", - "measuredW": "67", - "measuredH": "25", - "x": "380", - "y": "903", - "properties": { - "text": "ng serve", - "size": "17" - } - }, - { - "ID": "7918", - "typeID": "Canvas", - "zOrder": "118", - "w": "123", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "236", - "y": "946", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7919", - "typeID": "Label", - "zOrder": "119", - "measuredW": "95", - "measuredH": "25", - "x": "253", - "y": "958", - "properties": { - "text": "ng generate", - "size": "17" - } - }, - { - "ID": "7920", - "typeID": "Canvas", - "zOrder": "120", - "w": "94", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "365", - "y": "946", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7921", - "typeID": "Label", - "zOrder": "121", - "measuredW": "53", - "measuredH": "25", - "x": "387", - "y": "958", - "properties": { - "text": "ng test", - "size": "17" - } - }, - { - "ID": "7922", + "ID": "8005", "typeID": "Arrow", - "zOrder": "36", - "w": "152", - "h": "16", + "zOrder": "23", + "w": "121", + "h": "93", "measuredW": "150", "measuredH": "100", - "x": "454", - "y": "960", + "x": "389", + "y": "1367", "properties": { "curvature": "0", "leftArrow": "false", @@ -1269,29 +1079,29 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 152.11465204170747, - "y": 0.7908157952633701 + "x": 120.93806896294319, + "y": 93.17429394896112 }, "p1": { - "x": 0.5449664429530199, - "y": -0.04519015659955239 + "x": 0.516182454167905, + "y": 0.07501328692757027 }, "p2": { - "x": -0.35063894976218535, - "y": 16.165466987680475 + "x": -0.31766348911210684, + "y": -0.0011636194603852346 } } }, { - "ID": "7924", + "ID": "8011", "typeID": "Arrow", - "zOrder": "37", - "w": "137", - "h": "47", + "zOrder": "22", + "w": "110", + "h": "36", "measuredW": "150", "measuredH": "100", - "x": "463", - "y": "903", + "x": "858", + "y": "1431", "properties": { "curvature": "0", "leftArrow": "false", @@ -1299,29 +1109,29 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 136.70854737820036, - "y": 47.54104833365204 + "x": 110.15710001860498, + "y": -0.18235706574705546 }, "p1": { - "x": 0.5198780554566916, - "y": 0.06964721983543047 + "x": 0.5205160087037611, + "y": 0.03901150139881878 }, "p2": { - "x": -0.38209242085218875, - "y": 0.1358738236992849 + "x": 0.3887527462180742, + "y": 35.556174604332455 } } }, { - "ID": "7927", + "ID": "8012", "typeID": "Arrow", - "zOrder": "35", - "w": "153", - "h": "1", + "zOrder": "21", + "w": "112", + "h": "19", "measuredW": "150", "measuredH": "100", - "x": "810", - "y": "734", + "x": "860", + "y": "1479", "properties": { "curvature": "0", "leftArrow": "false", @@ -1329,121 +1139,207 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 152.30933474099322, - "y": 0.48329069395197166 + "x": 111.98622841182782, + "y": 19.46557788118912 }, "p1": { - "x": 0.5209787928221856, - "y": 0.0057422512234912345 + "x": 0.49235273148208303, + "y": -0.056041280138932066 }, "p2": { - "x": -0.3346582539068095, - "y": 1.2239221875944395 + "x": -0.33487112270768193, + "y": 0.31993591507512065 } } }, { - "ID": "7928", - "typeID": "Canvas", - "zOrder": "113", - "w": "253", + "ID": "8013", + "typeID": "Arrow", + "zOrder": "20", + "w": "160", "h": "188", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "877" - }, - { - "ID": "7929", - "typeID": "Canvas", - "zOrder": "122", - "w": "145", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "579", - "y": "839", + "measuredW": "150", + "measuredH": "100", + "x": "652", + "y": "1481", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": -0.3841804878131825, + "y": 188.49997944514098 + }, + "p1": { + "x": 0.49884332978224843, + "y": -0.21997537262096778 + }, + "p2": { + "x": 159.6653417460932, + "y": 0.2239221875944395 + } } }, { - "ID": "7930", - "typeID": "Label", - "zOrder": "123", - "measuredW": "90", - "measuredH": "25", - "x": "607", - "y": "851", + "ID": "8024", + "typeID": "Arrow", + "zOrder": "17", + "w": "121", + "h": "93", + "measuredW": "150", + "measuredH": "100", + "x": "388", + "y": "1568", "properties": { - "size": "17", - "text": "Schematics" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 120.93806896294319, + "y": 93.17429394896112 + }, + "p1": { + "x": 0.516182454167905, + "y": 0.07501328692757027 + }, + "p2": { + "x": -0.31766348911210684, + "y": -0.0011636194603852346 + } } }, { - "ID": "7933", - "typeID": "Canvas", - "zOrder": "124", - "w": "123", - "h": "49", - "measuredW": "100", - "measuredH": "70", - "x": "235", - "y": "1002", + "ID": "8025", + "typeID": "Arrow", + "zOrder": "18", + "w": "137", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "375", + "y": "1677", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 137, + "y": 3 + }, + "p1": { + "x": 0.5718039173147684, + "y": -0.006974564311454229 + }, + "p2": { + "x": -0.08142479985480122, + "y": 0.7671836529266329 + } } }, { - "ID": "7934", - "typeID": "Label", - "zOrder": "125", - "measuredW": "55", - "measuredH": "25", - "x": "271", - "y": "1014", + "ID": "8026", + "typeID": "Arrow", + "zOrder": "19", + "w": "122", + "h": "54", + "measuredW": "150", + "measuredH": "100", + "x": "382", + "y": "1616", "properties": { - "text": "ng e2e", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 121.83256443864616, + "y": 54.10892686648094 + }, + "p1": { + "x": 0.516182454167905, + "y": 0.07501328692757032 + }, + "p2": { + "x": 0, + "y": 0 + } } }, { - "ID": "7937", - "typeID": "Canvas", - "zOrder": "126", - "w": "94", - "h": "49", - "measuredW": "100", - "measuredH": "70", - "x": "364", - "y": "1002", + "ID": "8027", + "typeID": "Arrow", + "zOrder": "16", + "w": "1", + "h": "205", + "measuredW": "150", + "measuredH": "100", + "x": "574", + "y": "1569", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": -0.3346582539068095, + "y": 205.1628221932308 + }, + "p1": { + "x": 0.5160009912864776, + "y": -0.006662715401372748 + }, + "p2": { + "x": -0.3346582539068095, + "y": -0.1453471090021594 + } } }, { - "ID": "7938", - "typeID": "Label", - "zOrder": "127", - "measuredW": "56", - "measuredH": "25", - "x": "385", - "y": "1014", + "ID": "8030", + "typeID": "Arrow", + "zOrder": "15", + "w": "232", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "668", + "y": "1680", "properties": { - "text": "ng new", - "size": "17" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 231.23278894059456, + "y": 0.2239221875943258 + }, + "p1": { + "x": 0.5209787928221857, + "y": 0.005742251223491235 + }, + "p2": { + "x": -0.3346582539068095, + "y": 0.2239221875944395 + } } }, { - "ID": "7939", + "ID": "8033", "typeID": "Arrow", - "zOrder": "34", - "w": "133", - "h": "72", + "zOrder": "14", + "w": "110", + "h": "48", "measuredW": "150", "measuredH": "100", - "x": "464", - "y": "963", + "x": "396", + "y": "1686", "properties": { "curvature": "0", "leftArrow": "false", @@ -1451,333 +1347,118 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 133.14610551279748, - "y": 0.35325766066625874 + "x": 110.1089405697204, + "y": 0.09286914910626365 }, "p1": { - "x": 0.54496644295302, - "y": -0.04519015659955244 + "x": 0.5902039507828301, + "y": -0.08117284189966499 }, "p2": { - "x": -0.10087148815074443, - "y": 72.101629891946 + "x": -0.08142479985480122, + "y": 47.76718365292663 } } }, { - "ID": "7941", - "typeID": "Canvas", - "zOrder": "55", - "w": "240", - "h": "49", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "387", + "ID": "8039", + "typeID": "Arrow", + "zOrder": "13", + "w": "1", + "h": "87", + "measuredW": "150", + "measuredH": "100", + "x": "1050", + "y": "1588", "properties": { - "color": "16770457" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0.6653417460931905, + "y": 86.60548396943796 + }, + "p1": { + "x": 0.5209787928221857, + "y": 0.005742251223491228 + }, + "p2": { + "x": 0.6653417460931905, + "y": -0.18809294361221873 + } } }, { - "ID": "7942", - "typeID": "Label", - "zOrder": "56", - "w": "141", + "ID": "8048", + "typeID": "Arrow", + "zOrder": "12", + "w": "165", + "h": "4", "measuredW": "150", - "measuredH": "25", - "x": "277", - "y": "399", + "measuredH": "100", + "x": "419", + "y": "1868", "properties": { - "text": "What is TypeScript?", - "size": "17" - } - }, - { - "ID": "7943", - "typeID": "Canvas", - "zOrder": "72", - "w": "240", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "442", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7944", - "typeID": "Label", - "zOrder": "73", - "w": "160", - "measuredW": "157", - "measuredH": "25", - "x": "262", - "y": "454", - "properties": { - "text": "Why use TypeScript?", - "size": "17" - } - }, - { - "ID": "7945", - "typeID": "Canvas", - "zOrder": "57", - "w": "240", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "499", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7946", - "typeID": "Label", - "zOrder": "58", - "w": "131", - "measuredW": "128", - "measuredH": "25", - "x": "276", - "y": "511", - "properties": { - "text": "Structural Typing", - "size": "17" - } - }, - { - "ID": "7947", - "typeID": "Canvas", - "zOrder": "59", - "w": "240", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "555", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7948", - "typeID": "Label", - "zOrder": "60", - "w": "118", - "measuredW": "116", - "measuredH": "25", - "x": "283", - "y": "567", - "properties": { - "text": "Type Inference", - "size": "17" - } - }, - { - "ID": "7949", - "typeID": "Canvas", - "zOrder": "76", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "943", - "y": "441", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7950", - "typeID": "Label", - "zOrder": "77", - "measuredW": "100", - "measuredH": "25", - "x": "1004", - "y": "453", - "properties": { - "text": "Built-in types", - "size": "17" - } - }, - { - "ID": "7951", - "typeID": "Canvas", - "zOrder": "78", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "943", - "y": "497", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7952", - "typeID": "Label", - "zOrder": "79", - "w": "94", - "measuredW": "97", - "measuredH": "25", - "x": "1007", - "y": "509", - "properties": { - "text": "Type Guards", - "size": "17" - } - }, - { - "ID": "7953", - "typeID": "Canvas", - "zOrder": "74", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "943", - "y": "386", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7954", - "typeID": "Label", - "zOrder": "75", - "measuredW": "95", - "measuredH": "25", - "x": "1006", - "y": "398", - "properties": { - "text": "Union Types", - "size": "17" - } - }, - { - "ID": "7955", - "typeID": "Canvas", - "zOrder": "138", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "915", - "y": "1054", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7956", - "typeID": "Label", - "zOrder": "139", - "measuredW": "99", - "measuredH": "25", - "x": "983", - "y": "1066", - "properties": { - "size": "17", - "text": "Components" - } - }, - { - "ID": "7959", - "typeID": "Canvas", - "zOrder": "140", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "915", - "y": "1108", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7960", - "typeID": "Label", - "zOrder": "141", - "measuredW": "80", - "measuredH": "25", - "x": "993", - "y": "1120", - "properties": { - "size": "17", - "text": "Templates" - } - }, - { - "ID": "7961", - "typeID": "Canvas", - "zOrder": "142", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "915", - "y": "1163", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7962", - "typeID": "Label", - "zOrder": "143", - "measuredW": "66", - "measuredH": "25", - "x": "1000", - "y": "1175", - "properties": { - "size": "17", - "text": "Modules" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 165.29974235933003, + "y": 3.223922187594326 + }, + "p1": { + "x": 0.5209787928221858, + "y": 0.0057422512234912345 + }, + "p2": { + "x": 0.2387810888058084, + "y": -0.32883026031754525 + } } }, { - "ID": "7964", + "ID": "8056", "typeID": "Arrow", - "zOrder": "33", - "w": "2", - "h": "212", + "zOrder": "11", + "w": "1", + "h": "82", "measuredW": "150", "measuredH": "100", - "x": "744", - "y": "966", + "x": "281", + "y": "1872", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", + "stroke": "dotted", "color": "10027263", "p0": { - "x": 2, - "y": 211.63760017984214 + "x": 0.6653417460931905, + "y": 82.26052647176084 }, "p1": { - "x": 0.5232067510548527, - "y": -0.004219409282700418 + "x": 0.5209787928221856, + "y": 0.005742251223491229 }, "p2": { - "x": -0.36468620791185913, - "y": -0.28900271550764955 + "x": 0.6653417460931905, + "y": -0.1453471090021594 } } }, { - "ID": "7967", + "ID": "8057", "typeID": "Arrow", - "zOrder": "32", + "zOrder": "10", "w": "1", - "h": "109", + "h": "82", "measuredW": "150", "measuredH": "100", - "x": "642", - "y": "858", + "x": "397", + "y": "1884", "properties": { "curvature": "0", "leftArrow": "false", @@ -1786,7 +1467,7 @@ "color": "10027263", "p0": { "x": 0.6653417460931905, - "y": 108.91512571003409 + "y": 82.26052647176084 }, "p1": { "x": 0.5209787928221856, @@ -1799,515 +1480,331 @@ } }, { - "ID": "7968", - "typeID": "Canvas", - "zOrder": "98", - "w": "157", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1095", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7969", - "typeID": "Label", - "zOrder": "99", - "measuredW": "98", - "measuredH": "25", - "x": "251", - "y": "1106", - "properties": { - "text": "Interpolation", - "size": "17" - } - }, - { - "ID": "7970", - "typeID": "Canvas", - "zOrder": "100", - "w": "161", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "384", - "y": "1095", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7971", - "typeID": "Label", - "zOrder": "101", - "measuredW": "128", - "measuredH": "25", - "x": "401", - "y": "1106", - "properties": { - "text": "Property Binding", - "size": "17" - } - }, - { - "ID": "7972", - "typeID": "Canvas", - "zOrder": "144", - "w": "324", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1150", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7973", - "typeID": "Label", - "zOrder": "145", - "measuredW": "163", - "measuredH": "25", - "x": "301", - "y": "1162", - "properties": { - "size": "17", - "text": "Template Statements" - } - }, - { - "ID": "7974", - "typeID": "Canvas", - "zOrder": "146", - "w": "324", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1206", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7975", - "typeID": "Label", - "zOrder": "147", - "measuredW": "267", - "measuredH": "25", - "x": "240", - "y": "1218", - "properties": { - "size": "17", - "text": "Binding (Data, Props, Attrs, Events)" - } - }, - { - "ID": "7976", - "typeID": "Canvas", - "zOrder": "148", - "w": "154", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1261", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7977", - "typeID": "Label", - "zOrder": "149", - "measuredW": "119", - "measuredH": "25", - "x": "238", - "y": "1273", - "properties": { - "size": "17", - "text": "Reference Vars" - } - }, - { - "ID": "7978", - "typeID": "Canvas", - "zOrder": "150", - "w": "164", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "381", - "y": "1261", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7979", - "typeID": "Label", - "zOrder": "151", - "measuredW": "131", - "measuredH": "25", - "x": "399", - "y": "1273", - "properties": { - "size": "17", - "text": "@Input, @Output" - } - }, - { - "ID": "7980", - "typeID": "Arrow", - "zOrder": "28", - "w": "137", - "h": "97", - "measuredW": "150", - "measuredH": "100", - "x": "535", - "y": "1199", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137.79594489989745, - "y": -0.30749565311725746 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.38433587934019897, - "y": 96.9750594056843 - } - } - }, - { - "ID": "7981", - "typeID": "Arrow", - "zOrder": "29", - "w": "152", - "h": "67", - "measuredW": "150", - "measuredH": "100", - "x": "529", - "y": "1117", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.30816846754254, - "y": 67.10012108806256 - }, - "p1": { - "x": 0.5245584633234497, - "y": 0.05852778135877274 - }, - "p2": { - "x": 0.30417618816505865, - "y": 0.21836448513636242 - } - } - }, - { - "ID": "7982", - "typeID": "Arrow", - "zOrder": "30", - "w": "148", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "517", - "y": "1194", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 148.4997532704873, - "y": -0.17162340605727877 - }, - "p1": { - "x": 0.5656811947576955, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.1438568058148917, - "y": 47.2536221851085 - } - } - }, - { - "ID": "7983", - "typeID": "Arrow", - "zOrder": "31", - "w": "145", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "527", - "y": "1172", + "ID": "8058", + "typeID": "Arrow", + "zOrder": "9", + "w": "274", + "h": "90", + "measuredW": "150", + "measuredH": "100", + "x": "429", + "y": "1878", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "color": "10027263", "p0": { - "x": 144.5799129616624, - "y": 14.532184964532576 + "x": 273.85853278458967, + "y": 90.7596536600604 }, "p1": { - "x": 0.5205160087037614, - "y": 0.039011501398818746 + "x": 0.5394209656837318, + "y": 0.08127816093452517 }, "p2": { - "x": -0.127887688304952, - "y": -0.060198294287715726 + "x": 0.2417599083887012, + "y": 0.49483933119245194 } } }, { - "ID": "7984", + "ID": "8072", "typeID": "Canvas", - "zOrder": "152", - "w": "236", - "h": "50", + "zOrder": "63", + "w": "350", + "h": "141", "measuredW": "100", "measuredH": "70", - "x": "915", - "y": "1218", - "properties": { - "color": "16770457" - } + "x": "900", + "y": "158" }, { - "ID": "7985", + "ID": "8073", "typeID": "Label", - "zOrder": "153", - "measuredW": "168", + "zOrder": "64", + "measuredW": "314", "measuredH": "25", - "x": "949", - "y": "1230", + "x": "914", + "y": "175", "properties": { "size": "17", - "text": "Dependency Injection" - } - }, - { - "ID": "7986", - "typeID": "Canvas", - "zOrder": "154", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "915", - "y": "1273", - "properties": { - "color": "16770457" + "text": "Find the detailed version of this roadmap" } }, { - "ID": "7987", + "ID": "8074", "typeID": "Label", - "zOrder": "155", - "measuredW": "67", + "zOrder": "65", + "measuredW": "319", "measuredH": "25", - "x": "999", - "y": "1285", + "x": "914", + "y": "203", "properties": { "size": "17", - "text": "Services" + "text": "along with resources and other roadmaps" } }, { - "ID": "7988", - "typeID": "Canvas", - "zOrder": "156", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", + "ID": "8081", + "typeID": "__group__", + "zOrder": "66", + "measuredW": "320", + "measuredH": "45", + "w": "320", + "h": "45", "x": "915", - "y": "1329", + "y": "239", "properties": { - "color": "16770457" - } - }, - { - "ID": "7989", - "typeID": "Label", - "zOrder": "157", - "measuredW": "60", - "measuredH": "25", - "x": "1003", - "y": "1341", + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "320", + "h": "45", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "28", + "x": "141", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "roadmap.sh" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "45", + "measuredH": "28", + "x": "65", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "https" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "5", + "measuredH": "28", + "x": "113", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": ":" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "10", + "measuredH": "28", + "x": "120", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "10", + "measuredH": "28", + "x": "128", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + } + ] + } + } + }, + { + "ID": "8082", + "typeID": "__group__", + "zOrder": "60", + "measuredW": "572", + "measuredH": "90", + "w": "572", + "h": "90", + "x": "181", + "y": "168", "properties": { - "size": "17", - "text": "Routing" + "controlName": "ext_link:roadmap.sh/frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "572", + "h": "90", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "396", + "measuredH": "28", + "x": "88", + "y": "19", + "properties": { + "size": "20", + "text": "Frontend Roadmap till Framework Selection" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "152", + "measuredH": "24", + "x": "210", + "y": "49", + "properties": { + "size": "16", + "color": "10027263", + "text": "roadmap.sh/frontend" + } + } + ] + } } }, { - "ID": "7990", + "ID": "8083", + "typeID": "__group__", + "zOrder": "88", + "measuredW": "576", + "measuredH": "105", + "w": "576", + "h": "105", + "x": "575", + "y": "2457", + "properties": { + "controlName": "ext_link:roadmap.sh/frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "576", + "h": "105", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "502", + "measuredH": "32", + "x": "40", + "y": "22", + "properties": { + "size": "24", + "text": "Frontend Roadmap after Framework Selection" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "171", + "measuredH": "26", + "x": "205", + "y": "58", + "properties": { + "text": "roadmap.sh/frontend", + "size": "18", + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "8091", "typeID": "Arrow", - "zOrder": "27", - "w": "162", - "h": "253", + "zOrder": "8", + "w": "4", + "h": "617", "measuredW": "150", "measuredH": "100", - "x": "583", - "y": "1206", + "x": "780", + "y": "2032", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", "color": "10027263", "p0": { - "x": -0.3084915658236014, - "y": 252.89791781788676 + "x": 3.6653417460931905, + "y": 616.945330548373 }, "p1": { - "x": 0.45433123552684945, - "y": -0.17593627878712412 + "x": 0.5209787928221856, + "y": 0.0057422512234912276 }, "p2": { - "x": 162, - "y": 0 + "x": 3.6653417460931905, + "y": -0.1453471090021594 } } }, { - "ID": "7991", - "typeID": "Canvas", - "zOrder": "158", - "w": "186", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "489", - "y": "1448", - "properties": { - "color": "16776960" - } - }, - { - "ID": "7992", - "typeID": "Label", - "zOrder": "159", - "measuredW": "135", - "measuredH": "25", - "x": "514", - "y": "1460", - "properties": { - "size": "17", - "text": "Rendering Topics" - } - }, - { - "ID": "7993", - "typeID": "Canvas", - "zOrder": "160", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1344", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7994", - "typeID": "Label", - "zOrder": "161", - "measuredW": "135", - "measuredH": "25", - "x": "242", - "y": "1356", - "properties": { - "size": "17", - "text": "Built-in Directives" - } - }, - { - "ID": "7995", - "typeID": "Canvas", - "zOrder": "162", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1399", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7996", - "typeID": "Label", - "zOrder": "163", - "measuredW": "102", - "measuredH": "25", - "x": "259", - "y": "1411", - "properties": { - "size": "17", - "text": "Built-in Pipes" - } - }, - { - "ID": "7997", - "typeID": "Canvas", - "zOrder": "164", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1453", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7998", - "typeID": "Label", - "zOrder": "165", - "measuredW": "141", - "measuredH": "25", - "x": "239", - "y": "1465", - "properties": { - "size": "17", - "text": "Change Detection" - } - }, - { - "ID": "8000", - "typeID": "Arrow", - "zOrder": "25", - "w": "137", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "376", - "y": "1476", + "ID": "8093", + "typeID": "Arrow", + "zOrder": "7", + "w": "136", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "940", + "y": "1970", "properties": { "curvature": "0", "leftArrow": "false", @@ -2315,29 +1812,29 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 137, - "y": 3 + "x": 136, + "y": 0 }, "p1": { "x": 0.5718039173147684, - "y": -0.006974564311454229 + "y": -0.006974564311454232 }, "p2": { - "x": -0.08142479985480122, - "y": 0.7671836529266329 + "x": -0.33608340984960705, + "y": 5.057669186803878 } } }, { - "ID": "8001", + "ID": "8097", "typeID": "Arrow", - "zOrder": "26", - "w": "122", - "h": "54", + "zOrder": "6", + "w": "104", + "h": "40", "measuredW": "150", "measuredH": "100", - "x": "383", - "y": "1415", + "x": "936", + "y": "1976", "properties": { "curvature": "0", "leftArrow": "false", @@ -2345,85 +1842,59 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 121.83256443864616, - "y": 54.10892686648094 + "x": 104.43216501804841, + "y": 0.3172722921526656 }, "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757032 + "x": 0.5205160087037611, + "y": 0.039011501398818815 }, "p2": { - "x": 0, - "y": 0 + "x": 0.3887527462180742, + "y": 40.556174604332455 } } }, { - "ID": "8002", - "typeID": "Canvas", - "zOrder": "166", - "w": "133", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "745", - "y": "1448", - "properties": { - "color": "16776960" - } - }, - { - "ID": "8003", - "typeID": "Label", - "zOrder": "167", - "measuredW": "48", - "measuredH": "25", - "x": "788", - "y": "1460", - "properties": { - "size": "17", - "text": "Forms" - } - }, - { - "ID": "8004", + "ID": "8098", "typeID": "Arrow", - "zOrder": "24", - "w": "153", - "h": "1", + "zOrder": "5", + "w": "136", + "h": "5", "measuredW": "150", "measuredH": "100", - "x": "650", - "y": "1472", + "x": "940", + "y": "2022", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", + "stroke": "dotted", "color": "10027263", "p0": { - "x": 152.30933474099322, - "y": 0.48329069395197166 + "x": 136, + "y": 0 }, "p1": { - "x": 0.5209787928221856, - "y": 0.0057422512234912345 + "x": 0.5718039173147684, + "y": -0.006974564311454232 }, "p2": { - "x": -0.3346582539068095, - "y": 1.2239221875944395 + "x": -0.33608340984960705, + "y": 5.057669186803878 } } }, { - "ID": "8005", + "ID": "8099", "typeID": "Arrow", - "zOrder": "23", - "w": "121", - "h": "93", + "zOrder": "1", + "w": "137", + "h": "97", "measuredW": "150", "measuredH": "100", - "x": "389", - "y": "1367", + "x": "471", + "y": "2233", "properties": { "curvature": "0", "leftArrow": "false", @@ -2431,83 +1902,29 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 120.93806896294319, - "y": 93.17429394896112 + "x": 137.79594489989745, + "y": -0.30749565311725746 }, "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757027 + "x": 0.5656811947576953, + "y": -0.055470893020420554 }, "p2": { - "x": -0.31766348911210684, - "y": -0.0011636194603852346 + "x": 0.38433587934019897, + "y": 96.9750594056843 } } }, { - "ID": "8006", - "typeID": "Canvas", - "zOrder": "168", - "w": "212", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "951", - "y": "1414", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8007", - "typeID": "Label", - "zOrder": "169", - "measuredW": "120", - "measuredH": "25", - "x": "997", - "y": "1426", - "properties": { - "size": "17", - "text": "Reactive Forms" - } - }, - { - "ID": "8008", - "typeID": "Canvas", - "zOrder": "170", - "w": "212", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "951", - "y": "1469", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8009", - "typeID": "Label", - "zOrder": "171", - "measuredW": "177", - "measuredH": "25", - "x": "968", - "y": "1481", - "properties": { - "size": "17", - "text": "Template-driven Forms" - } - }, - { - "ID": "8011", + "ID": "8100", "typeID": "Arrow", - "zOrder": "22", - "w": "110", - "h": "36", + "zOrder": "2", + "w": "152", + "h": "67", "measuredW": "150", "measuredH": "100", - "x": "858", - "y": "1431", + "x": "465", + "y": "2151", "properties": { "curvature": "0", "leftArrow": "false", @@ -2515,29 +1932,29 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 110.15710001860498, - "y": -0.18235706574705546 + "x": 152.30816846754254, + "y": 67.10012108806256 }, "p1": { - "x": 0.5205160087037611, - "y": 0.03901150139881878 + "x": 0.5245584633234497, + "y": 0.05852778135877274 }, "p2": { - "x": 0.3887527462180742, - "y": 35.556174604332455 + "x": 0.30417618816505865, + "y": 0.21836448513636242 } } }, { - "ID": "8012", + "ID": "8101", "typeID": "Arrow", - "zOrder": "21", - "w": "112", - "h": "19", + "zOrder": "3", + "w": "148", + "h": "47", "measuredW": "150", "measuredH": "100", - "x": "860", - "y": "1479", + "x": "453", + "y": "2228", "properties": { "curvature": "0", "leftArrow": "false", @@ -2545,963 +1962,1503 @@ "stroke": "dotted", "color": "10027263", "p0": { - "x": 111.98622841182782, - "y": 19.46557788118912 + "x": 148.4997532704873, + "y": -0.17162340605727877 }, "p1": { - "x": 0.49235273148208303, - "y": -0.056041280138932066 + "x": 0.5656811947576955, + "y": -0.055470893020420554 }, "p2": { - "x": -0.33487112270768193, - "y": 0.31993591507512065 + "x": 0.1438568058148917, + "y": 47.2536221851085 } } }, { - "ID": "8013", + "ID": "8102", "typeID": "Arrow", - "zOrder": "20", - "w": "160", - "h": "188", + "zOrder": "4", + "w": "145", + "h": "15", "measuredW": "150", "measuredH": "100", - "x": "652", - "y": "1481", + "x": "463", + "y": "2206", "properties": { "curvature": "0", "leftArrow": "false", "rightArrow": "false", + "stroke": "dotted", "color": "10027263", "p0": { - "x": -0.3841804878131825, - "y": 188.49997944514098 + "x": 144.5799129616624, + "y": 14.532184964532576 }, "p1": { - "x": 0.49884332978224843, - "y": -0.21997537262096778 + "x": 0.5205160087037614, + "y": 0.039011501398818746 }, "p2": { - "x": 159.6653417460932, - "y": 0.2239221875944395 + "x": -0.127887688304952, + "y": -0.060198294287715726 } } }, { - "ID": "8014", - "typeID": "Canvas", - "zOrder": "172", - "w": "186", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "489", - "y": "1644", + "ID": "8103", + "typeID": "Arrow", + "zOrder": "0", + "w": "147", + "h": "139", + "measuredW": "150", + "measuredH": "100", + "x": "466", + "y": "2240", "properties": { - "color": "16776960" + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 146.93535762737952, + "y": -0.4256786899632061 + }, + "p1": { + "x": 0.5656811947576953, + "y": -0.05547089302042055 + }, + "p2": { + "x": -0.43820569842159784, + "y": 138.13066289839662 + } } }, { - "ID": "8015", - "typeID": "Label", - "zOrder": "173", - "measuredW": "60", - "measuredH": "25", - "x": "552", - "y": "1656", + "ID": "8105", + "typeID": "__group__", + "zOrder": "67", + "measuredW": "303", + "measuredH": "52", + "w": "303", + "h": "52", + "x": "545", + "y": "447", "properties": { - "size": "17", - "text": "Routing" + "controlName": "100-typescript-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "303", + "h": "52", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "197", + "measuredH": "26", + "x": "53", + "y": "13", + "properties": { + "text": "Learn TypeScript Basics", + "size": "18" + } + } + ] + } } }, { - "ID": "8016", - "typeID": "Canvas", - "zOrder": "174", - "w": "178", + "ID": "8106", + "typeID": "__group__", + "zOrder": "72", + "measuredW": "262", + "measuredH": "50", + "w": "262", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "493", - "y": "1540", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8017", - "typeID": "Label", - "zOrder": "175", - "measuredW": "103", - "measuredH": "25", - "x": "530", - "y": "1552", + "x": "586", + "y": "712", "properties": { - "size": "17", - "text": "Configuration" + "controlName": "101-rxjs-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "262", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "145", + "measuredH": "25", + "x": "63", + "y": "12", + "properties": { + "text": "Learn RxJS Basics", + "size": "17" + } + } + ] + } } }, { - "ID": "8018", - "typeID": "Canvas", - "zOrder": "176", - "w": "178", + "ID": "8107", + "typeID": "__group__", + "zOrder": "77", + "measuredW": "262", + "measuredH": "50", + "w": "262", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1549", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8019", - "typeID": "Label", - "zOrder": "177", - "measuredW": "113", - "measuredH": "25", - "x": "253", - "y": "1561", + "x": "901", + "y": "935", "properties": { - "size": "17", - "text": "Router Outlets" + "controlName": "102-angular-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "262", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "176", + "measuredH": "25", + "x": "48", + "y": "12", + "properties": { + "text": "Understand the Basics", + "size": "17" + } + } + ] + } } }, { - "ID": "8020", - "typeID": "Canvas", - "zOrder": "178", - "w": "178", + "ID": "8108", + "typeID": "__group__", + "zOrder": "89", + "measuredW": "243", + "measuredH": "50", + "w": "243", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1659", + "x": "579", + "y": "940", "properties": { - "color": "16770457" + "controlName": "103-angular-cli" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "243", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "91", + "measuredH": "25", + "x": "76", + "y": "12", + "properties": { + "text": "Angular CLI", + "size": "17" + } + } + ] + } } }, { - "ID": "8021", - "typeID": "Label", - "zOrder": "179", - "measuredW": "110", - "measuredH": "25", - "x": "255", - "y": "1671", + "ID": "8109", + "typeID": "__group__", + "zOrder": "81", + "measuredW": "222", + "measuredH": "50", + "w": "222", + "h": "50", + "x": "657", + "y": "1166", "properties": { - "size": "17", - "text": "Router Events" + "controlName": "104-templates" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "80", + "measuredH": "25", + "x": "71", + "y": "12", + "properties": { + "text": "Templates", + "size": "17" + } + } + ] + } } }, { - "ID": "8022", - "typeID": "Canvas", - "zOrder": "180", - "w": "178", + "ID": "8110", + "typeID": "__group__", + "zOrder": "113", + "measuredW": "186", + "measuredH": "50", + "w": "186", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1604", + "x": "489", + "y": "1448", "properties": { - "color": "16770457" - } - }, - { - "ID": "8023", - "typeID": "Label", - "zOrder": "181", - "measuredW": "98", - "measuredH": "25", - "x": "261", - "y": "1616", - "properties": { - "size": "17", - "text": "Router Links" - } - }, - { - "ID": "8024", - "typeID": "Arrow", - "zOrder": "17", - "w": "121", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "388", - "y": "1568", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 120.93806896294319, - "y": 93.17429394896112 - }, - "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757027 - }, - "p2": { - "x": -0.31766348911210684, - "y": -0.0011636194603852346 - } - } - }, - { - "ID": "8025", - "typeID": "Arrow", - "zOrder": "18", - "w": "137", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "375", - "y": "1677", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137, - "y": 3 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454229 - }, - "p2": { - "x": -0.08142479985480122, - "y": 0.7671836529266329 + "controlName": "105-rendering-topics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "186", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "135", + "measuredH": "25", + "x": "25", + "y": "12", + "properties": { + "size": "17", + "text": "Rendering Topics" + } + } + ] } } }, { - "ID": "8026", - "typeID": "Arrow", - "zOrder": "19", - "w": "122", - "h": "54", - "measuredW": "150", - "measuredH": "100", - "x": "382", - "y": "1616", + "ID": "8111", + "typeID": "__group__", + "zOrder": "117", + "measuredW": "133", + "measuredH": "50", + "w": "133", + "h": "50", + "x": "745", + "y": "1448", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 121.83256443864616, - "y": 54.10892686648094 - }, - "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757032 - }, - "p2": { - "x": 0, - "y": 0 + "controlName": "106-forms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "133", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "43", + "y": "12", + "properties": { + "size": "17", + "text": "Forms" + } + } + ] } } }, { - "ID": "8027", - "typeID": "Arrow", - "zOrder": "16", - "w": "1", - "h": "205", - "measuredW": "150", - "measuredH": "100", - "x": "574", - "y": "1569", + "ID": "8112", + "typeID": "__group__", + "zOrder": "120", + "measuredW": "186", + "measuredH": "50", + "w": "186", + "h": "50", + "x": "489", + "y": "1644", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": -0.3346582539068095, - "y": 205.1628221932308 - }, - "p1": { - "x": 0.5160009912864776, - "y": -0.006662715401372748 - }, - "p2": { - "x": -0.3346582539068095, - "y": -0.1453471090021594 + "controlName": "107-routing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "186", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "60", + "measuredH": "25", + "x": "63", + "y": "12", + "properties": { + "size": "17", + "text": "Routing" + } + } + ] } } }, { - "ID": "8028", - "typeID": "Canvas", - "zOrder": "182", + "ID": "8113", + "typeID": "__group__", + "zOrder": "125", + "measuredW": "285", + "measuredH": "50", "w": "285", "h": "50", - "measuredW": "100", - "measuredH": "70", "x": "878", "y": "1655", "properties": { - "color": "16776960" + "controlName": "108-services-remote-data" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "285", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "207", + "measuredH": "25", + "x": "39", + "y": "12", + "properties": { + "size": "17", + "text": "Services and Remote Data" + } + } + ] + } } }, { - "ID": "8029", - "typeID": "Label", - "zOrder": "183", - "measuredW": "207", - "measuredH": "25", - "x": "917", - "y": "1667", + "ID": "8114", + "typeID": "__group__", + "zOrder": "127", + "measuredW": "285", + "measuredH": "50", + "w": "285", + "h": "50", + "x": "878", + "y": "1709", "properties": { - "size": "17", - "text": "Services and Remote Data" + "controlName": "109-lifecycle-hooks" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "285", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "121", + "measuredH": "25", + "x": "82", + "y": "12", + "properties": { + "size": "17", + "text": "Lifecycle Hooks" + } + } + ] + } } }, { - "ID": "8030", - "typeID": "Arrow", - "zOrder": "15", - "w": "232", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "668", - "y": "1680", + "ID": "8115", + "typeID": "__group__", + "zOrder": "131", + "measuredW": "286", + "measuredH": "50", + "w": "286", + "h": "50", + "x": "877", + "y": "1763", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 231.23278894059456, - "y": 0.2239221875943258 - }, - "p1": { - "x": 0.5209787928221857, - "y": 0.005742251223491235 - }, - "p2": { - "x": -0.3346582539068095, - "y": 0.2239221875944395 + "controlName": "110-state-management" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "286", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "148", + "measuredH": "25", + "x": "69", + "y": "12", + "properties": { + "size": "17", + "text": "State Management" + } + } + ] } } }, { - "ID": "8031", - "typeID": "Canvas", - "zOrder": "184", - "w": "178", + "ID": "8116", + "typeID": "__group__", + "zOrder": "130", + "measuredW": "126", + "measuredH": "50", + "w": "126", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1715", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8032", - "typeID": "Label", - "zOrder": "185", - "measuredW": "56", - "measuredH": "25", - "x": "282", - "y": "1727", + "x": "540", + "y": "1848", "properties": { - "size": "17", - "text": "Guards" + "controlName": "111-zones" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "126", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "49", + "measuredH": "25", + "x": "38", + "y": "12", + "properties": { + "size": "17", + "text": "Zones" + } + } + ] + } } }, { - "ID": "8033", - "typeID": "Arrow", - "zOrder": "14", - "w": "110", - "h": "48", - "measuredW": "150", - "measuredH": "100", - "x": "396", - "y": "1686", + "ID": "8118", + "typeID": "__group__", + "zOrder": "132", + "measuredW": "227", + "measuredH": "50", + "w": "227", + "h": "50", + "x": "221", + "y": "1847", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 110.1089405697204, - "y": 0.09286914910626365 - }, - "p1": { - "x": 0.5902039507828301, - "y": -0.08117284189966499 - }, - "p2": { - "x": -0.08142479985480122, - "y": 47.76718365292663 + "controlName": "112-creating-a-custom-x" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "227", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "177", + "measuredH": "25", + "x": "23", + "y": "12", + "properties": { + "size": "17", + "text": "Creating a custom ___" + } + } + ] } } }, { - "ID": "8034", - "typeID": "Canvas", - "zOrder": "186", - "w": "285", + "ID": "8119", + "typeID": "__group__", + "zOrder": "141", + "measuredW": "272", + "measuredH": "50", + "w": "272", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "878", - "y": "1709", + "x": "688", + "y": "1944", "properties": { - "color": "16776960" + "controlName": "113-angular-ssr" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "272", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "225", + "measuredH": "25", + "x": "23", + "y": "12", + "properties": { + "size": "17", + "text": "Server Side Rendering (SSR)" + } + } + ] + } } }, { - "ID": "8035", - "typeID": "Label", - "zOrder": "187", - "measuredW": "121", - "measuredH": "25", - "x": "960", - "y": "1721", + "ID": "8120", + "typeID": "__group__", + "zOrder": "140", + "measuredW": "271", + "measuredH": "50", + "w": "271", + "h": "50", + "x": "689", + "y": "2000", "properties": { - "size": "17", - "text": "Lifecycle Hooks" + "controlName": "114-angular-ssg" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "271", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "219", + "measuredH": "25", + "x": "30", + "y": "12", + "properties": { + "size": "17", + "text": "Static Site Generation (SSG)" + } + } + ] + } } }, { - "ID": "8037", - "typeID": "Canvas", - "zOrder": "188", - "w": "212", + "ID": "8121", + "typeID": "__group__", + "zOrder": "136", + "measuredW": "272", + "measuredH": "50", + "w": "272", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "951", - "y": "1560", + "x": "588", + "y": "2205", "properties": { - "color": "16770457" + "controlName": "115-testing-angular-apps" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "272", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "162", + "measuredH": "25", + "x": "55", + "y": "12", + "properties": { + "size": "17", + "text": "Testing Angular Apps" + } + } + ] + } } }, { - "ID": "8038", - "typeID": "Label", - "zOrder": "189", - "measuredW": "168", - "measuredH": "25", - "x": "973", - "y": "1572", - "properties": { - "size": "17", - "text": "Dependency Injection" - } - }, - { - "ID": "8039", - "typeID": "Arrow", - "zOrder": "13", - "w": "1", - "h": "87", - "measuredW": "150", - "measuredH": "100", - "x": "1050", - "y": "1588", + "ID": "8122", + "typeID": "__group__", + "zOrder": "55", + "measuredW": "240", + "measuredH": "49", + "w": "240", + "h": "49", + "x": "222", + "y": "387", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 86.60548396943796 - }, - "p1": { - "x": 0.5209787928221857, - "y": 0.005742251223491228 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.18809294361221873 + "controlName": "100-typescript-basics:what-is-typescript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "240", + "h": "49", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "141", + "measuredW": "150", + "measuredH": "25", + "x": "55", + "y": "12", + "properties": { + "text": "What is TypeScript?", + "size": "17" + } + } + ] } } }, { - "ID": "8040", - "typeID": "Canvas", - "zOrder": "190", - "w": "154", + "ID": "8123", + "typeID": "__group__", + "zOrder": "68", + "measuredW": "240", + "measuredH": "50", + "w": "240", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "493", - "y": "1747", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8041", - "typeID": "Label", - "zOrder": "191", - "measuredW": "100", - "measuredH": "25", - "x": "520", - "y": "1759", + "x": "222", + "y": "442", "properties": { - "size": "17", - "text": "Lazy Loading" + "controlName": "101-typescript-basics:why-use-typescript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "240", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "160", + "measuredW": "157", + "measuredH": "25", + "x": "40", + "y": "12", + "properties": { + "text": "Why use TypeScript?", + "size": "17" + } + } + ] + } } }, { - "ID": "8042", - "typeID": "Canvas", - "zOrder": "192", - "w": "126", + "ID": "8124", + "typeID": "__group__", + "zOrder": "56", + "measuredW": "240", + "measuredH": "50", + "w": "240", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "540", - "y": "1848", - "properties": { - "color": "16776960" - } - }, - { - "ID": "8043", - "typeID": "Label", - "zOrder": "193", - "measuredW": "49", - "measuredH": "25", - "x": "578", - "y": "1860", + "x": "222", + "y": "499", "properties": { - "size": "17", - "text": "Zones" + "controlName": "102-typescript-basics:structural-typing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "240", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "131", + "measuredW": "128", + "measuredH": "25", + "x": "54", + "y": "12", + "properties": { + "text": "Structural Typing", + "size": "17" + } + } + ] + } } }, { - "ID": "8044", - "typeID": "Canvas", - "zOrder": "194", - "w": "286", + "ID": "8125", + "typeID": "__group__", + "zOrder": "57", + "measuredW": "240", + "measuredH": "50", + "w": "240", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "877", - "y": "1763", + "x": "222", + "y": "555", "properties": { - "color": "16776960" + "controlName": "103-typescript-basics:type-inference" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "240", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "118", + "measuredW": "116", + "measuredH": "25", + "x": "61", + "y": "12", + "properties": { + "text": "Type Inference", + "size": "17" + } + } + ] + } } }, { - "ID": "8045", - "typeID": "Label", - "zOrder": "195", - "measuredW": "148", - "measuredH": "25", - "x": "946", - "y": "1775", + "ID": "8126", + "typeID": "__group__", + "zOrder": "69", + "measuredW": "222", + "measuredH": "50", + "w": "222", + "h": "50", + "x": "943", + "y": "386", "properties": { - "size": "17", - "text": "State Management" + "controlName": "104-typescript-basics:union-types" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "95", + "measuredH": "25", + "x": "63", + "y": "12", + "properties": { + "text": "Union Types", + "size": "17" + } + } + ] + } } }, { - "ID": "8046", - "typeID": "Canvas", - "zOrder": "196", - "w": "227", + "ID": "8127", + "typeID": "__group__", + "zOrder": "70", + "measuredW": "222", + "measuredH": "50", + "w": "222", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1847", + "x": "943", + "y": "441", "properties": { - "color": "16776960" + "controlName": "105-typescript-basics:builtin-types" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "100", + "measuredH": "25", + "x": "61", + "y": "12", + "properties": { + "text": "Built-in types", + "size": "17" + } + } + ] + } } }, { - "ID": "8047", - "typeID": "Label", - "zOrder": "197", - "measuredW": "177", - "measuredH": "25", - "x": "244", - "y": "1859", + "ID": "8128", + "typeID": "__group__", + "zOrder": "71", + "measuredW": "222", + "measuredH": "50", + "w": "222", + "h": "50", + "x": "943", + "y": "497", "properties": { - "size": "17", - "text": "Creating a custom ___" + "controlName": "106-typescript-basics:type-guard" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "94", + "measuredW": "97", + "measuredH": "25", + "x": "64", + "y": "12", + "properties": { + "text": "Type Guards", + "size": "17" + } + } + ] + } } }, { - "ID": "8048", - "typeID": "Arrow", - "zOrder": "12", - "w": "165", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "419", - "y": "1868", + "ID": "8129", + "typeID": "__group__", + "zOrder": "73", + "measuredW": "256", + "measuredH": "50", + "w": "256", + "h": "50", + "x": "221", + "y": "635", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 165.29974235933003, - "y": 3.223922187594326 - }, - "p1": { - "x": 0.5209787928221858, - "y": 0.0057422512234912345 - }, - "p2": { - "x": 0.2387810888058084, - "y": -0.32883026031754525 + "controlName": "100-rxjs-basics:observable-pattern" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "256", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "210", + "measuredH": "25", + "x": "23", + "y": "12", + "properties": { + "text": "What is Observable Pattern", + "size": "17" + } + } + ] } } }, { - "ID": "8050", - "typeID": "Canvas", - "zOrder": "198", - "w": "121", + "ID": "8130", + "typeID": "__group__", + "zOrder": "74", + "measuredW": "256", + "measuredH": "50", + "w": "256", "h": "50", - "measuredW": "100", - "measuredH": "70", "x": "221", - "y": "1929", + "y": "690", "properties": { - "color": "16770457" + "controlName": "101-rxjs-basics:observable-lifecycle" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "256", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "161", + "measuredH": "25", + "x": "47", + "y": "12", + "properties": { + "text": "Observable Lifecycle", + "size": "17" + } + } + ] + } } }, { - "ID": "8051", - "typeID": "Label", - "zOrder": "199", - "measuredW": "68", - "measuredH": "25", - "x": "248", - "y": "1941", + "ID": "8131", + "typeID": "__group__", + "zOrder": "75", + "measuredW": "256", + "measuredH": "50", + "w": "256", + "h": "50", + "x": "221", + "y": "746", "properties": { - "size": "17", - "text": "Directive" + "controlName": "102-rxjs-basics:marble-diagrams" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "256", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "133", + "measuredH": "25", + "x": "61", + "y": "12", + "properties": { + "text": "Marble Diagrams", + "size": "17" + } + } + ] + } } }, { - "ID": "8052", - "typeID": "Canvas", - "zOrder": "200", + "ID": "8132", + "typeID": "__group__", + "zOrder": "76", + "measuredW": "256", + "measuredH": "50", + "w": "256", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "348", - "y": "1929", + "x": "221", + "y": "802", "properties": { - "color": "16770457" + "controlName": "103-rxjs-basics:rxjs-vs-promises" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "256", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "137", + "measuredH": "25", + "x": "59", + "y": "12", + "properties": { + "text": "RxJS vs Promises", + "size": "17" + } + } + ] + } } }, { - "ID": "8053", - "typeID": "Label", - "zOrder": "201", - "measuredW": "35", - "measuredH": "25", - "x": "380", - "y": "1941", + "ID": "8133", + "typeID": "__group__", + "zOrder": "98", + "measuredW": "222", + "measuredH": "274", + "w": "222", + "h": "274", + "x": "941", + "y": "567", "properties": { - "size": "17", - "text": "Pipe" + "controlName": "104-rxjs-basics:operators" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "222", + "h": "274", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "83", + "measuredH": "26", + "x": "59", + "y": "13", + "properties": { + "text": "Operators", + "size": "18" + } + } + ] + } } }, { - "ID": "8054", - "typeID": "Canvas", - "zOrder": "202", - "w": "227", + "ID": "8134", + "typeID": "__group__", + "zOrder": "99", + "measuredW": "196", + "measuredH": "50", + "w": "196", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "221", - "y": "1983", + "x": "955", + "y": "616", "properties": { - "color": "16770457" + "controlName": "100-rxjs-basics:operators:filtering" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "196", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "63", + "measuredH": "25", + "x": "70", + "y": "12", + "properties": { + "text": "Filtering", + "size": "17" + } + } + ] + } } }, { - "ID": "8055", - "typeID": "Label", - "zOrder": "203", - "measuredW": "53", - "measuredH": "25", - "x": "308", - "y": "1995", + "ID": "8137", + "typeID": "__group__", + "zOrder": "100", + "measuredW": "195", + "measuredH": "50", + "w": "195", + "h": "50", + "x": "955", + "y": "670", "properties": { - "size": "17", - "text": "Library" - } - }, - { - "ID": "8056", - "typeID": "Arrow", - "zOrder": "11", - "w": "1", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "281", - "y": "1872", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 82.26052647176084 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491229 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "8057", - "typeID": "Arrow", - "zOrder": "10", - "w": "1", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "397", - "y": "1884", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 82.26052647176084 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491229 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "8058", - "typeID": "Arrow", - "zOrder": "9", - "w": "274", - "h": "90", - "measuredW": "150", - "measuredH": "100", - "x": "429", - "y": "1878", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 273.85853278458967, - "y": 90.7596536600604 - }, - "p1": { - "x": 0.5394209656837318, - "y": 0.08127816093452517 - }, - "p2": { - "x": 0.2417599083887012, - "y": 0.49483933119245194 + "controlName": "101-rxjs-basics:operators:rate-limiting" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "195", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "102", + "measuredH": "25", + "x": "51", + "y": "12", + "properties": { + "text": "Rate Limiting", + "size": "17" + } + } + ] } } }, { - "ID": "8059", - "typeID": "Canvas", - "zOrder": "204", - "w": "272", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "588", - "y": "2205", - "properties": { - "color": "16776960" - } - }, - { - "ID": "8060", - "typeID": "Label", - "zOrder": "205", - "measuredW": "162", - "measuredH": "25", - "x": "620", - "y": "2217", - "properties": { - "size": "17", - "text": "Testing Angular Apps" - } - }, - { - "ID": "8061", - "typeID": "Canvas", - "zOrder": "206", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "2238", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8062", - "typeID": "Label", - "zOrder": "207", - "measuredW": "162", - "measuredH": "25", - "x": "269", - "y": "2250", - "properties": { - "size": "17", - "text": "Component Bindings" - } - }, - { - "ID": "8063", - "typeID": "Canvas", - "zOrder": "208", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "2293", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8064", - "typeID": "Label", - "zOrder": "209", - "measuredW": "137", - "measuredH": "25", - "x": "281", - "y": "2305", - "properties": { - "size": "17", - "text": "Testing Directives" - } - }, - { - "ID": "8065", - "typeID": "Canvas", - "zOrder": "210", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "222", - "y": "2348", - "properties": { - "color": "16770457" - } - }, - { - "ID": "8066", - "typeID": "Label", - "zOrder": "211", - "measuredW": "174", - "measuredH": "25", - "x": "263", - "y": "2360", - "properties": { - "size": "17", - "text": "Component Tempaltes" - } - }, - { - "ID": "8072", - "typeID": "Canvas", - "zOrder": "66", - "w": "350", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "900", - "y": "158" - }, - { - "ID": "8073", - "typeID": "Label", - "zOrder": "67", - "measuredW": "314", - "measuredH": "25", - "x": "914", - "y": "175", - "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap" - } - }, - { - "ID": "8074", - "typeID": "Label", - "zOrder": "68", - "measuredW": "319", - "measuredH": "25", - "x": "914", - "y": "203", - "properties": { - "size": "17", - "text": "along with resources and other roadmaps" - } - }, - { - "ID": "8081", + "ID": "8138", "typeID": "__group__", - "zOrder": "69", - "measuredW": "320", - "measuredH": "45", - "w": "320", - "h": "45", - "x": "915", - "y": "239", + "zOrder": "101", + "measuredW": "197", + "measuredH": "50", + "w": "197", + "h": "50", + "x": "954", + "y": "726", "properties": { - "controlName": "ext_link:roadmap.sh" + "controlName": "102-rxjs-basics:operators:transformation" }, "children": { "controls": { @@ -3510,85 +3467,121 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "320", - "h": "45", + "w": "197", + "h": "50", "measuredW": "100", "measuredH": "70", "x": "0", "y": "0", "properties": { - "borderColor": "4273622", - "color": "4273622" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "105", - "measuredH": "28", - "x": "141", - "y": "8", + "measuredW": "116", + "measuredH": "25", + "x": "45", + "y": "12", "properties": { - "color": "16777215", - "size": "20", - "text": "roadmap.sh" + "text": "Transformation", + "size": "17" } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "45", - "measuredH": "28", - "x": "65", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "https" + } + ] + } + } + }, + { + "ID": "8139", + "typeID": "__group__", + "zOrder": "102", + "measuredW": "197", + "measuredH": "50", + "w": "197", + "h": "50", + "x": "954", + "y": "781", + "properties": { + "controlName": "103-rxjs-basics:operators:combination" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "197", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" } }, { - "ID": "3", + "ID": "1", "typeID": "Label", - "zOrder": "3", - "measuredW": "5", - "measuredH": "28", - "x": "113", - "y": "8", + "zOrder": "1", + "measuredW": "98", + "measuredH": "25", + "x": "54", + "y": "12", "properties": { - "color": "16777215", - "size": "20", - "text": ":" + "text": "Combination", + "size": "17" } - }, + } + ] + } + } + }, + { + "ID": "8140", + "typeID": "__group__", + "zOrder": "78", + "measuredW": "262", + "measuredH": "50", + "w": "262", + "h": "50", + "x": "900", + "y": "876", + "properties": { + "controlName": "100-angular-basics:angularjs-vs-angular" + }, + "children": { + "controls": { + "control": [ { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "10", - "measuredH": "28", - "x": "120", - "y": "9", + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "262", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", "properties": { - "color": "16777215", - "size": "20", - "text": "/" + "color": "16770457" } }, { - "ID": "5", + "ID": "1", "typeID": "Label", - "zOrder": "5", - "measuredW": "10", - "measuredH": "28", - "x": "128", - "y": "9", + "zOrder": "1", + "measuredW": "158", + "measuredH": "25", + "x": "52", + "y": "12", "properties": { - "color": "16777215", - "size": "20", - "text": "/" + "text": "Angular.js vs Angular", + "size": "17" } } ] @@ -3596,17 +3589,17 @@ } }, { - "ID": "8082", + "ID": "8141", "typeID": "__group__", - "zOrder": "63", - "measuredW": "572", - "measuredH": "90", - "w": "572", - "h": "90", - "x": "181", - "y": "168", + "zOrder": "103", + "measuredW": "236", + "measuredH": "50", + "w": "236", + "h": "50", + "x": "915", + "y": "1054", "properties": { - "controlName": "ext_link:roadmap.sh/frontend" + "controlName": "101-angular-basics:angular-components" }, "children": { "controls": { @@ -3615,38 +3608,74 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "572", - "h": "90", + "w": "236", + "h": "50", "measuredW": "100", "measuredH": "70", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "396", - "measuredH": "28", - "x": "88", - "y": "19", + "measuredW": "99", + "measuredH": "25", + "x": "68", + "y": "12", "properties": { - "size": "20", - "text": "Frontend Roadmap till Framework Selection" + "size": "17", + "text": "Components" + } + } + ] + } + } + }, + { + "ID": "8142", + "typeID": "__group__", + "zOrder": "104", + "measuredW": "236", + "measuredH": "50", + "w": "236", + "h": "50", + "x": "915", + "y": "1108", + "properties": { + "controlName": "102-angular-basics:angular-templates" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "236", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" } }, { - "ID": "2", + "ID": "1", "typeID": "Label", - "zOrder": "2", - "measuredW": "152", - "measuredH": "24", - "x": "210", - "y": "49", + "zOrder": "1", + "measuredW": "80", + "measuredH": "25", + "x": "78", + "y": "12", "properties": { - "size": "16", - "color": "10027263", - "text": "roadmap.sh/frontend" + "size": "17", + "text": "Templates" } } ] @@ -3654,17 +3683,17 @@ } }, { - "ID": "8083", + "ID": "8143", "typeID": "__group__", - "zOrder": "110", - "measuredW": "576", - "measuredH": "105", - "w": "576", - "h": "105", - "x": "575", - "y": "2457", + "zOrder": "105", + "measuredW": "236", + "measuredH": "50", + "w": "236", + "h": "50", + "x": "915", + "y": "1163", "properties": { - "controlName": "ext_link:roadmap.sh/frontend" + "controlName": "103-angular-basics:angular-modules" }, "children": { "controls": { @@ -3673,38 +3702,74 @@ "ID": "0", "typeID": "Canvas", "zOrder": "0", - "w": "576", - "h": "105", + "w": "236", + "h": "50", "measuredW": "100", "measuredH": "70", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "502", - "measuredH": "32", - "x": "40", - "y": "22", + "measuredW": "66", + "measuredH": "25", + "x": "85", + "y": "12", "properties": { - "size": "24", - "text": "Frontend Roadmap after Framework Selection" + "size": "17", + "text": "Modules" + } + } + ] + } + } + }, + { + "ID": "8144", + "typeID": "__group__", + "zOrder": "110", + "measuredW": "236", + "measuredH": "50", + "w": "236", + "h": "50", + "x": "915", + "y": "1218", + "properties": { + "controlName": "104-angular-basics:dependency-injection" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "236", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" } }, { - "ID": "2", + "ID": "1", "typeID": "Label", - "zOrder": "2", - "measuredW": "171", - "measuredH": "26", - "x": "205", - "y": "58", + "zOrder": "1", + "measuredW": "168", + "measuredH": "25", + "x": "34", + "y": "12", "properties": { - "text": "roadmap.sh/frontend", - "size": "18", - "color": "10027263" + "size": "17", + "text": "Dependency Injection" } } ] @@ -3712,379 +3777,1834 @@ } }, { - "ID": "8084", - "typeID": "Canvas", - "zOrder": "212", - "w": "271", + "ID": "8145", + "typeID": "__group__", + "zOrder": "111", + "measuredW": "236", + "measuredH": "50", + "w": "236", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "689", - "y": "2000", - "properties": { - "color": "16776960" - } - }, - { - "ID": "8085", - "typeID": "Label", - "zOrder": "213", - "measuredW": "219", - "measuredH": "25", - "x": "719", - "y": "2012", + "x": "915", + "y": "1273", "properties": { - "size": "17", - "text": "Static Site Generation (SSG)" + "controlName": "105-angular-basics:services" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "236", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "67", + "measuredH": "25", + "x": "84", + "y": "12", + "properties": { + "size": "17", + "text": "Services" + } + } + ] + } } }, { - "ID": "8087", - "typeID": "Canvas", - "zOrder": "214", - "w": "272", + "ID": "8146", + "typeID": "__group__", + "zOrder": "112", + "measuredW": "236", + "measuredH": "50", + "w": "236", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "688", - "y": "1944", - "properties": { - "color": "16776960" - } - }, - { - "ID": "8088", - "typeID": "Label", - "zOrder": "215", - "measuredW": "225", - "measuredH": "25", - "x": "711", - "y": "1956", + "x": "915", + "y": "1329", "properties": { - "size": "17", - "text": "Server Side Rendering (SSR)" + "controlName": "106-angular-basics:routing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "236", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "60", + "measuredH": "25", + "x": "88", + "y": "12", + "properties": { + "size": "17", + "text": "Routing" + } + } + ] + } } }, { - "ID": "8089", - "typeID": "Canvas", - "zOrder": "216", - "w": "197", + "ID": "8147", + "typeID": "__group__", + "zOrder": "91", + "measuredW": "123", + "measuredH": "50", + "w": "123", "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "1020", - "y": "1944", + "x": "235", + "y": "891", "properties": { - "color": "16770457" + "controlName": "100-angular-cli:ng-build" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "123", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "61", + "measuredH": "25", + "x": "33", + "y": "12", + "properties": { + "text": "ng build", + "size": "17" + } + } + ] + } } }, { - "ID": "8090", - "typeID": "Label", - "zOrder": "217", - "measuredW": "135", - "measuredH": "25", - "x": "1056", - "y": "1956", + "ID": "8148", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "94", + "measuredH": "50", + "w": "94", + "h": "50", + "x": "364", + "y": "891", "properties": { - "size": "17", - "text": "Angular Universal" + "controlName": "101-angular-cli:ng-serve" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "94", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "67", + "measuredH": "25", + "x": "16", + "y": "12", + "properties": { + "text": "ng serve", + "size": "17" + } + } + ] + } } }, { - "ID": "8091", - "typeID": "Arrow", - "zOrder": "8", - "w": "4", - "h": "617", - "measuredW": "150", - "measuredH": "100", - "x": "780", - "y": "2032", + "ID": "8149", + "typeID": "__group__", + "zOrder": "93", + "measuredW": "123", + "measuredH": "50", + "w": "123", + "h": "50", + "x": "236", + "y": "946", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 3.6653417460931905, - "y": 616.945330548373 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.0057422512234912276 - }, - "p2": { - "x": 3.6653417460931905, - "y": -0.1453471090021594 + "controlName": "102-angular-cli:ng-generate" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "123", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "95", + "measuredH": "25", + "x": "17", + "y": "12", + "properties": { + "text": "ng generate", + "size": "17" + } + } + ] } } }, { - "ID": "8093", - "typeID": "Arrow", - "zOrder": "7", - "w": "136", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "940", - "y": "1970", + "ID": "8150", + "typeID": "__group__", + "zOrder": "94", + "measuredW": "94", + "measuredH": "50", + "w": "94", + "h": "50", + "x": "365", + "y": "946", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 136, - "y": 0 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454232 - }, - "p2": { - "x": -0.33608340984960705, - "y": 5.057669186803878 + "controlName": "103-angular-cli:ng-test" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "94", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "53", + "measuredH": "25", + "x": "22", + "y": "12", + "properties": { + "text": "ng test", + "size": "17" + } + } + ] } } }, { - "ID": "8094", - "typeID": "Canvas", - "zOrder": "218", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "1020", - "y": "2000", + "ID": "8151", + "typeID": "__group__", + "zOrder": "96", + "measuredW": "123", + "measuredH": "49", + "w": "123", + "h": "49", + "x": "235", + "y": "1002", "properties": { - "color": "16770457" + "controlName": "104-angular-cli:ng-e2e" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "123", + "h": "49", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "55", + "measuredH": "25", + "x": "36", + "y": "12", + "properties": { + "text": "ng e2e", + "size": "17" + } + } + ] + } } }, { - "ID": "8095", - "typeID": "Label", - "zOrder": "219", - "measuredW": "45", - "measuredH": "25", - "x": "1096", - "y": "2012", + "ID": "8152", + "typeID": "__group__", + "zOrder": "97", + "measuredW": "94", + "measuredH": "49", + "w": "94", + "h": "49", + "x": "364", + "y": "1002", "properties": { - "size": "17", - "text": "Scully" + "controlName": "105-angular-cli:ng-new" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "94", + "h": "49", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "25", + "x": "21", + "y": "12", + "properties": { + "text": "ng new", + "size": "17" + } + } + ] + } } }, { - "ID": "8097", - "typeID": "Arrow", - "zOrder": "6", - "w": "104", - "h": "40", - "measuredW": "150", - "measuredH": "100", - "x": "936", - "y": "1976", + "ID": "8153", + "typeID": "__group__", + "zOrder": "95", + "measuredW": "145", + "measuredH": "50", + "w": "145", + "h": "50", + "x": "579", + "y": "839", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 104.43216501804841, - "y": 0.3172722921526656 - }, - "p1": { - "x": 0.5205160087037611, - "y": 0.039011501398818815 - }, - "p2": { - "x": 0.3887527462180742, - "y": 40.556174604332455 + "controlName": "106-angular-cli:schematics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "145", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "90", + "measuredH": "25", + "x": "28", + "y": "12", + "properties": { + "size": "17", + "text": "Schematics" + } + } + ] } } }, { - "ID": "8098", - "typeID": "Arrow", - "zOrder": "5", - "w": "136", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "940", - "y": "2022", + "ID": "8154", + "typeID": "__group__", + "zOrder": "82", + "measuredW": "157", + "measuredH": "50", + "w": "157", + "h": "50", + "x": "221", + "y": "1095", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 136, - "y": 0 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454232 - }, - "p2": { - "x": -0.33608340984960705, - "y": 5.057669186803878 + "controlName": "100-templates:interpolation" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "157", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "98", + "measuredH": "25", + "x": "30", + "y": "11", + "properties": { + "text": "Interpolation", + "size": "17" + } + } + ] } } }, { - "ID": "8099", - "typeID": "Arrow", - "zOrder": "1", - "w": "137", - "h": "97", - "measuredW": "150", - "measuredH": "100", - "x": "471", - "y": "2233", + "ID": "8155", + "typeID": "__group__", + "zOrder": "83", + "measuredW": "161", + "measuredH": "50", + "w": "161", + "h": "50", + "x": "384", + "y": "1095", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137.79594489989745, - "y": -0.30749565311725746 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.38433587934019897, - "y": 96.9750594056843 + "controlName": "101-templates:property-binding" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "161", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "128", + "measuredH": "25", + "x": "17", + "y": "11", + "properties": { + "text": "Property Binding", + "size": "17" + } + } + ] } } }, { - "ID": "8100", - "typeID": "Arrow", - "zOrder": "2", - "w": "152", - "h": "67", - "measuredW": "150", - "measuredH": "100", - "x": "465", - "y": "2151", + "ID": "8156", + "typeID": "__group__", + "zOrder": "106", + "measuredW": "324", + "measuredH": "50", + "w": "324", + "h": "50", + "x": "221", + "y": "1150", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.30816846754254, - "y": 67.10012108806256 - }, - "p1": { - "x": 0.5245584633234497, - "y": 0.05852778135877274 - }, - "p2": { - "x": 0.30417618816505865, - "y": 0.21836448513636242 + "controlName": "102-templates:template-statements" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "324", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "163", + "measuredH": "25", + "x": "80", + "y": "12", + "properties": { + "size": "17", + "text": "Template Statements" + } + } + ] } } }, { - "ID": "8101", - "typeID": "Arrow", - "zOrder": "3", - "w": "148", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "453", - "y": "2228", + "ID": "8157", + "typeID": "__group__", + "zOrder": "107", + "measuredW": "324", + "measuredH": "50", + "w": "324", + "h": "50", + "x": "221", + "y": "1206", + "properties": { + "controlName": "103-templates:binding-data-props-attrs-events" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "324", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "267", + "measuredH": "25", + "x": "19", + "y": "12", + "properties": { + "size": "17", + "text": "Binding (Data, Props, Attrs, Events)" + } + } + ] + } + } + }, + { + "ID": "8158", + "typeID": "__group__", + "zOrder": "108", + "measuredW": "154", + "measuredH": "50", + "w": "154", + "h": "50", + "x": "221", + "y": "1261", + "properties": { + "controlName": "104-templates:reference-vars" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "154", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "119", + "measuredH": "25", + "x": "17", + "y": "12", + "properties": { + "size": "17", + "text": "Reference Vars" + } + } + ] + } + } + }, + { + "ID": "8159", + "typeID": "__group__", + "zOrder": "109", + "measuredW": "164", + "measuredH": "50", + "w": "164", + "h": "50", + "x": "381", + "y": "1261", + "properties": { + "controlName": "105-templates:input-output" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "164", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "131", + "measuredH": "25", + "x": "18", + "y": "12", + "properties": { + "size": "17", + "text": "@Input, @Output" + } + } + ] + } + } + }, + { + "ID": "8160", + "typeID": "__group__", + "zOrder": "114", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1344", + "properties": { + "controlName": "100-rendering-topics:builtin-directives" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "135", + "measuredH": "25", + "x": "21", + "y": "12", + "properties": { + "size": "17", + "text": "Built-in Directives" + } + } + ] + } + } + }, + { + "ID": "8161", + "typeID": "__group__", + "zOrder": "115", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1399", + "properties": { + "controlName": "101-rendering-topics:builtin-pipes" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "102", + "measuredH": "25", + "x": "38", + "y": "12", + "properties": { + "size": "17", + "text": "Built-in Pipes" + } + } + ] + } + } + }, + { + "ID": "8162", + "typeID": "__group__", + "zOrder": "116", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1453", + "properties": { + "controlName": "102-rendering-topics:change-detection" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "141", + "measuredH": "25", + "x": "18", + "y": "12", + "properties": { + "size": "17", + "text": "Change Detection" + } + } + ] + } + } + }, + { + "ID": "8163", + "typeID": "__group__", + "zOrder": "118", + "measuredW": "212", + "measuredH": "50", + "w": "212", + "h": "50", + "x": "951", + "y": "1414", + "properties": { + "controlName": "100-forms:reactive-forms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "212", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "120", + "measuredH": "25", + "x": "46", + "y": "12", + "properties": { + "size": "17", + "text": "Reactive Forms" + } + } + ] + } + } + }, + { + "ID": "8164", + "typeID": "__group__", + "zOrder": "119", + "measuredW": "212", + "measuredH": "50", + "w": "212", + "h": "50", + "x": "951", + "y": "1469", + "properties": { + "controlName": "101-forms:template-driven-forms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "212", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "177", + "measuredH": "25", + "x": "17", + "y": "12", + "properties": { + "size": "17", + "text": "Template-driven Forms" + } + } + ] + } + } + }, + { + "ID": "8165", + "typeID": "__group__", + "zOrder": "121", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "493", + "y": "1540", + "properties": { + "controlName": "100-routing:configuration" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "103", + "measuredH": "25", + "x": "37", + "y": "12", + "properties": { + "size": "17", + "text": "Configuration" + } + } + ] + } + } + }, + { + "ID": "8166", + "typeID": "__group__", + "zOrder": "122", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1549", + "properties": { + "controlName": "101-routing:router-outlets" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "113", + "measuredH": "25", + "x": "32", + "y": "12", + "properties": { + "size": "17", + "text": "Router Outlets" + } + } + ] + } + } + }, + { + "ID": "8167", + "typeID": "__group__", + "zOrder": "124", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1604", + "properties": { + "controlName": "102-routing:router-links" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "98", + "measuredH": "25", + "x": "40", + "y": "12", + "properties": { + "size": "17", + "text": "Router Links" + } + } + ] + } + } + }, + { + "ID": "8168", + "typeID": "__group__", + "zOrder": "123", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1659", + "properties": { + "controlName": "103-routing:router-events" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "110", + "measuredH": "25", + "x": "34", + "y": "12", + "properties": { + "size": "17", + "text": "Router Events" + } + } + ] + } + } + }, + { + "ID": "8169", + "typeID": "__group__", + "zOrder": "126", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "221", + "y": "1715", + "properties": { + "controlName": "104-routing:guards" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "25", + "x": "61", + "y": "12", + "properties": { + "size": "17", + "text": "Guards" + } + } + ] + } + } + }, + { + "ID": "8170", + "typeID": "__group__", + "zOrder": "129", + "measuredW": "154", + "measuredH": "50", + "w": "154", + "h": "50", + "x": "493", + "y": "1747", + "properties": { + "controlName": "105-routing:lazy-loading" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "154", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "100", + "measuredH": "25", + "x": "27", + "y": "12", + "properties": { + "size": "17", + "text": "Lazy Loading" + } + } + ] + } + } + }, + { + "ID": "8171", + "typeID": "__group__", + "zOrder": "128", + "measuredW": "212", + "measuredH": "50", + "w": "212", + "h": "50", + "x": "951", + "y": "1560", + "properties": { + "controlName": "100-services-remote-data:dependency-injection" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "212", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "168", + "measuredH": "25", + "x": "22", + "y": "12", + "properties": { + "size": "17", + "text": "Dependency Injection" + } + } + ] + } + } + }, + { + "ID": "8172", + "typeID": "__group__", + "zOrder": "84", + "measuredW": "126", + "measuredH": "50", + "w": "126", + "h": "50", + "x": "691", + "y": "1732", + "properties": { + "controlName": "100-state-management:ngxs" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "126", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "46", + "measuredH": "25", + "x": "40", + "y": "12", + "properties": { + "text": "NGXS", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "8173", + "typeID": "__group__", + "zOrder": "85", + "measuredW": "126", + "measuredH": "50", + "w": "126", + "h": "50", + "x": "691", + "y": "1789", + "properties": { + "controlName": "101-state-management:ngrx" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "126", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "39", + "y": "12", + "properties": { + "size": "17", + "text": "NGRX" + } + } + ] + } + } + }, + { + "ID": "8174", + "typeID": "__group__", + "zOrder": "133", + "measuredW": "121", + "measuredH": "50", + "w": "121", + "h": "50", + "x": "221", + "y": "1929", + "properties": { + "controlName": "100-creating-a-custom-x:directive" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "121", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "68", + "measuredH": "25", + "x": "27", + "y": "12", + "properties": { + "size": "17", + "text": "Directive" + } + } + ] + } + } + }, + { + "ID": "8175", + "typeID": "__group__", + "zOrder": "134", + "measuredW": "100", + "measuredH": "50", + "w": "100", + "h": "50", + "x": "348", + "y": "1929", + "properties": { + "controlName": "101-creating-a-custom-x:pipe" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "35", + "measuredH": "25", + "x": "32", + "y": "12", + "properties": { + "size": "17", + "text": "Pipe" + } + } + ] + } + } + }, + { + "ID": "8176", + "typeID": "__group__", + "zOrder": "135", + "measuredW": "227", + "measuredH": "50", + "w": "227", + "h": "50", + "x": "221", + "y": "1983", + "properties": { + "controlName": "102-creating-a-custom-x:library" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "227", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "53", + "measuredH": "25", + "x": "87", + "y": "12", + "properties": { + "size": "17", + "text": "Library" + } + } + ] + } + } + }, + { + "ID": "8177", + "typeID": "__group__", + "zOrder": "142", + "measuredW": "197", + "measuredH": "50", + "w": "197", + "h": "50", + "x": "1020", + "y": "1944", + "properties": { + "controlName": "100-angular-ssr:angular-universal" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "197", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "135", + "measuredH": "25", + "x": "36", + "y": "12", + "properties": { + "size": "17", + "text": "Angular Universal" + } + } + ] + } + } + }, + { + "ID": "8178", + "typeID": "__group__", + "zOrder": "143", + "measuredW": "197", + "measuredH": "50", + "w": "197", + "h": "50", + "x": "1020", + "y": "2000", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 148.4997532704873, - "y": -0.17162340605727877 - }, - "p1": { - "x": 0.5656811947576955, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.1438568058148917, - "y": 47.2536221851085 + "controlName": "100-angular-ssg:scully" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "197", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "45", + "measuredH": "25", + "x": "76", + "y": "12", + "properties": { + "size": "17", + "text": "Scully" + } + } + ] } } }, { - "ID": "8102", - "typeID": "Arrow", - "zOrder": "4", - "w": "145", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "463", - "y": "2206", + "ID": "8179", + "typeID": "__group__", + "zOrder": "86", + "measuredW": "255", + "measuredH": "50", + "w": "255", + "h": "50", + "x": "222", + "y": "2128", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 144.5799129616624, - "y": 14.532184964532576 - }, - "p1": { - "x": 0.5205160087037614, - "y": 0.039011501398818746 - }, - "p2": { - "x": -0.127887688304952, - "y": -0.060198294287715726 + "controlName": "100-testing-angular-apps:testing-pipes" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "255", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "104", + "measuredH": "25", + "x": "76", + "y": "12", + "properties": { + "size": "17", + "text": "Testing Pipes" + } + } + ] } } }, { - "ID": "8103", - "typeID": "Arrow", - "zOrder": "0", - "w": "147", - "h": "139", - "measuredW": "150", - "measuredH": "100", - "x": "466", - "y": "2240", + "ID": "8180", + "typeID": "__group__", + "zOrder": "87", + "measuredW": "255", + "measuredH": "50", + "w": "255", + "h": "50", + "x": "222", + "y": "2183", "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 146.93535762737952, - "y": -0.4256786899632061 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.05547089302042055 - }, - "p2": { - "x": -0.43820569842159784, - "y": 138.13066289839662 + "controlName": "101-testing-angular-apps:testing-services" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "255", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "219", + "measuredH": "25", + "x": "18", + "y": "12", + "properties": { + "size": "17", + "text": "Services with Dependencies" + } + } + ] + } + } + }, + { + "ID": "8181", + "typeID": "__group__", + "zOrder": "137", + "measuredW": "255", + "measuredH": "50", + "w": "255", + "h": "50", + "x": "222", + "y": "2238", + "properties": { + "controlName": "102-testing-angular-apps:testing-component-bindings" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "255", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "162", + "measuredH": "25", + "x": "47", + "y": "12", + "properties": { + "size": "17", + "text": "Component Bindings" + } + } + ] + } + } + }, + { + "ID": "8182", + "typeID": "__group__", + "zOrder": "138", + "measuredW": "255", + "measuredH": "50", + "w": "255", + "h": "50", + "x": "222", + "y": "2293", + "properties": { + "controlName": "103-testing-angular-apps:testing-directives" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "255", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "137", + "measuredH": "25", + "x": "59", + "y": "12", + "properties": { + "size": "17", + "text": "Testing Directives" + } + } + ] + } + } + }, + { + "ID": "8183", + "typeID": "__group__", + "zOrder": "139", + "measuredW": "255", + "measuredH": "50", + "w": "255", + "h": "50", + "x": "222", + "y": "2348", + "properties": { + "controlName": "104-testing-angular-apps:testing-component-templates" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "255", + "h": "50", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "174", + "measuredH": "25", + "x": "41", + "y": "12", + "properties": { + "size": "17", + "text": "Component Templates" + } + } + ] } } } diff --git a/public/sitemap.xml b/public/sitemap.xml index 9aaf22479..c4f3af333 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -27,7 +27,7 @@ https://roadmap.sh/angular monthly - 2022-09-22T12:48:24.994Z + 2022-09-22T13:50:27.726Z 1.0