Merge branch 'tomalaforge:main' into translate-challenge-5

This commit is contained in:
Лапин Андрей (Lapin Andrey)
2024-03-11 16:37:49 +03:00
committed by GitHub
143 changed files with 463 additions and 23 deletions

View File

@@ -47,6 +47,18 @@
"translation-fr"
]
},
{
"login": "svenson95",
"name": "Sven Brodny",
"avatar_url": "https://avatars.githubusercontent.com/u/46655156?v=4",
"profile": "https://svenson95.github.io/sb-portfolio/",
"contributions": [
"doc",
"challenge",
"content",
"design"
]
},
{
"login": "jdegand",
"name": "J. Degand",
@@ -88,16 +100,6 @@
"challenge"
]
},
{
"login": "svenson95",
"name": "Sven Brodny",
"avatar_url": "https://avatars.githubusercontent.com/u/46655156?v=4",
"profile": "https://svenson95.github.io/sb-portfolio/",
"contributions": [
"doc",
"challenge"
]
},
{
"login": "alan-bio",
"name": "Alan Dragicevich",
@@ -225,4 +227,4 @@
"contributorsPerLine": 7,
"linkToUsage": true,
"commitType": "docs"
}
}

View File

@@ -35,11 +35,11 @@ Check [all 47 challenges](https://angular-challenges.vercel.app/)
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://thomaslaforge.dev/home"><img src="https://avatars.githubusercontent.com/u/30832608?v=4?s=100" width="100px;" alt="Laforge Thomas"/><br /><sub><b>Laforge Thomas</b></sub></a><br /><a href="#challenge-tomalaforge" title="Create a challenge">🧩</a> <a href="https://github.com/tomalaforge/angular-challenges/commits?author=tomalaforge" title="Code">💻</a> <a href="https://github.com/tomalaforge/angular-challenges/commits?author=tomalaforge" title="Documentation">📖</a> <a href="#content-tomalaforge" title="Content">🖋</a> <a href="#ideas-tomalaforge" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-tomalaforge" title="Design">🎨</a> <a href="#translation-fr-tomalaforge" title="Translate in French">🇫🇷</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://svenson95.github.io/sb-portfolio/"><img src="https://avatars.githubusercontent.com/u/46655156?v=4?s=100" width="100px;" alt="Sven Brodny"/><br /><sub><b>Sven Brodny</b></sub></a><br /><a href="https://github.com/tomalaforge/angular-challenges/commits?author=svenson95" title="Documentation">📖</a> <a href="#challenge-svenson95" title="Create a challenge">🧩</a> <a href="#content-svenson95" title="Content">🖋</a> <a href="#design-svenson95" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jdegand"><img src="https://avatars.githubusercontent.com/u/70610011?v=4?s=100" width="100px;" alt="J. Degand"/><br /><sub><b>J. Degand</b></sub></a><br /><a href="https://github.com/tomalaforge/angular-challenges/commits?author=jdegand" title="Documentation">📖</a> <a href="#content-jdegand" title="Content">🖋</a> <a href="https://github.com/tomalaforge/angular-challenges/commits?author=jdegand" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DeveshChau"><img src="https://avatars.githubusercontent.com/u/9509673?v=4?s=100" width="100px;" alt="Devesh Chaudhari"/><br /><sub><b>Devesh Chaudhari</b></sub></a><br /><a href="https://github.com/tomalaforge/angular-challenges/commits?author=DeveshChau" title="Code">💻</a> <a href="https://github.com/tomalaforge/angular-challenges/issues?q=author%3ADeveshChau" title="Bug reports">🐛</a> <a href="#challenge-DeveshChau" title="Create a challenge">🧩</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/stillst"><img src="https://avatars.githubusercontent.com/u/1463098?v=4?s=100" width="100px;" alt="stillst"/><br /><sub><b>stillst</b></sub></a><br /><a href="#challenge-stillst" title="Create a challenge">🧩</a> <a href="#translation-ru-stillst" title="Translate in Russian">🇷🇺</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://wandrille-guesdon.com/"><img src="https://avatars.githubusercontent.com/u/15016833?v=4?s=100" width="100px;" alt="Wandrille"/><br /><sub><b>Wandrille</b></sub></a><br /><a href="#challenge-wandri" title="Create a challenge">🧩</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://svenson95.github.io/sb-portfolio/"><img src="https://avatars.githubusercontent.com/u/46655156?v=4?s=100" width="100px;" alt="Sven Brodny"/><br /><sub><b>Sven Brodny</b></sub></a><br /><a href="https://github.com/tomalaforge/angular-challenges/commits?author=svenson95" title="Documentation">📖</a> <a href="#challenge-svenson95" title="Create a challenge">🧩</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/alan-bio"><img src="https://avatars.githubusercontent.com/u/31838230?v=4?s=100" width="100px;" alt="Alan Dragicevich"/><br /><sub><b>Alan Dragicevich</b></sub></a><br /><a href="https://github.com/tomalaforge/angular-challenges/commits?author=alan-bio" title="Documentation">📖</a></td>
</tr>
<tr>

View File

@@ -5,6 +5,7 @@ import { getEntry } from 'astro:content';
import Author from './Author.astro';
import ChallengeFooter from './ChallengeFooter.astro';
import CommentSection from './CommentSection.astro';
import ContributorsFooter from './ContributorsFooter.astro';
const { lang } = Astro.props;
const { data } = await getEntry('i18n', lang);
@@ -26,6 +27,8 @@ const renderCommentSection = !Astro.props.entry.data.noCommentSection;
{ renderCommentSection &&
<CommentSection {...Astro.props} /> }
<ContributorsFooter {...Astro.props} />
<style>
.author {
margin-top: -1rem;

View 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>

View File

@@ -85,6 +85,11 @@ const { data } = await getEntry('i18n', lang ?? 'en');
text-decoration: none;
font-size: var(--sl-text-sm);
background: var(--sl-color-text-accent);
&:hover {
top: unset;
opacity: unset;
}
}
}

