diff --git a/angular.json b/angular.json index c0b6d3f..86aebfd 100644 --- a/angular.json +++ b/angular.json @@ -47,6 +47,52 @@ } } } + }, + "demo": { + "root": "demo", + "sourceRoot": "demo/src", + "projectType": "application", + "prefix": "ngr", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "demo/dist", + "index": "demo/src/index.html", + "main": "demo/src/main.ts", + "polyfills": "demo/src/polyfills.ts", + "tsConfig": "demo/tsconfig.json", + "assets": [], + "styles": [], + "scripts": [] + }, + "configurations": {} + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "demo:build" + }, + "configurations": { + "production": { + "browserTarget": "demo:build:production" + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "demo/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**", + "**/api-docs.ts" + ] + } + } + } } }, "defaultProject": "ng-rocketparts" diff --git a/demo/src/app/app.component.html b/demo/src/app/app.component.html new file mode 100644 index 0000000..d283735 --- /dev/null +++ b/demo/src/app/app.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/demo/src/app/app.component.ts b/demo/src/app/app.component.ts new file mode 100644 index 0000000..d95cf51 --- /dev/null +++ b/demo/src/app/app.component.ts @@ -0,0 +1,11 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'ngr-app', + templateUrl: './app.component.html' +}) +export class AppComponent implements OnInit { + constructor() {} + + ngOnInit(): void {} +} diff --git a/demo/src/app/app.module.ts b/demo/src/app/app.module.ts new file mode 100644 index 0000000..f39f344 --- /dev/null +++ b/demo/src/app/app.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { AppComponent } from './app.component'; +import { routing } from './app.routing'; +import { HomeComponent } from './home/home.component'; +import { NgRocketPartsModule } from '../../../projects/ng-rocketparts/src/lib/ng-rocketparts.module'; + +@NgModule({ + declarations: [AppComponent, HomeComponent], + imports: [BrowserModule, routing, NgRocketPartsModule], + bootstrap: [AppComponent] +}) +export class AppModule {} diff --git a/demo/src/app/app.routing.ts b/demo/src/app/app.routing.ts new file mode 100644 index 0000000..36a451b --- /dev/null +++ b/demo/src/app/app.routing.ts @@ -0,0 +1,13 @@ +import { ModuleWithProviders } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { HomeComponent } from './home/home.component'; + +const routes: Routes = [ + { path: '', pathMatch: 'full', redirectTo: 'home' }, + { path: 'home', component: HomeComponent } +]; + +export const routing: ModuleWithProviders = RouterModule.forRoot(routes, { + enableTracing: false, + useHash: true +}); diff --git a/demo/src/app/home/home.component.html b/demo/src/app/home/home.component.html new file mode 100644 index 0000000..cec07dc --- /dev/null +++ b/demo/src/app/home/home.component.html @@ -0,0 +1,3 @@ +MaybeAsyncPipe Test +
{{test$ | maybeAsync}}
+
{{'General text' | maybeAsync}}
diff --git a/demo/src/app/home/home.component.ts b/demo/src/app/home/home.component.ts new file mode 100644 index 0000000..0eca069 --- /dev/null +++ b/demo/src/app/home/home.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Component({ + selector: 'ngrp-home', + templateUrl: './home.component.html' +}) +export class HomeComponent implements OnInit { + test$: Observable = of('Observable string'); + + constructor() {} + + ngOnInit(): void {} +} diff --git a/demo/src/environments/environment.prod.ts b/demo/src/environments/environment.prod.ts new file mode 100644 index 0000000..654f906 --- /dev/null +++ b/demo/src/environments/environment.prod.ts @@ -0,0 +1,4 @@ +export const environment = { + production: true, + version: require('../../../projects/ng-rocketparts/package.json').version +}; diff --git a/demo/src/environments/environment.ts b/demo/src/environments/environment.ts new file mode 100644 index 0000000..c24d10c --- /dev/null +++ b/demo/src/environments/environment.ts @@ -0,0 +1,17 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const environment = { + production: false, + version: require('../../../projects/ng-rocketparts/package.json').version +}; + +/* + * In development mode, to ignore zone related error stack frames such as + * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can + * import the following file, but please comment it out in production mode + * because it will have performance impact when throw error + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/demo/src/index.html b/demo/src/index.html new file mode 100644 index 0000000..03ddf85 --- /dev/null +++ b/demo/src/index.html @@ -0,0 +1,11 @@ + + + + + Rocket Parts + + + + + + diff --git a/demo/src/main.ts b/demo/src/main.ts new file mode 100644 index 0000000..4e935ad --- /dev/null +++ b/demo/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { environment } from './environments/environment'; +import { AppModule } from './app/app.module'; + +// depending on the env mode, enable prod mode or add debugging modules +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/demo/src/polyfills.ts b/demo/src/polyfills.ts new file mode 100644 index 0000000..2ece36b --- /dev/null +++ b/demo/src/polyfills.ts @@ -0,0 +1,62 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +import 'core-js/es6/symbol'; +import 'core-js/es6/object'; +import 'core-js/es6/function'; +import 'core-js/es6/parse-int'; +import 'core-js/es6/parse-float'; +import 'core-js/es6/number'; +import 'core-js/es6/math'; +import 'core-js/es6/string'; +import 'core-js/es6/date'; +import 'core-js/es6/array'; +import 'core-js/es6/regexp'; +import 'core-js/es6/map'; +import 'core-js/es6/weak-map'; +import 'core-js/es6/set'; + +import 'core-js/fn/object/values'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +import 'core-js/es6/reflect'; + +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. +import 'core-js/es7/reflect'; + +/** + * Required to support Web Animations `@angular/platform-browser/animations`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/demo/tsconfig.json b/demo/tsconfig.json new file mode 100644 index 0000000..a3da209 --- /dev/null +++ b/demo/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "baseUrl": "./", + "outDir": "temp" + }, + "include": [ + "./src/**/*.ts" + ] +} diff --git a/demo/tslint.json b/demo/tslint.json new file mode 100644 index 0000000..ec365f1 --- /dev/null +++ b/demo/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "../tslint.json" +} diff --git a/package.json b/package.json index 896269f..4db2cf4 100644 --- a/package.json +++ b/package.json @@ -1,87 +1,87 @@ { - "name": "ng-rocketparts", - "version": "0.0.1", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "test": "ng test", - "test:ci": "ng test --watch=false --code-coverage", - "lint": "ng lint", - "e2e": "ng e2e", - "prettier": "prettier --write '{projects,src}/**/*.{ts,js}'", - "prettier:watch": "onchange '{projects,src}/**/*.{ts,js}' -- prettier --write {{changed}}", - "stylelint": "stylelint '{projects,src}/**/*.scss'", - "stylelint:fix": "stylelint --fix '{projects,src}/**/*.scss'", - "tslint:check": "tslint-config-prettier-check ./tslint.json", - "compodoc": "./node_modules/.bin/compodoc -n 'NgRocketParts' -p projects/ng-rocketparts/tsconfig.lib.json --theme material --disableRoutesGraph --disableCoverage --disableGraph --hideGenerator --disableSourceCode --disableDomTree --disableTemplateTab --includes projects/ng-rocketparts/md", - "compodoc:serve": "./node_modules/.bin/compodoc -n 'NgRocketParts' -p projects/ng-rocketparts/tsconfig.lib.json --theme material --disableRoutesGraph --disableCoverage --disableGraph --hideGenerator --disableSourceCode --disableDomTree --disableTemplateTab --includes projects/ng-rocketparts/md -s -w" - }, - "private": true, - "dependencies": { - "@angular/animations": "^6.1.0", - "@angular/common": "^6.1.0", - "@angular/compiler": "^6.1.0", - "@angular/core": "^6.1.0", - "@angular/forms": "^6.1.0", - "@angular/http": "^6.1.0", - "@angular/platform-browser": "^6.1.0", - "@angular/platform-browser-dynamic": "^6.1.0", - "@angular/router": "^6.1.0", - "core-js": "^2.5.4", - "rxjs": "^6.0.0", - "zone.js": "~0.8.26" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~0.7.0", - "@angular-devkit/build-ng-packagr": "~0.7.0", - "@angular/cli": "~6.1.5", - "@angular/compiler-cli": "^6.1.0", - "@angular/language-service": "^6.1.0", - "@compodoc/compodoc": "^1.1.5", - "@types/jasmine": "~2.8.6", - "@types/jasminewd2": "~2.0.3", - "@types/node": "~8.9.4", - "codelyzer": "~4.2.1", - "husky": "^1.0.0-rc.13", - "jasmine-core": "^3.2.0", - "jasmine-spec-reporter": "~4.2.1", - "karma": "^3.0.0", - "karma-chrome-launcher": "~2.2.0", - "karma-coverage-istanbul-reporter": "^1.2.1", - "karma-jasmine": "~1.1.2", - "karma-jasmine-html-reporter": "^1.3.0", - "karma-phantomjs-launcher": "^1.0.4", - "lint-staged": "^7.2.2", - "ng-packagr": "^4.1.0", - "prettier": "^1.14.2", - "protractor": "~5.4.0", - "stylelint": "^9.5.0", - "stylelint-config-standard": "^18.2.0", - "ts-node": "~5.0.1", - "tsickle": ">=0.29.0", - "tslib": "^1.9.0", - "tslint": "~5.9.1", - "tslint-config-prettier": "^1.15.0", - "typescript": "~2.7.2" - }, - "lint-staged": { - "*.ts": [ - "npm run prettier", - "git add" - ], - "*.scss": [ - "npm run stylelint:fix", - "git add" - ] - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint --fix && lint-staged" + "name": "ng-rocketparts", + "version": "0.0.1", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "test:ci": "ng test --watch=false --code-coverage", + "lint": "ng lint", + "e2e": "ng e2e", + "prettier": "prettier --write '{projects,src}/**/*.{ts,js}'", + "prettier:watch": "onchange '{projects,src}/**/*.{ts,js}' -- prettier --write {{changed}}", + "stylelint": "stylelint '{projects,src}/**/*.scss'", + "stylelint:fix": "stylelint --fix '{projects,src}/**/*.scss'", + "tslint:check": "tslint-config-prettier-check ./tslint.json", + "compodoc": "./node_modules/.bin/compodoc -n 'NgRocketParts' -p projects/ng-rocketparts/tsconfig.lib.json --theme material --disableRoutesGraph --disableCoverage --disableGraph --hideGenerator --disableSourceCode --disableDomTree --disableTemplateTab --includes projects/ng-rocketparts/md", + "compodoc:serve": "./node_modules/.bin/compodoc -n 'NgRocketParts' -p projects/ng-rocketparts/tsconfig.lib.json --theme material --disableRoutesGraph --disableCoverage --disableGraph --hideGenerator --disableSourceCode --disableDomTree --disableTemplateTab --includes projects/ng-rocketparts/md -s -w" + }, + "private": true, + "dependencies": { + "@angular/animations": "^6.1.0", + "@angular/common": "^6.1.0", + "@angular/compiler": "^6.1.0", + "@angular/core": "^6.1.0", + "@angular/forms": "^6.1.0", + "@angular/http": "^6.1.0", + "@angular/platform-browser": "^6.1.0", + "@angular/platform-browser-dynamic": "^6.1.0", + "@angular/router": "^6.1.0", + "core-js": "^2.5.4", + "rxjs": "^6.0.0", + "zone.js": "~0.8.26" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.7.0", + "@angular-devkit/build-ng-packagr": "~0.7.0", + "@angular/cli": "~6.1.5", + "@angular/compiler-cli": "^6.1.0", + "@angular/language-service": "^6.1.0", + "@compodoc/compodoc": "^1.1.5", + "@types/jasmine": "~2.8.6", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "codelyzer": "~4.2.1", + "husky": "^1.0.0-rc.13", + "jasmine-core": "^3.2.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "^3.0.0", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "^1.2.1", + "karma-jasmine": "~1.1.2", + "karma-jasmine-html-reporter": "^1.3.0", + "karma-phantomjs-launcher": "^1.0.4", + "lint-staged": "^7.2.2", + "ng-packagr": "^4.1.0", + "prettier": "^1.14.2", + "protractor": "~5.4.0", + "stylelint": "^9.5.0", + "stylelint-config-standard": "^18.2.0", + "ts-node": "~5.0.1", + "tsickle": ">=0.29.0", + "tslib": "^1.9.0", + "tslint": "~5.9.1", + "tslint-config-prettier": "^1.15.0", + "typescript": "~2.7.2" + }, + "lint-staged": { + "*.ts": [ + "npm run prettier", + "git add" + ], + "*.scss": [ + "npm run stylelint:fix", + "git add" + ] + }, + "husky": { + "hooks": { + "pre-commit": "npm run lint --fix && lint-staged" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/Rocketloop/ng-rocketparts.git" } - }, - "repository": { - "type": "git", - "url": "https://github.com/Rocketloop/ng-rocketparts.git" - } }