├── diagrams ├── .gitkeep ├── auth │ └── .gitkeep ├── cards │ └── .gitkeep ├── comps │ └── .gitkeep ├── news │ └── .gitkeep ├── phone │ └── .gitkeep ├── pipes │ └── .gitkeep ├── ts │ └── .gitkeep ├── wrx │ └── .gitkeep ├── creditcard │ └── .gitkeep ├── directives │ └── .gitkeep ├── modules │ └── .gitkeep ├── photos │ └── .gitkeep ├── typing │ └── .gitkeep └── wikisearch │ └── .gitkeep ├── pw ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ └── app.module.ts │ ├── favicon.ico │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── cards ├── src │ ├── assets │ │ ├── .gitkeep │ │ ├── tree.jpeg │ │ ├── biking.jpeg │ │ └── mountain.jpeg │ ├── app │ │ ├── card │ │ │ ├── card.component.css │ │ │ ├── card.component.ts │ │ │ ├── card.component.html │ │ │ └── card.component.spec.ts │ │ ├── app.component.css │ │ ├── app.component.html │ │ └── app.module.ts │ ├── favicon.ico │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── comps ├── src │ ├── assets │ │ ├── .gitkeep │ │ └── images │ │ │ ├── couch.jpeg │ │ │ └── dresser.jpeg │ ├── app │ │ ├── app.component.css │ │ ├── home │ │ │ ├── home.component.css │ │ │ ├── home.component.html │ │ │ ├── home.component.ts │ │ │ └── home.component.spec.ts │ │ ├── not-found │ │ │ ├── not-found.component.css │ │ │ ├── not-found.component.html │ │ │ └── not-found.component.ts │ │ ├── collections │ │ │ ├── table │ │ │ │ ├── table.component.css │ │ │ │ ├── table.component.html │ │ │ │ ├── table.component.ts │ │ │ │ └── table.component.spec.ts │ │ │ ├── tabs │ │ │ │ ├── tabs.component.css │ │ │ │ ├── tabs.component.ts │ │ │ │ ├── tabs.component.html │ │ │ │ └── tabs.component.spec.ts │ │ │ ├── partners │ │ │ │ ├── partners.component.css │ │ │ │ ├── partners.component.html │ │ │ │ └── partners.component.ts │ │ │ ├── biography │ │ │ │ ├── biography.component.css │ │ │ │ ├── biography.component.html │ │ │ │ └── biography.component.ts │ │ │ ├── companies │ │ │ │ ├── companies.component.css │ │ │ │ ├── companies.component.html │ │ │ │ └── companies.component.ts │ │ │ └── collections-home │ │ │ │ ├── collections-home.component.css │ │ │ │ └── collections-home.component.html │ │ ├── mods │ │ │ ├── accordion │ │ │ │ ├── accordion.component.css │ │ │ │ ├── accordion.component.html │ │ │ │ └── accordion.component.ts │ │ │ ├── mods-home │ │ │ │ ├── mods-home.component.css │ │ │ │ ├── mods-home.component.html │ │ │ │ └── mods-home.component.ts │ │ │ ├── modal │ │ │ │ ├── modal.component.css │ │ │ │ ├── modal.component.ts │ │ │ │ ├── modal.component.html │ │ │ │ └── modal.component.spec.ts │ │ │ ├── mods-routing.module.ts │ │ │ └── mods.module.ts │ │ ├── views │ │ │ ├── item-list │ │ │ │ ├── item-list.component.css │ │ │ │ ├── item-list.component.ts │ │ │ │ └── item-list.component.html │ │ │ ├── statistics │ │ │ │ ├── statistics.component.css │ │ │ │ ├── statistics.component.html │ │ │ │ └── statistics.component.ts │ │ │ ├── views-home │ │ │ │ ├── views-home.component.css │ │ │ │ └── views-home.component.html │ │ │ ├── views-routing.module.ts │ │ │ └── views.module.ts │ │ ├── elements │ │ │ ├── placeholder │ │ │ │ ├── placeholder.component.css │ │ │ │ ├── placeholder.component.html │ │ │ │ └── placeholder.component.ts │ │ │ ├── elements-home │ │ │ │ ├── elements-home.component.css │ │ │ │ ├── elements-home.component.ts │ │ │ │ └── elements-home.component.html │ │ │ ├── segment │ │ │ │ ├── segment.component.css │ │ │ │ ├── segment.component.html │ │ │ │ ├── segment.component.ts │ │ │ │ └── segment.component.spec.ts │ │ │ ├── times.directive.spec.ts │ │ │ ├── elements-routing.module.ts │ │ │ └── times.directive.ts │ │ ├── shared │ │ │ ├── divider │ │ │ │ ├── divider.component.css │ │ │ │ ├── divider.component.html │ │ │ │ ├── divider.component.ts │ │ │ │ └── divider.component.spec.ts │ │ │ └── shared.module.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ └── app.component.html │ ├── favicon.ico │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── landing ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── shared │ │ │ ├── paginator │ │ │ │ ├── paginator.component.css │ │ │ │ ├── paginator.component.html │ │ │ │ └── paginator.component.ts │ │ │ └── shared.module.ts │ │ ├── news-api │ │ │ ├── na-article-list │ │ │ │ ├── na-article-list.component.css │ │ │ │ ├── na-article-list.component.html │ │ │ │ └── na-article-list.component.ts │ │ │ ├── trim-outlet-name.pipe.spec.ts │ │ │ ├── trim-outlet-name.pipe.ts │ │ │ ├── news-api.service.spec.ts │ │ │ └── news-api.module.ts │ │ ├── notifications │ │ │ ├── notification-list │ │ │ │ ├── notification-list.component.css │ │ │ │ └── notification-list.component.html │ │ │ ├── notifications.module.ts │ │ │ └── notifications.service.spec.ts │ │ ├── app.component.ts │ │ ├── app.component.html │ │ ├── weather │ │ │ ├── forecast │ │ │ │ ├── forecast.component.html │ │ │ │ ├── forecast.component.css │ │ │ │ └── forecast.component.ts │ │ │ ├── weather.module.ts │ │ │ └── forecast.service.spec.ts │ │ └── app.module.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── mathform ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── math-validators.spec.ts │ │ ├── app.component.ts │ │ ├── equation │ │ │ ├── equation.component.html │ │ │ └── equation.component.css │ │ ├── answer-highlight.directive.spec.ts │ │ ├── math-validators.ts │ │ └── app.module.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── pages ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── class.directive.spec.ts │ │ ├── times.directive.spec.ts │ │ ├── app.module.ts │ │ ├── class.directive.ts │ │ └── times.directive.ts │ ├── favicon.ico │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── photos ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── photo-show │ │ │ ├── photo-show.component.css │ │ │ ├── photo-show.component.html │ │ │ └── photo-show.component.ts │ │ ├── app.component.ts │ │ ├── photos.service.spec.ts │ │ ├── app.module.ts │ │ └── photos.service.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── pipes ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── convert.pipe.spec.ts │ │ ├── app.module.ts │ │ └── convert.pipe.ts │ ├── favicon.ico │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── typing ├── src │ ├── assets │ │ └── .gitkeep │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── app │ │ ├── app.component.css │ │ ├── app.module.ts │ │ ├── app.component.ts │ │ └── app.component.html │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── wsearch ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── search-bar │ │ │ ├── search-bar.component.css │ │ │ ├── search-bar.component.html │ │ │ └── search-bar.component.ts │ │ ├── page-list │ │ │ ├── page-list.component.css │ │ │ ├── page-list.component.ts │ │ │ └── page-list.component.html │ │ ├── app.component.html │ │ ├── wikipedia.service.spec.ts │ │ ├── app.component.ts │ │ └── app.module.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── creditcard ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── card-form │ │ │ └── card-form.component.css │ │ ├── input │ │ │ ├── input.component.css │ │ │ ├── input.component.ts │ │ │ └── input.component.spec.ts │ │ ├── app.component.html │ │ ├── date-form-control.spec.ts │ │ ├── app.component.ts │ │ ├── card │ │ │ ├── card.component.ts │ │ │ └── card.component.spec.ts │ │ └── app.module.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── emailclient ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── inbox │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ ├── home.component.ts │ │ │ │ └── home.component.spec.ts │ │ │ ├── email-form │ │ │ │ ├── email-form.component.css │ │ │ │ └── email-form.component.html │ │ │ ├── email-reply │ │ │ │ ├── email-reply.component.css │ │ │ │ └── email-reply.component.html │ │ │ ├── not-found │ │ │ │ ├── not-found.component.css │ │ │ │ ├── not-found.component.html │ │ │ │ └── not-found.component.ts │ │ │ ├── placeholder │ │ │ │ ├── placeholder.component.css │ │ │ │ ├── placeholder.component.html │ │ │ │ └── placeholder.component.ts │ │ │ ├── email-create │ │ │ │ ├── email-create.component.css │ │ │ │ └── email-create.component.html │ │ │ ├── email-show │ │ │ │ ├── email-show.component.css │ │ │ │ ├── email-show.component.html │ │ │ │ └── email-show.component.ts │ │ │ ├── email.ts │ │ │ ├── email.service.spec.ts │ │ │ ├── email-index │ │ │ │ ├── email-index.component.html │ │ │ │ ├── email-index.component.css │ │ │ │ └── email-index.component.ts │ │ │ └── email-resolver.service.spec.ts │ │ ├── auth │ │ │ ├── signout │ │ │ │ ├── signout.component.css │ │ │ │ ├── signout.component.html │ │ │ │ └── signout.component.ts │ │ │ ├── signin │ │ │ │ ├── signin.component.css │ │ │ │ ├── signin.component.html │ │ │ │ └── signin.component.spec.ts │ │ │ ├── signup │ │ │ │ ├── signup.component.css │ │ │ │ └── signup.component.spec.ts │ │ │ ├── auth-validators.spec.ts │ │ │ ├── validators │ │ │ │ ├── match-password.spec.ts │ │ │ │ ├── unique-username.spec.ts │ │ │ │ └── match-password.ts │ │ │ ├── auth-http-interceptor.spec.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.guard.spec.ts │ │ │ ├── auth-routing.module.ts │ │ │ ├── auth.module.ts │ │ │ └── auth-http-interceptor.ts │ │ ├── shared │ │ │ ├── input │ │ │ │ ├── input.component.css │ │ │ │ ├── input.component.ts │ │ │ │ └── input.component.spec.ts │ │ │ ├── modal │ │ │ │ ├── modal.component.css │ │ │ │ ├── modal.component.html │ │ │ │ ├── modal.component.ts │ │ │ │ └── modal.component.spec.ts │ │ │ └── shared.module.ts │ │ ├── app-routing.module.ts │ │ ├── app.component.ts │ │ └── app.module.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── emailform ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.css │ │ ├── app.component.ts │ │ └── app.module.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── styles.css │ ├── index.html │ ├── main.ts │ └── test.ts ├── e2e │ ├── tsconfig.json │ └── src │ │ ├── app.po.ts │ │ └── app.e2e-spec.ts ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── browserslist └── tsconfig.json ├── .gitignore ├── README.md ├── ts ├── index.ts ├── Car.ts └── package.json └── di ├── index.js ├── package.json └── wikipedia-search.js /diagrams/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pw/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cards/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /diagrams/auth/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/cards/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/comps/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/news/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/phone/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/pipes/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/ts/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/wrx/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /landing/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mathform/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /photos/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pipes/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pw/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /typing/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wsearch/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /creditcard/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /diagrams/creditcard/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/directives/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/modules/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/photos/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/typing/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /diagrams/wikisearch/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /emailclient/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailform/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /landing/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /photos/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pipes/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wsearch/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/home/home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /creditcard/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailform/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mathform/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /comps/src/app/not-found/not-found.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/collections/table/table.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/collections/tabs/tabs.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/mods/accordion/accordion.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/mods/mods-home/mods-home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/views/item-list/item-list.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /creditcard/src/app/card-form/card-form.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/home/home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wsearch/src/app/search-bar/search-bar.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/collections/partners/partners.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/views/statistics/statistics.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/views/views-home/views-home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signout/signout.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /landing/src/app/shared/paginator/paginator.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wsearch/src/app/page-list/page-list.component.css: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Companion repo for a course hosted on udemy.com 2 | -------------------------------------------------------------------------------- /comps/src/app/collections/biography/biography.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/collections/companies/companies.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/elements/placeholder/placeholder.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-form/email-form.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-reply/email-reply.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/not-found/not-found.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/placeholder/placeholder.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/elements/elements-home/elements-home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /comps/src/app/collections/collections-home/collections-home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /landing/src/app/news-api/na-article-list/na-article-list.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mathform/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /photos/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cards/src/app/card/card.component.css: -------------------------------------------------------------------------------- 1 | .card { 2 | width: 350px; 3 | } 4 | -------------------------------------------------------------------------------- /comps/src/app/collections/biography/biography.component.html: -------------------------------------------------------------------------------- 1 |

