@esfaenza/core 16.2.28 → 19.2.2
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/back-top/back-top.component.d.ts +12 -12
- package/components/base/base.component.d.ts +26 -26
- package/components/base/embedding.component.d.ts +22 -22
- package/components/base/reactive.component.d.ts +9 -9
- package/components/breadcrumb/breadcrumb.component.d.ts +26 -26
- package/components/components.module.d.ts +32 -32
- package/components/error/404/pagenotfound.component.d.ts +15 -15
- package/components/error/500/servererror.component.d.ts +20 -20
- package/components/error/Angular/angularerror.component.d.ts +25 -25
- package/components/es-image-cropper/es-image-cropper.component.d.ts +25 -25
- package/components/es-modal/es-modal-head/es-modal-head.component.d.ts +11 -11
- package/components/es-modal/es-modal.component.d.ts +18 -18
- package/components/external-page/external_pages.component.d.ts +21 -21
- package/components/index.d.ts +5 -5
- package/components/jace-login/jace-login.component.d.ts +8 -8
- package/components/jace-resource/jace-resource.component.d.ts +25 -25
- package/components/labeled-span/labeled-span.component.d.ts +11 -11
- package/components/navbar/navbar.component.d.ts +58 -58
- package/components/navbar/navbar.component.loc.d.ts +8 -8
- package/components/page/pages.component.d.ts +23 -23
- package/components/public-api.d.ts +21 -21
- package/components/redirecter/redirecter.component.d.ts +23 -23
- package/components/sidebar/sidebar.component.d.ts +64 -64
- package/components/sidebar/sidebar.component.loc.d.ts +8 -8
- package/components/user_infos/user_infos.component.d.ts +50 -50
- package/components/user_infos/user_infos.component.loc.d.ts +8 -8
- package/directives/componentHost/componentHost.directive.d.ts +12 -12
- package/directives/directives.module.d.ts +12 -12
- package/directives/draggable/draggable.directive.d.ts +13 -13
- package/directives/es-modal/es-modal.directive.d.ts +20 -20
- package/directives/es-routerLink/es-routerLink.directive.d.ts +13 -13
- package/directives/index.d.ts +5 -5
- package/directives/public-api.d.ts +7 -7
- package/directives/slim-scroll/slim-scroll.directive.d.ts +15 -15
- package/directives/widget/widget.directive.d.ts +9 -9
- package/domain/index.d.ts +5 -5
- package/domain/models/core/ApplicationJob.d.ts +12 -12
- package/domain/models/core/ApplicationMenu.d.ts +16 -16
- package/domain/models/core/ApplicationRoutes.d.ts +2 -2
- package/domain/models/core/EnvOptions.d.ts +15 -15
- package/domain/models/core/GenericItem.d.ts +10 -10
- package/domain/models/core/KeyValue.d.ts +5 -5
- package/domain/models/global_search/SaerchResultContainer.d.ts +5 -5
- package/domain/models/global_search/SearchResult.d.ts +10 -10
- package/domain/models/jace/AccountScope.d.ts +9 -9
- package/domain/models/jace/ActiveModuleView.d.ts +11 -11
- package/domain/models/jace/CategoriesWithModules.d.ts +6 -6
- package/domain/models/jace/JaceAccount.d.ts +17 -17
- package/domain/models/jace/JaceIdentity.d.ts +17 -17
- package/domain/models/jace/JaceModule.d.ts +8 -8
- package/domain/models/jace/JacePermission.d.ts +10 -10
- package/domain/models/jace/JaceRole.d.ts +13 -13
- package/domain/models/jace/JaceUser.d.ts +9 -9
- package/domain/models/user/UpdateAccountRecoverySettingsDto.d.ts +5 -5
- package/domain/models/user/UpdatePasswordDto.d.ts +9 -9
- package/domain/models/user/UpdateProfilePictureDto.d.ts +4 -4
- package/domain/models/user/UserAccount.d.ts +23 -23
- package/domain/public-api.d.ts +22 -22
- package/domain/tokens.d.ts +22 -22
- package/fesm2022/esfaenza-core-components.mjs +1492 -1480
- package/fesm2022/esfaenza-core-components.mjs.map +1 -1
- package/fesm2022/esfaenza-core-directives.mjs +269 -269
- package/fesm2022/esfaenza-core-directives.mjs.map +1 -1
- package/fesm2022/esfaenza-core-domain.mjs +153 -153
- package/fesm2022/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2022/esfaenza-core-helpers.mjs +38 -38
- package/fesm2022/esfaenza-core-helpers.mjs.map +1 -1
- package/fesm2022/esfaenza-core-modules.mjs +128 -134
- package/fesm2022/esfaenza-core-modules.mjs.map +1 -1
- package/fesm2022/esfaenza-core-pipes.mjs +96 -96
- package/fesm2022/esfaenza-core-pipes.mjs.map +1 -1
- package/fesm2022/esfaenza-core-services.mjs +1760 -1754
- package/fesm2022/esfaenza-core-services.mjs.map +1 -1
- package/fesm2022/esfaenza-core.mjs +206 -230
- package/fesm2022/esfaenza-core.mjs.map +1 -1
- package/helpers/classes/ResizeListener.d.ts +12 -12
- package/helpers/index.d.ts +5 -5
- package/helpers/public-api.d.ts +1 -1
- package/index.d.ts +5 -5
- package/lib/app.component.d.ts +13 -13
- package/lib/core.module.d.ts +85 -86
- package/modules/classes/_base.module.d.ts +4 -4
- package/modules/classes/_embedding.module.d.ts +11 -11
- package/modules/classes/_shared.module.d.ts +28 -29
- package/modules/classes/t_c.module.d.ts +18 -19
- package/modules/index.d.ts +5 -5
- package/modules/public-api.d.ts +4 -4
- package/package.json +84 -104
- package/pipes/classes/included_in.pipe.d.ts +7 -7
- package/pipes/classes/safe_html.pipe.d.ts +10 -10
- package/pipes/classes/safe_script.pipe.d.ts +10 -10
- package/pipes/classes/safe_style.pipe.d.ts +10 -10
- package/pipes/classes/safe_url.pipe.d.ts +10 -10
- package/pipes/index.d.ts +5 -5
- package/pipes/pipes.module.d.ts +11 -11
- package/pipes/public-api.d.ts +6 -6
- package/public-api.d.ts +2 -2
- package/services/classes/app.accesstoken.d.ts +17 -17
- package/services/classes/app.completedjobredirection.d.ts +12 -12
- package/services/classes/app.errorhandler.d.ts +11 -11
- package/services/classes/app.event.d.ts +10 -10
- package/services/classes/app.globalsearch.d.ts +25 -25
- package/services/classes/app.httpextensions.d.ts +34 -34
- package/services/classes/app.httpextensions.loc.d.ts +8 -8
- package/services/classes/app.menufilter.d.ts +14 -14
- package/services/classes/app.routeguard.d.ts +10 -10
- package/services/classes/app.session.d.ts +15 -15
- package/services/classes/app.state.d.ts +55 -55
- package/services/classes/preferences/app.cache.persistor.d.ts +25 -25
- package/services/classes/preferences/app.preference.persistor.d.ts +25 -25
- package/services/classes/preferences/user/app.userpreferences.base.d.ts +25 -25
- package/services/index.d.ts +5 -5
- package/services/public-api.d.ts +13 -13
- package/theme/initial.scss +17 -7
- package/esm2022/components/back-top/back-top.component.mjs +0 -43
- package/esm2022/components/base/base.component.mjs +0 -67
- package/esm2022/components/base/embedding.component.mjs +0 -64
- package/esm2022/components/base/reactive.component.mjs +0 -28
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -80
- package/esm2022/components/components.module.mjs +0 -97
- package/esm2022/components/error/404/pagenotfound.component.mjs +0 -36
- package/esm2022/components/error/500/servererror.component.mjs +0 -47
- package/esm2022/components/error/Angular/angularerror.component.mjs +0 -62
- package/esm2022/components/es-image-cropper/es-image-cropper.component.mjs +0 -82
- package/esm2022/components/es-modal/es-modal-head/es-modal-head.component.mjs +0 -22
- package/esm2022/components/es-modal/es-modal.component.mjs +0 -40
- package/esm2022/components/esfaenza-core-components.mjs +0 -5
- package/esm2022/components/external-page/external_pages.component.mjs +0 -48
- package/esm2022/components/jace-login/jace-login.component.mjs +0 -31
- package/esm2022/components/jace-resource/jace-resource.component.mjs +0 -68
- package/esm2022/components/labeled-span/labeled-span.component.mjs +0 -25
- package/esm2022/components/navbar/navbar.component.loc.mjs +0 -41
- package/esm2022/components/navbar/navbar.component.mjs +0 -223
- package/esm2022/components/page/pages.component.mjs +0 -60
- package/esm2022/components/public-api.mjs +0 -22
- package/esm2022/components/redirecter/redirecter.component.mjs +0 -65
- package/esm2022/components/sidebar/sidebar.component.loc.mjs +0 -39
- package/esm2022/components/sidebar/sidebar.component.mjs +0 -286
- package/esm2022/components/user_infos/user_infos.component.loc.mjs +0 -43
- package/esm2022/components/user_infos/user_infos.component.mjs +0 -148
- package/esm2022/directives/componentHost/componentHost.directive.mjs +0 -29
- package/esm2022/directives/directives.module.mjs +0 -21
- package/esm2022/directives/draggable/draggable.directive.mjs +0 -49
- package/esm2022/directives/es-modal/es-modal.directive.mjs +0 -79
- package/esm2022/directives/es-routerLink/es-routerLink.directive.mjs +0 -55
- package/esm2022/directives/esfaenza-core-directives.mjs +0 -5
- package/esm2022/directives/public-api.mjs +0 -8
- package/esm2022/directives/slim-scroll/slim-scroll.directive.mjs +0 -41
- package/esm2022/directives/widget/widget.directive.mjs +0 -37
- package/esm2022/domain/esfaenza-core-domain.mjs +0 -5
- package/esm2022/domain/models/core/ApplicationJob.mjs +0 -3
- package/esm2022/domain/models/core/ApplicationMenu.mjs +0 -26
- package/esm2022/domain/models/core/ApplicationRoutes.mjs +0 -3
- package/esm2022/domain/models/core/EnvOptions.mjs +0 -13
- package/esm2022/domain/models/core/GenericItem.mjs +0 -12
- package/esm2022/domain/models/core/KeyValue.mjs +0 -15
- package/esm2022/domain/models/global_search/SaerchResultContainer.mjs +0 -6
- package/esm2022/domain/models/global_search/SearchResult.mjs +0 -8
- package/esm2022/domain/models/jace/AccountScope.mjs +0 -8
- package/esm2022/domain/models/jace/ActiveModuleView.mjs +0 -6
- package/esm2022/domain/models/jace/CategoriesWithModules.mjs +0 -7
- package/esm2022/domain/models/jace/JaceAccount.mjs +0 -3
- package/esm2022/domain/models/jace/JaceIdentity.mjs +0 -15
- package/esm2022/domain/models/jace/JaceModule.mjs +0 -10
- package/esm2022/domain/models/jace/JacePermission.mjs +0 -3
- package/esm2022/domain/models/jace/JaceRole.mjs +0 -9
- package/esm2022/domain/models/jace/JaceUser.mjs +0 -3
- package/esm2022/domain/models/user/UpdateAccountRecoverySettingsDto.mjs +0 -7
- package/esm2022/domain/models/user/UpdatePasswordDto.mjs +0 -11
- package/esm2022/domain/models/user/UpdateProfilePictureDto.mjs +0 -6
- package/esm2022/domain/models/user/UserAccount.mjs +0 -3
- package/esm2022/domain/public-api.mjs +0 -23
- package/esm2022/domain/tokens.mjs +0 -17
- package/esm2022/esfaenza-core.mjs +0 -5
- package/esm2022/helpers/classes/ResizeListener.mjs +0 -38
- package/esm2022/helpers/esfaenza-core-helpers.mjs +0 -5
- package/esm2022/helpers/public-api.mjs +0 -2
- package/esm2022/lib/app.component.mjs +0 -34
- package/esm2022/lib/core.module.mjs +0 -258
- package/esm2022/modules/classes/_base.module.mjs +0 -32
- package/esm2022/modules/classes/_embedding.module.mjs +0 -27
- package/esm2022/modules/classes/_shared.module.mjs +0 -47
- package/esm2022/modules/classes/t_c.module.mjs +0 -85
- package/esm2022/modules/esfaenza-core-modules.mjs +0 -5
- package/esm2022/modules/public-api.mjs +0 -5
- package/esm2022/pipes/classes/included_in.pipe.mjs +0 -20
- package/esm2022/pipes/classes/safe_html.pipe.mjs +0 -21
- package/esm2022/pipes/classes/safe_script.pipe.mjs +0 -21
- package/esm2022/pipes/classes/safe_style.pipe.mjs +0 -21
- package/esm2022/pipes/classes/safe_url.pipe.mjs +0 -21
- package/esm2022/pipes/esfaenza-core-pipes.mjs +0 -5
- package/esm2022/pipes/pipes.module.mjs +0 -20
- package/esm2022/pipes/public-api.mjs +0 -7
- package/esm2022/public-api.mjs +0 -3
- package/esm2022/services/classes/app.accesstoken.mjs +0 -1042
- package/esm2022/services/classes/app.completedjobredirection.mjs +0 -18
- package/esm2022/services/classes/app.errorhandler.mjs +0 -41
- package/esm2022/services/classes/app.event.mjs +0 -27
- package/esm2022/services/classes/app.globalsearch.mjs +0 -34
- package/esm2022/services/classes/app.httpextensions.loc.mjs +0 -15
- package/esm2022/services/classes/app.httpextensions.mjs +0 -90
- package/esm2022/services/classes/app.menufilter.mjs +0 -21
- package/esm2022/services/classes/app.routeguard.mjs +0 -23
- package/esm2022/services/classes/app.session.mjs +0 -40
- package/esm2022/services/classes/app.state.mjs +0 -229
- package/esm2022/services/classes/preferences/app.cache.persistor.mjs +0 -94
- package/esm2022/services/classes/preferences/app.preference.persistor.mjs +0 -94
- package/esm2022/services/classes/preferences/user/app.userpreferences.base.mjs +0 -101
- package/esm2022/services/esfaenza-core-services.mjs +0 -5
- package/esm2022/services/public-api.mjs +0 -14
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Component, ViewChild } from "@angular/core";
|
|
3
|
-
import { NgFor, NgIf } from "@angular/common";
|
|
4
|
-
import { FormsModule } from "@angular/forms";
|
|
5
|
-
// Configurazioni
|
|
6
|
-
import { ExtensionsModule } from "@esfaenza/extensions";
|
|
7
|
-
import { LocalizationModule, LocalizationService } from "@esfaenza/localizations";
|
|
8
|
-
// Classi
|
|
9
|
-
import { UpdatePasswordDto } from "@esfaenza/core/domain";
|
|
10
|
-
import { FormsAndValidationsModule } from "@esfaenza/forms-and-validations";
|
|
11
|
-
import { BaseComponent } from "../base/base.component";
|
|
12
|
-
import { UserInfoComponentLoc } from "./user_infos.component.loc";
|
|
13
|
-
import { AccessControlModule } from "@esfaenza/access-control";
|
|
14
|
-
import { MatTooltipModule } from "@angular/material/tooltip";
|
|
15
|
-
import { EsModalComponent } from "../es-modal/es-modal.component";
|
|
16
|
-
import { EsModalHeadComponent } from "../es-modal/es-modal-head/es-modal-head.component";
|
|
17
|
-
import { LabeledSpanComponent } from "../labeled-span/labeled-span.component";
|
|
18
|
-
import { EsImageCropperComponent } from "../public-api";
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@esfaenza/core/services";
|
|
21
|
-
import * as i2 from "@esfaenza/extensions";
|
|
22
|
-
import * as i3 from "@esfaenza/localizations";
|
|
23
|
-
import * as i4 from "@angular/forms";
|
|
24
|
-
import * as i5 from "@esfaenza/forms-and-validations";
|
|
25
|
-
import * as i6 from "@esfaenza/access-control";
|
|
26
|
-
import * as i7 from "@angular/material/tooltip";
|
|
27
|
-
export class UserInfosComponent extends BaseComponent {
|
|
28
|
-
constructor(inj, tks, msgExts, expExts, utiExts, lc, _state, profile) {
|
|
29
|
-
super(inj);
|
|
30
|
-
this.inj = inj;
|
|
31
|
-
this.tks = tks;
|
|
32
|
-
this.msgExts = msgExts;
|
|
33
|
-
this.expExts = expExts;
|
|
34
|
-
this.utiExts = utiExts;
|
|
35
|
-
this.lc = lc;
|
|
36
|
-
this._state = _state;
|
|
37
|
-
this.profile = profile;
|
|
38
|
-
this.UpdateProfilePictureDTO = null;
|
|
39
|
-
this.UpdateRecoverySettingsDTO = null;
|
|
40
|
-
this.UpdatePasswordDTO = null;
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
this.getAccountDetails();
|
|
44
|
-
}
|
|
45
|
-
async getAccountDetails() {
|
|
46
|
-
// Recupero le informazioni Account partendo dalla identity
|
|
47
|
-
let identity = this.tks.getJaceIdentity();
|
|
48
|
-
if (identity) {
|
|
49
|
-
this.AccountRoles = identity.Roles;
|
|
50
|
-
this.AccountPermissions = identity.Permissions;
|
|
51
|
-
this.AccountDetails = await this.profile.getAccountProfile();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
onShowAccountRoles() {
|
|
55
|
-
this.dlgShowAccountRoles.show();
|
|
56
|
-
}
|
|
57
|
-
onUpdateProfilePicture() {
|
|
58
|
-
this.UpdateProfilePictureDTO = null;
|
|
59
|
-
requestAnimationFrame(() => {
|
|
60
|
-
this.UpdateProfilePictureDTO = { image: null };
|
|
61
|
-
this.dlgUpdateProfilePicture.show();
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
async doUpdateProfilePicture() {
|
|
65
|
-
let res = await this.profile.doUpdateProfilePicture(new File([this.imageCropper.OutputImage], "profile.png"));
|
|
66
|
-
this.msgExts.manageCallResultResponse(res, "Modifica eseguita con Successo", "Errori nella modifica", () => {
|
|
67
|
-
this.dlgUpdateProfilePicture.hide();
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
//#endregion
|
|
71
|
-
//#region Delete Profile Picture
|
|
72
|
-
onDeleteProfilePicture() {
|
|
73
|
-
this.msgExts.simpleWarningWithChoice("Conferma eliminazione", "Si e' certi di voler rimuovere l'immagine profilo?", () => {
|
|
74
|
-
this.doDeleteProfilePicture();
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
async doDeleteProfilePicture() {
|
|
78
|
-
let res = await this.profile.doDeleteProfilePicture();
|
|
79
|
-
this.msgExts.manageCallResultResponse(res, "Immagine profilo rimossa con successo", "Errori nella rimozione della immagine profilo", () => {
|
|
80
|
-
this.dlgUpdateProfilePicture.hide();
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
onUpdateRecoverySettings() {
|
|
84
|
-
this.UpdateRecoverySettingsDTO = null;
|
|
85
|
-
requestAnimationFrame(() => {
|
|
86
|
-
this.UpdateRecoverySettingsDTO = { email: this.AccountDetails.recoveryemail };
|
|
87
|
-
this.dlgUpdateRecoverySettings.show();
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
async doUpdateRecoverySettings() {
|
|
91
|
-
let res = await this.profile.doUpdateRecoverySettings(this.UpdateRecoverySettingsDTO.email);
|
|
92
|
-
this.msgExts.manageCallResultResponse(res, "Modifica eseguita con Successo", "Errori nella modifica", () => {
|
|
93
|
-
this.getAccountDetails();
|
|
94
|
-
this.dlgUpdateRecoverySettings.hide();
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
onUpdatePassword() {
|
|
98
|
-
this.UpdatePasswordDTO = null;
|
|
99
|
-
requestAnimationFrame(() => {
|
|
100
|
-
this.CustomError = "";
|
|
101
|
-
this.UpdatePasswordDTO = new UpdatePasswordDto();
|
|
102
|
-
this.dlgUpdatePassword.show();
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
async doUpdatePassword() {
|
|
106
|
-
if (this.UpdatePasswordDTO.newpwd != this.UpdatePasswordDTO.confirmpwd)
|
|
107
|
-
this.CustomError = "Le password inserite non coincidono.";
|
|
108
|
-
else {
|
|
109
|
-
let res = await this.profile.doUpdatePassword(this.UpdatePasswordDTO.oldpwd, this.UpdatePasswordDTO.newpwd, this.UpdatePasswordDTO.confirmpwd);
|
|
110
|
-
this.msgExts.manageCallResultResponse(res, "Password modificata con Successo", "Errori nella modifica della Password", () => { this.dlgUpdatePassword.hide(); });
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserInfosComponent, deps: [{ token: i0.Injector }, { token: i1.TokenService }, { token: i2.MessageService }, { token: i2.ExportService }, { token: i2.UtilityService }, { token: i3.LocalizationService }, { token: i1.AppState }, { token: i1.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserInfosComponent, isStandalone: true, selector: "user-infos", viewQueries: [{ propertyName: "dlgShowAccountRoles", first: true, predicate: ["dlgShowAccountRoles"], descendants: true }, { propertyName: "dlgUpdateProfilePicture", first: true, predicate: ["dlgUpdateProfilePicture"], descendants: true }, { propertyName: "imageCropper", first: true, predicate: ["imageCropper"], descendants: true }, { propertyName: "dlgUpdateRecoverySettings", first: true, predicate: ["dlgUpdateRecoverySettings"], descendants: true }, { propertyName: "dlgUpdatePassword", first: true, predicate: ["dlgUpdatePassword"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.tenantid}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}: </strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'XL'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">Carica immagine</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body d-flex\">\r\n <div style=\"margin: auto;\">\r\n <es-image-cropper #imageCropper [Height]=\"600\" [Width]=\"800\"></es-image-cropper>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgUpdateProfilePicture.hide()\">Annulla</button>\r\n <button type=\"submit\" class=\"btn btn-primary\" (click)=\"doUpdateProfilePicture()\">Conferma</button>\r\n </div>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242d3a;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer;width:auto}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsAndValidationsModule }, { kind: "component", type: i5.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i3.LocalizePipe, name: "localize" }, { kind: "component", type: EsModalComponent, selector: "es-modal", inputs: ["Size", "IgnoreBackdrop", "Backdrop", "HasOverlap"], outputs: ["onShow", "onHide"] }, { kind: "component", type: EsModalHeadComponent, selector: "es-modal-head", outputs: ["Close"] }, { kind: "component", type: EsImageCropperComponent, selector: "es-image-cropper", inputs: ["Height", "Width"] }, { kind: "component", type: LabeledSpanComponent, selector: "labeled-span", inputs: ["First", "Label", "Display"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i6.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }] }); }
|
|
115
|
-
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserInfosComponent, decorators: [{
|
|
117
|
-
type: Component,
|
|
118
|
-
args: [{ selector: "user-infos", viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }], standalone: true, imports: [
|
|
119
|
-
FormsModule,
|
|
120
|
-
FormsAndValidationsModule,
|
|
121
|
-
NgIf,
|
|
122
|
-
NgFor,
|
|
123
|
-
LocalizationModule,
|
|
124
|
-
EsModalComponent,
|
|
125
|
-
EsModalHeadComponent,
|
|
126
|
-
EsImageCropperComponent,
|
|
127
|
-
LabeledSpanComponent,
|
|
128
|
-
ExtensionsModule,
|
|
129
|
-
AccessControlModule,
|
|
130
|
-
MatTooltipModule
|
|
131
|
-
], template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.tenantid}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}: </strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'XL'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">Carica immagine</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body d-flex\">\r\n <div style=\"margin: auto;\">\r\n <es-image-cropper #imageCropper [Height]=\"600\" [Width]=\"800\"></es-image-cropper>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgUpdateProfilePicture.hide()\">Annulla</button>\r\n <button type=\"submit\" class=\"btn btn-primary\" (click)=\"doUpdateProfilePicture()\">Conferma</button>\r\n </div>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242d3a;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer;width:auto}\n"] }]
|
|
132
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TokenService }, { type: i2.MessageService }, { type: i2.ExportService }, { type: i2.UtilityService }, { type: i3.LocalizationService }, { type: i1.AppState }, { type: i1.UserPreferencesService }]; }, propDecorators: { dlgShowAccountRoles: [{
|
|
133
|
-
type: ViewChild,
|
|
134
|
-
args: ["dlgShowAccountRoles"]
|
|
135
|
-
}], dlgUpdateProfilePicture: [{
|
|
136
|
-
type: ViewChild,
|
|
137
|
-
args: ["dlgUpdateProfilePicture"]
|
|
138
|
-
}], imageCropper: [{
|
|
139
|
-
type: ViewChild,
|
|
140
|
-
args: ['imageCropper']
|
|
141
|
-
}], dlgUpdateRecoverySettings: [{
|
|
142
|
-
type: ViewChild,
|
|
143
|
-
args: ["dlgUpdateRecoverySettings"]
|
|
144
|
-
}], dlgUpdatePassword: [{
|
|
145
|
-
type: ViewChild,
|
|
146
|
-
args: ["dlgUpdatePassword"]
|
|
147
|
-
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcl9pbmZvcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3VzZXJfaW5mb3MvdXNlcl9pbmZvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3VzZXJfaW5mb3MvdXNlcl9pbmZvcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBWSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQWtDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEYsU0FBUztBQUNULE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBVyx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUl0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQXVCeEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFLakQsWUFBb0IsR0FBYSxFQUFVLEdBQWlCLEVBQVMsT0FBdUIsRUFBUyxPQUFzQixFQUN4RyxPQUF1QixFQUFTLEVBQXVCLEVBQVMsTUFBZ0IsRUFDaEYsT0FBK0I7UUFDOUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBSEssUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDeEcsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDaEYsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUE2QjNDLDRCQUF1QixHQUF1QixJQUFJLENBQUM7UUFtQ25ELDhCQUF5QixHQUFzQixJQUFJLENBQUM7UUFxQnBELHNCQUFpQixHQUFzQixJQUFJLENBQUM7SUFuRm5ELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUI7UUFDMUIsMkRBQTJEO1FBQzNELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUMsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUNoRTtJQUNMLENBQUM7SUFLRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQVFNLHNCQUFzQjtRQUN6QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtZQUN2QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0I7UUFDL0IsSUFBSSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLGdDQUFnQyxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtZQUN2RyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsWUFBWTtJQUVaLGdDQUFnQztJQUN6QixzQkFBc0I7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsRUFBRSxvREFBb0QsRUFBRSxHQUFHLEVBQUU7WUFDckgsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQjtRQUMvQixJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSx1Q0FBdUMsRUFBRSwrQ0FBK0MsRUFBRSxHQUFHLEVBQUU7WUFDdEksSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQU9NLHdCQUF3QjtRQUMzQixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtZQUN2QixJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5RSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLHdCQUF3QjtRQUNqQyxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLGdDQUFnQyxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtZQUN2RyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBUU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDekIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO1lBQ2xFLElBQUksQ0FBQyxXQUFXLEdBQUcsc0NBQXNDLENBQUM7YUFDekQ7WUFDRCxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvSSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsRUFBRSxzQ0FBc0MsRUFDakgsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMzQyxDQUFDO1NBQ0w7SUFDTCxDQUFDOytHQWpIUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwrb0JDN0MvQixzNE5BK0dXLGk0QkRoRkgsV0FBVyxvL0JBQ1gseUJBQXlCLGdMQUN6QixJQUFJLDZGQUNKLEtBQUssa0hBQ0wsa0JBQWtCLDBGQUNsQixnQkFBZ0Isa0pBQ2hCLG9CQUFvQiw4RUFDcEIsdUJBQXVCLDBGQUN2QixvQkFBb0IsK0ZBQ3BCLGdCQUFnQiw4QkFDaEIsbUJBQW1CLHNJQUNuQixnQkFBZ0Isb0hBZEwsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQzs7NEZBaUJ4RSxrQkFBa0I7a0JBckI5QixTQUFTOytCQUNJLFlBQVksaUJBR1AsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxjQUNyRSxJQUFJLFdBQ1A7d0JBQ0wsV0FBVzt3QkFDWCx5QkFBeUI7d0JBQ3pCLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGdCQUFnQjtxQkFDbkI7OFNBNEJpQyxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQVFNLHVCQUF1QjtzQkFBNUQsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBQ1QsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQW1DZSx5QkFBeUI7c0JBQWhFLFNBQVM7dUJBQUMsMkJBQTJCO2dCQXFCTixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIEV4dGVuc2lvbnNNb2R1bGUsIE1lc3NhZ2VTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBVcGRhdGVQYXNzd29yZER0bywgVXNlckFjY291bnQgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcbmltcG9ydCB7IEFwcEZpbGUsIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2Zvcm1zLWFuZC12YWxpZGF0aW9uc1wiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIlxyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFwcFN0YXRlLCBUb2tlblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuaW1wb3J0IHsgVXNlckluZm9Db21wb25lbnRMb2MgfSBmcm9tIFwiLi91c2VyX2luZm9zLmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbE1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7IEVzTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi4vZXMtbW9kYWwvZXMtbW9kYWwuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzTW9kYWxIZWFkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2VzLW1vZGFsL2VzLW1vZGFsLWhlYWQvZXMtbW9kYWwtaGVhZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTGFiZWxlZFNwYW5Db21wb25lbnQgfSBmcm9tIFwiLi4vbGFiZWxlZC1zcGFuL2xhYmVsZWQtc3Bhbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRXNJbWFnZUNyb3BwZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vcHVibGljLWFwaVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJ1c2VyLWluZm9zXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJ1c2VyX2luZm9zLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vdXNlcl9pbmZvcy5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBVc2VySW5mb0NvbXBvbmVudExvYyB9XSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsIFxyXG4gICAgICAgIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUsIFxyXG4gICAgICAgIE5nSWYsXHJcbiAgICAgICAgTmdGb3IsXHJcbiAgICAgICAgTG9jYWxpemF0aW9uTW9kdWxlLCBcclxuICAgICAgICBFc01vZGFsQ29tcG9uZW50LCBcclxuICAgICAgICBFc01vZGFsSGVhZENvbXBvbmVudCxcclxuICAgICAgICBFc0ltYWdlQ3JvcHBlckNvbXBvbmVudCwgXHJcbiAgICAgICAgTGFiZWxlZFNwYW5Db21wb25lbnQsXHJcbiAgICAgICAgRXh0ZW5zaW9uc01vZHVsZSxcclxuICAgICAgICBBY2Nlc3NDb250cm9sTW9kdWxlLFxyXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJJbmZvc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gICAgcHVibGljIEFjY291bnREZXRhaWxzOiBVc2VyQWNjb3VudDtcclxuICAgIHB1YmxpYyBBY2NvdW50Um9sZXM6IHN0cmluZ1tdO1xyXG4gICAgcHVibGljIEFjY291bnRQZXJtaXNzaW9uczogc3RyaW5nW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmo6IEluamVjdG9yLCBwcml2YXRlIHRrczogVG9rZW5TZXJ2aWNlLCBwdWJsaWMgbXNnRXh0czogTWVzc2FnZVNlcnZpY2UsIHB1YmxpYyBleHBFeHRzOiBFeHBvcnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIHV0aUV4dHM6IFV0aWxpdHlTZXJ2aWNlLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIHByb2ZpbGU6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihpbmopO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZ2V0QWNjb3VudERldGFpbHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWNjb3VudERldGFpbHMoKSB7XHJcbiAgICAgICAgLy8gUmVjdXBlcm8gbGUgaW5mb3JtYXppb25pIEFjY291bnQgcGFydGVuZG8gZGFsbGEgaWRlbnRpdHlcclxuICAgICAgICBsZXQgaWRlbnRpdHkgPSB0aGlzLnRrcy5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICBpZiAoaWRlbnRpdHkpIHtcclxuICAgICAgICAgICAgdGhpcy5BY2NvdW50Um9sZXMgPSBpZGVudGl0eS5Sb2xlcztcclxuICAgICAgICAgICAgdGhpcy5BY2NvdW50UGVybWlzc2lvbnMgPSBpZGVudGl0eS5QZXJtaXNzaW9ucztcclxuICAgICAgICAgICAgdGhpcy5BY2NvdW50RGV0YWlscyA9IGF3YWl0IHRoaXMucHJvZmlsZS5nZXRBY2NvdW50UHJvZmlsZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyNyZWdpb24gU2hvdyBSb2xlcyBhbmQgUGVybWlzc2lvbnNcclxuICAgIEBWaWV3Q2hpbGQoXCJkbGdTaG93QWNjb3VudFJvbGVzXCIpIGRsZ1Nob3dBY2NvdW50Um9sZXM6IEVzTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gICAgb25TaG93QWNjb3VudFJvbGVzKCkge1xyXG4gICAgICAgIHRoaXMuZGxnU2hvd0FjY291bnRSb2xlcy5zaG93KCk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXBkYXRlIFByb2ZpbGUgUGljdHVyZVxyXG4gICAgQFZpZXdDaGlsZChcImRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlXCIpIGRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlOiBFc01vZGFsQ29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VDcm9wcGVyJykgaW1hZ2VDcm9wcGVyOiBFc0ltYWdlQ3JvcHBlckNvbXBvbmVudDtcclxuICAgIHB1YmxpYyBVcGRhdGVQcm9maWxlUGljdHVyZURUTzogeyBpbWFnZTogQXBwRmlsZSB9ID0gbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgb25VcGRhdGVQcm9maWxlUGljdHVyZSgpIHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPID0gbnVsbDtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPID0geyBpbWFnZTogbnVsbCB9O1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLnNob3coKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZG9VcGRhdGVQcm9maWxlUGljdHVyZSgpIHtcclxuICAgICAgICBsZXQgcmVzID0gYXdhaXQgdGhpcy5wcm9maWxlLmRvVXBkYXRlUHJvZmlsZVBpY3R1cmUobmV3IEZpbGUoW3RoaXMuaW1hZ2VDcm9wcGVyLk91dHB1dEltYWdlXSwgXCJwcm9maWxlLnBuZ1wiKSk7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZUNhbGxSZXN1bHRSZXNwb25zZShyZXMsIFwiTW9kaWZpY2EgZXNlZ3VpdGEgY29uIFN1Y2Nlc3NvXCIsIFwiRXJyb3JpIG5lbGxhIG1vZGlmaWNhXCIsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kbGdVcGRhdGVQcm9maWxlUGljdHVyZS5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gRGVsZXRlIFByb2ZpbGUgUGljdHVyZVxyXG4gICAgcHVibGljIG9uRGVsZXRlUHJvZmlsZVBpY3R1cmUoKSB7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmdXaXRoQ2hvaWNlKFwiQ29uZmVybWEgZWxpbWluYXppb25lXCIsIFwiU2kgZScgY2VydGkgZGkgdm9sZXIgcmltdW92ZXJlIGwnaW1tYWdpbmUgcHJvZmlsbz9cIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRvRGVsZXRlUHJvZmlsZVBpY3R1cmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZG9EZWxldGVQcm9maWxlUGljdHVyZSgpIHtcclxuICAgICAgICBsZXQgcmVzID0gYXdhaXQgdGhpcy5wcm9maWxlLmRvRGVsZXRlUHJvZmlsZVBpY3R1cmUoKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlQ2FsbFJlc3VsdFJlc3BvbnNlKHJlcywgXCJJbW1hZ2luZSBwcm9maWxvIHJpbW9zc2EgY29uIHN1Y2Nlc3NvXCIsIFwiRXJyb3JpIG5lbGxhIHJpbW96aW9uZSBkZWxsYSBpbW1hZ2luZSBwcm9maWxvXCIsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kbGdVcGRhdGVQcm9maWxlUGljdHVyZS5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXBkYXRlIFJlY292ZXJ5IEluZm9cclxuICAgIEBWaWV3Q2hpbGQoXCJkbGdVcGRhdGVSZWNvdmVyeVNldHRpbmdzXCIpIGRsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3M6IEVzTW9kYWxDb21wb25lbnQ7XHJcbiAgICBwdWJsaWMgVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUTzogeyBlbWFpbDogc3RyaW5nIH0gPSBudWxsO1xyXG5cclxuICAgIHB1YmxpYyBvblVwZGF0ZVJlY292ZXJ5U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgdGhpcy5VcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPID0gbnVsbDtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlVwZGF0ZVJlY292ZXJ5U2V0dGluZ3NEVE8gPSB7IGVtYWlsOiB0aGlzLkFjY291bnREZXRhaWxzLnJlY292ZXJ5ZW1haWwgfTtcclxuICAgICAgICAgICAgdGhpcy5kbGdVcGRhdGVSZWNvdmVyeVNldHRpbmdzLnNob3coKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZG9VcGRhdGVSZWNvdmVyeVNldHRpbmdzKCkge1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9VcGRhdGVSZWNvdmVyeVNldHRpbmdzKHRoaXMuVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUTy5lbWFpbCk7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZUNhbGxSZXN1bHRSZXNwb25zZShyZXMsIFwiTW9kaWZpY2EgZXNlZ3VpdGEgY29uIFN1Y2Nlc3NvXCIsIFwiRXJyb3JpIG5lbGxhIG1vZGlmaWNhXCIsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRBY2NvdW50RGV0YWlscygpO1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3MuaGlkZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFVwZGF0ZSBQYXNzd29yZFxyXG4gICAgQFZpZXdDaGlsZChcImRsZ1VwZGF0ZVBhc3N3b3JkXCIpIGRsZ1VwZGF0ZVBhc3N3b3JkOiBFc01vZGFsQ29tcG9uZW50O1xyXG4gICAgcHVibGljIFVwZGF0ZVBhc3N3b3JkRFRPOiBVcGRhdGVQYXNzd29yZER0byA9IG51bGw7XHJcbiAgICBDdXN0b21FcnJvcjogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBvblVwZGF0ZVBhc3N3b3JkKCkge1xyXG4gICAgICAgIHRoaXMuVXBkYXRlUGFzc3dvcmREVE8gPSBudWxsO1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuQ3VzdG9tRXJyb3IgPSBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLlVwZGF0ZVBhc3N3b3JkRFRPID0gbmV3IFVwZGF0ZVBhc3N3b3JkRHRvKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGxnVXBkYXRlUGFzc3dvcmQuc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1VwZGF0ZVBhc3N3b3JkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLlVwZGF0ZVBhc3N3b3JkRFRPLm5ld3B3ZCAhPSB0aGlzLlVwZGF0ZVBhc3N3b3JkRFRPLmNvbmZpcm1wd2QpXHJcbiAgICAgICAgICAgIHRoaXMuQ3VzdG9tRXJyb3IgPSBcIkxlIHBhc3N3b3JkIGluc2VyaXRlIG5vbiBjb2luY2lkb25vLlwiO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgcmVzID0gYXdhaXQgdGhpcy5wcm9maWxlLmRvVXBkYXRlUGFzc3dvcmQodGhpcy5VcGRhdGVQYXNzd29yZERUTy5vbGRwd2QsIHRoaXMuVXBkYXRlUGFzc3dvcmREVE8ubmV3cHdkLCB0aGlzLlVwZGF0ZVBhc3N3b3JkRFRPLmNvbmZpcm1wd2QpO1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlQ2FsbFJlc3VsdFJlc3BvbnNlKHJlcywgXCJQYXNzd29yZCBtb2RpZmljYXRhIGNvbiBTdWNjZXNzb1wiLCBcIkVycm9yaSBuZWxsYSBtb2RpZmljYSBkZWxsYSBQYXNzd29yZFwiLFxyXG4gICAgICAgICAgICAgICAgKCkgPT4geyB0aGlzLmRsZ1VwZGF0ZVBhc3N3b3JkLmhpZGUoKTsgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG59IiwiPGRpdiBzdHlsZT1cImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiBhdXRvO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWltZy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cInByb2ZpbGUuUHJvZmlsZVBpY3R1cmVcIiBhbHQ9XCJ1c2VyLWltZ1wiIGNsYXNzPVwidXNlci1pbWdcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLXBvaW50ZXIgdXNlci1pbWctYnRuXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW9wYWNpdHkgdXNlci1pbWctYnRuLWJvZHlcIiAoY2xpY2spPVwib25VcGRhdGVQcm9maWxlUGljdHVyZSgpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXBlblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtMTVcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIiAqbmdJZj1cIkFjY291bnREZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtYm9keSBhcHAtbm8tbWFyZ2luIGFwcC1wYWRkaW5nLTE1XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqYWM9XCInUjpKYWNlIEFkbWluJ1wiIGNsYXNzPVwidXNlci1yb2xlcy1idG5cIiBbbWF0VG9vbHRpcF09XCInVmlzdWFsaXp6YSBSdW9saSBlIFBlcm1lc3NpJ1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgKGNsaWNrKT1cIm9uU2hvd0FjY291bnRSb2xlcygpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1ib29rLXVzZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+PGxhYmVsZWQtc3BhbiBbTGFiZWxdPVwiJ1V0ZW50ZScgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy51c2VybmFtZX19PC9sYWJlbGVkLXNwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+PGxhYmVsZWQtc3BhbiBbTGFiZWxdPVwiJ1RlbmFudCcgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy50ZW5hbnRpZH19PC9sYWJlbGVkLXNwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGFwcC1tYXJnaW4tdG9wLTEwXCI+PGxhYmVsZWQtc3BhbiBbTGFiZWxdPVwiJ05vbWUnIHwgbG9jYWxpemUgOiBsY1wiIERpc3BsYXk9XCJWZXJ0aWNhbFwiPnt7QWNjb3VudERldGFpbHMuZmlyc3RuYW1lfX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgYXBwLW1hcmdpbi10b3AtMTBcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInQ29nbm9tZScgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy5sYXN0bmFtZX19PC9sYWJlbGVkLXNwYW4+IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW1hcmdpbi10b3AtMTBcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInRW1haWwnIHwgbG9jYWxpemUgOiBsY1wiIERpc3BsYXk9XCJWZXJ0aWNhbFwiPnt7QWNjb3VudERldGFpbHMucmVjb3ZlcnllbWFpbCB8fCAnTm9uIGRpc3BvbmliaWxlJ319PC9sYWJlbGVkLXNwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1tYXJnaW4tdG9wLTEwIHJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25VcGRhdGVQYXNzd29yZCgpXCI+TW9kaWZpY2EgUGFzc3dvcmQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncygpXCI+TW9kaWZpY2EgRW1haWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tVXBkYXRlIFBhc3N3b3JkLS0+XHJcbjxlcy1tb2RhbCAjZGxnVXBkYXRlUGFzc3dvcmQgW1NpemVdPVwiJ0wnXCI+XHJcbiAgICA8ZXMtbW9kYWwtaGVhZCAoQ2xvc2UpPVwiZGxnVXBkYXRlUGFzc3dvcmQuaGlkZSgpO1wiPlxyXG4gICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPk1vZGlmaWNhIFBhc3N3b3JkPC9oNT5cclxuICAgIDwvZXMtbW9kYWwtaGVhZD5cclxuICAgIDxmb3JtICpuZ0lmPVwiVXBkYXRlUGFzc3dvcmREVE9cIiAjZm9ybVVwZGF0ZVBhc3N3b3JkPVwibmdGb3JtXCIgKG5nU3VibWl0KT1cImZvcm1VcGRhdGVQYXNzd29yZC52YWxpZCAmJiBkb1VwZGF0ZVBhc3N3b3JkKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBsYXN0Zml4XCI+XHJcbiAgICAgICAgICAgIDxmb3JtLWlucHV0IFtQYXNzd29yZF09XCJ0cnVlXCIgW0xhYmVsXT1cIidQYXNzd29yZCcgfCBsb2NhbGl6ZTogbGNcIiBbKG5nTW9kZWwpXT1cIlVwZGF0ZVBhc3N3b3JkRFRPLm9sZHB3ZFwiIG5hbWU9XCJvbGRwd1wiIHJlcXVpcmVkPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgPGZvcm0taW5wdXQgW1Bhc3N3b3JkXT1cInRydWVcIiBbTGFiZWxdPVwiJ051b3ZhIFBhc3N3b3JkJyB8IGxvY2FsaXplOiBsY1wiIFsobmdNb2RlbCldPVwiVXBkYXRlUGFzc3dvcmREVE8ubmV3cHdkXCIgbmFtZT1cIm5ld3B3XCIgcmVxdWlyZWQ+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICA8Zm9ybS1pbnB1dCBbUGFzc3dvcmRdPVwidHJ1ZVwiIFtMYWJlbF09XCInQ29uZmVybWEgUGFzc3dvcmQnIHwgbG9jYWxpemU6IGxjXCIgWyhuZ01vZGVsKV09XCJVcGRhdGVQYXNzd29yZERUTy5jb25maXJtcHdkXCIgbmFtZT1cImNvbmZwd1wiIHJlcXVpcmVkPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgPCEtLVZhbGlkYXppb25lIEN1c3RvbS0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiQ3VzdG9tRXJyb3JcIiBjbGFzcz1cImFwcC13aGl0ZS10ZXh0IGFwcC1tYXJnaW4tdG9wLTE1IGFwcC1tYXJnaW4tYm90dG9tLTAgY2FyZCBhcHAtcGFkZGluZy0xMCBjYXJkLWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eydFcnJvcicgfCBsb2NhbGl6ZSA6IGxjfX06Jm5ic3A7PC9zdHJvbmc+e3tDdXN0b21FcnJvcn19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBhcHAtbWFyZ2luLXJpZ2h0LTEwXCIgKGNsaWNrKT1cImRsZ1VwZGF0ZVBhc3N3b3JkLmhpZGUoKTtcIj57eydDYW5jZWwnIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+Q29uZmVybWE8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuPC9lcy1tb2RhbD5cclxuXHJcbjwhLS1VcGRhdGUgRXh0cmEgSW5mby0tPlxyXG48ZXMtbW9kYWwgI2RsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3MgW1NpemVdPVwiJ0wnXCI+XHJcbiAgICA8ZXMtbW9kYWwtaGVhZCAoQ2xvc2UpPVwiZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncy5oaWRlKCk7XCI+XHJcbiAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+e3snTW9kaWZpY2EgRW1haWwnIHwgbG9jYWxpemUgOiBsY319PC9oNT5cclxuICAgIDwvZXMtbW9kYWwtaGVhZD5cclxuICAgIDxmb3JtICpuZ0lmPVwiVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUT1wiICNmb3JtVXBkYXRlSW5mb3M9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwiZm9ybVVwZGF0ZUluZm9zLnZhbGlkICYmIGRvVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncygpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbGFzdGZpeFwiPlxyXG4gICAgICAgICAgICA8Zm9ybS1pbnB1dCBbTGFiZWxJbnB1dFJhdGlvXT1cIiczIDknXCIgW0xhYmVsXT1cIidFbWFpbCcgfCBsb2NhbGl6ZTogbGNcIiBbKG5nTW9kZWwpXT1cIlVwZGF0ZVJlY292ZXJ5U2V0dGluZ3NEVE8uZW1haWxcIiBuYW1lPVwiZW1haWxcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGFwcC1tYXJnaW4tcmlnaHQtMTBcIiAoY2xpY2spPVwiZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncy5oaWRlKCk7XCI+e3snQ2FuY2VsJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPkNvbmZlcm1hPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZXMtbW9kYWw+XHJcblxyXG48IS0tVXBsb2FkIFBpY3R1cmUtLT5cclxuPGVzLW1vZGFsICNkbGdVcGRhdGVQcm9maWxlUGljdHVyZSBbU2l6ZV09XCInWEwnXCI+XHJcbiAgICA8ZXMtbW9kYWwtaGVhZCAoQ2xvc2UpPVwiZGxnVXBkYXRlUHJvZmlsZVBpY3R1cmUuaGlkZSgpO1wiPlxyXG4gICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPkNhcmljYSBpbW1hZ2luZTwvaDU+XHJcbiAgICA8L2VzLW1vZGFsLWhlYWQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBkLWZsZXhcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZXMtaW1hZ2UtY3JvcHBlciAjaW1hZ2VDcm9wcGVyIFtIZWlnaHRdPVwiNjAwXCIgW1dpZHRoXT1cIjgwMFwiPjwvZXMtaW1hZ2UtY3JvcHBlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiZGxnVXBkYXRlUHJvZmlsZVBpY3R1cmUuaGlkZSgpXCI+QW5udWxsYTwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImRvVXBkYXRlUHJvZmlsZVBpY3R1cmUoKVwiPkNvbmZlcm1hPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9lcy1tb2RhbD5cclxuXHJcbjwhLS1SdW9saSBlIFBlcm1lc3NpLS0+XHJcbjxlcy1tb2RhbCAjZGxnU2hvd0FjY291bnRSb2xlcyBbU2l6ZV09XCInTCdcIj5cclxuICAgIDxlcy1tb2RhbC1oZWFkIChDbG9zZSk9XCJkbGdTaG93QWNjb3VudFJvbGVzLmhpZGUoKTtcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydSdW9saSBlIFBlcm1lc3NpJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICA8L2VzLW1vZGFsLWhlYWQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiIHN0eWxlPVwibWF4LWhlaWdodDogNjAwcHg7IG92ZXJmbG93LXk6IGF1dG87XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cIkFjY291bnRSb2xlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsZWQtc3BhbiBbTGFiZWxdPVwiJ1J1b2xpJ1wiIERpc3BsYXk9XCJWZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHIgb2YgQWNjb3VudFJvbGVzO1wiPnt7cn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsZWQtc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiQWNjb3VudFBlcm1pc3Npb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInUGVybWVzc2knXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcCBvZiBBY2NvdW50UGVybWlzc2lvbnM7XCI+e3twfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWxlZC1zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiZGxnU2hvd0FjY291bnRSb2xlcy5oaWRlKCk7XCI+e3snQ2hpdWRpJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZXMtbW9kYWw+Il19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ComponentHostDirective {
|
|
4
|
-
constructor(viewContainerRef) {
|
|
5
|
-
this.viewContainerRef = viewContainerRef;
|
|
6
|
-
this.Inputs = null;
|
|
7
|
-
}
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
this.CreatedComponent = this.viewContainerRef.createComponent(this.componentHost);
|
|
10
|
-
if (!this.Inputs)
|
|
11
|
-
return;
|
|
12
|
-
for (const key in this.Inputs)
|
|
13
|
-
this.CreatedComponent.instance[key] = this.Inputs[key];
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentHostDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
16
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ComponentHostDirective, isStandalone: true, selector: "[componentHost]", inputs: { componentHost: "componentHost", Inputs: "Inputs" }, ngImport: i0 }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentHostDirective, decorators: [{
|
|
19
|
-
type: Directive,
|
|
20
|
-
args: [{
|
|
21
|
-
selector: '[componentHost]',
|
|
22
|
-
standalone: true
|
|
23
|
-
}]
|
|
24
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { componentHost: [{
|
|
25
|
-
type: Input
|
|
26
|
-
}], Inputs: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50SG9zdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvc3JjL2NvbXBvbmVudEhvc3QvY29tcG9uZW50SG9zdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTBCLE1BQU0sZUFBZSxDQUFDOztBQU16RSxNQUFNLE9BQU8sc0JBQXNCO0lBUS9CLFlBQW1CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTDVDLFdBQU0sR0FBd0IsSUFBSSxDQUFDO0lBS2EsQ0FBQztJQUUxRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNaLE9BQU87UUFFWCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDOytHQWxCUSxzQkFBc0I7bUdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7dUdBR1ksYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2NvbXBvbmVudEhvc3RdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEhvc3REaXJlY3RpdmUge1xyXG5cclxuICAgIEBJbnB1dCgpIGNvbXBvbmVudEhvc3Q6IFR5cGU8YW55PjtcclxuICAgIEBJbnB1dCgpIElucHV0czogUmVjb3JkPHN0cmluZywgYW55PiA9IG51bGw7XHJcblxyXG4gICAgLy8gRXZlbnR1YWxpIGFjY2Vzc2kgZXN0ZXJuaS4uLiBub24gc2kgc2EgbWFpXHJcbiAgICBwdWJsaWMgQ3JlYXRlZENvbXBvbmVudDogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHRoaXMuQ3JlYXRlZENvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8YW55Pih0aGlzLmNvbXBvbmVudEhvc3QpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuSW5wdXRzKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuSW5wdXRzKVxyXG4gICAgICAgICAgICB0aGlzLkNyZWF0ZWRDb21wb25lbnQuaW5zdGFuY2Vba2V5XSA9IHRoaXMuSW5wdXRzW2tleV07XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { NgModule } from "@angular/core";
|
|
3
|
-
// Direttive
|
|
4
|
-
import { Draggable } from "./draggable/draggable.directive";
|
|
5
|
-
import { SlimScroll } from "./slim-scroll/slim-scroll.directive";
|
|
6
|
-
import { Widget } from "./widget/widget.directive";
|
|
7
|
-
import { esRouterLinkWithHref } from "./es-routerLink/es-routerLink.directive";
|
|
8
|
-
import { ComponentHostDirective } from "./componentHost/componentHost.directive";
|
|
9
|
-
import { EsModalDirective } from "./es-modal/es-modal.directive";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
const DIRECTIVES = [Draggable, SlimScroll, Widget, esRouterLinkWithHref, ComponentHostDirective, EsModalDirective];
|
|
12
|
-
export class DirectivesModule {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DirectivesModule, imports: [Draggable, SlimScroll, Widget, esRouterLinkWithHref, ComponentHostDirective, EsModalDirective], exports: [Draggable, SlimScroll, Widget, esRouterLinkWithHref, ComponentHostDirective, EsModalDirective] }); }
|
|
15
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectivesModule }); }
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectivesModule, decorators: [{
|
|
18
|
-
type: NgModule,
|
|
19
|
-
args: [{ imports: [...DIRECTIVES], exports: [...DIRECTIVES] }]
|
|
20
|
-
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvc3JjL2RpcmVjdGl2ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLFlBQVk7QUFDWixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFakUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBR25ILE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLFlBSFQsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLGFBQTdGLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQjtnSEFHcEcsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixRQUFRO21CQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBEaXJldHRpdmVcclxuaW1wb3J0IHsgRHJhZ2dhYmxlIH0gZnJvbSBcIi4vZHJhZ2dhYmxlL2RyYWdnYWJsZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgU2xpbVNjcm9sbCB9IGZyb20gXCIuL3NsaW0tc2Nyb2xsL3NsaW0tc2Nyb2xsLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tIFwiLi93aWRnZXQvd2lkZ2V0LmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBlc1JvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gXCIuL2VzLXJvdXRlckxpbmsvZXMtcm91dGVyTGluay5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50SG9zdERpcmVjdGl2ZSB9IGZyb20gXCIuL2NvbXBvbmVudEhvc3QvY29tcG9uZW50SG9zdC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgRXNNb2RhbERpcmVjdGl2ZSB9IGZyb20gXCIuL2VzLW1vZGFsL2VzLW1vZGFsLmRpcmVjdGl2ZVwiO1xyXG5cclxuY29uc3QgRElSRUNUSVZFUyA9IFtEcmFnZ2FibGUsIFNsaW1TY3JvbGwsIFdpZGdldCwgZXNSb3V0ZXJMaW5rV2l0aEhyZWYsIENvbXBvbmVudEhvc3REaXJlY3RpdmUsIEVzTW9kYWxEaXJlY3RpdmVdO1xyXG5cclxuQE5nTW9kdWxlKHsgaW1wb3J0czogWy4uLkRJUkVDVElWRVNdLCBleHBvcnRzOiBbLi4uRElSRUNUSVZFU10gfSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGl2ZXNNb2R1bGUgeyB9Il19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Directive, Input } from "@angular/core";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@esfaenza/extensions";
|
|
5
|
-
export class Draggable {
|
|
6
|
-
constructor(_elementRef, zone, emb) {
|
|
7
|
-
this._elementRef = _elementRef;
|
|
8
|
-
this.zone = zone;
|
|
9
|
-
this.emb = emb;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this.zone.runOutsideAngular(() => {
|
|
13
|
-
var handle = this.handlerSelector || '.modal-header';
|
|
14
|
-
jQuery(this._elementRef.nativeElement).children(':first-child').draggable({
|
|
15
|
-
handle,
|
|
16
|
-
helper: function (_, __) {
|
|
17
|
-
var oBody = jQuery(document).find('body');
|
|
18
|
-
var containmentDiv = jQuery('<div id="div_containment"></div>');
|
|
19
|
-
containmentDiv
|
|
20
|
-
.css('z-index', "-99999")
|
|
21
|
-
.css('top', "0")
|
|
22
|
-
.css('left', "0")
|
|
23
|
-
.css('width', "100%")
|
|
24
|
-
.css('height', "100%")
|
|
25
|
-
.css('position', 'absolute');
|
|
26
|
-
containmentDiv.appendTo(oBody);
|
|
27
|
-
return this;
|
|
28
|
-
},
|
|
29
|
-
stop: function (_, __) {
|
|
30
|
-
jQuery(document).filter('body').find('#div_containment').remove();
|
|
31
|
-
},
|
|
32
|
-
containment: this.emb.Embedded ? "#div_containment" : null
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Draggable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
37
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Draggable, isStandalone: true, selector: "[emaDraggable]", inputs: { handlerSelector: ["emaDraggable", "handlerSelector"] }, ngImport: i0 }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Draggable, decorators: [{
|
|
40
|
-
type: Directive,
|
|
41
|
-
args: [{
|
|
42
|
-
selector: "[emaDraggable]",
|
|
43
|
-
standalone: true
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.AppEmbeddingExtensions }]; }, propDecorators: { handlerSelector: [{
|
|
46
|
-
type: Input,
|
|
47
|
-
args: ['emaDraggable']
|
|
48
|
-
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9zcmMvZHJhZ2dhYmxlL2RyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFXckUsTUFBTSxPQUFPLFNBQVM7SUFHbEIsWUFBb0IsV0FBdUIsRUFBVSxJQUFZLEVBQVUsR0FBMkI7UUFBbEYsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBd0I7SUFBSSxDQUFDO0lBRTNHLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQztZQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN0RSxNQUFNO2dCQUNOLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO29CQUNuQixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQyxJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztvQkFDaEUsY0FBYzt5QkFDVCxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQzt5QkFDeEIsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7eUJBQ2YsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7eUJBQ2hCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO3lCQUNwQixHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQzt5QkFDckIsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDakMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7b0JBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RFLENBQUM7Z0JBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUM3RCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBN0JRLFNBQVM7bUdBQVQsU0FBUzs7NEZBQVQsU0FBUztrQkFKckIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7MkpBRTBCLGVBQWU7c0JBQXJDLEtBQUs7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgTmdab25lIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGpRdWVyeTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2VtYURyYWdnYWJsZV1cIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdnYWJsZSB7XHJcbiAgICBASW5wdXQoJ2VtYURyYWdnYWJsZScpIGhhbmRsZXJTZWxlY3Rvcjogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgem9uZTogTmdab25lLCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdmFyIGhhbmRsZSA9IHRoaXMuaGFuZGxlclNlbGVjdG9yIHx8ICcubW9kYWwtaGVhZGVyJztcclxuICAgICAgICAgICAgalF1ZXJ5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuY2hpbGRyZW4oJzpmaXJzdC1jaGlsZCcpLmRyYWdnYWJsZSh7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGUsXHJcbiAgICAgICAgICAgICAgICBoZWxwZXI6IGZ1bmN0aW9uIChfLCBfXykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBvQm9keSA9IGpRdWVyeShkb2N1bWVudCkuZmluZCgnYm9keScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250YWlubWVudERpdiA9IGpRdWVyeSgnPGRpdiBpZD1cImRpdl9jb250YWlubWVudFwiPjwvZGl2PicpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5tZW50RGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3otaW5kZXgnLCBcIi05OTk5OVwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCd0b3AnLCBcIjBcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygnbGVmdCcsIFwiMFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCd3aWR0aCcsIFwiMTAwJVwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdoZWlnaHQnLCBcIjEwMCVcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250YWlubWVudERpdi5hcHBlbmRUbyhvQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3RvcDogZnVuY3Rpb24gKF8sIF9fKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KGRvY3VtZW50KS5maWx0ZXIoJ2JvZHknKS5maW5kKCcjZGl2X2NvbnRhaW5tZW50JykucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY29udGFpbm1lbnQ6IHRoaXMuZW1iLkVtYmVkZGVkID8gXCIjZGl2X2NvbnRhaW5tZW50XCIgOiBudWxsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Directive, Inject, Optional } from "@angular/core";
|
|
3
|
-
import { MODAL_CONFIG_DEFAULT_OVERRIDE, ModalDirective } from "ngx-bootstrap/modal";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@esfaenza/extensions";
|
|
6
|
-
import * as i2 from "ngx-bootstrap/component-loader";
|
|
7
|
-
import * as i3 from "ngx-bootstrap/modal";
|
|
8
|
-
export class EsModalDirective extends ModalDirective {
|
|
9
|
-
constructor(emb, _element, _viewContainerRef, _renderer, clf, modalDefaultOption) {
|
|
10
|
-
super(_element, _viewContainerRef, _renderer, clf, modalDefaultOption);
|
|
11
|
-
this.emb = emb;
|
|
12
|
-
this.elementRef = _element;
|
|
13
|
-
this.rendererRef = _renderer;
|
|
14
|
-
if (this.emb.Embedded) {
|
|
15
|
-
this.HideSubscription = this.onHidden.subscribe(() => {
|
|
16
|
-
document.body.style.setProperty("overflow-y", "auto", "important");
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
if (this.HideSubscription)
|
|
22
|
-
this.HideSubscription.unsubscribe();
|
|
23
|
-
super.ngOnDestroy();
|
|
24
|
-
}
|
|
25
|
-
show() {
|
|
26
|
-
super.show();
|
|
27
|
-
if (this.emb.Embedded) {
|
|
28
|
-
this.rendererRef.setStyle(this.elementRef.nativeElement, "padding-top", "5%");
|
|
29
|
-
this.rendererRef.setStyle(this.elementRef.nativeElement, "margin-left", "-110px");
|
|
30
|
-
this.rendererRef.setStyle(this.elementRef.nativeElement, "width", "calc(100% + 110px)");
|
|
31
|
-
this.rendererRef.setStyle(this.elementRef.nativeElement, "overflow", "hidden");
|
|
32
|
-
if (this._config.animated)
|
|
33
|
-
setTimeout(() => { this.doFixBody(); }, 300);
|
|
34
|
-
else
|
|
35
|
-
this.doFixBody();
|
|
36
|
-
let backdropHeight = this.backdrop.instance.element.nativeElement.clientHeight;
|
|
37
|
-
this.emb.MainWindow.postMessage({ type: "modal-open", backdropHeight: backdropHeight }, "*");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
doFixBody() {
|
|
41
|
-
let body = this.elementRef.nativeElement.getElementsByClassName("modal-body")[0];
|
|
42
|
-
// Ci prova finch� non trova il body dato che potrebbe essere creato in qualsiasi momento
|
|
43
|
-
if (!body) {
|
|
44
|
-
setTimeout(() => this.doFixBody(), 250);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
body.style.setProperty("max-height", "600px", "important");
|
|
48
|
-
body.style.setProperty("overflow-x", "hidden");
|
|
49
|
-
body.style.setProperty("overflow-y", "auto");
|
|
50
|
-
}
|
|
51
|
-
hide() {
|
|
52
|
-
super.hide();
|
|
53
|
-
if (!this.emb.Embedded)
|
|
54
|
-
return;
|
|
55
|
-
if (this._config.animated)
|
|
56
|
-
setTimeout(() => { this.doHide(); }, 300);
|
|
57
|
-
else
|
|
58
|
-
this.doHide();
|
|
59
|
-
}
|
|
60
|
-
doHide() {
|
|
61
|
-
this.emb.MainWindow.postMessage({ type: "modal-close" }, "*");
|
|
62
|
-
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsModalDirective, deps: [{ token: i1.AppEmbeddingExtensions }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i2.ComponentLoaderFactory }, { token: MODAL_CONFIG_DEFAULT_OVERRIDE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
64
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EsModalDirective, isStandalone: true, selector: "[esModal]", exportAs: ["es-modal"], usesInheritance: true, ngImport: i0 }); }
|
|
65
|
-
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsModalDirective, decorators: [{
|
|
67
|
-
type: Directive,
|
|
68
|
-
args: [{
|
|
69
|
-
selector: '[esModal]',
|
|
70
|
-
exportAs: 'es-modal',
|
|
71
|
-
standalone: true
|
|
72
|
-
}]
|
|
73
|
-
}], ctorParameters: function () { return [{ type: i1.AppEmbeddingExtensions }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i2.ComponentLoaderFactory }, { type: i3.ModalOptions, decorators: [{
|
|
74
|
-
type: Optional
|
|
75
|
-
}, {
|
|
76
|
-
type: Inject,
|
|
77
|
-
args: [MODAL_CONFIG_DEFAULT_OVERRIDE]
|
|
78
|
-
}] }]; } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtbW9kYWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL3NyYy9lcy1tb2RhbC9lcy1tb2RhbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLFFBQVEsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFPckcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGNBQWMsRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFVbEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGNBQWM7SUFPaEQsWUFBb0IsR0FBMkIsRUFBRSxRQUFvQixFQUFFLGlCQUFtQyxFQUFFLFNBQW9CLEVBQUUsR0FBMkIsRUFBcUQsa0JBQWdDO1FBQzlPLEtBQUssQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRHZELFFBQUcsR0FBSCxHQUFHLENBQXdCO1FBRzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDakQsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDdkUsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFeEMs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QUFROzswQkFBSSxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBCb290cnN0cmFwXHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9jb21wb25lbnQtbG9hZGVyXCI7XHJcbmltcG9ydCB7IE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFLCBNb2RhbERpcmVjdGl2ZSwgTW9kYWxPcHRpb25zIH0gZnJvbSBcIm5neC1ib290c3RyYXAvbW9kYWxcIjtcclxuXHJcbi8vIFJ4anNcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZXNNb2RhbF0nLFxyXG4gICAgZXhwb3J0QXM6ICdlcy1tb2RhbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc01vZGFsRGlyZWN0aXZlIGV4dGVuZHMgTW9kYWxEaXJlY3RpdmUge1xyXG5cclxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgICByZW5kZXJlclJlZjogUmVuZGVyZXIyO1xyXG5cclxuICAgIEhpZGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucywgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBfcmVuZGVyZXI6IFJlbmRlcmVyMiwgY2xmOiBDb21wb25lbnRMb2FkZXJGYWN0b3J5LCBAT3B0aW9uYWwoKSBASW5qZWN0KE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFKSBtb2RhbERlZmF1bHRPcHRpb246IE1vZGFsT3B0aW9ucykge1xyXG4gICAgICAgIHN1cGVyKF9lbGVtZW50LCBfdmlld0NvbnRhaW5lclJlZiwgX3JlbmRlcmVyLCBjbGYsIG1vZGFsRGVmYXVsdE9wdGlvbik7XHJcblxyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IF9lbGVtZW50O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXJSZWYgPSBfcmVuZGVyZXI7XHJcbiAgICAgICAgaWYgKHRoaXMuZW1iLkVtYmVkZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuSGlkZVN1YnNjcmlwdGlvbiA9IHRoaXMub25IaWRkZW4uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvdy15XCIsIFwiYXV0b1wiLCBcImltcG9ydGFudFwiKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLkhpZGVTdWJzY3JpcHRpb24pXHJcbiAgICAgICAgICAgIHRoaXMuSGlkZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIHNob3coKTogdm9pZCB7XHJcblxyXG4gICAgICAgIHN1cGVyLnNob3coKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZW1iLkVtYmVkZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXJSZWYuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwicGFkZGluZy10b3BcIiwgXCI1JVwiKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlclJlZi5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJtYXJnaW4tbGVmdFwiLCBcIi0xMTBweFwiKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlclJlZi5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ3aWR0aFwiLCBcImNhbGMoMTAwJSArIDExMHB4KVwiKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlclJlZi5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJvdmVyZmxvd1wiLCBcImhpZGRlblwiKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb25maWcuYW5pbWF0ZWQpXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5kb0ZpeEJvZHkoKTsgfSwgMzAwKTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kb0ZpeEJvZHkoKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBiYWNrZHJvcEhlaWdodCA9IHRoaXMuYmFja2Ryb3AuaW5zdGFuY2UuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgdGhpcy5lbWIuTWFpbldpbmRvdy5wb3N0TWVzc2FnZSh7IHR5cGU6IFwibW9kYWwtb3BlblwiLCBiYWNrZHJvcEhlaWdodDogYmFja2Ryb3BIZWlnaHQgfSwgXCIqXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkb0ZpeEJvZHkoKSB7XHJcbiAgICAgICAgbGV0IGJvZHkgPSAoPEhUTUxFbGVtZW50PnRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibW9kYWwtYm9keVwiKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAvLyBDaSBwcm92YSBmaW5jaO+/vSBub24gdHJvdmEgaWwgYm9keSBkYXRvIGNoZSBwb3RyZWJiZSBlc3NlcmUgY3JlYXRvIGluIHF1YWxzaWFzaSBtb21lbnRvXHJcbiAgICAgICAgaWYgKCFib2R5KSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kb0ZpeEJvZHkoKSwgMjUwKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBib2R5LnN0eWxlLnNldFByb3BlcnR5KFwibWF4LWhlaWdodFwiLCBcIjYwMHB4XCIsIFwiaW1wb3J0YW50XCIpO1xyXG4gICAgICAgIGJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvdy14XCIsIFwiaGlkZGVuXCIpO1xyXG4gICAgICAgIGJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvdy15XCIsIFwiYXV0b1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBoaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmhpZGUoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmVtYi5FbWJlZGRlZClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmFuaW1hdGVkKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5kb0hpZGUoKTsgfSwgMzAwKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZG9IaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9IaWRlKCkge1xyXG4gICAgICAgIHRoaXMuZW1iLk1haW5XaW5kb3cucG9zdE1lc3NhZ2UoeyB0eXBlOiBcIm1vZGFsLWNsb3NlXCIgfSwgXCIqXCIpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Attribute, Directive, HostListener, Input } from "@angular/core";
|
|
2
|
-
import { RouterLinkWithHref } from "@angular/router";
|
|
3
|
-
import { EMBEDDED_ROUTE, ROUTE } from "@esfaenza/core/domain";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@esfaenza/extensions";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
|
-
import * as i3 from "@angular/common";
|
|
8
|
-
export class esRouterLinkWithHref extends RouterLinkWithHref {
|
|
9
|
-
constructor(emb, router, route, tabIndexAttribute, renderer, el, locationStrategy) {
|
|
10
|
-
super(router, route, tabIndexAttribute, renderer, el, locationStrategy);
|
|
11
|
-
this.emb = emb;
|
|
12
|
-
}
|
|
13
|
-
set esRouterLink(commands) {
|
|
14
|
-
let BasePath = "/" + (this.emb.Embedded ? EMBEDDED_ROUTE : ROUTE);
|
|
15
|
-
if (commands != null) {
|
|
16
|
-
this.commands = Array.isArray(commands) ? commands : [commands];
|
|
17
|
-
let route = this.commands[0];
|
|
18
|
-
if (!route.startsWith("/" + EMBEDDED_ROUTE) && !route.startsWith("/" + ROUTE))
|
|
19
|
-
this.commands[0] = BasePath + this.commands[0];
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.commands = null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
|
|
26
|
-
if (this.emb.Embedded) {
|
|
27
|
-
let url = this.urlTree.toString().replace(EMBEDDED_ROUTE, ROUTE + "/embed/" + myconfig.AppData.ModuleId);
|
|
28
|
-
this.emb.MainWindow.postMessage({ type: "navigate", url, newTab: ctrlKey, replaceState: !ctrlKey }, "*");
|
|
29
|
-
if (!ctrlKey)
|
|
30
|
-
return super.onClick(button, ctrlKey, shiftKey, altKey, metaKey);
|
|
31
|
-
else
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
else
|
|
35
|
-
return super.onClick(button, ctrlKey, shiftKey, altKey, metaKey);
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: esRouterLinkWithHref, deps: [{ token: i1.AppEmbeddingExtensions }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: esRouterLinkWithHref, isStandalone: true, selector: "a[esRouterLink],area[esRouterLink]", inputs: { esRouterLink: "esRouterLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: esRouterLinkWithHref, decorators: [{
|
|
41
|
-
type: Directive,
|
|
42
|
-
args: [{
|
|
43
|
-
selector: 'a[esRouterLink],area[esRouterLink]',
|
|
44
|
-
standalone: true
|
|
45
|
-
}]
|
|
46
|
-
}], ctorParameters: function () { return [{ type: i1.AppEmbeddingExtensions }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
|
|
47
|
-
type: Attribute,
|
|
48
|
-
args: ['tabindex']
|
|
49
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i3.LocationStrategy }]; }, propDecorators: { esRouterLink: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], onClick: [{
|
|
52
|
-
type: HostListener,
|
|
53
|
-
args: ['click', ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
|
|
54
|
-
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtcm91dGVyTGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvc3JjL2VzLXJvdXRlckxpbmsvZXMtcm91dGVyTGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQTBCLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBYyxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFTMUUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUV4RCxZQUNZLEdBQTJCLEVBQ25DLE1BQWMsRUFBRSxLQUFxQixFQUNkLGlCQUE0QyxFQUNuRSxRQUFtQixFQUFFLEVBQWMsRUFDbkMsZ0JBQW1DO1FBRW5DLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtRQU4vRCxRQUFHLEdBQUgsR0FBRyxDQUF3QjtJQU92QyxDQUFDO0lBRUQsSUFDSSxZQUFZLENBQUMsUUFBMkM7UUFDeEQsSUFBSSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEUsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQVksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pFLElBQUksS0FBSyxHQUFLLElBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFZLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO2dCQUN4RSxJQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBSSxJQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDRixJQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUNqQztJQUNMLENBQUM7SUFHUSxPQUFPLENBQUMsTUFBYyxFQUFFLE9BQWdCLEVBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsT0FBZ0I7UUFDbkcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFekcsSUFBSSxDQUFDLE9BQU87Z0JBQ1IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzs7Z0JBRWpFLE9BQU8sS0FBSyxDQUFDO1NBQ3BCOztZQUVHLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQzsrR0F2Q1Esb0JBQW9CLDRHQUtkLFVBQVU7bUdBTGhCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQU1RLFNBQVM7MkJBQUMsVUFBVTs0SEFRckIsWUFBWTtzQkFEZixLQUFLO2dCQWVHLE9BQU87c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBFTUJFRERFRF9ST1VURSwgRW52T3B0aW9ucywgUk9VVEUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ2FbZXNSb3V0ZXJMaW5rXSxhcmVhW2VzUm91dGVyTGlua10nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgZXNSb3V0ZXJMaW5rV2l0aEhyZWYgZXh0ZW5kcyBSb3V0ZXJMaW5rV2l0aEhyZWYge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZW1iOiBBcHBFbWJlZGRpbmdFeHRlbnNpb25zLFxyXG4gICAgICAgIHJvdXRlcjogUm91dGVyLCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSB0YWJJbmRleEF0dHJpYnV0ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLCBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBsb2NhdGlvblN0cmF0ZWd5PzogTG9jYXRpb25TdHJhdGVneSkge1xyXG5cclxuICAgICAgICBzdXBlcihyb3V0ZXIsIHJvdXRlLCB0YWJJbmRleEF0dHJpYnV0ZSwgcmVuZGVyZXIsIGVsLCBsb2NhdGlvblN0cmF0ZWd5KVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZXNSb3V0ZXJMaW5rKGNvbW1hbmRzOiBhbnlbXSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBsZXQgQmFzZVBhdGggPSBcIi9cIiArICh0aGlzLmVtYi5FbWJlZGRlZCA/IEVNQkVEREVEX1JPVVRFIDogUk9VVEUpO1xyXG5cclxuICAgICAgICBpZiAoY29tbWFuZHMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAodGhpcyBhcyBhbnkpLmNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShjb21tYW5kcykgPyBjb21tYW5kcyA6IFtjb21tYW5kc107XHJcbiAgICAgICAgICAgIGxldCByb3V0ZSA9ICgodGhpcyBhcyBhbnkpLmNvbW1hbmRzWzBdIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgIGlmICghcm91dGUuc3RhcnRzV2l0aChcIi9cIiArIEVNQkVEREVEX1JPVVRFKSAmJiAhcm91dGUuc3RhcnRzV2l0aChcIi9cIiArIFJPVVRFKSlcclxuICAgICAgICAgICAgICAgICh0aGlzIGFzIGFueSkuY29tbWFuZHNbMF0gPSBCYXNlUGF0aCArICh0aGlzIGFzIGFueSkuY29tbWFuZHNbMF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgKHRoaXMgYXMgYW55KS5jb21tYW5kcyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQuYnV0dG9uJywgJyRldmVudC5jdHJsS2V5JywgJyRldmVudC5zaGlmdEtleScsICckZXZlbnQuYWx0S2V5JywgJyRldmVudC5tZXRhS2V5J10pXHJcbiAgICBvdmVycmlkZSBvbkNsaWNrKGJ1dHRvbjogbnVtYmVyLCBjdHJsS2V5OiBib29sZWFuLCBzaGlmdEtleTogYm9vbGVhbiwgYWx0S2V5OiBib29sZWFuLCBtZXRhS2V5OiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW1iLkVtYmVkZGVkKSB7XHJcbiAgICAgICAgICAgIGxldCB1cmwgPSB0aGlzLnVybFRyZWUudG9TdHJpbmcoKS5yZXBsYWNlKEVNQkVEREVEX1JPVVRFLCBST1VURSArIFwiL2VtYmVkL1wiICsgbXljb25maWcuQXBwRGF0YS5Nb2R1bGVJZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW1iLk1haW5XaW5kb3cucG9zdE1lc3NhZ2UoeyB0eXBlOiBcIm5hdmlnYXRlXCIsIHVybCwgbmV3VGFiOiBjdHJsS2V5LCByZXBsYWNlU3RhdGU6ICFjdHJsS2V5IH0sIFwiKlwiKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghY3RybEtleSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5vbkNsaWNrKGJ1dHRvbiwgY3RybEtleSwgc2hpZnRLZXksIGFsdEtleSwgbWV0YUtleSk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIub25DbGljayhidXR0b24sIGN0cmxLZXksIHNoaWZ0S2V5LCBhbHRLZXksIG1ldGFLZXkpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtY29yZS1kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL3NyYy9lc2ZhZW56YS1jb3JlLWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './draggable/draggable.directive';
|
|
2
|
-
export * from './slim-scroll/slim-scroll.directive';
|
|
3
|
-
export * from './es-routerLink/es-routerLink.directive';
|
|
4
|
-
export * from './widget/widget.directive';
|
|
5
|
-
export * from './componentHost/componentHost.directive';
|
|
6
|
-
export * from './es-modal/es-modal.directive';
|
|
7
|
-
export * from './directives.module';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcmFnZ2FibGUvZHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpbS1zY3JvbGwvc2xpbS1zY3JvbGwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lcy1yb3V0ZXJMaW5rL2VzLXJvdXRlckxpbmsuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQvd2lkZ2V0LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50SG9zdC9jb21wb25lbnRIb3N0LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXMtbW9kYWwvZXMtbW9kYWwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzLm1vZHVsZSc7Il19
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Directive, Input } from "@angular/core";
|
|
3
|
-
// Direttive, Componenti, Librerie
|
|
4
|
-
import "jquery-slimscroll";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class SlimScroll {
|
|
7
|
-
constructor(_elementRef, zone) {
|
|
8
|
-
this._elementRef = _elementRef;
|
|
9
|
-
this.zone = zone;
|
|
10
|
-
}
|
|
11
|
-
ngOnChanges(changes) {
|
|
12
|
-
this._scroll();
|
|
13
|
-
}
|
|
14
|
-
_scroll() {
|
|
15
|
-
this._destroy();
|
|
16
|
-
this._init();
|
|
17
|
-
}
|
|
18
|
-
//Stacco slimscroll da Angular dato che registra dei listener sull'oggetto in cui viene creato che spammerebbero la change detection
|
|
19
|
-
_init() {
|
|
20
|
-
this.zone.runOutsideAngular(() => {
|
|
21
|
-
jQuery(this._elementRef.nativeElement).slimScroll(this.slimScrollOptions);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
_destroy() {
|
|
25
|
-
this.zone.runOutsideAngular(() => {
|
|
26
|
-
jQuery(this._elementRef.nativeElement).slimScroll({ destroy: true });
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlimScroll, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SlimScroll, isStandalone: true, selector: "[slim-scroll]", inputs: { slimScrollOptions: "slimScrollOptions" }, usesOnChanges: true, ngImport: i0 }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlimScroll, decorators: [{
|
|
33
|
-
type: Directive,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: "[slim-scroll]",
|
|
36
|
-
standalone: true
|
|
37
|
-
}]
|
|
38
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { slimScrollOptions: [{
|
|
39
|
-
type: Input
|
|
40
|
-
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpbS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL3NyYy9zbGltLXNjcm9sbC9zbGltLXNjcm9sbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLGtDQUFrQztBQUNsQyxPQUFPLG1CQUFtQixDQUFDOztBQVEzQixNQUFNLE9BQU8sVUFBVTtJQUduQixZQUFvQixXQUF1QixFQUFVLElBQVk7UUFBN0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sT0FBTztRQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELG9JQUFvSTtJQUM1SCxLQUFLO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVE7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBMUJRLFVBQVU7bUdBQVYsVUFBVTs7NEZBQVYsVUFBVTtrQkFKdEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3NIQUVtQixpQkFBaUI7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nWm9uZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCBcImpxdWVyeS1zbGltc2Nyb2xsXCI7XHJcblxyXG5kZWNsYXJlIHZhciBqUXVlcnk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltzbGltLXNjcm9sbF1cIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaW1TY3JvbGwge1xyXG4gICAgQElucHV0KCkgcHVibGljIHNsaW1TY3JvbGxPcHRpb25zOiBPYmplY3Q7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2Nyb2xsKCkge1xyXG4gICAgICAgIHRoaXMuX2Rlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLl9pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9TdGFjY28gc2xpbXNjcm9sbCBkYSBBbmd1bGFyIGRhdG8gY2hlIHJlZ2lzdHJhIGRlaSBsaXN0ZW5lciBzdWxsJ29nZ2V0dG8gaW4gY3VpIHZpZW5lIGNyZWF0byBjaGUgc3BhbW1lcmViYmVybyBsYSBjaGFuZ2UgZGV0ZWN0aW9uXHJcbiAgICBwcml2YXRlIF9pbml0KCkge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGpRdWVyeSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnNsaW1TY3JvbGwodGhpcy5zbGltU2Nyb2xsT3B0aW9ucyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICBqUXVlcnkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5zbGltU2Nyb2xsKHsgZGVzdHJveTogdHJ1ZSB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==
|