mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-10 04:43:03 -05:00
feat(nx): upgrade nx 20 and angular 19
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
{
|
{
|
||||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||||
"rules": {
|
"rules": {
|
||||||
|
"@angular-eslint/no-host-metadata-property": "off",
|
||||||
"@nx/enforce-module-boundaries": [
|
"@nx/enforce-module-boundaries": [
|
||||||
"error",
|
"error",
|
||||||
{
|
{
|
||||||
@@ -18,12 +19,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"@angular-eslint/no-host-metadata-property": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"allowStatic": true
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
"tags": [],
|
"tags": [],
|
||||||
"targets": {
|
"targets": {
|
||||||
"build": {
|
"build": {
|
||||||
"executor": "@angular-devkit/build-angular:application",
|
"executor": "@angular-devkit/build-angular:browser",
|
||||||
"outputs": ["{options.outputPath}"],
|
"outputs": ["{options.outputPath}"],
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist/apps/angular/1-projection",
|
"outputPath": "dist/apps/angular/1-projection",
|
||||||
"index": "apps/angular/1-projection/src/index.html",
|
"index": "apps/angular/1-projection/src/index.html",
|
||||||
"browser": "apps/angular/1-projection/src/main.ts",
|
"main": "apps/angular/1-projection/src/main.ts",
|
||||||
"polyfills": ["apps/angular/1-projection/src/polyfills.ts"],
|
"polyfills": ["apps/angular/1-projection/src/polyfills.ts"],
|
||||||
"tsConfig": "apps/angular/1-projection/tsconfig.app.json",
|
"tsConfig": "apps/angular/1-projection/tsconfig.app.json",
|
||||||
"inlineStyleLanguage": "scss",
|
"inlineStyleLanguage": "scss",
|
||||||
@@ -41,7 +41,9 @@
|
|||||||
"outputHashing": "all"
|
"outputHashing": "all"
|
||||||
},
|
},
|
||||||
"development": {
|
"development": {
|
||||||
|
"buildOptimizer": false,
|
||||||
"optimization": false,
|
"optimization": false,
|
||||||
|
"vendorChunk": true,
|
||||||
"extractLicenses": false,
|
"extractLicenses": false,
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"namedChunks": true
|
"namedChunks": true
|
||||||
|
|||||||
@@ -7,12 +7,11 @@ import { TeacherCardComponent } from './component/teacher-card/teacher-card.comp
|
|||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
<div class="grid grid-cols-3 gap-3">
|
<div class="grid grid-cols-3 gap-3">
|
||||||
<app-teacher-card></app-teacher-card>
|
<app-teacher-card />
|
||||||
<app-student-card></app-student-card>
|
<app-student-card />
|
||||||
<app-city-card></app-city-card>
|
<app-city-card />
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
standalone: true,
|
|
||||||
imports: [TeacherCardComponent, StudentCardComponent, CityCardComponent],
|
imports: [TeacherCardComponent, StudentCardComponent, CityCardComponent],
|
||||||
})
|
})
|
||||||
export class AppComponent {}
|
export class AppComponent {}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Component, OnInit } from '@angular/core';
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'app-city-card',
|
selector: 'app-city-card',
|
||||||
template: 'TODO City',
|
template: 'TODO City',
|
||||||
standalone: true,
|
|
||||||
imports: [],
|
imports: [],
|
||||||
})
|
})
|
||||||
export class CityCardComponent implements OnInit {
|
export class CityCardComponent implements OnInit {
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { CardComponent } from '../../ui/card/card.component';
|
|||||||
[type]="cardType"
|
[type]="cardType"
|
||||||
customClass="bg-light-green"></app-card>
|
customClass="bg-light-green"></app-card>
|
||||||
`,
|
`,
|
||||||
standalone: true,
|
|
||||||
styles: [
|
styles: [
|
||||||
`
|
`
|
||||||
::ng-deep .bg-light-green {
|
::ng-deep .bg-light-green {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import { CardComponent } from '../../ui/card/card.component';
|
|||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
],
|
],
|
||||||
standalone: true,
|
|
||||||
imports: [CardComponent],
|
imports: [CardComponent],
|
||||||
})
|
})
|
||||||
export class TeacherCardComponent implements OnInit {
|
export class TeacherCardComponent implements OnInit {
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import { ListItemComponent } from '../list-item/list-item.component';
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
standalone: true,
|
|
||||||
imports: [NgIf, NgFor, ListItemComponent],
|
imports: [NgIf, NgFor, ListItemComponent],
|
||||||
})
|
})
|
||||||
export class CardComponent {
|
export class CardComponent {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { bootstrapApplication } from '@angular/platform-browser';
|
import { bootstrapApplication } from '@angular/platform-browser';
|
||||||
import { AppComponent } from './app/app.component';
|
import { AppComponent } from './app/app.component';
|
||||||
|
|
||||||
bootstrapApplication(AppComponent);
|
bootstrapApplication(AppComponent).catch((err) => console.error(err));
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Component } from '@angular/core';
|
|||||||
import { PersonUtils } from './person.utils';
|
import { PersonUtils } from './person.utils';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor],
|
imports: [NgFor],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { TextComponent } from './text.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'page',
|
selector: 'page',
|
||||||
standalone: true,
|
|
||||||
imports: [TextStaticComponent, TextComponent],
|
imports: [TextStaticComponent, TextComponent],
|
||||||
template: `
|
template: `
|
||||||
<static-text></static-text>
|
<static-text></static-text>
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ export type StaticTextType = 'normal' | 'warning' | 'error';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'static-text',
|
selector: 'static-text',
|
||||||
standalone: true,
|
|
||||||
imports: [TextComponent],
|
imports: [TextComponent],
|
||||||
template: `
|
template: `
|
||||||
<text [font]="font" [color]="color">This is a static text</text>
|
<text [font]="font" [color]="color">This is a static text</text>
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ export class ProductDirective {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [TableComponent, CurrencyPipe, AsyncPipe, NgFor, ProductDirective],
|
imports: [TableComponent, CurrencyPipe, AsyncPipe, NgFor, ProductDirective],
|
||||||
providers: [CurrencyService],
|
providers: [CurrencyService],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet],
|
imports: [RouterOutlet],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { NavButtonComponent } from './nav-button.component';
|
import { NavButtonComponent } from './nav-button.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NavButtonComponent],
|
imports: [NavButtonComponent],
|
||||||
selector: 'app-foo',
|
selector: 'app-foo',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { NavButtonComponent } from './nav-button.component';
|
import { NavButtonComponent } from './nav-button.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NavButtonComponent],
|
imports: [NavButtonComponent],
|
||||||
selector: 'app-home',
|
selector: 'app-home',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|||||||
import { RouterLink, RouterModule } from '@angular/router';
|
import { RouterLink, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterLink, RouterModule, ReactiveFormsModule],
|
imports: [RouterLink, RouterModule, ReactiveFormsModule],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-home',
|
selector: 'app-home',
|
||||||
standalone: true,
|
|
||||||
imports: [],
|
imports: [],
|
||||||
template: `
|
template: `
|
||||||
<div>Home</div>
|
<div>Home</div>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { map } from 'rxjs';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-subscription',
|
selector: 'app-subscription',
|
||||||
standalone: true,
|
|
||||||
imports: [AsyncPipe],
|
imports: [AsyncPipe],
|
||||||
template: `
|
template: `
|
||||||
<div>TestId: {{ testId$ | async }}</div>
|
<div>TestId: {{ testId$ | async }}</div>
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ interface Person {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor, NgIf],
|
imports: [NgFor, NgIf],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -25,5 +25,6 @@ import { Component } from '@angular/core';
|
|||||||
host: {
|
host: {
|
||||||
class: 'flex flex-col p-4 gap-3',
|
class: 'flex flex-col p-4 gap-3',
|
||||||
},
|
},
|
||||||
|
standalone: false,
|
||||||
})
|
})
|
||||||
export class AppComponent {}
|
export class AppComponent {}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet],
|
imports: [RouterOutlet],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ interface MenuItem {
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-nav',
|
selector: 'app-nav',
|
||||||
standalone: true,
|
|
||||||
imports: [RouterLink, RouterLinkActive, NgFor],
|
imports: [RouterLink, RouterLinkActive, NgFor],
|
||||||
template: `
|
template: `
|
||||||
<ng-container *ngFor="let menu of menus">
|
<ng-container *ngFor="let menu of menus">
|
||||||
@@ -38,7 +37,6 @@ export class NavigationComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NavigationComponent, NgIf, AsyncPipe],
|
imports: [NavigationComponent, NgIf, AsyncPipe],
|
||||||
template: `
|
template: `
|
||||||
<ng-container *ngIf="info$ | async as info">
|
<ng-container *ngIf="info$ | async as info">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { BtnHelmetDirective } from '@angular-challenges/decoupling/helmet';
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [BtnDisabledDirective, BtnHelmetDirective],
|
imports: [BtnDisabledDirective, BtnHelmetDirective],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterLink, RouterOutlet } from '@angular/router';
|
import { RouterLink, RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet, RouterLink],
|
imports: [RouterOutlet, RouterLink],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { TimerContainerComponent } from './timer-container.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-phone',
|
selector: 'app-phone',
|
||||||
standalone: true,
|
|
||||||
imports: [TimerContainerComponent],
|
imports: [TimerContainerComponent],
|
||||||
template: `
|
template: `
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { DEFAULT_TIMER } from './data';
|
|||||||
import { TimerComponent } from './timer.component';
|
import { TimerComponent } from './timer.component';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'timer-container',
|
selector: 'timer-container',
|
||||||
standalone: true,
|
|
||||||
imports: [TimerComponent],
|
imports: [TimerComponent],
|
||||||
template: `
|
template: `
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { TimerContainerComponent } from './timer-container.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-video',
|
selector: 'app-video',
|
||||||
standalone: true,
|
|
||||||
imports: [TimerContainerComponent],
|
imports: [TimerContainerComponent],
|
||||||
template: `
|
template: `
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ListComponent } from './list.component';
|
|||||||
import { PersonComponent } from './person.component';
|
import { PersonComponent } from './person.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgTemplateOutlet, PersonComponent, ListComponent],
|
imports: [NgTemplateOutlet, PersonComponent, ListComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import {
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'list',
|
selector: 'list',
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule],
|
imports: [CommonModule],
|
||||||
template: `
|
template: `
|
||||||
<div *ngFor="let item of list; index as i">
|
<div *ngFor="let item of list; index as i">
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ interface Person {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgTemplateOutlet],
|
imports: [NgTemplateOutlet],
|
||||||
selector: 'person',
|
selector: 'person',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet],
|
imports: [RouterOutlet],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ThumbnailComponent } from './thumbnail.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'blog',
|
selector: 'blog',
|
||||||
standalone: true,
|
|
||||||
imports: [ThumbnailComponent],
|
imports: [ThumbnailComponent],
|
||||||
template: `
|
template: `
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Component, input } from '@angular/core';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'thumbnail-header',
|
selector: 'thumbnail-header',
|
||||||
standalone: true,
|
|
||||||
imports: [NgOptimizedImage],
|
imports: [NgOptimizedImage],
|
||||||
template: `
|
template: `
|
||||||
<div class="flex gap-3">
|
<div class="flex gap-3">
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { ThumbnailHeaderComponent } from './thumbnail-header.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'blog-thumbnail',
|
selector: 'blog-thumbnail',
|
||||||
standalone: true,
|
|
||||||
imports: [NgOptimizedImage, ThumbnailHeaderComponent, RouterLinkWithHref],
|
imports: [NgOptimizedImage, ThumbnailHeaderComponent, RouterLinkWithHref],
|
||||||
template: `
|
template: `
|
||||||
<a [routerLink]="['post', post().id]">
|
<a [routerLink]="['post', post().id]">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Component, input } from '@angular/core';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'post-header',
|
selector: 'post-header',
|
||||||
standalone: true,
|
|
||||||
imports: [NgOptimizedImage],
|
imports: [NgOptimizedImage],
|
||||||
template: `
|
template: `
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { PostHeaderComponent } from './post-header.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'post',
|
selector: 'post',
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
ThumbnailHeaderComponent,
|
ThumbnailHeaderComponent,
|
||||||
NgOptimizedImage,
|
NgOptimizedImage,
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { PostComponent } from './react/post.component';
|
|||||||
type Post = { title: string; description: string };
|
type Post = { title: string; description: string };
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [PostComponent],
|
imports: [PostComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [],
|
imports: [],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
styles: `
|
styles: `
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { Component, OnInit } from '@angular/core';
|
|||||||
import { randText } from '@ngneat/falso';
|
import { randText } from '@ngneat/falso';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule],
|
imports: [CommonModule],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { Component, signal } from '@angular/core';
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
|
standalone: false,
|
||||||
})
|
})
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
topLoaded = signal(false);
|
topLoaded = signal(false);
|
||||||
|
|||||||
@@ -13,5 +13,6 @@ import { Component } from '@angular/core';
|
|||||||
height: 50%;
|
height: 50%;
|
||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
|
standalone: false,
|
||||||
})
|
})
|
||||||
export class PlaceholderComponent {}
|
export class PlaceholderComponent {}
|
||||||
|
|||||||
@@ -13,5 +13,6 @@ import { Component } from '@angular/core';
|
|||||||
height: 50%;
|
height: 50%;
|
||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
|
standalone: false,
|
||||||
})
|
})
|
||||||
export class TopComponent {}
|
export class TopComponent {}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterLink, RouterOutlet } from '@angular/router';
|
import { RouterLink, RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet, RouterLink],
|
imports: [RouterOutlet, RouterLink],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
templateUrl: './app.component.html',
|
templateUrl: './app.component.html',
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import {
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dialog-dialog',
|
selector: 'app-dialog-dialog',
|
||||||
templateUrl: './dialog.component.html',
|
templateUrl: './dialog.component.html',
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
MatDialogActions,
|
MatDialogActions,
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { MatButtonModule } from '@angular/material/button';
|
|||||||
import { RouterLink } from '@angular/router';
|
import { RouterLink } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [MatButtonModule, RouterLink],
|
imports: [MatButtonModule, RouterLink],
|
||||||
selector: 'app-home',
|
selector: 'app-home',
|
||||||
templateUrl: './home.component.html',
|
templateUrl: './home.component.html',
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { MatDialog } from '@angular/material/dialog';
|
|||||||
import { DialogComponent } from '../dialog/dialog.component';
|
import { DialogComponent } from '../dialog/dialog.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [MatButtonModule],
|
imports: [MatButtonModule],
|
||||||
selector: 'app-sensitive-action',
|
selector: 'app-sensitive-action',
|
||||||
templateUrl: './sensitive-action.component.html',
|
templateUrl: './sensitive-action.component.html',
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { MatDialog } from '@angular/material/dialog';
|
|||||||
import { DialogComponent } from '../dialog/dialog.component';
|
import { DialogComponent } from '../dialog/dialog.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [MatButtonModule],
|
imports: [MatButtonModule],
|
||||||
selector: 'app-simple-action',
|
selector: 'app-simple-action',
|
||||||
templateUrl: './simple-action.component.html',
|
templateUrl: './simple-action.component.html',
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
|
|
||||||
@include mat.core();
|
@include mat.elevation-classes();
|
||||||
|
@include mat.app-background();
|
||||||
|
|
||||||
$theme-primary: mat.m2-define-palette(mat.$m2-indigo-palette);
|
$theme-primary: mat.m2-define-palette(mat.$m2-indigo-palette);
|
||||||
$theme-accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400);
|
$theme-accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400);
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet],
|
imports: [RouterOutlet],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ButtonComponent } from '../button.component';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dashboard',
|
selector: 'app-dashboard',
|
||||||
standalone: true,
|
|
||||||
imports: [RouterLink, ButtonComponent],
|
imports: [RouterLink, ButtonComponent],
|
||||||
template: `
|
template: `
|
||||||
<p>dashboard for Admin works!</p>
|
<p>dashboard for Admin works!</p>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { UserStore } from './user.store';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-information',
|
selector: 'app-information',
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule],
|
imports: [CommonModule],
|
||||||
template: `
|
template: `
|
||||||
<h2 class="mt-10 text-xl">Information Panel</h2>
|
<h2 class="mt-10 text-xl">Information Panel</h2>
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import {
|
|||||||
import { UserStore } from './user.store';
|
import { UserStore } from './user.store';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [InformationComponent, RouterLink, ButtonComponent],
|
imports: [InformationComponent, RouterLink, ButtonComponent],
|
||||||
selector: 'app-login',
|
selector: 'app-login',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { NgFor } from '@angular/common';
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor],
|
imports: [NgFor],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { NgFor } from '@angular/common';
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor],
|
imports: [NgFor],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { FeedbackFormComponent } from './feedback-form/feedback-form.component';
|
import { FeedbackFormComponent } from './feedback-form/feedback-form.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [FeedbackFormComponent],
|
imports: [FeedbackFormComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import {
|
|||||||
import { RatingControlComponent } from '../rating-control/rating-control.component';
|
import { RatingControlComponent } from '../rating-control/rating-control.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RatingControlComponent, ReactiveFormsModule],
|
imports: [RatingControlComponent, ReactiveFormsModule],
|
||||||
selector: 'app-feedback-form',
|
selector: 'app-feedback-form',
|
||||||
templateUrl: 'feedback-form.component.html',
|
templateUrl: 'feedback-form.component.html',
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { RouterOutlet } from '@angular/router';
|
|||||||
import { NavComponent } from './ui/nav.component';
|
import { NavComponent } from './ui/nav.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet, NavComponent],
|
imports: [RouterOutlet, NavComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|||||||
import { FormComponent } from '../ui/form.component';
|
import { FormComponent } from '../ui/form.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [FormComponent],
|
imports: [FormComponent],
|
||||||
template: `
|
template: `
|
||||||
<section class="mx-auto max-w-screen-sm">
|
<section class="mx-auto max-w-screen-sm">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-form',
|
selector: 'app-form',
|
||||||
standalone: true,
|
|
||||||
imports: [ReactiveFormsModule],
|
imports: [ReactiveFormsModule],
|
||||||
template: `
|
template: `
|
||||||
<form [formGroup]="form" (ngSubmit)="onSubmit()" class="space-y-4">
|
<form [formGroup]="form" (ngSubmit)="onSubmit()" class="space-y-4">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { RouterLink, RouterLinkActive } from '@angular/router';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-nav',
|
selector: 'app-nav',
|
||||||
standalone: true,
|
|
||||||
imports: [RouterLink, RouterLinkActive],
|
imports: [RouterLink, RouterLinkActive],
|
||||||
template: `
|
template: `
|
||||||
<nav
|
<nav
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import { loadUsers } from './store/user/user.actions';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor, AsyncPipe],
|
imports: [NgFor, AsyncPipe],
|
||||||
template: `
|
template: `
|
||||||
<h1>Activity Board</h1>
|
<h1>Activity Board</h1>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { Store } from '@ngrx/store';
|
|||||||
import { appActions } from './app.actions';
|
import { appActions } from './app.actions';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet, RouterLink],
|
imports: [RouterOutlet, RouterLink],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
import { FakeBackendService } from '@angular-challenges/power-of-effect/backend';
|
import { FakeBackendService } from '@angular-challenges/power-of-effect/backend';
|
||||||
import { APP_INITIALIZER, ApplicationConfig, inject } from '@angular/core';
|
import {
|
||||||
|
ApplicationConfig,
|
||||||
|
inject,
|
||||||
|
provideAppInitializer,
|
||||||
|
} from '@angular/core';
|
||||||
import { provideAnimations } from '@angular/platform-browser/animations';
|
import { provideAnimations } from '@angular/platform-browser/animations';
|
||||||
import { provideRouter } from '@angular/router';
|
import { provideRouter } from '@angular/router';
|
||||||
import { provideEffects } from '@ngrx/effects';
|
import { provideEffects } from '@ngrx/effects';
|
||||||
@@ -27,22 +31,20 @@ export const appConfig: ApplicationConfig = {
|
|||||||
provideStore(REDUCERS),
|
provideStore(REDUCERS),
|
||||||
provideEffects([TeacherEffects, StudentEffects]),
|
provideEffects([TeacherEffects, StudentEffects]),
|
||||||
provideRouter(ROUTES),
|
provideRouter(ROUTES),
|
||||||
{
|
provideAppInitializer(() => {
|
||||||
provide: APP_INITIALIZER,
|
const initializerFn = (() => {
|
||||||
multi: true,
|
|
||||||
useFactory: () => {
|
|
||||||
const service = inject(FakeBackendService);
|
const service = inject(FakeBackendService);
|
||||||
return () => service.start();
|
return () => service.start();
|
||||||
},
|
})();
|
||||||
},
|
return initializerFn();
|
||||||
{
|
}),
|
||||||
provide: APP_INITIALIZER,
|
provideAppInitializer(() => {
|
||||||
multi: true,
|
const initializerFn = (() => {
|
||||||
useFactory: () => {
|
|
||||||
const service = inject(NotificationService);
|
const service = inject(NotificationService);
|
||||||
return () => service.init();
|
return () => service.init();
|
||||||
},
|
})();
|
||||||
},
|
return initializerFn();
|
||||||
|
}),
|
||||||
provideAnimations(),
|
provideAnimations(),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { provideComponentStore } from '@ngrx/component-store';
|
|||||||
import { SchoolStore } from './school.store';
|
import { SchoolStore } from './school.store';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor, AsyncPipe],
|
imports: [NgFor, AsyncPipe],
|
||||||
providers: [provideComponentStore(SchoolStore)],
|
providers: [provideComponentStore(SchoolStore)],
|
||||||
selector: 'school',
|
selector: 'school',
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { Store } from '@ngrx/store';
|
|||||||
import { StudentSelectors } from './store/student.selectors';
|
import { StudentSelectors } from './store/student.selectors';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor, AsyncPipe],
|
imports: [NgFor, AsyncPipe],
|
||||||
selector: 'student',
|
selector: 'student',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { Store } from '@ngrx/store';
|
|||||||
import { TeacherSelectors } from './store/teacher.selectors';
|
import { TeacherSelectors } from './store/teacher.selectors';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgFor, AsyncPipe],
|
imports: [NgFor, AsyncPipe],
|
||||||
selector: 'teacher',
|
selector: 'teacher',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [UserComponent, RouterOutlet],
|
imports: [UserComponent, RouterOutlet],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Component, HostListener } from '@angular/core';
|
|||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [NgIf, AsyncPipe],
|
imports: [NgIf, AsyncPipe],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { PersonListComponent } from './person-list.component';
|
|||||||
import { RandomComponent } from './random.component';
|
import { RandomComponent } from './random.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [PersonListComponent, RandomComponent],
|
imports: [PersonListComponent, RandomComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { MatListModule } from '@angular/material/list';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-person-list',
|
selector: 'app-person-list',
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Component } from '@angular/core';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-random',
|
selector: 'app-random',
|
||||||
standalone: true,
|
|
||||||
template: `
|
template: `
|
||||||
<div cd-flash>I do nothing but I'm here</div>
|
<div cd-flash>I do nothing but I'm here</div>
|
||||||
`,
|
`,
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { generateList } from './generateList';
|
|||||||
import { PersonListComponent } from './person-list.component';
|
import { PersonListComponent } from './person-list.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [PersonListComponent, NgIf],
|
imports: [PersonListComponent, NgIf],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ const fibonacci = (num: number): number => {
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-person-list',
|
selector: 'app-person-list',
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { PersonService } from './list.service';
|
|||||||
import { PersonListComponent } from './person-list.component';
|
import { PersonListComponent } from './person-list.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
PersonListComponent,
|
PersonListComponent,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { Person } from './person.model';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-person-list',
|
selector: 'app-person-list',
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule],
|
imports: [CommonModule],
|
||||||
template: `
|
template: `
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import { PersonService } from './list.service';
|
|||||||
import { PersonListComponent } from './person-list.component';
|
import { PersonListComponent } from './person-list.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
NgIf,
|
NgIf,
|
||||||
PersonListComponent,
|
PersonListComponent,
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { Person } from './person.model';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-person-list',
|
selector: 'app-person-list',
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule, NgForTrackByModule],
|
imports: [CommonModule, NgForTrackByModule],
|
||||||
template: `
|
template: `
|
||||||
<div class="relative h-[300px] overflow-hidden">
|
<div class="relative h-[300px] overflow-hidden">
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { HeavyCalculationService } from './heavy-calculation.service';
|
|||||||
import { UnknownPersonComponent } from './unknown-person/unknown-person.component';
|
import { UnknownPersonComponent } from './unknown-person/unknown-person.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule, UnknownPersonComponent],
|
imports: [CommonModule, UnknownPersonComponent],
|
||||||
providers: [HeavyCalculationService],
|
providers: [HeavyCalculationService],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { AppService } from './app.service';
|
|||||||
import { TopicType } from './localDB.service';
|
import { TopicType } from './localDB.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
selector: 'button-delete-topic',
|
selector: 'button-delete-topic',
|
||||||
imports: [AsyncPipe],
|
imports: [AsyncPipe],
|
||||||
template: `
|
template: `
|
||||||
@@ -36,7 +35,6 @@ export class ButtonDeleteComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [AsyncPipe, NgFor, ButtonDeleteComponent],
|
imports: [AsyncPipe, NgFor, ButtonDeleteComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
imports: [MatDialogModule, MatButtonModule, NgFor],
|
imports: [MatDialogModule, MatButtonModule, NgFor],
|
||||||
standalone: true,
|
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
})
|
})
|
||||||
export class TopicModalComponent {
|
export class TopicModalComponent {
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
@use '@angular/material' as mat;
|
@use '@angular/material' as mat;
|
||||||
|
|
||||||
@include mat.core();
|
@include mat.elevation-classes();
|
||||||
|
@include mat.app-background();
|
||||||
|
|
||||||
$theme-primary: mat.m2-define-palette(mat.$m2-indigo-palette);
|
$theme-primary: mat.m2-define-palette(mat.$m2-indigo-palette);
|
||||||
$theme-accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400);
|
$theme-accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400);
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { FormsModule } from '@angular/forms';
|
|||||||
import { Subject, concatMap, map } from 'rxjs';
|
import { Subject, concatMap, map } from 'rxjs';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule, FormsModule],
|
imports: [CommonModule, FormsModule],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [],
|
imports: [],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
|||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [RouterOutlet],
|
imports: [RouterOutlet],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { Photo } from '../photo.model';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-photos',
|
selector: 'app-photos',
|
||||||
standalone: true,
|
|
||||||
imports: [DatePipe, RouterLink],
|
imports: [DatePipe, RouterLink],
|
||||||
template: `
|
template: `
|
||||||
<img src="{{ photo.url_m }}" alt="{{ photo.title }}" class="image" />
|
<img src="{{ photo.url_m }}" alt="{{ photo.title }}" class="image" />
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { PhotoStore } from './photos.store';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-photos',
|
selector: 'app-photos',
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
MatFormFieldModule,
|
MatFormFieldModule,
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Injectable, inject } from '@angular/core';
|
import { inject, Injectable } from '@angular/core';
|
||||||
import {
|
import {
|
||||||
ComponentStore,
|
ComponentStore,
|
||||||
OnStateInit,
|
OnStateInit,
|
||||||
OnStoreInit,
|
OnStoreInit,
|
||||||
tapResponse,
|
|
||||||
} from '@ngrx/component-store';
|
} from '@ngrx/component-store';
|
||||||
|
import { tapResponse } from '@ngrx/operators';
|
||||||
import { pipe } from 'rxjs';
|
import { pipe } from 'rxjs';
|
||||||
import { filter, mergeMap, tap } from 'rxjs/operators';
|
import { filter, mergeMap, tap } from 'rxjs/operators';
|
||||||
import { Photo } from '../photo.model';
|
import { Photo } from '../photo.model';
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
import { JsonPipe } from '@angular/common';
|
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { UserComponent } from './user.component';
|
import { UserComponent } from './user.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
imports: [UserComponent],
|
||||||
imports: [UserComponent, JsonPipe],
|
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
<div class="flex flex-col gap-3">
|
<div class="flex flex-col gap-3">
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ const ageToCategory = (age: number): Category => {
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-user',
|
selector: 'app-user',
|
||||||
standalone: true,
|
|
||||||
imports: [TitleCasePipe],
|
imports: [TitleCasePipe],
|
||||||
template: `
|
template: `
|
||||||
{{ fullName | titlecase }} plays tennis in the {{ category }} category!!
|
{{ fullName | titlecase }} plays tennis in the {{ category }} category!!
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import {
|
|||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [FormsModule],
|
imports: [FormsModule],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import { FormsModule } from '@angular/forms';
|
|||||||
import { UserService } from './user.service';
|
import { UserService } from './user.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [FormsModule],
|
imports: [FormsModule],
|
||||||
selector: 'app-actions',
|
selector: 'app-actions',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ActionsComponent } from './action.component';
|
|||||||
import { UserService } from './user.service';
|
import { UserService } from './user.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [FormsModule, ActionsComponent],
|
imports: [FormsModule, ActionsComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { UserStore } from './user.service';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'address-user',
|
selector: 'address-user',
|
||||||
standalone: true,
|
|
||||||
template: `
|
template: `
|
||||||
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
||||||
Address:
|
Address:
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { NoteComponent } from './note.component';
|
|||||||
import { UserFormComponent } from './user-form.component';
|
import { UserFormComponent } from './user-form.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
<name />
|
<name />
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { UserStore } from './user.service';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'job',
|
selector: 'job',
|
||||||
standalone: true,
|
|
||||||
template: `
|
template: `
|
||||||
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
||||||
Job:
|
Job:
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { UserStore } from './user.service';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'name',
|
selector: 'name',
|
||||||
standalone: true,
|
|
||||||
template: `
|
template: `
|
||||||
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
||||||
Name: {{ userService.user().name }}
|
Name: {{ userService.user().name }}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { UserStore } from './user.service';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'note',
|
selector: 'note',
|
||||||
standalone: true,
|
|
||||||
template: `
|
template: `
|
||||||
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
<div cd-flash class="m-4 block border border-gray-500 p-4">
|
||||||
Note: {{ userService.user().note }}
|
Note: {{ userService.user().note }}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { UserStore } from './user.service';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'user-form',
|
selector: 'user-form',
|
||||||
standalone: true,
|
|
||||||
imports: [ReactiveFormsModule],
|
imports: [ReactiveFormsModule],
|
||||||
template: `
|
template: `
|
||||||
<form [formGroup]="form" (ngSubmit)="submit()" class="flex flex-col gap-4">
|
<form [formGroup]="form" (ngSubmit)="submit()" class="flex flex-col gap-4">
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ProductRowComponent } from './product-row.component';
|
|||||||
import { products } from './product.model';
|
import { products } from './product.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
imports: [TableComponent, ProductRowComponent],
|
imports: [TableComponent, ProductRowComponent],
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { CurrencyService } from './currency.service';
|
|||||||
import { Product } from './product.model';
|
import { Product } from './product.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
|
||||||
selector: 'tr[product-row]',
|
selector: 'tr[product-row]',
|
||||||
template: `
|
template: `
|
||||||
<td>{{ productInfo.name }}</td>
|
<td>{{ productInfo.name }}</td>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user