From 849dd95f75827a079d33388bf5e55202fa0a0780 Mon Sep 17 00:00:00 2001 From: rosem Date: Mon, 16 May 2016 11:36:18 +0200 Subject: [PATCH 1/8] move to angular (1) from angular2 - add bootstrap --- .editorconfig | 4 +- karma-shim.js | 18 +-------- package.json | 15 ++------ protractor.conf.js | 12 +----- src/app/about/about.component.html | 3 -- src/app/about/about.component.scss | 3 -- src/app/about/about.component.spec.ts | 23 ------------ src/app/about/about.component.ts | 18 --------- src/app/about/index.ts | 1 - src/app/app.component.e2e-spec.js | 36 +++++++++--------- src/app/app.component.html | 49 +++++++++++++++++-------- src/app/app.component.scss | 45 +++++++++++------------ src/app/app.component.spec.ts | 43 ++++++---------------- src/app/app.component.ts | 37 ++++++------------- src/app/home/home.component.e2e-spec.js | 13 ------- src/app/home/home.component.html | 3 -- src/app/home/home.component.scss | 4 -- src/app/home/home.component.spec.ts | 25 ------------- src/app/home/home.component.ts | 18 --------- src/app/home/index.ts | 1 - src/app/index.ts | 6 +++ src/app/shared/api.service.spec.ts | 19 ---------- src/app/shared/api.service.ts | 6 --- src/app/shared/index.ts | 1 - src/main.ts | 27 +------------- src/polyfills.ts | 8 ---- src/public/index.html | 6 +-- src/style/app.scss | 14 +++---- src/vendor.ts | 9 +---- tslint.json | 3 +- typings.json | 3 ++ webpack.config.js | 13 ++----- 32 files changed, 133 insertions(+), 353 deletions(-) delete mode 100644 src/app/about/about.component.html delete mode 100644 src/app/about/about.component.scss delete mode 100644 src/app/about/about.component.spec.ts delete mode 100644 src/app/about/about.component.ts delete mode 100644 src/app/about/index.ts delete mode 100644 src/app/home/home.component.e2e-spec.js delete mode 100644 src/app/home/home.component.html delete mode 100644 src/app/home/home.component.scss delete mode 100644 src/app/home/home.component.spec.ts delete mode 100644 src/app/home/home.component.ts delete mode 100644 src/app/home/index.ts create mode 100644 src/app/index.ts delete mode 100644 src/app/shared/api.service.spec.ts delete mode 100644 src/app/shared/api.service.ts delete mode 100644 src/app/shared/index.ts diff --git a/.editorconfig b/.editorconfig index 802ae913..4c576f3d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,9 +16,9 @@ charset = utf-8 # 4 space indentation [*.{js,css,scss,html}] indent_style = space -indent_size = 2 +indent_size = 4 # Matches the exact files either package.json or .travis.yml [{package.json,.travis.yml,bower.json}] indent_style = space -indent_size = 2 +indent_size = 4 diff --git a/karma-shim.js b/karma-shim.js index 6ae04adc..f4977b22 100644 --- a/karma-shim.js +++ b/karma-shim.js @@ -1,14 +1,8 @@ Error.stackTraceLimit = Infinity; require('es6-shim'); -require('reflect-metadata'); - -require('ts-helpers'); - -require('zone.js/dist/zone'); -require('zone.js/dist/long-stack-trace-zone'); -require('zone.js/dist/jasmine-patch'); -require('zone.js/dist/async-test'); +require('angular'); +require('angular-mocks'); /* Ok, this is kinda crazy. We can use the the context method on @@ -25,11 +19,3 @@ var appContext = require.context('./src', true, /\.spec\.ts/); // that will require the file and load it up here. Context will // loop and require those spec files here appContext.keys().forEach(appContext); - -// Select BrowserDomAdapter. -// see https://github.com/AngularClass/angular2-webpack-starter/issues/124 -// Somewhere in the test setup -var testing = require('@angular/core/testing'); -var browser = require('@angular/platform-browser-dynamic/testing'); - -testing.setBaseTestProviders(browser.TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, browser.TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS); diff --git a/package.json b/package.json index 748a1e55..fa06a4f8 100644 --- a/package.json +++ b/package.json @@ -23,19 +23,12 @@ "postinstall": "npm run webdriver-update && typings install" }, "dependencies": { - "@angular/common": "2.0.0-rc.1", - "@angular/compiler": "2.0.0-rc.1", - "@angular/core": "2.0.0-rc.1", - "@angular/http": "2.0.0-rc.1", - "@angular/platform-browser": "2.0.0-rc.1", - "@angular/platform-browser-dynamic": "2.0.0-rc.1", - "@angular/router-deprecated": "2.0.0-rc.1", - "es6-shim": "^0.35.0", - "reflect-metadata": "0.1.2", - "rxjs": "5.0.0-beta.6", - "zone.js": "0.6.12" + "angular": "^1.5.5", + "bootstrap-sass": "^3.3.6", + "es6-shim": "^0.35.0" }, "devDependencies": { + "angular-mocks": "^1.5.5", "autoprefixer": "^6.3.2", "codelyzer": "0.0.19", "copy-webpack-plugin": "^2.1.3", diff --git a/protractor.conf.js b/protractor.conf.js index 12b68e5d..8f38fc0b 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -30,14 +30,6 @@ exports.config = { browser.ignoreSynchronization = true; }, - - - /** - * Angular 2 configuration - * - * useAllAngular2AppRoots: tells Protractor to wait for any angular2 apps on the page instead of just the one matching - * `rootEl` - * - */ - useAllAngular2AppRoots: true + + waitForAngular: true }; diff --git a/src/app/about/about.component.html b/src/app/about/about.component.html deleted file mode 100644 index 7dc59929..00000000 --- a/src/app/about/about.component.html +++ /dev/null @@ -1,3 +0,0 @@ -

