mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-01-10 12:35:07 +00:00
Merge branch 'master' into skeleton
This commit is contained in:
commit
576e167ef1
|
@ -9,6 +9,7 @@
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"assets": [
|
"assets": [
|
||||||
"assets",
|
"assets",
|
||||||
|
"app/main/content/components/angular-material",
|
||||||
"favicon.ico"
|
"favicon.ico"
|
||||||
],
|
],
|
||||||
"index": "index.html",
|
"index": "index.html",
|
||||||
|
|
98
package-lock.json
generated
98
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "fuse2",
|
"name": "fuse2",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -51,9 +51,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@angular/cdk": {
|
"@angular/cdk": {
|
||||||
"version": "2.0.0-beta.10",
|
"version": "2.0.0-beta.11",
|
||||||
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-2.0.0-beta.10.tgz",
|
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-2.0.0-beta.11.tgz",
|
||||||
"integrity": "sha512-G0RvzxItfPy8JEdnyV/10GryE3zHehm3bUJ7U9dwYKhAzhye+MX0P6rs8VEmbClJb5SuZDr0ZZ53vbHhHsUh6A==",
|
"integrity": "sha512-sbOqPoC439SDmpLiMq2XjidMMCJ6ofToDew4IXd9ne0jLSd0gGU20tTrRHf79HMTmlAySP7PBOq4Wv1eOFu/8A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "1.7.1"
|
"tslib": "1.7.1"
|
||||||
}
|
}
|
||||||
|
@ -197,9 +197,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@angular/material": {
|
"@angular/material": {
|
||||||
"version": "2.0.0-beta.10",
|
"version": "2.0.0-beta.11",
|
||||||
"resolved": "https://registry.npmjs.org/@angular/material/-/material-2.0.0-beta.10.tgz",
|
"resolved": "https://registry.npmjs.org/@angular/material/-/material-2.0.0-beta.11.tgz",
|
||||||
"integrity": "sha512-KAQ2t9wenI55oXkjjT6E4VGUSVu7AZmR+ytnaP96VBFk18wxcGnVaTbQmCvVm/vkbcdeoSF09D6ic94DHAE+1A==",
|
"integrity": "sha512-k4eyil3n8aHqqS3Fq4N77XvF3bcXA2Ttgf9ujDZwXmMd2NlR4XL+LJrguPLwNSQ6i3EYT+ovE2p4XUu2nkHVeQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "1.7.1"
|
"tslib": "1.7.1"
|
||||||
}
|
}
|
||||||
|
@ -446,15 +446,24 @@
|
||||||
"integrity": "sha1-etcMMQmUsPmA9A04Lc5ZlG/jDc8="
|
"integrity": "sha1-etcMMQmUsPmA9A04Lc5ZlG/jDc8="
|
||||||
},
|
},
|
||||||
"angular-in-memory-web-api": {
|
"angular-in-memory-web-api": {
|
||||||
"version": "0.3.2",
|
"version": "0.4.6",
|
||||||
"resolved": "https://registry.npmjs.org/angular-in-memory-web-api/-/angular-in-memory-web-api-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/angular-in-memory-web-api/-/angular-in-memory-web-api-0.4.6.tgz",
|
||||||
"integrity": "sha1-iDbZ4lNNN7co88taHK9v4ef7vs0="
|
"integrity": "sha1-EB9Zo4XrFTnH+TB1uv0MHLd061g="
|
||||||
},
|
},
|
||||||
"angular-resizable-element": {
|
"angular-resizable-element": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/angular-resizable-element/-/angular-resizable-element-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/angular-resizable-element/-/angular-resizable-element-1.2.0.tgz",
|
||||||
"integrity": "sha512-i5xCl4n2VMgGK4gY6Jtho0K5aazbsqNw1bmPYpI9RwlKK+dIOcsMRuMl1JPWzrznHsm4qEsfYg+9KLkYsYy+/g=="
|
"integrity": "sha512-i5xCl4n2VMgGK4gY6Jtho0K5aazbsqNw1bmPYpI9RwlKK+dIOcsMRuMl1JPWzrznHsm4qEsfYg+9KLkYsYy+/g=="
|
||||||
},
|
},
|
||||||
|
"angular2-markdown": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular2-markdown/-/angular2-markdown-1.6.0.tgz",
|
||||||
|
"integrity": "sha1-hja/narXD8NWMxJnB/+zPmhPurE=",
|
||||||
|
"requires": {
|
||||||
|
"marked": "0.3.6",
|
||||||
|
"prismjs": "1.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ansi-html": {
|
"ansi-html": {
|
||||||
"version": "0.0.7",
|
"version": "0.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
|
||||||
|
@ -1349,6 +1358,17 @@
|
||||||
"source-map": "0.5.6"
|
"source-map": "0.5.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"clipboard": {
|
||||||
|
"version": "1.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz",
|
||||||
|
"integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"good-listener": "1.2.2",
|
||||||
|
"select": "1.1.2",
|
||||||
|
"tiny-emitter": "2.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cliui": {
|
"cliui": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
||||||
|
@ -2351,6 +2371,12 @@
|
||||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"delegate": {
|
||||||
|
"version": "3.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.1.3.tgz",
|
||||||
|
"integrity": "sha1-moJRp3fXAl+qVXN7w7BxdCEnqf0=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"delegates": {
|
"delegates": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||||
|
@ -3469,6 +3495,15 @@
|
||||||
"minimatch": "3.0.4"
|
"minimatch": "3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"good-listener": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
|
||||||
|
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"delegate": "3.1.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
"version": "4.1.11",
|
"version": "4.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
||||||
|
@ -5060,6 +5095,11 @@
|
||||||
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
|
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"marked": {
|
||||||
|
"version": "0.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz",
|
||||||
|
"integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc="
|
||||||
|
},
|
||||||
"math-expression-evaluator": {
|
"math-expression-evaluator": {
|
||||||
"version": "1.2.17",
|
"version": "1.2.17",
|
||||||
"resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
|
"resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
|
||||||
|
@ -6564,6 +6604,14 @@
|
||||||
"utila": "0.4.0"
|
"utila": "0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"prismjs": {
|
||||||
|
"version": "1.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.8.1.tgz",
|
||||||
|
"integrity": "sha1-vQzcMumlYcHIw8lzN2Wn8ew7VO4=",
|
||||||
|
"requires": {
|
||||||
|
"clipboard": "1.7.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"process": {
|
"process": {
|
||||||
"version": "0.11.10",
|
"version": "0.11.10",
|
||||||
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
||||||
|
@ -7227,6 +7275,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"select": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"select-hose": {
|
"select-hose": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
|
||||||
|
@ -7828,15 +7882,6 @@
|
||||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
|
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"safe-buffer": "5.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
||||||
|
@ -7864,6 +7909,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"string_decoder": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "5.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"stringstream": {
|
"stringstream": {
|
||||||
"version": "0.0.5",
|
"version": "0.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||||
|
@ -8052,6 +8106,12 @@
|
||||||
"setimmediate": "1.0.5"
|
"setimmediate": "1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tiny-emitter": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"tmp": {
|
"tmp": {
|
||||||
"version": "0.0.31",
|
"version": "0.0.31",
|
||||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "fuse2",
|
"name": "fuse2",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"license": "",
|
"license": "",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
|
@ -16,14 +16,14 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "4.4.3",
|
"@angular/animations": "4.4.3",
|
||||||
"@angular/cdk": "2.0.0-beta.10",
|
"@angular/cdk": "2.0.0-beta.11",
|
||||||
"@angular/common": "4.4.3",
|
"@angular/common": "4.4.3",
|
||||||
"@angular/compiler": "4.4.3",
|
"@angular/compiler": "4.4.3",
|
||||||
"@angular/core": "4.4.3",
|
"@angular/core": "4.4.3",
|
||||||
"@angular/flex-layout": "2.0.0-beta.9",
|
"@angular/flex-layout": "2.0.0-beta.9",
|
||||||
"@angular/forms": "4.4.3",
|
"@angular/forms": "4.4.3",
|
||||||
"@angular/http": "4.4.3",
|
"@angular/http": "4.4.3",
|
||||||
"@angular/material": "2.0.0-beta.10",
|
"@angular/material": "2.0.0-beta.11",
|
||||||
"@angular/platform-browser": "4.4.3",
|
"@angular/platform-browser": "4.4.3",
|
||||||
"@angular/platform-browser-dynamic": "4.4.3",
|
"@angular/platform-browser-dynamic": "4.4.3",
|
||||||
"@angular/router": "4.4.3",
|
"@angular/router": "4.4.3",
|
||||||
|
@ -31,7 +31,8 @@
|
||||||
"@swimlane/ngx-datatable": "9.3.1",
|
"@swimlane/ngx-datatable": "9.3.1",
|
||||||
"@swimlane/ngx-dnd": "3.0.0",
|
"@swimlane/ngx-dnd": "3.0.0",
|
||||||
"angular-calendar": "0.19.0",
|
"angular-calendar": "0.19.0",
|
||||||
"angular-in-memory-web-api": "0.3.2",
|
"angular-in-memory-web-api": "0.4.6",
|
||||||
|
"angular2-markdown": "1.6.0",
|
||||||
"classlist.js": "1.1.20150312",
|
"classlist.js": "1.1.20150312",
|
||||||
"core-js": "2.5.0",
|
"core-js": "2.5.0",
|
||||||
"d3": "4.10.0",
|
"d3": "4.10.0",
|
||||||
|
|
|
@ -7,7 +7,6 @@ import { RouterModule, Routes } from '@angular/router';
|
||||||
import 'hammerjs';
|
import 'hammerjs';
|
||||||
import { SharedModule } from './core/modules/shared.module';
|
import { SharedModule } from './core/modules/shared.module';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
|
|
||||||
import { FuseMainModule } from './main/main.module';
|
import { FuseMainModule } from './main/main.module';
|
||||||
import { FuseSplashScreenService } from './core/services/splash-screen.service';
|
import { FuseSplashScreenService } from './core/services/splash-screen.service';
|
||||||
import { FuseConfigService } from './core/services/config.service';
|
import { FuseConfigService } from './core/services/config.service';
|
||||||
|
@ -32,7 +31,6 @@ const appRoutes: Routes = [
|
||||||
BrowserAnimationsModule,
|
BrowserAnimationsModule,
|
||||||
RouterModule.forRoot(appRoutes),
|
RouterModule.forRoot(appRoutes),
|
||||||
SharedModule,
|
SharedModule,
|
||||||
PerfectScrollbarModule.forRoot(),
|
|
||||||
FuseMainModule,
|
FuseMainModule,
|
||||||
FuseSampleModule
|
FuseSampleModule
|
||||||
],
|
],
|
||||||
|
|
60
src/app/core/components/copier/copier.service.ts
Normal file
60
src/app/core/components/copier/copier.service.ts
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
/**
|
||||||
|
* This class is based on the code in the following projects:
|
||||||
|
*
|
||||||
|
* - https://github.com/zenorocha/select
|
||||||
|
* - https://github.com/zenorocha/clipboard.js/
|
||||||
|
*
|
||||||
|
* Both released under MIT license - © Zeno Rocha
|
||||||
|
*/
|
||||||
|
import {Injectable} from '@angular/core';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class CopierService {
|
||||||
|
|
||||||
|
private textarea: HTMLTextAreaElement;
|
||||||
|
|
||||||
|
/** Copy the text value to the clipboard. */
|
||||||
|
copyText(text: string): boolean {
|
||||||
|
this.createTextareaAndSelect(text);
|
||||||
|
|
||||||
|
const copySuccessful = document.execCommand('copy');
|
||||||
|
this.removeFake();
|
||||||
|
|
||||||
|
return copySuccessful;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a hidden textarea element, sets its value from `text` property,
|
||||||
|
* and makes a selection on it.
|
||||||
|
*/
|
||||||
|
private createTextareaAndSelect(text: string) {
|
||||||
|
// Create a fake element to hold the contents to copy
|
||||||
|
this.textarea = document.createElement('textarea');
|
||||||
|
|
||||||
|
// Prevent zooming on iOS
|
||||||
|
this.textarea.style.fontSize = '12pt';
|
||||||
|
|
||||||
|
// Hide the element
|
||||||
|
this.textarea.classList.add('cdk-visually-hidden');
|
||||||
|
|
||||||
|
// Move element to the same position vertically
|
||||||
|
const yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
||||||
|
this.textarea.style.top = yPosition + 'px';
|
||||||
|
|
||||||
|
this.textarea.setAttribute('readonly', '');
|
||||||
|
this.textarea.value = text;
|
||||||
|
|
||||||
|
document.body.appendChild(this.textarea);
|
||||||
|
|
||||||
|
this.textarea.select();
|
||||||
|
this.textarea.setSelectionRange(0, this.textarea.value.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Remove the text area from the DOM. */
|
||||||
|
private removeFake() {
|
||||||
|
if (this.textarea) {
|
||||||
|
document.body.removeChild(this.textarea);
|
||||||
|
this.textarea = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
<ng-container *ngFor="let item of item.children">
|
<ng-container *ngFor="let item of item.children">
|
||||||
<fuse-nav-horizontal-item *ngIf="item.type=='item'" [item]="item"></fuse-nav-horizontal-item>
|
<fuse-nav-horizontal-item *ngIf="item.type=='item'" [item]="item"></fuse-nav-horizontal-item>
|
||||||
<fuse-nav-horizontal-collapse *ngIf="item.type=='collapse'" [item]="item"></fuse-nav-horizontal-collapse>
|
<fuse-nav-horizontal-collapse *ngIf="item.type=='collapse'" [item]="item"></fuse-nav-horizontal-collapse>
|
||||||
|
<fuse-nav-horizontal-collapse *ngIf="item.type=='group'" [item]="item"></fuse-nav-horizontal-collapse>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -26,7 +26,6 @@ export class FuseNavigationComponent implements OnDestroy
|
||||||
|
|
||||||
ngOnDestroy()
|
ngOnDestroy()
|
||||||
{
|
{
|
||||||
console.warn('destroyed');
|
|
||||||
this.navigationModelChangeSubscription.unsubscribe();
|
this.navigationModelChangeSubscription.unsubscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { BehaviorSubject } from 'rxjs/BehaviorSubject';
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class FuseNavigationService
|
export class FuseNavigationService
|
||||||
{
|
{
|
||||||
|
onNavCollapseToggle = new EventEmitter<any>();
|
||||||
onNavCollapseToggled = new EventEmitter<any>();
|
onNavCollapseToggled = new EventEmitter<any>();
|
||||||
onNavigationModelChange: BehaviorSubject<any> = new BehaviorSubject({});
|
onNavigationModelChange: BehaviorSubject<any> = new BehaviorSubject({});
|
||||||
navigationModel: NavigationModel;
|
navigationModel: NavigationModel;
|
||||||
|
|
|
@ -7,5 +7,6 @@
|
||||||
<ng-container *ngFor="let item of item.children">
|
<ng-container *ngFor="let item of item.children">
|
||||||
<fuse-nav-vertical-item *ngIf="item.type=='item'" [item]="item"></fuse-nav-vertical-item>
|
<fuse-nav-vertical-item *ngIf="item.type=='item'" [item]="item"></fuse-nav-vertical-item>
|
||||||
<fuse-nav-vertical-collapse *ngIf="item.type=='collapse'" [item]="item"></fuse-nav-vertical-collapse>
|
<fuse-nav-vertical-collapse *ngIf="item.type=='collapse'" [item]="item"></fuse-nav-vertical-collapse>
|
||||||
|
<fuse-nav-vertical-group *ngIf="item.type=='group'" [item]="item"></fuse-nav-vertical-group>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -43,7 +43,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit
|
||||||
this.navigationService.onNavCollapseToggled
|
this.navigationService.onNavCollapseToggled
|
||||||
.subscribe(
|
.subscribe(
|
||||||
(clickedItem) => {
|
(clickedItem) => {
|
||||||
if ( clickedItem.children )
|
if ( clickedItem && clickedItem.children )
|
||||||
{
|
{
|
||||||
// Check if the clicked item is one
|
// Check if the clicked item is one
|
||||||
// of the children of this item
|
// of the children of this item
|
||||||
|
@ -82,6 +82,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit
|
||||||
|
|
||||||
// Navigation collapse toggled...
|
// Navigation collapse toggled...
|
||||||
this.navigationService.onNavCollapseToggled.emit(this.item);
|
this.navigationService.onNavCollapseToggled.emit(this.item);
|
||||||
|
this.navigationService.onNavCollapseToggle.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -95,6 +96,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit
|
||||||
}
|
}
|
||||||
|
|
||||||
this.isOpen = true;
|
this.isOpen = true;
|
||||||
|
this.navigationService.onNavCollapseToggle.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -107,6 +109,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.isOpen = false;
|
this.isOpen = false;
|
||||||
|
this.navigationService.onNavCollapseToggle.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { Component, HostBinding, Input, OnInit } from '@angular/core';
|
||||||
})
|
})
|
||||||
export class FuseNavVerticalGroupComponent implements OnInit
|
export class FuseNavVerticalGroupComponent implements OnInit
|
||||||
{
|
{
|
||||||
@HostBinding('class') classes = 'nav-group';
|
@HostBinding('class') classes = 'nav-group nav-item';
|
||||||
@Input() item: any;
|
@Input() item: any;
|
||||||
|
|
||||||
constructor()
|
constructor()
|
||||||
|
|
|
@ -8,7 +8,6 @@ import {
|
||||||
MdTooltipModule,
|
MdTooltipModule,
|
||||||
MdCardModule,
|
MdCardModule,
|
||||||
MdChipsModule,
|
MdChipsModule,
|
||||||
MdCoreModule,
|
|
||||||
MdDatepickerModule,
|
MdDatepickerModule,
|
||||||
MdDialogModule,
|
MdDialogModule,
|
||||||
MdExpansionModule,
|
MdExpansionModule,
|
||||||
|
@ -28,6 +27,7 @@ import {
|
||||||
MdSliderModule,
|
MdSliderModule,
|
||||||
MdSlideToggleModule,
|
MdSlideToggleModule,
|
||||||
MdSnackBarModule,
|
MdSnackBarModule,
|
||||||
|
MdStepperModule,
|
||||||
MdSortModule,
|
MdSortModule,
|
||||||
MdTableModule,
|
MdTableModule,
|
||||||
MdTabsModule
|
MdTabsModule
|
||||||
|
@ -42,7 +42,6 @@ import { CdkTableModule } from '@angular/cdk/table';
|
||||||
MdCardModule,
|
MdCardModule,
|
||||||
MdCheckboxModule,
|
MdCheckboxModule,
|
||||||
MdChipsModule,
|
MdChipsModule,
|
||||||
MdCoreModule,
|
|
||||||
MdDatepickerModule,
|
MdDatepickerModule,
|
||||||
MdDialogModule,
|
MdDialogModule,
|
||||||
MdExpansionModule,
|
MdExpansionModule,
|
||||||
|
@ -62,6 +61,7 @@ import { CdkTableModule } from '@angular/cdk/table';
|
||||||
MdSliderModule,
|
MdSliderModule,
|
||||||
MdSlideToggleModule,
|
MdSlideToggleModule,
|
||||||
MdSnackBarModule,
|
MdSnackBarModule,
|
||||||
|
MdStepperModule,
|
||||||
MdSortModule,
|
MdSortModule,
|
||||||
MdTableModule,
|
MdTableModule,
|
||||||
MdTabsModule,
|
MdTabsModule,
|
||||||
|
@ -76,7 +76,6 @@ import { CdkTableModule } from '@angular/cdk/table';
|
||||||
MdCardModule,
|
MdCardModule,
|
||||||
MdCheckboxModule,
|
MdCheckboxModule,
|
||||||
MdChipsModule,
|
MdChipsModule,
|
||||||
MdCoreModule,
|
|
||||||
MdDatepickerModule,
|
MdDatepickerModule,
|
||||||
MdDialogModule,
|
MdDialogModule,
|
||||||
MdExpansionModule,
|
MdExpansionModule,
|
||||||
|
@ -96,6 +95,7 @@ import { CdkTableModule } from '@angular/cdk/table';
|
||||||
MdSliderModule,
|
MdSliderModule,
|
||||||
MdSlideToggleModule,
|
MdSlideToggleModule,
|
||||||
MdSnackBarModule,
|
MdSnackBarModule,
|
||||||
|
MdStepperModule,
|
||||||
MdSortModule,
|
MdSortModule,
|
||||||
MdTableModule,
|
MdTableModule,
|
||||||
MdTabsModule,
|
MdTabsModule,
|
||||||
|
|
|
@ -21,6 +21,7 @@ import { FuseIfOnDomDirective } from '../directives/fuse-if-on-dom/fuse-if-on-do
|
||||||
import { FuseMaterialColorPickerComponent } from '../components/material-color-picker/material-color-picker.component';
|
import { FuseMaterialColorPickerComponent } from '../components/material-color-picker/material-color-picker.component';
|
||||||
import { Md2Module } from 'md2';
|
import { Md2Module } from 'md2';
|
||||||
import { CookieService } from 'ngx-cookie-service';
|
import { CookieService } from 'ngx-cookie-service';
|
||||||
|
import { MarkdownModule } from 'angular2-markdown';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations : [
|
declarations : [
|
||||||
|
@ -43,7 +44,8 @@ import { CookieService } from 'ngx-cookie-service';
|
||||||
ColorPickerModule,
|
ColorPickerModule,
|
||||||
NgxDnDModule,
|
NgxDnDModule,
|
||||||
NgxDatatableModule,
|
NgxDatatableModule,
|
||||||
Md2Module
|
Md2Module,
|
||||||
|
MarkdownModule
|
||||||
],
|
],
|
||||||
exports : [
|
exports : [
|
||||||
FlexLayoutModule,
|
FlexLayoutModule,
|
||||||
|
@ -62,7 +64,8 @@ import { CookieService } from 'ngx-cookie-service';
|
||||||
NgxDatatableModule,
|
NgxDatatableModule,
|
||||||
FuseIfOnDomDirective,
|
FuseIfOnDomDirective,
|
||||||
FuseMaterialColorPickerComponent,
|
FuseMaterialColorPickerComponent,
|
||||||
Md2Module
|
Md2Module,
|
||||||
|
MarkdownModule
|
||||||
],
|
],
|
||||||
entryComponents: [
|
entryComponents: [
|
||||||
FuseConfirmDialogComponent
|
FuseConfirmDialogComponent
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-group {
|
.nav-group {
|
||||||
|
display: block;
|
||||||
|
|
||||||
> .group-title {
|
> .group-title {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -103,7 +104,9 @@
|
||||||
|
|
||||||
> .nav-item {
|
> .nav-item {
|
||||||
|
|
||||||
> .nav-link {
|
> .nav-link,
|
||||||
|
&.nav-group > .group-title,
|
||||||
|
&.nav-group > .group-items > .nav-item > .nav-link {
|
||||||
padding-left: 56px;
|
padding-left: 56px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +114,9 @@
|
||||||
|
|
||||||
> .nav-item {
|
> .nav-item {
|
||||||
|
|
||||||
> .nav-link {
|
> .nav-link,
|
||||||
|
&.nav-group > .group-title,
|
||||||
|
&.nav-group > .group-items > .nav-item > .nav-link {
|
||||||
padding-left: 72px;
|
padding-left: 72px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
@import "highlight";
|
@import "highlight";
|
||||||
|
@import "prism";
|
||||||
@import "perfect-scrollbar";
|
@import "perfect-scrollbar";
|
||||||
@import "ngx-datatable";
|
@import "ngx-datatable";
|
||||||
@import "ngx-color-picker";
|
@import "ngx-color-picker";
|
||||||
|
|
|
@ -43,8 +43,7 @@ export class FuseNavbarVerticalComponent implements OnInit, OnDestroy
|
||||||
{
|
{
|
||||||
navBarService.setNavBar(this);
|
navBarService.setNavBar(this);
|
||||||
|
|
||||||
this.fuseNavigationService.onNavCollapseToggled.subscribe(() => {
|
this.fuseNavigationService.onNavCollapseToggle.subscribe(() => {
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.fusePerfectScrollbarDirective.update();
|
this.fusePerfectScrollbarDirective.update();
|
||||||
}, 310);
|
}, 310);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user