View File

@@ -18,6 +18,7 @@ const docs = defineCollection({
noCommentSection: z.boolean().optional().default(false),
challengeNumber: z.union([z.number(), z.boolean()]).default(false),
author: reference('authors').optional(),
contributors: z.array(z.string()).optional(),
command: z.string().optional(),
blogLink: z.string().optional(),
videoLink: z
@@ -57,6 +58,8 @@ const i18n = defineCollection({
'subscription.email': z.string(),
'subscription.note.title': z.string(),
'subscription.note.description': z.string(),
'contributor.title': z.string(),
'contributor.subtitle': z.string(),
})
.partial(),
}),

View File

@@ -2,7 +2,12 @@
title: 🟢 Projection
description: Challenge 1 is about learning how to project DOM element through components
author: thomas-laforge
challengeNumber: 1
contributors:
- tomalaforge
- jdegand
- dmmishchenko
- kabrunko-dev
- svenson95
command: angular-projection
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5
videoLink:

View File

@@ -2,6 +2,10 @@
title: 🔴 Utility Wrapper Pipe
description: Challenge 10 is about creating a pipe to wrap utilities
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
challengeNumber: 10
command: angular-pipe-hard
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🟠 Highly Customizable CSS
description: Challenge 13 is about creating highly customizable CSS styles
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- kabrunko-dev
challengeNumber: 13
command: angular-styling
sidebar:

View File

@@ -2,6 +2,9 @@
title: 🔴 Master Dependancy Injection
description: Challenge 16 is about masjering how dependancy injection works
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
challengeNumber: 16
command: angular-di
sidebar:

View File

