mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-10 12:53:03 -05:00
chore(): revert challenge object change
This commit is contained in:
@@ -4,11 +4,11 @@ import VideoButton from './VideoButton.astro'
|
|||||||
import ClipboardCopy from './ClipboardCopy.astro'
|
import ClipboardCopy from './ClipboardCopy.astro'
|
||||||
|
|
||||||
const { labels } = Astro.props;
|
const { labels } = Astro.props;
|
||||||
const {author, challenge, title, blogLink, videoLink, command} = Astro.props.entry.data;
|
const {author, challengeNumber, title, blogLink, videoLink, command} = Astro.props.entry.data;
|
||||||
|
|
||||||
const authorLink = `https://github.com/tomalaforge/angular-challenges/pulls?q=label%3A${challenge?.number}+label%3A"answer+author"`;
|
const authorLink = `https://github.com/tomalaforge/angular-challenges/pulls?q=label%3A${challengeNumber}+label%3A"answer+author"`;
|
||||||
const authorDescription = `${title} solution author`;
|
const authorDescription = `${title} solution author`;
|
||||||
const communityLink = `https://github.com/tomalaforge/angular-challenges/pulls?q=label%3A${challenge?.number}+label%3Aanswer`;
|
const communityLink = `https://github.com/tomalaforge/angular-challenges/pulls?q=label%3A${challengeNumber}+label%3Aanswer`;
|
||||||
const communityDescription = `${title} community solutions`;
|
const communityDescription = `${title} community solutions`;
|
||||||
const npxCommand = `npx nx serve ${command}`;
|
const npxCommand = `npx nx serve ${command}`;
|
||||||
---
|
---
|
||||||
@@ -25,7 +25,7 @@ const npxCommand = `npx nx serve ${command}`;
|
|||||||
|
|
||||||
<aside aria-label="Reminder" class="starlight-aside starlight-aside--tip"><p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.43909 8.85483L1.44039 8.85354L4.96668 5.33815C5.30653 4.99386 5.7685 4.79662 6.2524 4.78972L6.26553 4.78963L12.9014 4.78962L13.8479 3.84308C16.9187 0.772319 20.0546 0.770617 21.4678 0.975145C21.8617 1.02914 22.2271 1.21053 22.5083 1.4917C22.7894 1.77284 22.9708 2.13821 23.0248 2.53199C23.2294 3.94517 23.2278 7.08119 20.1569 10.1521L19.2107 11.0983V17.7338L19.2106 17.7469C19.2037 18.2308 19.0067 18.6933 18.6624 19.0331L15.1456 22.5608C14.9095 22.7966 14.6137 22.964 14.29 23.0449C13.9663 23.1259 13.6267 23.1174 13.3074 23.0204C12.9881 22.9235 12.7011 22.7417 12.4771 22.4944C12.2533 22.2473 12.1006 21.9441 12.0355 21.6171L11.1783 17.3417L6.65869 12.822L4.34847 12.3589L2.38351 11.965C2.05664 11.8998 1.75272 11.747 1.50564 11.5232C1.25835 11.2992 1.07653 11.0122 0.979561 10.6929C0.882595 10.3736 0.874125 10.034 0.955057 9.7103C1.03599 9.38659 1.20328 9.09092 1.43909 8.85483ZM6.8186 10.8724L2.94619 10.096L6.32006 6.73268H10.9583L6.8186 10.8724ZM15.2219 5.21703C17.681 2.75787 20.0783 2.75376 21.1124 2.8876C21.2462 3.92172 21.2421 6.31895 18.783 8.77812L12.0728 15.4883L8.51172 11.9272L15.2219 5.21703ZM13.9042 21.0538L13.1279 17.1811L17.2676 13.0414V17.68L13.9042 21.0538Z"></path><path d="M9.31827 18.3446C9.45046 17.8529 9.17864 17.3369 8.68945 17.1724C8.56178 17.1294 8.43145 17.1145 8.30512 17.1243C8.10513 17.1398 7.91519 17.2172 7.76181 17.3434C7.62613 17.455 7.51905 17.6048 7.45893 17.7835C6.97634 19.2186 5.77062 19.9878 4.52406 20.4029C4.08525 20.549 3.6605 20.644 3.29471 20.7053C3.35607 20.3395 3.45098 19.9148 3.59711 19.476C4.01221 18.2294 4.78141 17.0237 6.21648 16.5411C6.39528 16.481 6.54504 16.3739 6.65665 16.2382C6.85126 16.0016 6.92988 15.678 6.84417 15.3647C6.83922 15.3466 6.83373 15.3286 6.82767 15.3106C6.74106 15.053 6.55701 14.8557 6.33037 14.7459C6.10949 14.6389 5.84816 14.615 5.59715 14.6994C5.47743 14.7397 5.36103 14.7831 5.24786 14.8294C3.22626 15.6569 2.2347 17.4173 1.75357 18.8621C1.49662 19.6337 1.36993 20.3554 1.30679 20.8818C1.27505 21.1464 1.25893 21.3654 1.25072 21.5213C1.24662 21.5993 1.24448 21.6618 1.24337 21.7066L1.243 21.7226L1.24235 21.7605L1.2422 21.7771L1.24217 21.7827L1.24217 21.7856C1.24217 22.3221 1.67703 22.7579 2.2137 22.7579L2.2155 22.7579L2.22337 22.7578L2.23956 22.7577C2.25293 22.7575 2.27096 22.7572 2.29338 22.7567C2.33821 22.7555 2.40073 22.7534 2.47876 22.7493C2.63466 22.7411 2.85361 22.725 3.11822 22.6932C3.64462 22.6301 4.36636 22.5034 5.13797 22.2464C6.58274 21.7653 8.3431 20.7738 9.17063 18.7522C9.21696 18.639 9.26037 18.5226 9.30064 18.4029C9.30716 18.3835 9.31304 18.364 9.31827 18.3446Z"></path></svg>
|
<aside aria-label="Reminder" class="starlight-aside starlight-aside--tip"><p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.43909 8.85483L1.44039 8.85354L4.96668 5.33815C5.30653 4.99386 5.7685 4.79662 6.2524 4.78972L6.26553 4.78963L12.9014 4.78962L13.8479 3.84308C16.9187 0.772319 20.0546 0.770617 21.4678 0.975145C21.8617 1.02914 22.2271 1.21053 22.5083 1.4917C22.7894 1.77284 22.9708 2.13821 23.0248 2.53199C23.2294 3.94517 23.2278 7.08119 20.1569 10.1521L19.2107 11.0983V17.7338L19.2106 17.7469C19.2037 18.2308 19.0067 18.6933 18.6624 19.0331L15.1456 22.5608C14.9095 22.7966 14.6137 22.964 14.29 23.0449C13.9663 23.1259 13.6267 23.1174 13.3074 23.0204C12.9881 22.9235 12.7011 22.7417 12.4771 22.4944C12.2533 22.2473 12.1006 21.9441 12.0355 21.6171L11.1783 17.3417L6.65869 12.822L4.34847 12.3589L2.38351 11.965C2.05664 11.8998 1.75272 11.747 1.50564 11.5232C1.25835 11.2992 1.07653 11.0122 0.979561 10.6929C0.882595 10.3736 0.874125 10.034 0.955057 9.7103C1.03599 9.38659 1.20328 9.09092 1.43909 8.85483ZM6.8186 10.8724L2.94619 10.096L6.32006 6.73268H10.9583L6.8186 10.8724ZM15.2219 5.21703C17.681 2.75787 20.0783 2.75376 21.1124 2.8876C21.2462 3.92172 21.2421 6.31895 18.783 8.77812L12.0728 15.4883L8.51172 11.9272L15.2219 5.21703ZM13.9042 21.0538L13.1279 17.1811L17.2676 13.0414V17.68L13.9042 21.0538Z"></path><path d="M9.31827 18.3446C9.45046 17.8529 9.17864 17.3369 8.68945 17.1724C8.56178 17.1294 8.43145 17.1145 8.30512 17.1243C8.10513 17.1398 7.91519 17.2172 7.76181 17.3434C7.62613 17.455 7.51905 17.6048 7.45893 17.7835C6.97634 19.2186 5.77062 19.9878 4.52406 20.4029C4.08525 20.549 3.6605 20.644 3.29471 20.7053C3.35607 20.3395 3.45098 19.9148 3.59711 19.476C4.01221 18.2294 4.78141 17.0237 6.21648 16.5411C6.39528 16.481 6.54504 16.3739 6.65665 16.2382C6.85126 16.0016 6.92988 15.678 6.84417 15.3647C6.83922 15.3466 6.83373 15.3286 6.82767 15.3106C6.74106 15.053 6.55701 14.8557 6.33037 14.7459C6.10949 14.6389 5.84816 14.615 5.59715 14.6994C5.47743 14.7397 5.36103 14.7831 5.24786 14.8294C3.22626 15.6569 2.2347 17.4173 1.75357 18.8621C1.49662 19.6337 1.36993 20.3554 1.30679 20.8818C1.27505 21.1464 1.25893 21.3654 1.25072 21.5213C1.24662 21.5993 1.24448 21.6618 1.24337 21.7066L1.243 21.7226L1.24235 21.7605L1.2422 21.7771L1.24217 21.7827L1.24217 21.7856C1.24217 22.3221 1.67703 22.7579 2.2137 22.7579L2.2155 22.7579L2.22337 22.7578L2.23956 22.7577C2.25293 22.7575 2.27096 22.7572 2.29338 22.7567C2.33821 22.7555 2.40073 22.7534 2.47876 22.7493C2.63466 22.7411 2.85361 22.725 3.11822 22.6932C3.64462 22.6301 4.36636 22.5034 5.13797 22.2464C6.58274 21.7653 8.3431 20.7738 9.17063 18.7522C9.21696 18.639 9.26037 18.5226 9.30064 18.4029C9.30716 18.3835 9.31304 18.364 9.31827 18.3446Z"></path></svg>
|
||||||
{labels['challenge.footer.reminder'] ?? 'Reminder'}</p><section class="starlight-aside__content">
|
{labels['challenge.footer.reminder'] ?? 'Reminder'}</p><section class="starlight-aside__content">
|
||||||
<p>{labels['challenge.footer.start'] ?? 'Your PR title must start with'} <b>{labels['challenge.footer.answer'] ?? 'Answer:'}{challenge?.number}</b>.</p></section></aside>
|
<p>{labels['challenge.footer.start'] ?? 'Your PR title must start with'} <b>{labels['challenge.footer.answer'] ?? 'Answer:'}{challengeNumber}</b>.</p></section></aside>
|
||||||
|
|
||||||
<div class="article-footer">
|
<div class="article-footer">
|
||||||
<a
|
<a
|
||||||
|
|||||||
@@ -7,17 +7,17 @@ import ChallengeFooter from './ChallengeFooter.astro';
|
|||||||
import CommentSection from './CommentSection.astro';
|
import CommentSection from './CommentSection.astro';
|
||||||
|
|
||||||
const { labels } = Astro.props;
|
const { labels } = Astro.props;
|
||||||
const {challenge} = Astro.props.entry.data;
|
const { challengeNumber } = Astro.props.entry.data;
|
||||||
const author = Astro.props.entry.data.author ? await getEntry(Astro.props.entry.data.author) : null;
|
const author = Astro.props.entry.data.author ? await getEntry(Astro.props.entry.data.author) : null;
|
||||||
const renderCommentSection = !Astro.props.entry.data.noCommentSection;
|
const renderCommentSection = !Astro.props.entry.data.noCommentSection;
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
{ challenge?.number && author && <Author {...author.data} {labels}/> }
|
{ challengeNumber && author && <Author {...author.data} {labels}/> }
|
||||||
|
|
||||||
<Default {...Astro.props}><slot /></Default>
|
<Default {...Astro.props}><slot /></Default>
|
||||||
|
|
||||||
{challenge?.number && <ChallengeFooter {...Astro.props} />}
|
{challengeNumber && <ChallengeFooter {...Astro.props} />}
|
||||||
|
|
||||||
{ renderCommentSection && <CommentSection {...Astro.props} /> }
|
{ renderCommentSection && <CommentSection {...Astro.props} /> }
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
---
|
---
|
||||||
import type { Props } from '@astrojs/starlight/props';
|
import type { Props } from '@astrojs/starlight/props';
|
||||||
import Default from '@astrojs/starlight/components/PageTitle.astro';
|
import Default from '@astrojs/starlight/components/PageTitle.astro';
|
||||||
const challenge = Astro.props.entry.data.challenge;
|
const { challengeNumber } = Astro.props.entry.data;
|
||||||
|
const { labels } = Astro.props;
|
||||||
const {labels} = Astro.props;
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="page-title-content">
|
<div class="page-title-content">
|
||||||
<Default {...Astro.props}><slot /></Default>
|
<Default {...Astro.props}><slot /></Default>
|
||||||
{challenge?.number && <div class="chip">{labels['page.title.challenge'] ?? 'Challenge'} #{challenge.number}</div> }
|
{challengeNumber && <div class="chip">{labels['page.title.challenge'] ?? 'Challenge'} #{challengeNumber}</div> }
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -16,11 +16,7 @@ const docs = defineCollection({
|
|||||||
docsSchema({
|
docsSchema({
|
||||||
extend: z.object({
|
extend: z.object({
|
||||||
noCommentSection: z.boolean().optional().default(false),
|
noCommentSection: z.boolean().optional().default(false),
|
||||||
challenge: z
|
challengeNumber: z.union([z.number(), z.boolean()]).default(false),
|
||||||
.object({
|
|
||||||
number: z.union([z.number(), z.boolean()]).default(false),
|
|
||||||
})
|
|
||||||
.optional(),
|
|
||||||
author: reference('authors').optional(),
|
author: reference('authors').optional(),
|
||||||
command: z.string().optional(),
|
command: z.string().optional(),
|
||||||
blogLink: z.string().optional(),
|
blogLink: z.string().optional(),
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 1
|
||||||
number: 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
|
||||||
videoLink:
|
videoLink:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 10
|
||||||
number: 10
|
|
||||||
command: angular-pipe-hard
|
command: angular-pipe-hard
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 202
|
order: 202
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 13
|
||||||
number: 13
|
|
||||||
command: angular-styling
|
command: angular-styling
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 104
|
order: 104
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 16
|
||||||
number: 16
|
|
||||||
command: angular-di
|
command: angular-di
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 203
|
order: 203
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 21
|
||||||
number: 21
|
|
||||||
command: angular-anchor-scrolling
|
command: angular-anchor-scrolling
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 4
|
order: 4
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 22
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 3
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 30
|
||||||
number: 30
|
|
||||||
command: angular-interop-rxjs-signal
|
command: angular-interop-rxjs-signal
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 204
|
order: 204
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 31
|
||||||
number: 31
|
|
||||||
command: angular-module-to-standalone
|
command: angular-module-to-standalone
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 6
|
order: 6
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 32
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 33
|
||||||
number: 33
|
|
||||||
command: angular-decoupling
|
command: angular-decoupling
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 106
|
order: 106
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 39
|
||||||
number: 39
|
|
||||||
command: angular-injection-token
|
command: angular-injection-token
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 118
|
order: 118
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 4
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 5
|
||||||
number: 5
|
|
||||||
command: angular-crud
|
command: angular-crud
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 2
|
order: 2
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 6
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 8
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 9
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 41
|
||||||
number: 41
|
|
||||||
command: forms-control-value-accessor
|
command: forms-control-value-accessor
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 1
|
order: 1
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 2
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 7
|
||||||
number: 7
|
|
||||||
command: ngrx-notification
|
command: ngrx-notification
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 206
|
order: 206
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 25
|
||||||
number: 25
|
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 207
|
order: 207
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 26
|
||||||
number: 26
|
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 116
|
order: 116
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 27
|
||||||
number: 27
|
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 12
|
order: 12
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 12
|
||||||
number: 12
|
|
||||||
command: performance-scroll-cd
|
command: performance-scroll-cd
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 107
|
order: 107
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 34
|
||||||
number: 34
|
|
||||||
command: performance-default-onpush
|
command: performance-default-onpush
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 7
|
order: 7
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 35
|
||||||
number: 35
|
|
||||||
command: performance-memoized
|
command: performance-memoized
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 8
|
order: 8
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 36
|
||||||
number: 36
|
|
||||||
command: performance-ngfor-optimize
|
command: performance-ngfor-optimize
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 13
|
order: 13
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 37
|
||||||
number: 37
|
|
||||||
command: performance-ngfor-biglist
|
command: performance-ngfor-biglist
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 117
|
order: 117
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 40
|
||||||
number: 40
|
|
||||||
command: performance-christmas-web-worker
|
command: performance-christmas-web-worker
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 119
|
order: 119
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 11
|
||||||
number: 11
|
|
||||||
command: rxjs-pipe-bug
|
command: rxjs-pipe-bug
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 114
|
order: 114
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 14
|
||||||
number: 14
|
|
||||||
command: rxjs-race-condition
|
command: rxjs-race-condition
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 11
|
order: 11
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ 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
|
||||||
challenge:
|
challengeNumber: 38
|
||||||
number: 38
|
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 14
|
order: 14
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 17
|
||||||
number: 17
|
|
||||||
command: testing-router-outlet
|
command: testing-router-outlet
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 108
|
order: 108
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 18
|
||||||
number: 18
|
|
||||||
command: testing-nested
|
command: testing-nested
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 109
|
order: 109
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 19
|
||||||
number: 19
|
|
||||||
command: testing-input-output
|
command: testing-input-output
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 110
|
order: 110
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
title: 🟠 Modal
|
title: 🟠 Modal
|
||||||
description: Challenge 20 is about testing modals
|
description: Challenge 20 is about testing modals
|
||||||
author: thomas-laforge
|
author: thomas-laforge
|
||||||
challenge:
|
challengeNumber: 20
|
||||||
number: 20
|
|
||||||
command: testing-modal
|
command: testing-modal
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 111
|
order: 111
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 23
|
||||||
number: 23
|
|
||||||
command: testing-harness
|
command: testing-harness
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 9
|
order: 9
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 24
|
||||||
number: 24
|
|
||||||
command: testing-create-harness
|
command: testing-create-harness
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 112
|
order: 112
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 28
|
||||||
number: 28
|
|
||||||
command: testing-checkbox
|
command: testing-checkbox
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 10
|
order: 10
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 29
|
||||||
number: 29
|
|
||||||
command: testing-todos-list
|
command: testing-todos-list
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 205
|
order: 205
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 15
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 1
|
||||||
label: Reto
|
|
||||||
number: 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
|
||||||
videoLink:
|
videoLink:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 22
|
||||||
label: Reto
|
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 3
|
||||||
label: Reto
|
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 39
|
||||||
label: Reto
|
|
||||||
number: 39
|
|
||||||
command: angular-injection-token
|
command: angular-injection-token
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 118
|
order: 118
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 4
|
||||||
label: Reto
|
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 5
|
||||||
label: Reto
|
|
||||||
number: 5
|
|
||||||
command: angular-crud
|
command: angular-crud
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 2
|
order: 2
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 6
|
||||||
label: Reto
|
|
||||||
number: 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
|
||||||
sidebar:
|
sidebar:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 12
|
||||||
label: Reto
|
|
||||||
number: 12
|
|
||||||
command: performance-scroll-cd
|
command: performance-scroll-cd
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 107
|
order: 107
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 34
|
||||||
label: Reto
|
|
||||||
number: 34
|
|
||||||
command: performance-default-onpush
|
command: performance-default-onpush
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 7
|
order: 7
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 35
|
||||||
label: Reto
|
|
||||||
number: 35
|
|
||||||
command: performance-memoized
|
command: performance-memoized
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 8
|
order: 8
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 36
|
||||||
label: Reto
|
|
||||||
number: 36
|
|
||||||
command: performance-ngfor-optimize
|
command: performance-ngfor-optimize
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 13
|
order: 13
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 37
|
||||||
label: Reto
|
|
||||||
number: 37
|
|
||||||
command: performance-ngfor-biglist
|
command: performance-ngfor-biglist
|
||||||
sidebar:
|
sidebar:
|
||||||
order: 117
|
order: 117
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
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
|
||||||
challenge:
|
challengeNumber: 1
|
||||||
number: 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
|
||||||
videoLink:
|
videoLink:
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
title: <%= difficulty %> <%= title %>
|
title: <%= difficulty %> <%= title %>
|
||||||
description: Challenge <%= challengeNumber %> is about ...
|
description: Challenge <%= challengeNumber %> is about ...
|
||||||
author: <%= author %>
|
author: <%= author %>
|
||||||
challenge:
|
challengeNumber: <%= challengeNumber %>
|
||||||
label: Challenge
|
|
||||||
number: <%= challengeNumber %>
|
|
||||||
command: <%= appProjectName %>
|
command: <%= appProjectName %>
|
||||||
sidebar:
|
sidebar:
|
||||||
order: <%= order %>
|
order: <%= order %>
|
||||||
|
|||||||
Reference in New Issue
Block a user