- About Works! -

diff --git a/src/app/about/about.component.scss b/src/app/about/about.component.scss deleted file mode 100644 index b3afa74c..00000000 --- a/src/app/about/about.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -* { - color: #f87c08; -} diff --git a/src/app/about/about.component.spec.ts b/src/app/about/about.component.spec.ts deleted file mode 100644 index ffcb5ef0..00000000 --- a/src/app/about/about.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { - it, - describe, - async, - inject, - beforeEachProviders -} from '@angular/core/testing'; - -import { TestComponentBuilder } from '@angular/compiler/testing'; - -import { AboutComponent } from './about.component'; - -describe('About Component', () => { - - beforeEachProviders(() => []); - - it('should ...', async(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { - tcb.createAsync(AboutComponent).then((fixture) => { - fixture.detectChanges(); - }); - }))); - -}); diff --git a/src/app/about/about.component.ts b/src/app/about/about.component.ts deleted file mode 100644 index 85dab66a..00000000 --- a/src/app/about/about.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'my-about', - template: require('./about.component.html'), - styles: [require('./about.component.scss')] -}) -export class AboutComponent implements OnInit { - - constructor() { - // Do stuff - } - - ngOnInit() { - console.log('Hello About'); - } - -} diff --git a/src/app/about/index.ts b/src/app/about/index.ts deleted file mode 100644 index b7cb92ae..00000000 --- a/src/app/about/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './about.component'; diff --git a/src/app/app.component.e2e-spec.js b/src/app/app.component.e2e-spec.js index 92a7004d..df6dddd3 100644 --- a/src/app/app.component.e2e-spec.js +++ b/src/app/app.component.e2e-spec.js @@ -1,27 +1,27 @@ describe('App', function () { - beforeEach(function () { - browser.get('/'); - }); + beforeEach(function () { + browser.get('/'); + }); - it('should have a title', function () { - expect(browser.getTitle()).toEqual("Angular 2 App | ng2-webpack"); - }); + it('should have a title', function () { + expect(browser.getTitle()).toEqual("Angular TypeScript App"); + }); - it('should have
', function () { - expect(element(by.css('my-app header')).isPresent()).toEqual(true); - }); + it('should have
', function () { + expect(element(by.css('app header')).isPresent()).toEqual(true); + }); - it('should have
', function () { - expect(element(by.css('my-app main')).isPresent()).toEqual(true); - }); + it('should have
', function () { + expect(element(by.css('app main')).isPresent()).toEqual(true); + }); - it('should have a main title', function () { - expect(element(by.css('main .title')).getText()).toEqual('Hello from Angular 2 !'); - }); + it('should have a main title', function () { + expect(element(by.css('main .title')).getText()).toEqual('Hello from Starter!'); + }); - it('should have
', function () { - expect(element(by.css('my-app footer')).getText()).toEqual("Webpack Angular 2 Starter"); - }); + it('should have
', function () { + expect(element(by.css('app footer')).getText()).toEqual("Webpack Angular TypeScript Starter"); + }); }); diff --git a/src/app/app.component.html b/src/app/app.component.html index 577009a4..7a302b4f 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,17 +1,36 @@ -
- -
-
-

Hello from {{api.title}}!

+
+
+ +
+
+

Hello from Starter!

- -
- + + +
+ + diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 895a09ab..10f1ad8c 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -1,27 +1,24 @@ -// styles applied on :host are applied on the current component, "app" in this case -:host { - display: block; -} - -header { - background-color: #fff; - padding: 16px; - position: fixed; - top: 0; - left: 0; - width: 100%; - box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); -} +#app { + header { + background-color: #fff; + padding: 16px; + position: fixed; + top: 0; + left: 0; + width: 100%; + box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); + } -main { - padding: 1em; - font-family: Arial, Helvetica, sans-serif; - text-align: center; - margin-top: 50px; - display: block; -} + main { + padding: 1em; + font-family: Arial, Helvetica, sans-serif; + text-align: center; + margin-top: 50px; + display: block; + } -footer { - text-align: center; - font-size: 0.8em; + footer { + text-align: center; + font-size: 0.8em; + } } diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index 5c765905..421c379b 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -1,36 +1,17 @@ -import { - it, - inject, - beforeEachProviders -} from '@angular/core/testing'; - -// to use Translate Service, we need Http, and to test Http we need to mock the backend -import { BaseRequestOptions, Http } from '@angular/http'; -import { MockBackend } from '@angular/http/testing'; -import { provide } from '@angular/core'; - -// Load the implementations that should be tested -import { ApiService } from './shared'; -import { AppComponent } from './app.component'; +import App from './index'; +import {AppComponent} from './app.component'; describe('App', () => { - // provide our implementations or mocks to the dependency injector - beforeEachProviders(() => [ - AppComponent, - ApiService, - BaseRequestOptions, - MockBackend, - // Provide a mocked (fake) backend for Http - provide(Http, { - useFactory: function useFactory(backend, defaultOptions) { - return new Http(backend, defaultOptions); - }, - deps: [MockBackend, BaseRequestOptions] - }) - ]); + let $componentController:ng.IComponentControllerService; + + beforeEach(angular.mock.module(App.name)); + beforeEach(inject((_$componentController_) => { + $componentController = _$componentController_; + })); - it('should have an url', inject([AppComponent], (app: AppComponent) => { - expect(app.url).toEqual('https://github.com/preboot/angular2-webpack'); - })); + it('should have an url', () => { + const comp:AppComponent = $componentController('app', null); + expect(comp.url).toBe('https://github.com/preboot/angular2-webpack'); + }); }); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index a012dba9..bcd23068 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,30 +1,15 @@ -import { Component } from '@angular/core'; -import { RouteConfig, ROUTER_DIRECTIVES } from '@angular/router-deprecated'; +require('./app.component.scss'); -import { ApiService } from './shared'; -import { HomeComponent } from './home'; -import { AboutComponent } from './about'; - -import '../style/app.scss'; - -/* - * App Component - * Top Level Component - */ -@Component({ - selector: 'my-app', // - providers: [ApiService], - directives: [...ROUTER_DIRECTIVES], - template: require('./app.component.html'), - styles: [require('./app.component.scss')], -}) -@RouteConfig([ - {path: '/', component: HomeComponent, name: 'Home'}, - {path: '/About', component: AboutComponent, name: 'About'} -]) export class AppComponent { - url = 'https://github.com/preboot/angular2-webpack'; + url = 'https://github.com/rose-m/angular-typescript-webpack'; - constructor(private api: ApiService) { - } + constructor() { + } } + +const component:ng.IComponentOptions = { + controller: AppComponent, + template: require('./app.component.html') +}; + +export default component; diff --git a/src/app/home/home.component.e2e-spec.js b/src/app/home/home.component.e2e-spec.js deleted file mode 100644 index 1b2f5e27..00000000 --- a/src/app/home/home.component.e2e-spec.js +++ /dev/null @@ -1,13 +0,0 @@ -describe('Home', function () { - - beforeEach(function () { - browser.get('/'); - }); - - it('should have ', function () { - var home = element(by.css('my-app my-home')); - expect(home.isPresent()).toEqual(true); - expect(home.getText()).toEqual("Home Works!"); - }); - -}); diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html deleted file mode 100644 index 604d9e1d..00000000 --- a/src/app/home/home.component.html +++ /dev/null @@ -1,3 +0,0 @@ -

- Home Works! -

diff --git a/src/app/home/home.component.scss b/src/app/home/home.component.scss deleted file mode 100644 index 5db1e17a..00000000 --- a/src/app/home/home.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -// component styles are encapsulated and only applied to their components -* { - color: #FFEF00; -} diff --git a/src/app/home/home.component.spec.ts b/src/app/home/home.component.spec.ts deleted file mode 100644 index 36a45618..00000000 --- a/src/app/home/home.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { - it, - inject, - describe, - beforeEachProviders, -} from '@angular/core/testing'; - -// Load the implementations that should be tested -import { HomeComponent } from './home.component'; - -describe('Home', () => { - // provide our implementations or mocks to the dependency injector - beforeEachProviders(() => [ - HomeComponent - ]); - - it('should log ngOnInit', inject([HomeComponent], (home) => { - spyOn(console, 'log'); - expect(console.log).not.toHaveBeenCalled(); - - home.ngOnInit(); - expect(console.log).toHaveBeenCalledWith('Hello Home'); - })); - -}); diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts deleted file mode 100644 index 9043761e..00000000 --- a/src/app/home/home.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'my-home', - template: require('./home.component.html'), - styles: [require('./home.component.scss')] -}) -export class HomeComponent implements OnInit { - - constructor() { - // Do stuff - } - - ngOnInit() { - console.log('Hello Home'); - } - -} diff --git a/src/app/home/index.ts b/src/app/home/index.ts deleted file mode 100644 index ab5a522c..00000000 --- a/src/app/home/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './home.component'; diff --git a/src/app/index.ts b/src/app/index.ts new file mode 100644 index 00000000..c5c39889 --- /dev/null +++ b/src/app/index.ts @@ -0,0 +1,6 @@ +import Component from './app.component'; + +const app = angular.module('app', []) + .component('app', Component); + +export default app; diff --git a/src/app/shared/api.service.spec.ts b/src/app/shared/api.service.spec.ts deleted file mode 100644 index 4f98e70f..00000000 --- a/src/app/shared/api.service.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { - it, - describe, - expect, - inject, - beforeEachProviders -} from '@angular/core/testing'; - -import { ApiService } from './api.service'; - -describe('Api Service', () => { - - beforeEachProviders(() => [ApiService]); - - it('should ...', inject([ApiService], (api: ApiService) => { - expect(api.title).toBe('Angular 2'); - })); - -}); diff --git a/src/app/shared/api.service.ts b/src/app/shared/api.service.ts deleted file mode 100644 index a69d91ea..00000000 --- a/src/app/shared/api.service.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable() -export class ApiService { - title = 'Angular 2'; -} diff --git a/src/app/shared/index.ts b/src/app/shared/index.ts deleted file mode 100644 index 68fada65..00000000 --- a/src/app/shared/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './api.service'; diff --git a/src/main.ts b/src/main.ts index 407dccfe..41ad2734 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,25 +1,2 @@ -import { enableProdMode } from '@angular/core'; -import { bootstrap } from '@angular/platform-browser-dynamic'; -import { ELEMENT_PROBE_PROVIDERS } from '@angular/platform-browser'; -import { ROUTER_PROVIDERS } from '@angular/router-deprecated'; -import { HashLocationStrategy, LocationStrategy } from '@angular/common'; -import { HTTP_PROVIDERS } from '@angular/http'; - -import {AppComponent} from './app/app.component'; - -const ENV_PROVIDERS = []; -// depending on the env mode, enable prod mode or add debugging modules -if (process.env.ENV === 'build') { - enableProdMode(); -} else { - ENV_PROVIDERS.push(ELEMENT_PROBE_PROVIDERS); -} - -bootstrap(AppComponent, [ - // These are dependencies of our App - ...HTTP_PROVIDERS, - ...ROUTER_PROVIDERS, - ...ENV_PROVIDERS, - { provide: LocationStrategy, useClass: HashLocationStrategy } // use #/ routes, remove this for HTML5 mode - ]) - .catch(err => console.error(err)); +import './style/app.scss'; +import './app'; diff --git a/src/polyfills.ts b/src/polyfills.ts index 02c74ac8..e55b76c6 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -1,16 +1,8 @@ import 'es6-shim'; -import 'reflect-metadata'; -require('zone.js/dist/zone'); - -import 'ts-helpers'; if (process.env.ENV === 'build') { // Production - } else { // Development - Error['stackTraceLimit'] = Infinity; - - require('zone.js/dist/long-stack-trace-zone'); } diff --git a/src/public/index.html b/src/public/index.html index 700e36be..6ebd6759 100644 --- a/src/public/index.html +++ b/src/public/index.html @@ -1,13 +1,13 @@ - + - Angular 2 App | ng2-webpack + Angular TypeScript App - Loading... + Loading... diff --git a/src/style/app.scss b/src/style/app.scss index d73ea23c..2c84ef64 100644 --- a/src/style/app.scss +++ b/src/style/app.scss @@ -1,8 +1,6 @@ -// styles in src/style directory are applied to the whole page -body { - background: #0147A7; - color: #fff; -} -a { - color: #03A9F4; -} +@import 'http://github.com/~bootstrap-sass/assets/stylesheets/bootstrap/variables'; +/* Override any variables */ +$icon-font-path: '~bootstrap-sass/assets/fonts/bootstrap/'; +/* // overrides */ + +@import 'http://github.com/~bootstrap-sass/assets/stylesheets/bootstrap'; diff --git a/src/vendor.ts b/src/vendor.ts index f0791c06..5dd1db05 100644 --- a/src/vendor.ts +++ b/src/vendor.ts @@ -1,13 +1,8 @@ // Angular 2 -import '@angular/platform-browser'; -import '@angular/platform-browser-dynamic'; -import '@angular/core'; -import '@angular/common'; -import '@angular/http'; -import '@angular/router-deprecated'; +import 'angular'; // RxJS -import 'rxjs'; +// import 'rxjs'; // Other vendors for example jQuery, Lodash or Bootstrap // You can import js, ts, css, sass, ... diff --git a/tslint.json b/tslint.json index 41c6c0e1..7df9d542 100644 --- a/tslint.json +++ b/tslint.json @@ -89,8 +89,7 @@ "check-branch", "check-decl", "check-operator", - "check-separator", - "check-type" + "check-separator" ], "directive-selector-name": [true, "camelCase"], diff --git a/typings.json b/typings.json index f78946be..9e063b59 100644 --- a/typings.json +++ b/typings.json @@ -1,9 +1,12 @@ { "ambientDevDependencies": { + "angular-mocks": "registry:dt/angular-mocks#1.3.0+20160425155016", "jasmine": "registry:dt/jasmine#2.2.0+20160412134438" }, "ambientDependencies": { + "angular": "registry:dt/angular#1.5.0+20160509150441", "es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654", + "jquery": "registry:dt/jquery#1.10.0+20160417213236", "node": "registry:dt/node#4.0.0+20160501135006" } } diff --git a/webpack.config.js b/webpack.config.js index 364e3267..88696788 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -121,21 +121,18 @@ module.exports = function makeWebpackConfig() { // support for .scss files // use 'null' loader in test mode (https://github.com/webpack/null-loader) - // all css in src/style will be bundled in an external css file + // all css will be bundled in an external css file { test: /\.scss$/, - exclude: root('src', 'app'), loader: isTest ? 'null' : ExtractTextPlugin.extract('style', 'css?sourceMap!postcss!sass') }, - // all css required in src/app files will be merged in js files - {test: /\.scss$/, exclude: root('src', 'style'), loader: 'raw!postcss!sass'}, // support for .html as raw text // todo: change the loader to something that adds a hash to images {test: /\.html$/, loader: 'raw'} ], - postLoaders: [], - noParse: [/.+zone\.js\/dist\/.+/, /.+angular2\/bundles\/.+/, /angular2-polyfills\.js/] + postLoaders: [] + // noParse: [/.+zone\.js\/dist\/.+/, /.+angular2\/bundles\/.+/, /angular2-polyfills\.js/] }; if (isTest) { @@ -201,9 +198,7 @@ module.exports = function makeWebpackConfig() { // Reference: http://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin // Minify all javascript, switch loaders to minimizing mode new webpack.optimize.UglifyJsPlugin({ - // Angular 2 is broken again, disabling mangle until beta 6 that should fix the thing - // Todo: remove this with beta 6 - mangle: false + mangle: true }), // Copy assets from the public folder From 89df5ac59b855dd0bf2e009b3ded7c0975f68e53 Mon Sep 17 00:00:00 2001 From: rosem Date: Mon, 16 May 2016 12:15:54 +0200 Subject: [PATCH 2/8] add ui-router --- package.json | 1 + src/app/app.component.html | 5 +---- src/app/home/home.component.html | 4 ++++ src/app/home/home.component.ts | 12 ++++++++++++ src/app/home/index.ts | 6 ++++++ src/app/index.ts | 16 +++++++++++++++- src/vendor.ts | 4 +--- typings.json | 1 + 8 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 src/app/home/home.component.html create mode 100644 src/app/home/home.component.ts create mode 100644 src/app/home/index.ts diff --git a/package.json b/package.json index fa06a4f8..7a667b08 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ }, "dependencies": { "angular": "^1.5.5", + "angular-ui-router": "^0.3.0", "bootstrap-sass": "^3.3.6", "es6-shim": "^0.35.0" }, diff --git a/src/app/app.component.html b/src/app/app.component.html index 7a302b4f..b621ee39 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -25,10 +25,7 @@
-

Hello from Starter!

- - - +