@@ -2,6 +2,9 @@
title: 🟢 Anchor Navigation
description: Challenge 21 is about navigating inside the page with anchor
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
challengeNumber: 21
command: angular-anchor-scrolling
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🟢 @RouterInput()
description: Challenge 22 is about using the @Input decorator to retreive router params.
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
challengeNumber: 22
command: angular-router-input
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617

View File

@@ -2,6 +2,11 @@
title: 🟠 Directive Enhancement
description: Challenge 3 is about enhancing a built-in directive
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- kabrunko-dev
- svenson95
challengeNumber: 3
command: angular-ngfor-enhancement
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c

View File

@@ -2,6 +2,9 @@
title: 🔴 Interoperability Rxjs/Signal
description: Challenge 30 is about learning how to mix signal with Rxjs
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
challengeNumber: 30
command: angular-interop-rxjs-signal
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Module to Standalone
description: Challenge 31 is about migrating a module based application to a standalone application.
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 31
command: angular-module-to-standalone
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🟠 Change Detection Bug
description: Challenge 32 is about debugging an application that has issue when change detection is triggered
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- jdegand
challengeNumber: 32
command: angular-bug-cd
blogLink: https://medium.com/ngconf/function-calls-inside-template-are-dangerous-15f9822a6629

View File

@@ -2,6 +2,9 @@
title: 🟠 Decoupling Components
description: Challenge 33 is about decoupling two strongly coupled components using Injection Token
author: thomas-laforge
contributors:
- tomalaforge
- jdegand
challengeNumber: 33
command: angular-decoupling
sidebar:

View File

@@ -2,6 +2,9 @@
title: 🟠 InjectionToken
description: Challenge 39 is about learning the power of dependancy injection
author: thomas-laforge
contributors:
- tomalaforge
- jdegand
challengeNumber: 39
command: angular-injection-token
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🔴 Typed ContextOutlet
description: Challenge 4 is about strongly typing ngContextOutlet directives
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
- jdegand
challengeNumber: 4
command: angular-context-outlet-type
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6

View File

@@ -2,6 +2,8 @@
title: 🟢 Signal Input
description: Challenge 43 is about learning how to use signal inputs
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 43
command: angular-signal-input
sidebar:

View File

@@ -2,6 +2,9 @@
title: 🔴 View Transition
description: Challenge 44 is about learning the new view transition animation API
author: thomas-laforge
contributors:
- tomalaforge
- jdegand
challengeNumber: 44
command: angular-view-transition
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🔴 React in angular
description: Challenge 45 is about learning how to benefit from the numerous libraries in React
author: wandrille-guesdon
contributors:
- wandri
- tomalaforge
- jdegand
challengeNumber: 45
command: angular-react-in-angular
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Simple Animations
description: Challenge 46 is about learning Angular's integrated animation API
author: sven-brodny
contributors:
- svenson95
challengeNumber: 46
command: angular-simple-animations
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🟢 Crud application
description: Challenge 5 is about refactoring a crud application
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
- jdegand
challengeNumber: 5
command: angular-crud
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🟠 Structural Directive
description: Challenge 6 is about creating a structural directive to handle permissions
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- kabrunko-dev
- svenson95
challengeNumber: 6
command: angular-permissions
blogLink: https://medium.com/@thomas.laforge/create-a-custom-structural-directive-to-manage-permissions-like-a-pro-11a1acad30ad

View File

@@ -2,6 +2,11 @@
title: 🟢 Pure Pipe
description: Challenge 8 is about creating a pure pipe
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- kabrunko-dev
- svenson95
challengeNumber: 8
command: angular-pipe-easy
blogLink: https://medium.com/ngconf/deep-dive-into-angular-pipes-c040588cd15d

View File

@@ -2,6 +2,11 @@
title: 🟠 Wrap Function Pipe
description: Challenge 9 is about creating a pipe to wrap component fonctions
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- kabrunko-dev
- svenson95
challengeNumber: 9
command: angular-pipe-intermediate
blogLink: https://medium.com/ngconf/boost-your-apps-performance-by-wrapping-your-functions-inside-a-pipe-7e889a901d1d

