mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-10 12:53:03 -05:00
feat: add contributors section
This commit is contained in:
@@ -2,7 +2,8 @@
|
|||||||
title: 🔴 React em angular
|
title: 🔴 React em angular
|
||||||
description: Desafio 5 é sobre aprender como se beneficiar das várias bibliotecas em React
|
description: Desafio 5 é sobre aprender como se beneficiar das várias bibliotecas em React
|
||||||
author: wandrille-guesdon
|
author: wandrille-guesdon
|
||||||
challengeNumber: 45
|
contributors:
|
||||||
|
- tomalaforge 45
|
||||||
command: angular-react-in-angular
|
command: angular-react-in-angular
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 209
|
order: 209
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { getEntry } from 'astro:content';
|
|||||||
import Author from './Author.astro';
|
import Author from './Author.astro';
|
||||||
import ChallengeFooter from './ChallengeFooter.astro';
|
import ChallengeFooter from './ChallengeFooter.astro';
|
||||||
import CommentSection from './CommentSection.astro';
|
import CommentSection from './CommentSection.astro';
|
||||||
|
import ContributorsFooter from './ContributorsFooter.astro';
|
||||||
|
|
||||||
const { lang } = Astro.props;
|
const { lang } = Astro.props;
|
||||||
const { data } = await getEntry('i18n', lang);
|
const { data } = await getEntry('i18n', lang);
|
||||||
@@ -26,6 +27,8 @@ const renderCommentSection = !Astro.props.entry.data.noCommentSection;
|
|||||||
{ renderCommentSection &&
|
{ renderCommentSection &&
|
||||||
<CommentSection {...Astro.props} /> }
|
<CommentSection {...Astro.props} /> }
|
||||||
|
|
||||||
|
<ContributorsFooter {...Astro.props} />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.author {
|
.author {
|
||||||
margin-top: -1rem;
|
margin-top: -1rem;
|
||||||
|
|||||||
75
docs/src/components/ContributorsFooter.astro
Normal file
75
docs/src/components/ContributorsFooter.astro
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
import { getEntry } from 'astro:content';
|
||||||
|
|
||||||
|
const contributors = Astro.props.entry.data.contributors ?? [];
|
||||||
|
const { lang } = Astro.props;
|
||||||
|
const { data } = await getEntry('i18n', lang);
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
{contributors.length === 0 ? null :
|
||||||
|
<div class="wrapper card">
|
||||||
|
<h3>{data['contributor.title']}</h3>
|
||||||
|
<p>{data['contributor.subtitle']}</p>
|
||||||
|
<ul class="list">
|
||||||
|
{contributors.map((contributor: string) => (
|
||||||
|
<li key={`contributor-${contributor}`} class="contributor">
|
||||||
|
<a href={`https://github.com/${contributor}`} target="_blank" rel="noreferrer">
|
||||||
|
<img
|
||||||
|
loading="lazy"
|
||||||
|
src={`https://github.com/${contributor}.png?size=80`}
|
||||||
|
width="40"
|
||||||
|
height="40"
|
||||||
|
alt={contributor}
|
||||||
|
class="avatar"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.wrapper {
|
||||||
|
margin: 50px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
border-radius: 10px;
|
||||||
|
min-width: 230px;
|
||||||
|
padding: 25px;
|
||||||
|
flex: 1;
|
||||||
|
border: 1px solid var(--sl-color-gray-5);
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
color: var(--sl-color-white);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: left;
|
||||||
|
gap: 8px;
|
||||||
|
align-items: center;
|
||||||
|
list-style: none;
|
||||||
|
margin: 10px 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contributor {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 40px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -18,6 +18,7 @@ const docs = defineCollection({
|
|||||||
noCommentSection: z.boolean().optional().default(false),
|
noCommentSection: z.boolean().optional().default(false),
|
||||||
challengeNumber: z.union([z.number(), z.boolean()]).default(false),
|
challengeNumber: z.union([z.number(), z.boolean()]).default(false),
|
||||||
author: reference('authors').optional(),
|
author: reference('authors').optional(),
|
||||||
|
contributors: z.array(z.string()).optional(),
|
||||||
command: z.string().optional(),
|
command: z.string().optional(),
|
||||||
blogLink: z.string().optional(),
|
blogLink: z.string().optional(),
|
||||||
videoLink: z
|
videoLink: z
|
||||||
@@ -57,6 +58,8 @@ const i18n = defineCollection({
|
|||||||
'subscription.email': z.string(),
|
'subscription.email': z.string(),
|
||||||
'subscription.note.title': z.string(),
|
'subscription.note.title': z.string(),
|
||||||
'subscription.note.description': z.string(),
|
'subscription.note.description': z.string(),
|
||||||
|
'contributor.title': z.string(),
|
||||||
|
'contributor.subtitle': z.string(),
|
||||||
})
|
})
|
||||||
.partial(),
|
.partial(),
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -2,7 +2,12 @@
|
|||||||
title: 🟢 Projection
|
title: 🟢 Projection
|
||||||
description: Challenge 1 is about learning how to project DOM element through components
|
description: Challenge 1 is about learning how to project DOM element through components
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
challengeNumber: 1
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
|
- dmmishchenko
|
||||||
|
- kabrunko-dev
|
||||||
|
- svenson95
|
||||||
command: angular-projection
|
command: angular-projection
|
||||||
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
|
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
|
||||||
videoLink:
|
videoLink:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🔴 Utility Wrapper Pipe
|
title: 🔴 Utility Wrapper Pipe
|
||||||
description: Challenge 10 is about creating a pipe to wrap utilities
|
description: Challenge 10 is about creating a pipe to wrap utilities
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
challengeNumber: 10
|
challengeNumber: 10
|
||||||
command: angular-pipe-hard
|
command: angular-pipe-hard
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🟠 Highly Customizable CSS
|
title: 🟠 Highly Customizable CSS
|
||||||
description: Challenge 13 is about creating highly customizable CSS styles
|
description: Challenge 13 is about creating highly customizable CSS styles
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 13
|
challengeNumber: 13
|
||||||
command: angular-styling
|
command: angular-styling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🔴 Master Dependancy Injection
|
title: 🔴 Master Dependancy Injection
|
||||||
description: Challenge 16 is about masjering how dependancy injection works
|
description: Challenge 16 is about masjering how dependancy injection works
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
challengeNumber: 16
|
challengeNumber: 16
|
||||||
command: angular-di
|
command: angular-di
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟢 Anchor Navigation
|
title: 🟢 Anchor Navigation
|
||||||
description: Challenge 21 is about navigating inside the page with anchor
|
description: Challenge 21 is about navigating inside the page with anchor
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
challengeNumber: 21
|
challengeNumber: 21
|
||||||
command: angular-anchor-scrolling
|
command: angular-anchor-scrolling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🟢 @RouterInput()
|
title: 🟢 @RouterInput()
|
||||||
description: Challenge 22 is about using the @Input decorator to retreive router params.
|
description: Challenge 22 is about using the @Input decorator to retreive router params.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
challengeNumber: 22
|
challengeNumber: 22
|
||||||
command: angular-router-input
|
command: angular-router-input
|
||||||
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617
|
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟠 Directive Enhancement
|
title: 🟠 Directive Enhancement
|
||||||
description: Challenge 3 is about enhancing a built-in directive
|
description: Challenge 3 is about enhancing a built-in directive
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- kabrunko-dev
|
||||||
|
- svenson95
|
||||||
challengeNumber: 3
|
challengeNumber: 3
|
||||||
command: angular-ngfor-enhancement
|
command: angular-ngfor-enhancement
|
||||||
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
|
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🔴 Interoperability Rxjs/Signal
|
title: 🔴 Interoperability Rxjs/Signal
|
||||||
description: Challenge 30 is about learning how to mix signal with Rxjs
|
description: Challenge 30 is about learning how to mix signal with Rxjs
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
challengeNumber: 30
|
challengeNumber: 30
|
||||||
command: angular-interop-rxjs-signal
|
command: angular-interop-rxjs-signal
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Module to Standalone
|
title: 🟢 Module to Standalone
|
||||||
description: Challenge 31 is about migrating a module based application to a standalone application.
|
description: Challenge 31 is about migrating a module based application to a standalone application.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 31
|
challengeNumber: 31
|
||||||
command: angular-module-to-standalone
|
command: angular-module-to-standalone
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🟠 Change Detection Bug
|
title: 🟠 Change Detection Bug
|
||||||
description: Challenge 32 is about debugging an application that has issue when change detection is triggered
|
description: Challenge 32 is about debugging an application that has issue when change detection is triggered
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- jdegand
|
||||||
challengeNumber: 32
|
challengeNumber: 32
|
||||||
command: angular-bug-cd
|
command: angular-bug-cd
|
||||||
blogLink: https://medium.com/ngconf/function-calls-inside-template-are-dangerous-15f9822a6629
|
blogLink: https://medium.com/ngconf/function-calls-inside-template-are-dangerous-15f9822a6629
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟠 Decoupling Components
|
title: 🟠 Decoupling Components
|
||||||
description: Challenge 33 is about decoupling two strongly coupled components using Injection Token
|
description: Challenge 33 is about decoupling two strongly coupled components using Injection Token
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
challengeNumber: 33
|
challengeNumber: 33
|
||||||
command: angular-decoupling
|
command: angular-decoupling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟠 InjectionToken
|
title: 🟠 InjectionToken
|
||||||
description: Challenge 39 is about learning the power of dependancy injection
|
description: Challenge 39 is about learning the power of dependancy injection
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
challengeNumber: 39
|
challengeNumber: 39
|
||||||
command: angular-injection-token
|
command: angular-injection-token
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🔴 Typed ContextOutlet
|
title: 🔴 Typed ContextOutlet
|
||||||
description: Challenge 4 is about strongly typing ngContextOutlet directives
|
description: Challenge 4 is about strongly typing ngContextOutlet directives
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 4
|
challengeNumber: 4
|
||||||
command: angular-context-outlet-type
|
command: angular-context-outlet-type
|
||||||
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
|
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Signal Input
|
title: 🟢 Signal Input
|
||||||
description: Challenge 43 is about learning how to use signal inputs
|
description: Challenge 43 is about learning how to use signal inputs
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 43
|
challengeNumber: 43
|
||||||
command: angular-signal-input
|
command: angular-signal-input
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🔴 View Transition
|
title: 🔴 View Transition
|
||||||
description: Challenge 44 is about learning the new view transition animation API
|
description: Challenge 44 is about learning the new view transition animation API
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
challengeNumber: 44
|
challengeNumber: 44
|
||||||
command: angular-view-transition
|
command: angular-view-transition
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🔴 React in angular
|
title: 🔴 React in angular
|
||||||
description: Challenge 45 is about learning how to benefit from the numerous libraries in React
|
description: Challenge 45 is about learning how to benefit from the numerous libraries in React
|
||||||
author: wandrille-guesdon
|
author: wandrille-guesdon
|
||||||
|
contributors:
|
||||||
|
- wandri
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
challengeNumber: 45
|
challengeNumber: 45
|
||||||
command: angular-react-in-angular
|
command: angular-react-in-angular
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Simple Animations
|
title: 🟢 Simple Animations
|
||||||
description: Challenge 46 is about learning Angular's integrated animation API
|
description: Challenge 46 is about learning Angular's integrated animation API
|
||||||
author: sven-brodny
|
author: sven-brodny
|
||||||
|
contributors:
|
||||||
|
- svenson95
|
||||||
challengeNumber: 46
|
challengeNumber: 46
|
||||||
command: angular-simple-animations
|
command: angular-simple-animations
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟢 Crud application
|
title: 🟢 Crud application
|
||||||
description: Challenge 5 is about refactoring a crud application
|
description: Challenge 5 is about refactoring a crud application
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 5
|
challengeNumber: 5
|
||||||
command: angular-crud
|
command: angular-crud
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟠 Structural Directive
|
title: 🟠 Structural Directive
|
||||||
description: Challenge 6 is about creating a structural directive to handle permissions
|
description: Challenge 6 is about creating a structural directive to handle permissions
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- kabrunko-dev
|
||||||
|
- svenson95
|
||||||
challengeNumber: 6
|
challengeNumber: 6
|
||||||
command: angular-permissions
|
command: angular-permissions
|
||||||
blogLink: https://medium.com/@thomas.laforge/create-a-custom-structural-directive-to-manage-permissions-like-a-pro-11a1acad30ad
|
blogLink: https://medium.com/@thomas.laforge/create-a-custom-structural-directive-to-manage-permissions-like-a-pro-11a1acad30ad
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟢 Pure Pipe
|
title: 🟢 Pure Pipe
|
||||||
description: Challenge 8 is about creating a pure pipe
|
description: Challenge 8 is about creating a pure pipe
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- kabrunko-dev
|
||||||
|
- svenson95
|
||||||
challengeNumber: 8
|
challengeNumber: 8
|
||||||
command: angular-pipe-easy
|
command: angular-pipe-easy
|
||||||
blogLink: https://medium.com/ngconf/deep-dive-into-angular-pipes-c040588cd15d
|
blogLink: https://medium.com/ngconf/deep-dive-into-angular-pipes-c040588cd15d
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟠 Wrap Function Pipe
|
title: 🟠 Wrap Function Pipe
|
||||||
description: Challenge 9 is about creating a pipe to wrap component fonctions
|
description: Challenge 9 is about creating a pipe to wrap component fonctions
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- kabrunko-dev
|
||||||
|
- svenson95
|
||||||
challengeNumber: 9
|
challengeNumber: 9
|
||||||
command: angular-pipe-intermediate
|
command: angular-pipe-intermediate
|
||||||
blogLink: https://medium.com/ngconf/boost-your-apps-performance-by-wrapping-your-functions-inside-a-pipe-7e889a901d1d
|
blogLink: https://medium.com/ngconf/boost-your-apps-performance-by-wrapping-your-functions-inside-a-pipe-7e889a901d1d
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Control Value Accessor
|
title: 🟠 Control Value Accessor
|
||||||
description: Challenge 41 is about creating a custom form control that implements Control Value Accessor interface.
|
description: Challenge 41 is about creating a custom form control that implements Control Value Accessor interface.
|
||||||
author: stanislav-gavrilov
|
author: stanislav-gavrilov
|
||||||
|
contributors:
|
||||||
|
- stillst
|
||||||
challengeNumber: 41
|
challengeNumber: 41
|
||||||
command: forms-control-value-accessor
|
command: forms-control-value-accessor
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟠 Effect vs Selector
|
title: 🟠 Effect vs Selector
|
||||||
description: Challenge 2 is about learning the difference between effects and selectors in NgRx
|
description: Challenge 2 is about learning the difference between effects and selectors in NgRx
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 2
|
challengeNumber: 2
|
||||||
command: ngrx-effect-selector
|
command: ngrx-effect-selector
|
||||||
blogLink: https://medium.com/@thomas.laforge/ngrx-effect-vs-reducer-vs-selector-58337ab59043
|
blogLink: https://medium.com/@thomas.laforge/ngrx-effect-vs-reducer-vs-selector-58337ab59043
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🔴 Power of Effect
|
title: 🔴 Power of Effect
|
||||||
description: Challenge 7 is about creating an Ngrx effect with another Rxjs Hot observable
|
description: Challenge 7 is about creating an Ngrx effect with another Rxjs Hot observable
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- jdegand
|
||||||
challengeNumber: 7
|
challengeNumber: 7
|
||||||
command: ngrx-notification
|
command: ngrx-notification
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 Extend Lib Generator
|
title: 🔴 Extend Lib Generator
|
||||||
description: Challenge 25 is about creating a Nx generator to extend the built-in Library Generator
|
description: Challenge 25 is about creating a Nx generator to extend the built-in Library Generator
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 25
|
challengeNumber: 25
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 207
|
order: 207
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🟠 Component Generator
|
title: 🟠 Component Generator
|
||||||
description: Challenge 26 is about creating a Nx generator to create a custom component
|
description: Challenge 26 is about creating a Nx generator to create a custom component
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- Sagardevkota
|
||||||
challengeNumber: 26
|
challengeNumber: 26
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 116
|
order: 116
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Custom Eslint Rule
|
title: 🟢 Custom Eslint Rule
|
||||||
description: Challenge 27 is about creating a custom Eslint Rule to forbid enums
|
description: Challenge 27 is about creating a custom Eslint Rule to forbid enums
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 27
|
challengeNumber: 27
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 12
|
order: 12
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Static vs Dynamic Import
|
title: 🟢 Static vs Dynamic Import
|
||||||
description: Challenge 42 is about understanding and fixing the eslint rule - Static imports of lazy-loaded libraries are forbidden.
|
description: Challenge 42 is about understanding and fixing the eslint rule - Static imports of lazy-loaded libraries are forbidden.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 42
|
challengeNumber: 42
|
||||||
command: nx-static-dynamic-import
|
command: nx-static-dynamic-import
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Optimize Change Detection
|
title: 🟠 Optimize Change Detection
|
||||||
description: Challenge 12 about optimizing the number of change detection cycle while scrolling
|
description: Challenge 12 about optimizing the number of change detection cycle while scrolling
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 12
|
challengeNumber: 12
|
||||||
command: performance-scroll-cd
|
command: performance-scroll-cd
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Default vs OnPush
|
title: 🟢 Default vs OnPush
|
||||||
description: Challenge 34 is about learning the difference between Default and OnPush Change Detection Strategy.
|
description: Challenge 34 is about learning the difference between Default and OnPush Change Detection Strategy.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 34
|
challengeNumber: 34
|
||||||
command: performance-default-onpush
|
command: performance-default-onpush
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Memoization
|
title: 🟢 Memoization
|
||||||
description: Challenge 35 is about learning how pure pipe works
|
description: Challenge 35 is about learning how pure pipe works
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 35
|
challengeNumber: 35
|
||||||
command: performance-memoized
|
command: performance-memoized
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 NgFor Optimization
|
title: 🟢 NgFor Optimization
|
||||||
description: Challenge 36 is about learning how trackby works
|
description: Challenge 36 is about learning how trackby works
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 36
|
challengeNumber: 36
|
||||||
command: performance-ngfor-optimize
|
command: performance-ngfor-optimize
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟠 Optimize Big List
|
title: 🟠 Optimize Big List
|
||||||
description: Challenge 37 is about learning how virtualization optimize big list rendering
|
description: Challenge 37 is about learning how virtualization optimize big list rendering
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
challengeNumber: 37
|
challengeNumber: 37
|
||||||
command: performance-ngfor-biglist
|
command: performance-ngfor-biglist
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟠 Web workers
|
title: 🟠 Web workers
|
||||||
description: Challenge 40 is about learning how to create and use a web worker
|
description: Challenge 40 is about learning how to create and use a web worker
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
challengeNumber: 40
|
challengeNumber: 40
|
||||||
command: performance-christmas-web-worker
|
command: performance-christmas-web-worker
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: Angular Performance
|
title: Angular Performance
|
||||||
prev: false
|
prev: false
|
||||||
next: false
|
next: false
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
description: Learn how to use the Angular Devtool chrome extension.
|
description: Learn how to use the Angular Devtool chrome extension.
|
||||||
noCommentSection: true
|
noCommentSection: true
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 High Order Operator Bug
|
title: 🟠 High Order Operator Bug
|
||||||
description: Challenge 11 is about resolving a Rxjs bug because of high order operators
|
description: Challenge 11 is about resolving a Rxjs bug because of high order operators
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 11
|
challengeNumber: 11
|
||||||
command: rxjs-pipe-bug
|
command: rxjs-pipe-bug
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Race Condition
|
title: 🟢 Race Condition
|
||||||
description: Challenge 14 is about race condition in Rxjs
|
description: Challenge 14 is about race condition in Rxjs
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 14
|
challengeNumber: 14
|
||||||
command: rxjs-race-condition
|
command: rxjs-race-condition
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ title: 🟢 catchError
|
|||||||
description: Challenge 38 is about learning obervable completion.
|
description: Challenge 38 is about learning obervable completion.
|
||||||
author: devesh-chaudhari
|
author: devesh-chaudhari
|
||||||
command: rxjs-catch-error
|
command: rxjs-catch-error
|
||||||
|
contributors:
|
||||||
|
- DeveshChau
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 38
|
challengeNumber: 38
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 14
|
order: 14
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Router
|
title: 🟠 Router
|
||||||
description: Challenge 17 is about testing the router
|
description: Challenge 17 is about testing the router
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 17
|
challengeNumber: 17
|
||||||
command: testing-router-outlet
|
command: testing-router-outlet
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Nested Components
|
title: 🟠 Nested Components
|
||||||
description: Challenge 18 is about testing nested components
|
description: Challenge 18 is about testing nested components
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 18
|
challengeNumber: 18
|
||||||
command: testing-nested
|
command: testing-nested
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟠 Input Output
|
title: 🟠 Input Output
|
||||||
description: Challenge 19 is about testing inputs and ouputs
|
description: Challenge 19 is about testing inputs and ouputs
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 19
|
challengeNumber: 19
|
||||||
command: testing-input-output
|
command: testing-input-output
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟠 Modal
|
title: 🟠 Modal
|
||||||
description: Challenge 20 is about testing modals
|
description: Challenge 20 is about testing modals
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 20
|
challengeNumber: 20
|
||||||
command: testing-modal
|
command: testing-modal
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
title: 🟢 Harness
|
title: 🟢 Harness
|
||||||
description: Challenge 23 is about testing with component harnesses
|
description: Challenge 23 is about testing with component harnesses
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 23
|
challengeNumber: 23
|
||||||
command: testing-harness
|
command: testing-harness
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🟠 Harness Creation
|
title: 🟠 Harness Creation
|
||||||
description: Challenge 24 is about creating a component harness.
|
description: Challenge 24 is about creating a component harness.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- jdegand
|
||||||
challengeNumber: 24
|
challengeNumber: 24
|
||||||
command: testing-create-harness
|
command: testing-create-harness
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🟢 Checkbox
|
title: 🟢 Checkbox
|
||||||
description: Challenge 28 is about testing a simple checkbox
|
description: Challenge 28 is about testing a simple checkbox
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- jdegand
|
||||||
challengeNumber: 28
|
challengeNumber: 28
|
||||||
command: testing-checkbox
|
command: testing-checkbox
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
title: 🔴 Real-life Application
|
title: 🔴 Real-life Application
|
||||||
description: Challenge 29 is about testing a real-life application
|
description: Challenge 29 is about testing a real-life application
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- tomer953
|
||||||
|
- svenson95
|
||||||
challengeNumber: 29
|
challengeNumber: 29
|
||||||
command: testing-todos-list
|
command: testing-todos-list
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: Testing
|
title: Testing
|
||||||
prev: false
|
prev: false
|
||||||
next: false
|
next: false
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
description: Introduction to testing challenges.
|
description: Introduction to testing challenges.
|
||||||
noCommentSection: true
|
noCommentSection: true
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Function Overload
|
title: 🟠 Function Overload
|
||||||
description: Challenge 15 is about creating overload functions
|
description: Challenge 15 is about creating overload functions
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
challengeNumber: 15
|
challengeNumber: 15
|
||||||
command: typescript-overload
|
command: typescript-overload
|
||||||
blogLink: https://medium.com/ngconf/function-overloading-in-typescript-8236706b2c05
|
blogLink: https://medium.com/ngconf/function-overloading-in-typescript-8236706b2c05
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟢 Enums vs Union Types
|
title: 🟢 Enums vs Union Types
|
||||||
description: Challenge 47 is about the comparison between enums and union types
|
description: Challenge 47 is about the comparison between enums and union types
|
||||||
author: sven-brodny
|
author: sven-brodny
|
||||||
|
contributors:
|
||||||
|
- svenson95
|
||||||
|
- jdegand
|
||||||
challengeNumber: 47
|
challengeNumber: 47
|
||||||
command: typescript-enums-vs-union-types
|
command: typescript-enums-vs-union-types
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Proyección
|
title: 🟢 Proyección
|
||||||
description: Desafio 1 trata sobre aprender a proyectar elementos del DOM a través de componentes,
|
description: Desafio 1 trata sobre aprender a proyectar elementos del DOM a través de componentes,
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 1
|
challengeNumber: 1
|
||||||
command: angular-projection
|
command: angular-projection
|
||||||
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
|
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 Pipe Wrapper para utilidades
|
title: 🔴 Pipe Wrapper para utilidades
|
||||||
description: El desafío 10 trata sobre la creación de un pipe para envolver utilidades
|
description: El desafío 10 trata sobre la creación de un pipe para envolver utilidades
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 10
|
challengeNumber: 10
|
||||||
command: angular-pipe-hard
|
command: angular-pipe-hard
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Estilos CSS Altamente Personalizables
|
title: 🟠 Estilos CSS Altamente Personalizables
|
||||||
description: El desafío 13 trata sobre la creación de estilos CSS altamente personalizables
|
description: El desafío 13 trata sobre la creación de estilos CSS altamente personalizables
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 13
|
challengeNumber: 13
|
||||||
command: angular-styling
|
command: angular-styling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 Dominar la Inyección de Dependencias
|
title: 🔴 Dominar la Inyección de Dependencias
|
||||||
description: El desafío 16 trata sobre dominar y entender como funciona la inyección de dependencias
|
description: El desafío 16 trata sobre dominar y entender como funciona la inyección de dependencias
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 16
|
challengeNumber: 16
|
||||||
command: angular-di
|
command: angular-di
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Navegación con Anclas
|
title: 🟢 Navegación con Anclas
|
||||||
description: El desafío 21 trata sobre la navegación dentro de la página con anclas
|
description: El desafío 21 trata sobre la navegación dentro de la página con anclas
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 21
|
challengeNumber: 21
|
||||||
command: angular-anchor-scrolling
|
command: angular-anchor-scrolling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 @RouterInput()
|
title: 🟢 @RouterInput()
|
||||||
description: El desafío 22 trata sobre el uso del decorador @Input para utilizar parámetros del router.
|
description: El desafío 22 trata sobre el uso del decorador @Input para utilizar parámetros del router.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 22
|
challengeNumber: 22
|
||||||
command: angular-router-input
|
command: angular-router-input
|
||||||
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617
|
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Mejorar Directiva
|
title: 🟠 Mejorar Directiva
|
||||||
description: El desafío 3 se trata de una directive incorporada.
|
description: El desafío 3 se trata de una directive incorporada.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 3
|
challengeNumber: 3
|
||||||
command: angular-ngfor-enhancement
|
command: angular-ngfor-enhancement
|
||||||
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
|
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 Interoperatividad Rxjs/Signal (Señales)
|
title: 🔴 Interoperatividad Rxjs/Signal (Señales)
|
||||||
description: El desafío 30 trata sobre aprender a mezclar señales con Rxjs
|
description: El desafío 30 trata sobre aprender a mezclar señales con Rxjs
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 30
|
challengeNumber: 30
|
||||||
command: angular-interop-rxjs-signal
|
command: angular-interop-rxjs-signal
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 De Módulo a Standalone (Independiente)
|
title: 🟢 De Módulo a Standalone (Independiente)
|
||||||
description: El desafío 31 trata sobre migrar una aplicación basada en módulos a una aplicación independiente.
|
description: El desafío 31 trata sobre migrar una aplicación basada en módulos a una aplicación independiente.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 31
|
challengeNumber: 31
|
||||||
command: angular-module-to-standalone
|
command: angular-module-to-standalone
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Bug de Detección de Cambios
|
title: 🟠 Bug de Detección de Cambios
|
||||||
description: El desafío 32 trata sobre depurar una aplicación que tiene problemas cuando se activa la detección de cambios
|
description: El desafío 32 trata sobre depurar una aplicación que tiene problemas cuando se activa la detección de cambios
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 32
|
challengeNumber: 32
|
||||||
command: angular-bug-cd
|
command: angular-bug-cd
|
||||||
blogLink: https://medium.com/ngconf/function-calls-inside-template-are-dangerous-15f9822a6629
|
blogLink: https://medium.com/ngconf/function-calls-inside-template-are-dangerous-15f9822a6629
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Desacoplando Componentes
|
title: 🟠 Desacoplando Componentes
|
||||||
description: El desafío 33 trata sobre desacoplar dos componentes fuertemente unidos utilizando Token de Inyección
|
description: El desafío 33 trata sobre desacoplar dos componentes fuertemente unidos utilizando Token de Inyección
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 33
|
challengeNumber: 33
|
||||||
command: angular-decoupling
|
command: angular-decoupling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 InjectionToken
|
title: 🟠 InjectionToken
|
||||||
description: Desafio de Angular 39 para aprender sobre el poder del InjectionToken
|
description: Desafio de Angular 39 para aprender sobre el poder del InjectionToken
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 39
|
challengeNumber: 39
|
||||||
command: angular-injection-token
|
command: angular-injection-token
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 ContextOutlet en forma de tipo
|
title: 🔴 ContextOutlet en forma de tipo
|
||||||
description: El desafío 4 se trata de tipificar de manera fuerte las directivas de ngContextOutlet
|
description: El desafío 4 se trata de tipificar de manera fuerte las directivas de ngContextOutlet
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 4
|
challengeNumber: 4
|
||||||
command: angular-context-outlet-type
|
command: angular-context-outlet-type
|
||||||
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
|
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Aplicación CRUD
|
title: 🟢 Aplicación CRUD
|
||||||
description: El desafío 5 se trata de refactorizar una aplicación CRUD.
|
description: El desafío 5 se trata de refactorizar una aplicación CRUD.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 5
|
challengeNumber: 5
|
||||||
command: angular-crud
|
command: angular-crud
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Directiva Estructural
|
title: 🟠 Directiva Estructural
|
||||||
description: El Desafío 6 se trata de generar una Directiva Estructural que manipule los permisos
|
description: El Desafío 6 se trata de generar una Directiva Estructural que manipule los permisos
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 6
|
challengeNumber: 6
|
||||||
command: angular-permissions
|
command: angular-permissions
|
||||||
blogLink: https://medium.com/@thomas.laforge/create-a-custom-structural-directive-to-manage-permissions-like-a-pro-11a1acad30ad
|
blogLink: https://medium.com/@thomas.laforge/create-a-custom-structural-directive-to-manage-permissions-like-a-pro-11a1acad30ad
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
title: 🟢 Pipe Puro
|
title: 🟢 Pipe Puro
|
||||||
description: El desafío 8 trata sobre la creación de un pipe puro
|
description: El desafío 8 trata sobre la creación de un pipe puro
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
|
- kabrunko - dev
|
||||||
challengeNumber: 8
|
challengeNumber: 8
|
||||||
command: angular-pipe-easy
|
command: angular-pipe-easy
|
||||||
blogLink: https://medium.com/ngconf/deep-dive-into-angular-pipes-c040588cd15d
|
blogLink: https://medium.com/ngconf/deep-dive-into-angular-pipes-c040588cd15d
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Pipe Wrapper para funciones
|
title: 🟠 Pipe Wrapper para funciones
|
||||||
description: El desafío 9 trata sobre la creación de un tubo para envolver funciones de componentes
|
description: El desafío 9 trata sobre la creación de un tubo para envolver funciones de componentes
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- ErickRodrCodes
|
||||||
challengeNumber: 9
|
challengeNumber: 9
|
||||||
command: angular-pipe-intermediate
|
command: angular-pipe-intermediate
|
||||||
blogLink: https://medium.com/ngconf/boost-your-apps-performance-by-wrapping-your-functions-inside-a-pipe-7e889a901d1d
|
blogLink: https://medium.com/ngconf/boost-your-apps-performance-by-wrapping-your-functions-inside-a-pipe-7e889a901d1d
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Optimizar el Change Detection al desplazarse
|
title: 🟠 Optimizar el Change Detection al desplazarse
|
||||||
description: Desafío 12 sobre la optimización del número de ciclos de detección de cambios al desplazarse
|
description: Desafío 12 sobre la optimización del número de ciclos de detección de cambios al desplazarse
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 12
|
challengeNumber: 12
|
||||||
command: performance-scroll-cd
|
command: performance-scroll-cd
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Default vs OnPush
|
title: 🟢 Default vs OnPush
|
||||||
description: El desafío 34 trata sobre aprender la diferencia entre las estrategias de detección de cambios Default y OnPush.
|
description: El desafío 34 trata sobre aprender la diferencia entre las estrategias de detección de cambios Default y OnPush.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 34
|
challengeNumber: 34
|
||||||
command: performance-default-onpush
|
command: performance-default-onpush
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Memoización
|
title: 🟢 Memoización
|
||||||
description: El desafío 35 trata sobre cómo funcionan las tuberías puras
|
description: El desafío 35 trata sobre cómo funcionan las tuberías puras
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 35
|
challengeNumber: 35
|
||||||
command: performance-memoized
|
command: performance-memoized
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Optimización de NgFor
|
title: 🟢 Optimización de NgFor
|
||||||
description: El Desafío 36 trata sobre como funciona trackby
|
description: El Desafío 36 trata sobre como funciona trackby
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 36
|
challengeNumber: 36
|
||||||
command: performance-ngfor-optimize
|
command: performance-ngfor-optimize
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Optimizando una lista larga
|
title: 🟠 Optimizando una lista larga
|
||||||
description: El desafio 37 trata sobre como optimizar una lista grande de elementos
|
description: El desafio 37 trata sobre como optimizar una lista grande de elementos
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
challengeNumber: 37
|
challengeNumber: 37
|
||||||
command: performance-ngfor-biglist
|
command: performance-ngfor-biglist
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: Rendimiento en Angular
|
title: Rendimiento en Angular
|
||||||
prev: false
|
prev: false
|
||||||
next: false
|
next: false
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
description: Aprende a usar la extensión de Chrome Angular Devtools.
|
description: Aprende a usar la extensión de Chrome Angular Devtools.
|
||||||
noCommentSection: true
|
noCommentSection: true
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Revisar la Respuesta de Alguien
|
title: Revisar la Respuesta de Alguien
|
||||||
description: Guía para revisar la respuesta de otra persona.
|
description: Guía para revisar la respuesta de otra persona.
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 3
|
order: 3
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Contribuye
|
title: Contribuye
|
||||||
description: Guía para contribuir al proyecto
|
description: Guía para contribuir al proyecto
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 4
|
order: 4
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Crea tu propio desafío
|
title: Crea tu propio desafío
|
||||||
description: Guía para crear un desafío
|
description: Guía para crear un desafío
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 5
|
order: 5
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Preguntas Frecuentes
|
title: Preguntas Frecuentes
|
||||||
description: Preguntas frecuentes sobre el proyecto
|
description: Preguntas frecuentes sobre el proyecto
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 7
|
order: 7
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: Inicio
|
title: Inicio
|
||||||
description: Una guía para comenzar con los Desafíos de Angular
|
description: Una guía para comenzar con los Desafíos de Angular
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
|
- 1fbr
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 1
|
order: 1
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Hacer rebase a tu rama
|
title: Hacer rebase a tu rama
|
||||||
description: Guía para hacer rebase a tu rama
|
description: Guía para hacer rebase a tu rama
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 6
|
order: 6
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: Resolver un Desafío
|
title: Resolver un Desafío
|
||||||
description: Guía para resolver un desafío
|
description: Guía para resolver un desafío
|
||||||
|
contributors:
|
||||||
|
- nelsongutidev
|
||||||
|
- 1fbr
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 2
|
order: 2
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Comment démarrer
|
title: Comment démarrer
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
description: Un guide sur la manière de commencer avec sur Angular Challenges.
|
description: Un guide sur la manière de commencer avec sur Angular Challenges.
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 1
|
order: 1
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Résoudre un Challenge
|
title: Résoudre un Challenge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
description: Guide pour résoudre un challenge
|
description: Guide pour résoudre un challenge
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 2
|
order: 2
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ title: Bienvenue sur Angular Challenges
|
|||||||
description: Commence par résoudre ces défis et deviens un meilleur ingénieur FrontEnd Angular.
|
description: Commence par résoudre ces défis et deviens un meilleur ingénieur FrontEnd Angular.
|
||||||
template: splash
|
template: splash
|
||||||
noCommentSection: true
|
noCommentSection: true
|
||||||
banner:
|
|
||||||
content: J'aurai moins de temps libre dans les deux prochains mois, donc ne vous inquiétez pas si vos pull requests prennent du temps à être examinées.
|
|
||||||
hero:
|
hero:
|
||||||
tagline: Commence maintenant et deviens un expert Angular !
|
tagline: Commence maintenant et deviens un expert Angular !
|
||||||
image:
|
image:
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: Check out Somebody's Answer
|
title: Check out Somebody's Answer
|
||||||
description: Guide to checking out someone else's answer.
|
description: Guide to checking out someone else's answer.
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- gsgonzalez88
|
||||||
|
- 1fbr
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 3
|
order: 3
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: Contribute
|
title: Contribute
|
||||||
description: Guide to contribute
|
description: Guide to contribute
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 4
|
order: 4
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: Create your own challenge
|
title: Create your own challenge
|
||||||
description: Guide to create your own challenge
|
description: Guide to create your own challenge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- gsgonzalez88
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 5
|
order: 5
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: FAQ
|
title: FAQ
|
||||||
description: Answer to question
|
description: Answer to question
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- jdegand
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 7
|
order: 7
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: Getting Started
|
title: Getting Started
|
||||||
description: A guide on how to get started with Angular Challenges.
|
description: A guide on how to get started with Angular Challenges.
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- 1fbr
|
||||||
|
- ho-ssain
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 1
|
order: 1
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Rebase your branch
|
title: Rebase your branch
|
||||||
description: Guide to rebase a branch to latest change
|
description: Guide to rebase a branch to latest change
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 6
|
order: 6
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: Resolve a Challenge
|
title: Resolve a Challenge
|
||||||
description: Guide to resolve a challenge
|
description: Guide to resolve a challenge
|
||||||
|
contributors:
|
||||||
|
- tomalaforge
|
||||||
|
- 1fbr
|
||||||
|
- gsgonzalez88
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 2
|
order: 2
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Projeção
|
title: 🟢 Projeção
|
||||||
description: Desafio 1 é sobre aprender a projetar elementos DOM através de componentes
|
description: Desafio 1 é sobre aprender a projetar elementos DOM através de componentes
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 1
|
challengeNumber: 1
|
||||||
command: angular-projection
|
command: angular-projection
|
||||||
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
|
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 Pipe Empacotador de Utilidade
|
title: 🔴 Pipe Empacotador de Utilidade
|
||||||
description: Desafio 10 é sobre a criação de um pipe para empacotar utilidades
|
description: Desafio 10 é sobre a criação de um pipe para empacotar utilidades
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 10
|
challengeNumber: 10
|
||||||
command: angular-pipe-hard
|
command: angular-pipe-hard
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 CSS Altamente Personalizável
|
title: 🟠 CSS Altamente Personalizável
|
||||||
description: Desafio 13 é sobre criar estilos CSS altamente personalizáveis
|
description: Desafio 13 é sobre criar estilos CSS altamente personalizáveis
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 13
|
challengeNumber: 13
|
||||||
command: angular-styling
|
command: angular-styling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 Navegação por Âncora
|
title: 🟢 Navegação por Âncora
|
||||||
description: Desafio 21 é sobre navegação dentro de uma página por âncora
|
description: Desafio 21 é sobre navegação dentro de uma página por âncora
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 21
|
challengeNumber: 21
|
||||||
command: angular-anchor-scrolling
|
command: angular-anchor-scrolling
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟢 @RouterInput()
|
title: 🟢 @RouterInput()
|
||||||
description: Desafio 22 é sobre o uso do decorador @Input para recuperar parâmetros do roteador.
|
description: Desafio 22 é sobre o uso do decorador @Input para recuperar parâmetros do roteador.
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 22
|
challengeNumber: 22
|
||||||
command: angular-router-input
|
command: angular-router-input
|
||||||
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617
|
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🟠 Aprimoramento de Diretiva
|
title: 🟠 Aprimoramento de Diretiva
|
||||||
description: Desafio 3 é sobre o aprimoramento de uma diretiva nativa
|
description: Desafio 3 é sobre o aprimoramento de uma diretiva nativa
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 3
|
challengeNumber: 3
|
||||||
command: angular-ngfor-enhancement
|
command: angular-ngfor-enhancement
|
||||||
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
|
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
title: 🔴 Interoperabilidade Rxjs/Signal
|
title: 🔴 Interoperabilidade Rxjs/Signal
|
||||||
description: Desafio 30 é sobre aprender como misturar signal com Rxjs
|
description: Desafio 30 é sobre aprender como misturar signal com Rxjs
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
|
contributors:
|
||||||
|
- kabrunko-dev
|
||||||
challengeNumber: 30
|
challengeNumber: 30
|
||||||
command: angular-interop-rxjs-signal
|
command: angular-interop-rxjs-signal
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user