biography works!

2 | -------------------------------------------------------------------------------- /comps/src/app/collections/companies/companies.component.html: -------------------------------------------------------------------------------- 1 |

companies works!

2 | -------------------------------------------------------------------------------- /comps/src/app/collections/partners/partners.component.html: -------------------------------------------------------------------------------- 1 |

partners works!

2 | -------------------------------------------------------------------------------- /comps/src/app/not-found/not-found.component.html: -------------------------------------------------------------------------------- 1 |

Oops....Page not found!

2 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signout/signout.component.html: -------------------------------------------------------------------------------- 1 |

Signing you out...

2 | -------------------------------------------------------------------------------- /photos/src/app/photo-show/photo-show.component.css: -------------------------------------------------------------------------------- 1 | img { 2 | width: 300px; 3 | } 4 | -------------------------------------------------------------------------------- /creditcard/src/app/input/input.component.css: -------------------------------------------------------------------------------- 1 | .field { 2 | margin-bottom: 0.75rem; 3 | } 4 | -------------------------------------------------------------------------------- /pw/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/pw/src/favicon.ico -------------------------------------------------------------------------------- /cards/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/cards/src/favicon.ico -------------------------------------------------------------------------------- /comps/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/comps/src/favicon.ico -------------------------------------------------------------------------------- /pages/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/pages/src/favicon.ico -------------------------------------------------------------------------------- /pipes/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/pipes/src/favicon.ico -------------------------------------------------------------------------------- /pw/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /cards/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /comps/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signin/signin.component.css: -------------------------------------------------------------------------------- 1 | .basic.label { 2 | margin-bottom: 0.25rem; 3 | } 4 | -------------------------------------------------------------------------------- /landing/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /landing/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/landing/src/favicon.ico -------------------------------------------------------------------------------- /mathform/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /mathform/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/mathform/src/favicon.ico -------------------------------------------------------------------------------- /mathform/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /pages/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /photos/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /photos/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/photos/src/favicon.ico -------------------------------------------------------------------------------- /photos/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /pipes/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /typing/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /typing/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/typing/src/favicon.ico -------------------------------------------------------------------------------- /wsearch/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /wsearch/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/wsearch/src/favicon.ico -------------------------------------------------------------------------------- /cards/src/assets/tree.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/cards/src/assets/tree.jpeg -------------------------------------------------------------------------------- /comps/src/app/elements/segment/segment.component.css: -------------------------------------------------------------------------------- 1 | div.ui.icon.header:empty { 2 | display: none; 3 | } 4 | -------------------------------------------------------------------------------- /creditcard/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /creditcard/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/creditcard/src/favicon.ico -------------------------------------------------------------------------------- /emailclient/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /emailform/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /emailform/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/emailform/src/favicon.ico -------------------------------------------------------------------------------- /cards/src/assets/biking.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/cards/src/assets/biking.jpeg -------------------------------------------------------------------------------- /creditcard/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/input/input.component.css: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | margin-bottom: 1em; 4 | } 5 | -------------------------------------------------------------------------------- /emailclient/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/emailclient/src/favicon.ico -------------------------------------------------------------------------------- /cards/src/assets/mountain.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/cards/src/assets/mountain.jpeg -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-create/email-create.component.css: -------------------------------------------------------------------------------- 1 | .ui.button.primary { 2 | margin-bottom: 1rem; 3 | } 4 | -------------------------------------------------------------------------------- /comps/src/assets/images/couch.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/comps/src/assets/images/couch.jpeg -------------------------------------------------------------------------------- /cards/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | justify-content: space-between; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /comps/src/assets/images/dresser.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StephenGrider/ng-casts/master/comps/src/assets/images/dresser.jpeg -------------------------------------------------------------------------------- /comps/src/app/shared/divider/divider.component.css: -------------------------------------------------------------------------------- 1 | :host:not(:first-of-type) { 2 | display: block; 3 | margin-top: 20px; 4 | } 5 | -------------------------------------------------------------------------------- /comps/src/app/shared/divider/divider.component.html: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |
5 | -------------------------------------------------------------------------------- /pw/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'bulma/css/bulma.css'; 3 | -------------------------------------------------------------------------------- /cards/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'bulma/css/bulma.css'; 3 | -------------------------------------------------------------------------------- /emailform/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'bulma/css/bulma.css'; 3 | -------------------------------------------------------------------------------- /typing/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import "bulma/css/bulma.css"; 3 | -------------------------------------------------------------------------------- /comps/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'semantic-ui-css/semantic.css'; 3 | -------------------------------------------------------------------------------- /creditcard/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import "bulma/css/bulma.css"; 3 | -------------------------------------------------------------------------------- /pages/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'bootstrap/dist/css/bootstrap.css'; 3 | -------------------------------------------------------------------------------- /pipes/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import "bootstrap/dist/css/bootstrap.css"; 3 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signup/signup.component.css: -------------------------------------------------------------------------------- 1 | .basic.label { 2 | margin-bottom: 0.5em; 3 | } 4 | 5 | button { 6 | margin-bottom: 0.5em; 7 | } 8 | -------------------------------------------------------------------------------- /emailclient/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'semantic-ui-css/semantic.css'; 3 | -------------------------------------------------------------------------------- /landing/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'bootstrap/dist/css/bootstrap.css'; 3 | -------------------------------------------------------------------------------- /comps/src/app/home/home.component.html: -------------------------------------------------------------------------------- 1 |

Component Demonstration

2 |

3 | This app will show how to use a couple of different components 4 |

