Commit 8f9931f9 authored by Pieterjan Vanhoof's avatar Pieterjan Vanhoof Committed by GitHub

Merge pull request #236 from stratisproject/ui

Various updates
parents e78d16b2 41cc4367
{ {
"name": "breeze-ui", "name": "breeze-ui",
"description": "Graphical User Interface for Breeze Wallet.", "description": "Graphical User Interface for Breeze Wallet.",
"version": "0.1.0", "version": "0.2.0",
"author": { "author": {
"name": "Pieterjan Vanhoof", "name": "Pieterjan Vanhoof",
"email": "pieterjan.vanhoof@stratisplatform.com" "email": "pieterjan.vanhoof@stratisplatform.com"
...@@ -14,26 +14,26 @@ ...@@ -14,26 +14,26 @@
"stratis", "stratis",
"angular", "angular",
"electron", "electron",
"typescript",
"scss",
"bootstrap" "bootstrap"
], ],
"main": "main.js", "main": "main.js",
"angular-cli": {},
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"lint": "ng lint", "lint": "ng lint",
"start": "concurrently \"npm run start:webpack\" \"npm run electron:serve\"", "start": "npm-run-all --parallel webpack:watch electron:serve",
"start:webpack": "webpack --watch", "webpack:watch": "webpack --watch",
"start:web": "webpack-dev-server --content-base . --port 4200 --inline",
"build:electron:main": "tsc main.ts --outDir dist && copyfiles package.json dist && cd dist && npm install --prod && cd ..", "build:electron:main": "tsc main.ts --outDir dist && copyfiles package.json dist && cd dist && npm install --prod && cd ..",
"build": "webpack --display-error-details && npm run build:electron:main", "build": "webpack --display-error-details && npm run build:electron:main",
"build:prod": "npm run build", "build:prod": "cross-env NODE_ENV=production npm run build",
"build:styling": "node-sass --output-style expanded --source-map true --precision 6 ./src/scss/bootstrap.scss ./src/styles.css", "build:styling": "node-sass --output-style expanded --source-map true --precision 6 ./src/scss/bootstrap.scss ./src/styles.css",
"electron:serve": "npm run build:electron:main && electron ./dist --serve", "electron:serve": "npm run build:electron:main && electron ./dist --serve",
"electron:test": "electron ./dist", "electron:test": "electron ./dist",
"electron:dev": "npm run build && electron ./dist", "electron:dev": "npm run build && electron ./dist",
"electron:prod": "npm run build:prod && electron ./dist", "electron:prod": "npm run build:prod && electron ./dist",
"package:linux": "npm run build:prod && node package.js --platform=linux --arch=x64", "package:linux": "npm run build:prod && node package.js --platform=linux --arch=x64",
"package:windows": "npm run build:prod && node package.js --platform=win32 --arch=ia32", "package:windows": "npm run build:prod && node package.js --asar --platform=win32 --arch=ia32",
"package:mac": "npm run build:prod && node package.js --platform=darwin --arch=x64", "package:mac": "npm run build:prod && node package.js --platform=darwin --arch=x64",
"test": "karma start ./karma.conf.js", "test": "karma start ./karma.conf.js",
"pree2e": "webdriver-manager update --standalone false --gecko false --quiet && npm run build", "pree2e": "webdriver-manager update --standalone false --gecko false --quiet && npm run build",
...@@ -41,76 +41,76 @@ ...@@ -41,76 +41,76 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^4.4.1", "@angular/animations": "4.4.3",
"@angular/common": "^4.4.1", "@angular/common": "4.4.3",
"@angular/compiler": "^4.4.1", "@angular/compiler": "4.4.3",
"@angular/core": "^4.4.1", "@angular/core": "4.4.3",
"@angular/forms": "^4.4.1", "@angular/forms": "4.4.3",
"@angular/http": "^4.4.1", "@angular/http": "4.4.3",
"@angular/platform-browser": "^4.4.1", "@angular/platform-browser": "4.4.3",
"@angular/platform-browser-dynamic": "^4.4.1", "@angular/platform-browser-dynamic": "4.4.3",
"@angular/platform-server": "^4.4.1", "@angular/platform-server": "4.4.3",
"@angular/router": "^4.4.1", "@angular/router": "4.4.3",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.5", "@ng-bootstrap/ng-bootstrap": "1.0.0-beta.5",
"angular2-material-datepicker": "^0.5.0", "angular2-material-datepicker": "0.5.0",
"bootstrap": "^4.0.0-beta", "bootstrap": "4.0.0-beta",
"core-js": "^2.5.1", "core-js": "2.5.1",
"electron-context-menu": "^0.9.1", "electron-context-menu": "0.9.1",
"ngx-bootstrap": "^1.9.3", "enhanced-resolve": "3.3.0",
"ngx-clipboard": "^8.0.4", "ngx-clipboard": "8.1.0",
"rxjs": "5.4.3", "rxjs": "5.4.3",
"zone.js": "^0.8.17" "zone.js": "0.8.17"
}, },
"devDependencies": { "devDependencies": {
"@angular/cli": "^1.4.2", "@angular/cli": "1.4.3",
"@angular/compiler-cli": "^4.4.1", "@angular/compiler-cli": "4.4.3",
"autoprefixer": "^7.1.4", "@types/core-js": "0.9.36",
"@types/jasmine": "2.5.54",
"@types/node": "7.0.7",
"autoprefixer": "7.1.4",
"codelyzer": "3.2.0", "codelyzer": "3.2.0",
"concurrently": "^3.5.0",
"copyfiles": "1.2.0", "copyfiles": "1.2.0",
"cross-env": "5.0.5", "cross-env": "5.0.5",
"css-loader": "^0.28.7", "css-loader": "0.28.7",
"cssnano": "^3.10.0", "cssnano": "3.10.0",
"electron": "^1.7.6", "electron": "1.7.8",
"electron-packager": "^8.7.2", "electron-packager": "9.1.0",
"electron-reload": "1.2.1", "electron-reload": "1.2.1",
"exports-loader": "^0.6.4", "exports-loader": "0.6.4",
"extract-zip": "1.6.5", "file-loader": "0.11.2",
"file-loader": "^0.11.2",
"html-loader": "0.5.1", "html-loader": "0.5.1",
"html-webpack-plugin": "2.30.1", "istanbul-instrumenter-loader": "3.0.0",
"istanbul-instrumenter-loader": "^3.0.0", "jasmine-core": "2.8.0",
"jasmine-core": "~2.8.0", "jasmine-spec-reporter": "4.2.1",
"jasmine-spec-reporter": "~4.2.1",
"jquery": "3.2.1", "jquery": "3.2.1",
"json-loader": "^0.5.7", "json-loader": "0.5.7",
"karma": "~1.7.1", "karma": "1.7.1",
"karma-chrome-launcher": "~2.2.0", "karma-chrome-launcher": "2.2.0",
"karma-cli": "~1.0.1", "karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "^1.3.0", "karma-coverage-istanbul-reporter": "1.3.0",
"karma-electron": "^5.2.1", "karma-jasmine": "1.1.0",
"karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "0.2.2",
"karma-jasmine-html-reporter": "^0.2.2", "karma-sourcemap-loader": "0.3.7",
"karma-sourcemap-loader": "^0.3.7", "less-loader": "4.0.5",
"less-loader": "^4.0.5",
"minimist": "1.2.0", "minimist": "1.2.0",
"mkdirp": "0.5.1", "mkdirp": "0.5.1",
"node-sass": "^4.5.3", "npm-run-all": "4.1.1",
"postcss-loader": "^1.3.3", "node-sass": "4.5.3",
"postcss-url": "^6.0.4", "postcss-loader": "2.0.6",
"protractor": "~5.1.2", "postcss-url": "7.1.2",
"raw-loader": "^0.5.1", "protractor": "5.1.2",
"sass-loader": "^6.0.6", "raw-loader": "0.5.1",
"script-loader": "^0.7.1", "sass-loader": "6.0.6",
"source-map-loader": "^0.2.1", "script-loader": "0.7.1",
"style-loader": "^0.18.2", "source-map-loader": "0.2.1",
"stylus-loader": "^3.0.1", "style-loader": "0.18.2",
"ts-node": "~3.3.0", "stylus-loader": "3.0.1",
"tslint": "~5.7.0", "ts-node": "3.3.0",
"tslint": "5.7.0",
"typescript": "2.5.2", "typescript": "2.5.2",
"url-loader": "^0.5.9", "url-loader": "0.5.9",
"webdriver-manager": "12.0.6", "webdriver-manager": "12.0.6",
"webpack": "^3.6.0", "webpack": "3.6.0",
"webpack-dev-server": "~2.8.2" "webpack-dev-server": "2.8.2"
} }
} }
module.exports = {};
\ No newline at end of file
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
const { SpecReporter } = require('jasmine-spec-reporter'); const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = { exports.config = {
allScriptsTimeout: 11000, allScriptsTimeout: 25000,
getPageTimeout: 15000,
delayBrowserTimeInSeconds: 0,
specs: [ specs: [
'./e2e/**/*.e2e-spec.ts' './e2e/**/*.e2e-spec.ts'
], ],
...@@ -17,7 +19,7 @@ exports.config = { ...@@ -17,7 +19,7 @@ exports.config = {
}, },
directConnect: true, directConnect: true,
baseUrl: 'http://localhost:4200/', baseUrl: 'http://localhost:4200/',
framework: 'jasmine', framework: 'jasmine2',
jasmineNodeOpts: { jasmineNodeOpts: {
showColors: true, showColors: true,
defaultTimeoutInterval: 30000, defaultTimeoutInterval: 30000,
......
...@@ -19,7 +19,7 @@ export class AppComponent implements OnInit { ...@@ -19,7 +19,7 @@ export class AppComponent implements OnInit {
constructor(private router: Router, private apiService: ApiService, private titleService: Title) {} constructor(private router: Router, private apiService: ApiService, private titleService: Title) {}
private errorMessage: any; private errorMessage: any;
private responseMessage: any; private responseMessage: any;
private loading: boolean = true; public loading: boolean = true;
ngOnInit() { ngOnInit() {
this.setTitle(); this.setTitle();
......
...@@ -18,7 +18,7 @@ export class LoginComponent implements OnInit { ...@@ -18,7 +18,7 @@ export class LoginComponent implements OnInit {
} }
private openWalletForm: FormGroup; private openWalletForm: FormGroup;
private hasWallet: boolean = false; public hasWallet: boolean = false;
private wallets: [string]; private wallets: [string];
private isDecrypting = false; private isDecrypting = false;
......
...@@ -21,10 +21,10 @@ export class CreateComponent implements OnInit { ...@@ -21,10 +21,10 @@ export class CreateComponent implements OnInit {
this.buildCreateForm(); this.buildCreateForm();
} }
private createWalletForm: FormGroup; public createWalletForm: FormGroup;
private newWallet: WalletCreation; private newWallet: WalletCreation;
private mnemonic: string; private mnemonic: string;
private isCreating: Boolean = false; public isCreating: boolean = false;
ngOnInit() { ngOnInit() {
this.getNewMnemonic(); this.getNewMnemonic();
...@@ -95,11 +95,11 @@ export class CreateComponent implements OnInit { ...@@ -95,11 +95,11 @@ export class CreateComponent implements OnInit {
} }
}; };
private onBackClicked() { public onBackClicked() {
this.router.navigate(["/setup"]); this.router.navigate(["/setup"]);
} }
private onCreateClicked() { public onCreateClicked() {
this.isCreating = true; this.isCreating = true;
if (this.mnemonic) { if (this.mnemonic) {
this.newWallet = new WalletCreation( this.newWallet = new WalletCreation(
......
...@@ -19,10 +19,10 @@ export class RecoverComponent implements OnInit { ...@@ -19,10 +19,10 @@ export class RecoverComponent implements OnInit {
} }
private recoverWalletForm: FormGroup; public recoverWalletForm: FormGroup;
private creationDate: Date; public creationDate: Date;
private walletRecovery: WalletRecovery; private walletRecovery: WalletRecovery;
private isRecovering: Boolean = false; public isRecovering: boolean = false;
private responseMessage: string; private responseMessage: string;
private errorMessage: string; private errorMessage: string;
...@@ -86,11 +86,11 @@ export class RecoverComponent implements OnInit { ...@@ -86,11 +86,11 @@ export class RecoverComponent implements OnInit {
}, },
}; };
private onBackClicked() { public onBackClicked() {
this.router.navigate(["/setup"]); this.router.navigate(["/setup"]);
} }
private onRecoverClicked(){ public onRecoverClicked(){
this.isRecovering = true; this.isRecovering = true;
this.walletRecovery = new WalletRecovery( this.walletRecovery = new WalletRecovery(
this.recoverWalletForm.get("walletName").value, this.recoverWalletForm.get("walletName").value,
......
...@@ -9,15 +9,15 @@ import { Router } from '@angular/router'; ...@@ -9,15 +9,15 @@ import { Router } from '@angular/router';
}) })
export class SetupComponent { export class SetupComponent {
constructor(private router: Router, private location: Location) {} constructor(private router: Router, private location: Location) {}
private onCreateClicked() { public onCreateClicked() {
this.router.navigate(['/setup/create']); this.router.navigate(['/setup/create']);
} }
private onRecoverClicked() { public onRecoverClicked() {
this.router.navigate(['/setup/recover']); this.router.navigate(['/setup/recover']);
} }
private onBackClicked() { public onBackClicked() {
this.router.navigate(['']); this.router.navigate(['']);
} }
} }
...@@ -21,9 +21,9 @@ import { Subscription } from 'rxjs/Subscription'; ...@@ -21,9 +21,9 @@ import { Subscription } from 'rxjs/Subscription';
export class DashboardComponent implements OnInit { export class DashboardComponent implements OnInit {
constructor(private apiService: ApiService, private globalService: GlobalService, private modalService: NgbModal) {} constructor(private apiService: ApiService, private globalService: GlobalService, private modalService: NgbModal) {}
private confirmedBalance: number; public confirmedBalance: number;
private unconfirmedBalance: number; public unconfirmedBalance: number;
private transactions: any; public transactions: any;
private walletBalanceSubscription: Subscription; private walletBalanceSubscription: Subscription;
private walletHistorySubscription: Subscription; private walletHistorySubscription: Subscription;
...@@ -35,15 +35,15 @@ export class DashboardComponent implements OnInit { ...@@ -35,15 +35,15 @@ export class DashboardComponent implements OnInit {
this.cancelSubscriptions(); this.cancelSubscriptions();
}; };
private openSendDialog() { public openSendDialog() {
const modalRef = this.modalService.open(SendComponent); const modalRef = this.modalService.open(SendComponent);
}; };
private openReceiveDialog() { public openReceiveDialog() {
const modalRef = this.modalService.open(ReceiveComponent); const modalRef = this.modalService.open(ReceiveComponent);
}; };
private openTransactionDetailDialog(transaction: any) { public openTransactionDetailDialog(transaction: any) {
const modalRef = this.modalService.open(TransactionDetailsComponent); const modalRef = this.modalService.open(TransactionDetailsComponent);
modalRef.componentInstance.transaction = transaction; modalRef.componentInstance.transaction = transaction;
} }
......
...@@ -20,7 +20,7 @@ import { TransactionDetailsComponent } from '../transaction-details/transaction- ...@@ -20,7 +20,7 @@ import { TransactionDetailsComponent } from '../transaction-details/transaction-
export class HistoryComponent { export class HistoryComponent {
constructor(private apiService: ApiService, private globalService: GlobalService, private modalService: NgbModal) {} constructor(private apiService: ApiService, private globalService: GlobalService, private modalService: NgbModal) {}
private transactions: any; public transactions: any;
private errorMessage: string; private errorMessage: string;
private walletHistorySubscription: Subscription; private walletHistorySubscription: Subscription;
......
...@@ -10,12 +10,12 @@ import {NgbModal, NgbActiveModal} from '@ng-bootstrap/ng-bootstrap'; ...@@ -10,12 +10,12 @@ import {NgbModal, NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
}) })
export class LogoutConfirmationComponent implements OnInit { export class LogoutConfirmationComponent implements OnInit {
constructor(private activeModal: NgbActiveModal, private router: Router) { } constructor(public activeModal: NgbActiveModal, private router: Router) { }
ngOnInit() { ngOnInit() {
} }
private onLogout() { public onLogout() {
this.activeModal.close(); this.activeModal.close();
this.router.navigate(['/login']); this.router.navigate(['/login']);
} }
......
...@@ -16,15 +16,15 @@ import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; ...@@ -16,15 +16,15 @@ import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
export class ReceiveComponent { export class ReceiveComponent {
constructor(private apiService: ApiService, private globalService: GlobalService, public activeModal: NgbActiveModal) {} constructor(private apiService: ApiService, private globalService: GlobalService, public activeModal: NgbActiveModal) {}
private address: any = ""; public address: any = "";
private copied: boolean = false; public copied: boolean = false;
private errorMessage: string; private errorMessage: string;
ngOnInit() { ngOnInit() {
this.getUnusedReceiveAddresses(); this.getUnusedReceiveAddresses();
} }
private onCopiedClick() { public onCopiedClick() {
this.copied = true; this.copied = true;
} }
......
...@@ -14,7 +14,7 @@ export class SendConfirmationComponent implements OnInit { ...@@ -14,7 +14,7 @@ export class SendConfirmationComponent implements OnInit {
@Input() transaction: any; @Input() transaction: any;
constructor(private globalService: GlobalService, public activeModal: NgbActiveModal) { } constructor(private globalService: GlobalService, public activeModal: NgbActiveModal) { }
private showDetails: boolean = false; public showDetails: boolean = false;
private coinUnit: string; private coinUnit: string;
ngOnInit() { ngOnInit() {
......
...@@ -21,12 +21,12 @@ export class SendComponent implements OnInit { ...@@ -21,12 +21,12 @@ export class SendComponent implements OnInit {
this.buildSendForm(); this.buildSendForm();
} }
private sendForm: FormGroup; public sendForm: FormGroup;
private responseMessage: any; private responseMessage: any;
private errorMessage: string; private errorMessage: string;
private coinUnit: string; public coinUnit: string;
private transaction: TransactionBuilding; private transaction: TransactionBuilding;
private isSending: Boolean = false; public isSending: boolean = false;
ngOnInit() { ngOnInit() {
this.coinUnit = this.globalService.getCoinUnit(); this.coinUnit = this.globalService.getCoinUnit();
...@@ -84,7 +84,7 @@ export class SendComponent implements OnInit { ...@@ -84,7 +84,7 @@ export class SendComponent implements OnInit {
} }
}; };
private send() { public send() {
this.isSending = true; this.isSending = true;
this.transaction = new TransactionBuilding( this.transaction = new TransactionBuilding(
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<img src="../../../assets/images/ico_bitcoin.svg" alt="Bitcoin"> <img src="../../../assets/images/ico_bitcoin.svg" alt="Bitcoin">
<span class="bar"></span> <span class="bar"></span>
</li> </li>
<li (click)="loadStratisWallet()" [class.active]="!bitcoinActive"> <li (click)="loadStratisWallet()" [class.active]="stratisActive">
<img src="../../../assets/images/ico_stratis.svg" alt="Stratis"> <img src="../../../assets/images/ico_stratis.svg" alt="Stratis">
<span class="bar"></span> <span class="bar"></span>
</li> </li>
......
...@@ -13,35 +13,36 @@ import { GlobalService } from '../../shared/services/global.service'; ...@@ -13,35 +13,36 @@ import { GlobalService } from '../../shared/services/global.service';
export class SidebarComponent implements OnInit { export class SidebarComponent implements OnInit {
constructor(private globalService: GlobalService, private router: Router, private modalService: NgbModal) { } constructor(private globalService: GlobalService, private router: Router, private modalService: NgbModal) { }
private bitcoinActive: Boolean; public bitcoinActive: boolean;
public stratisActive: boolean;
ngOnInit() { ngOnInit() {
if (this.globalService.getCoinName() === "Bitcoin" || this.globalService.getCoinName() === "TestBitcoin") { if (this.globalService.getCoinName() === "Bitcoin" || this.globalService.getCoinName() === "TestBitcoin") {
this.bitcoinActive = true; this.bitcoinActive = true;
this.stratisActive = false;
} else if (this.globalService.getCoinName() === "Stratis" || this.globalService.getCoinName() === "TestStratis") { } else if (this.globalService.getCoinName() === "Stratis" || this.globalService.getCoinName() === "TestStratis") {
this.bitcoinActive = false; this.bitcoinActive = false;
this.stratisActive = true;
} }
} }
private loadBitcoinWallet() { public loadBitcoinWallet() {
this.toggleClass(); this.bitcoinActive = true;
this.stratisActive = false;
this.globalService.setCoinName("TestBitcoin"); this.globalService.setCoinName("TestBitcoin");
this.globalService.setCoinUnit("TBTC"); this.globalService.setCoinUnit("TBTC");
this.router.navigate(['/wallet']); this.router.navigate(['/wallet']);
} }
private loadStratisWallet() { public loadStratisWallet() {
this.toggleClass(); this.bitcoinActive = false;
this.stratisActive = true;
this.globalService.setCoinName("TestStratis"); this.globalService.setCoinName("TestStratis");
this.globalService.setCoinUnit("TSTRAT"); this.globalService.setCoinUnit("TSTRAT");
this.router.navigate(['/wallet/stratis-wallet']); this.router.navigate(['/wallet/stratis-wallet']);
} }
private toggleClass(){ public logOut() {
this.bitcoinActive = !this.bitcoinActive;
}
private logOut() {
const modalRef = this.modalService.open(LogoutConfirmationComponent); const modalRef = this.modalService.open(LogoutConfirmationComponent);
} }
} }
...@@ -15,12 +15,12 @@ import { Subscription } from 'rxjs/Subscription'; ...@@ -15,12 +15,12 @@ import { Subscription } from 'rxjs/Subscription';
export class StatusBarComponent implements OnInit { export class StatusBarComponent implements OnInit {
private generalWalletInfoSubscription: Subscription; private generalWalletInfoSubscription: Subscription;
private lastBlockSyncedHeight: number; public lastBlockSyncedHeight: number;
private chainTip: number; public chainTip: number;
private isChainSynced: boolean; private isChainSynced: boolean;
private connectedNodes: number = 0; public connectedNodes: number = 0;
private percentSyncedNumber: number = 0; private percentSyncedNumber: number = 0;
private percentSynced: string; public percentSynced: string;
constructor(private apiService: ApiService, private globalService: GlobalService) { } constructor(private apiService: ApiService, private globalService: GlobalService) { }
......
...@@ -12,12 +12,12 @@ export class TransactionDetailsComponent implements OnInit { ...@@ -12,12 +12,12 @@ export class TransactionDetailsComponent implements OnInit {
@Input() transaction; @Input() transaction;
constructor(public activeModal: NgbActiveModal) {} constructor(public activeModal: NgbActiveModal) {}
private copied: boolean = false; public copied: boolean = false;
ngOnInit() { ngOnInit() {
} }
private onCopiedClick() { public onCopiedClick() {
this.copied = true; this.copied = true;
} }
......
...@@ -27,4 +27,8 @@ ...@@ -27,4 +27,8 @@
"dom" "dom"
] ]
} }
,
"exclude": [
"node_modules"
]
} }
...@@ -5,9 +5,10 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); ...@@ -5,9 +5,10 @@ const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin');
const autoprefixer = require('autoprefixer'); const autoprefixer = require('autoprefixer');
const postcssUrl = require('postcss-url'); const postcssUrl = require('postcss-url');
const ConcatPlugin = require('webpack-concat-plugin');
const { NoEmitOnErrorsPlugin, LoaderOptionsPlugin, DefinePlugin, HashedModuleIdsPlugin } = require('webpack'); const { NoEmitOnErrorsPlugin, LoaderOptionsPlugin, DefinePlugin, HashedModuleIdsPlugin } = require('webpack');
const { GlobCopyWebpackPlugin, BaseHrefWebpackPlugin } = require('@angular/cli/plugins/webpack'); const { GlobCopyWebpackPlugin, BaseHrefWebpackPlugin, InsertConcatAssetsWebpackPlugin } = require('@angular/cli/plugins/webpack');
const { CommonsChunkPlugin, UglifyJsPlugin } = require('webpack').optimize; const { CommonsChunkPlugin, UglifyJsPlugin } = require('webpack').optimize;
const { AotPlugin } = require('@ngtools/webpack'); const { AotPlugin } = require('@ngtools/webpack');
...@@ -18,6 +19,18 @@ const deployUrl = ""; ...@@ -18,6 +19,18 @@ const deployUrl = "";
const isProd = (process.env.NODE_ENV === 'production'); const isProd = (process.env.NODE_ENV === 'production');
//add all external css to be added in our index.html--> like as if it's .angular-cli.json
const styles = [
"./src/styles.css"
];
//we add all our external scripts we want to load externally, like inserting in our index.html --> like as if it's .angular-cli.json
const scripts = [
];
//create file path for each , so we use for our excludes and includes where needed
let style_paths = styles.map(style_src => path.join(process.cwd(), style_src));
function getPlugins() { function getPlugins() {
var plugins = []; var plugins = [];
...@@ -30,6 +43,19 @@ function getPlugins() { ...@@ -30,6 +43,19 @@ function getPlugins() {
plugins.push(new NoEmitOnErrorsPlugin()); plugins.push(new NoEmitOnErrorsPlugin());
if(scripts.length > 0){
plugins.push(new ConcatPlugin({
"uglify": false,
"sourceMap": true,
"name": "scripts",
"fileName": "[name].bundle.js",
"filesToConcat": scripts
}));
plugins.push(new InsertConcatAssetsWebpackPlugin([
"scripts"
]));
}
plugins.push(new GlobCopyWebpackPlugin({ plugins.push(new GlobCopyWebpackPlugin({
"patterns": [ "patterns": [
"assets", "assets",
...@@ -225,9 +251,7 @@ module.exports = { ...@@ -225,9 +251,7 @@ module.exports = {
"polyfills": [ "polyfills": [
"./src/polyfills.ts" "./src/polyfills.ts"
], ],
"styles": [ "styles": styles
"./src/styles.css"
]
}, },
"output": { "output": {
"path": path.join(process.cwd(), "dist"), "path": path.join(process.cwd(), "dist"),
...@@ -258,9 +282,7 @@ module.exports = { ...@@ -258,9 +282,7 @@ module.exports = {
"loader": "url-loader?name=[name].[hash:20].[ext]&limit=10000" "loader": "url-loader?name=[name].[hash:20].[ext]&limit=10000"
}, },
{ {
"exclude": [ "exclude": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.css$/, "test": /\.css$/,
"loaders": [ "loaders": [
"exports-loader?module.exports.toString()", "exports-loader?module.exports.toString()",
...@@ -269,9 +291,7 @@ module.exports = { ...@@ -269,9 +291,7 @@ module.exports = {
] ]
}, },
{ {
"exclude": [ "exclude": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.scss$|\.sass$/, "test": /\.scss$|\.sass$/,
"loaders": [ "loaders": [
"exports-loader?module.exports.toString()", "exports-loader?module.exports.toString()",
...@@ -281,9 +301,7 @@ module.exports = { ...@@ -281,9 +301,7 @@ module.exports = {
] ]
}, },
{ {
"exclude": [ "exclude": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.less$/, "test": /\.less$/,
"loaders": [ "loaders": [
"exports-loader?module.exports.toString()", "exports-loader?module.exports.toString()",
...@@ -293,9 +311,7 @@ module.exports = { ...@@ -293,9 +311,7 @@ module.exports = {
] ]
}, },
{ {
"exclude": [ "exclude": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.styl$/, "test": /\.styl$/,
"loaders": [ "loaders": [
"exports-loader?module.exports.toString()", "exports-loader?module.exports.toString()",
...@@ -305,9 +321,7 @@ module.exports = { ...@@ -305,9 +321,7 @@ module.exports = {
] ]
}, },
{ {
"include": [ "include": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.css$/, "test": /\.css$/,
"loaders": ExtractTextPlugin.extract({ "loaders": ExtractTextPlugin.extract({
"use": [ "use": [
...@@ -319,9 +333,7 @@ module.exports = { ...@@ -319,9 +333,7 @@ module.exports = {
}) })
}, },
{ {
"include": [ "include": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.scss$|\.sass$/, "test": /\.scss$|\.sass$/,
"loaders": ExtractTextPlugin.extract({ "loaders": ExtractTextPlugin.extract({
"use": [ "use": [
...@@ -334,9 +346,7 @@ module.exports = { ...@@ -334,9 +346,7 @@ module.exports = {
}) })
}, },
{ {
"include": [ "include": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.less$/, "test": /\.less$/,
"loaders": ExtractTextPlugin.extract({ "loaders": ExtractTextPlugin.extract({
"use": [ "use": [
...@@ -349,9 +359,7 @@ module.exports = { ...@@ -349,9 +359,7 @@ module.exports = {
}) })
}, },
{ {
"include": [ "include": style_paths,
path.join(process.cwd(), "src/styles.css")
],
"test": /\.styl$/, "test": /\.styl$/,
"loaders": ExtractTextPlugin.extract({ "loaders": ExtractTextPlugin.extract({
"use": [ "use": [
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment