@esfaenza/core 15.2.40 → 15.2.42-beta1
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 +24 -24
- package/assets/fontawesome/css/all.css +27093 -0
- package/assets/fontawesome/css/all.min.css +9 -0
- package/assets/fontawesome/css/brands.css +1522 -0
- package/assets/fontawesome/css/brands.min.css +6 -0
- package/assets/fontawesome/css/duotone.css +12491 -0
- package/assets/fontawesome/css/duotone.min.css +6 -0
- package/assets/fontawesome/css/fontawesome.css +12984 -0
- package/assets/fontawesome/css/fontawesome.min.css +9 -0
- package/assets/fontawesome/css/light.css +19 -0
- package/assets/fontawesome/css/light.min.css +6 -0
- package/assets/fontawesome/css/regular.css +19 -0
- package/assets/fontawesome/css/regular.min.css +6 -0
- package/assets/fontawesome/css/sharp-regular.css +19 -0
- package/assets/fontawesome/css/sharp-regular.min.css +6 -0
- package/assets/fontawesome/css/sharp-solid.css +19 -0
- package/assets/fontawesome/css/sharp-solid.min.css +6 -0
- package/assets/fontawesome/css/solid.css +19 -0
- package/assets/fontawesome/css/solid.min.css +6 -0
- package/assets/fontawesome/css/svg-with-js.css +638 -0
- package/assets/fontawesome/css/svg-with-js.min.css +6 -0
- package/assets/fontawesome/css/thin.css +19 -0
- package/assets/fontawesome/css/thin.min.css +6 -0
- package/assets/fontawesome/css/v4-font-face.css +26 -0
- package/assets/fontawesome/css/v4-font-face.min.css +6 -0
- package/assets/fontawesome/css/v4-shims.css +2194 -0
- package/assets/fontawesome/css/v4-shims.min.css +6 -0
- package/assets/fontawesome/css/v5-font-face.css +34 -0
- package/assets/fontawesome/css/v5-font-face.min.css +6 -0
- package/assets/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-duotone-900.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-duotone-900.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-light-300.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-light-300.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-sharp-regular-400.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-sharp-regular-400.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-sharp-solid-900.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-sharp-solid-900.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-thin-100.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-thin-100.woff2 +0 -0
- package/assets/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
- package/assets/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +12 -8
- package/components/navbar/navbar.component.d.ts +6 -16
- package/components/sidebar/sidebar.component.d.ts +31 -5
- package/domain/models/jace/ActiveModuleView.d.ts +8 -8
- package/esm2020/components/back-top/back-top.component.mjs +5 -5
- package/esm2020/components/base/base.component.mjs +4 -4
- package/esm2020/components/base/reactive.component.mjs +4 -4
- package/esm2020/components/breadcrumb/breadcrumb.component.mjs +53 -43
- package/esm2020/components/components.module.mjs +5 -5
- package/esm2020/components/error/404/pagenotfound.component.mjs +4 -4
- package/esm2020/components/error/500/servererror.component.mjs +4 -4
- package/esm2020/components/error/Angular/angularerror.component.mjs +4 -4
- package/esm2020/components/es-modal/es-modal-head/es-modal-head.component.mjs +4 -4
- package/esm2020/components/es-modal/es-modal.component.mjs +4 -4
- package/esm2020/components/external-page/external_pages.component.mjs +4 -4
- package/esm2020/components/jace-login/jace-login.component.mjs +4 -4
- package/esm2020/components/jace-resource/jace-resource.component.mjs +4 -4
- package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +5 -5
- package/esm2020/components/navbar/navbar.component.loc.mjs +4 -4
- package/esm2020/components/navbar/navbar.component.mjs +16 -63
- package/esm2020/components/page/pages.component.mjs +5 -5
- package/esm2020/components/redirecter/redirecter.component.mjs +4 -4
- package/esm2020/components/sidebar/sidebar.component.mjs +93 -10
- package/esm2020/directives/componentHost/componentHost.directive.mjs +4 -4
- package/esm2020/directives/directives.module.mjs +5 -5
- package/esm2020/directives/draggable/draggable.directive.mjs +4 -4
- package/esm2020/directives/es-modal/es-modal.directive.mjs +4 -4
- package/esm2020/directives/es-routerLink/es-routerLink.directive.mjs +4 -4
- package/esm2020/directives/slim-scroll/slim-scroll.directive.mjs +4 -4
- package/esm2020/directives/widget/widget.directive.mjs +4 -4
- package/esm2020/domain/models/jace/ActiveModuleView.mjs +1 -1
- package/esm2020/domain/public-api.mjs +1 -1
- package/esm2020/lib/app.component.mjs +5 -5
- package/esm2020/lib/core.module.mjs +5 -5
- package/esm2020/modules/classes/_shared.module.mjs +5 -5
- package/esm2020/modules/classes/t_c.module.mjs +5 -5
- package/esm2020/pipes/classes/included_in.pipe.mjs +4 -4
- package/esm2020/pipes/classes/safe_html.pipe.mjs +4 -4
- package/esm2020/pipes/classes/safe_script.pipe.mjs +4 -4
- package/esm2020/pipes/classes/safe_style.pipe.mjs +4 -4
- package/esm2020/pipes/classes/safe_url.pipe.mjs +4 -4
- package/esm2020/pipes/pipes.module.mjs +5 -5
- package/esm2020/public-api.mjs +1 -1
- package/esm2020/services/classes/app.accesstoken.mjs +4 -4
- package/esm2020/services/classes/app.completedjobredirection.mjs +4 -4
- package/esm2020/services/classes/app.errorhandler.mjs +4 -4
- package/esm2020/services/classes/app.event.mjs +4 -4
- package/esm2020/services/classes/app.globalsearch.mjs +4 -4
- package/esm2020/services/classes/app.httpextensions.loc.mjs +4 -4
- package/esm2020/services/classes/app.httpextensions.mjs +4 -4
- package/esm2020/services/classes/app.menufilter.mjs +4 -4
- package/esm2020/services/classes/app.routeguard.mjs +4 -4
- package/esm2020/services/classes/app.session.mjs +4 -4
- package/esm2020/services/classes/app.state.mjs +4 -4
- package/esm2020/services/classes/preferences/app.cache.persistor.mjs +4 -4
- package/esm2020/services/classes/preferences/app.preference.persistor.mjs +4 -4
- package/fesm2015/esfaenza-core-components.mjs +225 -185
- package/fesm2015/esfaenza-core-components.mjs.map +1 -1
- package/fesm2015/esfaenza-core-directives.mjs +22 -22
- package/fesm2015/esfaenza-core-directives.mjs.map +1 -1
- package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2015/esfaenza-core-modules.mjs +8 -8
- package/fesm2015/esfaenza-core-modules.mjs.map +1 -1
- package/fesm2015/esfaenza-core-pipes.mjs +19 -19
- package/fesm2015/esfaenza-core-pipes.mjs.map +1 -1
- package/fesm2015/esfaenza-core-services.mjs +39 -39
- package/fesm2015/esfaenza-core-services.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +8 -8
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-components.mjs +223 -184
- package/fesm2020/esfaenza-core-components.mjs.map +1 -1
- package/fesm2020/esfaenza-core-directives.mjs +22 -22
- package/fesm2020/esfaenza-core-directives.mjs.map +1 -1
- package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2020/esfaenza-core-modules.mjs +8 -8
- package/fesm2020/esfaenza-core-modules.mjs.map +1 -1
- package/fesm2020/esfaenza-core-pipes.mjs +19 -19
- package/fesm2020/esfaenza-core-pipes.mjs.map +1 -1
- package/fesm2020/esfaenza-core-services.mjs +39 -39
- package/fesm2020/esfaenza-core-services.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +8 -8
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/package.json +2 -2
- package/theme/styles/_base.scss +8 -23
- package/theme/styles/_bootstrap-override.scss +36 -62
- package/theme/styles/_libs-override.scss +43 -6
- package/theme/styles/_project-override.scss +4 -0
- package/theme/styles/_variables.scss +14 -42
- package/theme/styles/skins/enuma.scss +59 -0
- package/theme/styles/skins/etnograph.scss +52 -0
- package/assets/fonts/fontawesome/FontAwesome.otf +0 -0
- package/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
- package/assets/fonts/fontawesome/fontawesome-webfont.svg +0 -2671
- package/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
- package/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
- package/assets/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
- package/assets/styles/font-awesome.min.css +0 -2929
- package/theme/styles/skins/_blue.scss +0 -16
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ViewEncapsulation, Input, ViewChild, HostListener, ChangeDetectionStrategy, Optional, Inject, Injectable, EventEmitter, Output, NgModule } from '@angular/core';
|
|
3
|
-
import * as i2
|
|
4
|
-
import { NgFor,
|
|
5
|
-
import * as i2 from '@esfaenza/core/services';
|
|
6
|
-
import { AppState } from '@esfaenza/core/services';
|
|
3
|
+
import * as i2 from '@angular/common';
|
|
4
|
+
import { NgIf, NgFor, NgTemplateOutlet, NgClass, CommonModule } from '@angular/common';
|
|
7
5
|
import * as i1 from '@angular/router';
|
|
8
|
-
import { NavigationEnd,
|
|
9
|
-
import
|
|
10
|
-
import
|
|
6
|
+
import { NavigationEnd, RouterLink, RouterLinkActive, RouterOutlet, ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
7
|
+
import { combineLatest, of, firstValueFrom, ReplaySubject, interval, startWith, takeUntil, takeWhile } from 'rxjs';
|
|
8
|
+
import { filter, map, mergeMap, takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
9
|
+
import * as i3 from '@esfaenza/core/services';
|
|
10
|
+
import { AppState } from '@esfaenza/core/services';
|
|
11
|
+
import * as i3$1 from '@angular/platform-browser';
|
|
12
|
+
import * as i2$1 from '@esfaenza/httpservice';
|
|
11
13
|
import { __awaiter } from 'tslib';
|
|
12
14
|
import * as i1$1 from '@esfaenza/localizations';
|
|
13
15
|
import { LocalizationModule, LocalizationService } from '@esfaenza/localizations';
|
|
14
16
|
import { MENU_LOCALIZATION, MENU, CategoriesWithModules, NAVBAR_EXTENSIONS, REDIRECT_MAP, EMBEDDED_ROUTE, ROUTE } from '@esfaenza/core/domain';
|
|
15
17
|
import { SlimScroll, ComponentHostDirective, EsModalDirective, Draggable, DirectivesModule } from '@esfaenza/core/directives';
|
|
16
|
-
import {
|
|
18
|
+
import { HttpParams } from '@angular/common/http';
|
|
19
|
+
import * as i7 from '@esfaenza/es-table';
|
|
20
|
+
import { EsTableColumnsDefinition, EsTableModule } from '@esfaenza/es-table';
|
|
21
|
+
import * as i8 from '@angular/forms';
|
|
22
|
+
import { FormsModule } from '@angular/forms';
|
|
17
23
|
import * as i4 from '@esfaenza/extensions';
|
|
18
24
|
import * as i5 from '@esfaenza/access-control';
|
|
19
25
|
import * as i10 from '@angular/material/slide-toggle';
|
|
20
26
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
21
|
-
import * as i8 from '@angular/forms';
|
|
22
|
-
import { FormsModule } from '@angular/forms';
|
|
23
|
-
import * as i12 from '@esfaenza/es-table';
|
|
24
|
-
import { EsTableColumnsDefinition, EsTableModule } from '@esfaenza/es-table';
|
|
25
27
|
import * as i11 from 'ngx-bootstrap/progressbar';
|
|
26
28
|
import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
|
|
27
29
|
import * as i9 from 'ngx-bootstrap/dropdown';
|
|
28
30
|
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
29
31
|
import * as i1$2 from '@esfaenza/preferences';
|
|
30
|
-
import * as
|
|
31
|
-
import { takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
32
|
+
import * as i2$2 from '@esfaenza/signalr-notifications';
|
|
32
33
|
import { ModalModule } from 'ngx-bootstrap/modal';
|
|
33
34
|
|
|
34
35
|
// Angular
|
|
@@ -50,11 +51,11 @@ class BackTop {
|
|
|
50
51
|
window.scrollY > this.position ? $(el).fadeIn(this.showSpeed) : $(el).fadeOut(this.showSpeed);
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
BackTop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
54
|
-
BackTop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
54
|
+
BackTop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BackTop, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
+
BackTop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BackTop, isStandalone: true, selector: "back-top", inputs: { position: "position", showSpeed: "showSpeed", moveSpeed: "moveSpeed" }, host: { listeners: { "click": "_onClick()", "window:scroll.out-zone": "_onWindowScroll()" } }, viewQueries: [{ propertyName: "_selector", first: true, predicate: ["backTop"], descendants: true }], ngImport: i0, template: "<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.back-to-top{position:fixed;width:40px;height:40px;cursor:pointer;z-index:9999;display:none;text-decoration:none;right:40px;bottom:40px!important;font-size:30px;text-align:center;opacity:.4;color:#191e29;background-color:#07adecbf;border-radius:50%;line-height:34px}.back-to-top:hover{opacity:.8}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BackTop, decorators: [{
|
|
56
57
|
type: Component,
|
|
57
|
-
args: [{ selector: "back-top", encapsulation: ViewEncapsulation.None, standalone: true, template: "<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>", styles: [".back-to-top{position:fixed;width:40px;height:40px;cursor:pointer;z-index:9999;display:none;text-decoration:none;right:40px;bottom:40px!important;font-size:30px;text-align:center;opacity:.4;color:#
|
|
58
|
+
args: [{ selector: "back-top", encapsulation: ViewEncapsulation.None, standalone: true, template: "<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.back-to-top{position:fixed;width:40px;height:40px;cursor:pointer;z-index:9999;display:none;text-decoration:none;right:40px;bottom:40px!important;font-size:30px;text-align:center;opacity:.4;color:#191e29;background-color:#07adecbf;border-radius:50%;line-height:34px}.back-to-top:hover{opacity:.8}\n"] }]
|
|
58
59
|
}], propDecorators: { position: [{
|
|
59
60
|
type: Input
|
|
60
61
|
}], showSpeed: [{
|
|
@@ -74,57 +75,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
74
75
|
|
|
75
76
|
// Angular
|
|
76
77
|
class Breadcrumb {
|
|
77
|
-
constructor(_state, _activatedRoute, _titleService) {
|
|
78
|
+
constructor(_state, router, _activatedRoute, _titleService) {
|
|
78
79
|
this._state = _state;
|
|
80
|
+
this.router = router;
|
|
79
81
|
this._activatedRoute = _activatedRoute;
|
|
80
82
|
this._titleService = _titleService;
|
|
81
|
-
this.
|
|
82
|
-
this.
|
|
83
|
-
this.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
this.MainLink = { title: "Dashboard", routerLink: ["/pages/dashboard"] };
|
|
84
|
+
this.SubLinks = [];
|
|
85
|
+
this.router.events.pipe(filter(event => event instanceof NavigationEnd), map((event) => { return { event: event, route: this._activatedRoute }; }), map((routeWithEvent) => {
|
|
86
|
+
while (routeWithEvent.route.firstChild)
|
|
87
|
+
routeWithEvent.route = routeWithEvent.route.firstChild;
|
|
88
|
+
return routeWithEvent;
|
|
89
|
+
}), mergeMap(routeWithEvent => combineLatest(of(routeWithEvent.event.url).pipe(map(url => this.router.parseUrl(url))), routeWithEvent.route.data))).subscribe((treePlusData) => {
|
|
90
|
+
let data = treePlusData[1];
|
|
91
|
+
let tree = treePlusData[0];
|
|
92
|
+
// true = SUB - dettaglio
|
|
93
|
+
// false = MAIN - ricerca/dashboard
|
|
94
|
+
let internalNavigation = data["InternalNavigation"];
|
|
95
|
+
let title = data["title"];
|
|
96
|
+
if (internalNavigation) {
|
|
97
|
+
this.onSubNavigation(tree, title);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.onMainNavigation(tree, title);
|
|
101
|
+
}
|
|
102
|
+
this._titleService.setTitle(myconfig.AppData.ModuleDescription + " > " + title);
|
|
103
|
+
});
|
|
94
104
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var index = this.subActiveLinks.indexOf(activeLink);
|
|
103
|
-
if (index != -1 && (index + 1) != this.subActiveLinks.length)
|
|
104
|
-
this.subActiveLinks.pop();
|
|
105
|
-
if (index == -1 && this.activePageTitle != activeLink)
|
|
106
|
-
this.subActiveLinks.push(activeLink);
|
|
107
|
-
this._titleService.setTitle(myconfig.AppData.ModuleDescription + " > " + activeLink);
|
|
105
|
+
ngOnInit() { }
|
|
106
|
+
onSubNavigation(tree, title) {
|
|
107
|
+
let index = this.SubLinks.indexOf(this.SubLinks.find(f => f.title == title));
|
|
108
|
+
let difference = this.SubLinks.length - (index + 1);
|
|
109
|
+
if (index != -1 && (index + 1) != this.SubLinks.length) {
|
|
110
|
+
for (let i = 0; i < difference; i++)
|
|
111
|
+
this.SubLinks.pop();
|
|
108
112
|
}
|
|
113
|
+
if (index == -1 && this.MainLink.title != title)
|
|
114
|
+
this.SubLinks.push({ title: title, routerLink: this.getRouterLink(tree) });
|
|
109
115
|
}
|
|
110
|
-
|
|
111
|
-
this.
|
|
112
|
-
|
|
113
|
-
cleanupSubNavigation() {
|
|
114
|
-
this.subActiveLinks = [];
|
|
116
|
+
onMainNavigation(tree, title) {
|
|
117
|
+
this.SubLinks = [];
|
|
118
|
+
this.MainLink = { title: title, routerLink: this.getRouterLink(tree) };
|
|
115
119
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
getRouterLink(tree) {
|
|
121
|
+
var _a, _b, _c, _d, _e;
|
|
122
|
+
let segs = (_d = (_c = (_b = (_a = tree === null || tree === void 0 ? void 0 : tree.root) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b["primary"]) === null || _c === void 0 ? void 0 : _c.segments) !== null && _d !== void 0 ? _d : [];
|
|
123
|
+
let route = "/" + segs.map(t => t.path).join('/');
|
|
124
|
+
let params = (_e = segs[segs.length - 1]) === null || _e === void 0 ? void 0 : _e.parameters;
|
|
125
|
+
return [route, params];
|
|
120
126
|
}
|
|
121
127
|
}
|
|
122
|
-
Breadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
123
|
-
Breadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
128
|
+
Breadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Breadcrumb, deps: [{ token: i3.AppState }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3$1.Title }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
+
Breadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Breadcrumb, isStandalone: true, selector: "breadcrumb", ngImport: i0, template: "<ol class=\"breadcrumb app-no-selection\">\r\n <li class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"['/pages/dashboard']\">Dashboard</li>\r\n <li *ngIf=\"MainLink?.title != 'Dashboard'\" [routerLink]=\"MainLink.routerLink\" class=\"breadcrumb-item text-uppercase breadcrumb-link\">{{MainLink.title}}</li>\r\n <li *ngFor=\"let link of SubLinks\" class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"link.routerLink\">{{link.title}}</li>\r\n</ol>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.breadcrumb{padding:0;margin:0;background:transparent;color:#132d46;font-size:14px}.breadcrumb-item+.breadcrumb-item:before{font-weight:400!important;color:#01c38d;font-family:\"Font Awesome 6 Pro\";font-size:.6rem;line-height:1.4rem;content:\"\\f054\"}.breadcrumb-item{float:left}.breadcrumb-link{cursor:pointer;font-weight:500;color:#01c38d!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Breadcrumb, decorators: [{
|
|
125
131
|
type: Component,
|
|
126
|
-
args: [{ selector: "breadcrumb", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgFor], template: "<
|
|
127
|
-
}], ctorParameters: function () { return [{ type:
|
|
132
|
+
args: [{ selector: "breadcrumb", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf, NgFor, RouterLink], template: "<ol class=\"breadcrumb app-no-selection\">\r\n <li class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"['/pages/dashboard']\">Dashboard</li>\r\n <li *ngIf=\"MainLink?.title != 'Dashboard'\" [routerLink]=\"MainLink.routerLink\" class=\"breadcrumb-item text-uppercase breadcrumb-link\">{{MainLink.title}}</li>\r\n <li *ngFor=\"let link of SubLinks\" class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"link.routerLink\">{{link.title}}</li>\r\n</ol>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.breadcrumb{padding:0;margin:0;background:transparent;color:#132d46;font-size:14px}.breadcrumb-item+.breadcrumb-item:before{font-weight:400!important;color:#01c38d;font-family:\"Font Awesome 6 Pro\";font-size:.6rem;line-height:1.4rem;content:\"\\f054\"}.breadcrumb-item{float:left}.breadcrumb-link{cursor:pointer;font-weight:500;color:#01c38d!important}\n"] }]
|
|
133
|
+
}], ctorParameters: function () { return [{ type: i3.AppState }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3$1.Title }]; } });
|
|
134
|
+
class BreadcrumbItem {
|
|
135
|
+
}
|
|
128
136
|
|
|
129
137
|
// Angular
|
|
130
138
|
class PageNotFoundComponent {
|
|
@@ -144,12 +152,12 @@ class PageNotFoundComponent {
|
|
|
144
152
|
this.router.navigate([url]);
|
|
145
153
|
}
|
|
146
154
|
}
|
|
147
|
-
PageNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
148
|
-
PageNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
155
|
+
PageNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageNotFoundComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
+
PageNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PageNotFoundComponent, isStandalone: true, selector: "pagenotfound", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\">404</h1>\r\n <h6 class=\"card-title\">La risorsa richiesta non è stata trovata ma in futuro potrebbe essere disponibile.</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", encapsulation: i0.ViewEncapsulation.None });
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageNotFoundComponent, decorators: [{
|
|
150
158
|
type: Component,
|
|
151
159
|
args: [{ selector: "pagenotfound", encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\">404</h1>\r\n <h6 class=\"card-title\">La risorsa richiesta non è stata trovata ma in futuro potrebbe essere disponibile.</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
152
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2
|
|
160
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }, { type: i3.AppState }]; } });
|
|
153
161
|
|
|
154
162
|
// Angular
|
|
155
163
|
class ServerErrorComponent {
|
|
@@ -178,12 +186,12 @@ class ServerErrorComponent {
|
|
|
178
186
|
this.router.navigate([url]);
|
|
179
187
|
}
|
|
180
188
|
}
|
|
181
|
-
ServerErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
182
|
-
ServerErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
189
|
+
ServerErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServerErrorComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
|
|
190
|
+
ServerErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ServerErrorComponent, isStandalone: true, selector: "servererror", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\" *ngIf=\"!statusCode\"> </h1>\r\n <h1 class=\"display-1\" *ngIf=\"statusCode\">{{statusCode}}</h1>\r\n <h6 class=\"card-title\" *ngIf=\"!statusText\"> </h6>\r\n <h6 class=\"card-title\" style=\"word-wrap:break-word; max-height: 500px; overflow: auto\" *ngIf=\"statusText\">{{statusText}}</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServerErrorComponent, decorators: [{
|
|
184
192
|
type: Component,
|
|
185
193
|
args: [{ selector: "servererror", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\" *ngIf=\"!statusCode\"> </h1>\r\n <h1 class=\"display-1\" *ngIf=\"statusCode\">{{statusCode}}</h1>\r\n <h6 class=\"card-title\" *ngIf=\"!statusText\"> </h6>\r\n <h6 class=\"card-title\" style=\"word-wrap:break-word; max-height: 500px; overflow: auto\" *ngIf=\"statusText\">{{statusText}}</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
186
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type:
|
|
194
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3.AppState }]; } });
|
|
187
195
|
|
|
188
196
|
// Angular
|
|
189
197
|
class AngularErrorComponent {
|
|
@@ -227,15 +235,17 @@ class AngularErrorComponent {
|
|
|
227
235
|
this.router.navigate([url]);
|
|
228
236
|
}
|
|
229
237
|
}
|
|
230
|
-
AngularErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
231
|
-
AngularErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
238
|
+
AngularErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularErrorComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2$1.HTTPService }, { token: i3.TokenService }, { token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
|
|
239
|
+
AngularErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AngularErrorComponent, isStandalone: true, selector: "angularerror", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-8 col-md-10 col-10 offset-xl-2 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-4\">Qualcosa è andato storto.</h1>\r\n <h6>\r\n <small>\r\n Si è verificato un errore interno all'applicazione. Questo non dovrebbe accadere. Prova a ricaricare la pagina precedente e rieffettuare le stesse operazioni, se il problema persiste contatta il service desk allegando una breve descrizione delle operazioni che stavi eseguendo e questo messaggio d'errore:\r\n </small>\r\n </h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"identityInfos\"><em>{{identityInfos}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorFrom\"><em>{{errorFrom}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorLastCalls\"><em>{{errorLastCalls}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorMessage\"><em>{{errorMessage}}</em></h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right app-margin-right-10\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularErrorComponent, decorators: [{
|
|
233
241
|
type: Component,
|
|
234
242
|
args: [{ selector: "angularerror", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-8 col-md-10 col-10 offset-xl-2 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-4\">Qualcosa è andato storto.</h1>\r\n <h6>\r\n <small>\r\n Si è verificato un errore interno all'applicazione. Questo non dovrebbe accadere. Prova a ricaricare la pagina precedente e rieffettuare le stesse operazioni, se il problema persiste contatta il service desk allegando una breve descrizione delle operazioni che stavi eseguendo e questo messaggio d'errore:\r\n </small>\r\n </h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"identityInfos\"><em>{{identityInfos}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorFrom\"><em>{{errorFrom}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorLastCalls\"><em>{{errorLastCalls}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorMessage\"><em>{{errorMessage}}</em></h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right app-margin-right-10\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
235
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2$
|
|
243
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2$1.HTTPService }, { type: i3.TokenService }, { type: i3.AppState }]; } });
|
|
236
244
|
|
|
245
|
+
// Chiamate ai Repository
|
|
246
|
+
const GET_Users_GetProfilePicture = "/api/Users/GetProfilePicture";
|
|
237
247
|
class Sidebar {
|
|
238
|
-
constructor(lc, lcMenu, cdr, _elementRef, _router, _state, zone, utiExts, aac, menuItemsRaw, menuFilteringService) {
|
|
248
|
+
constructor(lc, lcMenu, cdr, _elementRef, _router, _state, zone, utiExts, aac, menuItemsRaw, menuFilteringService, sr, https, msgs, globalSearchService) {
|
|
239
249
|
this.lc = lc;
|
|
240
250
|
this.cdr = cdr;
|
|
241
251
|
this._elementRef = _elementRef;
|
|
@@ -246,8 +256,22 @@ class Sidebar {
|
|
|
246
256
|
this.aac = aac;
|
|
247
257
|
this.menuItemsRaw = menuItemsRaw;
|
|
248
258
|
this.menuFilteringService = menuFilteringService;
|
|
259
|
+
this.sr = sr;
|
|
260
|
+
this.https = https;
|
|
261
|
+
this.msgs = msgs;
|
|
262
|
+
this.globalSearchService = globalSearchService;
|
|
249
263
|
this.isMenuCollapsed = false;
|
|
250
264
|
this.isMenuShouldCollapsed = false;
|
|
265
|
+
this.applicationVersion = myconfig.AppData.ComponentVersion;
|
|
266
|
+
this.user = "";
|
|
267
|
+
this.tenant = "";
|
|
268
|
+
this.SearchModel = "";
|
|
269
|
+
// TODO: Salvare dentro una service preferenze account
|
|
270
|
+
this.safeprofilepic = null;
|
|
271
|
+
// ***************************************** Gestione Ricerca Globale *****************************************
|
|
272
|
+
this.SelectedResult = null;
|
|
273
|
+
this.ShowSingleTable = false;
|
|
274
|
+
this.searchingTerm = false;
|
|
251
275
|
this.lc = this.lc.generateFromType(lcMenu);
|
|
252
276
|
this._state.subscribe("menu.isCollapsed", (isCollapsed) => {
|
|
253
277
|
this.isMenuCollapsed = isCollapsed;
|
|
@@ -265,6 +289,7 @@ class Sidebar {
|
|
|
265
289
|
window.scrollTo(0, 0);
|
|
266
290
|
}
|
|
267
291
|
});
|
|
292
|
+
this.getUserProfileData();
|
|
268
293
|
}
|
|
269
294
|
ngOnInit() {
|
|
270
295
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -312,6 +337,7 @@ class Sidebar {
|
|
|
312
337
|
}
|
|
313
338
|
return item;
|
|
314
339
|
}
|
|
340
|
+
//#region JQuery
|
|
315
341
|
onWindowResize() {
|
|
316
342
|
var isMenuShouldCollapsed = this._shouldMenuCollapse();
|
|
317
343
|
if (this.isMenuShouldCollapsed !== isMenuShouldCollapsed) {
|
|
@@ -338,7 +364,7 @@ class Sidebar {
|
|
|
338
364
|
hoverItem(jQueryevent) {
|
|
339
365
|
this.showHoverElem = true;
|
|
340
366
|
this.hoverElemHeight = jQueryevent.currentTarget.clientHeight;
|
|
341
|
-
this.hoverElemTop = jQueryevent.currentTarget.getBoundingClientRect().top
|
|
367
|
+
this.hoverElemTop = jQueryevent.currentTarget.getBoundingClientRect().top;
|
|
342
368
|
jQuery(".sidebar-hover-elem").css("top", this.hoverElemTop + "px");
|
|
343
369
|
jQuery(".sidebar-hover-elem").css("height", this.hoverElemHeight + "px");
|
|
344
370
|
jQuery(".sidebar-hover-elem").addClass("show-hover-elem");
|
|
@@ -348,7 +374,9 @@ class Sidebar {
|
|
|
348
374
|
jQuery(".sidebar-hover-elem").css("top", this.hoverElemTop + "px");
|
|
349
375
|
}
|
|
350
376
|
updateSidebarHeight() {
|
|
351
|
-
|
|
377
|
+
let marginTop = 60 + 40;
|
|
378
|
+
let footerHeight = 150;
|
|
379
|
+
this.menuHeight = this._elementRef.nativeElement.children[0].clientHeight - marginTop - footerHeight;
|
|
352
380
|
}
|
|
353
381
|
//Nonostante questa funzione sia collegata con (click.out-zone) per qualche motivo angular le esegue comunque nella sua zone
|
|
354
382
|
//generando un po' di irresponsività iniziale... succede solo col click... boh
|
|
@@ -407,29 +435,87 @@ class Sidebar {
|
|
|
407
435
|
link.next().slideUp(slidePeriod);
|
|
408
436
|
}
|
|
409
437
|
}
|
|
438
|
+
//#endregion
|
|
439
|
+
onChangeTenant() {
|
|
440
|
+
window.location.href = `${myconfig.AuthUrl}/login/tenant?client=${myconfig.Client}`;
|
|
441
|
+
}
|
|
442
|
+
onLogout() {
|
|
443
|
+
window.location.href = `${myconfig.AuthUrl}/logout?client=${myconfig.Client}`;
|
|
444
|
+
}
|
|
445
|
+
getUserProfileData() {
|
|
446
|
+
var identity = this.sr.getJaceIdentity();
|
|
447
|
+
if (identity) {
|
|
448
|
+
this.user = identity.FullName;
|
|
449
|
+
this.tenant = identity.TenantName;
|
|
450
|
+
// TODO: Mettere logica dentro una service preferenze account
|
|
451
|
+
this.https.get(GET_Users_GetProfilePicture, new HttpParams().set('id', identity.IdAccount.toString())).subscribe(t => {
|
|
452
|
+
//this._state.setSanitizerPicProfile(t.image);
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
onSearchRequest() {
|
|
457
|
+
console.log("sent!");
|
|
458
|
+
this.searchingTerm = true;
|
|
459
|
+
this.searchResult = null;
|
|
460
|
+
if (!this.globalSearchService.Enabled)
|
|
461
|
+
return;
|
|
462
|
+
this.globalSearchService.search(this.searchTerm).subscribe(t => {
|
|
463
|
+
this.searchingTerm = false;
|
|
464
|
+
this.searchResult = t;
|
|
465
|
+
this.searchResult.results.forEach(t => {
|
|
466
|
+
t.est_cols = t.columns.map(c => {
|
|
467
|
+
let colLink = this.globalSearchService.generateColumnLink(c);
|
|
468
|
+
return new EsTableColumnsDefinition(c.description, c.id, colLink === null || colLink === void 0 ? void 0 : colLink.routePath, colLink === null || colLink === void 0 ? void 0 : colLink.routeProperties);
|
|
469
|
+
});
|
|
470
|
+
});
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
onSearchModelChanged() {
|
|
474
|
+
console.log("changed!");
|
|
475
|
+
if (!this.searchingTerm)
|
|
476
|
+
this.closeSearch();
|
|
477
|
+
}
|
|
478
|
+
closeSearch() {
|
|
479
|
+
this.searchingTerm = false;
|
|
480
|
+
this.searchResult = null;
|
|
481
|
+
}
|
|
482
|
+
FilterSearchResults(item = null) {
|
|
483
|
+
this.SelectedResult = null;
|
|
484
|
+
this.ShowSingleTable = true;
|
|
485
|
+
requestAnimationFrame(() => {
|
|
486
|
+
var _a, _b;
|
|
487
|
+
if (item)
|
|
488
|
+
this.SelectedResult = (_b = (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.results) === null || _b === void 0 ? void 0 : _b.find(f => f.description == item.description);
|
|
489
|
+
else
|
|
490
|
+
this.ShowSingleTable = false;
|
|
491
|
+
});
|
|
492
|
+
}
|
|
410
493
|
}
|
|
411
|
-
Sidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
412
|
-
Sidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Sidebar, isStandalone: true, selector: "sidebar", host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "sidebar", first: true, predicate: ["sidebar"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"app-sidebar\" #sidebar [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\" style=\"position:relative; zoom:1\">\r\n\r\n <li *ngFor=\"let item of menuItems\" class=\"sidebar-list-item level-{{item.level}}\" [ngClass]=\"{'has-sub-menu': item.subMenu, 'sidebar-item-expanded': item.expanded}\" [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"sidebar-hover-elem\"></div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>", styles: [".app-sidebar{background:#344154;height:100%;min-height:100%;position:fixed;width:230px;overflow:hidden;display:block;z-index:9;margin-top:60px}.app-sidebar.menu-collapsed{width:50px}.app-sidebar.menu-collapsed a.sidebar-list-link b{display:none}.app-sidebar.menu-collapsed .sidebar-sublist{position:absolute;top:-1px;left:52px;width:0;display:block;overflow:hidden}.sidebar-list-item{display:block;position:relative;float:none;padding:0;border-bottom:1px solid rgba(36,45,58,.5);box-shadow:0 1px #ffffff1a}.sidebar-item-wip{cursor:default}.sidebar-item-wip a{color:#999!important}a.sidebar-list-link{display:block;height:42px;padding-left:18px!important;padding-top:0!important;text-shadow:none;font-size:13px;letter-spacing:.02em;text-decoration:none;color:#fff;line-height:42px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s ease}a.sidebar-list-link i{margin-right:16px;width:16px;display:inline-block}a.sidebar-list-link b{display:block;opacity:1;width:14px;height:14px;line-height:14px;text-shadow:none;font-size:18px;position:absolute;right:10px;top:14px;padding:0;text-align:center;color:#fff;transition:transform .2s linear}a.sidebar-list-link:hover{background-color:#242d3a}.sidebar-list-item.sidebar-item-expanded>.sidebar-list-link b,.sidebar-sublist-item.sidebar-item-expanded>.sidebar-list-link b{transform:rotate(180deg)}.sidebar-sublist{display:none;padding:0;list-style:none;position:relative;background-color:#242d3a80}.sidebar-sublist li{display:block;float:none;padding:0;border-bottom:none;position:relative;border-bottom:1px solid rgba(36,45,58,.7)}.sidebar-sublist li:last-child{border-bottom:none}.sidebar-sublist li a{display:block;text-shadow:none;font-size:13px;text-decoration:none;color:#fff;padding-left:40px!important;height:42px;line-height:42px}.sidebar-sublist li a:before{font-family:FontAwesome;content:\"\\f1db\";margin-right:10px;font-size:10px}.sidebar-sublist li a:hover{background-color:#242d3a}.sidebar-sublist .subitem-submenu-list li{border-top:1px solid rgba(36,45,58,.7)}.sidebar-item-expanded>ul.sidebar-sublist{display:block;background-color:#242d3a80}.subitem-submenu-link .fa{top:14px}.sidebar-hover-elem{width:4px;background:#637CA0;position:absolute;top:-150px;left:226px;transition:all .2s ease;transition-property:top,height;height:36px;display:block}.sidebar.menu-collapsed .sidebar-hover-elem{left:46px}.active-link{background-color:#637ca0}@media (max-width: 544px){.sidebar.menu-collapsed{width:0}.sidebar-hover-elem,.sidebar-select-elem{display:none}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SlimScroll, selector: "[slim-scroll]", inputs: ["slimScrollOptions"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$1.LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
494
|
+
Sidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Sidebar, deps: [{ token: i1$1.LocalizationService }, { token: MENU_LOCALIZATION, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.Router }, { token: i3.AppState }, { token: i0.NgZone }, { token: i4.UtilityService }, { token: i5.AccessControlService }, { token: MENU }, { token: i3.MenuFilteringService }, { token: i3.TokenService }, { token: i2$1.HTTPService }, { token: i4.MessageService }, { token: i3.GlobalSearchService }], target: i0.ɵɵFactoryTarget.Component });
|
|
495
|
+
Sidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Sidebar, isStandalone: true, selector: "sidebar", host: { listeners: { "window:resize.out-zone": "onWindowResize()" } }, viewQueries: [{ propertyName: "sidebar", first: true, predicate: ["sidebar"], descendants: true, static: true }], ngImport: i0, template: "<div #sidebar class=\"app-sidebar\" [class.menu-collapsed]=\"isMenuCollapsed\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <!--Jace Logo-->\r\n <div class=\"app-logo-container\">\r\n <div class=\"app-pointer\" [routerLink]=\"['/pages/dashboard']\" style=\"margin-bottom: 10px; overflow: hidden\">\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-logo-img app-logo-placeholder d-flex\">\r\n <div class=\"app-margin-left-10\">\r\n <i style=\"color: #00aeef;\" class=\"fas fa-chevron-left\"></i> \r\n <i style=\"color: #01C38D;\" class=\"fas fa-chevron-right\"></i> \r\n </div>\r\n <div class=\"app-margin-left-10\">Template a15</div>\r\n </div>\r\n <!--<img *ngIf=\"!isMenuCollapsed\" class=\"app-logo-img\" src=\"../dist/assets/img/logo/logo.png\" alt=\"\">\r\n <img *ngIf=\"isMenuCollapsed\" class=\"app-logo-img-sm\" src=\"../dist/assets/img/logo/logo_sm.png\" alt=\"\">-->\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-sidebar-search\">\r\n <form novalidate role=\"search\" class=\"app-search\" (ngSubmit)=\"onSearchRequest()\">\r\n <input type=\"text\" placeholder=\"Ricerca...\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"onSearchModelChanged()\" name=\"search\" class=\"form-control\" autocomplete=\"off\">\r\n <a><i class=\"far fa-magnifying-glass\"></i></a>\r\n </form>\r\n </div>\r\n <!--Barra laterale con tutte le voci di Menu-->\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" style=\"position: relative; zoom: 1\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\">\r\n <li *ngFor=\"let item of menuItems; let last = last;\" \r\n class=\"sidebar-list-item level-{{item.level}}\" \r\n [style.margin-bottom]=\"last ? '42px' : '0px'\" \r\n [class.has-sub-menu]=\"item.subMenu\"\r\n [class.sidebar-item-expanded]=\"item.expanded\" \r\n [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : { $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n <!--Selettore Barra dei Menu-->\r\n <div class=\"sidebar-hover-elem\"></div>\r\n <!--Footer-->\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-sidebar-footer\">\r\n <!--Minuscolo fade tra sidebar e inizio footer-->\r\n <div class=\"app-sidebar-footer-fade\"></div>\r\n <div class=\"app-padding-15\">\r\n <!--Informazioni utente collegato-->\r\n <div class=\"app-sidebar-footer-user-container\">\r\n <!--Mentre sto ancora caricando la ProfilePic mi assicuro di mostrare un placeholder-->\r\n <div *ngIf=\"!safeprofilepic\" class=\"app-sidebar-footer-user-img-placeholder\">\r\n <i class=\"far fa-2x fa-spinner fa-spin-pulse\" style=\"color: black; margin-top: 5px;\"></i>\r\n </div>\r\n <!--Una volta caricata la ProfilePic nascondo il placeholder e la mostro-->\r\n <ng-container *ngIf=\"safeprofilepic\">\r\n <img [src]=\"safeprofilepic\" alt=\"\" class=\"app-sidebar-footer-user-img app-pointer\" [routerLink]=\"['/pages/profile/user_info']\">\r\n <div class=\"app-sidebar-footer-user-status\"></div>\r\n </ng-container>\r\n <!--Username animato quando supera i 15 caratteri-->\r\n <div class=\"app-sidebar-footer-user-name-container\">\r\n <div class=\"username-text\" [class.username-text-animator]=\"user?.length > 15\">{{user}}</div>\r\n <div class=\"tenantname-text\">{{tenant}}</div>\r\n </div>\r\n </div>\r\n <!--Operazioni rapide (Logout, Cambia tenant, Guida, Supporto,...)-->\r\n <div class=\"app-sidebar-footer-quick-ops\">\r\n <div (click)=\"onLogout();\" class=\"app-sidebar-footer-op app-no-selection\"><i class=\"far fa-right-from-bracket\"></i> Logout</div>\r\n <div (click)=\"onChangeTenant();\" class=\"app-sidebar-footer-op app-no-selection\"><i class=\"far fa-right-left\"></i> Cambia Tenant</div>\r\n </div>\r\n <!--Versione corrente applicazione-->\r\n <div class=\"app-sidebar-footer-ver\">\r\n v{{applicationVersion}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n\r\n<!-- Overlay per la ricerca globale -->\r\n<ng-container *ngIf=\"searchingTerm || searchResult\">\r\n <div class=\"app-absolute app-search-background\">\r\n <div class=\"app-search-result-box\">\r\n <ng-container *ngIf=\"searchingTerm\">\r\n <div class=\"app-search-card\"><i class=\"fa fa-spinner fa-spin\"></i>Sto effettuando la ricerca...</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"searchResult && !searchingTerm\">\r\n <div class=\"row\" style=\"height: 100%;\">\r\n <!-- Spazio a sinistra -->\r\n <div class=\"col-md-1\"></div>\r\n <!-- Blocco con le categorie dei risultati -->\r\n <div class=\"col-md-3\">\r\n <div class=\"app-search-card\">\r\n <div class=\"app-relative\"><a class=\"fa fa-times text-danger app-absolute app-right-0 app-fs-20 app-pointer\" (click)=\"closeSearch();\"></a></div>\r\n <h4>Categorie di Ricerca</h4>\r\n <div class=\"app-pointer app-link\" [class.app-bold]=\"!SelectedResult && !ShowSingleTable\">\r\n <span (click)=\"FilterSearchResults()\">{{SelectedResult ? '-' : '>'}} Mostra Tutto</span>\r\n </div>\r\n <div *ngFor=\"let item of searchResult.results\" class=\"app-pointer app-link\" [class.app-bold]=\"SelectedResult?.description == item.description\">\r\n <span (click)=\"FilterSearchResults(item)\">{{SelectedResult?.description == item.description ? '>' : '-'}} Mostra {{item.description}} ({{item.items?.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Dettaglio risultati -->\r\n <div class=\"col-md-7\" style=\"overflow: auto; height: 100%;\">\r\n <ng-container *ngIf=\"!SelectedResult && !ShowSingleTable\">\r\n <div *ngFor=\"let res of searchResult.results; let i = index;\" class=\"app-search-card\" [style.margin-bottom.px]=\"i == (searchResult.results?.length - 1) ? 2 : 10\">\r\n <h4>{{res.description}}</h4>\r\n <es-table [(ngModel)]=\"res.items\" [DynamicRowColumnsDefinition]=\"res.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"SelectedResult && ShowSingleTable\">\r\n <div class=\"app-search-card\">\r\n <h4>{{SelectedResult.description}}</h4>\r\n <es-table [(ngModel)]=\"SelectedResult.items\" [DynamicRowColumnsDefinition]=\"SelectedResult.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- Spazio a destra -->\r\n <div class=\"col-md-1\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.app-sidebar{background:#132D46;box-shadow:8px 0 6px -6px #1313130a,12px 0 16px -16px #1313130d;height:100%;min-height:100%;width:230px;overflow:hidden;display:block;z-index:9}.app-sidebar.menu-collapsed{width:50px}.app-sidebar.menu-collapsed a.sidebar-list-link b{display:none}.app-sidebar.menu-collapsed .sidebar-sublist{position:absolute;top:-1px;left:52px;width:0;display:block;overflow:hidden}.sidebar-list-item{display:block;position:relative;float:none;padding:0;border-bottom:1px solid #191E29}.sidebar-item-wip{cursor:default}a.sidebar-list-link{display:block;height:42px;padding-left:18px!important;padding-top:0!important;text-shadow:none;font-size:13px;letter-spacing:.02em;text-decoration:none;color:#fff;line-height:42px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s ease}a.sidebar-list-link i{margin-right:16px;width:16px;display:inline-block}a.sidebar-list-link b{display:block;opacity:1;width:14px;height:14px;line-height:14px;text-shadow:none;font-size:18px;position:absolute;right:10px;top:14px;padding:0;text-align:center;transition:transform .2s linear}a.sidebar-list-link:hover{background-color:#0e2032}.sidebar-list-item.sidebar-item-expanded>.sidebar-list-link b,.sidebar-sublist-item.sidebar-item-expanded>.sidebar-list-link b{transform:rotate(180deg)}.sidebar-sublist{display:none;padding:0;list-style:none;position:relative;background-color:#183a5a}.sidebar-sublist li{display:block;float:none;padding:0;border-bottom:none;position:relative;border-top:1px solid #191E29}.sidebar-sublist li a{display:block;text-shadow:none;font-size:13px;text-decoration:none;padding-left:30px!important;height:42px;line-height:42px}.sidebar-sublist li a:hover{background-color:#0e2032}.sidebar-item-expanded>ul.sidebar-sublist{display:block;background-color:#183a5a}.subitem-submenu-link .fa{top:14px}.sidebar-hover-elem{width:4px;background-color:#01c38d;position:absolute;top:-90px;left:226px;transition:all .2s ease;transition-property:top,height;height:36px;display:block}.sidebar.menu-collapsed .sidebar-hover-elem{left:46px}.active-link{color:#01c38d!important;font-weight:700!important;background-color:#183a5a}@media (max-width: 544px){.sidebar.menu-collapsed{width:0}.sidebar-hover-elem,.sidebar-select-elem{display:none}}.app-logo-container{height:60px;background-color:#132d46;display:flex;position:relative;z-index:10;margin-bottom:-1px;border-bottom:1px solid #191E29;color:#fff}.app-sidebar-search{height:39px}.app-logo-placeholder{text-align:center;font-size:1.2rem;text-transform:uppercase;font-weight:700;margin-top:15px!important}.app-logo-img{width:210px;margin:10px 0 0 10px}.app-logo-img-sm{padding-top:10px}.app-sidebar-footer{position:relative;background-color:#132d46}.app-sidebar-footer-fade{top:-42px;position:absolute;background-image:linear-gradient(to top,#132d46,rgba(19,45,70,0));height:42px;width:230px;z-index:100}.app-sidebar-footer-user-container{position:relative;display:flex;margin-top:5px;color:#fff}.app-sidebar-footer-user-img-placeholder{height:40px;min-width:40px;width:40px;text-align:center}.app-sidebar-footer-user-img{height:40px;min-height:40px;min-width:40px;width:40px;border-radius:50%;border:1px solid #191E29}.app-sidebar-footer-user-status{background-color:#32cd32;border:1px solid green;border-radius:50%;position:absolute;left:29px;top:29px;height:11px;width:11px}.app-sidebar-footer-user-name-container{width:150px;white-space:nowrap;overflow:hidden;margin-left:10px}.username-text{z-index:1;min-width:140px;display:flex;font-size:16px}.username-text-animator:hover{transform:translate(100%);animation:my-animation 3s linear infinite}@keyframes my-animation{0%{transform:translate(0)}to{transform:translate(-50%)}}.tenantname-text{font-size:12px}.app-sidebar-footer-quick-ops{margin-top:10px;display:flex;justify-content:space-between}.app-sidebar-footer-op{color:#01c38d;font-weight:700;cursor:pointer}.app-sidebar-footer-ver{text-align:right;margin-top:30px;color:#fff}.app-search{position:relative}.app-search a{position:absolute;top:8px;right:14px;font-size:16px;color:#fff!important}.app-search .form-control{font-size:12px;letter-spacing:.03em;height:40px;color:#fff;padding:7px 40px 7px 20px;background:#183a5a;box-shadow:none!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:1px solid #191E29}\n"], dependencies: [{ kind: "directive", type: SlimScroll, selector: "[slim-scroll]", inputs: ["slimScrollOptions"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$1.LocalizePipe, name: "localize" }, { kind: "ngmodule", type: EsTableModule }, { kind: "component", type: i7.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
496
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Sidebar, decorators: [{
|
|
414
497
|
type: Component,
|
|
415
|
-
args: [{ selector: "sidebar", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, SlimScroll, NgFor, NgTemplateOutlet, NgIf, RouterLinkActive, RouterLink, LocalizationModule], template: "<div class=\"app-sidebar\" #sidebar [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\" style=\"position:relative; zoom:1\">\r\n\r\n <li *ngFor=\"let item of menuItems\" class=\"sidebar-list-item level-{{item.level}}\" [ngClass]=\"{'has-sub-menu': item.subMenu, 'sidebar-item-expanded': item.expanded}\" [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"sidebar-hover-elem\"></div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>", styles: [".app-sidebar{background:#344154;height:100%;min-height:100%;position:fixed;width:230px;overflow:hidden;display:block;z-index:9;margin-top:60px}.app-sidebar.menu-collapsed{width:50px}.app-sidebar.menu-collapsed a.sidebar-list-link b{display:none}.app-sidebar.menu-collapsed .sidebar-sublist{position:absolute;top:-1px;left:52px;width:0;display:block;overflow:hidden}.sidebar-list-item{display:block;position:relative;float:none;padding:0;border-bottom:1px solid rgba(36,45,58,.5);box-shadow:0 1px #ffffff1a}.sidebar-item-wip{cursor:default}.sidebar-item-wip a{color:#999!important}a.sidebar-list-link{display:block;height:42px;padding-left:18px!important;padding-top:0!important;text-shadow:none;font-size:13px;letter-spacing:.02em;text-decoration:none;color:#fff;line-height:42px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s ease}a.sidebar-list-link i{margin-right:16px;width:16px;display:inline-block}a.sidebar-list-link b{display:block;opacity:1;width:14px;height:14px;line-height:14px;text-shadow:none;font-size:18px;position:absolute;right:10px;top:14px;padding:0;text-align:center;color:#fff;transition:transform .2s linear}a.sidebar-list-link:hover{background-color:#242d3a}.sidebar-list-item.sidebar-item-expanded>.sidebar-list-link b,.sidebar-sublist-item.sidebar-item-expanded>.sidebar-list-link b{transform:rotate(180deg)}.sidebar-sublist{display:none;padding:0;list-style:none;position:relative;background-color:#242d3a80}.sidebar-sublist li{display:block;float:none;padding:0;border-bottom:none;position:relative;border-bottom:1px solid rgba(36,45,58,.7)}.sidebar-sublist li:last-child{border-bottom:none}.sidebar-sublist li a{display:block;text-shadow:none;font-size:13px;text-decoration:none;color:#fff;padding-left:40px!important;height:42px;line-height:42px}.sidebar-sublist li a:before{font-family:FontAwesome;content:\"\\f1db\";margin-right:10px;font-size:10px}.sidebar-sublist li a:hover{background-color:#242d3a}.sidebar-sublist .subitem-submenu-list li{border-top:1px solid rgba(36,45,58,.7)}.sidebar-item-expanded>ul.sidebar-sublist{display:block;background-color:#242d3a80}.subitem-submenu-link .fa{top:14px}.sidebar-hover-elem{width:4px;background:#637CA0;position:absolute;top:-150px;left:226px;transition:all .2s ease;transition-property:top,height;height:36px;display:block}.sidebar.menu-collapsed .sidebar-hover-elem{left:46px}.active-link{background-color:#637ca0}@media (max-width: 544px){.sidebar.menu-collapsed{width:0}.sidebar-hover-elem,.sidebar-select-elem{display:none}}\n"] }]
|
|
498
|
+
args: [{ selector: "sidebar", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, SlimScroll, NgFor, NgTemplateOutlet, NgIf, RouterLinkActive, RouterLink, LocalizationModule, EsTableModule, FormsModule], template: "<div #sidebar class=\"app-sidebar\" [class.menu-collapsed]=\"isMenuCollapsed\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <!--Jace Logo-->\r\n <div class=\"app-logo-container\">\r\n <div class=\"app-pointer\" [routerLink]=\"['/pages/dashboard']\" style=\"margin-bottom: 10px; overflow: hidden\">\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-logo-img app-logo-placeholder d-flex\">\r\n <div class=\"app-margin-left-10\">\r\n <i style=\"color: #00aeef;\" class=\"fas fa-chevron-left\"></i> \r\n <i style=\"color: #01C38D;\" class=\"fas fa-chevron-right\"></i> \r\n </div>\r\n <div class=\"app-margin-left-10\">Template a15</div>\r\n </div>\r\n <!--<img *ngIf=\"!isMenuCollapsed\" class=\"app-logo-img\" src=\"../dist/assets/img/logo/logo.png\" alt=\"\">\r\n <img *ngIf=\"isMenuCollapsed\" class=\"app-logo-img-sm\" src=\"../dist/assets/img/logo/logo_sm.png\" alt=\"\">-->\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-sidebar-search\">\r\n <form novalidate role=\"search\" class=\"app-search\" (ngSubmit)=\"onSearchRequest()\">\r\n <input type=\"text\" placeholder=\"Ricerca...\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"onSearchModelChanged()\" name=\"search\" class=\"form-control\" autocomplete=\"off\">\r\n <a><i class=\"far fa-magnifying-glass\"></i></a>\r\n </form>\r\n </div>\r\n <!--Barra laterale con tutte le voci di Menu-->\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" style=\"position: relative; zoom: 1\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\">\r\n <li *ngFor=\"let item of menuItems; let last = last;\" \r\n class=\"sidebar-list-item level-{{item.level}}\" \r\n [style.margin-bottom]=\"last ? '42px' : '0px'\" \r\n [class.has-sub-menu]=\"item.subMenu\"\r\n [class.sidebar-item-expanded]=\"item.expanded\" \r\n [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : { $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n <!--Selettore Barra dei Menu-->\r\n <div class=\"sidebar-hover-elem\"></div>\r\n <!--Footer-->\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-sidebar-footer\">\r\n <!--Minuscolo fade tra sidebar e inizio footer-->\r\n <div class=\"app-sidebar-footer-fade\"></div>\r\n <div class=\"app-padding-15\">\r\n <!--Informazioni utente collegato-->\r\n <div class=\"app-sidebar-footer-user-container\">\r\n <!--Mentre sto ancora caricando la ProfilePic mi assicuro di mostrare un placeholder-->\r\n <div *ngIf=\"!safeprofilepic\" class=\"app-sidebar-footer-user-img-placeholder\">\r\n <i class=\"far fa-2x fa-spinner fa-spin-pulse\" style=\"color: black; margin-top: 5px;\"></i>\r\n </div>\r\n <!--Una volta caricata la ProfilePic nascondo il placeholder e la mostro-->\r\n <ng-container *ngIf=\"safeprofilepic\">\r\n <img [src]=\"safeprofilepic\" alt=\"\" class=\"app-sidebar-footer-user-img app-pointer\" [routerLink]=\"['/pages/profile/user_info']\">\r\n <div class=\"app-sidebar-footer-user-status\"></div>\r\n </ng-container>\r\n <!--Username animato quando supera i 15 caratteri-->\r\n <div class=\"app-sidebar-footer-user-name-container\">\r\n <div class=\"username-text\" [class.username-text-animator]=\"user?.length > 15\">{{user}}</div>\r\n <div class=\"tenantname-text\">{{tenant}}</div>\r\n </div>\r\n </div>\r\n <!--Operazioni rapide (Logout, Cambia tenant, Guida, Supporto,...)-->\r\n <div class=\"app-sidebar-footer-quick-ops\">\r\n <div (click)=\"onLogout();\" class=\"app-sidebar-footer-op app-no-selection\"><i class=\"far fa-right-from-bracket\"></i> Logout</div>\r\n <div (click)=\"onChangeTenant();\" class=\"app-sidebar-footer-op app-no-selection\"><i class=\"far fa-right-left\"></i> Cambia Tenant</div>\r\n </div>\r\n <!--Versione corrente applicazione-->\r\n <div class=\"app-sidebar-footer-ver\">\r\n v{{applicationVersion}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n\r\n<!-- Overlay per la ricerca globale -->\r\n<ng-container *ngIf=\"searchingTerm || searchResult\">\r\n <div class=\"app-absolute app-search-background\">\r\n <div class=\"app-search-result-box\">\r\n <ng-container *ngIf=\"searchingTerm\">\r\n <div class=\"app-search-card\"><i class=\"fa fa-spinner fa-spin\"></i>Sto effettuando la ricerca...</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"searchResult && !searchingTerm\">\r\n <div class=\"row\" style=\"height: 100%;\">\r\n <!-- Spazio a sinistra -->\r\n <div class=\"col-md-1\"></div>\r\n <!-- Blocco con le categorie dei risultati -->\r\n <div class=\"col-md-3\">\r\n <div class=\"app-search-card\">\r\n <div class=\"app-relative\"><a class=\"fa fa-times text-danger app-absolute app-right-0 app-fs-20 app-pointer\" (click)=\"closeSearch();\"></a></div>\r\n <h4>Categorie di Ricerca</h4>\r\n <div class=\"app-pointer app-link\" [class.app-bold]=\"!SelectedResult && !ShowSingleTable\">\r\n <span (click)=\"FilterSearchResults()\">{{SelectedResult ? '-' : '>'}} Mostra Tutto</span>\r\n </div>\r\n <div *ngFor=\"let item of searchResult.results\" class=\"app-pointer app-link\" [class.app-bold]=\"SelectedResult?.description == item.description\">\r\n <span (click)=\"FilterSearchResults(item)\">{{SelectedResult?.description == item.description ? '>' : '-'}} Mostra {{item.description}} ({{item.items?.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Dettaglio risultati -->\r\n <div class=\"col-md-7\" style=\"overflow: auto; height: 100%;\">\r\n <ng-container *ngIf=\"!SelectedResult && !ShowSingleTable\">\r\n <div *ngFor=\"let res of searchResult.results; let i = index;\" class=\"app-search-card\" [style.margin-bottom.px]=\"i == (searchResult.results?.length - 1) ? 2 : 10\">\r\n <h4>{{res.description}}</h4>\r\n <es-table [(ngModel)]=\"res.items\" [DynamicRowColumnsDefinition]=\"res.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"SelectedResult && ShowSingleTable\">\r\n <div class=\"app-search-card\">\r\n <h4>{{SelectedResult.description}}</h4>\r\n <es-table [(ngModel)]=\"SelectedResult.items\" [DynamicRowColumnsDefinition]=\"SelectedResult.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- Spazio a destra -->\r\n <div class=\"col-md-1\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.app-sidebar{background:#132D46;box-shadow:8px 0 6px -6px #1313130a,12px 0 16px -16px #1313130d;height:100%;min-height:100%;width:230px;overflow:hidden;display:block;z-index:9}.app-sidebar.menu-collapsed{width:50px}.app-sidebar.menu-collapsed a.sidebar-list-link b{display:none}.app-sidebar.menu-collapsed .sidebar-sublist{position:absolute;top:-1px;left:52px;width:0;display:block;overflow:hidden}.sidebar-list-item{display:block;position:relative;float:none;padding:0;border-bottom:1px solid #191E29}.sidebar-item-wip{cursor:default}a.sidebar-list-link{display:block;height:42px;padding-left:18px!important;padding-top:0!important;text-shadow:none;font-size:13px;letter-spacing:.02em;text-decoration:none;color:#fff;line-height:42px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s ease}a.sidebar-list-link i{margin-right:16px;width:16px;display:inline-block}a.sidebar-list-link b{display:block;opacity:1;width:14px;height:14px;line-height:14px;text-shadow:none;font-size:18px;position:absolute;right:10px;top:14px;padding:0;text-align:center;transition:transform .2s linear}a.sidebar-list-link:hover{background-color:#0e2032}.sidebar-list-item.sidebar-item-expanded>.sidebar-list-link b,.sidebar-sublist-item.sidebar-item-expanded>.sidebar-list-link b{transform:rotate(180deg)}.sidebar-sublist{display:none;padding:0;list-style:none;position:relative;background-color:#183a5a}.sidebar-sublist li{display:block;float:none;padding:0;border-bottom:none;position:relative;border-top:1px solid #191E29}.sidebar-sublist li a{display:block;text-shadow:none;font-size:13px;text-decoration:none;padding-left:30px!important;height:42px;line-height:42px}.sidebar-sublist li a:hover{background-color:#0e2032}.sidebar-item-expanded>ul.sidebar-sublist{display:block;background-color:#183a5a}.subitem-submenu-link .fa{top:14px}.sidebar-hover-elem{width:4px;background-color:#01c38d;position:absolute;top:-90px;left:226px;transition:all .2s ease;transition-property:top,height;height:36px;display:block}.sidebar.menu-collapsed .sidebar-hover-elem{left:46px}.active-link{color:#01c38d!important;font-weight:700!important;background-color:#183a5a}@media (max-width: 544px){.sidebar.menu-collapsed{width:0}.sidebar-hover-elem,.sidebar-select-elem{display:none}}.app-logo-container{height:60px;background-color:#132d46;display:flex;position:relative;z-index:10;margin-bottom:-1px;border-bottom:1px solid #191E29;color:#fff}.app-sidebar-search{height:39px}.app-logo-placeholder{text-align:center;font-size:1.2rem;text-transform:uppercase;font-weight:700;margin-top:15px!important}.app-logo-img{width:210px;margin:10px 0 0 10px}.app-logo-img-sm{padding-top:10px}.app-sidebar-footer{position:relative;background-color:#132d46}.app-sidebar-footer-fade{top:-42px;position:absolute;background-image:linear-gradient(to top,#132d46,rgba(19,45,70,0));height:42px;width:230px;z-index:100}.app-sidebar-footer-user-container{position:relative;display:flex;margin-top:5px;color:#fff}.app-sidebar-footer-user-img-placeholder{height:40px;min-width:40px;width:40px;text-align:center}.app-sidebar-footer-user-img{height:40px;min-height:40px;min-width:40px;width:40px;border-radius:50%;border:1px solid #191E29}.app-sidebar-footer-user-status{background-color:#32cd32;border:1px solid green;border-radius:50%;position:absolute;left:29px;top:29px;height:11px;width:11px}.app-sidebar-footer-user-name-container{width:150px;white-space:nowrap;overflow:hidden;margin-left:10px}.username-text{z-index:1;min-width:140px;display:flex;font-size:16px}.username-text-animator:hover{transform:translate(100%);animation:my-animation 3s linear infinite}@keyframes my-animation{0%{transform:translate(0)}to{transform:translate(-50%)}}.tenantname-text{font-size:12px}.app-sidebar-footer-quick-ops{margin-top:10px;display:flex;justify-content:space-between}.app-sidebar-footer-op{color:#01c38d;font-weight:700;cursor:pointer}.app-sidebar-footer-ver{text-align:right;margin-top:30px;color:#fff}.app-search{position:relative}.app-search a{position:absolute;top:8px;right:14px;font-size:16px;color:#fff!important}.app-search .form-control{font-size:12px;letter-spacing:.03em;height:40px;color:#fff;padding:7px 40px 7px 20px;background:#183a5a;box-shadow:none!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:1px solid #191E29}\n"] }]
|
|
416
499
|
}], ctorParameters: function () {
|
|
417
500
|
return [{ type: i1$1.LocalizationService }, { type: i0.Type, decorators: [{
|
|
418
501
|
type: Optional
|
|
419
502
|
}, {
|
|
420
503
|
type: Inject,
|
|
421
504
|
args: [MENU_LOCALIZATION]
|
|
422
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.Router }, { type:
|
|
505
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.Router }, { type: i3.AppState }, { type: i0.NgZone }, { type: i4.UtilityService }, { type: i5.AccessControlService }, { type: undefined, decorators: [{
|
|
423
506
|
type: Inject,
|
|
424
507
|
args: [MENU]
|
|
425
|
-
}] }, { type:
|
|
508
|
+
}] }, { type: i3.MenuFilteringService }, { type: i3.TokenService }, { type: i2$1.HTTPService }, { type: i4.MessageService }, { type: i3.GlobalSearchService }];
|
|
426
509
|
}, propDecorators: { sidebar: [{
|
|
427
510
|
type: ViewChild,
|
|
428
511
|
args: ["sidebar", { static: true }]
|
|
429
512
|
}], onWindowResize: [{
|
|
430
513
|
type: HostListener,
|
|
431
|
-
args: ["window:resize"]
|
|
432
|
-
}] } });
|
|
514
|
+
args: ["window:resize.out-zone"]
|
|
515
|
+
}] } });
|
|
516
|
+
// TODO: Spostare nel modulo preferenze account
|
|
517
|
+
class ProfilePicture {
|
|
518
|
+
}
|
|
433
519
|
|
|
434
520
|
class NavBarLoc extends LocalizationService {
|
|
435
521
|
constructor(injector) {
|
|
@@ -458,9 +544,9 @@ class NavBarLoc extends LocalizationService {
|
|
|
458
544
|
super.set("it->en", "Job Completato", ["Job Completed"]);
|
|
459
545
|
}
|
|
460
546
|
}
|
|
461
|
-
NavBarLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
462
|
-
NavBarLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
463
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
547
|
+
NavBarLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavBarLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
548
|
+
NavBarLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavBarLoc });
|
|
549
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavBarLoc, decorators: [{
|
|
464
550
|
type: Injectable
|
|
465
551
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
466
552
|
|
|
@@ -479,9 +565,9 @@ class ReactiveComponent {
|
|
|
479
565
|
this.Subscriptions[i].unsubscribe();
|
|
480
566
|
}
|
|
481
567
|
}
|
|
482
|
-
ReactiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
483
|
-
ReactiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
568
|
+
ReactiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ReactiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
569
|
+
ReactiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ReactiveComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ReactiveComponent, decorators: [{
|
|
485
571
|
type: Component,
|
|
486
572
|
args: [{ template: '' }]
|
|
487
573
|
}] });
|
|
@@ -512,12 +598,12 @@ class JaceModulesBoardComponent {
|
|
|
512
598
|
});
|
|
513
599
|
}
|
|
514
600
|
}
|
|
515
|
-
JaceModulesBoardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
516
|
-
JaceModulesBoardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
517
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
601
|
+
JaceModulesBoardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceModulesBoardComponent, deps: [{ token: i3.TokenService }], target: i0.ɵɵFactoryTarget.Component });
|
|
602
|
+
JaceModulesBoardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: JaceModulesBoardComponent, isStandalone: true, selector: "jace-modules-board", inputs: { Modules: "Modules" }, ngImport: i0, template: "<div class=\"module-backdrop\">\r\n <div class=\"module-container\">\r\n <div *ngFor=\"let cat of Categories; let catFirst = first;\">\r\n <h5 class=\"module-title\" [style.margin-top.px]=\"catFirst ? 0 : 10\">{{cat.category}}</h5>\r\n <div *ngFor=\"let row of cat.module_rows\" class=\"d-flex\">\r\n <ng-container *ngFor=\"let mod of row; let modFirst = first;\">\r\n <a *ngIf=\"mod.href\" [href]=\"mod.href\">\r\n <div class=\"module module-available\" [style.margin]=\"modFirst ? '0px' : '0px 0px 15px 15px'\">\r\n <div class=\"module-name\"><span>{{mod.name}}</span></div>\r\n <div class=\"module-footer\">{{'Disponibile'}}</div>\r\n </div>\r\n </a>\r\n <a *ngIf=\"!mod.href\">\r\n <div class=\"module module-unavailable\" [style.margin]=\"modFirst ? '0px' : '0px 0px 15px 15px'\">\r\n <div class=\"module-name\"><span>{{mod.name}}</span></div>\r\n <div class=\"module-footer\">{{'Non disponibile'}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.module-backdrop{position:fixed;width:100vw;height:calc(100vh - 60px);top:60px;left:0;background-color:#0009;z-index:1039;display:flex}.module-container{margin:auto;padding:15px;background:linear-gradient(217deg,#183a5a,#132D46 70.71%),linear-gradient(127deg,#132D46,#0e2032 70.71%),linear-gradient(336deg,#0e2032,#183a5a 70.71%);box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.module{padding:10px;background:#183a5a;height:94px;width:282px;position:relative;border:1px solid}.module-title{color:#fff;font-size:22px;font-family:Sora,sans-serif;text-transform:capitalize}.module-name{color:#fff;font-size:18px;font-family:Lato,sans-serif;text-transform:capitalize}.module-footer{color:#fff}.module-available{cursor:pointer;border-color:#84cc16}.module-available:hover{background-color:#0e2032}.module-available:hover .module-name{color:#01aa7b;font-weight:700}.module-available:hover .module-footer{color:#01aa7b}.module-unavailable{cursor:not-allowed;border-color:#fbbf24}.module-unavailable .module-name,.module-unavailable .module-footer{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
603
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceModulesBoardComponent, decorators: [{
|
|
518
604
|
type: Component,
|
|
519
|
-
args: [{ selector: "jace-modules-board", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgFor], template: "<div
|
|
520
|
-
}], ctorParameters: function () { return [{ type:
|
|
605
|
+
args: [{ selector: "jace-modules-board", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgFor], template: "<div class=\"module-backdrop\">\r\n <div class=\"module-container\">\r\n <div *ngFor=\"let cat of Categories; let catFirst = first;\">\r\n <h5 class=\"module-title\" [style.margin-top.px]=\"catFirst ? 0 : 10\">{{cat.category}}</h5>\r\n <div *ngFor=\"let row of cat.module_rows\" class=\"d-flex\">\r\n <ng-container *ngFor=\"let mod of row; let modFirst = first;\">\r\n <a *ngIf=\"mod.href\" [href]=\"mod.href\">\r\n <div class=\"module module-available\" [style.margin]=\"modFirst ? '0px' : '0px 0px 15px 15px'\">\r\n <div class=\"module-name\"><span>{{mod.name}}</span></div>\r\n <div class=\"module-footer\">{{'Disponibile'}}</div>\r\n </div>\r\n </a>\r\n <a *ngIf=\"!mod.href\">\r\n <div class=\"module module-unavailable\" [style.margin]=\"modFirst ? '0px' : '0px 0px 15px 15px'\">\r\n <div class=\"module-name\"><span>{{mod.name}}</span></div>\r\n <div class=\"module-footer\">{{'Non disponibile'}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.module-backdrop{position:fixed;width:100vw;height:calc(100vh - 60px);top:60px;left:0;background-color:#0009;z-index:1039;display:flex}.module-container{margin:auto;padding:15px;background:linear-gradient(217deg,#183a5a,#132D46 70.71%),linear-gradient(127deg,#132D46,#0e2032 70.71%),linear-gradient(336deg,#0e2032,#183a5a 70.71%);box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.module{padding:10px;background:#183a5a;height:94px;width:282px;position:relative;border:1px solid}.module-title{color:#fff;font-size:22px;font-family:Sora,sans-serif;text-transform:capitalize}.module-name{color:#fff;font-size:18px;font-family:Lato,sans-serif;text-transform:capitalize}.module-footer{color:#fff}.module-available{cursor:pointer;border-color:#84cc16}.module-available:hover{background-color:#0e2032}.module-available:hover .module-name{color:#01aa7b;font-weight:700}.module-available:hover .module-footer{color:#01aa7b}.module-unavailable{cursor:not-allowed;border-color:#fbbf24}.module-unavailable .module-name,.module-unavailable .module-footer{cursor:not-allowed}\n"] }]
|
|
606
|
+
}], ctorParameters: function () { return [{ type: i3.TokenService }]; }, propDecorators: { Modules: [{
|
|
521
607
|
type: Input
|
|
522
608
|
}] } });
|
|
523
609
|
|
|
@@ -526,11 +612,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
526
612
|
const GET_Jace_GetActiveJaceModules = "/api/Jace/GetActiveJaceModules";
|
|
527
613
|
const GET_Adm_ClearAllCaches = "/api/Adm/ClearAllCaches";
|
|
528
614
|
class Navbar extends ReactiveComponent {
|
|
529
|
-
constructor(prefsService, cacheService,
|
|
615
|
+
constructor(prefsService, cacheService, MessageDef, notifications, msgExts, lc, http, cdr, _state, sr, router, cjrService, extensionComponents) {
|
|
530
616
|
super();
|
|
531
617
|
this.prefsService = prefsService;
|
|
532
618
|
this.cacheService = cacheService;
|
|
533
|
-
this.globalSearchService = globalSearchService;
|
|
534
619
|
this.MessageDef = MessageDef;
|
|
535
620
|
this.notifications = notifications;
|
|
536
621
|
this.msgExts = msgExts;
|
|
@@ -547,10 +632,8 @@ class Navbar extends ReactiveComponent {
|
|
|
547
632
|
this.isMenuCollapsed = false;
|
|
548
633
|
this.anomaliesProcessing = false;
|
|
549
634
|
this.newVersionWarned = false;
|
|
550
|
-
//
|
|
551
|
-
this.
|
|
552
|
-
this.ShowSingleTable = false;
|
|
553
|
-
this.searchingTerm = false;
|
|
635
|
+
// Jace Module Dashboard
|
|
636
|
+
this.showModules = false;
|
|
554
637
|
this._state.subscribe("menu.isCollapsed", (isCollapsed) => { this.isMenuCollapsed = isCollapsed; });
|
|
555
638
|
this._state.subscribe("app.completedJob", (jobDescription) => {
|
|
556
639
|
this.msgExts.simpleSuccess(this.lc.loc("Job Completato") + ": " + jobDescription);
|
|
@@ -624,17 +707,6 @@ class Navbar extends ReactiveComponent {
|
|
|
624
707
|
this.prefsService.clear().subscribe();
|
|
625
708
|
this.msgExts.simpleSuccess(this.lc.loc("Preferenze utente ripulite"));
|
|
626
709
|
}
|
|
627
|
-
clearCacheClient() {
|
|
628
|
-
this.cacheService.clear().subscribe();
|
|
629
|
-
this.http.resetHttpUntimedCacheStorage();
|
|
630
|
-
this.http.resetHttpTimedCacheStorage();
|
|
631
|
-
this.msgExts.simpleSuccess(this.lc.loc("Cache Ripulita"));
|
|
632
|
-
}
|
|
633
|
-
clearCacheServer() {
|
|
634
|
-
this.http.get(GET_Adm_ClearAllCaches).subscribe(_ => {
|
|
635
|
-
this.msgExts.simpleSuccess(this.lc.loc("Cache Ripulita"));
|
|
636
|
-
});
|
|
637
|
-
}
|
|
638
710
|
clearAll() {
|
|
639
711
|
this.cacheService.clear().subscribe();
|
|
640
712
|
this.http.resetHttpUntimedCacheStorage();
|
|
@@ -649,49 +721,17 @@ class Navbar extends ReactiveComponent {
|
|
|
649
721
|
completedJobClicked(job) {
|
|
650
722
|
this.cjrService.redirect(job);
|
|
651
723
|
}
|
|
652
|
-
|
|
653
|
-
this.
|
|
654
|
-
this.searchResult = null;
|
|
655
|
-
if (!this.globalSearchService.Enabled)
|
|
656
|
-
return;
|
|
657
|
-
this.globalSearchService.search(this.searchTerm).subscribe(t => {
|
|
658
|
-
this.searchingTerm = false;
|
|
659
|
-
this.searchResult = t;
|
|
660
|
-
this.searchResult.results.forEach(t => {
|
|
661
|
-
t.est_cols = t.columns.map(c => {
|
|
662
|
-
let colLink = this.globalSearchService.generateColumnLink(c);
|
|
663
|
-
return new EsTableColumnsDefinition(c.description, c.id, colLink === null || colLink === void 0 ? void 0 : colLink.routePath, colLink === null || colLink === void 0 ? void 0 : colLink.routeProperties);
|
|
664
|
-
});
|
|
665
|
-
});
|
|
666
|
-
});
|
|
667
|
-
}
|
|
668
|
-
searchModelChanged() {
|
|
669
|
-
if (!this.searchingTerm)
|
|
670
|
-
this.closeSearch();
|
|
671
|
-
}
|
|
672
|
-
closeSearch() {
|
|
673
|
-
this.searchingTerm = false;
|
|
674
|
-
this.searchResult = null;
|
|
675
|
-
}
|
|
676
|
-
FilterSearchResults(item = null) {
|
|
677
|
-
this.SelectedResult = null;
|
|
678
|
-
this.ShowSingleTable = true;
|
|
679
|
-
requestAnimationFrame(() => {
|
|
680
|
-
var _a, _b;
|
|
681
|
-
if (item)
|
|
682
|
-
this.SelectedResult = (_b = (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.results) === null || _b === void 0 ? void 0 : _b.find(f => f.description == item.description);
|
|
683
|
-
else
|
|
684
|
-
this.ShowSingleTable = false;
|
|
685
|
-
});
|
|
724
|
+
onShowModules() {
|
|
725
|
+
this.showModules = !this.showModules;
|
|
686
726
|
}
|
|
687
727
|
}
|
|
688
|
-
Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
689
|
-
Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Navbar, isStandalone: true, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <!-- Logo -->\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" class=\"d-md-block d-none\" style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" class=\"d-md-none\" style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\" style=\"display: flex;\">\r\n <!-- Collapse men\u00F9 a sinistra -->\r\n <li style=\"display: flex;\">\r\n <a (click)=\"toggleMenu()\" style=\"color: white; font-size: 20px; align-self: center;\" class=\"fa fa-navicon\"></a>\r\n </li>\r\n\r\n <!-- Search -->\r\n <li style=\"display: flex;\">\r\n <form class=\"app-search\" style=\"align-self: center;\" role=\"search\" (ngSubmit)=\"searchRequest()\">\r\n <input type=\"text\" placeholder=\"Search...\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchModelChanged()\" [ngModelOptions]=\"{standalone : true}\" class=\"form-control\" autocomplete=\"off\">\r\n <a><i class=\"ion-ios-search-strong\"></i></a>\r\n <button hidden></button>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav\" style=\"margin-left: auto; padding-top: 5px; padding-right: 10px;\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" style=\"display: flex;\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer\" style=\"color: white; font-size: 20px; align-self: center;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" style=\"display: flex;\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th dropdown-toggle app-pointer\" style=\"color: white !important; font-size: 20px; align-self: center;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\"><jace-modules-board [Modules]=\"Modules\"></jace-modules-board></div>\r\n </ul>\r\n </div>\r\n\r\n <!-- Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta... -->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n\r\n <!--Dropdown User Menu-->\r\n <div class=\"user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:45px; padding-right: 10px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <ng-container *ngTemplateOutlet=\"userIcon;\"></ng-container>\r\n </div>\r\n <div class=\"app-white-text pull-right d-none d-sm-block\">\r\n <ng-container *ngTemplateOutlet=\"debugInfos\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <ng-container *ngTemplateOutlet=\"userIcon; context: { $implicit: {right: 62} }\"></ng-container>\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <ng-container *ngTemplateOutlet=\"debugInfos\"></ng-container>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"lc.Locale == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\"> </i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"lc.Locale == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\"> </i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\"> </i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\"> </i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\"> </i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \"> </i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\"> </i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context.right || undefined\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"applicationEnvironment == 2\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 5\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 6\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 1\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Overlay per la ricerca globale -->\r\n<ng-container *ngIf=\"searchingTerm || searchResult\">\r\n <div class=\"app-absolute app-search-background\">\r\n <div class=\"app-search-result-box\">\r\n <ng-container *ngIf=\"searchingTerm\">\r\n <div class=\"app-search-card\"><i class=\"fa fa-spinner fa-spin\"></i>Sto effettuando la ricerca...</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"searchResult && !searchingTerm\">\r\n <div class=\"row\" style=\"height: 100%;\">\r\n <!-- Spazio a sinistra -->\r\n <div class=\"col-md-1\"></div>\r\n <!-- Blocco con le categorie dei risultati -->\r\n <div class=\"col-md-3\">\r\n <div class=\"app-search-card\">\r\n <div class=\"app-relative\"><a class=\"fa fa-times text-danger app-absolute app-right-0 app-fs-20 app-pointer\" (click)=\"closeSearch();\"></a></div>\r\n <h4>Categorie di Ricerca</h4>\r\n <div class=\"app-pointer app-link\" [class.app-bold]=\"!SelectedResult && !ShowSingleTable\">\r\n <span (click)=\"FilterSearchResults()\">{{SelectedResult ? '-' : '>'}} Mostra Tutto</span>\r\n </div>\r\n <div *ngFor=\"let item of searchResult.results\" class=\"app-pointer app-link\" [class.app-bold]=\"SelectedResult?.description == item.description\">\r\n <span (click)=\"FilterSearchResults(item)\">{{SelectedResult?.description == item.description ? '>' : '-'}} Mostra {{item.description}} ({{item.items?.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Dettaglio risultati -->\r\n <div class=\"col-md-7\" style=\"overflow: auto; height: 100%;\">\r\n <ng-container *ngIf=\"!SelectedResult && !ShowSingleTable\">\r\n <div *ngFor=\"let res of searchResult.results; let i = index;\" class=\"app-search-card\" [style.margin-bottom.px]=\"i == (searchResult.results?.length - 1) ? 2 : 10\">\r\n <h4>{{res.description}}</h4>\r\n <es-table [(ngModel)]=\"res.items\" [DynamicRowColumnsDefinition]=\"res.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"SelectedResult && ShowSingleTable\">\r\n <div class=\"app-search-card\">\r\n <h4>{{SelectedResult.description}}</h4>\r\n <es-table [(ngModel)]=\"SelectedResult.items\" [DynamicRowColumnsDefinition]=\"SelectedResult.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- Spazio a destra -->\r\n <div class=\"col-md-1\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i9.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i9.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i9.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ProgressbarModule }, { kind: "component", type: i11.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "component", type: JaceModulesBoardComponent, selector: "jace-modules-board", inputs: ["Modules"] }, { kind: "directive", type: ComponentHostDirective, selector: "[componentHost]", inputs: ["componentHost", "Inputs"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: EsTableModule }, { kind: "component", type: i12.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
690
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
728
|
+
Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Navbar, deps: [{ token: i1$2.PreferencesService }, { token: i1$2.CacheService }, { token: i2$2.BaseMessageService }, { token: i2$2.NotificationsService }, { token: i4.MessageService }, { token: i1$1.LocalizationService }, { token: i2$1.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i3.AppState }, { token: i3.TokenService }, { token: i1.Router }, { token: i3.CompletedJobRedirectionService }, { token: NAVBAR_EXTENSIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
729
|
+
Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Navbar, isStandalone: true, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nav #navbar class=\"nav enuma-navbar\" [style.width]=\"isMenuCollapsed ? 'calc(100vw - 42px)' : 'calc(100vw - 230px)'\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-top-5 app-padding-left-15\"></a></div>\r\n <div class=\"app-padding-top-5 app-padding-left-15\"><ng-content></ng-content></div>\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <!--TODO: Spostare in modulo a parte _state.jobsInProgress, _state.jobsInProgress, ecc...-->\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\"\r\n class=\"app-link app-no-selection app-inline app-pointer\"\r\n (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{'Completed' | localize : lc}}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\"\r\n [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\"\r\n [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a (click)=\"onShowModules()\" class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\"></a>\r\n <jace-modules-board *ngIf=\"showModules\" [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n \r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <!-- <li class=\"dropdown-divider\"></li> -->\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"applicationEnvironment == 1\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 2\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 5\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 6\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#01c38d!important;font-size:20px}.nav-jobs-icon-notification{top:7px;left:-7px;position:absolute;background-color:#07adec;border-radius:50%;height:8px;width:8px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #183a5a}.nav-jobs-menu-header{background-color:#132d46;padding:8px;font-size:14px;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#01c38d}.user-menu .dropdown-menu a:hover{color:#01aa7b;background-color:red}.user-menu .dropdown-menu a i{margin-right:8px}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 11px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.module-nav-menu-link{color:#01c38d!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.dropdown-title-bg{background-color:#132d46;border:1px solid #183a5a;border-bottom:0px}.dropdown-title{color:#fff;margin:auto;padding:8px 0;font-size:18px}.dropdown-menu{background-color:#fff;border:none}.dropdown-divider{border-top:1px solid #eeeeee}.dropdown-item{background-color:#fff;color:#07adec}.dropdown-item:hover{color:#069bd3!important;background-color:#eee}.dropdown-top{background-color:#fff;height:0;margin-bottom:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.dropdown-bot{background-color:#fff;height:0;margin-top:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.enuma-navbar{height:60px;align-items:center;background-color:#132d46;box-shadow:0 8px 6px -6px #1313130a,0 12px 16px -16px #1313130d;margin-bottom:-1px;border-bottom:1px solid #191E29}.nav-environment{color:#fff;background-color:#183a5a;text-align:center;padding:5px 10px;margin:5px 10px 0 0}.nav-icon{color:#01c38d!important;font-size:20px;cursor:pointer}.nav-right-section{position:absolute;right:10px;top:10px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i9.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i9.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i9.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ProgressbarModule }, { kind: "component", type: i11.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "component", type: JaceModulesBoardComponent, selector: "jace-modules-board", inputs: ["Modules"] }, { kind: "directive", type: ComponentHostDirective, selector: "[componentHost]", inputs: ["componentHost", "Inputs"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
730
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Navbar, decorators: [{
|
|
691
731
|
type: Component,
|
|
692
|
-
args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLink, FormsModule, BsDropdownModule, MatSlideToggleModule, NgIf, NgFor, ProgressbarModule, JaceModulesBoardComponent, ComponentHostDirective, NgTemplateOutlet, EsTableModule, LocalizationModule], template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <!-- Logo -->\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" class=\"d-md-block d-none\" style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" class=\"d-md-none\" style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\" style=\"display: flex;\">\r\n <!-- Collapse men\u00F9 a sinistra -->\r\n <li style=\"display: flex;\">\r\n <a (click)=\"toggleMenu()\" style=\"color: white; font-size: 20px; align-self: center;\" class=\"fa fa-navicon\"></a>\r\n </li>\r\n\r\n <!-- Search -->\r\n <li style=\"display: flex;\">\r\n <form class=\"app-search\" style=\"align-self: center;\" role=\"search\" (ngSubmit)=\"searchRequest()\">\r\n <input type=\"text\" placeholder=\"Search...\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchModelChanged()\" [ngModelOptions]=\"{standalone : true}\" class=\"form-control\" autocomplete=\"off\">\r\n <a><i class=\"ion-ios-search-strong\"></i></a>\r\n <button hidden></button>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav\" style=\"margin-left: auto; padding-top: 5px; padding-right: 10px;\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" style=\"display: flex;\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer\" style=\"color: white; font-size: 20px; align-self: center;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" style=\"display: flex;\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th dropdown-toggle app-pointer\" style=\"color: white !important; font-size: 20px; align-self: center;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\"><jace-modules-board [Modules]=\"Modules\"></jace-modules-board></div>\r\n </ul>\r\n </div>\r\n\r\n <!-- Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta... -->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n\r\n <!--Dropdown User Menu-->\r\n <div class=\"user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:45px; padding-right: 10px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <ng-container *ngTemplateOutlet=\"userIcon;\"></ng-container>\r\n </div>\r\n <div class=\"app-white-text pull-right d-none d-sm-block\">\r\n <ng-container *ngTemplateOutlet=\"debugInfos\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <ng-container *ngTemplateOutlet=\"userIcon; context: { $implicit: {right: 62} }\"></ng-container>\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <ng-container *ngTemplateOutlet=\"debugInfos\"></ng-container>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"lc.Locale == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\"> </i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"lc.Locale == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\"> </i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\"> </i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\"> </i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\"> </i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \"> </i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\"> </i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context.right || undefined\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"applicationEnvironment == 2\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 5\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 6\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 1\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Overlay per la ricerca globale -->\r\n<ng-container *ngIf=\"searchingTerm || searchResult\">\r\n <div class=\"app-absolute app-search-background\">\r\n <div class=\"app-search-result-box\">\r\n <ng-container *ngIf=\"searchingTerm\">\r\n <div class=\"app-search-card\"><i class=\"fa fa-spinner fa-spin\"></i>Sto effettuando la ricerca...</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"searchResult && !searchingTerm\">\r\n <div class=\"row\" style=\"height: 100%;\">\r\n <!-- Spazio a sinistra -->\r\n <div class=\"col-md-1\"></div>\r\n <!-- Blocco con le categorie dei risultati -->\r\n <div class=\"col-md-3\">\r\n <div class=\"app-search-card\">\r\n <div class=\"app-relative\"><a class=\"fa fa-times text-danger app-absolute app-right-0 app-fs-20 app-pointer\" (click)=\"closeSearch();\"></a></div>\r\n <h4>Categorie di Ricerca</h4>\r\n <div class=\"app-pointer app-link\" [class.app-bold]=\"!SelectedResult && !ShowSingleTable\">\r\n <span (click)=\"FilterSearchResults()\">{{SelectedResult ? '-' : '>'}} Mostra Tutto</span>\r\n </div>\r\n <div *ngFor=\"let item of searchResult.results\" class=\"app-pointer app-link\" [class.app-bold]=\"SelectedResult?.description == item.description\">\r\n <span (click)=\"FilterSearchResults(item)\">{{SelectedResult?.description == item.description ? '>' : '-'}} Mostra {{item.description}} ({{item.items?.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Dettaglio risultati -->\r\n <div class=\"col-md-7\" style=\"overflow: auto; height: 100%;\">\r\n <ng-container *ngIf=\"!SelectedResult && !ShowSingleTable\">\r\n <div *ngFor=\"let res of searchResult.results; let i = index;\" class=\"app-search-card\" [style.margin-bottom.px]=\"i == (searchResult.results?.length - 1) ? 2 : 10\">\r\n <h4>{{res.description}}</h4>\r\n <es-table [(ngModel)]=\"res.items\" [DynamicRowColumnsDefinition]=\"res.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"SelectedResult && ShowSingleTable\">\r\n <div class=\"app-search-card\">\r\n <h4>{{SelectedResult.description}}</h4>\r\n <es-table [(ngModel)]=\"SelectedResult.items\" [DynamicRowColumnsDefinition]=\"SelectedResult.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- Spazio a destra -->\r\n <div class=\"col-md-1\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"] }]
|
|
732
|
+
args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLink, FormsModule, BsDropdownModule, MatSlideToggleModule, NgIf, NgFor, ProgressbarModule, JaceModulesBoardComponent, ComponentHostDirective, NgTemplateOutlet, LocalizationModule], template: "<nav #navbar class=\"nav enuma-navbar\" [style.width]=\"isMenuCollapsed ? 'calc(100vw - 42px)' : 'calc(100vw - 230px)'\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-top-5 app-padding-left-15\"></a></div>\r\n <div class=\"app-padding-top-5 app-padding-left-15\"><ng-content></ng-content></div>\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <!--TODO: Spostare in modulo a parte _state.jobsInProgress, _state.jobsInProgress, ecc...-->\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\"\r\n class=\"app-link app-no-selection app-inline app-pointer\"\r\n (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{'Completed' | localize : lc}}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\"\r\n [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\"\r\n [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a (click)=\"onShowModules()\" class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\"></a>\r\n <jace-modules-board *ngIf=\"showModules\" [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n \r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <!-- <li class=\"dropdown-divider\"></li> -->\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"applicationEnvironment == 1\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 2\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 5\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 6\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#01c38d!important;font-size:20px}.nav-jobs-icon-notification{top:7px;left:-7px;position:absolute;background-color:#07adec;border-radius:50%;height:8px;width:8px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #183a5a}.nav-jobs-menu-header{background-color:#132d46;padding:8px;font-size:14px;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#01c38d}.user-menu .dropdown-menu a:hover{color:#01aa7b;background-color:red}.user-menu .dropdown-menu a i{margin-right:8px}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 11px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.module-nav-menu-link{color:#01c38d!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.dropdown-title-bg{background-color:#132d46;border:1px solid #183a5a;border-bottom:0px}.dropdown-title{color:#fff;margin:auto;padding:8px 0;font-size:18px}.dropdown-menu{background-color:#fff;border:none}.dropdown-divider{border-top:1px solid #eeeeee}.dropdown-item{background-color:#fff;color:#07adec}.dropdown-item:hover{color:#069bd3!important;background-color:#eee}.dropdown-top{background-color:#fff;height:0;margin-bottom:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.dropdown-bot{background-color:#fff;height:0;margin-top:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.enuma-navbar{height:60px;align-items:center;background-color:#132d46;box-shadow:0 8px 6px -6px #1313130a,0 12px 16px -16px #1313130d;margin-bottom:-1px;border-bottom:1px solid #191E29}.nav-environment{color:#fff;background-color:#183a5a;text-align:center;padding:5px 10px;margin:5px 10px 0 0}.nav-icon{color:#01c38d!important;font-size:20px;cursor:pointer}.nav-right-section{position:absolute;right:10px;top:10px}\n"] }]
|
|
693
733
|
}], ctorParameters: function () {
|
|
694
|
-
return [{ type: i1$2.PreferencesService }, { type: i1$2.CacheService }, { type: i2
|
|
734
|
+
return [{ type: i1$2.PreferencesService }, { type: i1$2.CacheService }, { type: i2$2.BaseMessageService }, { type: i2$2.NotificationsService }, { type: i4.MessageService }, { type: i1$1.LocalizationService }, { type: i2$1.HTTPService }, { type: i0.ChangeDetectorRef }, { type: i3.AppState }, { type: i3.TokenService }, { type: i1.Router }, { type: i3.CompletedJobRedirectionService }, { type: undefined, decorators: [{
|
|
695
735
|
type: Inject,
|
|
696
736
|
args: [NAVBAR_EXTENSIONS]
|
|
697
737
|
}] }];
|
|
@@ -737,12 +777,12 @@ class PagesComponent {
|
|
|
737
777
|
this.getHeight();
|
|
738
778
|
}
|
|
739
779
|
}
|
|
740
|
-
PagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
741
|
-
PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
780
|
+
PagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagesComponent, deps: [{ token: i3$1.DomSanitizer }, { token: i3.AppState }, { token: i2.Location }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
781
|
+
PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagesComponent, isStandalone: true, selector: "pages", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div>\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.main-wrapper{padding:20px 40px;position:relative;width:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(7,173,236,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"], dependencies: [{ kind: "component", type: Navbar, selector: "navbar" }, { kind: "component", type: Sidebar, selector: "sidebar" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: Breadcrumb, selector: "breadcrumb" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: BackTop, selector: "back-top", inputs: ["position", "showSpeed", "moveSpeed"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagesComponent, decorators: [{
|
|
743
783
|
type: Component,
|
|
744
|
-
args: [{ selector: "pages", encapsulation: ViewEncapsulation.None, standalone: true, imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop], template: "<
|
|
745
|
-
}], ctorParameters: function () { return [{ type: i3.DomSanitizer }, { type:
|
|
784
|
+
args: [{ selector: "pages", encapsulation: ViewEncapsulation.None, standalone: true, imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop], template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div>\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.main-wrapper{padding:20px 40px;position:relative;width:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(7,173,236,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"] }]
|
|
785
|
+
}], ctorParameters: function () { return [{ type: i3$1.DomSanitizer }, { type: i3.AppState }, { type: i2.Location }, { type: i1.Router }]; }, propDecorators: { onResize: [{
|
|
746
786
|
type: HostListener,
|
|
747
787
|
args: ['window:resize', ['$event']]
|
|
748
788
|
}] } });
|
|
@@ -779,12 +819,12 @@ class ExternalPagesComponent {
|
|
|
779
819
|
});
|
|
780
820
|
}
|
|
781
821
|
}
|
|
782
|
-
ExternalPagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
783
|
-
ExternalPagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
784
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
822
|
+
ExternalPagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExternalPagesComponent, deps: [{ token: i5.AccessControlService }, { token: i1$1.LocalizationService }, { token: i2$1.HTTPService }, { token: i3.AppState }, { token: i1.ActivatedRoute }, { token: i3.TokenService }], target: i0.ɵɵFactoryTarget.Component });
|
|
823
|
+
ExternalPagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ExternalPagesComponent, isStandalone: true, selector: "external-pages", ngImport: i0, template: "<router-outlet></router-outlet>", dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
824
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExternalPagesComponent, decorators: [{
|
|
785
825
|
type: Component,
|
|
786
826
|
args: [{ selector: "external-pages", standalone: true, imports: [RouterOutlet], template: "<router-outlet></router-outlet>" }]
|
|
787
|
-
}], ctorParameters: function () { return [{ type: i5.AccessControlService }, { type: i1$1.LocalizationService }, { type: i2$
|
|
827
|
+
}], ctorParameters: function () { return [{ type: i5.AccessControlService }, { type: i1$1.LocalizationService }, { type: i2$1.HTTPService }, { type: i3.AppState }, { type: i1.ActivatedRoute }, { type: i3.TokenService }]; } });
|
|
788
828
|
|
|
789
829
|
// Angular
|
|
790
830
|
class JaceLoginComponent {
|
|
@@ -795,9 +835,9 @@ class JaceLoginComponent {
|
|
|
795
835
|
console.error("myconfig.AuthUrl is not provided");
|
|
796
836
|
}
|
|
797
837
|
}
|
|
798
|
-
JaceLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
799
|
-
JaceLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
800
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
838
|
+
JaceLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
839
|
+
JaceLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: JaceLoginComponent, isStandalone: true, selector: "login", ngImport: i0, template: "<div class=\"login-container\">\r\n <div class=\"redirecting-div\">\r\n <div class=\"redirecting-message\"><h1>Redirecting to login...</h1></div>\r\n <div class=\"signal\"></div>\r\n </div>\r\n</div>\r\n", styles: [".redirecting-div{background:#3d3d3d!important;display:flex;align-items:center;justify-content:center;min-height:100vh}.redirecting-div h1{color:#fbc925;font-family:Passion One}.redirecting-message{align-self:center}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceLoginComponent, decorators: [{
|
|
801
841
|
type: Component,
|
|
802
842
|
args: [{ selector: "login", encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"login-container\">\r\n <div class=\"redirecting-div\">\r\n <div class=\"redirecting-message\"><h1>Redirecting to login...</h1></div>\r\n <div class=\"signal\"></div>\r\n </div>\r\n</div>\r\n", styles: [".redirecting-div{background:#3d3d3d!important;display:flex;align-items:center;justify-content:center;min-height:100vh}.redirecting-div h1{color:#fbc925;font-family:Passion One}.redirecting-message{align-self:center}\n"] }]
|
|
803
843
|
}] });
|
|
@@ -836,13 +876,13 @@ class RedirecterComponent {
|
|
|
836
876
|
}
|
|
837
877
|
}
|
|
838
878
|
}
|
|
839
|
-
RedirecterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
840
|
-
RedirecterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
841
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
879
|
+
RedirecterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirecterComponent, deps: [{ token: i3.AppState }, { token: i1.ActivatedRoute }, { token: i1.Router }, { token: REDIRECT_MAP, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
880
|
+
RedirecterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedirecterComponent, isStandalone: true, selector: "redirecter", ngImport: i0, template: "<div *ngIf=\"Error\">{{Error}}</div>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
881
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedirecterComponent, decorators: [{
|
|
842
882
|
type: Component,
|
|
843
883
|
args: [{ selector: "redirecter", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<div *ngIf=\"Error\">{{Error}}</div>" }]
|
|
844
884
|
}], ctorParameters: function () {
|
|
845
|
-
return [{ type:
|
|
885
|
+
return [{ type: i3.AppState }, { type: i1.ActivatedRoute }, { type: i1.Router }, { type: undefined, decorators: [{
|
|
846
886
|
type: Optional
|
|
847
887
|
}, {
|
|
848
888
|
type: Inject,
|
|
@@ -889,9 +929,9 @@ class BaseComponent extends ReactiveComponent {
|
|
|
889
929
|
this._router.navigate(command, extras);
|
|
890
930
|
}
|
|
891
931
|
}
|
|
892
|
-
BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
893
|
-
BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
894
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
932
|
+
BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
933
|
+
BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BaseComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
934
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseComponent, decorators: [{
|
|
895
935
|
type: Component,
|
|
896
936
|
args: [{ template: '' }]
|
|
897
937
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
@@ -942,12 +982,12 @@ class JaceResourceComponent {
|
|
|
942
982
|
this.sanitizedSourceResource = this.sanitizer.bypassSecurityTrustResourceUrl(finalUrl);
|
|
943
983
|
}
|
|
944
984
|
}
|
|
945
|
-
JaceResourceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
946
|
-
JaceResourceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
947
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
985
|
+
JaceResourceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceResourceComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i3.AppState }, { token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
986
|
+
JaceResourceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: JaceResourceComponent, isStandalone: true, selector: "jace-resource", inputs: { Module: "Module", ModuleKeyType: "ModuleKeyType", Page: "Page", Localhost: "Localhost" }, ngImport: i0, template: "<iframe *ngIf=\"!!sanitizedSourceResource\" id=\"externalFrame\" style=\"width: 100%; border: none;\" [style.height.px]=\"Height\" \r\n [src]=\"sanitizedSourceResource\">\r\n</iframe>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceResourceComponent, decorators: [{
|
|
948
988
|
type: Component,
|
|
949
989
|
args: [{ selector: "jace-resource", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf], template: "<iframe *ngIf=\"!!sanitizedSourceResource\" id=\"externalFrame\" style=\"width: 100%; border: none;\" [style.height.px]=\"Height\" \r\n [src]=\"sanitizedSourceResource\">\r\n</iframe>" }]
|
|
950
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type:
|
|
990
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i3.AppState }, { type: i3$1.DomSanitizer }]; }, propDecorators: { Module: [{
|
|
951
991
|
type: Input
|
|
952
992
|
}], ModuleKeyType: [{
|
|
953
993
|
type: Input
|
|
@@ -970,12 +1010,12 @@ class EsModalComponent {
|
|
|
970
1010
|
show() { this.Modal.show(); }
|
|
971
1011
|
hide() { this.Modal.hide(); }
|
|
972
1012
|
}
|
|
973
|
-
EsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
974
|
-
EsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
975
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1013
|
+
EsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EsModalComponent, deps: [{ token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
|
|
1014
|
+
EsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EsModalComponent, isStandalone: true, selector: "es-modal", inputs: { Size: "Size", IgnoreBackdrop: "IgnoreBackdrop", HasOverlap: "HasOverlap" }, outputs: { onShow: "onShow", onHide: "onHide" }, viewQueries: [{ propertyName: "Modal", first: true, predicate: ["modalRef"], descendants: true }], ngImport: i0, template: "<div esModal #modalRef=\"es-modal\"\r\n class=\"modal fade\"\r\n role=\"dialog\"\r\n aria-hidden=\"true\"\r\n (onShow)=\"onShow.emit()\"\r\n (onHide)=\"onHide.emit()\"\r\n [config]=\"{backdrop: true, ignoreBackdropClick: IgnoreBackdrop}\">\r\n <div class=\"modal-dialog\"\r\n [class.modal-sm]=\"Size == 'S'\"\r\n [class.modal-md]=\"Size == 'M'\"\r\n [class.modal-lg]=\"Size == 'L'\"\r\n [class.modal-xl]=\"Size == 'XL'\"\r\n [class.modal-xxl]=\"Size == 'XXL'\"\r\n [class.modal-feminist]=\"Size == 'HOLYSHIT'\"\r\n emaDraggable>\r\n <div class=\"modal-content\" [class.app-bg-lightgrey]=\"HasOverlap\"\r\n style=\"cursor: default;\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: EsModalDirective, selector: "[esModal]", exportAs: ["es-modal"] }, { kind: "directive", type: Draggable, selector: "[emaDraggable]", inputs: ["emaDraggable"] }] });
|
|
1015
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EsModalComponent, decorators: [{
|
|
976
1016
|
type: Component,
|
|
977
1017
|
args: [{ selector: "es-modal", standalone: true, imports: [EsModalDirective, Draggable], template: "<div esModal #modalRef=\"es-modal\"\r\n class=\"modal fade\"\r\n role=\"dialog\"\r\n aria-hidden=\"true\"\r\n (onShow)=\"onShow.emit()\"\r\n (onHide)=\"onHide.emit()\"\r\n [config]=\"{backdrop: true, ignoreBackdropClick: IgnoreBackdrop}\">\r\n <div class=\"modal-dialog\"\r\n [class.modal-sm]=\"Size == 'S'\"\r\n [class.modal-md]=\"Size == 'M'\"\r\n [class.modal-lg]=\"Size == 'L'\"\r\n [class.modal-xl]=\"Size == 'XL'\"\r\n [class.modal-xxl]=\"Size == 'XXL'\"\r\n [class.modal-feminist]=\"Size == 'HOLYSHIT'\"\r\n emaDraggable>\r\n <div class=\"modal-content\" [class.app-bg-lightgrey]=\"HasOverlap\"\r\n style=\"cursor: default;\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
978
|
-
}], ctorParameters: function () { return [{ type:
|
|
1018
|
+
}], ctorParameters: function () { return [{ type: i3.AppState }]; }, propDecorators: { Size: [{
|
|
979
1019
|
type: Input
|
|
980
1020
|
}], IgnoreBackdrop: [{
|
|
981
1021
|
type: Input
|
|
@@ -1000,12 +1040,12 @@ class EsModalHeadComponent {
|
|
|
1000
1040
|
this.Close.emit();
|
|
1001
1041
|
}
|
|
1002
1042
|
}
|
|
1003
|
-
EsModalHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1004
|
-
EsModalHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
1005
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1043
|
+
EsModalHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EsModalHeadComponent, deps: [{ token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
|
|
1044
|
+
EsModalHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EsModalHeadComponent, isStandalone: true, selector: "es-modal-head", outputs: { Close: "Close" }, ngImport: i0, template: "<div class=\"modal-header\">\r\n <div class=\"modal-title modal-head pull-left\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"close modal-close-button\"\r\n (click)=\"CloseFunction();\" \r\n aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </div>\r\n</div>", styles: [".modal-head{font-size:1.25rem}.modal-close-button{margin:auto;padding:0 10px}\n"] });
|
|
1045
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EsModalHeadComponent, decorators: [{
|
|
1006
1046
|
type: Component,
|
|
1007
1047
|
args: [{ selector: "es-modal-head", standalone: true, template: "<div class=\"modal-header\">\r\n <div class=\"modal-title modal-head pull-left\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"close modal-close-button\"\r\n (click)=\"CloseFunction();\" \r\n aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </div>\r\n</div>", styles: [".modal-head{font-size:1.25rem}.modal-close-button{margin:auto;padding:0 10px}\n"] }]
|
|
1008
|
-
}], ctorParameters: function () { return [{ type:
|
|
1048
|
+
}], ctorParameters: function () { return [{ type: i3.AppState }]; }, propDecorators: { Close: [{
|
|
1009
1049
|
type: Output
|
|
1010
1050
|
}] } });
|
|
1011
1051
|
|
|
@@ -1029,8 +1069,8 @@ const COMPONENTS = [
|
|
|
1029
1069
|
];
|
|
1030
1070
|
class ComponentsModule {
|
|
1031
1071
|
}
|
|
1032
|
-
ComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1033
|
-
ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
1072
|
+
ComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1073
|
+
ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, BackTop,
|
|
1034
1074
|
Breadcrumb,
|
|
1035
1075
|
PageNotFoundComponent,
|
|
1036
1076
|
ServerErrorComponent,
|
|
@@ -1059,8 +1099,8 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
|
1059
1099
|
JaceResourceComponent,
|
|
1060
1100
|
EsModalComponent,
|
|
1061
1101
|
EsModalHeadComponent] });
|
|
1062
|
-
ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
1063
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1102
|
+
ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, COMPONENTS] });
|
|
1103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ComponentsModule, decorators: [{
|
|
1064
1104
|
type: NgModule,
|
|
1065
1105
|
args: [{
|
|
1066
1106
|
imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, ...COMPONENTS],
|
|
@@ -1072,5 +1112,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1072
1112
|
* Generated bundle index. Do not edit.
|
|
1073
1113
|
*/
|
|
1074
1114
|
|
|
1075
|
-
export { AngularErrorComponent, BackTop, BaseComponent, Breadcrumb, ComponentsModule, EsModalComponent, EsModalHeadComponent, ExternalPagesComponent, JaceLoginComponent, JaceModulesBoardComponent, JaceResourceComponent, Navbar, PageNotFoundComponent, PagesComponent, ReactiveComponent, RedirecterComponent, ServerErrorComponent, Sidebar };
|
|
1115
|
+
export { AngularErrorComponent, BackTop, BaseComponent, Breadcrumb, BreadcrumbItem, ComponentsModule, EsModalComponent, EsModalHeadComponent, ExternalPagesComponent, JaceLoginComponent, JaceModulesBoardComponent, JaceResourceComponent, Navbar, PageNotFoundComponent, PagesComponent, ProfilePicture, ReactiveComponent, RedirecterComponent, ServerErrorComponent, Sidebar };
|
|
1076
1116
|
//# sourceMappingURL=esfaenza-core-components.mjs.map
|