View File

@@ -2,6 +2,8 @@
title: 🟠 Control Value Accessor
description: Challenge 41 is about creating a custom form control that implements Control Value Accessor interface.
author: stanislav-gavrilov
contributors:
- stillst
challengeNumber: 41
command: forms-control-value-accessor
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🟠 Effect vs Selector
description: Challenge 2 is about learning the difference between effects and selectors in NgRx
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
- jdegand
challengeNumber: 2
command: ngrx-effect-selector
blogLink: https://medium.com/@thomas.laforge/ngrx-effect-vs-reducer-vs-selector-58337ab59043

View File

@@ -2,6 +2,10 @@
title: 🔴 Power of Effect
description: Challenge 7 is about creating an Ngrx effect with another Rxjs Hot observable
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- jdegand
challengeNumber: 7
command: ngrx-notification
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🔴 Extend Lib Generator
description: Challenge 25 is about creating a Nx generator to extend the built-in Library Generator
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 25
sidebar:
order: 207

View File

@@ -2,6 +2,10 @@
title: 🟠 Component Generator
description: Challenge 26 is about creating a Nx generator to create a custom component
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- Sagardevkota
challengeNumber: 26
sidebar:
order: 116

View File

@@ -2,6 +2,8 @@
title: 🟢 Custom Eslint Rule
description: Challenge 27 is about creating a custom Eslint Rule to forbid enums
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 27
sidebar:
order: 12

View File

@@ -2,6 +2,8 @@
title: 🟢 Static vs Dynamic Import
description: Challenge 42 is about understanding and fixing the eslint rule - Static imports of lazy-loaded libraries are forbidden.
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 42
command: nx-static-dynamic-import
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 Optimize Change Detection
description: Challenge 12 about optimizing the number of change detection cycle while scrolling
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 12
command: performance-scroll-cd
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Default vs OnPush
description: Challenge 34 is about learning the difference between Default and OnPush Change Detection Strategy.
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 34
command: performance-default-onpush
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Memoization
description: Challenge 35 is about learning how pure pipe works
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 35
command: performance-memoized
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 NgFor Optimization
description: Challenge 36 is about learning how trackby works
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 36
command: performance-ngfor-optimize
sidebar:

View File

@@ -2,6 +2,9 @@
title: 🟠 Optimize Big List
description: Challenge 37 is about learning how virtualization optimize big list rendering
author: thomas-laforge
contributors:
- tomalaforge
- jdegand
challengeNumber: 37
command: performance-ngfor-biglist
sidebar:

View File

@@ -2,6 +2,9 @@
title: 🟠 Web workers
description: Challenge 40 is about learning how to create and use a web worker
author: thomas-laforge
contributors:
- tomalaforge
- jdegand
challengeNumber: 40
command: performance-christmas-web-worker
sidebar:

View File

@@ -2,6 +2,9 @@
title: Angular Performance
prev: false
next: false
contributors:
- tomalaforge
- tomer953
description: Learn how to use the Angular Devtool chrome extension.
noCommentSection: true
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 High Order Operator Bug
description: Challenge 11 is about resolving a Rxjs bug because of high order operators
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 11
command: rxjs-pipe-bug
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Race Condition
description: Challenge 14 is about race condition in Rxjs
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 14
command: rxjs-race-condition
sidebar:

View File

@@ -3,6 +3,9 @@ title: 🟢 catchError
description: Challenge 38 is about learning obervable completion.
author: devesh-chaudhari
command: rxjs-catch-error
contributors:
- DeveshChau
- tomalaforge
challengeNumber: 38
sidebar:
order: 14

View File

