diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts
index 8327f3c3..99860d83 100644
--- a/e2e/src/app.po.ts
+++ b/e2e/src/app.po.ts
@@ -1,11 +1,11 @@
import { browser, by, element } from 'protractor';
export class Fuse2Page {
- navigateTo() {
+ navigateTo(): any {
return browser.get('/');
}
- getParagraphText() {
+ getParagraphText(): any {
return element(by.css('app-root h1')).getText();
}
}
diff --git a/package-lock.json b/package-lock.json
index d9f6e47e..733b7415 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -434,6 +434,148 @@
"integrity": "sha1-NOZY7T2jfyOwogDi2lqJvpK7IJ8=",
"dev": true
},
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz",
+ "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.0.0-beta.51"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz",
+ "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.51",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.5",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
+ "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz",
+ "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.0.0-beta.51",
+ "@babel/template": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz",
+ "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.51"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz",
+ "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.51"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz",
+ "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz",
+ "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=",
+ "dev": true
+ },
+ "@babel/template": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz",
+ "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.51",
+ "@babel/parser": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz",
+ "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.51",
+ "@babel/generator": "7.0.0-beta.51",
+ "@babel/helper-function-name": "7.0.0-beta.51",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.51",
+ "@babel/parser": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51",
+ "debug": "^3.1.0",
+ "globals": "^11.1.0",
+ "invariant": "^2.2.0",
+ "lodash": "^4.17.5"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "globals": {
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz",
+ "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.5",
+ "to-fast-properties": "^2.0.0"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ }
+ }
+ },
"@ngrx/effects": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-6.1.0.tgz",
@@ -578,9 +720,9 @@
"dev": true
},
"@types/selenium-webdriver": {
- "version": "2.53.43",
- "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz",
- "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==",
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.10.tgz",
+ "integrity": "sha512-ikB0JHv6vCR1KYUQAzTO4gi/lXLElT4Tx+6De2pc/OZwizE9LRNiTa+U8TBFKBD/nntPnr/MPSHSnOTybjhqNA==",
"dev": true
},
"@webassemblyjs/ast": {
@@ -828,9 +970,9 @@
}
},
"adm-zip": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz",
- "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=",
+ "version": "0.4.11",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz",
+ "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==",
"dev": true
},
"after": {
@@ -1704,6 +1846,15 @@
"electron-to-chromium": "^1.3.47"
}
},
+ "browserstack": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.1.tgz",
+ "integrity": "sha512-O8VMT64P9NOLhuIoD4YngyxBURefaSdR4QdhG8l6HZ9VxtU7jc3m6jLufFwKA5gaf7fetfB2TnRJnMxyob+heg==",
+ "dev": true,
+ "requires": {
+ "https-proxy-agent": "^2.2.1"
+ }
+ },
"buffer": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
@@ -2133,9 +2284,9 @@
"dev": true
},
"compare-versions": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz",
- "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.1.tgz",
+ "integrity": "sha512-GkIcfJ9sDt4+gS+RWH3X+kR7ezuKdu3fg2oA9nRA8HZoqZwAKv3ml3TyfB9OyV2iFXxCw7q5XfV6SyPbSCT2pw==",
"dev": true
},
"component-bind": {
@@ -5826,9 +5977,9 @@
}
},
"istanbul-api": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz",
- "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.6.tgz",
+ "integrity": "sha512-luJDnB1uJ5Qsg/WwusGfNXayQ4598yDgW5S0nUS85T576m1LVJzSqLrCDULkT6sTQXVKHa54093gNuCKumMCjQ==",
"dev": true,
"requires": {
"async": "^2.1.4",
@@ -5836,10 +5987,10 @@
"fileset": "^2.0.2",
"istanbul-lib-coverage": "^1.2.0",
"istanbul-lib-hook": "^1.2.0",
- "istanbul-lib-instrument": "^1.10.1",
+ "istanbul-lib-instrument": "^2.1.0",
"istanbul-lib-report": "^1.1.4",
- "istanbul-lib-source-maps": "^1.2.4",
- "istanbul-reports": "^1.3.0",
+ "istanbul-lib-source-maps": "^1.2.5",
+ "istanbul-reports": "^1.4.1",
"js-yaml": "^3.7.0",
"mkdirp": "^0.5.1",
"once": "^1.4.0"
@@ -5853,6 +6004,29 @@
"requires": {
"lodash": "^4.17.10"
}
+ },
+ "istanbul-lib-instrument": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz",
+ "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==",
+ "dev": true,
+ "requires": {
+ "@babel/generator": "7.0.0-beta.51",
+ "@babel/parser": "7.0.0-beta.51",
+ "@babel/template": "7.0.0-beta.51",
+ "@babel/traverse": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51",
+ "istanbul-lib-coverage": "^2.0.1",
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "istanbul-lib-coverage": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
+ "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==",
+ "dev": true
+ }
+ }
}
}
},
@@ -5975,12 +6149,12 @@
}
},
"istanbul-reports": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz",
- "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.0.tgz",
+ "integrity": "sha512-HeZG0WHretI9FXBni5wZ9DOgNziqDCEwetxnme5k1Vv5e81uTqcsy3fMH99gXGDGKr1ea87TyGseDMa2h4HEUA==",
"dev": true,
"requires": {
- "handlebars": "^4.0.3"
+ "handlebars": "^4.0.11"
}
},
"jasmine": {
@@ -6356,9 +6530,9 @@
}
},
"karma-coverage-istanbul-reporter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.1.tgz",
- "integrity": "sha512-UcgrHkFehI5+ivMouD8NH/UOHiX4oCAtwaANylzPFdcAuD52fnCUuelacq2gh8tZ4ydhU3+xiXofSq7j5Ehygw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.2.tgz",
+ "integrity": "sha512-IIIrfsfYJKkAyyjRrBx8CZRl2UXi2OSrxKRAA95mkpOMF3Zw5FpjE+v79pWuwu1Keu0pdjcfElmmOuAEjFQshA==",
"dev": true,
"requires": {
"istanbul-api": "^1.3.1",
@@ -7977,15 +8151,16 @@
"dev": true
},
"protractor": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.3.2.tgz",
- "integrity": "sha512-pw4uwwiy5lHZjIguxNpkEwJJa7hVz+bJsvaTI+IbXlfn2qXwzbF8eghW/RmrZwE2sGx82I8etb8lVjQ+JrjejA==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.0.tgz",
+ "integrity": "sha512-6TSYqMhUUzxr4/wN0ttSISqPMKvcVRXF4k8jOEpGWD8OioLak4KLgfzHK9FJ49IrjzRrZ+Mx1q2Op8Rk0zEcnQ==",
"dev": true,
"requires": {
"@types/node": "^6.0.46",
"@types/q": "^0.0.32",
- "@types/selenium-webdriver": "~2.53.39",
+ "@types/selenium-webdriver": "^3.0.0",
"blocking-proxy": "^1.0.0",
+ "browserstack": "^1.5.1",
"chalk": "^1.1.3",
"glob": "^7.0.3",
"jasmine": "2.8.0",
@@ -7995,20 +8170,14 @@
"saucelabs": "^1.5.0",
"selenium-webdriver": "3.6.0",
"source-map-support": "~0.4.0",
- "webdriver-js-extender": "^1.0.0",
+ "webdriver-js-extender": "2.0.0",
"webdriver-manager": "^12.0.6"
},
"dependencies": {
"@types/node": {
- "version": "6.0.114",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.114.tgz",
- "integrity": "sha512-5ViC9dwf1VIAtrOFTvOuN04lJgw28eKjuy0Vg2Bd/fSlxKP2feCSkIw04ZgOENL2ywdWrtbkthp1XVLEjJmouw==",
- "dev": true
- },
- "adm-zip": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz",
- "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==",
+ "version": "6.0.116",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.116.tgz",
+ "integrity": "sha512-vToa8YEeulfyYg1gSOeHjvvIRqrokng62VMSj2hoZrwZNcYrp2h3AWo6KeBVuymIklQUaY5zgVJvVsC4KiiLkQ==",
"dev": true
},
"ansi-styles": {
@@ -10505,50 +10674,13 @@
}
},
"webdriver-js-extender": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz",
- "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.0.0.tgz",
+ "integrity": "sha512-fbyKiVu3azzIc5d4+26YfuPQcFTlgFQV5yQ/0OQj4Ybkl4g1YQuIPskf5v5wqwRJhHJnPHthB6tqCjWHOKLWag==",
"dev": true,
"requires": {
- "@types/selenium-webdriver": "^2.53.35",
- "selenium-webdriver": "^2.53.2"
- },
- "dependencies": {
- "sax": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz",
- "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=",
- "dev": true
- },
- "selenium-webdriver": {
- "version": "2.53.3",
- "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz",
- "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=",
- "dev": true,
- "requires": {
- "adm-zip": "0.4.4",
- "rimraf": "^2.2.8",
- "tmp": "0.0.24",
- "ws": "^1.0.1",
- "xml2js": "0.4.4"
- }
- },
- "tmp": {
- "version": "0.0.24",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz",
- "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=",
- "dev": true
- },
- "xml2js": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz",
- "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=",
- "dev": true,
- "requires": {
- "sax": "0.6.x",
- "xmlbuilder": ">=1.0.0"
- }
- }
+ "@types/selenium-webdriver": "^3.0.0",
+ "selenium-webdriver": "^3.0.1"
}
},
"webpack": {
diff --git a/package.json b/package.json
index 216971af..e69922e8 100644
--- a/package.json
+++ b/package.json
@@ -77,10 +77,10 @@
"jasmine-spec-reporter": "4.2.1",
"karma": "1.7.1",
"karma-chrome-launcher": "2.2.0",
- "karma-coverage-istanbul-reporter": "2.0.1",
+ "karma-coverage-istanbul-reporter": "2.0.2",
"karma-jasmine": "1.1.2",
"karma-jasmine-html-reporter": "0.2.2",
- "protractor": "5.3.2",
+ "protractor": "5.4.0",
"ts-node": "5.0.1",
"tslint": "5.9.1",
"typescript": "2.7.2",
diff --git a/src/@fuse/components/sidebar/sidebar.component.ts b/src/@fuse/components/sidebar/sidebar.component.ts
index 66c55c55..dccd90e1 100644
--- a/src/@fuse/components/sidebar/sidebar.component.ts
+++ b/src/@fuse/components/sidebar/sidebar.component.ts
@@ -1,4 +1,6 @@
-import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, Renderer2, RendererStyleFlags2, ViewEncapsulation } from '@angular/core';
+import {
+ ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, Renderer2, RendererStyleFlags2, ViewEncapsulation
+} from '@angular/core';
import { animate, AnimationBuilder, AnimationPlayer, style } from '@angular/animations';
import { ObservableMedia } from '@angular/flex-layout';
import { Subject } from 'rxjs';
diff --git a/src/@fuse/components/theme-options/theme-options.component.html b/src/@fuse/components/theme-options/theme-options.component.html
index 68b74a4b..197d7b4c 100644
--- a/src/@fuse/components/theme-options/theme-options.component.html
+++ b/src/@fuse/components/theme-options/theme-options.component.html
@@ -18,9 +18,10 @@
Color themes
- Default
- Default Dark
+ Default Light
Yellow Light
+ Blue-Gray Dark
+ Pink Dark
diff --git a/src/@fuse/components/theme-options/theme-options.component.ts b/src/@fuse/components/theme-options/theme-options.component.ts
index b774b72d..4c5adffd 100644
--- a/src/@fuse/components/theme-options/theme-options.component.ts
+++ b/src/@fuse/components/theme-options/theme-options.component.ts
@@ -66,6 +66,7 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
// noinspection TypeScriptValidateTypes
this.form = this._formBuilder.group({
colorTheme : new FormControl(),
+ customScrollbars: new FormControl(),
layout : this._formBuilder.group({
style : new FormControl(),
width : new FormControl(),
@@ -93,8 +94,7 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
hidden : new FormControl(),
position: new FormControl()
})
- }),
- customScrollbars: new FormControl()
+ })
});
// Subscribe to the config changes
@@ -188,7 +188,7 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
width : 'fullwidth',
navbar : {
primaryBackground : 'fuse-navy-700',
- secondaryBackground: 'indigo-600',
+ secondaryBackground: 'fuse-navy-900',
folded : false,
hidden : false,
position : 'left',
@@ -224,7 +224,7 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
width : 'fullwidth',
navbar : {
primaryBackground : 'fuse-navy-700',
- secondaryBackground: 'indigo-600',
+ secondaryBackground: 'fuse-navy-900',
folded : false,
hidden : false,
position : 'left',
@@ -260,7 +260,7 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
width : 'fullwidth',
navbar : {
primaryBackground : 'fuse-navy-700',
- secondaryBackground: 'indigo-600',
+ secondaryBackground: 'fuse-navy-900',
folded : false,
hidden : false,
position : 'left',
@@ -296,7 +296,7 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
width : 'fullwidth',
navbar : {
primaryBackground : 'fuse-navy-700',
- secondaryBackground: 'indigo-600',
+ secondaryBackground: 'fuse-navy-900',
folded : false,
hidden : false,
position : 'top',
@@ -339,5 +339,4 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy
{
this._fuseSidebarService.getSidebar(key).toggleOpen();
}
-
}
diff --git a/src/@fuse/components/theme-options/theme-options.module.ts b/src/@fuse/components/theme-options/theme-options.module.ts
index f9e6b043..68683798 100644
--- a/src/@fuse/components/theme-options/theme-options.module.ts
+++ b/src/@fuse/components/theme-options/theme-options.module.ts
@@ -2,7 +2,9 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { FlexLayoutModule } from '@angular/flex-layout';
-import { MatButtonModule, MatCheckboxModule, MatDividerModule, MatFormFieldModule, MatIconModule, MatOptionModule, MatRadioModule, MatSelectModule, MatSlideToggleModule } from '@angular/material';
+import {
+ MatButtonModule, MatCheckboxModule, MatDividerModule, MatFormFieldModule, MatIconModule, MatOptionModule, MatRadioModule, MatSelectModule, MatSlideToggleModule
+} from '@angular/material';
import { FuseDirectivesModule } from '@fuse/directives/directives';
import { FuseMaterialColorPickerModule } from '@fuse/components/material-color-picker/material-color-picker.module';
diff --git a/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts b/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts
index 7b79144c..5e4f189d 100644
--- a/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts
+++ b/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts
@@ -15,11 +15,11 @@ export class FuseMatSidenavHelperDirective implements OnInit, OnDestroy
@HostBinding('class.mat-is-locked-open')
isLockedOpen: boolean;
- @Input('fuseMatSidenavHelper')
+ @Input()
id: string;
- @Input('mat-is-locked-open')
- matIsLockedOpenBreakpoint: string;
+ @Input()
+ matIsLockedOpen: string;
// Private
private _unsubscribeAll: Subject;
@@ -58,7 +58,7 @@ export class FuseMatSidenavHelperDirective implements OnInit, OnDestroy
// Register the sidenav to the service
this._fuseMatSidenavHelperService.setSidenav(this.id, this._matSidenav);
- if ( this._observableMedia.isActive(this.matIsLockedOpenBreakpoint) )
+ if ( this._observableMedia.isActive(this.matIsLockedOpen) )
{
this.isLockedOpen = true;
this._matSidenav.mode = 'side';
@@ -74,7 +74,7 @@ export class FuseMatSidenavHelperDirective implements OnInit, OnDestroy
this._fuseMatchMediaService.onMediaChange
.pipe(takeUntil(this._unsubscribeAll))
.subscribe(() => {
- if ( this._observableMedia.isActive(this.matIsLockedOpenBreakpoint) )
+ if ( this._observableMedia.isActive(this.matIsLockedOpen) )
{
this.isLockedOpen = true;
this._matSidenav.mode = 'side';
@@ -105,8 +105,8 @@ export class FuseMatSidenavHelperDirective implements OnInit, OnDestroy
})
export class FuseMatSidenavTogglerDirective
{
- @Input('fuseMatSidenavToggler')
- id;
+ @Input()
+ id: string;
/**
* Constructor
@@ -126,7 +126,7 @@ export class FuseMatSidenavTogglerDirective
* On click
*/
@HostListener('click')
- onClick()
+ onClick(): void
{
this._fuseMatSidenavHelperService.getSidenav(this.id).toggle();
}
diff --git a/src/@fuse/mat-colors/index.ts b/src/@fuse/mat-colors/index.ts
index e2fd17e2..504a3669 100644
--- a/src/@fuse/mat-colors/index.ts
+++ b/src/@fuse/mat-colors/index.ts
@@ -687,7 +687,23 @@ const matColors = {
// tslint:disable-next-line
const matPresetColors = [
- '#ffebee', '#ffcdd2', '#ef9a9a', '#e57373', '#ef5350', '#f44336', '#e53935', '#d32f2f', '#c62828', '#b71c1c', '#ff8a80', '#ff5252', '#ff1744', '#d50000', '#fce4ec', '#f8bbd0', '#f48fb1', '#f06292', '#ec407a', '#e91e63', '#d81b60', '#c2185b', '#ad1457', '#880e4f', '#ff80ab', '#ff4081', '#f50057', '#c51162', '#f3e5f5', '#e1bee7', '#ce93d8', '#ba68c8', '#ab47bc', '#9c27b0', '#8e24aa', '#7b1fa2', '#6a1b9a', '#4a148c', '#ea80fc', '#e040fb', '#d500f9', '#aa00ff', '#ede7f6', '#d1c4e9', '#b39ddb', '#9575cd', '#7e57c2', '#673ab7', '#5e35b1', '#512da8', '#4527a0', '#311b92', '#b388ff', '#7c4dff', '#651fff', '#6200ea', '#e8eaf6', '#c5cae9', '#9fa8da', '#7986cb', '#5c6bc0', '#3f51b5', '#3949ab', '#303f9f', '#283593', '#1a237e', '#8c9eff', '#536dfe', '#3d5afe', '#304ffe', '#e3f2fd', '#bbdefb', '#90caf9', '#64b5f6', '#42a5f5', '#2196f3', '#1e88e5', '#1976d2', '#1565c0', '#0d47a1', '#82b1ff', '#448aff', '#2979ff', '#2962ff', '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b', '#80d8ff', '#40c4ff', '#00b0ff', '#0091ea', '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064', '#84ffff', '#18ffff', '#00e5ff', '#00b8d4', '#e0f2f1', '#b2dfdb', '#80cbc4', '#4db6ac', '#26a69a', '#009688', '#00897b', '#00796b', '#00695c', '#004d40', '#a7ffeb', '#64ffda', '#1de9b6', '#00bfa5', '#e8f5e9', '#c8e6c9', '#a5d6a7', '#81c784', '#66bb6a', '#4caf50', '#43a047', '#388e3c', '#2e7d32', '#1b5e20', '#b9f6ca', '#69f0ae', '#00e676', '#00c853', '#f1f8e9', '#dcedc8', '#c5e1a5', '#aed581', '#9ccc65', '#8bc34a', '#7cb342', '#689f38', '#558b2f', '#33691e', '#ccff90', '#b2ff59', '#76ff03', '#64dd17', '#f9fbe7', '#f0f4c3', '#e6ee9c', '#dce775', '#d4e157', '#cddc39', '#c0ca33', '#afb42b', '#9e9d24', '#827717', '#f4ff81', '#eeff41', '#c6ff00', '#aeea00', '#fffde7', '#fff9c4', '#fff59d', '#fff176', '#ffee58', '#ffeb3b', '#fdd835', '#fbc02d', '#f9a825', '#f57f17', '#ffff8d', '#ffff00', '#ffea00', '#ffd600', '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00', '#ffe57f', '#ffd740', '#ffc400', '#ffab00', '#fff3e0', '#ffe0b2', '#ffcc80', '#ffb74d', '#ffa726', '#ff9800', '#fb8c00', '#f57c00', '#ef6c00', '#e65100', '#ffd180', '#ffab40', '#ff9100', '#ff6d00', '#fbe9e7', '#ffccbc', '#ffab91', '#ff8a65', '#ff7043', '#ff5722', '#f4511e', '#e64a19', '#d84315', '#bf360c', '#ff9e80', '#ff6e40', '#ff3d00', '#dd2c00', '#efebe9', '#d7ccc8', '#bcaaa4', '#a1887f', '#8d6e63', '#795548', '#6d4c41', '#5d4037', '#4e342e', '#3e2723', '#d7ccc8', '#bcaaa4', '#8d6e63', '#5d4037', '#fafafa', '#f5f5f5', '#eeeeee', '#e0e0e0', '#bdbdbd', '#9e9e9e', '#757575', '#616161', '#424242', '#212121', '#ffffff', '#eeeeee', '#bdbdbd', '#616161', '#eceff1', '#cfd8dc', '#b0bec5', '#90a4ae', '#78909c', '#607d8b', '#546e7a', '#455a64', '#37474f', '#263238', '#cfd8dc', '#b0bec5', '#78909c', '#455a64'
+ '#ffebee', '#ffcdd2', '#ef9a9a', '#e57373', '#ef5350', '#f44336', '#e53935', '#d32f2f', '#c62828', '#b71c1c', '#ff8a80', '#ff5252', '#ff1744', '#d50000', '#fce4ec', '#f8bbd0',
+ '#f48fb1', '#f06292', '#ec407a', '#e91e63', '#d81b60', '#c2185b', '#ad1457', '#880e4f', '#ff80ab', '#ff4081', '#f50057', '#c51162', '#f3e5f5', '#e1bee7', '#ce93d8', '#ba68c8',
+ '#ab47bc', '#9c27b0', '#8e24aa', '#7b1fa2', '#6a1b9a', '#4a148c', '#ea80fc', '#e040fb', '#d500f9', '#aa00ff', '#ede7f6', '#d1c4e9', '#b39ddb', '#9575cd', '#7e57c2', '#673ab7',
+ '#5e35b1', '#512da8', '#4527a0', '#311b92', '#b388ff', '#7c4dff', '#651fff', '#6200ea', '#e8eaf6', '#c5cae9', '#9fa8da', '#7986cb', '#5c6bc0', '#3f51b5', '#3949ab', '#303f9f',
+ '#283593', '#1a237e', '#8c9eff', '#536dfe', '#3d5afe', '#304ffe', '#e3f2fd', '#bbdefb', '#90caf9', '#64b5f6', '#42a5f5', '#2196f3', '#1e88e5', '#1976d2', '#1565c0', '#0d47a1',
+ '#82b1ff', '#448aff', '#2979ff', '#2962ff', '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b', '#80d8ff', '#40c4ff',
+ '#00b0ff', '#0091ea', '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064', '#84ffff', '#18ffff', '#00e5ff', '#00b8d4',
+ '#e0f2f1', '#b2dfdb', '#80cbc4', '#4db6ac', '#26a69a', '#009688', '#00897b', '#00796b', '#00695c', '#004d40', '#a7ffeb', '#64ffda', '#1de9b6', '#00bfa5', '#e8f5e9', '#c8e6c9',
+ '#a5d6a7', '#81c784', '#66bb6a', '#4caf50', '#43a047', '#388e3c', '#2e7d32', '#1b5e20', '#b9f6ca', '#69f0ae', '#00e676', '#00c853', '#f1f8e9', '#dcedc8', '#c5e1a5', '#aed581',
+ '#9ccc65', '#8bc34a', '#7cb342', '#689f38', '#558b2f', '#33691e', '#ccff90', '#b2ff59', '#76ff03', '#64dd17', '#f9fbe7', '#f0f4c3', '#e6ee9c', '#dce775', '#d4e157', '#cddc39',
+ '#c0ca33', '#afb42b', '#9e9d24', '#827717', '#f4ff81', '#eeff41', '#c6ff00', '#aeea00', '#fffde7', '#fff9c4', '#fff59d', '#fff176', '#ffee58', '#ffeb3b', '#fdd835', '#fbc02d',
+ '#f9a825', '#f57f17', '#ffff8d', '#ffff00', '#ffea00', '#ffd600', '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00',
+ '#ffe57f', '#ffd740', '#ffc400', '#ffab00', '#fff3e0', '#ffe0b2', '#ffcc80', '#ffb74d', '#ffa726', '#ff9800', '#fb8c00', '#f57c00', '#ef6c00', '#e65100', '#ffd180', '#ffab40',
+ '#ff9100', '#ff6d00', '#fbe9e7', '#ffccbc', '#ffab91', '#ff8a65', '#ff7043', '#ff5722', '#f4511e', '#e64a19', '#d84315', '#bf360c', '#ff9e80', '#ff6e40', '#ff3d00', '#dd2c00',
+ '#efebe9', '#d7ccc8', '#bcaaa4', '#a1887f', '#8d6e63', '#795548', '#6d4c41', '#5d4037', '#4e342e', '#3e2723', '#d7ccc8', '#bcaaa4', '#8d6e63', '#5d4037', '#fafafa', '#f5f5f5',
+ '#eeeeee', '#e0e0e0', '#bdbdbd', '#9e9e9e', '#757575', '#616161', '#424242', '#212121', '#ffffff', '#eeeeee', '#bdbdbd', '#616161', '#eceff1', '#cfd8dc', '#b0bec5', '#90a4ae',
+ '#78909c', '#607d8b', '#546e7a', '#455a64', '#37474f', '#263238', '#cfd8dc', '#b0bec5', '#78909c', '#455a64'
];
/**
@@ -699,7 +715,7 @@ export class MatColors
public static all = matColors;
public static presets = matPresetColors;
- public static getColor(colorName)
+ public static getColor(colorName): any
{
if ( matColors[colorName] )
{
diff --git a/src/@fuse/scss/partials/_colors.scss b/src/@fuse/scss/partials/_colors.scss
index c68b3f01..7950231a 100644
--- a/src/@fuse/scss/partials/_colors.scss
+++ b/src/@fuse/scss/partials/_colors.scss
@@ -13,10 +13,10 @@
// If it's a light theme, use a darker background
// color other than the default #fafafa
- @if ($is-dark == false) {
- background: #F5F5F5;
- } @else {
+ @if ($is-dark) {
background: map-get($background, background);
+ } @else {
+ background: #F5F5F5;
}
}
@@ -300,7 +300,8 @@ $matHues: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200, A400, A70
}
// Run the generator one more time for default values (500)
- @if ($hue == 500) {
+ // if we are not working with primary, accent or warn palettes
+ @if ($hue == 500 and $paletteName != 'primary' and $paletteName != 'accent' and $paletteName != 'warn') {
// Generate color classes
@include generate-color-classes($paletteName, $color, $contrast, '');
@@ -318,6 +319,33 @@ $matHues: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200, A400, A70
}
}
}
+
+ // Run the generator again for the selected default hue values for
+ // primary, accent and warn palettes
+ //
+ // We are doing this because the default hue value can be changed
+ // by the user when the Material theme being generated.
+ @if ($paletteName == 'primary' or $paletteName == 'accent' or $paletteName == 'warn') {
+
+ // Get the color and the contrasting color for the selected
+ // default hue
+ $color: map-get($palette, 'default');
+ $contrast: map-get($palette, 'default-contrast');
+
+ // Generate color classes
+ @include generate-color-classes($paletteName, $color, $contrast, '');
+
+ // Add color to the correct list depending on the contrasting color
+
+ // If the contrast color is dark
+ @if (rgba(black, 1) == rgba($contrast, 1)) {
+ $dark-contrasting-classes: append($dark-contrasting-classes, unquote('.#{$paletteName}'), 'comma');
+ }
+ // if the contrast color is light
+ @else {
+ $light-contrasting-classes: append($light-contrasting-classes, unquote('.#{$paletteName}'), 'comma');
+ }
+ }
}
// Generate contrasting colors
diff --git a/src/@fuse/scss/partials/_page-layouts.scss b/src/@fuse/scss/partials/_page-layouts.scss
index 3384fcca..f28cc535 100644
--- a/src/@fuse/scss/partials/_page-layouts.scss
+++ b/src/@fuse/scss/partials/_page-layouts.scss
@@ -129,6 +129,7 @@ $carded-header-height-without-toolbar-sm: $carded-header-height-sm - $carded-too
width: 100%;
min-width: 0;
max-width: 100%;
+ height: 100%;
max-height: 100%;
> .header {
@@ -325,6 +326,7 @@ $carded-header-height-without-toolbar-sm: $carded-header-height-sm - $carded-too
z-index: 3;
margin-left: 32px;
margin-right: 32px;
+ width: 100%;
min-width: 0;
> .header {
@@ -563,6 +565,7 @@ $carded-header-height-without-toolbar-sm: $carded-header-height-sm - $carded-too
flex: 1 1 auto;
z-index: 3;
min-width: 0;
+ width: 100%;
@include mat-elevation(7);
> .header {
diff --git a/src/@fuse/scss/partials/_reset.scss b/src/@fuse/scss/partials/_reset.scss
index 17842a7a..38655ee6 100644
--- a/src/@fuse/scss/partials/_reset.scss
+++ b/src/@fuse/scss/partials/_reset.scss
@@ -20,13 +20,6 @@
}
}
-html, body {
- margin: 0;
- width: 100%;
- height: 100%;
- overflow: hidden;
-}
-
// Reset non angular-material input's default browser/os styles
*:not(mat-form-field) {
diff --git a/src/@fuse/services/config.service.ts b/src/@fuse/services/config.service.ts
index 175ee264..b06dde09 100644
--- a/src/@fuse/services/config.service.ts
+++ b/src/@fuse/services/config.service.ts
@@ -1,5 +1,5 @@
import { Inject, Injectable, InjectionToken } from '@angular/core';
-import { NavigationStart, Router } from '@angular/router';
+import { Router, RoutesRecognized } from '@angular/router';
import { Platform } from '@angular/cdk/platform';
import { BehaviorSubject, Observable } from 'rxjs';
import { filter } from 'rxjs/operators';
@@ -93,15 +93,18 @@ export class FuseConfigService
// Set the config from the default config
this._configSubject = new BehaviorSubject(_.cloneDeep(this._defaultConfig));
- // Reload the default config on every navigation start if
- // the current config is different from the default one
+ // Reload the default layout config on every RoutesRecognized event
+ // if the current layout config is different from the default one
this._router.events
- .pipe(filter(event => event instanceof NavigationStart))
+ .pipe(filter(event => event instanceof RoutesRecognized))
.subscribe(() => {
- if ( !_.isEqual(this._configSubject.getValue(), this._defaultConfig) )
+ if ( !_.isEqual(this._configSubject.getValue().layout, this._defaultConfig.layout) )
{
- // Clone the default config
- const config = _.cloneDeep(this._defaultConfig);
+ // Clone the current config
+ const config = _.cloneDeep(this._configSubject.getValue());
+
+ // Reset the layout from the default config
+ config.layout = _.cloneDeep(this._defaultConfig.layout);
// Set the config
this._configSubject.next(config);
diff --git a/src/@fuse/types/fuse-config.ts b/src/@fuse/types/fuse-config.ts
index d1b4c322..98b7af80 100644
--- a/src/@fuse/types/fuse-config.ts
+++ b/src/@fuse/types/fuse-config.ts
@@ -1,6 +1,7 @@
export interface FuseConfig
{
colorTheme: string;
+ customScrollbars: boolean;
layout: {
style: string,
width: 'fullwidth' | 'boxed',
@@ -29,5 +30,4 @@ export interface FuseConfig
position: 'left' | 'right'
}
};
- customScrollbars: boolean;
}
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index b3451842..def0a0fd 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -138,13 +138,16 @@ export class AppComponent implements OnInit, OnDestroy
this.document.body.classList.remove('boxed');
}
- // Color theme
- this.document.body.classList.forEach(className => {
+ // Color theme - Use normal for loop for IE11 compatibility
+ for ( let i = 0; i < this.document.body.classList.length; i++ )
+ {
+ const className = this.document.body.classList[i];
+
if ( className.startsWith('theme-') )
{
this.document.body.classList.remove(className);
}
- });
+ }
this.document.body.classList.add(this.fuseConfig.colorTheme);
});
diff --git a/src/app/fuse-config/index.ts b/src/app/fuse-config/index.ts
index d061ccb8..f2b335f0 100644
--- a/src/app/fuse-config/index.ts
+++ b/src/app/fuse-config/index.ts
@@ -11,6 +11,7 @@ import { FuseConfig } from '@fuse/types';
export const fuseConfig: FuseConfig = {
// Color themes can be defined in src/app/app.theme.scss
colorTheme : 'theme-default',
+ customScrollbars: true,
layout : {
style : 'vertical-layout-1',
width : 'fullwidth',
@@ -38,6 +39,5 @@ export const fuseConfig: FuseConfig = {
hidden : false,
position: 'right'
}
- },
- customScrollbars: true
+ }
};
diff --git a/src/app/layout/components/navbar/vertical/style-1/style-1.component.html b/src/app/layout/components/navbar/vertical/style-1/style-1.component.html
index 53cd80ac..c6effb77 100644
--- a/src/app/layout/components/navbar/vertical/style-1/style-1.component.html
+++ b/src/app/layout/components/navbar/vertical/style-1/style-1.component.html
@@ -22,7 +22,8 @@
-