feat(challenge): add a pipe challenge serie

This commit is contained in:
thomas
2022-11-28 14:44:23 +01:00
parent aaeecf5f06
commit 2d61342db5
49 changed files with 1045 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
import { NgFor } from '@angular/common';
import { Component } from '@angular/core';
import { PersonUtils } from './person.utils';
@Component({
standalone: true,
imports: [NgFor],
selector: 'app-root',
template: `
<div *ngFor="let activity of activities">
{{ activity.name }} :
<div
*ngFor="let person of persons; let index = index; let isFirst = first">
{{ showName(person.name, index) }}
{{ isAllowed(person.age, isFirst, activity.minimumAge) }}
</div>
</div>
`,
})
export class AppComponent {
persons = [
{ name: 'Toto', age: 10 },
{ name: 'Jack', age: 15 },
{ name: 'John', age: 30 },
];
activities = [
{ name: 'biking', minimumAge: 12 },
{ name: 'hiking', minimumAge: 25 },
{ name: 'dancing', minimumAge: 1 },
];
showName = PersonUtils.showName;
isAllowed = PersonUtils.isAllowed;
}

View File

@@ -0,0 +1,17 @@
const showName = (name: string, index: number) => {
// very heavy computation
return `${name} - ${index}`;
};
const isAllowed = (age: number, isFirst: boolean, activityAge: number) => {
if (isFirst) {
return 'always allowed';
} else {
return age > activityAge ? 'allowed' : 'declined';
}
};
export const PersonUtils = {
showName,
isAllowed,
};