@@ -2,6 +2,8 @@
title: 🟠 Router
description: Challenge 17 is about testing the router
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 17
command: testing-router-outlet
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 Nested Components
description: Challenge 18 is about testing nested components
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 18
command: testing-nested
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🟠 Input Output
description: Challenge 19 is about testing inputs and ouputs
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
- jdegand
challengeNumber: 19
command: testing-input-output
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🟠 Modal
description: Challenge 20 is about testing modals
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
- jdegand
challengeNumber: 20
command: testing-modal
sidebar:

View File

@@ -2,6 +2,11 @@
title: 🟢 Harness
description: Challenge 23 is about testing with component harnesses
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
- jdegand
challengeNumber: 23
command: testing-harness
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🟠 Harness Creation
description: Challenge 24 is about creating a component harness.
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- jdegand
challengeNumber: 24
command: testing-create-harness
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🟢 Checkbox
description: Challenge 28 is about testing a simple checkbox
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- jdegand
challengeNumber: 28
command: testing-checkbox
sidebar:

View File

@@ -2,6 +2,10 @@
title: 🔴 Real-life Application
description: Challenge 29 is about testing a real-life application
author: thomas-laforge
contributors:
- tomalaforge
- tomer953
- svenson95
challengeNumber: 29
command: testing-todos-list
sidebar:

View File

@@ -2,6 +2,8 @@
title: Testing
prev: false
next: false
contributors:
- tomalaforge
description: Introduction to testing challenges.
noCommentSection: true
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 Function Overload
description: Challenge 15 is about creating overload functions
author: thomas-laforge
contributors:
- tomalaforge
challengeNumber: 15
command: typescript-overload
blogLink: https://medium.com/ngconf/function-overloading-in-typescript-8236706b2c05

View File

@@ -2,6 +2,9 @@
title: 🟢 Enums vs Union Types
description: Challenge 47 is about the comparison between enums and union types
author: sven-brodny
contributors:
- svenson95
- jdegand
challengeNumber: 47
command: typescript-enums-vs-union-types
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Proyección
description: Desafio 1 trata sobre aprender a proyectar elementos del DOM a través de componentes,
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 1
command: angular-projection
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5

View File

@@ -2,6 +2,8 @@
title: 🔴 Pipe Wrapper para utilidades
description: El desafío 10 trata sobre la creación de un pipe para envolver utilidades
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 10
command: angular-pipe-hard
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 Estilos CSS Altamente Personalizables
description: El desafío 13 trata sobre la creación de estilos CSS altamente personalizables
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 13
command: angular-styling
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🔴 Dominar 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
contributors:
- ErickRodrCodes
challengeNumber: 16
command: angular-di
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Navegación con Anclas
description: El desafío 21 trata sobre la navegación dentro de la página con anclas
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 21
command: angular-anchor-scrolling
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 @RouterInput()
description: El desafío 22 trata sobre el uso del decorador @Input para utilizar parámetros del router.
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 22
command: angular-router-input
blogLink: https://medium.com/ngconf/accessing-route-params-in-angular-1f8e12770617

View File

@@ -2,6 +2,8 @@
title: 🟠 Mejorar Directiva
description: El desafío 3 se trata de una directive incorporada.
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 3
command: angular-ngfor-enhancement
blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c

View File

@@ -2,6 +2,8 @@
title: 🔴 Interoperatividad Rxjs/Signal (Señales)
description: El desafío 30 trata sobre aprender a mezclar señales con Rxjs
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 30
command: angular-interop-rxjs-signal
sidebar:

View File

@@ -2,6 +2,8 @@
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.
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 31
command: angular-module-to-standalone
sidebar:

View File

@@ -2,6 +2,8 @@
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
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 32
command: angular-bug-cd
blogLink: https://medium.com/ngconf/function-calls-inside-template-are-dangerous-15f9822a6629

View File

