@tsi-developpement/tsi-shared-ui 1.8.38 → 1.8.39
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/esm2022/lib/consts/business-class-names.mjs +3 -1
- package/esm2022/lib/end-points/endpoints.mjs +7 -2
- package/esm2022/lib/models/actionErp/actionErp.mjs +7 -1
- package/esm2022/lib/models/actionErp/nature-action.mjs +6 -0
- package/esm2022/lib/services/actionErp/nature-action-service.service.mjs +23 -0
- package/esm2022/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.mjs +182 -25
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +195 -13
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/consts/business-class-names.d.ts +2 -0
- package/lib/end-points/endpoints.d.ts +5 -0
- package/lib/models/actionErp/actionErp.d.ts +10 -0
- package/lib/models/actionErp/nature-action.d.ts +12 -0
- package/lib/services/actionErp/nature-action-service.service.d.ts +12 -0
- package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +3 -0
- package/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.d.ts +19 -4
- package/package.json +1 -1
|
@@ -1,40 +1,47 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { TsiFormComponentBaseComponent } from '../../tsi-base';
|
|
3
3
|
import { appProviders } from '../../consts/app-providers';
|
|
4
|
-
import { ActionERP } from '../../models/actionErp/actionErp';
|
|
4
|
+
import { ActionERP, StatutActionCRMEnum } from '../../models/actionErp/actionErp';
|
|
5
5
|
import { Component_Modes, InputTypes, ModalSizeEnum, Modes } from '../../enums';
|
|
6
6
|
import { LocalizationKeys } from '../../consts/localization-key';
|
|
7
7
|
import { AdministrationEndpoints } from '../../end-points';
|
|
8
|
+
import { DialogService } from 'primeng/dynamicdialog';
|
|
8
9
|
import { TypeRegistryHelper } from '../../tsi-helpers/type-registry.helper';
|
|
9
10
|
import { BusinessClassNames } from '../../consts/business-class-names';
|
|
11
|
+
import { firstValueFrom } from 'rxjs';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
import * as i1 from "../../services";
|
|
12
|
-
import * as i2 from "../../
|
|
14
|
+
import * as i2 from "../../services/actionErp/nature-action-service.service";
|
|
13
15
|
import * as i3 from "primeng/dynamicdialog";
|
|
14
|
-
import * as i4 from "
|
|
15
|
-
import * as i5 from "
|
|
16
|
-
import * as i6 from "primeng/
|
|
17
|
-
import * as i7 from "
|
|
18
|
-
import * as i8 from "
|
|
19
|
-
import * as i9 from "../input-components/
|
|
20
|
-
import * as i10 from "../input-components/tsi-
|
|
21
|
-
import * as i11 from "../input-components/tsi-
|
|
22
|
-
import * as i12 from "../input-components/tsi-
|
|
23
|
-
import * as i13 from "../
|
|
24
|
-
import * as i14 from "../tsi-
|
|
25
|
-
import * as i15 from "../tsi-
|
|
26
|
-
import * as i16 from "../tsi-
|
|
27
|
-
import * as i17 from "
|
|
28
|
-
import * as i18 from "
|
|
16
|
+
import * as i4 from "../../pipes";
|
|
17
|
+
import * as i5 from "@angular/common";
|
|
18
|
+
import * as i6 from "primeng/api";
|
|
19
|
+
import * as i7 from "primeng/tabview";
|
|
20
|
+
import * as i8 from "primeng/fieldset";
|
|
21
|
+
import * as i9 from "../input-components/editable-grid/editable-grid.component";
|
|
22
|
+
import * as i10 from "../input-components/tsi-search-combo/tsi-search-combo.component";
|
|
23
|
+
import * as i11 from "../input-components/tsi-checkbox/tsi-checkbox.component";
|
|
24
|
+
import * as i12 from "../input-components/tsi-date-picker/tsi-date-picker.component";
|
|
25
|
+
import * as i13 from "../input-components/tsi-integer/tsi-integer.component";
|
|
26
|
+
import * as i14 from "../input-components/tsi-text-area/tsi-text-area.component";
|
|
27
|
+
import * as i15 from "../output-components/tsi-label/tsi-label.component";
|
|
28
|
+
import * as i16 from "../tsi-modal-footer/tsi-modal-footer.component";
|
|
29
|
+
import * as i17 from "../tsi-modal-header/tsi-modal-header.component";
|
|
30
|
+
import * as i18 from "../button-components/tsi-button/tsi-button.component";
|
|
31
|
+
import * as i19 from "../tsi-form/tsi-form.component";
|
|
32
|
+
import * as i20 from "../../tsi-directives/presentation-designer.directive";
|
|
33
|
+
import * as i21 from "../../pipes/localize.pipe";
|
|
34
|
+
import * as i22 from "../../pipes/modal-label.pipe";
|
|
29
35
|
export class TsiActionErpCreateOrEditComponent extends TsiFormComponentBaseComponent {
|
|
30
|
-
constructor(_actionservice, _errorResponseManagerService, _notificationService, _confirmationService, entityConfigurationService,
|
|
36
|
+
constructor(_actionservice, _natureActionservice, _errorResponseManagerService, _notificationService, _confirmationService, entityConfigurationService, _dialogService, _identityManagerService, _localize, config, ref) {
|
|
31
37
|
super(ref, config);
|
|
32
38
|
this._actionservice = _actionservice;
|
|
39
|
+
this._natureActionservice = _natureActionservice;
|
|
33
40
|
this._errorResponseManagerService = _errorResponseManagerService;
|
|
34
41
|
this._notificationService = _notificationService;
|
|
35
42
|
this._confirmationService = _confirmationService;
|
|
36
43
|
this.entityConfigurationService = entityConfigurationService;
|
|
37
|
-
this.
|
|
44
|
+
this._dialogService = _dialogService;
|
|
38
45
|
this._identityManagerService = _identityManagerService;
|
|
39
46
|
this._localize = _localize;
|
|
40
47
|
this.config = config;
|
|
@@ -43,7 +50,9 @@ export class TsiActionErpCreateOrEditComponent extends TsiFormComponentBaseCompo
|
|
|
43
50
|
this.administrationEndpoints = AdministrationEndpoints;
|
|
44
51
|
this.businnessClassName = "";
|
|
45
52
|
this.occurenceInfos = null;
|
|
53
|
+
this.classename = null;
|
|
46
54
|
this.modeRef = Modes;
|
|
55
|
+
this.businessClassNames = BusinessClassNames;
|
|
47
56
|
this.actiondetailcolom = [
|
|
48
57
|
{
|
|
49
58
|
field: "classe",
|
|
@@ -67,6 +76,27 @@ export class TsiActionErpCreateOrEditComponent extends TsiFormComponentBaseCompo
|
|
|
67
76
|
isFiltered: true,
|
|
68
77
|
},
|
|
69
78
|
];
|
|
79
|
+
this.participantColumns = [
|
|
80
|
+
{
|
|
81
|
+
field: "utilisateur",
|
|
82
|
+
header: 'shared_action_participant_utilisateur',
|
|
83
|
+
type: InputTypes.SEARCH_COMBO,
|
|
84
|
+
elementSourceUrl: this.administrationEndpoints.getUtilisateurMinimal(),
|
|
85
|
+
listSourceUrl: this.administrationEndpoints.getAllUtilisateurMinimal(),
|
|
86
|
+
idField: "uid",
|
|
87
|
+
labelField: "nomPrenom",
|
|
88
|
+
inputName: "utilisateur",
|
|
89
|
+
isFiltered: true,
|
|
90
|
+
businessClass: BusinessClassNames.Utilisateur,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
field: "obligatoire",
|
|
94
|
+
header: 'shared_action_participant_obligatoire',
|
|
95
|
+
type: InputTypes.CHECKBOX,
|
|
96
|
+
inputName: "obligatoire",
|
|
97
|
+
isBinary: true,
|
|
98
|
+
},
|
|
99
|
+
];
|
|
70
100
|
this.businnessClassName = config?.data?.customData?.occurenceInfos?.businessclass ?? '';
|
|
71
101
|
this.businessClass = BusinessClassNames.ActionERP;
|
|
72
102
|
if (config?.data?.customData?.occurenceInfos) {
|
|
@@ -75,6 +105,9 @@ export class TsiActionErpCreateOrEditComponent extends TsiFormComponentBaseCompo
|
|
|
75
105
|
}
|
|
76
106
|
ngOnInit() {
|
|
77
107
|
super.ngOnInit();
|
|
108
|
+
if (this.config?.data?.actionSuivante != true) {
|
|
109
|
+
this.action.natureAction = this.customData?.natureAction;
|
|
110
|
+
}
|
|
78
111
|
if (this.action.actionERPDetails.length === 0 && this.occurenceInfos?.businessclass) {
|
|
79
112
|
const nouveauDetail = {
|
|
80
113
|
classe: this.occurenceInfos?.businessclass,
|
|
@@ -212,7 +245,7 @@ export class TsiActionErpCreateOrEditComponent extends TsiFormComponentBaseCompo
|
|
|
212
245
|
height: ModalSizeEnum.Medium.height,
|
|
213
246
|
maximizable: true,
|
|
214
247
|
};
|
|
215
|
-
let dialogReference = this.
|
|
248
|
+
let dialogReference = this._dialogService?.open(TypeRegistryHelper.getType(entity.formName), conf);
|
|
216
249
|
dialogReference?.onClose.subscribe((_) => {
|
|
217
250
|
});
|
|
218
251
|
},
|
|
@@ -221,11 +254,135 @@ export class TsiActionErpCreateOrEditComponent extends TsiFormComponentBaseCompo
|
|
|
221
254
|
}
|
|
222
255
|
});
|
|
223
256
|
}
|
|
224
|
-
|
|
225
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiActionErpCreateOrEditComponent, selector: "lib-tsi-action-erp-create-or-edit", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel :mode:'shared_action_add_action'\" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"col-12\">\r\n <div class=\"grid row-gap-2\">\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_numero'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Integer [inputName]=\"'Numero'\" [(inputField)]=\"action.numero\"\r\n [disabled]=\"true\"></Tsi-Integer></div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurDemandeur'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurDemandeur\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [isFiltered]=\"true\" [inputName]=\"'utilisateurDemandeur'\"\r\n [businessClass]=\"businessClass\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_objet'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Objet'\" [(inputField)]=\"action.objet\"\r\n [rows]=\"3\"></Tsi-Text-Area></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_priorite'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allPrioriteActionCRMEnum\"\r\n [(bind)]=\"action.priorite\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Priorite'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurAssigne'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurAssigne\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [inputName]=\"'UtilisateurAssigne'\" [isFiltered]=\"true\"\r\n [businessClass]=\"businessClass\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_resultat'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allResultatActionCRMEnum\"\r\n [(bind)]=\"action.resultat\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Resultat'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_lieu'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Lieu'\"\r\n [(inputField)]=\"action.lieu\"></Tsi-Text-Area></div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'anglais_echeance'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"form-group border p-2\">\r\n <div class=\"grid mb-1\">\r\n <div class=\"col-4\"></div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Debut' | localize }}</b>\r\n </div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Fin' | localize }}</b>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action_dateHeure_Prev'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutPrev'\"\r\n [(inputField)]=\"action.dateHeureDebutPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinPrev'\"\r\n [(inputField)]=\"action.dateHeureFinPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action.dateHeuree_Realisee'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutRealisee'\"\r\n [(inputField)]=\"action.dateHeureDebutRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinRealisee'\"\r\n [(inputField)]=\"action.dateHeureFinRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-4\">\r\n <p-fieldset [legend]=\"'action_Fieldset_alerte' | localize\">\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-4\"><Tsi-Label [labelValue]=\"'action_alerte'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\"><Tsi-CheckBox [inputName]=\"'Alerte'\" [isBinary]=\"true\"\r\n [(inputField)]=\"action.alerte\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center\">\r\n <div class=\"col-4\"><Tsi-Label [labelValue]=\"'action_alerteAvant'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Integer [inputName]=\"'AlerteAvant'\"\r\n [(inputField)]=\"action.alerteAvant\"></Tsi-Integer></div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n </div>\r\n\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'Liste_des_action_details'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"col-12 mt-3\">\r\n <Tsi-Generic-Editable-Grid (onConsultClicked)=\"consultElement($event)\"\r\n [showConsultButton]=\"true\" [columns]=\"actiondetailcolom\"\r\n [gridData]=\"action.actionERPDetails\" [parent]=\"this\"></Tsi-Generic-Editable-Grid>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n </div>\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [showSaveAndCloseButton]=\"mode == modeRef.delete\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i5.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i6.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i7.EditableGridComponent, selector: "Tsi-Generic-Editable-Grid", inputs: ["selectedItems", "configuration", "key", "items", "events", "showGlobalSearch", "showAddButton", "showDeleteButton", "showEditButton", "showRowSummary", "scrollHeight", "rowPerPage", "pageSize", "entityPrimaryKeyName", "columns", "gridData", "isTableLoading", "parent", "showSaveButton", "showActionColumn", "enableRowDisabling", "rowSummaryConfig", "showHaveSumary", "showRowSumary", "selectKeyOnly", "selectionMode", "showConsultButton", "editableGridBusinessClass", "orderColumn", "deleteLineButtonDisabled", "showDuplicateButton", "id"], outputs: ["itemsSave", "refreshEventEmitter", "saveDataEventEmitter", "rowChangedEventEmitter", "selectedRowEventEmitter", "addedRowEventEmitter", "focusOutEventEmitter", "cellChanged", "rowDeletedEventEmitter", "selectedItemsChange", "onRowSelect", "focusOutRow", "onConsultClicked", "rowDuplicatedEventEmitter"] }, { kind: "component", type: i8.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i9.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i10.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i11.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i12.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i13.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i14.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i15.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i16.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i17.LocalizePipe, name: "localize" }, { kind: "pipe", type: i18.ModalLabelPipe, name: "modalLabel" }] }); }
|
|
257
|
+
createElement(classe) {
|
|
258
|
+
if (!classe) {
|
|
259
|
+
this._notificationService.error(this._localize.transform('search_combo_component_nameEntity'));
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
this.entityConfigurationService.getEntityInfo(classe).subscribe({
|
|
263
|
+
next: (entity) => {
|
|
264
|
+
if (!entity || !entity.formName) {
|
|
265
|
+
this._notificationService?.error(this._localize.transform('search_combo_component_form_name_nf'));
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const conf = {
|
|
269
|
+
data: {
|
|
270
|
+
mode: Component_Modes.CREATE,
|
|
271
|
+
customData: entity,
|
|
272
|
+
id: null
|
|
273
|
+
},
|
|
274
|
+
styleClass: '',
|
|
275
|
+
width: ModalSizeEnum.Medium.width,
|
|
276
|
+
height: ModalSizeEnum.Medium.height,
|
|
277
|
+
maximizable: true,
|
|
278
|
+
};
|
|
279
|
+
const componentType = TypeRegistryHelper.getType(entity.formName);
|
|
280
|
+
const dialogReference = this._dialogService?.open(componentType, conf);
|
|
281
|
+
if (!dialogReference)
|
|
282
|
+
return;
|
|
283
|
+
dialogReference.onClose.subscribe((result) => {
|
|
284
|
+
if (!result)
|
|
285
|
+
return;
|
|
286
|
+
const uid = result?.uid ?? result?.id ?? result;
|
|
287
|
+
if (uid) {
|
|
288
|
+
const newDetail = {
|
|
289
|
+
classe: classe,
|
|
290
|
+
occurence: uid.toString(),
|
|
291
|
+
actionERP: undefined
|
|
292
|
+
};
|
|
293
|
+
this.action.actionERPDetails = [...this.action.actionERPDetails, newDetail];
|
|
294
|
+
this._notificationService.info(this._localize.transform('savedSuccessfully'));
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
},
|
|
298
|
+
error: (err) => {
|
|
299
|
+
this._notificationService?.error(this._localize.transform('search_combo_component_form_name_nf'));
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
onClasseSelected(selected) {
|
|
304
|
+
const classe = typeof selected === 'string'
|
|
305
|
+
? selected
|
|
306
|
+
: selected?.className;
|
|
307
|
+
if (!classe)
|
|
308
|
+
return;
|
|
309
|
+
this.createElement(classe);
|
|
310
|
+
}
|
|
311
|
+
async openActionERPPopUp() {
|
|
312
|
+
const natureActionSuivante = await firstValueFrom(this._natureActionservice.GetNatureActionSuivanteByOrdre(this.action.natureAction));
|
|
313
|
+
const nouvelleAction = {
|
|
314
|
+
actionPrecedente: this.action.uid,
|
|
315
|
+
codeActionPrecedente: this.action.numero,
|
|
316
|
+
dateHeureDebutPrev: this.action.dateHeureDebutPrev,
|
|
317
|
+
dateHeureFinPrev: this.action.dateHeureFinPrev,
|
|
318
|
+
utilisateurDemandeur: this.action.utilisateurDemandeur,
|
|
319
|
+
natureAction: natureActionSuivante?.uid,
|
|
320
|
+
utilisateurAssigne: natureActionSuivante?.realisateur,
|
|
321
|
+
statut: StatutActionCRMEnum.EnAttente,
|
|
322
|
+
actionERPDetails: this.action.actionERPDetails?.map(detail => ({
|
|
323
|
+
classe: detail.classe,
|
|
324
|
+
occurence: detail.occurence,
|
|
325
|
+
actionERP: undefined
|
|
326
|
+
})) ?? []
|
|
327
|
+
};
|
|
328
|
+
let conf = {
|
|
329
|
+
data: {
|
|
330
|
+
mode: Modes.create,
|
|
331
|
+
action: nouvelleAction,
|
|
332
|
+
actionSuivante: true,
|
|
333
|
+
},
|
|
334
|
+
width: ModalSizeEnum.Medium.width,
|
|
335
|
+
height: ModalSizeEnum.Large.height,
|
|
336
|
+
maximizable: true,
|
|
337
|
+
closable: true
|
|
338
|
+
};
|
|
339
|
+
this.ref = this._dialogService.open(TsiActionErpCreateOrEditComponent, conf);
|
|
340
|
+
this.ref.onClose.subscribe((result) => {
|
|
341
|
+
if (result) {
|
|
342
|
+
this.action.uid = result;
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
onNatureActionChange(natureActionId) {
|
|
347
|
+
if (!natureActionId)
|
|
348
|
+
return;
|
|
349
|
+
this._natureActionservice.getById(natureActionId).subscribe({
|
|
350
|
+
next: (natureAction) => {
|
|
351
|
+
if (natureAction?.realisateur) {
|
|
352
|
+
this.action.utilisateurAssigne = natureAction.realisateur;
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
error: (error) => {
|
|
356
|
+
this._errorResponseManagerService.showErrorMessage(error);
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
openActionPrecedentePopup() {
|
|
361
|
+
if (!this.action.actionPrecedente) {
|
|
362
|
+
this._notificationService.error(this._localize.transform('shared_action_ActionPrecedente_not_found'));
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
const conf = {
|
|
366
|
+
data: {
|
|
367
|
+
mode: Modes.edit,
|
|
368
|
+
id: this.action.actionPrecedente,
|
|
369
|
+
},
|
|
370
|
+
width: ModalSizeEnum.Medium.width,
|
|
371
|
+
height: ModalSizeEnum.Large.height,
|
|
372
|
+
maximizable: true,
|
|
373
|
+
closable: true,
|
|
374
|
+
};
|
|
375
|
+
const dialogRef = this._dialogService.open(TsiActionErpCreateOrEditComponent, conf);
|
|
376
|
+
dialogRef.onClose.subscribe((result) => {
|
|
377
|
+
if (result) {
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiActionErpCreateOrEditComponent, deps: [{ token: i1.ActionErpService }, { token: i2.NatureActionService }, { token: i1.ErrorResponseManagerService }, { token: i1.TsiNotificationService }, { token: i1.TsiConfirmationService }, { token: i1.EntityConfigurationService }, { token: i3.DialogService }, { token: i1.IdentityManagerService }, { token: i4.LocalizePipe }, { token: i3.DynamicDialogConfig }, { token: i3.DynamicDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
382
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiActionErpCreateOrEditComponent, selector: "lib-tsi-action-erp-create-or-edit", providers: [...appProviders, DialogService], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel :mode:'shared_action_add_action'\" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"col-12\">\r\n <div class=\"grid row-gap-2\">\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_Nature_Action'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getNatureActionMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllNatureActionMinimal()\"\r\n [(bind)]=\"action.natureAction\" id-field=\"uid\" label-field=\"libelle\" [isFiltered]=\"true\"\r\n [inputName]=\"'NatureAction'\" [businessClass]=\"businessClassNames.NatureAction\"\r\n (bindChange)=\"onNatureActionChange($event)\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_numero'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Integer [inputName]=\"'Numero'\" [(inputField)]=\"action.numero\"\r\n [disabled]=\"true\"></Tsi-Integer></div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurDemandeur'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurDemandeur\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [isFiltered]=\"true\" [inputName]=\"'utilisateurDemandeur'\"\r\n [businessClass]=\"businessClassNames.Utilisateur\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_objet'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Objet'\" [(inputField)]=\"action.objet\"\r\n [rows]=\"3\"></Tsi-Text-Area></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_priorite'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allPrioriteActionCRMEnum\"\r\n [(bind)]=\"action.priorite\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Priorite'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurAssigne'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurAssigne\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [inputName]=\"'UtilisateurAssigne'\" [isFiltered]=\"true\"\r\n [businessClass]=\"businessClassNames.Utilisateur\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_resultat'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allResultatActionCRMEnum\"\r\n [(bind)]=\"action.resultat\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Resultat'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_lieu'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Lieu'\"\r\n [(inputField)]=\"action.lieu\"></Tsi-Text-Area></div>\r\n </div>\r\n\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_ActionPrecedente'\"></Tsi-Label></div>\r\n <div class=\"col-7\"><Tsi-Integer [inputName]=\"'ActionPrecedente'\"\r\n [(inputField)]=\"action.codeActionPrecedente\" [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n <div class=\"col-1\">\r\n <Tsi-Button [icon]=\"'pi pi-caret-up'\" [disabled]=\"!action.actionPrecedente\"\r\n (onClick)=\"openActionPrecedentePopup()\">\r\n </Tsi-Button>\r\n \r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'anglais_echeance'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"form-group border p-2\">\r\n <div class=\"grid mb-1\">\r\n <div class=\"col-4\"></div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Debut' | localize }}</b>\r\n </div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Fin' | localize }}</b>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action_dateHeure_Prev'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutPrev'\"\r\n [(inputField)]=\"action.dateHeureDebutPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinPrev'\"\r\n [(inputField)]=\"action.dateHeureFinPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action.dateHeuree_Realisee'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutRealisee'\"\r\n [(inputField)]=\"action.dateHeureDebutRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinRealisee'\"\r\n [(inputField)]=\"action.dateHeureFinRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-4\">\r\n <p-fieldset [legend]=\"'action_Fieldset_alerte' | localize\">\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'action_alerte'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-4\"><Tsi-CheckBox [inputName]=\"'Alerte'\" [isBinary]=\"true\"\r\n [(inputField)]=\"action.alerte\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center \">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'action_alerteAvant'\"></Tsi-Label>\r\n </div>\r\n\r\n <div class=\"col-3 flex align-items-center gap-2\"><Tsi-Integer\r\n [inputName]=\"'AlerteAvant'\" [(inputField)]=\"action.alerteAvant\">\r\n </Tsi-Integer>\r\n <span class=\"text-nowrap\">{{'jours'| localize}}</span>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'Liste_des_action_details'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n <div presentationDesigner=\"action_Generer\" class=\"grid\">\r\n <Tsi-Label class=\"col-1 col-offset-1\" [labelValue]=\"'action_Generer'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-4\" inputName=\"className\" id-field=\"className\"\r\n label-field=\"className\"\r\n [listSourceUrl]=\"this.administrationEndpoints.GetAllEntitiesInformations()\"\r\n [isFiltered]=\"false\" [(bind)]=\"classename\" [businessClass]=\"businessClass\"\r\n (bindChange)=\"onClasseSelected($event)\"> ></Tsi-Search-Combo>\r\n </div>\r\n <Tsi-Generic-Editable-Grid (onConsultClicked)=\"consultElement($event)\"\r\n [showConsultButton]=\"true\" [columns]=\"actiondetailcolom\"\r\n [gridData]=\"action.actionERPDetails\" [parent]=\"this\"></Tsi-Generic-Editable-Grid>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'shared_action_participants'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"participantColumns\"\r\n [gridData]=\"action.actionERPUtilisateurs\" [parent]=\"this\" [showAddButton]=\"true\"\r\n [showDeleteButton]=\"true\"></Tsi-Generic-Editable-Grid>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n </div>\r\n </fieldset>\r\n\r\n <div *ngIf=\"mode !== modeRef.create\" class=\"grid mt-2\" presentationDesigner=\"actionnouvelle_actionERP\">\r\n <div class=\"col-8\">\r\n <Tsi-Button class=\"w-full\" (onClick)=\"openActionERPPopUp()\"\r\n [text]=\"'actionnouvelle_actionERP'\"></Tsi-Button>\r\n </div>\r\n </div>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\"\r\n [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i7.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i8.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i9.EditableGridComponent, selector: "Tsi-Generic-Editable-Grid", inputs: ["selectedItems", "configuration", "key", "items", "events", "showGlobalSearch", "showAddButton", "showDeleteButton", "showEditButton", "showRowSummary", "scrollHeight", "rowPerPage", "pageSize", "entityPrimaryKeyName", "columns", "gridData", "isTableLoading", "parent", "showSaveButton", "showActionColumn", "enableRowDisabling", "rowSummaryConfig", "showHaveSumary", "showRowSumary", "selectKeyOnly", "selectionMode", "showConsultButton", "editableGridBusinessClass", "orderColumn", "deleteLineButtonDisabled", "showDuplicateButton", "id"], outputs: ["itemsSave", "refreshEventEmitter", "saveDataEventEmitter", "rowChangedEventEmitter", "selectedRowEventEmitter", "addedRowEventEmitter", "focusOutEventEmitter", "cellChanged", "rowDeletedEventEmitter", "selectedItemsChange", "onRowSelect", "focusOutRow", "onConsultClicked", "rowDuplicatedEventEmitter"] }, { kind: "component", type: i10.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i11.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i12.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i13.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i14.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i15.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i16.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i17.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i18.TsiButtonComponent, selector: "Tsi-Button", inputs: ["disabled", "text", "style", "tooltipText", "tooltipPosition", "buttonType", "icon", "styleClass", "iconSrc", "id", "iconWidth", "iconClass"], outputs: ["onClick", "rightClick"] }, { kind: "component", type: i19.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "directive", type: i20.PresentationDesignerDirective, selector: "[presentationDesigner]" }, { kind: "pipe", type: i21.LocalizePipe, name: "localize" }, { kind: "pipe", type: i22.ModalLabelPipe, name: "modalLabel" }] }); }
|
|
226
383
|
}
|
|
227
384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiActionErpCreateOrEditComponent, decorators: [{
|
|
228
385
|
type: Component,
|
|
229
|
-
args: [{ selector: 'lib-tsi-action-erp-create-or-edit', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel :mode:'shared_action_add_action'\" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"col-12\">\r\n <div class=\"grid row-gap-2\">\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_numero'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Integer [inputName]=\"'Numero'\" [(inputField)]=\"action.numero\"\r\n [disabled]=\"true\"></Tsi-Integer></div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurDemandeur'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurDemandeur\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [isFiltered]=\"true\" [inputName]=\"'utilisateurDemandeur'\"\r\n [businessClass]=\"businessClass\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_objet'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Objet'\" [(inputField)]=\"action.objet\"\r\n [rows]=\"3\"></Tsi-Text-Area></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_priorite'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allPrioriteActionCRMEnum\"\r\n [(bind)]=\"action.priorite\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Priorite'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurAssigne'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurAssigne\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [inputName]=\"'UtilisateurAssigne'\" [isFiltered]=\"true\"\r\n [businessClass]=\"businessClass\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_resultat'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allResultatActionCRMEnum\"\r\n [(bind)]=\"action.resultat\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Resultat'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_lieu'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Lieu'\"\r\n [(inputField)]=\"action.lieu\"></Tsi-Text-Area></div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'anglais_echeance'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"form-group border p-2\">\r\n <div class=\"grid mb-1\">\r\n <div class=\"col-4\"></div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Debut' | localize }}</b>\r\n </div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Fin' | localize }}</b>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action_dateHeure_Prev'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutPrev'\"\r\n [(inputField)]=\"action.dateHeureDebutPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinPrev'\"\r\n [(inputField)]=\"action.dateHeureFinPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action.dateHeuree_Realisee'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutRealisee'\"\r\n [(inputField)]=\"action.dateHeureDebutRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinRealisee'\"\r\n [(inputField)]=\"action.dateHeureFinRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-4\">\r\n <p-fieldset [legend]=\"'action_Fieldset_alerte' | localize\">\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-4\"><Tsi-Label [labelValue]=\"'action_alerte'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\"><Tsi-CheckBox [inputName]=\"'Alerte'\" [isBinary]=\"true\"\r\n [(inputField)]=\"action.alerte\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center\">\r\n <div class=\"col-4\"><Tsi-Label [labelValue]=\"'action_alerteAvant'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Integer [inputName]=\"'AlerteAvant'\"\r\n [(inputField)]=\"action.alerteAvant\"></Tsi-Integer></div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n </div>\r\n\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'Liste_des_action_details'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"col-12 mt-3\">\r\n <Tsi-Generic-Editable-Grid (onConsultClicked)=\"consultElement($event)\"\r\n [showConsultButton]=\"true\" [columns]=\"actiondetailcolom\"\r\n [gridData]=\"action.actionERPDetails\" [parent]=\"this\"></Tsi-Generic-Editable-Grid>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n </div>\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [showSaveAndCloseButton]=\"mode == modeRef.delete\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>" }]
|
|
230
|
-
}], ctorParameters: () => [{ type: i1.ActionErpService }, { type: i1.ErrorResponseManagerService }, { type: i1.TsiNotificationService }, { type: i1.TsiConfirmationService }, { type: i1.EntityConfigurationService }, { type:
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWFjdGlvbi1lcnAtY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL3RzaS1hY3Rpb24tZXJwLWNyZWF0ZS1vci1lZGl0L3RzaS1hY3Rpb24tZXJwLWNyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktYWN0aW9uLWVycC1jcmVhdGUtb3ItZWRpdC90c2ktYWN0aW9uLWVycC1jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFtQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV3ZFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw2QkFBNkI7SUFNbEYsWUFDUyxjQUFnQyxFQUMvQiw0QkFB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U0FBUztxQkFDbkI7b0JBQ0QsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSztvQkFDakMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTTtvQkFDbkMsV0FBVyxFQUFFLElBQUk7aUJBQ2xCLENBQUM7Z0JBRUYsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FDL0Msa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDM0MsSUFBSSxDQUNMLENBQUM7Z0JBRUYsZUFBZSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM1RSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FsT1UsaUNBQWlDO21HQUFqQyxpQ0FBaUMsNERBRmpDLENBQUMsR0FBRyxZQUFZLENBQUMsaURDckI5Qiw0NFRBa0pXOzs0RkQzSEUsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLG1DQUFtQyxhQUdsQyxDQUFDLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdHNpLWJhc2UnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IEFjdGlvbkVSUCwgQWN0aW9uRVJQRGV0YWlsLCBvY2N1cmVuY2VJbmZvcyB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb25FcnAvYWN0aW9uRXJwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50X01vZGVzLCBJbnB1dFR5cGVzLCBNb2RhbFNpemVFbnVtLCBNb2RlcyB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uS2V5cyB9IGZyb20gJy4uLy4uL2NvbnN0cy9sb2NhbGl6YXRpb24ta2V5JztcclxuaW1wb3J0IHsgQWN0aW9uRXJwU2VydmljZSwgRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLCBUc2lOb3RpZmljYXRpb25TZXJ2aWNlLCBUc2lDb25maXJtYXRpb25TZXJ2aWNlLCBFbnRpdHlDb25maWd1cmF0aW9uU2VydmljZSwgVHNpTW9kYWxTZXJ2aWNlLCBDdXJyZW50VXNlclNlcnZpY2UsIElkZW50aXR5TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vZW5kLXBvaW50cyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW4gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IFR5cGVSZWdpc3RyeUhlbHBlciB9IGZyb20gJy4uLy4uL3RzaS1oZWxwZXJzL3R5cGUtcmVnaXN0cnkuaGVscGVyJztcclxuaW1wb3J0IHsgQnVzaW5lc3NDbGFzc05hbWVzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2J1c2luZXNzLWNsYXNzLW5hbWVzJztcclxuaW1wb3J0IHsgTG9jYWxpemVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10c2ktYWN0aW9uLWVycC1jcmVhdGUtb3ItZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1hY3Rpb24tZXJwLWNyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdHNpLWFjdGlvbi1lcnAtY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmNzcycsXHJcbiAgcHJvdmlkZXJzOiBbLi4uYXBwUHJvdmlkZXJzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpQWN0aW9uRXJwQ3JlYXRlT3JFZGl0Q29tcG9uZW50IGV4dGVuZHMgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGFjdGlvbiA9IG5ldyBBY3Rpb25FUlAoKTtcclxuICBhZG1pbmlzdHJhdGlvbkVuZHBvaW50cyA9IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzO1xyXG4gIGJ1c2lubmVzc0NsYXNzTmFtZTogc3RyaW5nID0gXCJcIlxyXG4gIG9jY3VyZW5jZUluZm9zOiBvY2N1cmVuY2VJbmZvcyB8IG51bGwgPSBudWxsO1xyXG4gIG1vZGVSZWYgPSBNb2RlcztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfYWN0aW9uc2VydmljZTogQWN0aW9uRXJwU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZTogRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uU2VydmljZTogVHNpTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpcm1hdGlvblNlcnZpY2U6IFRzaUNvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZW50aXR5Q29uZmlndXJhdGlvblNlcnZpY2U6IEVudGl0eUNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHNpTW9kYWxTZXJ2aWNlOiBUc2lNb2RhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pZGVudGl0eU1hbmFnZXJTZXJ2aWNlOiBJZGVudGl0eU1hbmFnZXJTZXJ2aWNlLFxyXG4gICBwcml2YXRlIF9sb2NhbGl6ZTogTG9jYWxpemVQaXBlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZywgcHVibGljIG92ZXJyaWRlIHJlZj86IER5bmFtaWNEaWFsb2dSZWYsXHJcblxyXG4gICkge1xyXG4gICAgc3VwZXIocmVmLCBjb25maWcpXHJcbiAgICB0aGlzLmJ1c2lubmVzc0NsYXNzTmFtZSA9IGNvbmZpZz8uZGF0YT8uY3VzdG9tRGF0YT8ub2NjdXJlbmNlSW5mb3M/LmJ1c2luZXNzY2xhc3MgPz8gJyc7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ2xhc3MgPSBCdXNpbmVzc0NsYXNzTmFtZXMuQWN0aW9uRVJQO1xyXG5cclxuICAgIGlmIChjb25maWc/LmRhdGE/LmN1c3RvbURhdGE/Lm9jY3VyZW5jZUluZm9zKSB7XHJcbiAgICAgIHRoaXMub2NjdXJlbmNlSW5mb3MgPSBjb25maWcuZGF0YS5jdXN0b21EYXRhLm9jY3VyZW5jZUluZm9zIGFzIG9jY3VyZW5jZUluZm9zO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIGlmICh0aGlzLmFjdGlvbi5hY3Rpb25FUlBEZXRhaWxzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLm9jY3VyZW5jZUluZm9zPy5idXNpbmVzc2NsYXNzKSB7XHJcblxyXG4gICAgICBjb25zdCBub3V2ZWF1RGV0YWlsOiBBY3Rpb25FUlBEZXRhaWwgPSB7XHJcbiAgICAgICAgY2xhc3NlOiB0aGlzLm9jY3VyZW5jZUluZm9zPy5idXNpbmVzc2NsYXNzLFxyXG4gICAgICAgIG9jY3VyZW5jZTogdGhpcy5vY2N1cmVuY2VJbmZvcz8ub2NjdXJlbmNlPy50b1N0cmluZygpLFxyXG4gICAgICAgIGFjdGlvbkVSUDogdW5kZWZpbmVkXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmFjdGlvbi5hY3Rpb25FUlBEZXRhaWxzLnB1c2gobm91dmVhdURldGFpbCk7XHJcbiAgICB9XHJcblxyXG4gIHRoaXMuYWN0aW9uLmFjdGlvbkVSUERldGFpbHM/LmZpbmQoZCA9PiBkLmNsYXNzZSkgXHJcbiAgICBcclxuICAgIGlmIChcclxuICAgICAgKHRoaXMubW9kZSA9PT0gTW9kZXMuZWRpdCB8fCB0aGlzLm1vZGUgPT09IE1vZGVzLmRlbGV0ZSB8fCB0aGlzLm1vZGUgPT09IE1vZGVzLmNvbnN1bHQpICYmXHJcbiAgICAgIHRoaXMuaWQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmlkICE9PSBudWxsXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9hY3Rpb25zZXJ2aWNlLmdldEJ5SWQodGhpcy5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb24gPSBkYXRhO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmJ1c2lubmVzc0NsYXNzTmFtZSAmJiB0aGlzLmFjdGlvbi5hY3Rpb25FUlBEZXRhaWxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmJ1c2lubmVzc0NsYXNzTmFtZSA9IHRoaXMuYWN0aW9uLmFjdGlvbkVSUERldGFpbHNbMF0uY2xhc3NlID8/ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3RhdHVzID0gdGhpcy5hY3Rpb24uc3RhdHV0O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fZXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLnNob3dFcnJvck1lc3NhZ2UoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09IE1vZGVzLmNyZWF0ZSkge1xyXG4gICAgICBsZXQgdG9rZW4gPSB0aGlzLl9pZGVudGl0eU1hbmFnZXJTZXJ2aWNlLnBhcnNlTXlBdXRoVG9rZW4oKTtcclxuXHJcbiAgICAgIGlmICghdG9rZW4pIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uLnV0aWxpc2F0ZXVyRGVtYW5kZXVyID0gdG9rZW4ucHJpbWFyeXNpZD8udG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBhY3Rpb25kZXRhaWxjb2xvbTogQXJyYXk8R3JpZENvbHVtbj4gPSBbXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiBcImNsYXNzZVwiLFxyXG4gICAgICBoZWFkZXI6ICdzaGFyZWRfYWN0aW9uX2NsYXNzZU5hbWUnLFxyXG4gICAgICB0eXBlOiBJbnB1dFR5cGVzLlNFQVJDSF9DT01CTyxcclxuICAgICAgbGlzdFNvdXJjZVVybDogdGhpcy5hZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5HZXRBbGxFbnRpdGllc0luZm9ybWF0aW9ucygpLFxyXG4gICAgICBpZEZpZWxkOiBcImNsYXNzTmFtZVwiLFxyXG4gICAgICBsYWJlbEZpZWxkOiBcImNsYXNzTmFtZVwiLFxyXG4gICAgICBpbnB1dE5hbWU6IFwiY2xhc3NlXCIsXHJcbiAgICAgIHdhdGNoRm9yQ2hhbmdlczogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiBcIm9jY3VyZW5jZVwiLFxyXG4gICAgICBoZWFkZXI6ICdzaGFyZWRfYWN0aW9uX29jY3VyZW5jZScsXHJcbiAgICAgIHR5cGU6IElucHV0VHlwZXMuU0VBUkNIX0NPTUJPLFxyXG4gICAgICBsaXN0U291cmNlVXJsOiAocm93OiBhbnkpID0+IHRoaXMuZ2V0T2NjdXJlbmNlTGlzdFVybChyb3cpLFxyXG4gICAgICBlbGVtZW50U291cmNlVXJsOihyb3cgOiBhbnkpID0+IHRoaXMuZ2V0T2NjdXJlbmNlVXJsKHJvdyksXHJcbiAgICAgIGlkRmllbGQ6IFwiaWRcIixcclxuICAgICAgbGFiZWxGaWVsZDogXCJkaXNwbGF5TmFtZVwiLFxyXG4gICAgICBpbnB1dE5hbWU6IFwib2NjdXJlbmNlXCIsXHJcbiAgICAgIGlzRmlsdGVyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgZ2V0T2NjdXJlbmNlTGlzdFVybChyb3c6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBrZXkgPSByb3c/LmNsYXNzZTtcclxuICAgIGlmICgha2V5KSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gQWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0RW50aXR5RGF0YShrZXkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2NjdXJlbmNlVXJsKHJvdzogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGtleSA9IHJvdz8uY2xhc3NlO1xyXG4gICAgaWYgKCFrZXkpIHJldHVybiAnJztcclxuICAgIHJldHVybiBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRFbnRpdHlEYXRhQnlJZChrZXkpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnNhdmUoKVxyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3Rpb24uc3RhdHV0ID0gdGhpcy5zdGF0dXNcclxuICAgIGlmICh0aGlzLm1vZGUgPT09IE1vZGVzLmNyZWF0ZSkge1xyXG4gICAgICB0aGlzLl9hY3Rpb25zZXJ2aWNlLmNyZWF0ZSh0aGlzLmFjdGlvbikuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLmluZm8odGhpcy5sKExvY2FsaXphdGlvbktleXMuc2F2ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMubW9kZSA9PT0gTW9kZXMuZWRpdCAmJlxyXG4gICAgICB0aGlzLmlkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fYWN0aW9uc2VydmljZS51cGRhdGUodGhpcy5hY3Rpb24sIHRoaXMuaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5pbmZvKHRoaXMubChMb2NhbGl6YXRpb25LZXlzLnVwZGF0ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSBNb2Rlcy5kZWxldGUpIHtcclxuICAgICAgdGhpcy5fY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKFxyXG4gICAgICAgIExvY2FsaXphdGlvbktleXMuY29uZmlybURlbGV0ZSxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICByZXN1bHQgJiZcclxuICAgICAgICAgICAgdGhpcy5pZFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGlvbnNlcnZpY2UuZGVsZXRlKHRoaXMuaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKHRoaXMubChMb2NhbGl6YXRpb25LZXlzLmRlbGV0ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVycm9yOiAocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2Uuc2hvd0Vycm9yTWVzc2FnZShyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3VsdEVsZW1lbnQoaXRlbTogYW55KSB7XHJcbiAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0uY2xhc3NlKSB7XHJcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXCJzZWFyY2hfY29tYm9fY29tcG9uZW50X25hbWVFbnRpdHlcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghaXRlbSB8fCAhaXRlbS5vY2N1cmVuY2UpIHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0aGlzLl9sb2NhbGl6ZS50cmFuc2Zvcm0oJ2FjdGlvbl9ub19zZWxlY3RlZF9pdGVtX2Zvcl9jb25zdWx0YXRpb24nKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVudGl0eUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldEVudGl0eUluZm8oaXRlbS5jbGFzc2UpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICAoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoIWVudGl0eSB8fCAhZW50aXR5LmZvcm1OYW1lKSB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlPy5lcnJvcih0aGlzLl9sb2NhbGl6ZS50cmFuc2Zvcm0oJ3NlYXJjaF9jb21ib19jb21wb25lbnRfZm9ybV9uYW1lX25mJykpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29uZjogRHluYW1pY0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgbW9kZTogQ29tcG9uZW50X01vZGVzLkNPTlNVTFQsXHJcbiAgICAgICAgICAgIGN1c3RvbURhdGE6IGVudGl0eSxcclxuICAgICAgICAgICAgaWQ6IGl0ZW0ub2NjdXJlbmNlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3R5bGVDbGFzczogJycsXHJcbiAgICAgICAgICB3aWR0aDogTW9kYWxTaXplRW51bS5NZWRpdW0ud2lkdGgsXHJcbiAgICAgICAgICBoZWlnaHQ6IE1vZGFsU2l6ZUVudW0uTWVkaXVtLmhlaWdodCxcclxuICAgICAgICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGxldCBkaWFsb2dSZWZlcmVuY2UgPSB0aGlzLl90c2lNb2RhbFNlcnZpY2U/Lm9wZW4oXHJcbiAgICAgICAgICBUeXBlUmVnaXN0cnlIZWxwZXIuZ2V0VHlwZShlbnRpdHkuZm9ybU5hbWUpLFxyXG4gICAgICAgICAgY29uZlxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZmVyZW5jZT8ub25DbG9zZS5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyZXVyIGxvcnMgZGUgbGEgcsOpY3Vww6lyYXRpb24gZGVzIGluZm9zIGQnZW50aXTDqSA6XCIsIGVycik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8dHNpLWZvcm0gY2xhc3M9XCJmb3JtLWhvcml6b250YWxcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAob25TdWJtaXQpPVwic2F2ZSgpXCIgW2lzTG9hZGluZ109XCJpc2xvYWRpbmdcIj5cclxuICAgIDxUc2ktTW9kYWwtSGVhZGVyIFtpbnB1dFRpdGxlXT1cImhlYWRlciB8IG1vZGFsTGFiZWwgOm1vZGU6J3NoYXJlZF9hY3Rpb25fYWRkX2FjdGlvbidcIiAob25DbG9zZUNsaWNrKT1cImhpZGUoKVwiPlxyXG4gICAgPC9Uc2ktTW9kYWwtSGVhZGVyPlxyXG5cclxuICAgIDxmaWVsZHNldCBbZGlzYWJsZWRdPVwiaXNEZWxldGVNb2RlKCkgfHwgaXNDb25zdWx0TW9kZSgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCByb3ctZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl9udW1lcm8nXCI+PC9Uc2ktTGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPjxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cIidOdW1lcm8nXCIgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24ubnVtZXJvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvVHNpLUludGVnZXI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPjxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ3NoYXJlZF9hY3Rpb25fdXRpbGlzYXRldXJEZW1hbmRldXInXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIFtlbGVtZW50U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldFV0aWxpc2F0ZXVyTWluaW1hbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxVdGlsaXNhdGV1ck1pbmltYWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhiaW5kKV09XCJhY3Rpb24udXRpbGlzYXRldXJEZW1hbmRldXJcIiBpZC1maWVsZD1cInVpZFwiIGxhYmVsLWZpZWxkPVwibm9tUHJlbm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJ0cnVlXCIgW2lucHV0TmFtZV09XCIndXRpbGlzYXRldXJEZW1hbmRldXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnVzaW5lc3NDbGFzc109XCJidXNpbmVzc0NsYXNzXCI+PC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl9vYmpldCdcIj48L1RzaS1MYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+PFRzaS1UZXh0LUFyZWEgW2lucHV0TmFtZV09XCInT2JqZXQnXCIgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24ub2JqZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cIjNcIj48L1RzaS1UZXh0LUFyZWE+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPjxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ3NoYXJlZF9hY3Rpb25fcHJpb3JpdGUnXCI+PC9Uc2ktTGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gW2xpc3RTb3VyY2VVcmxdPVwiYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuYWxsUHJpb3JpdGVBY3Rpb25DUk1FbnVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cImFjdGlvbi5wcmlvcml0ZVwiIGlkLWZpZWxkPVwia2V5XCIgbGFiZWwtZmllbGQ9XCJ2YWx1ZVwiIFtpbnB1dE5hbWVdPVwiJ1ByaW9yaXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTZWFyY2hCdXR0b25dPVwiZmFsc2VcIj48L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl91dGlsaXNhdGV1ckFzc2lnbmUnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIFtlbGVtZW50U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldFV0aWxpc2F0ZXVyTWluaW1hbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxVdGlsaXNhdGV1ck1pbmltYWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhiaW5kKV09XCJhY3Rpb24udXRpbGlzYXRldXJBc3NpZ25lXCIgaWQtZmllbGQ9XCJ1aWRcIiBsYWJlbC1maWVsZD1cIm5vbVByZW5vbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TmFtZV09XCInVXRpbGlzYXRldXJBc3NpZ25lJ1wiIFtpc0ZpbHRlcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXNpbmVzc0NsYXNzXT1cImJ1c2luZXNzQ2xhc3NcIj48L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj48VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidzaGFyZWRfYWN0aW9uX3Jlc3VsdGF0J1wiPjwvVHNpLUxhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmFsbFJlc3VsdGF0QWN0aW9uQ1JNRW51bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhiaW5kKV09XCJhY3Rpb24ucmVzdWx0YXRcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIiBbaW5wdXROYW1lXT1cIidSZXN1bHRhdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93U2VhcmNoQnV0dG9uXT1cImZhbHNlXCI+PC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl9saWV1J1wiPjwvVHNpLUxhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj48VHNpLVRleHQtQXJlYSBbaW5wdXROYW1lXT1cIidMaWV1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24ubGlldVwiPjwvVHNpLVRleHQtQXJlYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8cC10YWJWaWV3PlxyXG4gICAgICAgICAgICAgICAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCInYW5nbGFpc19lY2hlYW5jZSd8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBib3JkZXIgcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IHRleHQtY2VudGVyXCI+PGI+e3sgJ2FjdGlvbl9EZWJ1dCcgfCBsb2NhbGl6ZSB9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IHRleHQtY2VudGVyXCI+PGI+e3sgJ2FjdGlvbl9GaW4nIHwgbG9jYWxpemUgfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktTGFiZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwiJ2FjdGlvbl9kYXRlSGV1cmVfUHJldidcIj48L1RzaS1MYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktRGF0ZS1QaWNrZXIgW2lucHV0TmFtZV09XCInRGF0ZUhldXJlRGVidXRQcmV2J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwiYWN0aW9uLmRhdGVIZXVyZURlYnV0UHJldlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCI+PC9Uc2ktRGF0ZS1QaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktRGF0ZS1QaWNrZXIgW2lucHV0TmFtZV09XCInRGF0ZUhldXJlRmluUHJldidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGlucHV0RmllbGQpXT1cImFjdGlvbi5kYXRlSGV1cmVGaW5QcmV2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInRydWVcIj48L1RzaS1EYXRlLVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktTGFiZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVmFsdWVdPVwiJ2FjdGlvbi5kYXRlSGV1cmVlX1JlYWxpc2VlJ1wiPjwvVHNpLUxhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+PFRzaS1EYXRlLVBpY2tlciBbaW5wdXROYW1lXT1cIidEYXRlSGV1cmVEZWJ1dFJlYWxpc2VlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwiYWN0aW9uLmRhdGVIZXVyZURlYnV0UmVhbGlzZWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiPjwvVHNpLURhdGUtUGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48VHNpLURhdGUtUGlja2VyIFtpbnB1dE5hbWVdPVwiJ0RhdGVIZXVyZUZpblJlYWxpc2VlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwiYWN0aW9uLmRhdGVIZXVyZUZpblJlYWxpc2VlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInRydWVcIj48L1RzaS1EYXRlLVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZpZWxkc2V0IFtsZWdlbmRdPVwiJ2FjdGlvbl9GaWVsZHNldF9hbGVydGUnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInYWN0aW9uX2FsZXJ0ZSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+PFRzaS1DaGVja0JveCBbaW5wdXROYW1lXT1cIidBbGVydGUnXCIgW2lzQmluYXJ5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGlucHV0RmllbGQpXT1cImFjdGlvbi5hbGVydGVcIj48L1RzaS1DaGVja0JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ2FjdGlvbl9hbGVydGVBdmFudCdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+PFRzaS1JbnRlZ2VyIFtpbnB1dE5hbWVdPVwiJ0FsZXJ0ZUF2YW50J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwiYWN0aW9uLmFsZXJ0ZUF2YW50XCI+PC9Uc2ktSW50ZWdlcj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZpZWxkc2V0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLXRhYlBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCInTGlzdGVfZGVzX2FjdGlvbl9kZXRhaWxzJ3wgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktR2VuZXJpYy1FZGl0YWJsZS1HcmlkIChvbkNvbnN1bHRDbGlja2VkKT1cImNvbnN1bHRFbGVtZW50KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q29uc3VsdEJ1dHRvbl09XCJ0cnVlXCIgW2NvbHVtbnNdPVwiYWN0aW9uZGV0YWlsY29sb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncmlkRGF0YV09XCJhY3Rpb24uYWN0aW9uRVJQRGV0YWlsc1wiIFtwYXJlbnRdPVwidGhpc1wiPjwvVHNpLUdlbmVyaWMtRWRpdGFibGUtR3JpZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvcC10YWJQYW5lbD5cclxuICAgICAgICAgICAgPC9wLXRhYlZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2ZpZWxkc2V0PlxyXG5cclxuICAgIDxUc2ktTW9kYWwtRm9vdGVyIFtzaG93U2F2ZUFuZENsb3NlQnV0dG9uXT1cIm1vZGUgPT0gbW9kZVJlZi5kZWxldGVcIiBbY2FuY2VsRGlzYWJsZWRdPVwic2F2aW5nXCIgW3NhdmVEaXNhYmxlZF09XCJpc1N1Ym1pdERpc2FibGVkKClcIlxyXG4gICAgICAgIChvbkNhbmNlbENsaWNrKT1cImhpZGUoKVwiPjwvVHNpLU1vZGFsLUZvb3Rlcj5cclxuPC90c2ktZm9ybT4iXX0=
|
|
386
|
+
args: [{ selector: 'lib-tsi-action-erp-create-or-edit', providers: [...appProviders, DialogService], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel :mode:'shared_action_add_action'\" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"col-12\">\r\n <div class=\"grid row-gap-2\">\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_Nature_Action'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getNatureActionMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllNatureActionMinimal()\"\r\n [(bind)]=\"action.natureAction\" id-field=\"uid\" label-field=\"libelle\" [isFiltered]=\"true\"\r\n [inputName]=\"'NatureAction'\" [businessClass]=\"businessClassNames.NatureAction\"\r\n (bindChange)=\"onNatureActionChange($event)\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_numero'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Integer [inputName]=\"'Numero'\" [(inputField)]=\"action.numero\"\r\n [disabled]=\"true\"></Tsi-Integer></div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurDemandeur'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurDemandeur\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [isFiltered]=\"true\" [inputName]=\"'utilisateurDemandeur'\"\r\n [businessClass]=\"businessClassNames.Utilisateur\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_objet'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Objet'\" [(inputField)]=\"action.objet\"\r\n [rows]=\"3\"></Tsi-Text-Area></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_priorite'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allPrioriteActionCRMEnum\"\r\n [(bind)]=\"action.priorite\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Priorite'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_utilisateurAssigne'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [elementSourceUrl]=\"administrationEndpoints.getUtilisateurMinimal()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllUtilisateurMinimal()\"\r\n [(bind)]=\"action.utilisateurAssigne\" id-field=\"uid\" label-field=\"nomPrenom\"\r\n [inputName]=\"'UtilisateurAssigne'\" [isFiltered]=\"true\"\r\n [businessClass]=\"businessClassNames.Utilisateur\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_resultat'\"></Tsi-Label></div>\r\n <div class=\"col-8\">\r\n <Tsi-Search-Combo [listSourceUrl]=\"administrationEndpoints.allResultatActionCRMEnum\"\r\n [(bind)]=\"action.resultat\" id-field=\"key\" label-field=\"value\" [inputName]=\"'Resultat'\"\r\n [showSearchButton]=\"false\"></Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_lieu'\"></Tsi-Label></div>\r\n <div class=\"col-8\"><Tsi-Text-Area [inputName]=\"'Lieu'\"\r\n [(inputField)]=\"action.lieu\"></Tsi-Text-Area></div>\r\n </div>\r\n\r\n <div class=\"grid align-items-center\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'shared_action_ActionPrecedente'\"></Tsi-Label></div>\r\n <div class=\"col-7\"><Tsi-Integer [inputName]=\"'ActionPrecedente'\"\r\n [(inputField)]=\"action.codeActionPrecedente\" [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n <div class=\"col-1\">\r\n <Tsi-Button [icon]=\"'pi pi-caret-up'\" [disabled]=\"!action.actionPrecedente\"\r\n (onClick)=\"openActionPrecedentePopup()\">\r\n </Tsi-Button>\r\n \r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'anglais_echeance'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"form-group border p-2\">\r\n <div class=\"grid mb-1\">\r\n <div class=\"col-4\"></div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Debut' | localize }}</b>\r\n </div>\r\n <div class=\"col-4 text-center\"><b>{{ 'action_Fin' | localize }}</b>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action_dateHeure_Prev'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutPrev'\"\r\n [(inputField)]=\"action.dateHeureDebutPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinPrev'\"\r\n [(inputField)]=\"action.dateHeureFinPrev\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center\">\r\n <div class=\"col-4\"><Tsi-Label\r\n [labelValue]=\"'action.dateHeuree_Realisee'\"></Tsi-Label></div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureDebutRealisee'\"\r\n [(inputField)]=\"action.dateHeureDebutRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n <div class=\"col-4\"><Tsi-Date-Picker [inputName]=\"'DateHeureFinRealisee'\"\r\n [(inputField)]=\"action.dateHeureFinRealisee\"\r\n [showTime]=\"true\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-4\">\r\n <p-fieldset [legend]=\"'action_Fieldset_alerte' | localize\">\r\n <div class=\"grid flex align-items-center mb-2\">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'action_alerte'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-4\"><Tsi-CheckBox [inputName]=\"'Alerte'\" [isBinary]=\"true\"\r\n [(inputField)]=\"action.alerte\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <div class=\"grid flex align-items-center \">\r\n <div class=\"col-3\"><Tsi-Label [labelValue]=\"'action_alerteAvant'\"></Tsi-Label>\r\n </div>\r\n\r\n <div class=\"col-3 flex align-items-center gap-2\"><Tsi-Integer\r\n [inputName]=\"'AlerteAvant'\" [(inputField)]=\"action.alerteAvant\">\r\n </Tsi-Integer>\r\n <span class=\"text-nowrap\">{{'jours'| localize}}</span>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'Liste_des_action_details'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n <div presentationDesigner=\"action_Generer\" class=\"grid\">\r\n <Tsi-Label class=\"col-1 col-offset-1\" [labelValue]=\"'action_Generer'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-4\" inputName=\"className\" id-field=\"className\"\r\n label-field=\"className\"\r\n [listSourceUrl]=\"this.administrationEndpoints.GetAllEntitiesInformations()\"\r\n [isFiltered]=\"false\" [(bind)]=\"classename\" [businessClass]=\"businessClass\"\r\n (bindChange)=\"onClasseSelected($event)\"> ></Tsi-Search-Combo>\r\n </div>\r\n <Tsi-Generic-Editable-Grid (onConsultClicked)=\"consultElement($event)\"\r\n [showConsultButton]=\"true\" [columns]=\"actiondetailcolom\"\r\n [gridData]=\"action.actionERPDetails\" [parent]=\"this\"></Tsi-Generic-Editable-Grid>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'shared_action_participants'| localize\">\r\n <ng-template pTemplate=\"content\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"participantColumns\"\r\n [gridData]=\"action.actionERPUtilisateurs\" [parent]=\"this\" [showAddButton]=\"true\"\r\n [showDeleteButton]=\"true\"></Tsi-Generic-Editable-Grid>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n </div>\r\n </fieldset>\r\n\r\n <div *ngIf=\"mode !== modeRef.create\" class=\"grid mt-2\" presentationDesigner=\"actionnouvelle_actionERP\">\r\n <div class=\"col-8\">\r\n <Tsi-Button class=\"w-full\" (onClick)=\"openActionERPPopUp()\"\r\n [text]=\"'actionnouvelle_actionERP'\"></Tsi-Button>\r\n </div>\r\n </div>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\"\r\n [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>" }]
|
|
387
|
+
}], ctorParameters: () => [{ type: i1.ActionErpService }, { type: i2.NatureActionService }, { type: i1.ErrorResponseManagerService }, { type: i1.TsiNotificationService }, { type: i1.TsiConfirmationService }, { type: i1.EntityConfigurationService }, { type: i3.DialogService }, { type: i1.IdentityManagerService }, { type: i4.LocalizePipe }, { type: i3.DynamicDialogConfig }, { type: i3.DynamicDialogRef }] });
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWFjdGlvbi1lcnAtY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL3RzaS1hY3Rpb24tZXJwLWNyZWF0ZS1vci1lZGl0L3RzaS1hY3Rpb24tZXJwLWNyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktYWN0aW9uLWVycC1jcmVhdGUtb3ItZWRpdC90c2ktYWN0aW9uLWVycC1jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFtQyxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25ILE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBeUMsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFF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R2xDLENBQUMsR0FBRyxZQUFZLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdHNpLWJhc2UnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IEFjdGlvbkVSUCwgQWN0aW9uRVJQRGV0YWlsLCBvY2N1cmVuY2VJbmZvcywgU3RhdHV0QWN0aW9uQ1JNRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb25FcnAvYWN0aW9uRXJwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50X01vZGVzLCBJbnB1dFR5cGVzLCBNb2RhbFNpemVFbnVtLCBNb2RlcyB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uS2V5cyB9IGZyb20gJy4uLy4uL2NvbnN0cy9sb2NhbGl6YXRpb24ta2V5JztcclxuaW1wb3J0IHsgQWN0aW9uRXJwU2VydmljZSwgRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLCBUc2lOb3RpZmljYXRpb25TZXJ2aWNlLCBUc2lDb25maXJtYXRpb25TZXJ2aWNlLCBFbnRpdHlDb25maWd1cmF0aW9uU2VydmljZSwgVHNpTW9kYWxTZXJ2aWNlLCBDdXJyZW50VXNlclNlcnZpY2UsIElkZW50aXR5TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vZW5kLXBvaW50cyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW4gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IFR5cGVSZWdpc3RyeUhlbHBlciB9IGZyb20gJy4uLy4uL3RzaS1oZWxwZXJzL3R5cGUtcmVnaXN0cnkuaGVscGVyJztcclxuaW1wb3J0IHsgQnVzaW5lc3NDbGFzc05hbWVzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2J1c2luZXNzLWNsYXNzLW5hbWVzJztcclxuaW1wb3J0IHsgTG9jYWxpemVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOYXR1cmVBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWN0aW9uRXJwL25hdHVyZS1hY3Rpb24tc2VydmljZS5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdHNpLWFjdGlvbi1lcnAtY3JlYXRlLW9yLWVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktYWN0aW9uLWVycC1jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RzaS1hY3Rpb24tZXJwLWNyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5jc3MnLFxyXG4gIHByb3ZpZGVyczogWy4uLmFwcFByb3ZpZGVycywgRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRzaUFjdGlvbkVycENyZWF0ZU9yRWRpdENvbXBvbmVudCBleHRlbmRzIFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhY3Rpb24gPSBuZXcgQWN0aW9uRVJQKCk7XHJcbiAgYWRtaW5pc3RyYXRpb25FbmRwb2ludHMgPSBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cztcclxuICBidXNpbm5lc3NDbGFzc05hbWU6IHN0cmluZyA9IFwiXCJcclxuICBvY2N1cmVuY2VJbmZvczogb2NjdXJlbmNlSW5mb3MgfCBudWxsID0gbnVsbDtcclxuICBjbGFzc2VuYW1lOiBhbnkgPSBudWxsO1xyXG4gIG1vZGVSZWYgPSBNb2RlcztcclxuICBidXNpbmVzc0NsYXNzTmFtZXMgPSBCdXNpbmVzc0NsYXNzTmFtZXM7XHJcbiAgYWN0aW9uUHJlY2VkZW50ZUNvZGU6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfYWN0aW9uc2VydmljZTogQWN0aW9uRXJwU2VydmljZSxcclxuICAgIHB1YmxpYyBfbmF0dXJlQWN0aW9uc2VydmljZTogTmF0dXJlQWN0aW9uU2VydmljZSxcclxuXHJcbiAgICBwcml2YXRlIF9lcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2U6IEVycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvblNlcnZpY2U6IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maXJtYXRpb25TZXJ2aWNlOiBUc2lDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGVudGl0eUNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBFbnRpdHlDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pZGVudGl0eU1hbmFnZXJTZXJ2aWNlOiBJZGVudGl0eU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbG9jYWxpemU6IExvY2FsaXplUGlwZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsIHB1YmxpYyBvdmVycmlkZSByZWY/OiBEeW5hbWljRGlhbG9nUmVmLFxyXG5cclxuXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZylcclxuICAgIHRoaXMuYnVzaW5uZXNzQ2xhc3NOYW1lID0gY29uZmlnPy5kYXRhPy5jdXN0b21EYXRhPy5vY2N1cmVuY2VJbmZvcz8uYnVzaW5lc3NjbGFzcyA/PyAnJztcclxuICAgIHRoaXMuYnVzaW5lc3NDbGFzcyA9IEJ1c2luZXNzQ2xhc3NOYW1lcy5BY3Rpb25FUlA7XHJcblxyXG4gICAgaWYgKGNvbmZpZz8uZGF0YT8uY3VzdG9tRGF0YT8ub2NjdXJlbmNlSW5mb3MpIHtcclxuICAgICAgdGhpcy5vY2N1cmVuY2VJbmZvcyA9IGNvbmZpZy5kYXRhLmN1c3RvbURhdGEub2NjdXJlbmNlSW5mb3MgYXMgb2NjdXJlbmNlSW5mb3M7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uZGF0YT8uYWN0aW9uU3VpdmFudGUgIT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmFjdGlvbi5uYXR1cmVBY3Rpb24gPSB0aGlzLmN1c3RvbURhdGE/Lm5hdHVyZUFjdGlvblxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmFjdGlvbi5hY3Rpb25FUlBEZXRhaWxzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLm9jY3VyZW5jZUluZm9zPy5idXNpbmVzc2NsYXNzKSB7XHJcblxyXG4gICAgICBjb25zdCBub3V2ZWF1RGV0YWlsOiBBY3Rpb25FUlBEZXRhaWwgPSB7XHJcbiAgICAgICAgY2xhc3NlOiB0aGlzLm9jY3VyZW5jZUluZm9zPy5idXNpbmVzc2NsYXNzLFxyXG4gICAgICAgIG9jY3VyZW5jZTogdGhpcy5vY2N1cmVuY2VJbmZvcz8ub2NjdXJlbmNlPy50b1N0cmluZygpLFxyXG4gICAgICAgIGFjdGlvbkVSUDogdW5kZWZpbmVkXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmFjdGlvbi5hY3Rpb25FUlBEZXRhaWxzLnB1c2gobm91dmVhdURldGFpbCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3Rpb24uYWN0aW9uRVJQRGV0YWlscz8uZmluZChkID0+IGQuY2xhc3NlKVxyXG5cclxuICAgIGlmIChcclxuICAgICAgKHRoaXMubW9kZSA9PT0gTW9kZXMuZWRpdCB8fCB0aGlzLm1vZGUgPT09IE1vZGVzLmRlbGV0ZSB8fCB0aGlzLm1vZGUgPT09IE1vZGVzLmNvbnN1bHQpICYmXHJcbiAgICAgIHRoaXMuaWQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmlkICE9PSBudWxsXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9hY3Rpb25zZXJ2aWNlLmdldEJ5SWQodGhpcy5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb24gPSBkYXRhO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmJ1c2lubmVzc0NsYXNzTmFtZSAmJiB0aGlzLmFjdGlvbi5hY3Rpb25FUlBEZXRhaWxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVzaW5uZXNzQ2xhc3NOYW1lID0gdGhpcy5hY3Rpb24uYWN0aW9uRVJQRGV0YWlsc1swXS5jbGFzc2UgPz8gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuYWN0aW9uLnN0YXR1dDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PSBNb2Rlcy5jcmVhdGUpIHtcclxuICAgICAgbGV0IHRva2VuID0gdGhpcy5faWRlbnRpdHlNYW5hZ2VyU2VydmljZS5wYXJzZU15QXV0aFRva2VuKCk7XHJcblxyXG4gICAgICBpZiAoIXRva2VuKSByZXR1cm47XHJcblxyXG4gICAgICB0aGlzLmFjdGlvbi51dGlsaXNhdGV1ckRlbWFuZGV1ciA9IHRva2VuLnByaW1hcnlzaWQ/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGFjdGlvbmRldGFpbGNvbG9tOiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgZmllbGQ6IFwiY2xhc3NlXCIsXHJcbiAgICAgIGhlYWRlcjogJ3NoYXJlZF9hY3Rpb25fY2xhc3NlTmFtZScsXHJcbiAgICAgIHR5cGU6IElucHV0VHlwZXMuU0VBUkNIX0NPTUJPLFxyXG4gICAgICBsaXN0U291cmNlVXJsOiB0aGlzLmFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLkdldEFsbEVudGl0aWVzSW5mb3JtYXRpb25zKCksXHJcbiAgICAgIGlkRmllbGQ6IFwiY2xhc3NOYW1lXCIsXHJcbiAgICAgIGxhYmVsRmllbGQ6IFwiY2xhc3NOYW1lXCIsXHJcbiAgICAgIGlucHV0TmFtZTogXCJjbGFzc2VcIixcclxuICAgICAgd2F0Y2hGb3JDaGFuZ2VzOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6IFwib2NjdXJlbmNlXCIsXHJcbiAgICAgIGhlYWRlcjogJ3NoYXJlZF9hY3Rpb25fb2NjdXJlbmNlJyxcclxuICAgICAgdHlwZTogSW5wdXRUeXBlcy5TRUFSQ0hfQ09NQk8sXHJcbiAgICAgIGxpc3RTb3VyY2VVcmw6IChyb3c6IGFueSkgPT4gdGhpcy5nZXRPY2N1cmVuY2VMaXN0VXJsKHJvdyksXHJcbiAgICAgIGVsZW1lbnRTb3VyY2VVcmw6IChyb3c6IGFueSkgPT4gdGhpcy5nZXRPY2N1cmVuY2VVcmwocm93KSxcclxuICAgICAgaWRGaWVsZDogXCJpZFwiLFxyXG4gICAgICBsYWJlbEZpZWxkOiBcImRpc3BsYXlOYW1lXCIsXHJcbiAgICAgIGlucHV0TmFtZTogXCJvY2N1cmVuY2VcIixcclxuICAgICAgaXNGaWx0ZXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgcGFydGljaXBhbnRDb2x1bW5zOiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgZmllbGQ6IFwidXRpbGlzYXRldXJcIixcclxuICAgICAgaGVhZGVyOiAnc2hhcmVkX2FjdGlvbl9wYXJ0aWNpcGFudF91dGlsaXNhdGV1cicsXHJcbiAgICAgIHR5cGU6IElucHV0VHlwZXMuU0VBUkNIX0NPTUJPLFxyXG4gICAgICBlbGVtZW50U291cmNlVXJsOiB0aGlzLmFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldFV0aWxpc2F0ZXVyTWluaW1hbCgpLFxyXG4gICAgICBsaXN0U291cmNlVXJsOiB0aGlzLmFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbFV0aWxpc2F0ZXVyTWluaW1hbCgpLFxyXG4gICAgICBpZEZpZWxkOiBcInVpZFwiLFxyXG4gICAgICBsYWJlbEZpZWxkOiBcIm5vbVByZW5vbVwiLFxyXG4gICAgICBpbnB1dE5hbWU6IFwidXRpbGlzYXRldXJcIixcclxuICAgICAgaXNGaWx0ZXJlZDogdHJ1ZSxcclxuICAgICAgYnVzaW5lc3NDbGFzczogQnVzaW5lc3NDbGFzc05hbWVzLlV0aWxpc2F0ZXVyLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6IFwib2JsaWdhdG9pcmVcIixcclxuICAgICAgaGVhZGVyOiAnc2hhcmVkX2FjdGlvbl9wYXJ0aWNpcGFudF9vYmxpZ2F0b2lyZScsXHJcbiAgICAgIHR5cGU6IElucHV0VHlwZXMuQ0hFQ0tCT1gsXHJcbiAgICAgIGlucHV0TmFtZTogXCJvYmxpZ2F0b2lyZVwiLFxyXG4gICAgICBpc0JpbmFyeTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgZ2V0T2NjdXJlbmNlTGlzdFVybChyb3c6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBrZXkgPSByb3c/LmNsYXNzZTtcclxuICAgIGlmICgha2V5KSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gQWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0RW50aXR5RGF0YShrZXkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2NjdXJlbmNlVXJsKHJvdzogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGtleSA9IHJvdz8uY2xhc3NlO1xyXG4gICAgaWYgKCFrZXkpIHJldHVybiAnJztcclxuICAgIHJldHVybiBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRFbnRpdHlEYXRhQnlJZChrZXkpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnNhdmUoKVxyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3Rpb24uc3RhdHV0ID0gdGhpcy5zdGF0dXNcclxuICAgIGlmICh0aGlzLm1vZGUgPT09IE1vZGVzLmNyZWF0ZSkge1xyXG4gICAgICB0aGlzLl9hY3Rpb25zZXJ2aWNlLmNyZWF0ZSh0aGlzLmFjdGlvbikuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLmluZm8odGhpcy5sKExvY2FsaXphdGlvbktleXMuc2F2ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMubW9kZSA9PT0gTW9kZXMuZWRpdCAmJlxyXG4gICAgICB0aGlzLmlkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fYWN0aW9uc2VydmljZS51cGRhdGUodGhpcy5hY3Rpb24sIHRoaXMuaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5pbmZvKHRoaXMubChMb2NhbGl6YXRpb25LZXlzLnVwZGF0ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSBNb2Rlcy5kZWxldGUpIHtcclxuICAgICAgdGhpcy5fY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKFxyXG4gICAgICAgIExvY2FsaXphdGlvbktleXMuY29uZmlybURlbGV0ZSxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICByZXN1bHQgJiZcclxuICAgICAgICAgICAgdGhpcy5pZFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGlvbnNlcnZpY2UuZGVsZXRlKHRoaXMuaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKHRoaXMubChMb2NhbGl6YXRpb25LZXlzLmRlbGV0ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVycm9yOiAocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2Uuc2hvd0Vycm9yTWVzc2FnZShyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3VsdEVsZW1lbnQoaXRlbTogYW55KSB7XHJcbiAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0uY2xhc3NlKSB7XHJcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXCJzZWFyY2hfY29tYm9fY29tcG9uZW50X25hbWVFbnRpdHlcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghaXRlbSB8fCAhaXRlbS5vY2N1cmVuY2UpIHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0aGlzLl9sb2NhbGl6ZS50cmFuc2Zvcm0oJ2FjdGlvbl9ub19zZWxlY3RlZF9pdGVtX2Zvcl9jb25zdWx0YXRpb24nKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVudGl0eUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldEVudGl0eUluZm8oaXRlbS5jbGFzc2UpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICghZW50aXR5IHx8ICFlbnRpdHkuZm9ybU5hbWUpIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2U/LmVycm9yKHRoaXMuX2xvY2FsaXplLnRyYW5zZm9ybSgnc2VhcmNoX2NvbWJvX2NvbXBvbmVudF9mb3JtX25hbWVfbmYnKSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjb25mOiBEeW5hbWljRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ09OU1VMVCxcclxuICAgICAgICAgICAgY3VzdG9tRGF0YTogZW50aXR5LFxyXG4gICAgICAgICAgICBpZDogaXRlbS5vY2N1cmVuY2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzdHlsZUNsYXNzOiAnJyxcclxuICAgICAgICAgIHdpZHRoOiBNb2RhbFNpemVFbnVtLk1lZGl1bS53aWR0aCxcclxuICAgICAgICAgIGhlaWdodDogTW9kYWxTaXplRW51bS5NZWRpdW0uaGVpZ2h0LFxyXG4gICAgICAgICAgbWF4aW1pemFibGU6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgbGV0IGRpYWxvZ1JlZmVyZW5jZSA9IHRoaXMuX2RpYWxvZ1NlcnZpY2U/Lm9wZW4oXHJcbiAgICAgICAgICBUeXBlUmVnaXN0cnlIZWxwZXIuZ2V0VHlwZShlbnRpdHkuZm9ybU5hbWUpLFxyXG4gICAgICAgICAgY29uZlxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZmVyZW5jZT8ub25DbG9zZS5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyZXVyIGxvcnMgZGUgbGEgcsOpY3Vww6lyYXRpb24gZGVzIGluZm9zIGQnZW50aXTDqSA6XCIsIGVycik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGNyZWF0ZUVsZW1lbnQoY2xhc3NlOiBzdHJpbmcpIHtcclxuICAgIGlmICghY2xhc3NlKSB7XHJcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgdGhpcy5fbG9jYWxpemUudHJhbnNmb3JtKCdzZWFyY2hfY29tYm9fY29tcG9uZW50X25hbWVFbnRpdHknKVxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbnRpdHlDb25maWd1cmF0aW9uU2VydmljZS5nZXRFbnRpdHlJbmZvKGNsYXNzZSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKCFlbnRpdHkgfHwgIWVudGl0eS5mb3JtTmFtZSkge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZT8uZXJyb3IoXHJcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsaXplLnRyYW5zZm9ybSgnc2VhcmNoX2NvbWJvX2NvbXBvbmVudF9mb3JtX25hbWVfbmYnKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbmY6IER5bmFtaWNEaWFsb2dDb25maWcgPSB7XHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIG1vZGU6IENvbXBvbmVudF9Nb2Rlcy5DUkVBVEUsXHJcbiAgICAgICAgICAgIGN1c3RvbURhdGE6IGVudGl0eSxcclxuICAgICAgICAgICAgaWQ6IG51bGxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzdHlsZUNsYXNzOiAnJyxcclxuICAgICAgICAgIHdpZHRoOiBNb2RhbFNpemVFbnVtLk1lZGl1bS53aWR0aCxcclxuICAgICAgICAgIGhlaWdodDogTW9kYWxTaXplRW51bS5NZWRpdW0uaGVpZ2h0LFxyXG4gICAgICAgICAgbWF4aW1pemFibGU6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9IFR5cGVSZWdpc3RyeUhlbHBlci5nZXRUeXBlKGVudGl0eS5mb3JtTmFtZSk7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmZXJlbmNlID0gdGhpcy5fZGlhbG9nU2VydmljZT8ub3Blbihjb21wb25lbnRUeXBlLCBjb25mKTtcclxuXHJcbiAgICAgICAgaWYgKCFkaWFsb2dSZWZlcmVuY2UpIHJldHVybjtcclxuXHJcbiAgICAgICAgZGlhbG9nUmVmZXJlbmNlLm9uQ2xvc2Uuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBjb25zdCB1aWQgPSByZXN1bHQ/LnVpZCA/PyByZXN1bHQ/LmlkID8/IHJlc3VsdDtcclxuXHJcbiAgICAgICAgICBpZiAodWlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RldGFpbDogQWN0aW9uRVJQRGV0YWlsID0ge1xyXG4gICAgICAgICAgICAgIGNsYXNzZTogY2xhc3NlLFxyXG4gICAgICAgICAgICAgIG9jY3VyZW5jZTogdWlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgYWN0aW9uRVJQOiB1bmRlZmluZWRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uLmFjdGlvbkVSUERldGFpbHMgPSBbLi4udGhpcy5hY3Rpb24uYWN0aW9uRVJQRGV0YWlscywgbmV3RGV0YWlsXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuaW5mbyhcclxuICAgICAgICAgICAgICB0aGlzLl9sb2NhbGl6ZS50cmFuc2Zvcm0oJ3NhdmVkU3VjY2Vzc2Z1bGx5JylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlPy5lcnJvcihcclxuICAgICAgICAgIHRoaXMuX2xvY2FsaXplLnRyYW5zZm9ybSgnc2VhcmNoX2NvbWJvX2NvbXBvbmVudF9mb3JtX25hbWVfbmYnKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuIG9uQ2xhc3NlU2VsZWN0ZWQoc2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgY29uc3QgY2xhc3NlID0gdHlwZW9mIHNlbGVjdGVkID09PSAnc3RyaW5nJ1xyXG4gICAgICA/IHNlbGVjdGVkXHJcbiAgICAgIDogc2VsZWN0ZWQ/LmNsYXNzTmFtZTtcclxuICAgIGlmICghY2xhc3NlKSByZXR1cm47XHJcbiAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoY2xhc3NlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9wZW5BY3Rpb25FUlBQb3BVcCgpIHtcclxuXHJcbiAgICBjb25zdCBuYXR1cmVBY3Rpb25TdWl2YW50ZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICB0aGlzLl9uYXR1cmVBY3Rpb25zZXJ2aWNlLkdldE5hdHVyZUFjdGlvblN1aXZhbnRlQnlPcmRyZSh0aGlzLmFjdGlvbi5uYXR1cmVBY3Rpb24pXHJcbiAgICApO1xyXG4gICAgY29uc3Qgbm91dmVsbGVBY3Rpb24gPSB7XHJcbiAgICAgIGFjdGlvblByZWNlZGVudGU6IHRoaXMuYWN0aW9uLnVpZCxcclxuICAgICAgY29kZUFjdGlvblByZWNlZGVudGU6IHRoaXMuYWN0aW9uLm51bWVybyxcclxuICAgICAgZGF0ZUhldXJlRGVidXRQcmV2OiB0aGlzLmFjdGlvbi5kYXRlSGV1cmVEZWJ1dFByZXYsXHJcbiAgICAgIGRhdGVIZXVyZUZpblByZXY6IHRoaXMuYWN0aW9uLmRhdGVIZXVyZUZpblByZXYsXHJcbiAgICAgIHV0aWxpc2F0ZXVyRGVtYW5kZXVyOiB0aGlzLmFjdGlvbi51dGlsaXNhdGV1ckRlbWFuZGV1cixcclxuICAgICAgbmF0dXJlQWN0aW9uOiBuYXR1cmVBY3Rpb25TdWl2YW50ZT8udWlkLFxyXG4gICAgICB1dGlsaXNhdGV1ckFzc2lnbmU6IG5hdHVyZUFjdGlvblN1aXZhbnRlPy5yZWFsaXNhdGV1cixcclxuICAgICAgc3RhdHV0OiBTdGF0dXRBY3Rpb25DUk1FbnVtLkVuQXR0ZW50ZSxcclxuICAgICAgYWN0aW9uRVJQRGV0YWlsczogdGhpcy5hY3Rpb24uYWN0aW9uRVJQRGV0YWlscz8ubWFwKGRldGFpbCA9PiAoe1xyXG4gICAgICAgIGNsYXNzZTogZGV0YWlsLmNsYXNzZSxcclxuICAgICAgICBvY2N1cmVuY2U6IGRldGFpbC5vY2N1cmVuY2UsXHJcbiAgICAgICAgYWN0aW9uRVJQOiB1bmRlZmluZWRcclxuICAgICAgfSkpID8/IFtdXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbmY6IER5bmFtaWNEaWFsb2dDb25maWcgPSB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBtb2RlOiBNb2Rlcy5jcmVhdGUsXHJcbiAgICAgICAgYWN0aW9uOiBub3V2ZWxsZUFjdGlvbixcclxuICAgICAgICBhY3Rpb25TdWl2YW50ZTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IE1vZGFsU2l6ZUVudW0uTWVkaXVtLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6IE1vZGFsU2l6ZUVudW0uTGFyZ2UuaGVpZ2h0LFxyXG4gICAgICBtYXhpbWl6YWJsZTogdHJ1ZSxcclxuICAgICAgY2xvc2FibGU6IHRydWVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihUc2lBY3Rpb25FcnBDcmVhdGVPckVkaXRDb21wb25lbnQsIGNvbmYpO1xyXG5cclxuICAgIHRoaXMucmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uLnVpZCA9IHJlc3VsdDtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25OYXR1cmVBY3Rpb25DaGFuZ2UobmF0dXJlQWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFuYXR1cmVBY3Rpb25JZCkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX25hdHVyZUFjdGlvbnNlcnZpY2UuZ2V0QnlJZChuYXR1cmVBY3Rpb25JZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKG5hdHVyZUFjdGlvbikgPT4ge1xyXG4gICAgICAgIGlmIChuYXR1cmVBY3Rpb24/LnJlYWxpc2F0ZXVyKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbi51dGlsaXNhdGV1ckFzc2lnbmUgPSBuYXR1cmVBY3Rpb24ucmVhbGlzYXRldXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLl9lcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2Uuc2hvd0Vycm9yTWVzc2FnZShlcnJvcik7XHJcbiAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBvcGVuQWN0aW9uUHJlY2VkZW50ZVBvcHVwKCk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5hY3Rpb24uYWN0aW9uUHJlY2VkZW50ZSkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihcclxuICAgICAgdGhpcy5fbG9jYWxpemUudHJhbnNmb3JtKCdzaGFyZWRfYWN0aW9uX0FjdGlvblByZWNlZGVudGVfbm90X2ZvdW5kJylcclxuICAgICk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBjb25mOiBEeW5hbWljRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgZGF0YToge1xyXG4gICAgICBtb2RlOiBNb2Rlcy5lZGl0LFxyXG4gICAgICBpZDogdGhpcy5hY3Rpb24uYWN0aW9uUHJlY2VkZW50ZSxcclxuICAgICAgXHJcbiAgICB9LFxyXG4gICAgd2lkdGg6IE1vZGFsU2l6ZUVudW0uTWVkaXVtLndpZHRoLFxyXG4gICAgaGVpZ2h0OiBNb2RhbFNpemVFbnVtLkxhcmdlLmhlaWdodCxcclxuICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICBcclxuICB9O1xyXG4gIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihcclxuICAgIFRzaUFjdGlvbkVycENyZWF0ZU9yRWRpdENvbXBvbmVudCxcclxuICAgIGNvbmZcclxuICApO1xyXG5cclxuICBkaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG59XHJcbiIsIjx0c2ktZm9ybSBjbGFzcz1cImZvcm0taG9yaXpvbnRhbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChvblN1Ym1pdCk9XCJzYXZlKClcIiBbaXNMb2FkaW5nXT1cImlzbG9hZGluZ1wiPlxyXG4gICAgPFRzaS1Nb2RhbC1IZWFkZXIgW2lucHV0VGl0bGVdPVwiaGVhZGVyIHwgbW9kYWxMYWJlbCA6bW9kZTonc2hhcmVkX2FjdGlvbl9hZGRfYWN0aW9uJ1wiIChvbkNsb3NlQ2xpY2spPVwiaGlkZSgpXCI+XHJcbiAgICA8L1RzaS1Nb2RhbC1IZWFkZXI+XHJcblxyXG4gICAgPGZpZWxkc2V0IFtkaXNhYmxlZF09XCJpc0RlbGV0ZU1vZGUoKSB8fCBpc0NvbnN1bHRNb2RlKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIHJvdy1nYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj48VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidzaGFyZWRfYWN0aW9uX05hdHVyZV9BY3Rpb24nXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIFtlbGVtZW50U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldE5hdHVyZUFjdGlvbk1pbmltYWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3RTb3VyY2VVcmxdPVwiYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0QWxsTmF0dXJlQWN0aW9uTWluaW1hbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cImFjdGlvbi5uYXR1cmVBY3Rpb25cIiBpZC1maWVsZD1cInVpZFwiIGxhYmVsLWZpZWxkPVwibGliZWxsZVwiIFtpc0ZpbHRlcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ05hdHVyZUFjdGlvbidcIiBbYnVzaW5lc3NDbGFzc109XCJidXNpbmVzc0NsYXNzTmFtZXMuTmF0dXJlQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmluZENoYW5nZSk9XCJvbk5hdHVyZUFjdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl9udW1lcm8nXCI+PC9Uc2ktTGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPjxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cIidOdW1lcm8nXCIgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24ubnVtZXJvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvVHNpLUludGVnZXI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPjxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ3NoYXJlZF9hY3Rpb25fdXRpbGlzYXRldXJEZW1hbmRldXInXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIFtlbGVtZW50U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldFV0aWxpc2F0ZXVyTWluaW1hbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxVdGlsaXNhdGV1ck1pbmltYWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhiaW5kKV09XCJhY3Rpb24udXRpbGlzYXRldXJEZW1hbmRldXJcIiBpZC1maWVsZD1cInVpZFwiIGxhYmVsLWZpZWxkPVwibm9tUHJlbm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJ0cnVlXCIgW2lucHV0TmFtZV09XCIndXRpbGlzYXRldXJEZW1hbmRldXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnVzaW5lc3NDbGFzc109XCJidXNpbmVzc0NsYXNzTmFtZXMuVXRpbGlzYXRldXJcIj48L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj48VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidzaGFyZWRfYWN0aW9uX29iamV0J1wiPjwvVHNpLUxhYmVsPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj48VHNpLVRleHQtQXJlYSBbaW5wdXROYW1lXT1cIidPYmpldCdcIiBbKGlucHV0RmllbGQpXT1cImFjdGlvbi5vYmpldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd3NdPVwiM1wiPjwvVHNpLVRleHQtQXJlYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl9wcmlvcml0ZSdcIj48L1RzaS1MYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5hbGxQcmlvcml0ZUFjdGlvbkNSTUVudW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYmluZCldPVwiYWN0aW9uLnByaW9yaXRlXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCIgW2lucHV0TmFtZV09XCInUHJpb3JpdGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlYXJjaEJ1dHRvbl09XCJmYWxzZVwiPjwvVHNpLVNlYXJjaC1Db21ibz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj48VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidzaGFyZWRfYWN0aW9uX3V0aWxpc2F0ZXVyQXNzaWduZSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gW2VsZW1lbnRTb3VyY2VVcmxdPVwiYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0VXRpbGlzYXRldXJNaW5pbWFsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbFV0aWxpc2F0ZXVyTWluaW1hbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cImFjdGlvbi51dGlsaXNhdGV1ckFzc2lnbmVcIiBpZC1maWVsZD1cInVpZFwiIGxhYmVsLWZpZWxkPVwibm9tUHJlbm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXROYW1lXT1cIidVdGlsaXNhdGV1ckFzc2lnbmUnXCIgW2lzRmlsdGVyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1c2luZXNzQ2xhc3NdPVwiYnVzaW5lc3NDbGFzc05hbWVzLlV0aWxpc2F0ZXVyXCI+PC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInc2hhcmVkX2FjdGlvbl9yZXN1bHRhdCdcIj48L1RzaS1MYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5hbGxSZXN1bHRhdEFjdGlvbkNSTUVudW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYmluZCldPVwiYWN0aW9uLnJlc3VsdGF0XCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCIgW2lucHV0TmFtZV09XCInUmVzdWx0YXQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlYXJjaEJ1dHRvbl09XCJmYWxzZVwiPjwvVHNpLVNlYXJjaC1Db21ibz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPjxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ3NoYXJlZF9hY3Rpb25fbGlldSdcIj48L1RzaS1MYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+PFRzaS1UZXh0LUFyZWEgW2lucHV0TmFtZV09XCInTGlldSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwiYWN0aW9uLmxpZXVcIj48L1RzaS1UZXh0LUFyZWE+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj48VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidzaGFyZWRfYWN0aW9uX0FjdGlvblByZWNlZGVudGUnXCI+PC9Uc2ktTGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtN1wiPjxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cIidBY3Rpb25QcmVjZWRlbnRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24uY29kZUFjdGlvblByZWNlZGVudGVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvVHNpLUludGVnZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUc2ktQnV0dG9uIFtpY29uXT1cIidwaSBwaS1jYXJldC11cCdcIiBbZGlzYWJsZWRdPVwiIWFjdGlvbi5hY3Rpb25QcmVjZWRlbnRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJvcGVuQWN0aW9uUHJlY2VkZW50ZVBvcHVwKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVHNpLUJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPHAtdGFiVmlldz5cclxuICAgICAgICAgICAgICAgIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ2FuZ2xhaXNfZWNoZWFuY2UnfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm9yZGVyIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCB0ZXh0LWNlbnRlclwiPjxiPnt7ICdhY3Rpb25fRGVidXQnIHwgbG9jYWxpemUgfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCB0ZXh0LWNlbnRlclwiPjxiPnt7ICdhY3Rpb25fRmluJyB8IGxvY2FsaXplIH19PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48VHNpLUxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFZhbHVlXT1cIidhY3Rpb25fZGF0ZUhldXJlX1ByZXYnXCI+PC9Uc2ktTGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48VHNpLURhdGUtUGlja2VyIFtpbnB1dE5hbWVdPVwiJ0RhdGVIZXVyZURlYnV0UHJldidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGlucHV0RmllbGQpXT1cImFjdGlvbi5kYXRlSGV1cmVEZWJ1dFByZXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiPjwvVHNpLURhdGUtUGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48VHNpLURhdGUtUGlja2VyIFtpbnB1dE5hbWVdPVwiJ0RhdGVIZXVyZUZpblByZXYnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24uZGF0ZUhldXJlRmluUHJldlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCI+PC9Uc2ktRGF0ZS1QaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48VHNpLUxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFZhbHVlXT1cIidhY3Rpb24uZGF0ZUhldXJlZV9SZWFsaXNlZSdcIj48L1RzaS1MYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktRGF0ZS1QaWNrZXIgW2lucHV0TmFtZV09XCInRGF0ZUhldXJlRGVidXRSZWFsaXNlZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGlucHV0RmllbGQpXT1cImFjdGlvbi5kYXRlSGV1cmVEZWJ1dFJlYWxpc2VlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInRydWVcIj48L1RzaS1EYXRlLVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+PFRzaS1EYXRlLVBpY2tlciBbaW5wdXROYW1lXT1cIidEYXRlSGV1cmVGaW5SZWFsaXNlZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGlucHV0RmllbGQpXT1cImFjdGlvbi5kYXRlSGV1cmVGaW5SZWFsaXNlZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCI+PC9Uc2ktRGF0ZS1QaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1maWVsZHNldCBbbGVnZW5kXT1cIidhY3Rpb25fRmllbGRzZXRfYWxlcnRlJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPjxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ2FjdGlvbl9hbGVydGUnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPjxUc2ktQ2hlY2tCb3ggW2lucHV0TmFtZV09XCInQWxlcnRlJ1wiIFtpc0JpbmFyeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJhY3Rpb24uYWxlcnRlXCI+PC9Uc2ktQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+PFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInYWN0aW9uX2FsZXJ0ZUF2YW50J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+PFRzaS1JbnRlZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ0FsZXJ0ZUF2YW50J1wiIFsoaW5wdXRGaWVsZCldPVwiYWN0aW9uLmFsZXJ0ZUF2YW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Uc2ktSW50ZWdlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3snam91cnMnfCBsb2NhbGl6ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1maWVsZHNldD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLXRhYlBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCInTGlzdGVfZGVzX2FjdGlvbl9kZXRhaWxzJ3wgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBwcmVzZW50YXRpb25EZXNpZ25lcj1cImFjdGlvbl9HZW5lcmVyXCIgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0xIGNvbC1vZmZzZXQtMVwiIFtsYWJlbFZhbHVlXT1cIidhY3Rpb25fR2VuZXJlcidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBjbGFzcz1cImNvbC00XCIgaW5wdXROYW1lPVwiY2xhc3NOYW1lXCIgaWQtZmllbGQ9XCJjbGFzc05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1maWVsZD1cImNsYXNzTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cInRoaXMuYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuR2V0QWxsRW50aXRpZXNJbmZvcm1hdGlvbnMoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ZpbHRlcmVkXT1cImZhbHNlXCIgWyhiaW5kKV09XCJjbGFzc2VuYW1lXCIgW2J1c2luZXNzQ2xhc3NdPVwiYnVzaW5lc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiaW5kQ2hhbmdlKT1cIm9uQ2xhc3NlU2VsZWN0ZWQoJGV2ZW50KVwiPiA+PC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHNpLUdlbmVyaWMtRWRpdGFibGUtR3JpZCAob25Db25zdWx0Q2xpY2tlZCk9XCJjb25zdWx0RWxlbWVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NvbnN1bHRCdXR0b25dPVwidHJ1ZVwiIFtjb2x1bW5zXT1cImFjdGlvbmRldGFpbGNvbG9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZERhdGFdPVwiYWN0aW9uLmFjdGlvbkVSUERldGFpbHNcIiBbcGFyZW50XT1cInRoaXNcIj48L1RzaS1HZW5lcmljLUVkaXRhYmxlLUdyaWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvcC10YWJQYW5lbD5cclxuICAgICAgICAgICAgICAgIDxwLXRhYlBhbmVsIFtoZWFkZXJdPVwiJ3NoYXJlZF9hY3Rpb25fcGFydGljaXBhbnRzJ3wgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8VHNpLUdlbmVyaWMtRWRpdGFibGUtR3JpZCBbY29sdW1uc109XCJwYXJ0aWNpcGFudENvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyaWREYXRhXT1cImFjdGlvbi5hY3Rpb25FUlBVdGlsaXNhdGV1cnNcIiBbcGFyZW50XT1cInRoaXNcIiBbc2hvd0FkZEJ1dHRvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93RGVsZXRlQnV0dG9uXT1cInRydWVcIj48L1RzaS1HZW5lcmljLUVkaXRhYmxlLUdyaWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvcC10YWJQYW5lbD5cclxuICAgICAgICAgICAgPC9wLXRhYlZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2ZpZWxkc2V0PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJtb2RlICE9PSBtb2RlUmVmLmNyZWF0ZVwiIGNsYXNzPVwiZ3JpZCBtdC0yXCIgcHJlc2VudGF0aW9uRGVzaWduZXI9XCJhY3Rpb25ub3V2ZWxsZV9hY3Rpb25FUlBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgICAgPFRzaS1CdXR0b24gY2xhc3M9XCJ3LWZ1bGxcIiAob25DbGljayk9XCJvcGVuQWN0aW9uRVJQUG9wVXAoKVwiXHJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCInYWN0aW9ubm91dmVsbGVfYWN0aW9uRVJQJ1wiPjwvVHNpLUJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxUc2ktTW9kYWwtRm9vdGVyIFtjYW5jZWxEaXNhYmxlZF09XCJzYXZpbmdcIlxyXG4gICAgICAgIFtzYXZlRGlzYWJsZWRdPVwiaXNTdWJtaXREaXNhYmxlZCgpXCIgKG9uQ2FuY2VsQ2xpY2spPVwiaGlkZSgpXCI+PC9Uc2ktTW9kYWwtRm9vdGVyPlxyXG48L3RzaS1mb3JtPiJdfQ==
|