@esfaenza/core 15.2.5 → 15.2.6
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/components/base/navigable.component.d.ts +17 -0
- package/components/base/reactive.component.d.ts +9 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +4 -0
- package/components/components.module.d.ts +11 -9
- package/components/jace-resource/jace-resource.component.d.ts +22 -0
- package/components/navbar/navbar.component.d.ts +22 -17
- package/components/public-api.d.ts +3 -0
- package/components/sidebar/sidebar.component.d.ts +13 -8
- package/domain/models/core/ApplicationJob.d.ts +12 -0
- package/domain/models/core/GenericItem.d.ts +10 -0
- package/domain/models/core/KeyValue.d.ts +5 -0
- package/domain/models/global_search/SaerchResultContainer.d.ts +5 -0
- package/domain/models/global_search/SearchResult.d.ts +10 -0
- package/domain/models/jace/{classes/ActiveModuleView.d.ts → ActiveModuleView.d.ts} +0 -5
- package/domain/models/jace/CategoriesWithModules.d.ts +6 -0
- package/domain/models/jace/{classes/JaceAccount.d.ts → JaceAccount.d.ts} +0 -9
- package/domain/models/jace/{classes/JaceIdentity.d.ts → JaceIdentity.d.ts} +1 -3
- package/domain/models/jace/JaceUser.d.ts +9 -0
- package/domain/public-api.d.ts +16 -10
- package/domain/tokens.d.ts +1 -1
- package/esm2020/components/base/navigable.component.mjs +43 -0
- package/esm2020/components/base/reactive.component.mjs +26 -0
- package/esm2020/components/breadcrumb/breadcrumb.component.mjs +34 -29
- package/esm2020/components/components.module.mjs +15 -8
- package/esm2020/components/error/Angular/angularerror.component.mjs +7 -5
- package/esm2020/components/external-page/external_pages.component.mjs +1 -2
- package/esm2020/components/jace-resource/jace-resource.component.mjs +65 -0
- package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +1 -1
- package/esm2020/components/navbar/navbar.component.mjs +80 -60
- package/esm2020/components/public-api.mjs +4 -1
- package/esm2020/components/sidebar/sidebar.component.mjs +67 -39
- package/esm2020/domain/models/core/ApplicationJob.mjs +3 -0
- package/esm2020/domain/models/core/ApplicationMenu.mjs +26 -0
- package/esm2020/domain/models/core/EnvOptions.mjs +13 -0
- package/esm2020/domain/models/core/GenericItem.mjs +12 -0
- package/esm2020/domain/models/core/KeyValue.mjs +15 -0
- package/esm2020/domain/models/global_search/SaerchResultContainer.mjs +6 -0
- package/esm2020/domain/models/global_search/SearchResult.mjs +8 -0
- package/esm2020/domain/models/jace/AccountScope.mjs +8 -0
- package/esm2020/domain/models/jace/ActiveModuleView.mjs +3 -0
- package/esm2020/domain/models/jace/CategoriesWithModules.mjs +7 -0
- package/esm2020/domain/models/jace/JaceAccount.mjs +3 -0
- package/esm2020/domain/models/jace/JaceIdentity.mjs +13 -0
- package/esm2020/domain/models/jace/JaceModule.mjs +3 -0
- package/esm2020/domain/models/jace/JacePermission.mjs +3 -0
- package/esm2020/domain/models/jace/JaceRole.mjs +8 -0
- package/esm2020/domain/models/jace/JaceUser.mjs +3 -0
- package/esm2020/domain/public-api.mjs +17 -11
- package/esm2020/domain/tokens.mjs +1 -1
- package/esm2020/lib/app.component.mjs +2 -2
- package/esm2020/lib/core.module.mjs +8 -7
- package/esm2020/pipes/classes/included_in.pipe.mjs +17 -0
- package/esm2020/pipes/{safe_html → classes}/safe_html.pipe.mjs +1 -1
- package/esm2020/pipes/{safe_script → classes}/safe_script.pipe.mjs +1 -1
- package/esm2020/pipes/{safe_style → classes}/safe_style.pipe.mjs +1 -1
- package/esm2020/pipes/classes/safe_url.pipe.mjs +18 -0
- package/esm2020/pipes/pipes.module.mjs +6 -6
- package/esm2020/pipes/public-api.mjs +6 -6
- package/esm2020/services/classes/app.completedjobredirection.mjs +18 -0
- package/esm2020/services/classes/app.globalsearch.mjs +34 -0
- package/esm2020/services/classes/app.menufilter.mjs +21 -0
- package/esm2020/services/classes/app.state.mjs +101 -9
- package/esm2020/services/public-api.mjs +4 -1
- package/fesm2015/esfaenza-core-components.mjs +331 -207
- package/fesm2015/esfaenza-core-components.mjs.map +1 -1
- package/fesm2015/esfaenza-core-domain.mjs +55 -15
- package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2015/esfaenza-core-pipes.mjs +2 -2
- package/fesm2015/esfaenza-core-pipes.mjs.map +1 -1
- package/fesm2015/esfaenza-core-services.mjs +168 -10
- package/fesm2015/esfaenza-core-services.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +11 -10
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-components.mjs +323 -201
- package/fesm2020/esfaenza-core-components.mjs.map +1 -1
- package/fesm2020/esfaenza-core-domain.mjs +54 -14
- package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2020/esfaenza-core-pipes.mjs +2 -2
- package/fesm2020/esfaenza-core-pipes.mjs.map +1 -1
- package/fesm2020/esfaenza-core-services.mjs +167 -10
- package/fesm2020/esfaenza-core-services.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +11 -10
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/lib/core.module.d.ts +6 -8
- package/package.json +1 -1
- package/pipes/{safe_url → classes}/safe_url.pipe.d.ts +1 -1
- package/pipes/pipes.module.d.ts +5 -5
- package/pipes/public-api.d.ts +5 -5
- package/services/classes/app.completedjobredirection.d.ts +12 -0
- package/services/classes/app.globalsearch.d.ts +25 -0
- package/services/classes/app.menufilter.d.ts +14 -0
- package/services/classes/app.state.d.ts +10 -17
- package/services/public-api.d.ts +3 -0
- package/theme/initial.scss +0 -8
- package/components/sidebar/sidebar.component.service.d.ts +0 -27
- package/domain/models/jace/classes/User.d.ts +0 -4
- package/esm2020/components/sidebar/sidebar.component.service.mjs +0 -58
- package/esm2020/domain/models/core/classes/ApplicationMenu.mjs +0 -26
- package/esm2020/domain/models/core/classes/EnvOptions.mjs +0 -13
- package/esm2020/domain/models/jace/classes/AccountScope.mjs +0 -8
- package/esm2020/domain/models/jace/classes/ActiveModuleView.mjs +0 -9
- package/esm2020/domain/models/jace/classes/JaceAccount.mjs +0 -5
- package/esm2020/domain/models/jace/classes/JaceIdentity.mjs +0 -16
- package/esm2020/domain/models/jace/classes/JaceModule.mjs +0 -3
- package/esm2020/domain/models/jace/classes/JacePermission.mjs +0 -3
- package/esm2020/domain/models/jace/classes/JaceRole.mjs +0 -8
- package/esm2020/domain/models/jace/classes/User.mjs +0 -3
- package/esm2020/pipes/included_in/included_in.pipe.mjs +0 -17
- package/esm2020/pipes/safe_url/safe_url.pipe.mjs +0 -18
- /package/domain/models/core/{classes/ApplicationMenu.d.ts → ApplicationMenu.d.ts} +0 -0
- /package/domain/models/core/{classes/EnvOptions.d.ts → EnvOptions.d.ts} +0 -0
- /package/domain/models/jace/{classes/AccountScope.d.ts → AccountScope.d.ts} +0 -0
- /package/domain/models/jace/{classes/JaceModule.d.ts → JaceModule.d.ts} +0 -0
- /package/domain/models/jace/{classes/JacePermission.d.ts → JacePermission.d.ts} +0 -0
- /package/domain/models/jace/{classes/JaceRole.d.ts → JaceRole.d.ts} +0 -0
- /package/pipes/{included_in → classes}/included_in.pipe.d.ts +0 -0
- /package/pipes/{safe_html → classes}/safe_html.pipe.d.ts +0 -0
- /package/pipes/{safe_script → classes}/safe_script.pipe.d.ts +0 -0
- /package/pipes/{safe_style → classes}/safe_style.pipe.d.ts +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injector } from "@angular/core";
|
|
2
|
+
import { ReactiveComponent } from "./reactive.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare abstract class NavigableComponent extends ReactiveComponent {
|
|
5
|
+
config: any;
|
|
6
|
+
protected CompletePath: string;
|
|
7
|
+
protected ComponentPath: string;
|
|
8
|
+
BasePath: string;
|
|
9
|
+
protected Parameters: {
|
|
10
|
+
[name: string]: string;
|
|
11
|
+
};
|
|
12
|
+
protected InternalNavigation: boolean;
|
|
13
|
+
protected Title: string;
|
|
14
|
+
constructor(injector: Injector);
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavigableComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavigableComponent, "ng-component", never, {}, {}, never, never, false, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReplaySubject, Subscription } from "rxjs";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare abstract class ReactiveComponent {
|
|
4
|
+
protected Subscriptions: Subscription[];
|
|
5
|
+
protected destroyed$: ReplaySubject<boolean>;
|
|
6
|
+
ngOnDestroy(): void;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ReactiveComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ReactiveComponent, "ng-component", never, {}, {}, never, never, false, never>;
|
|
9
|
+
}
|
|
@@ -9,6 +9,10 @@ export declare class Breadcrumb {
|
|
|
9
9
|
activePageTitle: string;
|
|
10
10
|
subActiveLinks: string[];
|
|
11
11
|
constructor(_state: AppState, _activatedRoute: ActivatedRoute, _titleService: Title);
|
|
12
|
+
private adjustNavigationTo;
|
|
13
|
+
private adjustSubNavigationTo;
|
|
14
|
+
private removeLastSubNavigation;
|
|
15
|
+
private cleanupSubNavigation;
|
|
12
16
|
ngOnInit(): void;
|
|
13
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<Breadcrumb, never>;
|
|
14
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<Breadcrumb, "breadcrumb", never, {}, {}, never, never, false, never>;
|
|
@@ -11,16 +11,18 @@ import * as i9 from "./navbar/modules-board/jace-modules-board.component";
|
|
|
11
11
|
import * as i10 from "./navbar/navbar.component";
|
|
12
12
|
import * as i11 from "./redirecter/redirecter.component";
|
|
13
13
|
import * as i12 from "./sidebar/sidebar.component";
|
|
14
|
-
import * as i13 from "
|
|
15
|
-
import * as i14 from "@angular/
|
|
16
|
-
import * as i15 from "@angular/
|
|
17
|
-
import * as i16 from "@
|
|
18
|
-
import * as i17 from "@esfaenza/
|
|
19
|
-
import * as i18 from "
|
|
20
|
-
import * as i19 from "
|
|
21
|
-
import * as i20 from "
|
|
14
|
+
import * as i13 from "./jace-resource/jace-resource.component";
|
|
15
|
+
import * as i14 from "@angular/common";
|
|
16
|
+
import * as i15 from "@angular/router";
|
|
17
|
+
import * as i16 from "@angular/forms";
|
|
18
|
+
import * as i17 from "@esfaenza/core/directives";
|
|
19
|
+
import * as i18 from "@esfaenza/localizations";
|
|
20
|
+
import * as i19 from "ngx-bootstrap/progressbar";
|
|
21
|
+
import * as i20 from "@angular/material/slide-toggle";
|
|
22
|
+
import * as i21 from "ngx-bootstrap/dropdown";
|
|
23
|
+
import * as i22 from "@esfaenza/es-table";
|
|
22
24
|
export declare class ComponentsModule {
|
|
23
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentsModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ComponentsModule, [typeof i1.BackTop, typeof i2.Breadcrumb, typeof i3.PageNotFoundComponent, typeof i4.ServerErrorComponent, typeof i5.AngularErrorComponent, typeof i6.PagesComponent, typeof i7.ExternalPagesComponent, typeof i8.JaceLoginComponent, typeof i9.JaceModulesBoardComponent, typeof i10.Navbar, typeof i11.RedirecterComponent, typeof i12.Sidebar], [typeof
|
|
26
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ComponentsModule, [typeof i1.BackTop, typeof i2.Breadcrumb, typeof i3.PageNotFoundComponent, typeof i4.ServerErrorComponent, typeof i5.AngularErrorComponent, typeof i6.PagesComponent, typeof i7.ExternalPagesComponent, typeof i8.JaceLoginComponent, typeof i9.JaceModulesBoardComponent, typeof i10.Navbar, typeof i11.RedirecterComponent, typeof i12.Sidebar, typeof i13.JaceResourceComponent], [typeof i14.CommonModule, typeof i15.RouterModule, typeof i16.FormsModule, typeof i17.DirectivesModule, typeof i18.LocalizationModule, typeof i19.ProgressbarModule, typeof i20.MatSlideToggleModule, typeof i21.BsDropdownModule, typeof i22.EsTableModule], [typeof i1.BackTop, typeof i2.Breadcrumb, typeof i3.PageNotFoundComponent, typeof i4.ServerErrorComponent, typeof i5.AngularErrorComponent, typeof i6.PagesComponent, typeof i7.ExternalPagesComponent, typeof i8.JaceLoginComponent, typeof i9.JaceModulesBoardComponent, typeof i10.Navbar, typeof i11.RedirecterComponent, typeof i12.Sidebar, typeof i13.JaceResourceComponent]>;
|
|
25
27
|
static ɵinj: i0.ɵɵInjectorDeclaration<ComponentsModule>;
|
|
26
28
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChangeDetectorRef } from "@angular/core";
|
|
2
|
+
import { DomSanitizer, SafeResourceUrl } from "@angular/platform-browser";
|
|
3
|
+
import { AppState } from "@esfaenza/core/services";
|
|
4
|
+
import { ActiveModuleView } from "@esfaenza/core/domain";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class JaceResourceComponent {
|
|
7
|
+
private cdr;
|
|
8
|
+
private _state;
|
|
9
|
+
private sanitizer;
|
|
10
|
+
Module: string;
|
|
11
|
+
ModuleKeyType: 'altid' | 'id';
|
|
12
|
+
Page: string;
|
|
13
|
+
Localhost: string;
|
|
14
|
+
Height: number;
|
|
15
|
+
sanitizedSourceResource: SafeResourceUrl;
|
|
16
|
+
constructor(cdr: ChangeDetectorRef, _state: AppState, sanitizer: DomSanitizer);
|
|
17
|
+
ngOnInit(): void;
|
|
18
|
+
ngAfterViewInit(): void;
|
|
19
|
+
afterModulesRetrieve(modules: ActiveModuleView[]): void;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<JaceResourceComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<JaceResourceComponent, "jace-resource", never, { "Module": "Module"; "ModuleKeyType": "ModuleKeyType"; "Page": "Page"; "Localhost": "Localhost"; }, {}, never, never, false, never>;
|
|
22
|
+
}
|
|
@@ -5,12 +5,14 @@ import { CacheService, PreferencesService } from "@esfaenza/preferences";
|
|
|
5
5
|
import { LocalizationService } from "@esfaenza/localizations";
|
|
6
6
|
import { MessageService } from "@esfaenza/extensions";
|
|
7
7
|
import { HTTPService } from "@esfaenza/httpservice";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { JaceIdentity, ActiveModuleView, ApplicationJob, SearchResult, SearchResultContainer } from "@esfaenza/core/domain";
|
|
9
|
+
import { AppState, CompletedJobRedirectionService, GlobalSearchService, TokenService } from "@esfaenza/core/services";
|
|
10
|
+
import { ReactiveComponent } from "../base/reactive.component";
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
|
-
export declare class Navbar {
|
|
12
|
+
export declare class Navbar extends ReactiveComponent {
|
|
12
13
|
private prefsService;
|
|
13
14
|
private cacheService;
|
|
15
|
+
globalSearchService: GlobalSearchService;
|
|
14
16
|
private MessageDef;
|
|
15
17
|
private notifications;
|
|
16
18
|
private msgExts;
|
|
@@ -20,27 +22,21 @@ export declare class Navbar {
|
|
|
20
22
|
_state: AppState;
|
|
21
23
|
sr: TokenService;
|
|
22
24
|
private router;
|
|
23
|
-
private
|
|
24
|
-
isMenuCollapsed: boolean;
|
|
25
|
+
private cjrService;
|
|
25
26
|
applicationVersion: string;
|
|
26
|
-
|
|
27
|
+
applicationEnvironment: number;
|
|
28
|
+
isMenuCollapsed: boolean;
|
|
27
29
|
anomaliesProcessing: boolean;
|
|
28
|
-
|
|
29
|
-
IsJaceAdmin: boolean;
|
|
30
|
+
CurrentIdentity: JaceIdentity;
|
|
30
31
|
private newVersionWarned;
|
|
31
|
-
thisLoc: string;
|
|
32
32
|
navbar: ElementRef;
|
|
33
|
-
Permissions: string[];
|
|
34
|
-
Roles: string[];
|
|
35
33
|
Modules: ActiveModuleView[];
|
|
36
|
-
|
|
37
|
-
constructor(prefsService: PreferencesService, cacheService: CacheService, MessageDef: BaseMessageService, notifications: NotificationsService, msgExts: MessageService, lc: LocalizationService, http: HTTPService, cdr: ChangeDetectorRef, _state: AppState, sr: TokenService, router: Router);
|
|
34
|
+
constructor(prefsService: PreferencesService, cacheService: CacheService, globalSearchService: GlobalSearchService, MessageDef: BaseMessageService, notifications: NotificationsService, msgExts: MessageService, lc: LocalizationService, http: HTTPService, cdr: ChangeDetectorRef, _state: AppState, sr: TokenService, router: Router, cjrService: CompletedJobRedirectionService);
|
|
38
35
|
ngOnDestroy(): void;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
checkIdentity(): void;
|
|
36
|
+
private handleBaseNotifications;
|
|
37
|
+
private checkIdentity;
|
|
42
38
|
getActiveJaceModules(): void;
|
|
43
|
-
private
|
|
39
|
+
private checkSessionTimeout;
|
|
44
40
|
ngAfterViewInit(): void;
|
|
45
41
|
toggleMenu(): void;
|
|
46
42
|
logout(): void;
|
|
@@ -52,6 +48,15 @@ export declare class Navbar {
|
|
|
52
48
|
clearAll(): void;
|
|
53
49
|
clearMessages(): void;
|
|
54
50
|
completedJobClicked(job: ApplicationJob): void;
|
|
51
|
+
SelectedResult: SearchResult;
|
|
52
|
+
ShowSingleTable: boolean;
|
|
53
|
+
searchTerm: string;
|
|
54
|
+
searchingTerm: boolean;
|
|
55
|
+
searchResult: SearchResultContainer;
|
|
56
|
+
searchRequest(): void;
|
|
57
|
+
searchModelChanged(): void;
|
|
58
|
+
closeSearch(): void;
|
|
59
|
+
FilterSearchResults(item?: SearchResult): void;
|
|
55
60
|
static ɵfac: i0.ɵɵFactoryDeclaration<Navbar, never>;
|
|
56
61
|
static ɵcmp: i0.ɵɵComponentDeclaration<Navbar, "navbar", never, {}, {}, never, never, false, never>;
|
|
57
62
|
}
|
|
@@ -10,4 +10,7 @@ export * from './navbar/navbar.component';
|
|
|
10
10
|
export * from './navbar/modules-board/jace-modules-board.component';
|
|
11
11
|
export * from './redirecter/redirecter.component';
|
|
12
12
|
export * from './sidebar/sidebar.component';
|
|
13
|
+
export * from './base/navigable.component';
|
|
14
|
+
export * from './base/reactive.component';
|
|
15
|
+
export * from './jace-resource/jace-resource.component';
|
|
13
16
|
export * from './components.module';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ChangeDetectorRef, ElementRef, NgZone, Type } from "@angular/core";
|
|
2
2
|
import { Router } from "@angular/router";
|
|
3
3
|
import { LocalizationService } from "@esfaenza/localizations";
|
|
4
|
-
import {
|
|
5
|
-
import { AppState } from "@esfaenza/core/services";
|
|
4
|
+
import { ApplicationMenu } from "@esfaenza/core/domain";
|
|
5
|
+
import { AppState, MenuFilteringService } from "@esfaenza/core/services";
|
|
6
|
+
import { UtilityService } from "@esfaenza/extensions";
|
|
7
|
+
import { AccessControlService } from "@esfaenza/access-control";
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
export declare class Sidebar {
|
|
8
10
|
lc: LocalizationService;
|
|
@@ -10,8 +12,11 @@ export declare class Sidebar {
|
|
|
10
12
|
private _elementRef;
|
|
11
13
|
private _router;
|
|
12
14
|
_state: AppState;
|
|
13
|
-
private _sidebarService;
|
|
14
15
|
private zone;
|
|
16
|
+
private utiExts;
|
|
17
|
+
private aac;
|
|
18
|
+
private menuItemsRaw;
|
|
19
|
+
private menuFilteringService;
|
|
15
20
|
menuItems: Array<any>;
|
|
16
21
|
menuHeight: number;
|
|
17
22
|
isMenuCollapsed: boolean;
|
|
@@ -20,10 +25,10 @@ export declare class Sidebar {
|
|
|
20
25
|
hoverElemHeight: number;
|
|
21
26
|
hoverElemTop: number;
|
|
22
27
|
sidebar: ElementRef;
|
|
23
|
-
constructor(lc: LocalizationService, lcMenu: Type<LocalizationService>, cdr: ChangeDetectorRef, _elementRef: ElementRef, _router: Router, _state: AppState,
|
|
24
|
-
ngOnInit(): void
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
constructor(lc: LocalizationService, lcMenu: Type<LocalizationService>, cdr: ChangeDetectorRef, _elementRef: ElementRef, _router: Router, _state: AppState, zone: NgZone, utiExts: UtilityService, aac: AccessControlService, menuItemsRaw: ApplicationMenu[], menuFilteringService: MenuFilteringService);
|
|
29
|
+
ngOnInit(): Promise<void>;
|
|
30
|
+
private getMenuItems;
|
|
31
|
+
private checkSubMenuOverClaims;
|
|
27
32
|
onWindowResize(): void;
|
|
28
33
|
private _shouldMenuCollapse;
|
|
29
34
|
menuCollapse(): void;
|
|
@@ -34,6 +39,6 @@ export declare class Sidebar {
|
|
|
34
39
|
updateSidebarHeight(): void;
|
|
35
40
|
collapseMenu($event: any, item: any): boolean;
|
|
36
41
|
private outsideAngularClickHandler;
|
|
37
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<Sidebar, [null, { optional: true; }, null, null, null, null, null, null]>;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Sidebar, [null, { optional: true; }, null, null, null, null, null, null, null, null, null]>;
|
|
38
43
|
static ɵcmp: i0.ɵɵComponentDeclaration<Sidebar, "sidebar", never, {}, {}, never, never, false, never>;
|
|
39
44
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReportParam } from "@esfaenza/es-table";
|
|
2
|
+
export declare class ApplicationJob {
|
|
3
|
+
id: string;
|
|
4
|
+
description: string;
|
|
5
|
+
smalldescription: string;
|
|
6
|
+
percentage: number;
|
|
7
|
+
completed: boolean;
|
|
8
|
+
fileid: string;
|
|
9
|
+
reportid: string;
|
|
10
|
+
complexreportid: string;
|
|
11
|
+
reportpars: ReportParam[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Rappresentazione di un oggetto generico */
|
|
2
|
+
export declare class GenericItem {
|
|
3
|
+
properties: Record<string, string>;
|
|
4
|
+
/**
|
|
5
|
+
* Costruttore
|
|
6
|
+
*
|
|
7
|
+
* @param properties Dizionario Chiave - Valore delle proprietà di questo oggetto generico
|
|
8
|
+
*/
|
|
9
|
+
constructor(properties: Record<string, string>);
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GenericItem } from "../core/GenericItem";
|
|
2
|
+
import { KeyValue } from "../core/KeyValue";
|
|
3
|
+
import { EsTableColumnsDefinition } from "@esfaenza/es-table";
|
|
4
|
+
export declare class SearchResult {
|
|
5
|
+
description: string;
|
|
6
|
+
columns: KeyValue[];
|
|
7
|
+
items: GenericItem[];
|
|
8
|
+
constructor(description: string, columns: KeyValue[], items: GenericItem[]);
|
|
9
|
+
est_cols: EsTableColumnsDefinition[];
|
|
10
|
+
}
|
|
@@ -15,12 +15,3 @@ export declare class JaceAccount {
|
|
|
15
15
|
cnattempts: number;
|
|
16
16
|
description: string;
|
|
17
17
|
}
|
|
18
|
-
export declare class JaceUser {
|
|
19
|
-
iduser: number;
|
|
20
|
-
dsnome: string;
|
|
21
|
-
dscognome: string;
|
|
22
|
-
sydatains: Date;
|
|
23
|
-
syuserins: string;
|
|
24
|
-
sydataupd: Date;
|
|
25
|
-
syuserupd: string;
|
|
26
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AccountScope } from "./AccountScope";
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class JaceIdentity {
|
|
3
3
|
Expired: boolean;
|
|
4
4
|
IdAccount: number;
|
|
5
5
|
IdUser: number;
|
|
@@ -8,8 +8,6 @@ export declare class BaseIdentity {
|
|
|
8
8
|
Idtenant: string;
|
|
9
9
|
TenantName: string;
|
|
10
10
|
ExpirationTime: Date;
|
|
11
|
-
}
|
|
12
|
-
export declare class JaceIdentity extends BaseIdentity {
|
|
13
11
|
constructor(scope?: AccountScope);
|
|
14
12
|
Roles: string[];
|
|
15
13
|
Modules: number[];
|
package/domain/public-api.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
export * from './models/core/
|
|
2
|
-
export * from './models/core/
|
|
3
|
-
export * from './models/
|
|
4
|
-
export * from './models/
|
|
5
|
-
export * from './models/
|
|
6
|
-
export * from './models/jace/
|
|
7
|
-
export * from './models/jace/
|
|
8
|
-
export * from './models/jace/
|
|
9
|
-
export * from './models/jace/
|
|
10
|
-
export * from './models/jace/
|
|
1
|
+
export * from './models/core/ApplicationMenu';
|
|
2
|
+
export * from './models/core/ApplicationJob';
|
|
3
|
+
export * from './models/core/EnvOptions';
|
|
4
|
+
export * from './models/core/KeyValue';
|
|
5
|
+
export * from './models/core/GenericItem';
|
|
6
|
+
export * from './models/jace/CategoriesWithModules';
|
|
7
|
+
export * from './models/jace/AccountScope';
|
|
8
|
+
export * from './models/jace/ActiveModuleView';
|
|
9
|
+
export * from './models/jace/JaceAccount';
|
|
10
|
+
export * from './models/jace/JaceIdentity';
|
|
11
|
+
export * from './models/jace/JaceModule';
|
|
12
|
+
export * from './models/jace/JacePermission';
|
|
13
|
+
export * from './models/jace/JaceRole';
|
|
14
|
+
export * from './models/jace/JaceUser';
|
|
15
|
+
export * from './models/global_search/SaerchResultContainer';
|
|
16
|
+
export * from './models/global_search/SearchResult';
|
|
11
17
|
export * from './tokens';
|
package/domain/tokens.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InjectionToken, Type } from "@angular/core";
|
|
2
2
|
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
-
import { ApplicationMenu } from "./models/core/
|
|
3
|
+
import { ApplicationMenu } from "./models/core/ApplicationMenu";
|
|
4
4
|
/** Token che indica i default da assegnare agli Input */
|
|
5
5
|
export declare const REDIRECT_MAP: InjectionToken<{
|
|
6
6
|
[index: string]: {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component } from "@angular/core";
|
|
3
|
+
import { ActivatedRoute } from "@angular/router";
|
|
4
|
+
// Direttive, Componenti, Librerie
|
|
5
|
+
import { takeUntil } from "rxjs/operators";
|
|
6
|
+
// Core
|
|
7
|
+
import { AppState } from "@esfaenza/core/services";
|
|
8
|
+
import { ReactiveComponent } from "./reactive.component";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class NavigableComponent extends ReactiveComponent {
|
|
11
|
+
constructor(injector) {
|
|
12
|
+
super();
|
|
13
|
+
this.Parameters = null;
|
|
14
|
+
let _activatedRoute = injector.get(ActivatedRoute);
|
|
15
|
+
let _state = injector.get(AppState);
|
|
16
|
+
_state.registerNavigationIfMeaningful(_activatedRoute.snapshot);
|
|
17
|
+
// Parametri in maniera "dinamica"
|
|
18
|
+
_activatedRoute.params.pipe(takeUntil(this.destroyed$)).subscribe(t => { this.Parameters = t; });
|
|
19
|
+
// Tutto il resto in maniera statica tanto non cambia
|
|
20
|
+
let segs = _activatedRoute.snapshot._urlSegment.segments;
|
|
21
|
+
this.CompletePath = "/" + segs.map(t => t.path).join('/');
|
|
22
|
+
this.ComponentPath = "/" + segs.filter((t, i) => i != 0).map(t => t.path).join('/');
|
|
23
|
+
this.BasePath = "/" + segs[0].path;
|
|
24
|
+
this.InternalNavigation = _activatedRoute.snapshot.data["internalNavigation"] || false;
|
|
25
|
+
this.Title = _activatedRoute.snapshot.data["title"] || "";
|
|
26
|
+
// Per i componenti navigabili non embeddati è inutile mandare il messaggio di navigazione
|
|
27
|
+
if (!_state.Embedded)
|
|
28
|
+
return;
|
|
29
|
+
// Se sono dentro un iframe risalgo a quello di livello più alto in assoluto
|
|
30
|
+
let tmpWindow = window;
|
|
31
|
+
// Quando il parent non esiste window. parent è un riferimento a se stesso
|
|
32
|
+
while (tmpWindow.parent != tmpWindow)
|
|
33
|
+
tmpWindow = tmpWindow.parent;
|
|
34
|
+
tmpWindow.postMessage({ type: "navigation", url: this.CompletePath, internalNavigation: this.InternalNavigation, title: this.Title }, "*");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
NavigableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
NavigableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NavigableComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavigableComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ template: '' }]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvYmFzZS9uYXZpZ2FibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUd6RCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGlCQUFpQjtJQXFCOUQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQVBGLGVBQVUsR0FBK0IsSUFBSSxDQUFDO1FBU3BELElBQUksZUFBZSxHQUFtQixRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLElBQUksTUFBTSxHQUFhLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoRSxrQ0FBa0M7UUFDbEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFaEcscURBQXFEO1FBQ3JELElBQUksSUFBSSxHQUEyQixlQUFlLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFRLENBQUM7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTFELDBGQUEwRjtRQUMxRixJQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDZixPQUFPO1FBRVgsNEVBQTRFO1FBQzVFLElBQUksU0FBUyxHQUEyQyxNQUFNLENBQUM7UUFDL0QsMEVBQTBFO1FBQzFFLE9BQU8sU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTO1lBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRWpDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9JLENBQUM7OytHQXBEaUIsa0JBQWtCO21HQUFsQixrQkFBa0IsMkVBRGpCLEVBQUU7MkZBQ0gsa0JBQWtCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBVcmxTZWdtZW50R3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVhY3RpdmVDb21wb25lbnQgfSBmcm9tIFwiLi9yZWFjdGl2ZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYWJsZUNvbXBvbmVudCBleHRlbmRzIFJlYWN0aXZlQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBjb25maWc6IGFueTtcclxuXHJcbiAgICAvKlxyXG4gICAgICogQmxvY2NvIGRpIGluZm9ybWF6aW9uaSBzdWxsYSByb3V0ZSBhdHR1YWxlXHJcbiAgICAgKiAgICAgIFJvdXRlOiAvcGFnZXMvbW9kdWxlL2NvbXBvbmVudDtpZE1vZGVsPTEyM1xyXG4gICAgICogICAgICBcclxuICAgICAqICAgICAgQ29tcGxldGVQYXRoOiAvcGFnZXMvbW9kdWxlL2NvbXBvbmVudFxyXG4gICAgICogICAgICBDb21wb25lbnRQYXRoOiBtb2R1bGUvY29tcG9uZW50XHJcbiAgICAgKiAgICAgIEJhc2VQYXRoOiAvcGFnZXMgKHVuaWNhIHByb3ByaWV0w6AgcHViYmxpY2EgcGVyIGZhcmUgcmVkaXJlY3QgYmFzYW5kb21pIHN1bGxhIHJvdXRlIGJhc2UgYXR0dWFsZSBhbmNoZSBkYSBIVE1MKVxyXG4gICAgICogICAgICBQYXJhbWV0ZXJzOiB7IFwiaWRNb2RlbFwiIDogXCIxMjNcIiB9XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBDb21wbGV0ZVBhdGg6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBDb21wb25lbnRQYXRoOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgQmFzZVBhdGg6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBQYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IG51bGw7XHJcblxyXG4gICAgLy8gSW5mb3JtYXppb25pIHByZXNlIGRhaSBkYXRpIGV4dHJhIGRlbGxhIHJvdXRlXHJcbiAgICBwcm90ZWN0ZWQgSW50ZXJuYWxOYXZpZ2F0aW9uOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIFRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHJcbiAgICAgICAgbGV0IF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgICAgIGxldCBfc3RhdGU6IEFwcFN0YXRlID0gaW5qZWN0b3IuZ2V0KEFwcFN0YXRlKTtcclxuXHJcbiAgICAgICAgX3N0YXRlLnJlZ2lzdGVyTmF2aWdhdGlvbklmTWVhbmluZ2Z1bChfYWN0aXZhdGVkUm91dGUuc25hcHNob3QpO1xyXG5cclxuICAgICAgICAvLyBQYXJhbWV0cmkgaW4gbWFuaWVyYSBcImRpbmFtaWNhXCJcclxuICAgICAgICBfYWN0aXZhdGVkUm91dGUucGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSh0ID0+IHsgdGhpcy5QYXJhbWV0ZXJzID0gdDsgfSlcclxuXHJcbiAgICAgICAgLy8gVHV0dG8gaWwgcmVzdG8gaW4gbWFuaWVyYSBzdGF0aWNhIHRhbnRvIG5vbiBjYW1iaWFcclxuICAgICAgICBsZXQgc2VncyA9ICg8VXJsU2VnbWVudEdyb3VwPig8YW55Pl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCkuX3VybFNlZ21lbnQpLnNlZ21lbnRzO1xyXG4gICAgICAgIHRoaXMuQ29tcGxldGVQYXRoID0gXCIvXCIgKyBzZWdzLm1hcCh0ID0+IHQucGF0aCkuam9pbignLycpO1xyXG4gICAgICAgIHRoaXMuQ29tcG9uZW50UGF0aCA9IFwiL1wiICsgc2Vncy5maWx0ZXIoKHQsIGkpID0+IGkgIT0gMCkubWFwKHQgPT4gdC5wYXRoKS5qb2luKCcvJyk7XHJcbiAgICAgICAgdGhpcy5CYXNlUGF0aCA9IFwiL1wiICsgc2Vnc1swXS5wYXRoO1xyXG5cclxuICAgICAgICB0aGlzLkludGVybmFsTmF2aWdhdGlvbiA9IF9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhW1wiaW50ZXJuYWxOYXZpZ2F0aW9uXCJdIHx8IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuVGl0bGUgPSBfYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdIHx8IFwiXCI7XHJcblxyXG4gICAgICAgIC8vIFBlciBpIGNvbXBvbmVudGkgbmF2aWdhYmlsaSBub24gZW1iZWRkYXRpIMOoIGludXRpbGUgbWFuZGFyZSBpbCBtZXNzYWdnaW8gZGkgbmF2aWdhemlvbmVcclxuICAgICAgICBpZighX3N0YXRlLkVtYmVkZGVkKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIC8vIFNlIHNvbm8gZGVudHJvIHVuIGlmcmFtZSByaXNhbGdvIGEgcXVlbGxvIGRpIGxpdmVsbG8gcGnDuSBhbHRvIGluIGFzc29sdXRvXHJcbiAgICAgICAgbGV0IHRtcFdpbmRvdyA9IDx7IHBhcmVudDogYW55LCBwb3N0TWVzc2FnZTogRnVuY3Rpb24gfT53aW5kb3c7XHJcbiAgICAgICAgLy8gUXVhbmRvIGlsIHBhcmVudCBub24gZXNpc3RlIHdpbmRvdy4gcGFyZW50IMOoIHVuIHJpZmVyaW1lbnRvIGEgc2Ugc3Rlc3NvXHJcbiAgICAgICAgd2hpbGUgKHRtcFdpbmRvdy5wYXJlbnQgIT0gdG1wV2luZG93KVxyXG4gICAgICAgICAgICB0bXBXaW5kb3cgPSB0bXBXaW5kb3cucGFyZW50O1xyXG5cclxuICAgICAgICB0bXBXaW5kb3cucG9zdE1lc3NhZ2UoeyB0eXBlOiBcIm5hdmlnYXRpb25cIiwgdXJsOiB0aGlzLkNvbXBsZXRlUGF0aCwgaW50ZXJuYWxOYXZpZ2F0aW9uOiB0aGlzLkludGVybmFsTmF2aWdhdGlvbiwgdGl0bGU6IHRoaXMuVGl0bGUgfSwgXCIqXCIpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component } from "@angular/core";
|
|
3
|
+
// Direttive, Componenti, Librerie
|
|
4
|
+
import { ReplaySubject } from "rxjs";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ReactiveComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.Subscriptions = [];
|
|
9
|
+
this.destroyed$ = new ReplaySubject(1);
|
|
10
|
+
}
|
|
11
|
+
ngOnDestroy() {
|
|
12
|
+
this.destroyed$.next(true);
|
|
13
|
+
this.destroyed$.complete();
|
|
14
|
+
if (!this.Subscriptions)
|
|
15
|
+
return;
|
|
16
|
+
for (let i = 0; i < this.Subscriptions.length; i++)
|
|
17
|
+
this.Subscriptions[i].unsubscribe();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ReactiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
ReactiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ReactiveComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ template: '' }]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9iYXNlL3JlYWN0aXZlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBR25ELE1BQU0sT0FBZ0IsaUJBQWlCO0lBRHZDO1FBR2Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBMkIsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FZdkU7SUFWRyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDbkIsT0FBTztRQUVYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzs4R0FkaUIsaUJBQWlCO2tHQUFqQixpQkFBaUIsb0RBRGhCLEVBQUU7MkZBQ0gsaUJBQWlCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlYWN0aXZlQ29tcG9uZW50IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICAgIHByb3RlY3RlZCBkZXN0cm95ZWQkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5TdWJzY3JpcHRpb25zKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5TdWJzY3JpcHRpb25zLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB0aGlzLlN1YnNjcmlwdGlvbnNbaV0udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -12,38 +12,43 @@ export class Breadcrumb {
|
|
|
12
12
|
this._titleService = _titleService;
|
|
13
13
|
this.activePageTitle = "";
|
|
14
14
|
this.subActiveLinks = [];
|
|
15
|
-
this._state.subscribe("menu.adjustNavigationTo", (activeLink) =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/*Gestione della navigazione interna:
|
|
23
|
-
Essenzialmente controllo se la lista di subnavigation gi� contiene l'elemento in cui sono ora,
|
|
24
|
-
se lo contiene gi� significa che ci sono tornato sopra premendo back(browser o pagina), quindi
|
|
25
|
-
elimino l'ultimo elemento della lista per ristabilire la situazione, se invece l'elemento non esiste
|
|
26
|
-
vuol dire che ci ho navigato sopra, quindi lo aggiungo.*/
|
|
27
|
-
this._state.subscribe("menu.adjustSubNavigationTo", (activeLink) => {
|
|
28
|
-
if (activeLink) {
|
|
29
|
-
var index = this.subActiveLinks.indexOf(activeLink);
|
|
30
|
-
if (index != -1 && (index + 1) != this.subActiveLinks.length)
|
|
31
|
-
this.subActiveLinks.pop();
|
|
32
|
-
if (index == -1 && this.activePageTitle != activeLink)
|
|
33
|
-
this.subActiveLinks.push(activeLink);
|
|
34
|
-
this._titleService.setTitle(myconfig.AppData.ModuleDescription + " > " + activeLink);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
this._state.subscribe("menu.removeLastSubNavigation", () => {
|
|
38
|
-
this.subActiveLinks.pop();
|
|
39
|
-
});
|
|
40
|
-
this._state.subscribe("menu.cleanupSubNavigation", () => {
|
|
15
|
+
this._state.subscribe("menu.adjustNavigationTo", (activeLink) => this.adjustNavigationTo(activeLink));
|
|
16
|
+
this._state.subscribe("menu.adjustSubNavigationTo", (activeLink) => this.adjustSubNavigationTo(activeLink));
|
|
17
|
+
this._state.subscribe("menu.removeLastSubNavigation", () => this.removeLastSubNavigation());
|
|
18
|
+
this._state.subscribe("menu.cleanupSubNavigation", () => this.cleanupSubNavigation());
|
|
19
|
+
}
|
|
20
|
+
adjustNavigationTo(activeLink) {
|
|
21
|
+
if (activeLink) {
|
|
41
22
|
this.subActiveLinks = [];
|
|
42
|
-
|
|
23
|
+
this.activePageTitle = activeLink;
|
|
24
|
+
this._titleService.setTitle(myconfig.AppData.ModuleDescription + " > " + activeLink);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/*Gestione della navigazione interna:
|
|
28
|
+
Essenzialmente controllo se la lista di subnavigation già contiene l'elemento in cui sono ora,
|
|
29
|
+
se lo contiene già significa che ci sono tornato sopra premendo back(browser o pagina), quindi
|
|
30
|
+
elimino l'ultimo elemento della lista per ristabilire la situazione, se invece l'elemento non esiste
|
|
31
|
+
vuol dire che ci ho navigato sopra, quindi lo aggiungo.*/
|
|
32
|
+
adjustSubNavigationTo(activeLink) {
|
|
33
|
+
if (activeLink) {
|
|
34
|
+
var index = this.subActiveLinks.indexOf(activeLink);
|
|
35
|
+
if (index != -1 && (index + 1) != this.subActiveLinks.length)
|
|
36
|
+
this.subActiveLinks.pop();
|
|
37
|
+
if (index == -1 && this.activePageTitle != activeLink)
|
|
38
|
+
this.subActiveLinks.push(activeLink);
|
|
39
|
+
this._titleService.setTitle(myconfig.AppData.ModuleDescription + " > " + activeLink);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
removeLastSubNavigation() {
|
|
43
|
+
this.subActiveLinks.pop();
|
|
44
|
+
}
|
|
45
|
+
cleanupSubNavigation() {
|
|
46
|
+
this.subActiveLinks = [];
|
|
43
47
|
}
|
|
44
48
|
ngOnInit() {
|
|
45
|
-
if (!this.activePageTitle)
|
|
49
|
+
if (!this.activePageTitle) {
|
|
46
50
|
this.activePageTitle = this._activatedRoute.snapshot.firstChild.data["title"];
|
|
51
|
+
}
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
Breadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Breadcrumb, deps: [{ token: i1.AppState }, { token: i2.ActivatedRoute }, { token: i3.Title }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -52,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
52
57
|
type: Component,
|
|
53
58
|
args: [{ selector: "breadcrumb", encapsulation: ViewEncapsulation.None, template: "<div class=\"clearfix\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item fa fa-home m-t-3\"></li>\r\n <li class=\"breadcrumb-item active text-uppercase\">{{ activePageTitle }}</li>\r\n <li class=\"breadcrumb-item active text-uppercase e2eLeafPage\" *ngFor=\"let link of subActiveLinks\">{{ link }}</li>\r\n </ol>\r\n</div>", styles: [".breadcrumb{padding:0;background:transparent;color:#242424;font-size:14px;margin-bottom:15px}.breadcrumb-item+.breadcrumb-item:before{color:#242424;content:\">\"}.breadcrumb-item{float:left}.breadcrumb-item.active{color:#242424;font-weight:700}\n"] }]
|
|
54
59
|
}], ctorParameters: function () { return [{ type: i1.AppState }, { type: i2.ActivatedRoute }, { type: i3.Title }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBZ0I3RCxNQUFNLE9BQU8sVUFBVTtJQUtuQixZQUFtQixNQUFnQixFQUFVLGVBQStCLEVBQVUsYUFBb0I7UUFBdkYsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFPO1FBSG5HLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBQzdCLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBR2pDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLHlCQUF5QixFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxVQUFVO1FBQ2pDLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7WUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUM7U0FDeEY7SUFDTCxDQUFDO0lBRUQ7Ozs7a0VBSThEO0lBQ3RELHFCQUFxQixDQUFDLFVBQVU7UUFDcEMsSUFBSSxVQUFVLEVBQUU7WUFDWixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRCxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07Z0JBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDOUIsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxVQUFVO2dCQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQztTQUN4RjtJQUNMLENBQUM7SUFFTyx1QkFBdUI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pGO0lBQ0wsQ0FBQzs7dUdBaERRLFVBQVU7MkZBQVYsVUFBVSxrRENqQnZCLDZXQU1NOzJGRFdPLFVBQVU7a0JBTnRCLFNBQVM7K0JBQ0ksWUFBWSxpQkFDUCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFwcFN0YXRlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7IEVudk9wdGlvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcblxyXG5kZWNsYXJlIHZhciBteWNvbmZpZzogRW52T3B0aW9ucztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYnJlYWRjcnVtYlwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHN0eWxlVXJsczogW1wiLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWIge1xyXG5cclxuICAgIHB1YmxpYyBhY3RpdmVQYWdlVGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBwdWJsaWMgc3ViQWN0aXZlTGlua3M6IHN0cmluZ1tdID0gW107XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgX3RpdGxlU2VydmljZTogVGl0bGUpIHtcclxuICAgICAgICB0aGlzLl9zdGF0ZS5zdWJzY3JpYmUoXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCAoYWN0aXZlTGluaykgPT4gdGhpcy5hZGp1c3ROYXZpZ2F0aW9uVG8oYWN0aXZlTGluaykpO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIsIChhY3RpdmVMaW5rKSA9PiB0aGlzLmFkanVzdFN1Yk5hdmlnYXRpb25UbyhhY3RpdmVMaW5rKSk7XHJcbiAgICAgICAgdGhpcy5fc3RhdGUuc3Vic2NyaWJlKFwibWVudS5yZW1vdmVMYXN0U3ViTmF2aWdhdGlvblwiLCAoKSA9PiB0aGlzLnJlbW92ZUxhc3RTdWJOYXZpZ2F0aW9uKCkpO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuY2xlYW51cFN1Yk5hdmlnYXRpb25cIiwgKCkgPT4gdGhpcy5jbGVhbnVwU3ViTmF2aWdhdGlvbigpKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHJpdmF0ZSBhZGp1c3ROYXZpZ2F0aW9uVG8oYWN0aXZlTGluaykge1xyXG4gICAgICAgIGlmIChhY3RpdmVMaW5rKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViQWN0aXZlTGlua3MgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQYWdlVGl0bGUgPSBhY3RpdmVMaW5rO1xyXG4gICAgICAgICAgICB0aGlzLl90aXRsZVNlcnZpY2Uuc2V0VGl0bGUobXljb25maWcuQXBwRGF0YS5Nb2R1bGVEZXNjcmlwdGlvbiArIFwiID4gXCIgKyBhY3RpdmVMaW5rKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qR2VzdGlvbmUgZGVsbGEgbmF2aWdhemlvbmUgaW50ZXJuYTpcclxuICAgICAgICAgRXNzZW56aWFsbWVudGUgY29udHJvbGxvIHNlIGxhIGxpc3RhIGRpIHN1Ym5hdmlnYXRpb24gZ2nDoCBjb250aWVuZSBsJ2VsZW1lbnRvIGluIGN1aSBzb25vIG9yYSxcclxuICAgICAgICAgc2UgbG8gY29udGllbmUgZ2nDoCBzaWduaWZpY2EgY2hlIGNpIHNvbm8gdG9ybmF0byBzb3ByYSBwcmVtZW5kbyBiYWNrKGJyb3dzZXIgbyBwYWdpbmEpLCBxdWluZGlcclxuICAgICAgICAgZWxpbWlubyBsJ3VsdGltbyBlbGVtZW50byBkZWxsYSBsaXN0YSBwZXIgcmlzdGFiaWxpcmUgbGEgc2l0dWF6aW9uZSwgc2UgaW52ZWNlIGwnZWxlbWVudG8gbm9uIGVzaXN0ZVxyXG4gICAgICAgICB2dW9sIGRpcmUgY2hlIGNpIGhvIG5hdmlnYXRvIHNvcHJhLCBxdWluZGkgbG8gYWdnaXVuZ28uKi9cclxuICAgIHByaXZhdGUgYWRqdXN0U3ViTmF2aWdhdGlvblRvKGFjdGl2ZUxpbmspIHtcclxuICAgICAgICBpZiAoYWN0aXZlTGluaykge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLnN1YkFjdGl2ZUxpbmtzLmluZGV4T2YoYWN0aXZlTGluayk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCAhPSAtMSAmJiAoaW5kZXggKyAxKSAhPSB0aGlzLnN1YkFjdGl2ZUxpbmtzLmxlbmd0aClcclxuICAgICAgICAgICAgICAgIHRoaXMuc3ViQWN0aXZlTGlua3MucG9wKCk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA9PSAtMSAmJiB0aGlzLmFjdGl2ZVBhZ2VUaXRsZSAhPSBhY3RpdmVMaW5rKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJBY3RpdmVMaW5rcy5wdXNoKGFjdGl2ZUxpbmspO1xyXG4gICAgICAgICAgICB0aGlzLl90aXRsZVNlcnZpY2Uuc2V0VGl0bGUobXljb25maWcuQXBwRGF0YS5Nb2R1bGVEZXNjcmlwdGlvbiArIFwiID4gXCIgKyBhY3RpdmVMaW5rKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByaXZhdGUgcmVtb3ZlTGFzdFN1Yk5hdmlnYXRpb24oKSB7XHJcbiAgICAgICAgdGhpcy5zdWJBY3RpdmVMaW5rcy5wb3AoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHJpdmF0ZSBjbGVhbnVwU3ViTmF2aWdhdGlvbigpIHtcclxuICAgICAgICB0aGlzLnN1YkFjdGl2ZUxpbmtzID0gW107XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlUGFnZVRpdGxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZVRpdGxlID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZmlyc3RDaGlsZC5kYXRhW1widGl0bGVcIl07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+XHJcbiAgICA8b2wgY2xhc3M9XCJicmVhZGNydW1iXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIGZhIGZhLWhvbWUgbS10LTNcIj48L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbSBhY3RpdmUgdGV4dC11cHBlcmNhc2VcIj57eyBhY3RpdmVQYWdlVGl0bGUgfX08L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbSBhY3RpdmUgdGV4dC11cHBlcmNhc2UgZTJlTGVhZlBhZ2VcIiAqbmdGb3I9XCJsZXQgbGluayBvZiBzdWJBY3RpdmVMaW5rc1wiPnt7IGxpbmsgfX08L2xpPlxyXG4gICAgPC9vbD5cclxuPC9kaXY+Il19
|