@@ -2,6 +2,8 @@
title: 🟠 Desacoplando Componentes
description: El desafío 33 trata sobre desacoplar dos componentes fuertemente unidos utilizando Token de Inyección
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 33
command: angular-decoupling
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 InjectionToken
description: Desafio de Angular 39 para aprender sobre el poder del InjectionToken
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 39
command: angular-injection-token
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🔴 ContextOutlet en forma de tipo
description: El desafío 4 se trata de tipificar de manera fuerte las directivas de ngContextOutlet
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 4
command: angular-context-outlet-type
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6

View File

@@ -2,6 +2,8 @@
title: 🟢 Aplicación CRUD
description: El desafío 5 se trata de refactorizar una aplicación CRUD.
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 5
command: angular-crud
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 Directiva Estructural
description: El Desafío 6 se trata de generar una Directiva Estructural que manipule los permisos
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 6
command: angular-permissions
blogLink: https://medium.com/@thomas.laforge/create-a-custom-structural-directive-to-manage-permissions-like-a-pro-11a1acad30ad

View File

@@ -2,6 +2,9 @@
title: 🟢 Pipe Puro
description: El desafío 8 trata sobre la creación de un pipe puro
author: thomas-laforge
contributors:
- ErickRodrCodes
- kabrunko - dev
challengeNumber: 8
command: angular-pipe-easy
blogLink: https://medium.com/ngconf/deep-dive-into-angular-pipes-c040588cd15d

View File

@@ -2,6 +2,8 @@
title: 🟠 Pipe Wrapper para funciones
description: El desafío 9 trata sobre la creación de un tubo para envolver funciones de componentes
author: thomas-laforge
contributors:
- ErickRodrCodes
challengeNumber: 9
command: angular-pipe-intermediate
blogLink: https://medium.com/ngconf/boost-your-apps-performance-by-wrapping-your-functions-inside-a-pipe-7e889a901d1d

View File

@@ -2,6 +2,8 @@
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
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 12
command: performance-scroll-cd
sidebar:

View File

@@ -2,6 +2,8 @@
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.
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 34
command: performance-default-onpush
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Memoización
description: El desafío 35 trata sobre cómo funcionan las tuberías puras
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 35
command: performance-memoized
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Optimización de NgFor
description: El Desafío 36 trata sobre como funciona trackby
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 36
command: performance-ngfor-optimize
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 Optimizando una lista larga
description: El desafio 37 trata sobre como optimizar una lista grande de elementos
author: thomas-laforge
contributors:
- nelsongutidev
challengeNumber: 37
command: performance-ngfor-biglist
sidebar:

View File

@@ -2,6 +2,8 @@
title: Rendimiento en Angular
prev: false
next: false
contributors:
- nelsongutidev
description: Aprende a usar la extensión de Chrome Angular Devtools.
noCommentSection: true
sidebar:

View File

@@ -1,6 +1,8 @@
---
title: Revisar la Respuesta de Alguien
description: Guía para revisar la respuesta de otra persona.
contributors:
- nelsongutidev
sidebar:
order: 3
---

View File

@@ -1,6 +1,8 @@
---
title: Contribuye
description: Guía para contribuir al proyecto
contributors:
- nelsongutidev
sidebar:
order: 4
---

View File

@@ -1,6 +1,8 @@
---
title: Crea tu propio desafío
description: Guía para crear un desafío
contributors:
- nelsongutidev
sidebar:
order: 5
---

View File

@@ -1,6 +1,8 @@
---
title: Preguntas Frecuentes
description: Preguntas frecuentes sobre el proyecto
contributors:
- nelsongutidev
sidebar:
order: 7
---

View File

@@ -1,6 +1,9 @@
---
title: Inicio
description: Una guía para comenzar con los Desafíos de Angular
contributors:
- nelsongutidev
- 1fbr
sidebar:
order: 1
---

View File

@@ -1,6 +1,8 @@
---
title: Hacer rebase a tu rama
description: Guía para hacer rebase a tu rama
contributors:
- nelsongutidev
sidebar:
order: 6
---

