diff --git a/apps/401-recipe-filter-solution/src/app/recipe/recipe-filter.ng.ts b/apps/401-recipe-filter-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..8bf0e7b 100644 --- a/apps/401-recipe-filter-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/401-recipe-filter-solution/src/app/recipe/recipe-filter.ng.ts @@ -20,7 +20,6 @@ import { diff --git a/apps/401-recipe-filter-starter/src/app/recipe/recipe-filter.ng.ts b/apps/401-recipe-filter-starter/src/app/recipe/recipe-filter.ng.ts index 2598b38..7bb55d1 100644 --- a/apps/401-recipe-filter-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/401-recipe-filter-starter/src/app/recipe/recipe-filter.ng.ts @@ -1,6 +1,9 @@ -import { ChangeDetectionStrategy, Component, output } from '@angular/core'; +import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { FormField, FormRoot } from '@angular/forms/signals'; -import { RecipeFilterCriteria } from './recipe-filter-criteria'; +import { + createDefaultRecipeFilterCriteria, + RecipeFilterCriteria, +} from './recipe-filter-criteria'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -9,5 +12,5 @@ import { RecipeFilterCriteria } from './recipe-filter-criteria'; template: ` <🚧 wm-recipe-filter> `, }) export class RecipeFilter { - filterChange = output(); + filter = model(createDefaultRecipeFilterCriteria()); } diff --git a/apps/402-recipe-search-filter-interaction-solution/src/app/recipe/recipe-filter.ng.ts b/apps/402-recipe-search-filter-interaction-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..8bf0e7b 100644 --- a/apps/402-recipe-search-filter-interaction-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/402-recipe-search-filter-interaction-solution/src/app/recipe/recipe-filter.ng.ts @@ -20,7 +20,6 @@ import { diff --git a/apps/402-recipe-search-filter-interaction-starter/src/app/recipe/recipe-filter.ng.ts b/apps/402-recipe-search-filter-interaction-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..8bf0e7b 100644 --- a/apps/402-recipe-search-filter-interaction-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/402-recipe-search-filter-interaction-starter/src/app/recipe/recipe-filter.ng.ts @@ -20,7 +20,6 @@ import { diff --git a/apps/403-recipe-search-add-button-solution/src/app/recipe/recipe-filter.ng.ts b/apps/403-recipe-search-add-button-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..8bf0e7b 100644 --- a/apps/403-recipe-search-add-button-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/403-recipe-search-add-button-solution/src/app/recipe/recipe-filter.ng.ts @@ -20,7 +20,6 @@ import { diff --git a/apps/403-recipe-search-add-button-starter/src/app/recipe/recipe-filter.ng.ts b/apps/403-recipe-search-add-button-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..8bf0e7b 100644 --- a/apps/403-recipe-search-add-button-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/403-recipe-search-add-button-starter/src/app/recipe/recipe-filter.ng.ts @@ -20,7 +20,6 @@ import { diff --git a/apps/404-recipe-filter-material-solution/src/app/recipe/recipe-filter.ng.ts b/apps/404-recipe-filter-material-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/404-recipe-filter-material-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/404-recipe-filter-material-solution/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/404-recipe-filter-material-starter/src/app/recipe/recipe-filter.ng.ts b/apps/404-recipe-filter-material-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..8bf0e7b 100644 --- a/apps/404-recipe-filter-material-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/404-recipe-filter-material-starter/src/app/recipe/recipe-filter.ng.ts @@ -20,7 +20,6 @@ import { diff --git a/apps/501-recipe-preview-testronaut-solution/src/app/recipe/recipe-filter.ng.ts b/apps/501-recipe-preview-testronaut-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/501-recipe-preview-testronaut-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/501-recipe-preview-testronaut-solution/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/501-recipe-preview-testronaut-starter/src/app/recipe/recipe-filter.ng.ts b/apps/501-recipe-preview-testronaut-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/501-recipe-preview-testronaut-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/501-recipe-preview-testronaut-starter/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/502-recipe-filter-testronaut-solution/src/app/recipe/recipe-filter.ng.ts b/apps/502-recipe-filter-testronaut-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/502-recipe-filter-testronaut-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/502-recipe-filter-testronaut-solution/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/502-recipe-filter-testronaut-starter/src/app/recipe/recipe-filter.ng.ts b/apps/502-recipe-filter-testronaut-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/502-recipe-filter-testronaut-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/502-recipe-filter-testronaut-starter/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/503-recipe-search-testronaut-solution/src/app/recipe/recipe-filter.ng.ts b/apps/503-recipe-search-testronaut-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/503-recipe-search-testronaut-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/503-recipe-search-testronaut-solution/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/503-recipe-search-testronaut-starter/src/app/recipe/recipe-filter.ng.ts b/apps/503-recipe-search-testronaut-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/503-recipe-search-testronaut-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/503-recipe-search-testronaut-starter/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-filter.ng.ts b/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-filter.ng.ts +++ b/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, }) diff --git a/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-darwin.png b/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-darwin.png index 2df3f9b..10a17f3 100644 Binary files a/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-darwin.png and b/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-darwin.png differ diff --git a/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-linux.png b/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-linux.png index dd937c1..510d939 100644 Binary files a/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-linux.png and b/apps/504-playwright-visual-regression-testing-solution/src/app/recipe/recipe-search.pw.ts-snapshots/RecipeSearch-shows-recipes-1-chromium-linux.png differ diff --git a/apps/504-playwright-visual-regression-testing-starter/src/app/recipe/recipe-filter.ng.ts b/apps/504-playwright-visual-regression-testing-starter/src/app/recipe/recipe-filter.ng.ts index 7611251..a442f6b 100644 --- a/apps/504-playwright-visual-regression-testing-starter/src/app/recipe/recipe-filter.ng.ts +++ b/apps/504-playwright-visual-regression-testing-starter/src/app/recipe/recipe-filter.ng.ts @@ -1,5 +1,7 @@ import { ChangeDetectionStrategy, Component, model } from '@angular/core'; import { form, FormField, FormRoot } from '@angular/forms/signals'; +import { MatFormField, MatLabel } from '@angular/material/form-field'; +import { MatInput } from '@angular/material/input'; import { createDefaultRecipeFilterCriteria, RecipeFilterCriteria, @@ -8,33 +10,35 @@ import { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'wm-recipe-filter', - imports: [FormField, FormRoot], + imports: [FormField, FormRoot, MatFormField, MatInput, MatLabel], template: ` -
- - - + + + Keywords + + + + Max Ingredients + + + + Max Steps + +
`, styles: ` - :host { - text-align: center; + .filter-form { + display: flex; + flex-wrap: wrap; + gap: 1rem; + justify-content: center; + + margin-top: 1rem; } `, })