diff --git a/client/.bootstraprc b/client/.bootstraprc
index b7468b2fe..d266656c1 100644
--- a/client/.bootstraprc
+++ b/client/.bootstraprc
@@ -10,9 +10,9 @@ useCustomIconFontPath: true
# Webpack loaders, order matters
styleLoaders:
- - style
- - css
- - sass
+ - style-loader
+ - css-loader
+ - sass-loader
# Extract styles to stand-alone css file
# Different settings for different environments can be used,
@@ -94,7 +94,7 @@ styles:
progress-bars: true
media: true
list-group: false
- panels: false
+ panels: true
wells: false
responsive-embed: true
close: true
diff --git a/client/config/webpack.common.js b/client/config/webpack.common.js
index 80d77b400..6067d94e7 100644
--- a/client/config/webpack.common.js
+++ b/client/config/webpack.common.js
@@ -119,8 +119,25 @@ module.exports = function (options) {
{
test: /\.(sass|scss)$/,
- use: ['css-to-string-loader', 'css-loader?sourceMap', 'resolve-url-loader', 'sass-loader?sourceMap'],
- exclude: [ helpers.root('src', 'styles') ]
+ use: [
+ 'css-to-string-loader',
+ 'css-loader?sourceMap',
+ 'resolve-url-loader',
+ {
+ loader: 'sass-loader',
+ options: {
+ sourceMap: true
+ }
+ },
+ {
+ loader: 'sass-resources-loader',
+ options: {
+ resources: [
+ helpers.root('src/sass/_variables.scss')
+ ]
+ }
+ }
+ ]
},
{ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: 'url-loader?limit=10000&minetype=application/font-woff' },
{ test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: 'file-loader' },
@@ -133,7 +150,10 @@ module.exports = function (options) {
{
test: /\.html$/,
loader: 'raw-loader',
- exclude: [ helpers.root('src/index.html'), helpers.root('src/standalone/videos/embed.html') ]
+ exclude: [
+ helpers.root('src/index.html'),
+ helpers.root('src/standalone/videos/embed.html')
+ ]
}
]
@@ -262,7 +282,8 @@ module.exports = function (options) {
new LoaderOptionsPlugin({
options: {
sassLoader: {
- precision: 10
+ precision: 10,
+ includePaths: [ helpers.root('src/sass') ]
}
}
}),
diff --git a/client/config/webpack.dev.js b/client/config/webpack.dev.js
index 3468dba78..5e0f36d7f 100644
--- a/client/config/webpack.dev.js
+++ b/client/config/webpack.dev.js
@@ -90,23 +90,24 @@ module.exports = function (env) {
module: {
- rules: [
- {
- test: /\.ts$/,
- use: [
- {
- loader: 'tslint-loader',
- options: {
- configFile: 'tslint.json'
- }
- }
- ],
- exclude: [
- /\.(spec|e2e)\.ts$/,
- /node_modules\//
- ]
- }
- ]
+ // Too slow, life is short
+ // rules: [
+ // {
+ // test: /\.ts$/,
+ // use: [
+ // {
+ // loader: 'tslint-loader',
+ // options: {
+ // configFile: 'tslint.json'
+ // }
+ // }
+ // ],
+ // exclude: [
+ // /\.(spec|e2e)\.ts$/,
+ // /node_modules\//
+ // ]
+ // }
+ // ]
},
plugins: [
@@ -202,6 +203,7 @@ module.exports = function (env) {
tslint: {
emitErrors: false,
failOnHint: false,
+ typeCheck: true,
resourcePath: 'src'
},
diff --git a/client/package.json b/client/package.json
index 84cb8e13a..998ae8fcc 100644
--- a/client/package.json
+++ b/client/package.json
@@ -18,10 +18,10 @@
},
"license": "GPLv3",
"dependencies": {
- "@angular/animations": "^4.0.2",
+ "@angular/animations": "~4.0.0",
"@angular/common": "~4.0.0",
"@angular/compiler": "~4.0.0",
- "@angular/compiler-cli": "^4.0.0",
+ "@angular/compiler-cli": "~4.0.0",
"@angular/core": "~4.0.0",
"@angular/forms": "~4.0.0",
"@angular/http": "~4.0.0",
@@ -43,14 +43,14 @@
"assets-webpack-plugin": "^3.4.0",
"awesome-typescript-loader": "3.0.0-beta.18",
"bootstrap": "^3.3.6",
- "bootstrap-loader": "2.0.0-beta.18",
+ "bootstrap-loader": "2.0.0",
"bootstrap-sass": "^3.3.6",
"copy-webpack-plugin": "^4.0.0",
"core-js": "^2.4.1",
- "css-loader": "^0.25.0",
+ "css-loader": "^0.28.0",
"css-to-string-loader": "^0.1.2",
"es6-shim": "^0.35.0",
- "file-loader": "^0.9.0",
+ "file-loader": "^0.11.0",
"html-webpack-plugin": "^2.19.0",
"ie-shim": "^0.1.0",
"intl": "^1.2.4",
@@ -59,7 +59,7 @@
"ng2-file-upload": "^1.1.4-2",
"ng2-smart-table": "1.0.3",
"ng2-tag-input": "^1.0.5",
- "ngc-webpack": "1.1.0",
+ "ngc-webpack": "2.0.0",
"ngx-bootstrap": "1.6.6",
"node-sass": "^4.1.1",
"normalize.css": "^5.0.0",
@@ -68,11 +68,12 @@
"reflect-metadata": "^0.1.9",
"resolve-url-loader": "^1.6.0",
"rxjs": "~5.0.0-rc.5",
- "sass-loader": "^4.0.2",
+ "sass-loader": "^6.0.3",
+ "sass-resources-loader": "^1.2.1",
"script-ext-html-webpack-plugin": "^1.3.2",
- "source-map-loader": "^0.1.5",
+ "source-map-loader": "^0.2.1",
"string-replace-loader": "^1.0.3",
- "style-loader": "^0.13.1",
+ "style-loader": "^0.16.1",
"tslib": "^1.5.0",
"tslint": "~4.3.1",
"tslint-loader": "^3.3.0",
@@ -82,14 +83,14 @@
"videojs-dock": "^2.0.2",
"webpack": "^2.2.0",
"webpack-md5-hash": "0.0.5",
- "webpack-merge": "~2.3.1",
+ "webpack-merge": "~4.1.0",
"webpack-notifier": "^1.3.0",
"webtorrent": "^0.98.0",
- "zone.js": "~0.7.2"
+ "zone.js": "~0.8.5"
},
"devDependencies": {
"add-asset-html-webpack-plugin": "^1.0.2",
- "codelyzer": "^2.0.0",
+ "codelyzer": "^3.0.0-beta.4",
"standard": "^10.0.0",
"webpack-bundle-analyzer": "^2.2.1",
"webpack-dll-bundles-plugin": "^1.0.0-beta.5"
diff --git a/client/src/app/+admin/friends/friend-list/friend-list.component.html b/client/src/app/+admin/friends/friend-list/friend-list.component.html
index 254d0c65e..e15ecde14 100644
--- a/client/src/app/+admin/friends/friend-list/friend-list.component.html
+++ b/client/src/app/+admin/friends/friend-list/friend-list.component.html
@@ -2,10 +2,10 @@