View File

@@ -1,6 +1,9 @@
---
title: Resolver un Desafío
description: Guía para resolver un desafío
contributors:
- nelsongutidev
- 1fbr
sidebar:
order: 2
---

View File

@@ -1,5 +1,7 @@
---
title: Comment démarrer
contributors:
- tomalaforge
description: Un guide sur la manière de commencer avec sur Angular Challenges.
sidebar:
order: 1

View File

@@ -1,5 +1,7 @@
---
title: Résoudre un Challenge
contributors:
- tomalaforge
description: Guide pour résoudre un challenge
sidebar:
order: 2

View File

@@ -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.
template: splash
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:
tagline: Commence maintenant et deviens un expert Angular !
image:

View File

@@ -1,6 +1,10 @@
---
title: Check out Somebody's Answer
description: Guide to checking out someone else's answer.
contributors:
- tomalaforge
- gsgonzalez88
- 1fbr
sidebar:
order: 3
---

View File

@@ -1,6 +1,9 @@
---
title: Contribute
description: Guide to contribute
contributors:
- tomalaforge
- jdegand
sidebar:
order: 4
---

View File

@@ -1,6 +1,9 @@
---
title: Create your own challenge
description: Guide to create your own challenge
contributors:
- tomalaforge
- gsgonzalez88
sidebar:
order: 5
---

View File

@@ -1,6 +1,9 @@
---
title: FAQ
description: Answer to question
contributors:
- tomalaforge
- jdegand
sidebar:
order: 7
---

View File

@@ -1,6 +1,10 @@
---
title: Getting Started
description: A guide on how to get started with Angular Challenges.
contributors:
- tomalaforge
- 1fbr
- ho-ssain
sidebar:
order: 1
---

View File

@@ -1,6 +1,8 @@
---
title: Rebase your branch
description: Guide to rebase a branch to latest change
contributors:
- tomalaforge
sidebar:
order: 6
---

View File

@@ -1,6 +1,10 @@
---
title: Resolve a Challenge
description: Guide to resolve a challenge
contributors:
- tomalaforge
- 1fbr
- gsgonzalez88
sidebar:
order: 2
---

View File

@@ -69,7 +69,10 @@ import SubscriptionForm from '../../components/SubscriptionForm.astro';
---
<div class="article-footer">
<a href="https://github.com/sponsors/tomalaforge" alt="Sponsor link">
<a
class="action"
href="https://github.com/sponsors/tomalaforge"
alt="Sponsor link">
<MyIcon name="fillHeart" size="1.2rem" color="white" />
Sponsor the Project
</a>

View File

@@ -2,6 +2,8 @@
title: 🟢 Projeção
description: Desafio 1 é sobre aprender a projetar elementos DOM através de componentes
author: thomas-laforge
contributors:
- kabrunko-dev
challengeNumber: 1
command: angular-projection
blogLink: https://medium.com/@thomas.laforge/create-a-highly-customizable-component-cc3a9805e4c5

View File

@@ -2,6 +2,8 @@
title: 🔴 Pipe Empacotador de Utilidade
description: Desafio 10 é sobre a criação de um pipe para empacotar utilidades
author: thomas-laforge
contributors:
- kabrunko-dev
challengeNumber: 10
command: angular-pipe-hard
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟠 CSS Altamente Personalizável
description: Desafio 13 é sobre criar estilos CSS altamente personalizáveis
author: thomas-laforge
contributors:
- kabrunko-dev
challengeNumber: 13
command: angular-styling
sidebar:

View File

@@ -2,6 +2,8 @@
title: 🟢 Navegação por Âncora
description: Desafio 21 é sobre navegação dentro de uma página por âncora
author: thomas-laforge
contributors:
- kabrunko-dev
challengeNumber: 21
command: angular-anchor-scrolling
sidebar:

Some files were not shown because too many files have changed in this diff Show More