@esfaenza/core 15.2.41 → 15.2.42-beta2
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/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/components.module.d.ts +22 -16
- package/components/page-structure/breadcrumb/breadcrumb.component.d.ts +23 -0
- package/components/{navbar → page-structure/navbar}/navbar.component.d.ts +6 -16
- package/components/{sidebar → page-structure/sidebar}/sidebar.component.d.ts +32 -5
- package/components/public-api.d.ts +20 -15
- package/components/search/es-filters/es-filters.component.d.ts +27 -0
- package/components/search/es-filters/es-filters.service.d.ts +6 -0
- package/components/search/filters-sidebar/filters-sidebar.component.d.ts +20 -0
- package/components/search/filters-sidebar-item/filters-sidebar-item.component.d.ts +16 -0
- package/components/search/filters-sidebar-section/filters-sidebar-section.component.d.ts +9 -0
- package/components/search/filters-topbar/filters-topbar.component.d.ts +38 -0
- package/domain/models/decorators/decorators.d.ts +1 -0
- package/domain/models/jace/ActiveModuleView.d.ts +8 -8
- package/domain/models/user/ChangePasswordDto.d.ts +9 -0
- package/domain/models/user/ChangeProfilePictureDto.d.ts +4 -0
- package/domain/models/user/UpdateAccountRecoverySettingsDto.d.ts +6 -0
- package/domain/public-api.d.ts +4 -0
- package/esm2020/components/components.module.mjs +74 -20
- package/esm2020/components/page-structure/back-top/back-top.component.mjs +43 -0
- package/esm2020/components/page-structure/base/base.component.mjs +55 -0
- package/esm2020/components/page-structure/base/reactive.component.mjs +26 -0
- package/esm2020/components/page-structure/breadcrumb/breadcrumb.component.mjs +70 -0
- package/esm2020/components/page-structure/error/404/pagenotfound.component.mjs +30 -0
- package/esm2020/components/page-structure/error/500/servererror.component.mjs +39 -0
- package/esm2020/components/page-structure/error/Angular/angularerror.component.mjs +55 -0
- package/esm2020/components/page-structure/external-page/external_pages.component.mjs +47 -0
- package/esm2020/components/{jace-login → page-structure/jace-login}/jace-login.component.mjs +1 -1
- package/esm2020/components/page-structure/jace-resource/jace-resource.component.mjs +65 -0
- package/esm2020/components/page-structure/navbar/modules-board/jace-modules-board.component.mjs +40 -0
- package/esm2020/components/page-structure/navbar/navbar.component.loc.mjs +36 -0
- package/esm2020/components/page-structure/navbar/navbar.component.mjs +161 -0
- package/esm2020/components/page-structure/page/pages.component.mjs +60 -0
- package/esm2020/components/page-structure/redirecter/redirecter.component.mjs +53 -0
- package/esm2020/components/page-structure/sidebar/sidebar.component.mjs +302 -0
- package/esm2020/components/public-api.mjs +21 -16
- package/esm2020/components/search/es-filters/es-filters.component.mjs +56 -0
- package/esm2020/components/search/es-filters/es-filters.service.mjs +19 -0
- package/esm2020/components/search/filters-sidebar/filters-sidebar.component.mjs +65 -0
- package/esm2020/components/search/filters-sidebar-item/filters-sidebar-item.component.mjs +39 -0
- package/esm2020/components/search/filters-sidebar-section/filters-sidebar-section.component.mjs +22 -0
- package/esm2020/components/search/filters-topbar/filters-topbar.component.mjs +94 -0
- package/esm2020/domain/models/decorators/decorators.mjs +6 -0
- package/esm2020/domain/models/jace/ActiveModuleView.mjs +1 -1
- package/esm2020/domain/models/user/ChangePasswordDto.mjs +11 -0
- package/esm2020/domain/models/user/ChangeProfilePictureDto.mjs +6 -0
- package/esm2020/domain/models/user/UpdateAccountRecoverySettingsDto.mjs +8 -0
- package/esm2020/domain/public-api.mjs +5 -1
- package/esm2020/lib/app.component.mjs +3 -3
- package/esm2020/lib/core.module.mjs +1 -1
- package/esm2020/services/classes/preferences/user/app.userpreferences.base.mjs +76 -0
- package/esm2020/services/public-api.mjs +2 -1
- package/fesm2015/esfaenza-core-components.mjs +532 -161
- package/fesm2015/esfaenza-core-components.mjs.map +1 -1
- package/fesm2015/esfaenza-core-domain.mjs +32 -1
- package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2015/esfaenza-core-services.mjs +85 -5
- package/fesm2015/esfaenza-core-services.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +2 -2
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-components.mjs +527 -160
- package/fesm2020/esfaenza-core-components.mjs.map +1 -1
- package/fesm2020/esfaenza-core-domain.mjs +32 -1
- package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2020/esfaenza-core-services.mjs +72 -5
- package/fesm2020/esfaenza-core-services.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +2 -2
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/lib/core.module.d.ts +2 -1
- package/package.json +2 -2
- package/services/classes/preferences/user/app.userpreferences.base.d.ts +23 -0
- package/services/public-api.d.ts +1 -0
- 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 +66 -0
- package/theme/styles/_variables.scss +14 -42
- package/theme/styles/skins/enuma.scss +60 -0
- package/theme/styles/skins/etnograph.scss +52 -0
- package/theme/styles/skins/jace.scss +63 -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/components/breadcrumb/breadcrumb.component.d.ts +0 -19
- package/esm2020/components/back-top/back-top.component.mjs +0 -43
- package/esm2020/components/base/base.component.mjs +0 -55
- package/esm2020/components/base/reactive.component.mjs +0 -26
- package/esm2020/components/breadcrumb/breadcrumb.component.mjs +0 -60
- package/esm2020/components/error/404/pagenotfound.component.mjs +0 -30
- package/esm2020/components/error/500/servererror.component.mjs +0 -39
- package/esm2020/components/error/Angular/angularerror.component.mjs +0 -55
- package/esm2020/components/external-page/external_pages.component.mjs +0 -47
- package/esm2020/components/jace-resource/jace-resource.component.mjs +0 -65
- package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +0 -40
- package/esm2020/components/navbar/navbar.component.loc.mjs +0 -36
- package/esm2020/components/navbar/navbar.component.mjs +0 -208
- package/esm2020/components/page/pages.component.mjs +0 -60
- package/esm2020/components/redirecter/redirecter.component.mjs +0 -53
- package/esm2020/components/sidebar/sidebar.component.mjs +0 -210
- package/theme/styles/skins/_blue.scss +0 -16
- /package/components/{back-top → page-structure/back-top}/back-top.component.d.ts +0 -0
- /package/components/{base → page-structure/base}/base.component.d.ts +0 -0
- /package/components/{base → page-structure/base}/reactive.component.d.ts +0 -0
- /package/components/{error → page-structure/error}/404/pagenotfound.component.d.ts +0 -0
- /package/components/{error → page-structure/error}/500/servererror.component.d.ts +0 -0
- /package/components/{error → page-structure/error}/Angular/angularerror.component.d.ts +0 -0
- /package/components/{external-page → page-structure/external-page}/external_pages.component.d.ts +0 -0
- /package/components/{jace-login → page-structure/jace-login}/jace-login.component.d.ts +0 -0
- /package/components/{jace-resource → page-structure/jace-resource}/jace-resource.component.d.ts +0 -0
- /package/components/{navbar → page-structure/navbar}/modules-board/jace-modules-board.component.d.ts +0 -0
- /package/components/{navbar → page-structure/navbar}/navbar.component.loc.d.ts +0 -0
- /package/components/{page → page-structure/page}/pages.component.d.ts +0 -0
- /package/components/{redirecter → page-structure/redirecter}/redirecter.component.d.ts +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, HostListener, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { NgClass, NgIf } from "@angular/common";
|
|
4
|
+
import { RouterOutlet } from "@angular/router";
|
|
5
|
+
// Componenti
|
|
6
|
+
import { BackTop } from "../back-top/back-top.component";
|
|
7
|
+
import { Breadcrumb } from "../breadcrumb/breadcrumb.component";
|
|
8
|
+
import { Sidebar } from "../sidebar/sidebar.component";
|
|
9
|
+
import { Navbar } from "../navbar/navbar.component";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/platform-browser";
|
|
12
|
+
import * as i2 from "@esfaenza/core/services";
|
|
13
|
+
import * as i3 from "@angular/common";
|
|
14
|
+
import * as i4 from "@angular/router";
|
|
15
|
+
export class PagesComponent {
|
|
16
|
+
constructor(sanitizer, _state, _location, router) {
|
|
17
|
+
this.sanitizer = sanitizer;
|
|
18
|
+
this._state = _state;
|
|
19
|
+
this._location = _location;
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.isMenuCollapsed = false;
|
|
22
|
+
this.maxHeight = 0;
|
|
23
|
+
this.dynamicCSSUrl = null;
|
|
24
|
+
this.loadedModuleCss = "";
|
|
25
|
+
this._state.subscribe("menu.isCollapsed", (isCollapsed) => {
|
|
26
|
+
this.isMenuCollapsed = isCollapsed;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.getCurrentPageName();
|
|
31
|
+
this.getHeight();
|
|
32
|
+
}
|
|
33
|
+
getCurrentPageName() {
|
|
34
|
+
var url = this._location.path();
|
|
35
|
+
setTimeout(function () {
|
|
36
|
+
window.scrollTo(0, 0);
|
|
37
|
+
jQuery('a[href="#' + url + '"]').closest("li").closest("ul").closest("li").addClass("sidebar-item-expanded");
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
hideMenu() {
|
|
41
|
+
this._state.notifyDataChanged("menu.isCollapsed", true);
|
|
42
|
+
}
|
|
43
|
+
getHeight() {
|
|
44
|
+
var html = document.documentElement;
|
|
45
|
+
this.maxHeight = html.clientHeight - 60;
|
|
46
|
+
}
|
|
47
|
+
onResize(event) {
|
|
48
|
+
this.getHeight();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
PagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PagesComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.AppState }, { token: i3.Location }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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(0,86,179,.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 });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PagesComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
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(0,86,179,.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"] }]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.AppState }, { type: i3.Location }, { type: i4.Router }]; }, propDecorators: { onResize: [{
|
|
57
|
+
type: HostListener,
|
|
58
|
+
args: ['window:resize', ['$event']]
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlLXN0cnVjdHVyZS9wYWdlL3BhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvcGFnZS1zdHJ1Y3R1cmUvcGFnZS9wYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFZLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLdkQsYUFBYTtBQUNiLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBWXBELE1BQU0sT0FBTyxjQUFjO0lBTXZCLFlBQW1CLFNBQXVCLEVBQVMsTUFBZ0IsRUFBVSxTQUFtQixFQUFTLE1BQWM7UUFBcEcsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUxoSCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGtCQUFhLEdBQW9CLElBQUksQ0FBQztRQUN0QyxvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUdoQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsVUFBVSxDQUFDO1lBQ1AsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDakgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUdELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzJHQXJDUSxjQUFjOytGQUFkLGNBQWMsK0hDekIzQiwwa0JBY00sOHBCRFNRLE1BQU0sbURBQUUsT0FBTyxvREFBRSxPQUFPLG9GQUFFLElBQUksNkZBQUUsVUFBVSx1REFBRSxZQUFZLDJKQUFFLE9BQU87MkZBRWxFLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0ksT0FBTyxpQkFDRixpQkFBaUIsQ0FBQyxJQUFJLGNBR3pCLElBQUksV0FDUCxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztzS0FxQzVFLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24sIE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuXHJcbi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgQmFja1RvcCB9IGZyb20gXCIuLi9iYWNrLXRvcC9iYWNrLXRvcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gXCIuLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi4vc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOYXZiYXIgfSBmcm9tIFwiLi4vbmF2YmFyL25hdmJhci5jb21wb25lbnRcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGpRdWVyeTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwicGFnZXNcIixcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vcGFnZXMuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3BhZ2VzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05hdmJhciwgU2lkZWJhciwgTmdDbGFzcywgTmdJZiwgQnJlYWRjcnVtYiwgUm91dGVyT3V0bGV0LCBCYWNrVG9wXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZXNDb21wb25lbnQge1xyXG4gICAgcHVibGljIGlzTWVudUNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIG1heEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBkeW5hbWljQ1NTVXJsOiBTYWZlUmVzb3VyY2VVcmwgPSBudWxsO1xyXG4gICAgcHVibGljIGxvYWRlZE1vZHVsZUNzczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24sIHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKGlzQ29sbGFwc2VkKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNZW51Q29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5nZXRDdXJyZW50UGFnZU5hbWUoKTtcclxuICAgICAgICB0aGlzLmdldEhlaWdodCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEN1cnJlbnRQYWdlTmFtZSgpOiB2b2lkIHtcclxuICAgICAgICB2YXIgdXJsID0gdGhpcy5fbG9jYXRpb24ucGF0aCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGpRdWVyeSgnYVtocmVmPVwiIycgKyB1cmwgKyAnXCJdJykuY2xvc2VzdChcImxpXCIpLmNsb3Nlc3QoXCJ1bFwiKS5jbG9zZXN0KFwibGlcIikuYWRkQ2xhc3MoXCJzaWRlYmFyLWl0ZW0tZXhwYW5kZWRcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhpZGVNZW51KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLm5vdGlmeURhdGFDaGFuZ2VkKFwibWVudS5pc0NvbGxhcHNlZFwiLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SGVpZ2h0KCkge1xyXG4gICAgICAgIHZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQgLSA2MDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICAgIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5nZXRIZWlnaHQoKTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJwYWdlcy1jb250YWluZXJcIj5cclxuICAgIDxzaWRlYmFyPjwvc2lkZWJhcj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPG5hdmJhcj5cclxuICAgICAgICAgICAgPGJyZWFkY3J1bWI+PC9icmVhZGNydW1iPlxyXG4gICAgICAgIDwvbmF2YmFyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLXdyYXBwZXJcIiBbc3R5bGUubWF4LWhlaWdodC5weF09XCJtYXhIZWlnaHRcIiBbbmdDbGFzc109XCJ7J21lbnUtY29sbGFwc2VkJzogaXNNZW51Q29sbGFwc2VkfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXotb3ZlcmxheVwiICpuZ0lmPVwiIWlzTWVudUNvbGxhcHNlZFwiIChjbGljayk9XCJoaWRlTWVudSgpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgICAgICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YmFjay10b3AgW3Bvc2l0aW9uXT1cIjIwMFwiPjwvYmFjay10b3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, Inject, Optional, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { NgIf } from "@angular/common";
|
|
4
|
+
// Applicazione
|
|
5
|
+
import { REDIRECT_MAP } from "@esfaenza/core/domain";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@esfaenza/core/services";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
|
+
// TODO: loc.ts
|
|
10
|
+
export class RedirecterComponent {
|
|
11
|
+
constructor(_state, route, router, redirectMap) {
|
|
12
|
+
this._state = _state;
|
|
13
|
+
this.route = route;
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.redirectMap = redirectMap;
|
|
16
|
+
this.Error = "";
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
let url = this.route.snapshot.params["url"];
|
|
20
|
+
//§ = 167... non so perché ma scrivendolo esplicitamente non funziona
|
|
21
|
+
let parts = url.split(String.fromCharCode(167)).filter(s => !!s);
|
|
22
|
+
if (parts.length < 2) {
|
|
23
|
+
this.Error = "L'url passato è incompleto. Impossibile riconoscerlo";
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
var redirect = this.redirectMap[parts[0]];
|
|
28
|
+
if (!redirect) {
|
|
29
|
+
this.Error = "L'url passato fa riferimento a un oggetto non navigabile. Impossibile procedere";
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (redirect.params.length != parts.length - 1) {
|
|
33
|
+
this.Error = "Il numero di parametri richiesti per navigare all'entità richiesta è diverso dal numero di parametri passato";
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
let parObject = {};
|
|
37
|
+
redirect.params.forEach((t, i) => parObject[t] = parts[i + 1]);
|
|
38
|
+
this.router.navigate(["pages/" + redirect.url, parObject]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
RedirecterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RedirecterComponent, deps: [{ token: i1.AppState }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: REDIRECT_MAP, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
RedirecterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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 });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RedirecterComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: "redirecter", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<div *ngIf=\"Error\">{{Error}}</div>" }]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.AppState }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: undefined, decorators: [{
|
|
48
|
+
type: Optional
|
|
49
|
+
}, {
|
|
50
|
+
type: Inject,
|
|
51
|
+
args: [REDIRECT_MAP]
|
|
52
|
+
}] }]; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL3JlZGlyZWN0ZXIvcmVkaXJlY3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL3JlZGlyZWN0ZXIvcmVkaXJlY3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUt2QyxlQUFlO0FBQ2YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRXJELGVBQWU7QUFRZixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQW1CLE1BQWdCLEVBQVUsS0FBcUIsRUFBUyxNQUFjLEVBQTRDLFdBQW1FO1FBQXJMLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBNEMsZ0JBQVcsR0FBWCxXQUFXLENBQXdEO1FBRmpNLFVBQUssR0FBVyxFQUFFLENBQUM7SUFFa0wsQ0FBQztJQUU3TSxRQUFRO1FBQ0osSUFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELHFFQUFxRTtRQUNyRSxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLHNEQUFzRCxDQUFDO1lBQ3BFLE9BQU87U0FDVjthQUNJO1lBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsaUZBQWlGLENBQUM7Z0JBQy9GLE9BQU87YUFDVjtZQUVELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxLQUFLLEdBQUcsOEdBQThHLENBQUM7Z0JBQzVILE9BQU87YUFDVjtZQUVELElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNuQixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzlEO0lBQ0wsQ0FBQzs7Z0hBL0JRLG1CQUFtQiw4RkFJbUYsWUFBWTtvR0FKbEgsbUJBQW1CLHNFQ25CaEMsc0NBQWtDLDRDRGlCcEIsSUFBSTsyRkFFTCxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0ksWUFBWSxpQkFDUCxpQkFBaUIsQ0FBQyxJQUFJLGNBRXpCLElBQUksV0FDUCxDQUFDLElBQUksQ0FBQzs7MEJBTTZFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IFJFRElSRUNUX01BUCB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbi8vIFRPRE86IGxvYy50c1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInJlZGlyZWN0ZXJcIixcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3JlZGlyZWN0ZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0ZXJDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBFcnJvcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX3N0YXRlOiBBcHBTdGF0ZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgQE9wdGlvbmFsKCkgQEluamVjdChSRURJUkVDVF9NQVApIHByaXZhdGUgcmVkaXJlY3RNYXA6IHsgW2luZGV4OiBzdHJpbmddOiB7IHVybDogc3RyaW5nLCBwYXJhbXM6IHN0cmluZ1tdIH0gfSkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJ1cmxcIl07XHJcbiAgICAgICAgLy/CpyA9IDE2Ny4uLiBub24gc28gcGVyY2jDqSBtYSBzY3JpdmVuZG9sbyBlc3BsaWNpdGFtZW50ZSBub24gZnVuemlvbmFcclxuICAgICAgICBsZXQgcGFydHMgPSB1cmwuc3BsaXQoU3RyaW5nLmZyb21DaGFyQ29kZSgxNjcpKS5maWx0ZXIocyA9PiAhIXMpO1xyXG5cclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgICB0aGlzLkVycm9yID0gXCJMJ3VybCBwYXNzYXRvIMOoIGluY29tcGxldG8uIEltcG9zc2liaWxlIHJpY29ub3NjZXJsb1wiO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgcmVkaXJlY3QgPSB0aGlzLnJlZGlyZWN0TWFwW3BhcnRzWzBdXTtcclxuICAgICAgICAgICAgaWYgKCFyZWRpcmVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5FcnJvciA9IFwiTCd1cmwgcGFzc2F0byBmYSByaWZlcmltZW50byBhIHVuIG9nZ2V0dG8gbm9uIG5hdmlnYWJpbGUuIEltcG9zc2liaWxlIHByb2NlZGVyZVwiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVkaXJlY3QucGFyYW1zLmxlbmd0aCAhPSBwYXJ0cy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkVycm9yID0gXCJJbCBudW1lcm8gZGkgcGFyYW1ldHJpIHJpY2hpZXN0aSBwZXIgbmF2aWdhcmUgYWxsJ2VudGl0w6AgcmljaGllc3RhIMOoIGRpdmVyc28gZGFsIG51bWVybyBkaSBwYXJhbWV0cmkgcGFzc2F0b1wiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgcGFyT2JqZWN0ID0ge307XHJcbiAgICAgICAgICAgIHJlZGlyZWN0LnBhcmFtcy5mb3JFYWNoKCh0LCBpKSA9PiBwYXJPYmplY3RbdF0gPSBwYXJ0c1tpICsgMV0pO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJwYWdlcy9cIiArIHJlZGlyZWN0LnVybCwgcGFyT2JqZWN0XSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiAqbmdJZj1cIkVycm9yXCI+e3tFcnJvcn19PC9kaXY+Il19
|