From 5cee6ee9b8329855068e08a93a919fbda7fcc100 Mon Sep 17 00:00:00 2001 From: aditya_singh2 Date: Mon, 6 Jan 2025 18:23:08 +0530 Subject: [PATCH] module based todo list --- package-lock.json | 278 +++++-------------- src/app/app.component.ts | 18 +- src/app/app.module.ts | 14 + src/app/header/header.component.html | 1 + src/app/header/header.component.ts | 9 +- src/app/shared/card/card.component.ts | 9 +- src/app/shared/shared.module.ts | 9 + src/app/tasks/new-task/new-task.component.ts | 43 +-- src/app/tasks/task/task.component.ts | 11 +- src/app/tasks/tasks.component.ts | 18 +- src/app/tasks/tasks.module.ts | 13 + src/app/user/user.component.ts | 11 +- src/main.ts | 8 +- 13 files changed, 165 insertions(+), 277 deletions(-) create mode 100644 src/app/app.module.ts create mode 100644 src/app/shared/shared.module.ts create mode 100644 src/app/tasks/tasks.module.ts diff --git a/package-lock.json b/package-lock.json index 061978f..117402d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -450,6 +450,36 @@ "typescript": ">=5.4 <5.6" } }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/core": { "version": "18.2.13", "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.13.tgz", @@ -5498,19 +5528,41 @@ "license": "MIT" }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/chownr": { @@ -8636,31 +8688,6 @@ "source-map-support": "^0.5.5" } }, - "node_modules/karma/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -8680,19 +8707,6 @@ "dev": true, "license": "MIT" }, - "node_modules/karma/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/karma/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -8703,32 +8717,6 @@ "node": ">=8" } }, - "node_modules/karma/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/karma/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11111,17 +11099,29 @@ } }, "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, "engines": { - "node": ">= 14.16.0" + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/reflect-metadata": { @@ -11572,70 +11572,6 @@ } } }, - "node_modules/sass/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sass/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -13854,31 +13790,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/webpack-dev-server/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -13900,19 +13811,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", @@ -13954,32 +13852,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 3a759b2..1d00aa2 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,26 +1,22 @@ -import { Component,input } from '@angular/core'; -import { HeaderComponent } from './header/header.component'; -import { UserComponent } from "./user/user.component"; +import { Component, input } from '@angular/core'; import { DUMMY_USERS } from './dummy-users'; -import { TasksComponent } from './tasks/tasks.component'; // import { NgFor, NgIf } from '@angular/common'; @Component({ selector: 'app-root', - imports: [HeaderComponent, UserComponent, TasksComponent], - standalone: true, + standalone: false, templateUrl: './app.component.html', - styleUrl: './app.component.css' + styleUrl: './app.component.css', }) export class AppComponent { users = DUMMY_USERS; title = 'todo-project'; - selectedUserID : string = ''; + selectedUserID: string = ''; addTask = input.required(); - get selectedUser(){ - return this.users.find(user => user.id === this.selectedUserID)!; + get selectedUser() { + return this.users.find((user) => user.id === this.selectedUserID)!; } - onSelected(id:string){ + onSelected(id: string) { this.selectedUserID = id; } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100644 index 0000000..a295e9a --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { AppComponent } from './app.component'; +import { HeaderComponent } from './header/header.component'; +import { UserComponent } from './user/user.component'; +import { SharedModule } from './shared/shared.module'; +import { TasksModule } from './tasks/tasks.module'; + +@NgModule({ + declarations: [AppComponent, HeaderComponent, UserComponent], + bootstrap: [AppComponent], + imports: [BrowserModule, SharedModule, TasksModule], +}) +export class AppModule {} diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html index 4bbb865..03224af 100644 --- a/src/app/header/header.component.html +++ b/src/app/header/header.component.html @@ -1,4 +1,5 @@
Logo

Easy Tasks

+

Enterprise-level task management without friction

diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts index f2f578b..ffc3163 100644 --- a/src/app/header/header.component.ts +++ b/src/app/header/header.component.ts @@ -2,11 +2,8 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-header', - standalone: true, - imports: [], + standalone: false, templateUrl: './header.component.html', - styleUrl: './header.component.css' + styleUrl: './header.component.css', }) -export class HeaderComponent { - -} +export class HeaderComponent {} diff --git a/src/app/shared/card/card.component.ts b/src/app/shared/card/card.component.ts index c771829..df511c2 100644 --- a/src/app/shared/card/card.component.ts +++ b/src/app/shared/card/card.component.ts @@ -2,11 +2,8 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-card', - imports: [], - standalone: true, + standalone: false, templateUrl: './card.component.html', - styleUrl: './card.component.css' + styleUrl: './card.component.css', }) -export class CardComponent { - -} +export class CardComponent {} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts new file mode 100644 index 0000000..7879b77 --- /dev/null +++ b/src/app/shared/shared.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from '@angular/core'; +import { CardComponent } from './card/card.component'; +CardComponent; +@NgModule({ + declarations: [CardComponent], + imports: [], + exports: [CardComponent], +}) +export class SharedModule {} diff --git a/src/app/tasks/new-task/new-task.component.ts b/src/app/tasks/new-task/new-task.component.ts index a78b050..c25fe7a 100644 --- a/src/app/tasks/new-task/new-task.component.ts +++ b/src/app/tasks/new-task/new-task.component.ts @@ -1,31 +1,32 @@ import { Component, Output, EventEmitter, Input } from '@angular/core'; -import { FormsModule } from '@angular/forms'; import { TasksService } from '../tasks.service'; import { inject } from '@angular/core'; -import { type NewTaskData } from '../task/task.model'; + @Component({ selector: 'app-new-task', - imports: [FormsModule], - standalone: true, + standalone: false, templateUrl: './new-task.component.html', - styleUrl: './new-task.component.css' + styleUrl: './new-task.component.css', }) export class NewTaskComponent { - @Input({required:true}) id!: string; - @Output() close = new EventEmitter(); - private tasksService = inject(TasksService); - enteredTitle = ''; - enteredSummary = ''; - enteredDueDate = ''; - onClose(){ - this.close.emit(); - } - onAddTask(){ - this.tasksService.addTask({ + @Input({ required: true }) id!: string; + @Output() close = new EventEmitter(); + private tasksService = inject(TasksService); + enteredTitle = ''; + enteredSummary = ''; + enteredDueDate = ''; + onClose() { + this.close.emit(); + } + onAddTask() { + this.tasksService.addTask( + { title: this.enteredTitle, summary: this.enteredSummary, - dueDate: this.enteredDueDate - }, this.id); - this.close.emit(); - } - } + dueDate: this.enteredDueDate, + }, + this.id + ); + this.close.emit(); + } +} diff --git a/src/app/tasks/task/task.component.ts b/src/app/tasks/task/task.component.ts index e8a22e3..fd3c0a0 100644 --- a/src/app/tasks/task/task.component.ts +++ b/src/app/tasks/task/task.component.ts @@ -1,21 +1,18 @@ import { Component, input, Output, output } from '@angular/core'; -import { DatePipe } from '@angular/common'; import { type Task } from './task.model'; -import { CardComponent } from "../../shared/card/card.component"; import { TasksService } from '../tasks.service'; import { inject } from '@angular/core'; @Component({ selector: 'app-task', - standalone: true, - imports: [CardComponent, DatePipe], + standalone: false, templateUrl: './task.component.html', - styleUrl: './task.component.css' + styleUrl: './task.component.css', }) export class TaskComponent { task = input.required(); private taskService = inject(TasksService); - onCompleteTask(){ - this.taskService.removeTask(this.task().id); + onCompleteTask() { + this.taskService.removeTask(this.task().id); } } diff --git a/src/app/tasks/tasks.component.ts b/src/app/tasks/tasks.component.ts index 43b10cd..b2c7a6a 100644 --- a/src/app/tasks/tasks.component.ts +++ b/src/app/tasks/tasks.component.ts @@ -1,30 +1,26 @@ import { Component, inject, input } from '@angular/core'; -import { TaskComponent } from "./task/task.component"; -import { NewTaskComponent } from './new-task/new-task.component'; -import { type NewTaskData} from './task/task.model'; import { TasksService } from './tasks.service'; @Component({ selector: 'app-tasks', - imports: [TaskComponent, NewTaskComponent], - standalone: true, + standalone: false, templateUrl: './tasks.component.html', - styleUrl: './tasks.component.css' + styleUrl: './tasks.component.css', }) export class TasksComponent { id = input.required(); name = input.required(); isAddTask = false; private tasksService = inject(TasksService); - get selectedUserTasks(){ + get selectedUserTasks() { return this.tasksService.getUserTasks(this.id()); } - onAddNewTask(){ - this.isAddTask = true; + onAddNewTask() { + this.isAddTask = true; } - onCloseAddTask(){ + onCloseAddTask() { this.isAddTask = false; } - onCompleteTask(id: string){ + onCompleteTask(id: string) { this.tasksService.removeTask(id); } // onAddTask(taskData:NewTaskData){ diff --git a/src/app/tasks/tasks.module.ts b/src/app/tasks/tasks.module.ts new file mode 100644 index 0000000..d3f5d51 --- /dev/null +++ b/src/app/tasks/tasks.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { TasksComponent } from './tasks.component'; +import { TaskComponent } from './task/task.component'; +import { NewTaskComponent } from './new-task/new-task.component'; +import { SharedModule } from '../shared/shared.module'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +@NgModule({ + declarations: [TasksComponent, TaskComponent, NewTaskComponent], + imports: [CommonModule, FormsModule, SharedModule], + exports: [TasksComponent], +}) +export class TasksModule {} diff --git a/src/app/user/user.component.ts b/src/app/user/user.component.ts index e55d021..03dbdf0 100644 --- a/src/app/user/user.component.ts +++ b/src/app/user/user.component.ts @@ -1,14 +1,11 @@ import { Component, computed, input, output } from '@angular/core'; import { User } from './user.model'; -import { CardComponent } from '../shared/card/card.component'; - @Component({ selector: 'app-user', - standalone: true, - imports: [CardComponent], + standalone: false, templateUrl: './user.component.html', - styleUrl: './user.component.css' + styleUrl: './user.component.css', }) export class UserComponent { // @Input() avatar!: string; @@ -19,7 +16,7 @@ export class UserComponent { imagePath = computed(() => `assets/users/${this.user().avatar}`); select = output(); selected = input.required(); - onClick(){ - this.select.emit(this.user().id); + onClick() { + this.select.emit(this.user().id); } } diff --git a/src/main.ts b/src/main.ts index 35b00f3..f22933b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,4 @@ -import { bootstrapApplication } from '@angular/platform-browser'; -import { appConfig } from './app/app.config'; -import { AppComponent } from './app/app.component'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { AppModule } from './app/app.module'; -bootstrapApplication(AppComponent, appConfig) - .catch((err) => console.error(err)); +platformBrowserDynamic().bootstrapModule(AppModule);