5 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-show/email-show.component.css: -------------------------------------------------------------------------------- 1 | .header { 2 | display: flex; 3 | justify-content: space-between; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /ts/index.ts: -------------------------------------------------------------------------------- 1 | import { map } from 'lodash'; 2 | 3 | const strings = map([1, 2, 3], value => { 4 | return `Value is: ${value}`; 5 | }); 6 | 7 | console.log(strings); 8 | -------------------------------------------------------------------------------- /photos/src/app/photo-show/photo-show.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email.ts: -------------------------------------------------------------------------------- 1 | export interface Email { 2 | id: string; 3 | subject: string; 4 | text: string; 5 | to: string; 6 | from: string; 7 | html: string; 8 | } 9 | -------------------------------------------------------------------------------- /typing/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | .pending { 2 | color: gray; 3 | } 4 | 5 | .correct { 6 | color: green; 7 | } 8 | 9 | .incorrect { 10 | color: red; 11 | font-weight: bold; 12 | } 13 | -------------------------------------------------------------------------------- /wsearch/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | 3 | @import 'bulma/css/bulma.css'; 4 | 5 | .searchmatch { 6 | font-weight: bold; 7 | } 8 | -------------------------------------------------------------------------------- /landing/src/app/notifications/notification-list/notification-list.component.css: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | position: fixed; 4 | bottom: 0; 5 | right: 10px; 6 | width: 300px; 7 | z-index: 20; 8 | } 9 | -------------------------------------------------------------------------------- /wsearch/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/not-found/not-found.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | Email not found 5 |
6 |
7 | -------------------------------------------------------------------------------- /ts/Car.ts: -------------------------------------------------------------------------------- 1 | export class Car { 2 | year: number; 3 | 4 | drive(speed: number) { 5 | console.log(`Driving at ${speed}`); 6 | } 7 | } 8 | 9 | const myCar = new Car(); 10 | console.log(myCar.year); // number 11 | -------------------------------------------------------------------------------- /comps/src/app/mods/modal/modal.component.css: -------------------------------------------------------------------------------- 1 | .actions:empty { 2 | display: none; 3 | } 4 | 5 | .actions-default { 6 | display: none; 7 | } 8 | 9 | .actions:empty + .actions-default { 10 | display: block; 11 | } 12 | -------------------------------------------------------------------------------- /comps/src/app/elements/segment/segment.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 |
7 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/modal/modal.component.css: -------------------------------------------------------------------------------- 1 | .actions:empty { 2 | display: none; 3 | } 4 | 5 | .actions-default { 6 | display: none; 7 | } 8 | 9 | .actions:empty + .actions-default { 10 | display: block; 11 | } 12 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/placeholder/placeholder.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | Select an email to get started 5 |
6 |
7 | -------------------------------------------------------------------------------- /cards/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /mathform/src/app/math-validators.spec.ts: -------------------------------------------------------------------------------- 1 | import { MathValidators } from './math-validators'; 2 | 3 | describe('MathValidators', () => { 4 | it('should create an instance', () => { 5 | expect(new MathValidators()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /pipes/src/app/convert.pipe.spec.ts: -------------------------------------------------------------------------------- 1 | import { ConvertPipe } from './convert.pipe'; 2 | 3 | describe('ConvertPipe', () => { 4 | it('create an instance', () => { 5 | const pipe = new ConvertPipe(); 6 | expect(pipe).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth-validators.spec.ts: -------------------------------------------------------------------------------- 1 | import { AuthValidators } from './auth-validators'; 2 | 3 | describe('AuthValidators', () => { 4 | it('should create an instance', () => { 5 | expect(new AuthValidators()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /creditcard/src/app/date-form-control.spec.ts: -------------------------------------------------------------------------------- 1 | import { DateFormControl } from './date-form-control'; 2 | 3 | describe('DateFormControl', () => { 4 | it('should create an instance', () => { 5 | expect(new DateFormControl()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /comps/src/app/views/views-home/views-home.component.html: -------------------------------------------------------------------------------- 1 | Statistics Component 2 | 3 | 4 | Item List Component 5 | 6 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/validators/match-password.spec.ts: -------------------------------------------------------------------------------- 1 | import { MatchPassword } from './match-password'; 2 | 3 | describe('MatchPassword', () => { 4 | it('should create an instance', () => { 5 | expect(new MatchPassword()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/validators/unique-username.spec.ts: -------------------------------------------------------------------------------- 1 | import { UniqueUsername } from './unique-username'; 2 | 3 | describe('UniqueUsername', () => { 4 | it('should create an instance', () => { 5 | expect(new UniqueUsername()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /comps/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'comps'; 10 | } 11 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth-http-interceptor.spec.ts: -------------------------------------------------------------------------------- 1 | import { AuthHttpInterceptor } from './auth-http-interceptor'; 2 | 3 | describe('AuthHttpInterceptor', () => { 4 | it('should create an instance', () => { 5 | expect(new AuthHttpInterceptor()).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /pages/src/app/class.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { ClassDirective } from './class.directive'; 2 | 3 | describe('ClassDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new ClassDirective(); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /pages/src/app/times.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { TimesDirective } from './times.directive'; 2 | 3 | describe('TimesDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new TimesDirective(); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /photos/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'photos'; 10 | } 11 | -------------------------------------------------------------------------------- /wsearch/src/app/search-bar/search-bar.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /comps/src/app/elements/times.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { TimesDirective } from './times.directive'; 2 | 3 | describe('TimesDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new TimesDirective(); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /landing/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'landing'; 10 | } 11 | -------------------------------------------------------------------------------- /mathform/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'mathform'; 10 | } 11 | -------------------------------------------------------------------------------- /mathform/src/app/equation/equation.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{ a }} + {{ b }} =
3 | 4 |
5 | 6 |
7 | {{ secondsPerSolution | number: '1.1-3' }} 8 |
9 | -------------------------------------------------------------------------------- /cards/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /comps/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /creditcard/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'creditcard'; 10 | } 11 | -------------------------------------------------------------------------------- /pages/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /pipes/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /pw/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /creditcard/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /emailform/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /landing/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /landing/src/app/news-api/trim-outlet-name.pipe.spec.ts: -------------------------------------------------------------------------------- 1 | import { TrimOutletNamePipe } from './trim-outlet-name.pipe'; 2 | 3 | describe('TrimOutletNamePipe', () => { 4 | it('create an instance', () => { 5 | const pipe = new TrimOutletNamePipe(); 6 | expect(pipe).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /mathform/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /photos/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /typing/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wsearch/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /emailclient/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /landing/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 |
7 | 8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /comps/src/app/views/statistics/statistics.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | {{ stat.value }} 5 |
6 |
7 | {{ stat.label }} 8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /comps/src/app/elements/placeholder/placeholder.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /di/index.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | const WikipediaSearch = require('./wikipedia-search'); 3 | 4 | const run = async () => { 5 | const wikiSearch = new WikipediaSearch(axios.create({})); 6 | 7 | const results = await wikiSearch.search('space'); 8 | 9 | console.log(results); 10 | }; 11 | 12 | run(); 13 | -------------------------------------------------------------------------------- /pw/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /cards/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /comps/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/home/home.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
6 |
7 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /landing/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /pages/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /photos/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /pipes/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /typing/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /wsearch/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /creditcard/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /emailclient/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /emailform/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /landing/src/app/shared/paginator/paginator.component.html: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /mathform/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mathform/src/app/answer-highlight.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { AnswerHighlightDirective } from './answer-highlight.directive'; 2 | 3 | describe('AnswerHighlightDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new AnswerHighlightDirective(); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /pw/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /cards/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /comps/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /landing/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /pages/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /photos/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /pipes/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /typing/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /wsearch/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /creditcard/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /emailclient/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /emailform/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /landing/src/app/news-api/trim-outlet-name.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'trimOutletName' 5 | }) 6 | export class TrimOutletNamePipe implements PipeTransform { 7 | transform(title: string, outletName: string): any { 8 | return title.replace(` - ${outletName}`, ''); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /landing/src/app/weather/forecast/forecast.component.html: -------------------------------------------------------------------------------- 1 |
    2 |
  • 6 |

    {{ forecast.temp | number: '1.0-0' }}°C

    7 |

    {{ forecast.dateString | date: 'E' }}

    8 |
  • 9 |
10 | -------------------------------------------------------------------------------- /mathform/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | quote_type = single 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /emailform/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | email: string = ''; 10 | 11 | onSubmit() { 12 | console.log(this.email); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /comps/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | export class HomeComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /pw/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pw 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /comps/src/app/shared/divider/divider.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-divider', 5 | templateUrl: './divider.component.html', 6 | styleUrls: ['./divider.component.css'] 7 | }) 8 | export class DividerComponent implements OnInit { 9 | constructor() {} 10 | 11 | ngOnInit() {} 12 | } 13 | -------------------------------------------------------------------------------- /comps/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Comps 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /landing/src/app/notifications/notification-list/notification-list.component.html: -------------------------------------------------------------------------------- 1 |
6 | {{ message.text }} 7 | 10 |
11 | -------------------------------------------------------------------------------- /pages/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pages 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /pipes/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pipes 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /comps/src/app/shared/shared.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { DividerComponent } from './divider/divider.component'; 4 | 5 | @NgModule({ 6 | declarations: [DividerComponent], 7 | imports: [CommonModule], 8 | exports: [DividerComponent] 9 | }) 10 | export class SharedModule {} 11 | -------------------------------------------------------------------------------- /di/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "di", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "axios": "^0.19.0", 14 | "mocha": "^6.2.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /landing/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Landing 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /mathform/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mathform 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /photos/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Photos 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /pw/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /pw/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /typing/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Typing 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /wsearch/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Wsearch 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /cards/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /cards/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /comps/src/app/collections/tabs/tabs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-tabs', 5 | templateUrl: './tabs.component.html', 6 | styleUrls: ['./tabs.component.css'] 7 | }) 8 | export class TabsComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /comps/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /comps/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /creditcard/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Creditcard 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-reply/email-reply.component.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 |
Reply
7 | 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | export class HomeComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /emailform/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Emailform 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /emailform/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /landing/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /landing/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /mathform/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /mathform/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /pages/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /pages/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /photos/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /photos/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /pipes/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /pipes/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /typing/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | 4 | import { AppComponent } from './app.component'; 5 | 6 | @NgModule({ 7 | declarations: [AppComponent], 8 | imports: [BrowserModule], 9 | providers: [], 10 | bootstrap: [AppComponent] 11 | }) 12 | export class AppModule {} 13 | -------------------------------------------------------------------------------- /typing/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /typing/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /wsearch/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /wsearch/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /creditcard/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /creditcard/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /emailclient/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Emailclient 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /emailclient/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /emailclient/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /emailform/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /landing/src/app/shared/shared.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { PaginatorComponent } from './paginator/paginator.component'; 4 | 5 | @NgModule({ 6 | declarations: [PaginatorComponent], 7 | imports: [CommonModule], 8 | exports: [PaginatorComponent] 9 | }) 10 | export class SharedModule {} 11 | -------------------------------------------------------------------------------- /landing/src/app/weather/weather.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { ForecastComponent } from './forecast/forecast.component'; 4 | 5 | @NgModule({ 6 | declarations: [ForecastComponent], 7 | imports: [CommonModule], 8 | exports: [ForecastComponent] 9 | }) 10 | export class WeatherModule {} 11 | -------------------------------------------------------------------------------- /di/wikipedia-search.js: -------------------------------------------------------------------------------- 1 | module.exports = class WikipediaSearch { 2 | constructor(axios) { 3 | this.axios = axios; 4 | } 5 | 6 | async search(term) { 7 | const res = await this.axios.get( 8 | `https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&utf8=1&srsearch=${term}` 9 | ); 10 | 11 | return res.data.query.search; 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /comps/src/app/elements/segment/segment.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-segment', 5 | templateUrl: './segment.component.html', 6 | styleUrls: ['./segment.component.css'] 7 | }) 8 | export class SegmentComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /comps/src/app/not-found/not-found.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-not-found', 5 | templateUrl: './not-found.component.html', 6 | styleUrls: ['./not-found.component.css'] 7 | }) 8 | export class NotFoundComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-create/email-create.component.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 |
Compose
7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /cards/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Cards 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /comps/src/app/collections/tabs/tabs.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 6 |
7 |
8 |
9 | 10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /landing/src/app/weather/forecast/forecast.component.css: -------------------------------------------------------------------------------- 1 | :host { 2 | position: fixed; 3 | left: 0; 4 | height: 100%; 5 | flex-direction: column; 6 | justify-content: center; 7 | display: flex; 8 | } 9 | 10 | .temp, 11 | .day { 12 | margin: 0; 13 | text-align: center; 14 | } 15 | 16 | .temp { 17 | font-weight: bold; 18 | } 19 | 20 | .day { 21 | font-style: italic; 22 | } 23 | -------------------------------------------------------------------------------- /comps/src/app/collections/partners/partners.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-partners', 5 | templateUrl: './partners.component.html', 6 | styleUrls: ['./partners.component.css'] 7 | }) 8 | export class PartnersComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /comps/src/app/collections/biography/biography.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-biography', 5 | templateUrl: './biography.component.html', 6 | styleUrls: ['./biography.component.css'] 7 | }) 8 | export class BiographyComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /comps/src/app/collections/companies/companies.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-companies', 5 | templateUrl: './companies.component.html', 6 | styleUrls: ['./companies.component.css'] 7 | }) 8 | export class CompaniesComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/not-found/not-found.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-not-found', 5 | templateUrl: './not-found.component.html', 6 | styleUrls: ['./not-found.component.css'] 7 | }) 8 | export class NotFoundComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /pw/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | 4 | import { AppComponent } from './app.component'; 5 | 6 | @NgModule({ 7 | declarations: [ 8 | AppComponent 9 | ], 10 | imports: [ 11 | BrowserModule 12 | ], 13 | providers: [], 14 | bootstrap: [AppComponent] 15 | }) 16 | export class AppModule { } 17 | -------------------------------------------------------------------------------- /comps/src/app/views/item-list/item-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-item-list', 5 | templateUrl: './item-list.component.html', 6 | styleUrls: ['./item-list.component.css'] 7 | }) 8 | export class ItemListComponent implements OnInit { 9 | @Input() items = []; 10 | 11 | constructor() {} 12 | 13 | ngOnInit() {} 14 | } 15 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/placeholder/placeholder.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-placeholder', 5 | templateUrl: './placeholder.component.html', 6 | styleUrls: ['./placeholder.component.css'] 7 | }) 8 | export class PlaceholderComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /wsearch/src/app/page-list/page-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-page-list', 5 | templateUrl: './page-list.component.html', 6 | styleUrls: ['./page-list.component.css'] 7 | }) 8 | export class PageListComponent implements OnInit { 9 | @Input() pages = []; 10 | 11 | constructor() {} 12 | 13 | ngOnInit() {} 14 | } 15 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { AuthService } from './auth.service'; 4 | 5 | describe('AuthService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: AuthService = TestBed.get(AuthService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /photos/src/app/photos.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { PhotosService } from './photos.service'; 4 | 5 | describe('PhotosService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: PhotosService = TestBed.get(PhotosService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /comps/src/app/elements/elements-home/elements-home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-elements-home', 5 | templateUrl: './elements-home.component.html', 6 | styleUrls: ['./elements-home.component.css'] 7 | }) 8 | export class ElementsHomeComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /comps/src/app/views/statistics/statistics.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-statistics', 5 | templateUrl: './statistics.component.html', 6 | styleUrls: ['./statistics.component.css'] 7 | }) 8 | export class StatisticsComponent implements OnInit { 9 | @Input() data = []; 10 | 11 | constructor() {} 12 | 13 | ngOnInit() {} 14 | } 15 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { EmailService } from './email.service'; 4 | 5 | describe('EmailService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: EmailService = TestBed.get(EmailService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /pw/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /cards/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /comps/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /emailform/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { FormsModule } from '@angular/forms'; 4 | 5 | import { AppComponent } from './app.component'; 6 | 7 | @NgModule({ 8 | declarations: [AppComponent], 9 | imports: [BrowserModule, FormsModule], 10 | providers: [], 11 | bootstrap: [AppComponent] 12 | }) 13 | export class AppModule {} 14 | -------------------------------------------------------------------------------- /landing/src/app/news-api/na-article-list/na-article-list.component.html: -------------------------------------------------------------------------------- 1 |

World News

2 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /landing/src/app/news-api/news-api.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { NewsApiService } from './news-api.service'; 4 | 5 | describe('NewsApiService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: NewsApiService = TestBed.get(NewsApiService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /landing/src/app/notifications/notifications.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { NotificationListComponent } from './notification-list/notification-list.component'; 4 | 5 | @NgModule({ 6 | declarations: [NotificationListComponent], 7 | imports: [CommonModule], 8 | exports: [NotificationListComponent] 9 | }) 10 | export class NotificationsModule {} 11 | -------------------------------------------------------------------------------- /landing/src/app/weather/forecast.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { ForecastService } from './forecast.service'; 4 | 5 | describe('ForecastService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: ForecastService = TestBed.get(ForecastService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /landing/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /mathform/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /pages/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /photos/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /pipes/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | 4 | import { AppComponent } from './app.component'; 5 | import { ConvertPipe } from './convert.pipe'; 6 | 7 | @NgModule({ 8 | declarations: [AppComponent, ConvertPipe], 9 | imports: [BrowserModule], 10 | providers: [], 11 | bootstrap: [AppComponent] 12 | }) 13 | export class AppModule {} 14 | -------------------------------------------------------------------------------- /pipes/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /typing/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /wsearch/src/app/wikipedia.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { WikipediaService } from './wikipedia.service'; 4 | 5 | describe('WikipediaService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: WikipediaService = TestBed.get(WikipediaService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /wsearch/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /comps/src/app/mods/mods-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | import { ModsHomeComponent } from './mods-home/mods-home.component'; 4 | 5 | const routes: Routes = [{ path: '', component: ModsHomeComponent }]; 6 | 7 | @NgModule({ 8 | imports: [RouterModule.forChild(routes)], 9 | exports: [RouterModule] 10 | }) 11 | export class ModsRoutingModule {} 12 | -------------------------------------------------------------------------------- /creditcard/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /emailclient/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /emailform/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /cards/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from "@angular/platform-browser"; 2 | import { NgModule } from "@angular/core"; 3 | 4 | import { AppComponent } from "./app.component"; 5 | import { CardComponent } from './card/card.component'; 6 | 7 | @NgModule({ 8 | declarations: [AppComponent, CardComponent], 9 | imports: [BrowserModule], 10 | providers: [], 11 | bootstrap: [AppComponent] 12 | }) 13 | export class AppModule {} 14 | -------------------------------------------------------------------------------- /comps/src/app/collections/table/table.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 |
5 | {{ header.label }} 6 |
12 | {{ record[header.key] }} 13 |
17 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth.guard.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed, async, inject } from '@angular/core/testing'; 2 | 3 | import { AuthGuard } from './auth.guard'; 4 | 5 | describe('AuthGuard', () => { 6 | beforeEach(() => { 7 | TestBed.configureTestingModule({ 8 | providers: [AuthGuard] 9 | }); 10 | }); 11 | 12 | it('should ...', inject([AuthGuard], (guard: AuthGuard) => { 13 | expect(guard).toBeTruthy(); 14 | })); 15 | }); 16 | -------------------------------------------------------------------------------- /creditcard/src/app/card/card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-card', 5 | templateUrl: './card.component.html', 6 | styleUrls: ['./card.component.css'] 7 | }) 8 | export class CardComponent implements OnInit { 9 | @Input() cardNumber: string; 10 | @Input() name: string; 11 | @Input() expiration: string; 12 | 13 | constructor() {} 14 | 15 | ngOnInit() {} 16 | } 17 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-show/email-show.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{ email.subject }}

4 |
5 | From: {{ email.from }} 6 |
7 |
8 | To: {{ email.to }} 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ts", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "ts-node-dev --no-notify --respawn index.ts" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "@types/lodash": "^4.14.149", 14 | "lodash": "^4.17.15", 15 | "ts-node-dev": "^1.0.0-pre.44", 16 | "typescript": "^3.7.3" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /comps/src/app/elements/placeholder/placeholder.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-placeholder', 5 | templateUrl: './placeholder.component.html', 6 | styleUrls: ['./placeholder.component.css'] 7 | }) 8 | export class PlaceholderComponent implements OnInit { 9 | @Input() header = true; 10 | @Input() lines = 3; 11 | 12 | constructor() {} 13 | 14 | ngOnInit() {} 15 | } 16 | -------------------------------------------------------------------------------- /comps/src/app/views/item-list/item-list.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 |
7 |
{{ item.title }}
8 |
9 |

10 | {{ item.description }} 11 |

12 |
13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /comps/src/app/elements/elements-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | import { ElementsHomeComponent } from './elements-home/elements-home.component'; 4 | 5 | const routes: Routes = [{ path: '', component: ElementsHomeComponent }]; 6 | 7 | @NgModule({ 8 | imports: [RouterModule.forChild(routes)], 9 | exports: [RouterModule] 10 | }) 11 | export class ElementsRoutingModule {} 12 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-index/email-index.component.html: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /cards/src/app/card/card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-card', 5 | templateUrl: './card.component.html', 6 | styleUrls: ['./card.component.css'] 7 | }) 8 | export class CardComponent implements OnInit { 9 | @Input() title = ''; 10 | @Input() imageUrl = ''; 11 | @Input() content = ''; 12 | @Input() username = ''; 13 | 14 | constructor() {} 15 | 16 | ngOnInit() {} 17 | } 18 | -------------------------------------------------------------------------------- /comps/src/app/collections/table/table.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-table', 5 | templateUrl: './table.component.html', 6 | styleUrls: ['./table.component.css'] 7 | }) 8 | export class TableComponent implements OnInit { 9 | @Input('class') classNames = ''; 10 | 11 | @Input() data = []; 12 | @Input() headers = []; 13 | 14 | constructor() {} 15 | 16 | ngOnInit() {} 17 | } 18 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-resolver.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { EmailResolverService } from './email-resolver.service'; 4 | 5 | describe('EmailResolverService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: EmailResolverService = TestBed.get(EmailResolverService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /landing/src/app/notifications/notifications.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { NotificationsService } from './notifications.service'; 4 | 5 | describe('NotificationsService', () => { 6 | beforeEach(() => TestBed.configureTestingModule({})); 7 | 8 | it('should be created', () => { 9 | const service: NotificationsService = TestBed.get(NotificationsService); 10 | expect(service).toBeTruthy(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /cards/src/app/card/card.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 |
7 |
8 |
9 |

{{ title }}

10 |

@{{ username }}

11 |
12 |
13 | {{ content }} 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /cards/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /comps/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /comps/src/app/elements/elements-home/elements-home.component.html: -------------------------------------------------------------------------------- 1 | 2 | Placeholder Component 3 | 4 | 5 | 6 | 7 | Segment Component 8 | 9 | 10 |
11 | 12 | No documents are listed for this customer. 13 |
14 | 15 | 18 |
19 | -------------------------------------------------------------------------------- /comps/src/app/views/views-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | import { ViewsHomeComponent } from './views-home/views-home.component'; 4 | 5 | const routes: Routes = [ 6 | { 7 | path: '', 8 | component: ViewsHomeComponent 9 | } 10 | ]; 11 | 12 | @NgModule({ 13 | imports: [RouterModule.forChild(routes)], 14 | exports: [RouterModule] 15 | }) 16 | export class ViewsRoutingModule {} 17 | -------------------------------------------------------------------------------- /pages/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /pipes/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /pw/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /creditcard/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /emailform/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /landing/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /mathform/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /photos/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /typing/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /wsearch/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /emailclient/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-index/email-index.component.css: -------------------------------------------------------------------------------- 1 | .item a { 2 | color: black; 3 | } 4 | 5 | a.active { 6 | display: flex; 7 | justify-content: flex-start; 8 | align-items: center; 9 | } 10 | 11 | a.active:before { 12 | content: '>'; 13 | font-size: 20px; 14 | margin-right: 10px; 15 | } 16 | 17 | .content { 18 | width: 90%; 19 | } 20 | 21 | .trim { 22 | overflow: hidden; 23 | white-space: nowrap; 24 | text-overflow: ellipsis; 25 | width: 100%; 26 | } 27 | -------------------------------------------------------------------------------- /pages/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | 4 | import { AppComponent } from './app.component'; 5 | import { ClassDirective } from './class.directive'; 6 | import { TimesDirective } from './times.directive'; 7 | 8 | @NgModule({ 9 | declarations: [AppComponent, ClassDirective, TimesDirective], 10 | imports: [BrowserModule], 11 | providers: [], 12 | bootstrap: [AppComponent] 13 | }) 14 | export class AppModule {} 15 | -------------------------------------------------------------------------------- /comps/src/app/mods/accordion/accordion.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
8 | 9 | {{ item.title }} 10 |
11 |
12 |

{{ item.content }}

13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/validators/match-password.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Validator, FormGroup } from '@angular/forms'; 3 | 4 | @Injectable({ providedIn: 'root' }) 5 | export class MatchPassword implements Validator { 6 | validate(formGroup: FormGroup) { 7 | const { password, passwordConfirmation } = formGroup.value; 8 | 9 | if (password === passwordConfirmation) { 10 | return null; 11 | } else { 12 | return { passwordsDontMatch: true }; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/shared.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { ReactiveFormsModule } from '@angular/forms'; 4 | import { InputComponent } from './input/input.component'; 5 | import { ModalComponent } from './modal/modal.component'; 6 | 7 | @NgModule({ 8 | declarations: [InputComponent, ModalComponent], 9 | imports: [CommonModule, ReactiveFormsModule], 10 | exports: [InputComponent, ModalComponent] 11 | }) 12 | export class SharedModule {} 13 | -------------------------------------------------------------------------------- /photos/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { HttpClientModule } from '@angular/common/http'; 4 | 5 | import { AppComponent } from './app.component'; 6 | import { PhotoShowComponent } from './photo-show/photo-show.component'; 7 | 8 | @NgModule({ 9 | declarations: [AppComponent, PhotoShowComponent], 10 | imports: [BrowserModule, HttpClientModule], 11 | providers: [], 12 | bootstrap: [AppComponent] 13 | }) 14 | export class AppModule {} 15 | -------------------------------------------------------------------------------- /wsearch/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { WikipediaService } from './wikipedia.service'; 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | templateUrl: './app.component.html', 7 | styleUrls: ['./app.component.css'] 8 | }) 9 | export class AppComponent { 10 | pages = []; 11 | 12 | constructor(private wikipedia: WikipediaService) {} 13 | 14 | onTerm(term: string) { 15 | this.wikipedia.search(term).subscribe(pages => { 16 | this.pages = pages; 17 | }); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /pages/src/app/class.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, ElementRef, Input } from '@angular/core'; 2 | 3 | @Directive({ 4 | selector: '[appClass]' 5 | }) 6 | export class ClassDirective { 7 | constructor(private element: ElementRef) {} 8 | 9 | @Input('appClass') set classNames(classObj: any) { 10 | for (let key in classObj) { 11 | if (classObj[key]) { 12 | this.element.nativeElement.classList.add(key); 13 | } else { 14 | this.element.nativeElement.classList.remove(key); 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /emailclient/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | 4 | import { AuthGuard } from './auth/auth.guard'; 5 | 6 | const routes: Routes = [ 7 | { 8 | path: 'inbox', 9 | canLoad: [AuthGuard], 10 | loadChildren: () => 11 | import('./inbox/inbox.module').then(mod => mod.InboxModule) 12 | } 13 | ]; 14 | 15 | @NgModule({ 16 | imports: [RouterModule.forRoot(routes)], 17 | exports: [RouterModule] 18 | }) 19 | export class AppRoutingModule {} 20 | -------------------------------------------------------------------------------- /landing/src/app/news-api/news-api.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { NaArticleListComponent } from './na-article-list/na-article-list.component'; 4 | import { TrimOutletNamePipe } from './trim-outlet-name.pipe'; 5 | import { SharedModule } from '../shared/shared.module'; 6 | 7 | @NgModule({ 8 | declarations: [NaArticleListComponent, TrimOutletNamePipe], 9 | imports: [CommonModule, SharedModule], 10 | exports: [NaArticleListComponent] 11 | }) 12 | export class NewsApiModule {} 13 | -------------------------------------------------------------------------------- /comps/src/app/mods/mods-home/mods-home.component.html: -------------------------------------------------------------------------------- 1 | Modal Component 2 | 3 | 4 |
I am a REUSABLE TITLE
5 |

6 | I am a REUSABLE modal window!!! 7 |

8 | 9 | 10 | 11 |
12 | 13 | Accordion Component 14 | 15 | -------------------------------------------------------------------------------- /mathform/src/app/math-validators.ts: -------------------------------------------------------------------------------- 1 | import { AbstractControl } from '@angular/forms'; 2 | 3 | export class MathValidators { 4 | static addition(target: string, sourceOne: string, sourceTwo: string) { 5 | return (form: AbstractControl) => { 6 | const sum = form.value[target]; 7 | const firstNumber = form.value[sourceOne]; 8 | const secondNumber = form.value[sourceTwo]; 9 | 10 | if (firstNumber + secondNumber === parseInt(sum)) { 11 | return null; 12 | } 13 | 14 | return { addition: true }; 15 | }; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /comps/src/app/elements/times.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, TemplateRef, ViewContainerRef, Input } from '@angular/core'; 2 | 3 | @Directive({ 4 | selector: '[appTimes]' 5 | }) 6 | export class TimesDirective { 7 | constructor( 8 | private viewContainer: ViewContainerRef, 9 | private templateRef: TemplateRef 10 | ) {} 11 | 12 | @Input('appTimes') set render(times: number) { 13 | this.viewContainer.clear(); 14 | 15 | for (let i = 0; i < times; i++) { 16 | this.viewContainer.createEmbeddedView(this.templateRef, {}); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /mathform/src/app/equation/equation.component.css: -------------------------------------------------------------------------------- 1 | form { 2 | margin-top: 20%; 3 | display: flex; 4 | justify-content: center; 5 | font-size: 96px; 6 | } 7 | 8 | input { 9 | font-size: 96px; 10 | border: none; 11 | border-bottom: 1px solid black; 12 | width: 20%; 13 | text-align: center; 14 | } 15 | 16 | input:focus { 17 | outline: none; 18 | } 19 | 20 | .stats { 21 | position: absolute; 22 | bottom: 100px; 23 | left: 0; 24 | right: 0; 25 | text-align: center; 26 | font-size: 24px; 27 | } 28 | 29 | .close { 30 | background-color: rgba(60, 235, 60, 0.3); 31 | } 32 | -------------------------------------------------------------------------------- /wsearch/src/app/search-bar/search-bar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, EventEmitter, Output } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-search-bar', 5 | templateUrl: './search-bar.component.html', 6 | styleUrls: ['./search-bar.component.css'] 7 | }) 8 | export class SearchBarComponent implements OnInit { 9 | @Output() submitted = new EventEmitter(); 10 | term = ''; 11 | 12 | constructor() {} 13 | 14 | ngOnInit() {} 15 | 16 | onFormSubmit(event: any) { 17 | event.preventDefault(); 18 | this.submitted.emit(this.term); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /pages/src/app/times.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, TemplateRef, ViewContainerRef, Input } from '@angular/core'; 2 | 3 | @Directive({ 4 | selector: '[appTimes]' 5 | }) 6 | export class TimesDirective { 7 | constructor( 8 | private viewContainer: ViewContainerRef, 9 | private templateRef: TemplateRef 10 | ) {} 11 | 12 | @Input('appTimes') set render(times: number) { 13 | this.viewContainer.clear(); 14 | 15 | for (let i = 0; i < times; i++) { 16 | this.viewContainer.createEmbeddedView(this.templateRef, { 17 | index: i 18 | }); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /comps/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | 4 | import { AppRoutingModule } from './app-routing.module'; 5 | import { AppComponent } from './app.component'; 6 | import { HomeComponent } from './home/home.component'; 7 | import { NotFoundComponent } from './not-found/not-found.component'; 8 | 9 | @NgModule({ 10 | declarations: [AppComponent, HomeComponent, NotFoundComponent], 11 | imports: [BrowserModule, AppRoutingModule], 12 | providers: [], 13 | bootstrap: [AppComponent] 14 | }) 15 | export class AppModule {} 16 | -------------------------------------------------------------------------------- /creditcard/src/app/input/input.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | import { FormControl } from '@angular/forms'; 3 | 4 | @Component({ 5 | selector: 'app-input', 6 | templateUrl: './input.component.html', 7 | styleUrls: ['./input.component.css'] 8 | }) 9 | export class InputComponent implements OnInit { 10 | @Input() control: FormControl; 11 | @Input() label: string; 12 | 13 | constructor() {} 14 | 15 | ngOnInit() {} 16 | 17 | showErrors() { 18 | const { dirty, touched, errors } = this.control; 19 | return dirty && touched && errors; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-index/email-index.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { EmailService } from '../email.service'; 3 | 4 | @Component({ 5 | selector: 'app-email-index', 6 | templateUrl: './email-index.component.html', 7 | styleUrls: ['./email-index.component.css'] 8 | }) 9 | export class EmailIndexComponent implements OnInit { 10 | emails = []; 11 | 12 | constructor(private emailService: EmailService) {} 13 | 14 | ngOnInit() { 15 | this.emailService.getEmails().subscribe(emails => { 16 | this.emails = emails; 17 | }); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /wsearch/src/app/page-list/page-list.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 19 | 20 | 21 | 22 | 23 |
TitleWord CountSnippet
12 | 16 | {{ page.title }} 17 | 18 | {{ page.wordcount }}
24 | -------------------------------------------------------------------------------- /pipes/src/app/convert.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'convert' 5 | }) 6 | export class ConvertPipe implements PipeTransform { 7 | transform(value: any, targetUnits: string): any { 8 | if (!value) { 9 | return ''; 10 | } 11 | 12 | switch (targetUnits) { 13 | case 'km': 14 | return value * 1.60934; 15 | case 'm': 16 | return value * 1.60934 * 1000; 17 | case 'cm': 18 | return value * 1.60934 * 1000 * 1000; 19 | default: 20 | throw new Error('Target unit not supported'); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /comps/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 | 16 |
17 | 18 |
19 |
20 | -------------------------------------------------------------------------------- /comps/src/app/collections/collections-home/collections-home.component.html: -------------------------------------------------------------------------------- 1 | Table Component 2 | 3 | 4 | Tab Menu 5 | 6 | Biography 13 | Companies 16 | Partners 17 | 18 | -------------------------------------------------------------------------------- /comps/src/app/mods/accordion/accordion.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-accordion', 5 | templateUrl: './accordion.component.html', 6 | styleUrls: ['./accordion.component.css'] 7 | }) 8 | export class AccordionComponent implements OnInit { 9 | @Input() items = []; 10 | openedItemIndex = 0; 11 | 12 | constructor() {} 13 | 14 | ngOnInit() {} 15 | 16 | onClick(index: number) { 17 | if (index === this.openedItemIndex) { 18 | this.openedItemIndex = -1; 19 | } else { 20 | this.openedItemIndex = index; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signout/signout.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { Router } from '@angular/router'; 3 | import { AuthService } from '../auth.service'; 4 | 5 | @Component({ 6 | selector: 'app-signout', 7 | templateUrl: './signout.component.html', 8 | styleUrls: ['./signout.component.css'] 9 | }) 10 | export class SignoutComponent implements OnInit { 11 | constructor(private authService: AuthService, private router: Router) {} 12 | 13 | ngOnInit() { 14 | this.authService.signout().subscribe(() => { 15 | this.router.navigateByUrl('/'); 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /wsearch/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { HttpClientModule } from '@angular/common/http'; 4 | 5 | import { AppComponent } from './app.component'; 6 | import { SearchBarComponent } from './search-bar/search-bar.component'; 7 | import { PageListComponent } from './page-list/page-list.component'; 8 | 9 | @NgModule({ 10 | declarations: [AppComponent, SearchBarComponent, PageListComponent], 11 | imports: [BrowserModule, HttpClientModule], 12 | providers: [], 13 | bootstrap: [AppComponent] 14 | }) 15 | export class AppModule {} 16 | -------------------------------------------------------------------------------- /landing/src/app/weather/forecast/forecast.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { Observable } from 'rxjs'; 3 | import { ForecastService } from '../forecast.service'; 4 | 5 | @Component({ 6 | selector: 'app-forecast', 7 | templateUrl: './forecast.component.html', 8 | styleUrls: ['./forecast.component.css'] 9 | }) 10 | export class ForecastComponent implements OnInit { 11 | forecast$: Observable<{ dateString: string; temp: number }[]>; 12 | 13 | constructor(forecastService: ForecastService) { 14 | this.forecast$ = forecastService.getForecast(); 15 | } 16 | 17 | ngOnInit() {} 18 | } 19 | -------------------------------------------------------------------------------- /mathform/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { ReactiveFormsModule } from '@angular/forms'; 4 | 5 | import { AppComponent } from './app.component'; 6 | import { EquationComponent } from './equation/equation.component'; 7 | import { AnswerHighlightDirective } from './answer-highlight.directive'; 8 | 9 | @NgModule({ 10 | declarations: [AppComponent, EquationComponent, AnswerHighlightDirective], 11 | imports: [BrowserModule, ReactiveFormsModule], 12 | providers: [], 13 | bootstrap: [AppComponent] 14 | }) 15 | export class AppModule {} 16 | -------------------------------------------------------------------------------- /typing/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { lorem } from 'faker'; 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | templateUrl: './app.component.html', 7 | styleUrls: ['./app.component.css'] 8 | }) 9 | export class AppComponent { 10 | randomText = lorem.sentence(); 11 | enteredText = ''; 12 | 13 | onInput(value: string) { 14 | this.enteredText = value; 15 | } 16 | 17 | compare(randomLetter: string, enteredLetter: string) { 18 | if (!enteredLetter) { 19 | return 'pending'; 20 | } 21 | 22 | return randomLetter === enteredLetter ? 'correct' : 'incorrect'; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /comps/src/app/mods/mods.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | 4 | import { SharedModule } from '../shared/shared.module'; 5 | import { ModsRoutingModule } from './mods-routing.module'; 6 | import { ModsHomeComponent } from './mods-home/mods-home.component'; 7 | import { ModalComponent } from './modal/modal.component'; 8 | import { AccordionComponent } from './accordion/accordion.component'; 9 | 10 | @NgModule({ 11 | declarations: [ModsHomeComponent, ModalComponent, AccordionComponent], 12 | imports: [CommonModule, ModsRoutingModule, SharedModule] 13 | }) 14 | export class ModsModule {} 15 | -------------------------------------------------------------------------------- /cards/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /comps/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pages/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pipes/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pw/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /creditcard/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /emailform/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /landing/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /mathform/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /photos/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /typing/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /wsearch/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-show/email-show.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { ActivatedRoute } from '@angular/router'; 3 | import { Email } from '../email'; 4 | 5 | @Component({ 6 | selector: 'app-email-show', 7 | templateUrl: './email-show.component.html', 8 | styleUrls: ['./email-show.component.css'] 9 | }) 10 | export class EmailShowComponent implements OnInit { 11 | email: Email; 12 | 13 | constructor(private route: ActivatedRoute) { 14 | this.email = route.snapshot.data.email; 15 | this.route.data.subscribe(({ email }) => { 16 | this.email = email; 17 | }); 18 | } 19 | 20 | ngOnInit() {} 21 | } 22 | -------------------------------------------------------------------------------- /emailclient/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | }, 22 | "angularCompilerOptions": { 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /comps/src/app/views/views.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | 4 | import { SharedModule } from '../shared/shared.module'; 5 | import { ViewsRoutingModule } from './views-routing.module'; 6 | import { ViewsHomeComponent } from './views-home/views-home.component'; 7 | import { StatisticsComponent } from './statistics/statistics.component'; 8 | import { ItemListComponent } from './item-list/item-list.component'; 9 | 10 | @NgModule({ 11 | declarations: [ViewsHomeComponent, StatisticsComponent, ItemListComponent], 12 | imports: [CommonModule, ViewsRoutingModule, SharedModule] 13 | }) 14 | export class ViewsModule {} 15 | -------------------------------------------------------------------------------- /creditcard/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { ReactiveFormsModule } from '@angular/forms'; 4 | 5 | import { AppComponent } from './app.component'; 6 | import { CardFormComponent } from './card-form/card-form.component'; 7 | import { InputComponent } from './input/input.component'; 8 | import { CardComponent } from './card/card.component'; 9 | 10 | @NgModule({ 11 | declarations: [AppComponent, CardFormComponent, InputComponent, CardComponent], 12 | imports: [BrowserModule, ReactiveFormsModule], 13 | providers: [], 14 | bootstrap: [AppComponent] 15 | }) 16 | export class AppModule {} 17 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | 4 | import { SigninComponent } from './signin/signin.component'; 5 | import { SignupComponent } from './signup/signup.component'; 6 | import { SignoutComponent } from './signout/signout.component'; 7 | 8 | const routes: Routes = [ 9 | { path: 'signout', component: SignoutComponent }, 10 | { path: 'signup', component: SignupComponent }, 11 | { path: '', component: SigninComponent } 12 | ]; 13 | 14 | @NgModule({ 15 | imports: [RouterModule.forChild(routes)], 16 | exports: [RouterModule] 17 | }) 18 | export class AuthRoutingModule {} 19 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/input/input.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | import { FormControl } from '@angular/forms'; 3 | 4 | @Component({ 5 | selector: 'app-input', 6 | templateUrl: './input.component.html', 7 | styleUrls: ['./input.component.css'] 8 | }) 9 | export class InputComponent implements OnInit { 10 | @Input() label: string; 11 | @Input() control: FormControl; 12 | @Input() inputType: string; 13 | @Input() controlType = 'input'; 14 | 15 | constructor() {} 16 | 17 | ngOnInit() {} 18 | 19 | showErrors() { 20 | const { dirty, touched, errors } = this.control; 21 | return dirty && touched && errors; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /comps/src/app/mods/modal/modal.component.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Component, 3 | OnInit, 4 | ElementRef, 5 | Output, 6 | EventEmitter 7 | } from '@angular/core'; 8 | 9 | @Component({ 10 | selector: 'app-modal', 11 | templateUrl: './modal.component.html', 12 | styleUrls: ['./modal.component.css'] 13 | }) 14 | export class ModalComponent implements OnInit { 15 | @Output() close = new EventEmitter(); 16 | 17 | constructor(private el: ElementRef) {} 18 | 19 | ngOnInit() { 20 | document.body.appendChild(this.el.nativeElement); 21 | } 22 | 23 | ngOnDestroy() { 24 | this.el.nativeElement.remove(); 25 | } 26 | 27 | onCloseClick() { 28 | this.close.emit(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /emailclient/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { AuthService } from './auth/auth.service'; 3 | import { BehaviorSubject } from 'rxjs'; 4 | 5 | @Component({ 6 | selector: 'app-root', 7 | templateUrl: './app.component.html', 8 | styleUrls: ['./app.component.css'] 9 | }) 10 | export class AppComponent { 11 | signedin$: BehaviorSubject; 12 | username = ''; 13 | 14 | constructor(private authService: AuthService) { 15 | this.signedin$ = this.authService.signedin$; 16 | } 17 | 18 | ngOnInit() { 19 | this.authService.checkAuth().subscribe(() => { 20 | this.username = this.authService.username; 21 | }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /photos/src/app/photos.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpClient } from '@angular/common/http'; 3 | 4 | interface UnsplashResponse { 5 | urls: { 6 | regular: string; 7 | }; 8 | } 9 | 10 | @Injectable({ 11 | providedIn: 'root' 12 | }) 13 | export class PhotosService { 14 | constructor(private http: HttpClient) {} 15 | 16 | getPhoto() { 17 | return this.http.get( 18 | 'https://api.unsplash.com/photos/random', 19 | { 20 | headers: { 21 | Authorization: 22 | 'Client-ID 08d19507529308e6b6874e4bce18a309019a26273da0556b967fa3969e972cf1' 23 | } 24 | } 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /comps/src/app/mods/modal/modal.component.html: -------------------------------------------------------------------------------- 1 |
2 | 17 |
18 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/email-form/email-form.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 20 | 21 | 22 | 23 |
24 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/modal/modal.component.html: -------------------------------------------------------------------------------- 1 |
2 | 17 |
18 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/modal/modal.component.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Component, 3 | OnInit, 4 | ElementRef, 5 | Output, 6 | EventEmitter 7 | } from '@angular/core'; 8 | 9 | @Component({ 10 | selector: 'app-modal', 11 | templateUrl: './modal.component.html', 12 | styleUrls: ['./modal.component.css'] 13 | }) 14 | export class ModalComponent implements OnInit { 15 | @Output() dismiss = new EventEmitter(); 16 | 17 | constructor(private el: ElementRef) {} 18 | 19 | ngOnInit() { 20 | document.body.appendChild(this.el.nativeElement); 21 | } 22 | 23 | ngOnDestroy() { 24 | this.el.nativeElement.remove(); 25 | } 26 | 27 | onDismissClick() { 28 | this.dismiss.emit(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /landing/src/app/news-api/na-article-list/na-article-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { NewsApiService, Article } from '../news-api.service'; 3 | 4 | @Component({ 5 | selector: 'app-na-article-list', 6 | templateUrl: './na-article-list.component.html', 7 | styleUrls: ['./na-article-list.component.css'] 8 | }) 9 | export class NaArticleListComponent implements OnInit { 10 | articles: Article[]; 11 | 12 | constructor(private newsApiService: NewsApiService) { 13 | this.newsApiService.pagesOutput.subscribe(articles => { 14 | this.articles = articles; 15 | }); 16 | 17 | this.newsApiService.getPage(1); 18 | } 19 | 20 | ngOnInit() {} 21 | } 22 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { ReactiveFormsModule } from '@angular/forms'; 4 | 5 | import { AuthRoutingModule } from './auth-routing.module'; 6 | import { SigninComponent } from './signin/signin.component'; 7 | import { SignupComponent } from './signup/signup.component'; 8 | import { SharedModule } from '../shared/shared.module'; 9 | import { SignoutComponent } from './signout/signout.component'; 10 | 11 | @NgModule({ 12 | declarations: [SigninComponent, SignupComponent, SignoutComponent], 13 | imports: [CommonModule, AuthRoutingModule, ReactiveFormsModule, SharedModule] 14 | }) 15 | export class AuthModule {} 16 | -------------------------------------------------------------------------------- /pw/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /cards/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /comps/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /landing/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /mathform/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /pages/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /photos/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /pipes/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /typing/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /wsearch/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /creditcard/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /emailclient/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /emailform/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signin/signin.component.html: -------------------------------------------------------------------------------- 1 |

Sign In

2 |
3 | 8 | 9 | 10 | 15 | 16 | 17 |
18 |

19 | Invalid username or password 20 |

21 |
22 | 23 |
24 | 27 |
28 |
29 | -------------------------------------------------------------------------------- /photos/src/app/photo-show/photo-show.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { PhotosService } from '../photos.service'; 3 | 4 | @Component({ 5 | selector: 'app-photo-show', 6 | templateUrl: './photo-show.component.html', 7 | styleUrls: ['./photo-show.component.css'] 8 | }) 9 | export class PhotoShowComponent implements OnInit { 10 | photoUrl: string; 11 | 12 | constructor(private photosService: PhotosService) { 13 | this.fetchPhoto(); 14 | } 15 | 16 | onClick() { 17 | this.fetchPhoto(); 18 | } 19 | 20 | fetchPhoto() { 21 | this.photosService.getPhoto().subscribe(response => { 22 | this.photoUrl = response.urls.regular; 23 | }); 24 | } 25 | 26 | ngOnInit() {} 27 | } 28 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/auth-http-interceptor.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { 3 | HttpEvent, 4 | HttpInterceptor, 5 | HttpHandler, 6 | HttpRequest, 7 | HttpEventType, 8 | HTTP_INTERCEPTORS 9 | } from '@angular/common/http'; 10 | import { Observable } from 'rxjs'; 11 | import { tap, filter } from 'rxjs/operators'; 12 | 13 | @Injectable() 14 | export class AuthHttpInterceptor implements HttpInterceptor { 15 | intercept( 16 | req: HttpRequest, 17 | next: HttpHandler 18 | ): Observable> { 19 | // Modify or log the outgoing request 20 | const modifiedReq = req.clone({ 21 | withCredentials: true 22 | }); 23 | 24 | return next.handle(modifiedReq); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pw/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('pw app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /pw/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /cards/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('cards app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /cards/src/app/card/card.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { CardComponent } from './card.component'; 4 | 5 | describe('CardComponent', () => { 6 | let component: CardComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ CardComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(CardComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /cards/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /comps/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('comps app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /comps/src/app/home/home.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { HomeComponent } from './home.component'; 4 | 5 | describe('HomeComponent', () => { 6 | let component: HomeComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ HomeComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(HomeComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /comps/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /landing/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { HttpClientModule } from '@angular/common/http'; 4 | 5 | import { AppComponent } from './app.component'; 6 | import { WeatherModule } from './weather/weather.module'; 7 | import { NotificationsModule } from './notifications/notifications.module'; 8 | import { NewsApiModule } from './news-api/news-api.module'; 9 | 10 | @NgModule({ 11 | declarations: [AppComponent], 12 | imports: [ 13 | BrowserModule, 14 | HttpClientModule, 15 | WeatherModule, 16 | NotificationsModule, 17 | NewsApiModule 18 | ], 19 | providers: [], 20 | bootstrap: [AppComponent] 21 | }) 22 | export class AppModule {} 23 | -------------------------------------------------------------------------------- /landing/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /mathform/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /pages/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('pages app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /pages/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /photos/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /pipes/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('pipes app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /pipes/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /typing/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /wsearch/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /creditcard/src/app/card/card.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { CardComponent } from './card.component'; 4 | 5 | describe('CardComponent', () => { 6 | let component: CardComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ CardComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(CardComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /creditcard/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /emailclient/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /emailform/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /landing/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('landing app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /landing/src/app/shared/paginator/paginator.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-paginator', 5 | templateUrl: './paginator.component.html', 6 | styleUrls: ['./paginator.component.css'] 7 | }) 8 | export class PaginatorComponent implements OnInit { 9 | @Input() numberOfPages: number; 10 | pageOptions: number[]; 11 | 12 | currentPage = 1; 13 | 14 | constructor() { 15 | this.pageOptions = [ 16 | this.currentPage - 2, 17 | this.currentPage - 1, 18 | this.currentPage, 19 | this.currentPage + 1, 20 | this.currentPage + 2 21 | ].filter(pageNumber => pageNumber >= 1 && pageNumber <= this.numberOfPages); 22 | } 23 | 24 | ngOnInit() {} 25 | } 26 | -------------------------------------------------------------------------------- /photos/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('photos app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /typing/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('typing app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /wsearch/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('wsearch app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /comps/src/app/collections/tabs/tabs.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { TabsComponent } from './tabs.component'; 4 | 5 | describe('TabsComponent', () => { 6 | let component: TabsComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ TabsComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(TabsComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /creditcard/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('creditcard app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /emailclient/src/app/inbox/home/home.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { HomeComponent } from './home.component'; 4 | 5 | describe('HomeComponent', () => { 6 | let component: HomeComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ HomeComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(HomeComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /emailform/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('emailform app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /mathform/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('mathform app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /comps/src/app/mods/modal/modal.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { ModalComponent } from './modal.component'; 4 | 5 | describe('ModalComponent', () => { 6 | let component: ModalComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ ModalComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(ModalComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /creditcard/src/app/input/input.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { InputComponent } from './input.component'; 4 | 5 | describe('InputComponent', () => { 6 | let component: InputComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ InputComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(InputComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /emailclient/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('emailclient app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /comps/src/app/collections/table/table.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { TableComponent } from './table.component'; 4 | 5 | describe('TableComponent', () => { 6 | let component: TableComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ TableComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(TableComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /emailclient/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; 4 | 5 | import { AuthHttpInterceptor } from './auth/auth-http-interceptor'; 6 | import { AppRoutingModule } from './app-routing.module'; 7 | import { AppComponent } from './app.component'; 8 | import { AuthModule } from './auth/auth.module'; 9 | 10 | @NgModule({ 11 | declarations: [AppComponent], 12 | imports: [BrowserModule, AppRoutingModule, AuthModule, HttpClientModule], 13 | providers: [ 14 | { provide: HTTP_INTERCEPTORS, useClass: AuthHttpInterceptor, multi: true } 15 | ], 16 | bootstrap: [AppComponent] 17 | }) 18 | export class AppModule {} 19 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/input/input.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { InputComponent } from './input.component'; 4 | 5 | describe('InputComponent', () => { 6 | let component: InputComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ InputComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(InputComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /emailclient/src/app/shared/modal/modal.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { ModalComponent } from './modal.component'; 4 | 5 | describe('ModalComponent', () => { 6 | let component: ModalComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ ModalComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(ModalComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /typing/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Typing Challenge

5 | 6 |

7 | {{ letter }} 12 |

13 | 14 |
15 | 16 |
17 | 18 |
19 |

Success!

20 |
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signin/signin.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { SigninComponent } from './signin.component'; 4 | 5 | describe('SigninComponent', () => { 6 | let component: SigninComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ SigninComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(SigninComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /emailclient/src/app/auth/signup/signup.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { SignupComponent } from './signup.component'; 4 | 5 | describe('SignupComponent', () => { 6 | let component: SignupComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ SignupComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(SignupComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /comps/src/app/elements/segment/segment.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { SegmentComponent } from './segment.component'; 4 | 5 | describe('SegmentComponent', () => { 6 | let component: SegmentComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ SegmentComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(SegmentComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /comps/src/app/shared/divider/divider.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { DividerComponent } from './divider.component'; 4 | 5 | describe('DividerComponent', () => { 6 | let component: DividerComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ DividerComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(DividerComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /comps/src/app/mods/mods-home/mods-home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-mods-home', 5 | templateUrl: './mods-home.component.html', 6 | styleUrls: ['./mods-home.component.css'] 7 | }) 8 | export class ModsHomeComponent implements OnInit { 9 | modalOpen = false; 10 | items = [ 11 | { title: 'Why is the sky blue?', content: 'The sky is blue because it is' }, 12 | { 13 | title: 'What does an orange taste like?', 14 | content: 'An orange tastes like an orange' 15 | }, 16 | { title: 'What color is that cat', content: 'The cat is an orange color' } 17 | ]; 18 | 19 | constructor() {} 20 | 21 | ngOnInit() {} 22 | 23 | onClick() { 24 | this.modalOpen = !this.modalOpen; 25 | } 26 | } 27 | --------------------------------------------------------------------------------