@sapui5/sap.fe.templates 1.113.0 → 1.114.0
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/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +3 -2
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +6 -1
- package/src/sap/fe/templates/ListReport/ListReportTemplating-dbg.js +7 -7
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +8 -6
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +14 -39
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +14 -42
- package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +19 -6
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +19 -9
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +53 -66
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +56 -71
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +7 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +5 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +3 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block-dbg.js +7 -6
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.tsx +8 -7
- package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +1 -1
- package/src/sap/fe/templates/library-dbg.js +1 -1
- package/src/sap/fe/templates/library-preload.js +15 -15
- package/src/sap/fe/templates/library-preload.js.map +1 -1
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/manifest.json +1 -1
- package/src/sap/fe/templates/messagebundle.properties +6 -0
- package/src/sap/fe/templates/messagebundle_ar.properties +2 -0
- package/src/sap/fe/templates/messagebundle_bg.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ca.properties +2 -0
- package/src/sap/fe/templates/messagebundle_cs.properties +2 -0
- package/src/sap/fe/templates/messagebundle_cy.properties +2 -0
- package/src/sap/fe/templates/messagebundle_da.properties +2 -0
- package/src/sap/fe/templates/messagebundle_de.properties +3 -1
- package/src/sap/fe/templates/messagebundle_el.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en.properties +2 -2
- package/src/sap/fe/templates/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -0
- package/src/sap/fe/templates/messagebundle_es.properties +2 -0
- package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/templates/messagebundle_et.properties +2 -0
- package/src/sap/fe/templates/messagebundle_fi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_fr.properties +2 -0
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +2 -0
- package/src/sap/fe/templates/messagebundle_hi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_hr.properties +2 -0
- package/src/sap/fe/templates/messagebundle_hu.properties +2 -0
- package/src/sap/fe/templates/messagebundle_id.properties +2 -0
- package/src/sap/fe/templates/messagebundle_it.properties +2 -0
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ja.properties +2 -0
- package/src/sap/fe/templates/messagebundle_kk.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ko.properties +2 -0
- package/src/sap/fe/templates/messagebundle_lt.properties +2 -0
- package/src/sap/fe/templates/messagebundle_lv.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ms.properties +2 -0
- package/src/sap/fe/templates/messagebundle_nl.properties +2 -0
- package/src/sap/fe/templates/messagebundle_no.properties +2 -0
- package/src/sap/fe/templates/messagebundle_pl.properties +2 -0
- package/src/sap/fe/templates/messagebundle_pt.properties +2 -0
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ro.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ru.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sh.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sk.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sl.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sv.properties +2 -0
- package/src/sap/fe/templates/messagebundle_th.properties +2 -0
- package/src/sap/fe/templates/messagebundle_tr.properties +2 -0
- package/src/sap/fe/templates/messagebundle_uk.properties +2 -0
- package/src/sap/fe/templates/messagebundle_vi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +2 -0
|
@@ -20,6 +20,7 @@ import { defineUI5Class, extensible, finalExtension, publicExtension, usingExten
|
|
|
20
20
|
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
21
21
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
22
22
|
import { getResourceModel } from "sap/fe/core/helpers/ResourceModelHelper";
|
|
23
|
+
import FELibrary from "sap/fe/core/library";
|
|
23
24
|
import PageController from "sap/fe/core/PageController";
|
|
24
25
|
import CommonHelper from "sap/fe/macros/CommonHelper";
|
|
25
26
|
import DelegateUtil from "sap/fe/macros/DelegateUtil";
|
|
@@ -36,7 +37,7 @@ import Link from "sap/m/Link";
|
|
|
36
37
|
import MessageBox from "sap/m/MessageBox";
|
|
37
38
|
import type Popover from "sap/m/Popover";
|
|
38
39
|
import Core from "sap/ui/core/Core";
|
|
39
|
-
import
|
|
40
|
+
import Message from "sap/ui/core/message/Message";
|
|
40
41
|
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
41
42
|
import type View from "sap/ui/core/mvc/View";
|
|
42
43
|
import type Table from "sap/ui/mdc/Table";
|
|
@@ -58,6 +59,7 @@ import PaginatorOverride from "./overrides/Paginator";
|
|
|
58
59
|
import ShareOverrides from "./overrides/Share";
|
|
59
60
|
import ViewStateOverrides from "./overrides/ViewState";
|
|
60
61
|
|
|
62
|
+
const ProgrammingModel = FELibrary.ProgrammingModel;
|
|
61
63
|
@defineUI5Class("sap.fe.templates.ObjectPage.ObjectPageController")
|
|
62
64
|
class ObjectPageController extends PageController {
|
|
63
65
|
oView!: any;
|
|
@@ -197,6 +199,8 @@ class ObjectPageController extends PageController {
|
|
|
197
199
|
_fnShowOPMessage() {
|
|
198
200
|
const extensionAPI = this.getExtensionAPI();
|
|
199
201
|
const view = this.getView();
|
|
202
|
+
const internalContext = view?.getBindingContext("internal");
|
|
203
|
+
const stripVisible = internalContext?.getProperty("OPMessageStripVisibility");
|
|
200
204
|
const messages = this.messageButton.oMessagePopover
|
|
201
205
|
.getItems()
|
|
202
206
|
.map((item: any) => item.getBindingContext("message").getObject())
|
|
@@ -204,7 +208,7 @@ class ObjectPageController extends PageController {
|
|
|
204
208
|
return message.getTargets()[0] === view.getBindingContext()?.getPath();
|
|
205
209
|
});
|
|
206
210
|
|
|
207
|
-
if (extensionAPI) {
|
|
211
|
+
if (extensionAPI && !(messages.length === 0 && stripVisible)) {
|
|
208
212
|
extensionAPI.showMessages(messages);
|
|
209
213
|
}
|
|
210
214
|
}
|
|
@@ -214,20 +218,16 @@ class ObjectPageController extends PageController {
|
|
|
214
218
|
}
|
|
215
219
|
|
|
216
220
|
/**
|
|
217
|
-
* Find the last visible subsection and add the sapUxAPObjectPageSubSectionFitContainer CSS class if it contains only a
|
|
221
|
+
* Find the last visible subsection and add the sapUxAPObjectPageSubSectionFitContainer CSS class if it contains only a GridTable or a TreeTable.
|
|
218
222
|
*
|
|
219
223
|
* @param subSections The sub sections to look for
|
|
220
224
|
* @private
|
|
221
225
|
*/
|
|
222
|
-
private
|
|
226
|
+
private checkSectionsForNonResponsiveTable(subSections: ObjectPageSubSection[]) {
|
|
223
227
|
const changeClassForTables = (event: Event, lastVisibleSubSection: ObjectPageSubSection) => {
|
|
224
228
|
const blocks = [...lastVisibleSubSection.getBlocks(), ...lastVisibleSubSection.getMoreBlocks()];
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
this.searchTableInBlock(blocks[0] as SubSectionBlock)
|
|
228
|
-
?.getType()
|
|
229
|
-
?.isA("sap.ui.mdc.table.GridTableType")
|
|
230
|
-
) {
|
|
229
|
+
const tableType = blocks.length === 1 && this.searchTableInBlock(blocks[0] as SubSectionBlock)?.getType();
|
|
230
|
+
if (tableType && (tableType?.isA("sap.ui.mdc.table.GridTableType") || tableType?.isA("sap.ui.mdc.table.TreeTableType"))) {
|
|
231
231
|
//In case there is only a single table in a subSection we fit that to the whole page so that the scrollbar comes only on table and not on page
|
|
232
232
|
lastVisibleSubSection.addStyleClass("sapUxAPObjectPageSubSectionFitContainer");
|
|
233
233
|
lastVisibleSubSection.detachEvent("modelContextChange", changeClassForTables, this);
|
|
@@ -280,11 +280,11 @@ class ObjectPageController extends PageController {
|
|
|
280
280
|
const sections = this._getObjectPageLayoutControl().getSections();
|
|
281
281
|
for (const section of sections) {
|
|
282
282
|
subSections = section.getSubSections();
|
|
283
|
-
this.
|
|
283
|
+
this.checkSectionsForNonResponsiveTable(subSections);
|
|
284
284
|
}
|
|
285
285
|
} else {
|
|
286
286
|
subSections = this._getAllSubSections();
|
|
287
|
-
this.
|
|
287
|
+
this.checkSectionsForNonResponsiveTable(subSections);
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
|
|
@@ -517,7 +517,7 @@ class ObjectPageController extends PageController {
|
|
|
517
517
|
}
|
|
518
518
|
|
|
519
519
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
520
|
-
_onAfterBinding(
|
|
520
|
+
_onAfterBinding(inputBindingContext: any, mParameters: any) {
|
|
521
521
|
const oObjectPage = this._getObjectPageLayoutControl();
|
|
522
522
|
const aTables = this._findTables();
|
|
523
523
|
|
|
@@ -525,7 +525,7 @@ class ObjectPageController extends PageController {
|
|
|
525
525
|
|
|
526
526
|
// TODO: this is only a temp solution as long as the model fix the cache issue and we use this additional
|
|
527
527
|
// binding with ownRequest
|
|
528
|
-
|
|
528
|
+
const bindingContext = oObjectPage.getBindingContext() as Context;
|
|
529
529
|
|
|
530
530
|
let aIBNActions: any[] = [];
|
|
531
531
|
oObjectPage.getSections().forEach(function (oSection: any) {
|
|
@@ -561,15 +561,14 @@ class ObjectPageController extends PageController {
|
|
|
561
561
|
}
|
|
562
562
|
// Workaround ends here!!
|
|
563
563
|
|
|
564
|
-
//
|
|
565
|
-
//
|
|
564
|
+
// Clear the selection in the table and update action enablement accordingly
|
|
565
|
+
// Will to be fixed with BLI: FIORITECHP1-24318
|
|
566
566
|
const oActionOperationAvailableMap = JSON.parse(
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
567
|
+
CommonHelper.parseCustomData(DelegateUtil.getCustomData(oTable, "operationAvailableMap"))
|
|
568
|
+
);
|
|
569
|
+
|
|
570
|
+
ActionRuntime.setActionEnablement(oInternalModelContext, oActionOperationAvailableMap, [], "table");
|
|
570
571
|
|
|
571
|
-
ActionRuntime.setActionEnablement(oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, "table");
|
|
572
|
-
// Clear the selection in the table, need to be fixed and review with BLI: FIORITECHP1-24318
|
|
573
572
|
oTable.clearSelection();
|
|
574
573
|
}
|
|
575
574
|
});
|
|
@@ -617,11 +616,11 @@ class ObjectPageController extends PageController {
|
|
|
617
616
|
}
|
|
618
617
|
};
|
|
619
618
|
|
|
620
|
-
if (
|
|
621
|
-
oModel =
|
|
619
|
+
if (bindingContext) {
|
|
620
|
+
oModel = bindingContext.getModel();
|
|
622
621
|
|
|
623
622
|
// Compute Edit Mode
|
|
624
|
-
oFinalUIState = this.editFlow.computeEditMode(
|
|
623
|
+
oFinalUIState = this.editFlow.computeEditMode(bindingContext);
|
|
625
624
|
|
|
626
625
|
if (ModelHelper.isCollaborationDraftSupported(oModel.getMetaModel())) {
|
|
627
626
|
oFinalUIState
|
|
@@ -640,11 +639,11 @@ class ObjectPageController extends PageController {
|
|
|
640
639
|
this._updateRelatedApps();
|
|
641
640
|
|
|
642
641
|
//Attach the patch sent and patch completed event to the object page binding so that we can react
|
|
643
|
-
const oBinding = (
|
|
642
|
+
const oBinding = (bindingContext.getBinding && bindingContext.getBinding()) || bindingContext;
|
|
644
643
|
|
|
645
644
|
// Attach the event handler only once to the same binding
|
|
646
645
|
if (this.currentBinding !== oBinding) {
|
|
647
|
-
oBinding.attachEvent("patchSent", this.editFlow.handlePatchSent, this);
|
|
646
|
+
oBinding.attachEvent("patchSent", {}, this.editFlow.handlePatchSent, this);
|
|
648
647
|
this.currentBinding = oBinding;
|
|
649
648
|
}
|
|
650
649
|
|
|
@@ -663,6 +662,35 @@ class ObjectPageController extends PageController {
|
|
|
663
662
|
//To Compute the Edit Binding of the subObject page using root object page, create a context for draft root and update the edit button in sub OP using the context
|
|
664
663
|
ActionRuntime.updateEditButtonVisibilityAndEnablement(this.getView());
|
|
665
664
|
}
|
|
665
|
+
this.displayCollaborationMessage(mParameters?.redirectedToNonDraft);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* Show a message strip if a redirection to a non-draft element has been done.
|
|
670
|
+
* Remove the message strip in case we navigate to another object page.
|
|
671
|
+
*
|
|
672
|
+
* @param entityName Name of the Entity to be displayed in the message
|
|
673
|
+
* @private
|
|
674
|
+
*/
|
|
675
|
+
displayCollaborationMessage(entityName: string | undefined) {
|
|
676
|
+
const internalBindingContext = this.getView()?.getBindingContext("internal");
|
|
677
|
+
const resourceBundle = Core.getLibraryResourceBundle("sap.fe.core");
|
|
678
|
+
if (entityName) {
|
|
679
|
+
const message = new Message({
|
|
680
|
+
message: resourceBundle.getText("REROUTED_NAVIGATION_TO_SAVED_VERSION", [entityName]),
|
|
681
|
+
type: "Information"
|
|
682
|
+
});
|
|
683
|
+
this.getExtensionAPI().showMessages([message]);
|
|
684
|
+
} else {
|
|
685
|
+
const messageToCompare = resourceBundle.getText("REROUTED_NAVIGATION_TO_SAVED_VERSION", ["{0}"]);
|
|
686
|
+
const lengthUntilVariable = messageToCompare.search("{");
|
|
687
|
+
if (
|
|
688
|
+
internalBindingContext?.getProperty("OPMessageStripText")?.substring(0, lengthUntilVariable) ===
|
|
689
|
+
messageToCompare.substring(0, lengthUntilVariable)
|
|
690
|
+
) {
|
|
691
|
+
this.getExtensionAPI().showMessages([]);
|
|
692
|
+
}
|
|
693
|
+
}
|
|
666
694
|
}
|
|
667
695
|
|
|
668
696
|
@publicExtension()
|
|
@@ -840,49 +868,6 @@ class ObjectPageController extends PageController {
|
|
|
840
868
|
});
|
|
841
869
|
}
|
|
842
870
|
|
|
843
|
-
/**
|
|
844
|
-
* Gets the context of the DraftRoot path.
|
|
845
|
-
* If a view has been created with the draft Root Path, this method returns its bindingContext.
|
|
846
|
-
* Where no view is found a new created context is returned.
|
|
847
|
-
* The new created context request the key of the entity in order to get the Etag of this entity.
|
|
848
|
-
*
|
|
849
|
-
* @function
|
|
850
|
-
* @name getDraftRootPath
|
|
851
|
-
* @returns Returns a Promise
|
|
852
|
-
*/
|
|
853
|
-
async getDraftRootContext(): Promise<Context | undefined> {
|
|
854
|
-
const view = this.getView();
|
|
855
|
-
const context = view.getBindingContext() as Context;
|
|
856
|
-
if (context) {
|
|
857
|
-
const draftRootContextPath = ModelHelper.getDraftRootPath(context);
|
|
858
|
-
let simpleDraftRootContext: Context;
|
|
859
|
-
if (draftRootContextPath) {
|
|
860
|
-
// Check if a view matches with the draft root path
|
|
861
|
-
const existingBindingContextOnPage = this.getAppComponent()
|
|
862
|
-
.getRootViewController()
|
|
863
|
-
.getInstancedViews()
|
|
864
|
-
.find((pageView: View) => pageView.getBindingContext()?.getPath() === draftRootContextPath)
|
|
865
|
-
?.getBindingContext() as Context;
|
|
866
|
-
if (existingBindingContextOnPage) {
|
|
867
|
-
return existingBindingContextOnPage;
|
|
868
|
-
}
|
|
869
|
-
const internalModel = view.getModel("internal") as JSONModel;
|
|
870
|
-
simpleDraftRootContext = internalModel.getProperty("/simpleDraftRootContext");
|
|
871
|
-
if (simpleDraftRootContext?.getPath() === draftRootContextPath) {
|
|
872
|
-
return simpleDraftRootContext;
|
|
873
|
-
}
|
|
874
|
-
const model = context.getModel();
|
|
875
|
-
simpleDraftRootContext = model.bindContext(draftRootContextPath).getBoundContext();
|
|
876
|
-
await CommonUtils.waitForContextRequested(simpleDraftRootContext);
|
|
877
|
-
// Store this new created context to use it on the next iterations
|
|
878
|
-
internalModel.setProperty("/simpleDraftRootContext", simpleDraftRootContext);
|
|
879
|
-
return simpleDraftRootContext;
|
|
880
|
-
}
|
|
881
|
-
return undefined;
|
|
882
|
-
}
|
|
883
|
-
return undefined;
|
|
884
|
-
}
|
|
885
|
-
|
|
886
871
|
async _validateDocument(): Promise<void | any[] | ODataContextBinding> {
|
|
887
872
|
const appComponent = this.getAppComponent();
|
|
888
873
|
const control = Core.byId(Core.getCurrentFocusedControlId());
|
|
@@ -896,7 +881,7 @@ class ObjectPageController extends PageController {
|
|
|
896
881
|
await this.editFlow.syncTask();
|
|
897
882
|
return Promise.all(globalSideEffects.map((sideEffects) => this._sideEffects.requestSideEffects(sideEffects, context)));
|
|
898
883
|
}
|
|
899
|
-
const draftRootContext = await this.
|
|
884
|
+
const draftRootContext = (await CommonUtils.createRootContext(ProgrammingModel.Draft, this.getView(), appComponent)) as Context;
|
|
900
885
|
//Execute the draftValidation if there is no globalSideEffects (ignore ETags in collaboration draft)
|
|
901
886
|
if (draftRootContext) {
|
|
902
887
|
await this.editFlow.syncTask();
|
|
@@ -977,7 +962,7 @@ class ObjectPageController extends PageController {
|
|
|
977
962
|
return this.editFlow.cancelDocument(oContext, mParameters);
|
|
978
963
|
}
|
|
979
964
|
|
|
980
|
-
_applyDocument(oContext:
|
|
965
|
+
_applyDocument(oContext: Context) {
|
|
981
966
|
return this.editFlow.applyDocument(oContext).catch(() => this._showMessagePopover());
|
|
982
967
|
}
|
|
983
968
|
|
|
@@ -242,6 +242,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/h
|
|
|
242
242
|
const oUIModel = this.base.getView().getModel("ui");
|
|
243
243
|
const bIsEditable = oUIModel.getProperty("/isEditable");
|
|
244
244
|
try {
|
|
245
|
+
var _manifest$sapApp, _manifest$sapApp2;
|
|
246
|
+
const manifest = this.base.getAppComponent().getManifest();
|
|
247
|
+
const appId = manifest === null || manifest === void 0 ? void 0 : (_manifest$sapApp = manifest["sap.app"]) === null || _manifest$sapApp === void 0 ? void 0 : _manifest$sapApp.id;
|
|
248
|
+
const appTitle = manifest === null || manifest === void 0 ? void 0 : (_manifest$sapApp2 = manifest["sap.app"]) === null || _manifest$sapApp2 === void 0 ? void 0 : _manifest$sapApp2.title;
|
|
245
249
|
const aActiveContextPaths = await fetchActiveContextPaths(oContext, this.base.getView().getController());
|
|
246
250
|
const oPageTitleInfo = this.base.getView().getController()._getPageTitleInformation();
|
|
247
251
|
const oData = await Promise.all([getJamUrl(bIsEditable, bGlobalIsStickySupported, aActiveContextPaths), getShareUrl(bIsEditable, bGlobalIsStickySupported, aActiveContextPaths), getShareEmailUrl()]);
|
|
@@ -263,8 +267,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/h
|
|
|
263
267
|
// so update colloborationInfo model at LR override to ignore further extension changes at multiple levels
|
|
264
268
|
const collaborationInfoModel = this.base.getView().getModel("collaborationInfo");
|
|
265
269
|
collaborationInfoModel.setProperty("/url", oShareMetadata.url);
|
|
266
|
-
collaborationInfoModel.setProperty("/appTitle",
|
|
270
|
+
collaborationInfoModel.setProperty("/appTitle", appTitle);
|
|
267
271
|
collaborationInfoModel.setProperty("/subTitle", sObjectSubtitle);
|
|
272
|
+
collaborationInfoModel.setProperty("/appId", appId);
|
|
268
273
|
} catch (error) {
|
|
269
274
|
Log.error(error);
|
|
270
275
|
}
|
|
@@ -273,4 +278,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/h
|
|
|
273
278
|
};
|
|
274
279
|
return ShareExtensionOverride;
|
|
275
280
|
}, false);
|
|
276
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQiLCJjcmVhdGVGaWx0ZXJUb0ZldGNoQWN0aXZlQ29udGV4dCIsIm1LZXlWYWx1ZXMiLCJiSXNBY3RpdmVFbnRpdHlEZWZpbmVkIiwiYUtleXMiLCJPYmplY3QiLCJrZXlzIiwiYUZpbHRlcnMiLCJtYXAiLCJzS2V5Iiwic1ZhbHVlIiwidW5kZWZpbmVkIiwiRmlsdGVyIiwiRmlsdGVyT3BlcmF0b3IiLCJFUSIsIm9BY3RpdmVGaWx0ZXIiLCJmaWx0ZXJzIiwiYW5kIiwicHVzaCIsImdldEFjdGl2ZUNvbnRleHRQYXRoIiwib0NvbnRyb2xsZXIiLCJzUGFnZUVudGl0eU5hbWUiLCJvRmlsdGVyIiwib0xpc3RCaW5kaW5nIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0TW9kZWwiLCJiaW5kTGlzdCIsIiQkZ3JvdXBJZCIsInJlcXVlc3RDb250ZXh0cyIsInRoZW4iLCJvQ29udGV4dHMiLCJsZW5ndGgiLCJnZXRQYXRoIiwiZ2V0QWN0aXZlQ29udGV4dEluc3RhbmNlcyIsIm9Db250ZXh0Iiwib0VudGl0eVNldCIsImFBY3RpdmVDb250ZXh0cHJvbWlzZXMiLCJhUGFnZXMiLCJzTWV0YVBhdGgiLCJnZXRNZXRhTW9kZWwiLCJnZXRNZXRhUGF0aCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJhTWV0YVBhdGhBcnJheSIsInNwbGl0Iiwic0N1cnJlbnRIYXNoTm9QYXJhbXMiLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiZ2V0SGFzaCIsImFDdXJyZW50SGFzaEFycmF5Iiwib1BhZ2VNYXAiLCJhUGFnZUhhc2hBcnJheSIsImZvckVhY2giLCJzUGFnZUhhc2giLCJhS2V5VmFsdWVzIiwic1BhZ2VIYXNoTmFtZSIsImkiLCJzS2V5QXNzaWdubWVudCIsImFQYXJ0cyIsInNLZXlWYWx1ZSIsIm9NZXRhTW9kZWwiLCJhVGVjaG5pY2FsS2V5cyIsImdldE9iamVjdCIsImpvaW4iLCJsYXN0SW5kZXhPZiIsImRlY29kZVVSSUNvbXBvbmVudCIsIm9QYWdlRW50aXR5U2V0Iiwic05hdmlnYXRpb25QYXRoIiwib1BhZ2VJbmZvIiwic1BhZ2VFbnRpdHlTZXROYW1lIiwiJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmciLCJwYWdlRW50aXR5TmFtZSIsImdldEFjdGl2ZUNvbnRleHRQYXRocyIsInNSb290RW50aXR5TmFtZSIsInN1YnN0ciIsIm9QYWdlQ29udGV4dCIsIlByb21pc2UiLCJhbGwiLCJhRGF0YSIsImFBY3RpdmVDb250ZXh0UGF0aHMiLCJzQWN0aXZlQ29udGV4dFBhdGgiLCJzTmF2aWdhdGlvUHJvcGVydHkiLCJzRW50aXR5U2V0TmFtZSIsInZhbHVlcyIsInJlcGxhY2UiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImluZm8iLCJyZXNvbHZlIiwiZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMiLCJvUHJvbWlzZSIsImFTZW1hbnRpY0tleXMiLCJvTW9kZWwiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIlNlbWFudGljS2V5SGVscGVyIiwiZ2V0U2VtYW50aWNLZXlzIiwib1ZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJnZXRTaGFyZVVybCIsImJJc0VkaXRhYmxlIiwiYklzU3RpY2t5U3VwcG9ydGVkIiwic1NoYXJlVXJsIiwic0hhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwib3JpZ2luIiwicGF0aG5hbWUiLCJzZWFyY2giLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwic0ZMUFVybCIsInNFcnJvciIsImVycm9yIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRKYW1VcmwiLCJiSXNFZGl0TW9kZSIsInNKYW1VcmwiLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwiU2hhcmVFeHRlbnNpb25PdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwiYmFzZSIsIm9VSU1vZGVsIiwiZ2V0UHJvcGVydHkiLCJnZXRDb250cm9sbGVyIiwib1BhZ2VUaXRsZUluZm8iLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJvRGF0YSIsInNUaXRsZSIsInRpdGxlIiwic09iamVjdFN1YnRpdGxlIiwic3VidGl0bGUiLCJ0b1N0cmluZyIsInRpbGUiLCJlbWFpbCIsImphbSIsInVybCIsImNvbGxhYm9yYXRpb25JbmZvTW9kZWwiLCJzZXRQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFNlbWFudGljS2V5SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NlbWFudGljS2V5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBIYXNoQ2hhbmdlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9IYXNoQ2hhbmdlclwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5sZXQgYkdsb2JhbElzU3RpY2t5U3VwcG9ydGVkOiBib29sZWFuO1xuXG5mdW5jdGlvbiBjcmVhdGVGaWx0ZXJUb0ZldGNoQWN0aXZlQ29udGV4dChtS2V5VmFsdWVzOiBhbnksIGJJc0FjdGl2ZUVudGl0eURlZmluZWQ6IGFueSkge1xuXHRjb25zdCBhS2V5cyA9IE9iamVjdC5rZXlzKG1LZXlWYWx1ZXMpO1xuXG5cdGNvbnN0IGFGaWx0ZXJzID0gYUtleXMubWFwKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRjb25zdCBzVmFsdWUgPSBtS2V5VmFsdWVzW3NLZXldO1xuXHRcdGlmIChzVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIG5ldyBGaWx0ZXIoc0tleSwgRmlsdGVyT3BlcmF0b3IuRVEsIHNWYWx1ZSk7XG5cdFx0fVxuXHR9KTtcblxuXHRpZiAoYklzQWN0aXZlRW50aXR5RGVmaW5lZCkge1xuXHRcdGNvbnN0IG9BY3RpdmVGaWx0ZXIgPSBuZXcgRmlsdGVyKHtcblx0XHRcdGZpbHRlcnM6IFtuZXcgRmlsdGVyKFwiU2libGluZ0VudGl0eS9Jc0FjdGl2ZUVudGl0eVwiLCBGaWx0ZXJPcGVyYXRvci5FUSwgdHJ1ZSldLFxuXHRcdFx0YW5kOiBmYWxzZVxuXHRcdH0pO1xuXG5cdFx0YUZpbHRlcnMucHVzaChvQWN0aXZlRmlsdGVyKTtcblx0fVxuXG5cdHJldHVybiBuZXcgRmlsdGVyKGFGaWx0ZXJzIGFzIGFueSwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBnZXRBY3RpdmVDb250ZXh0UGF0aChvQ29udHJvbGxlcjogYW55LCBzUGFnZUVudGl0eU5hbWU6IGFueSwgb0ZpbHRlcjogYW55KSB7XG5cdGNvbnN0IG9MaXN0QmluZGluZyA9IG9Db250cm9sbGVyXG5cdFx0LmdldFZpZXcoKVxuXHRcdC5nZXRCaW5kaW5nQ29udGV4dCgpXG5cdFx0LmdldE1vZGVsKClcblx0XHQuYmluZExpc3QoYC8ke3NQYWdlRW50aXR5TmFtZX1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb0ZpbHRlciwgeyAkJGdyb3VwSWQ6IFwiJGF1dG8uSGVyb2VzXCIgfSk7XG5cdHJldHVybiBvTGlzdEJpbmRpbmcucmVxdWVzdENvbnRleHRzKDAsIDIpLnRoZW4oZnVuY3Rpb24gKG9Db250ZXh0czogYW55KSB7XG5cdFx0aWYgKG9Db250ZXh0cyAmJiBvQ29udGV4dHMubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gb0NvbnRleHRzWzBdLmdldFBhdGgoKTtcblx0XHR9XG5cdH0pO1xufVxuZnVuY3Rpb24gZ2V0QWN0aXZlQ29udGV4dEluc3RhbmNlcyhvQ29udGV4dDogYW55LCBvQ29udHJvbGxlcjogYW55LCBvRW50aXR5U2V0OiBhbnkpIHtcblx0Y29uc3QgYUFjdGl2ZUNvbnRleHRwcm9taXNlczogYW55W10gPSBbXTtcblx0Y29uc3QgYVBhZ2VzOiBhbnlbXSA9IFtdO1xuXHRsZXQgc01ldGFQYXRoID0gb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKS5nZXRNZXRhUGF0aChvQ29udGV4dC5nZXRQYXRoKCkpO1xuXHRpZiAoc01ldGFQYXRoLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0c01ldGFQYXRoID0gc01ldGFQYXRoLnN1YnN0cmluZygxKTtcblx0fVxuXHRjb25zdCBhTWV0YVBhdGhBcnJheSA9IHNNZXRhUGF0aC5zcGxpdChcIi9cIik7XG5cdGNvbnN0IHNDdXJyZW50SGFzaE5vUGFyYW1zID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCkuc3BsaXQoXCI/XCIpWzBdO1xuXHRjb25zdCBhQ3VycmVudEhhc2hBcnJheSA9IHNDdXJyZW50SGFzaE5vUGFyYW1zLnNwbGl0KFwiL1wiKTtcblxuXHQvLyBvUGFnZU1hcCAtIGNyZWF0aW5nIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIG1hcCBvZiBtZXRhcGF0aCBuYW1lIGFuZCBpdCdzIHRlY2huaWNhbCBkZXRhaWxzXG5cdC8vIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIGZpbHRlciB0byBmZXRjaCB0aGUgcmVsYXZhbnQvY29ycmVjdCBhY3RpdmUgY29udGV4dFxuXHQvLyBFeGFtcGxlOiB7U2FsZXNPcmRlck1hbmFnZTp7dGVjaG5pY2FsSUQ6dGVjaG5pY2FsSURWYWx1ZX0sIF9JdGVtOnt0ZWNobmljYWxJRDp0ZWNobmljYWxJRFZhbHVlfX0gZXRjLixcblx0Y29uc3Qgb1BhZ2VNYXA6IGFueSA9IHt9O1xuXHRjb25zdCBhUGFnZUhhc2hBcnJheTogYW55W10gPSBbXTtcblx0YUN1cnJlbnRIYXNoQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoc1BhZ2VIYXNoOiBhbnkpIHtcblx0XHRjb25zdCBhS2V5VmFsdWVzID0gc1BhZ2VIYXNoLnN1YnN0cmluZyhzUGFnZUhhc2guaW5kZXhPZihcIihcIikgKyAxLCBzUGFnZUhhc2gubGVuZ3RoIC0gMSkuc3BsaXQoXCIsXCIpO1xuXHRcdGNvbnN0IG1LZXlWYWx1ZXM6IGFueSA9IHt9O1xuXHRcdGNvbnN0IHNQYWdlSGFzaE5hbWUgPSBzUGFnZUhhc2guc3BsaXQoXCIoXCIpWzBdO1xuXHRcdG9QYWdlTWFwW3NQYWdlSGFzaE5hbWVdID0ge307XG5cdFx0YVBhZ2VIYXNoQXJyYXkucHVzaChzUGFnZUhhc2hOYW1lKTtcblx0XHRvUGFnZU1hcFtzUGFnZUhhc2hOYW1lXVtcImJJc0FjdGl2ZUVudGl0eURlZmluZWRcIl0gPSB0cnVlO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUtleVZhbHVlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3Qgc0tleUFzc2lnbm1lbnQgPSBhS2V5VmFsdWVzW2ldO1xuXHRcdFx0Y29uc3QgYVBhcnRzID0gc0tleUFzc2lnbm1lbnQuc3BsaXQoXCI9XCIpO1xuXHRcdFx0bGV0IHNLZXlWYWx1ZSA9IGFQYXJ0c1sxXTtcblx0XHRcdGxldCBzS2V5ID0gYVBhcnRzWzBdO1xuXHRcdFx0Ly8gSW4gY2FzZSBpZiBvbmx5IG9uZSB0ZWNobmljYWwga2V5IGlzIGRlZmluZWQgdGhlbiB0aGUgdXJsIGp1c3QgY29udGFpbnMgdGhlIHRlY2huaWNhbElEVmFsdWUgYnV0IG5vdCB0aGUgdGVjaG5pY2FsSURcblx0XHRcdC8vIEV4YW1wbGU6IFNhbGVzT3JkZXJNYW5hZ2UoSUQ9MTExMTExMjktYWFhYS1iYmJiLWNjY2MtZGRkZGVlZWVmZmZmLElzQWN0aXZlRW50aXR5PWZhbHNlKS9fSXRlbSgxMTExMTEyOS1hYWFhLWJiYmItY2NjYy1kZGRkZWVlZWZmZmYpXG5cdFx0XHQvLyBJbiBhYm92ZSBleGFtcGxlIFNhbGVzT3JkZXJJdGVtIGhhcyBvbmx5IG9uZSB0ZWNobmljYWwga2V5IGRlZmluZWQsIGhlbmNlIHRlY2huaWNhbElEIGluZm8gaXMgbm90IHByZXNlbnQgaW4gdGhlIHVybFxuXHRcdFx0Ly8gSGVuY2UgaW4gc3VjaCBjYXNlcyB3ZSBnZXQgdGVjaG5pY2FsIGtleSBhbmQgdXNlIHRoZW0gdG8gZmV0Y2ggYWN0aXZlIGNvbnRleHRcblx0XHRcdGlmIChzS2V5QXNzaWdubWVudC5pbmRleE9mKFwiPVwiKSA9PT0gLTEpIHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRcdGNvbnN0IGFUZWNobmljYWxLZXlzID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2FQYWdlSGFzaEFycmF5LmpvaW4oXCIvXCIpfS8kVHlwZS8kS2V5YCk7XG5cdFx0XHRcdHNLZXlWYWx1ZSA9IGFQYXJ0c1swXTtcblx0XHRcdFx0c0tleSA9IGFUZWNobmljYWxLZXlzWzBdO1xuXHRcdFx0XHRvUGFnZU1hcFtzUGFnZUhhc2guc3BsaXQoXCIoXCIpWzBdXVtcImJJc0FjdGl2ZUVudGl0eURlZmluZWRcIl0gPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHNLZXkgIT09IFwiSXNBY3RpdmVFbnRpdHlcIikge1xuXHRcdFx0XHRpZiAoc0tleVZhbHVlLmluZGV4T2YoXCInXCIpID09PSAwICYmIHNLZXlWYWx1ZS5sYXN0SW5kZXhPZihcIidcIikgPT09IHNLZXlWYWx1ZS5sZW5ndGggLSAxKSB7XG5cdFx0XHRcdFx0Ly8gUmVtb3ZlIHRoZSBxdW90ZXMgZnJvbSB0aGUgdmFsdWUgYW5kIGRlY29kZSBzcGVjaWFsIGNoYXJzXG5cdFx0XHRcdFx0c0tleVZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KHNLZXlWYWx1ZS5zdWJzdHJpbmcoMSwgc0tleVZhbHVlLmxlbmd0aCAtIDEpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRtS2V5VmFsdWVzW3NLZXldID0gc0tleVZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRvUGFnZU1hcFtzUGFnZUhhc2hOYW1lXS5tS2V5VmFsdWVzID0gbUtleVZhbHVlcztcblx0fSk7XG5cblx0bGV0IG9QYWdlRW50aXR5U2V0ID0gb0VudGl0eVNldDtcblx0YU1ldGFQYXRoQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoc05hdmlnYXRpb25QYXRoOiBhbnkpIHtcblx0XHRjb25zdCBvUGFnZUluZm86IGFueSA9IHt9O1xuXHRcdGNvbnN0IHNQYWdlRW50aXR5U2V0TmFtZSA9IG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nICYmIG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW3NOYXZpZ2F0aW9uUGF0aF07XG5cdFx0aWYgKHNQYWdlRW50aXR5U2V0TmFtZSkge1xuXHRcdFx0b1BhZ2VJbmZvLnBhZ2VFbnRpdHlOYW1lID0gb1BhZ2VFbnRpdHlTZXQuJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbc05hdmlnYXRpb25QYXRoXTtcblx0XHRcdG9QYWdlRW50aXR5U2V0ID0gb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKS5nZXRPYmplY3QoYC8ke3NQYWdlRW50aXR5U2V0TmFtZX1gKSB8fCBvRW50aXR5U2V0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUGFnZUluZm8ucGFnZUVudGl0eU5hbWUgPSBzTmF2aWdhdGlvblBhdGg7XG5cdFx0fVxuXHRcdG9QYWdlSW5mby5tS2V5VmFsdWVzID0gb1BhZ2VNYXBbc05hdmlnYXRpb25QYXRoXS5tS2V5VmFsdWVzO1xuXHRcdG9QYWdlSW5mby5iSXNBY3RpdmVFbnRpdHlEZWZpbmVkID0gb1BhZ2VNYXBbc05hdmlnYXRpb25QYXRoXS5iSXNBY3RpdmVFbnRpdHlEZWZpbmVkO1xuXHRcdGFQYWdlcy5wdXNoKG9QYWdlSW5mbyk7XG5cdH0pO1xuXG5cdGFQYWdlcy5mb3JFYWNoKGZ1bmN0aW9uIChvUGFnZUluZm86IGFueSkge1xuXHRcdGNvbnN0IG9GaWx0ZXIgPSBjcmVhdGVGaWx0ZXJUb0ZldGNoQWN0aXZlQ29udGV4dChvUGFnZUluZm8ubUtleVZhbHVlcywgb1BhZ2VJbmZvLmJJc0FjdGl2ZUVudGl0eURlZmluZWQpO1xuXHRcdGFBY3RpdmVDb250ZXh0cHJvbWlzZXMucHVzaChnZXRBY3RpdmVDb250ZXh0UGF0aChvQ29udHJvbGxlciwgb1BhZ2VJbmZvLnBhZ2VFbnRpdHlOYW1lLCBvRmlsdGVyKSk7XG5cdH0pO1xuXG5cdHJldHVybiBhQWN0aXZlQ29udGV4dHByb21pc2VzO1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBmZXRjaCBhY3RpdmUgY29udGV4dCBwYXRoJ3MuXG4gKlxuICogQHBhcmFtIG9Db250ZXh0IFRoZSBQYWdlIENvbnRleHRcbiAqIEBwYXJhbSBvQ29udHJvbGxlclxuICogQHJldHVybnMgUHJvbWlzZSB3aGljaCBpcyByZXNvbHZlZCBvbmNlIHRoZSBhY3RpdmUgY29udGV4dCdzIGFyZSBmZXRjaGVkXG4gKi9cbmZ1bmN0aW9uIGdldEFjdGl2ZUNvbnRleHRQYXRocyhvQ29udGV4dDogYW55LCBvQ29udHJvbGxlcjogYW55KSB7XG5cdGNvbnN0IHNDdXJyZW50SGFzaE5vUGFyYW1zID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCkuc3BsaXQoXCI/XCIpWzBdO1xuXHRsZXQgc1Jvb3RFbnRpdHlOYW1lID0gc0N1cnJlbnRIYXNoTm9QYXJhbXMgJiYgc0N1cnJlbnRIYXNoTm9QYXJhbXMuc3Vic3RyKDAsIHNDdXJyZW50SGFzaE5vUGFyYW1zLmluZGV4T2YoXCIoXCIpKTtcblx0aWYgKHNSb290RW50aXR5TmFtZS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdHNSb290RW50aXR5TmFtZSA9IHNSb290RW50aXR5TmFtZS5zdWJzdHJpbmcoMSk7XG5cdH1cblx0Y29uc3Qgb0VudGl0eVNldCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KGAvJHtzUm9vdEVudGl0eU5hbWV9YCk7XG5cdGNvbnN0IG9QYWdlQ29udGV4dCA9IG9Db250ZXh0O1xuXHRjb25zdCBhQWN0aXZlQ29udGV4dHByb21pc2VzID0gZ2V0QWN0aXZlQ29udGV4dEluc3RhbmNlcyhvQ29udGV4dCwgb0NvbnRyb2xsZXIsIG9FbnRpdHlTZXQpO1xuXHRpZiAoYUFjdGl2ZUNvbnRleHRwcm9taXNlcy5sZW5ndGggPiAwKSB7XG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKGFBY3RpdmVDb250ZXh0cHJvbWlzZXMpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYURhdGE6IGFueVtdKSB7XG5cdFx0XHRcdGNvbnN0IGFBY3RpdmVDb250ZXh0UGF0aHMgPSBbXTtcblx0XHRcdFx0bGV0IG9QYWdlRW50aXR5U2V0ID0gb0VudGl0eVNldDtcblx0XHRcdFx0aWYgKGFEYXRhWzBdLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHRcdFx0YUFjdGl2ZUNvbnRleHRQYXRocy5wdXNoKGFEYXRhWzBdLnN1YnN0cmluZygxKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YUFjdGl2ZUNvbnRleHRQYXRocy5wdXNoKGFEYXRhWzBdKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBJbiB0aGUgYWN0aXZlIGNvbnRleHQgcGF0aHMgaWRlbnRpZnkgYW5kIHJlcGxhY2UgdGhlIGVudGl0eVNldCBOYW1lIHdpdGggY29ycmVzcG9uZGluZyBuYXZpZ2F0aW9uIHByb3BlcnR5IG5hbWVcblx0XHRcdFx0Ly8gUmVxdWlyZWQgdG8gZm9ybSB0aGUgdXJsIHBvaW50aW5nIHRvIGFjdGl2ZSBjb250ZXh0XG5cdFx0XHRcdC8vIEV4YW1wbGUgOiBTYWxlc09yZGVySXRlbSAtLT4gX0l0ZW0sIE1hdGVyaWFsRGV0YWlscyAtLT4gX01hdGVyaWFsRGV0YWlscyBldGMuLFxuXHRcdFx0XHRmb3IgKGxldCBpID0gMTsgaSA8IGFEYXRhLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0bGV0IHNBY3RpdmVDb250ZXh0UGF0aCA9IGFEYXRhW2ldO1xuXHRcdFx0XHRcdGxldCBzTmF2aWdhdGlvUHJvcGVydHkgPSBcIlwiO1xuXHRcdFx0XHRcdGxldCBzRW50aXR5U2V0TmFtZSA9IHNBY3RpdmVDb250ZXh0UGF0aCAmJiBzQWN0aXZlQ29udGV4dFBhdGguc3Vic3RyKDAsIHNBY3RpdmVDb250ZXh0UGF0aC5pbmRleE9mKFwiKFwiKSk7XG5cdFx0XHRcdFx0aWYgKHNFbnRpdHlTZXROYW1lLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHRcdFx0XHRzRW50aXR5U2V0TmFtZSA9IHNFbnRpdHlTZXROYW1lLnN1YnN0cmluZygxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHNBY3RpdmVDb250ZXh0UGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0XHRcdFx0c0FjdGl2ZUNvbnRleHRQYXRoID0gc0FjdGl2ZUNvbnRleHRQYXRoLnN1YnN0cmluZygxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0c05hdmlnYXRpb1Byb3BlcnR5ID0gT2JqZWN0LmtleXMob1BhZ2VFbnRpdHlTZXQuJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcpW1xuXHRcdFx0XHRcdFx0T2JqZWN0LnZhbHVlcyhvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZykuaW5kZXhPZihzRW50aXR5U2V0TmFtZSlcblx0XHRcdFx0XHRdO1xuXHRcdFx0XHRcdGlmIChzTmF2aWdhdGlvUHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChzQWN0aXZlQ29udGV4dFBhdGgucmVwbGFjZShzRW50aXR5U2V0TmFtZSwgc05hdmlnYXRpb1Byb3BlcnR5KSk7XG5cdFx0XHRcdFx0XHRvUGFnZUVudGl0eVNldCA9IG9QYWdlQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChgLyR7c0VudGl0eVNldE5hbWV9YCkgfHwgb0VudGl0eVNldDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0YUFjdGl2ZUNvbnRleHRQYXRocy5wdXNoKHNBY3RpdmVDb250ZXh0UGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhQWN0aXZlQ29udGV4dFBhdGhzO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmluZm8oXCJGYWlsZWQgdG8gcmV0cmlldmUgb25lIG9yIG1vcmUgYWN0aXZlIGNvbnRleHQgcGF0aCdzXCIsIG9FcnJvcik7XG5cdFx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZldGNoQWN0aXZlQ29udGV4dFBhdGhzKG9Db250ZXh0OiBhbnksIG9Db250cm9sbGVyOiBhbnkpIHtcblx0bGV0IG9Qcm9taXNlLCBhU2VtYW50aWNLZXlzO1xuXHRjb25zdCBzQ3VycmVudEhhc2hOb1BhcmFtcyA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpLnNwbGl0KFwiP1wiKVswXTtcblx0aWYgKG9Db250ZXh0KSB7XG5cdFx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gb01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRcdGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZChvTWV0YU1vZGVsKTtcblx0XHRsZXQgc1Jvb3RFbnRpdHlOYW1lID0gc0N1cnJlbnRIYXNoTm9QYXJhbXMgJiYgc0N1cnJlbnRIYXNoTm9QYXJhbXMuc3Vic3RyKDAsIHNDdXJyZW50SGFzaE5vUGFyYW1zLmluZGV4T2YoXCIoXCIpKTtcblx0XHRpZiAoc1Jvb3RFbnRpdHlOYW1lLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHRzUm9vdEVudGl0eU5hbWUgPSBzUm9vdEVudGl0eU5hbWUuc3Vic3RyaW5nKDEpO1xuXHRcdH1cblx0XHRhU2VtYW50aWNLZXlzID0gU2VtYW50aWNLZXlIZWxwZXIuZ2V0U2VtYW50aWNLZXlzKG9NZXRhTW9kZWwsIHNSb290RW50aXR5TmFtZSk7XG5cdH1cblx0Ly8gRmV0Y2ggYWN0aXZlIGNvbnRleHQgZGV0YWlscyBpbmNhc2Ugb2YgYmVsb3cgc2NlbmFyaW8ncyh3aGVyZSBwYWdlIGlzIG5vdCBzdGlja3kgc3VwcG9ydGVkKHdlIGRvIG5vdCBoYXZlIGRyYWZ0IGluc3RhbmNlKSlcblx0Ly8gMS4gSW4gY2FzZSBvZiBkcmFmdCBlbmFibGVkIE9iamVjdCBwYWdlIHdoZXJlIHNlbWFudGljIGtleSBiYXNlZCBVUkwgaXMgbm90IHBvc3NpYmxlKGxpa2Ugc2VtYW50aWMga2V5cyBhcmUgbm90IG1vZGVsZWQgaW4gdGhlIGVudGl0eSBzZXQpXG5cdC8vIDIuIEluIGNhc2Ugb2YgZHJhZnQgZW5hYmxlZCBTdWIgT2JqZWN0IFBhZ2VzICh3aGVyZSBzZW1hbnRpYyBib29rbWFya2luZyBpcyBub3Qgc3VwcG9ydGVkKVxuXHRjb25zdCBvVmlld0RhdGEgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Vmlld0RhdGEoKTtcblx0aWYgKG9Db250ZXh0ICYmICFiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQgJiYgKChvVmlld0RhdGEudmlld0xldmVsID09PSAxICYmICFhU2VtYW50aWNLZXlzKSB8fCBvVmlld0RhdGEudmlld0xldmVsID49IDIpKSB7XG5cdFx0b1Byb21pc2UgPSBnZXRBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQsIG9Db250cm9sbGVyKTtcblx0XHRyZXR1cm4gb1Byb21pc2U7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHR9XG59XG5cbi8vIC8qKlxuLy8gICogR2V0IHNoYXJlIFVSTC5cbi8vICAqIEBwYXJhbSBiSXNFZGl0YWJsZVxuLy8gICogQHBhcmFtIGJJc1N0aWNreVN1cHBvcnRlZFxuLy8gICogQHBhcmFtIGFBY3RpdmVDb250ZXh0UGF0aHNcbi8vICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBzaGFyZSBVUkxcbi8vICAqIEBwcm90ZWN0ZWRcbi8vICAqIEBzdGF0aWNcbi8vICAqL1xuZnVuY3Rpb24gZ2V0U2hhcmVVcmwoYklzRWRpdGFibGU6IGFueSwgYklzU3RpY2t5U3VwcG9ydGVkOiBhbnksIGFBY3RpdmVDb250ZXh0UGF0aHM6IGFueSkge1xuXHRsZXQgc1NoYXJlVXJsO1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0aWYgKGJJc0VkaXRhYmxlICYmICFiSXNTdGlja3lTdXBwb3J0ZWQgJiYgYUFjdGl2ZUNvbnRleHRQYXRocykge1xuXHRcdHNTaGFyZVVybCA9IHNCYXNlUGF0aCArIGFBY3RpdmVDb250ZXh0UGF0aHMuam9pbihcIi9cIik7XG5cdH0gZWxzZSB7XG5cdFx0c1NoYXJlVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHR9XG5cdHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArIHNTaGFyZVVybDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuXG5mdW5jdGlvbiBnZXRKYW1VcmwoYklzRWRpdE1vZGU6IGJvb2xlYW4sIGJJc1N0aWNreVN1cHBvcnRlZDogYW55LCBhQWN0aXZlQ29udGV4dFBhdGhzOiBhbnkpIHtcblx0bGV0IHNKYW1Vcmw6IHN0cmluZztcblx0Y29uc3Qgc0hhc2ggPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0Y29uc3Qgc0Jhc2VQYXRoID0gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoXG5cdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHQ6IFwiXCI7XG5cdGlmIChiSXNFZGl0TW9kZSAmJiAhYklzU3RpY2t5U3VwcG9ydGVkICYmIGFBY3RpdmVDb250ZXh0UGF0aHMpIHtcblx0XHRzSmFtVXJsID0gc0Jhc2VQYXRoICsgYUFjdGl2ZUNvbnRleHRQYXRocy5qb2luKFwiL1wiKTtcblx0fSBlbHNlIHtcblx0XHRzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHR9XG5cdC8vIGluIGNhc2Ugd2UgYXJlIGluIGNGTFAgc2NlbmFyaW8sIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nXG5cdC8vIGluc2lkZSBhbiBpZnJhbWUsIGFuZCB0aGVyZSBmb3Igd2UgbmVlZCB0byBnZXQgdGhlIGNGTFAgVVJMXG5cdC8vIGFuZCBub3QgJ2RvY3VtZW50LlVSTCcgdGhhdCByZXByZXNlbnRzIHRoZSBpZnJhbWUgVVJMXG5cdGlmIChzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyICYmIHNhcC51c2hlbGwuQ29udGFpbmVyLnJ1bm5pbmdJbklmcmFtZSAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUoKSkge1xuXHRcdHNhcC51c2hlbGwuQ29udGFpbmVyLmdldEZMUFVybCh0cnVlKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNVcmw6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gc1VybC5zdWJzdHIoMCwgc1VybC5pbmRleE9mKFwiI1wiKSkgKyBzSmFtVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiQ291bGQgbm90IHJldHJpZXZlIGNGTFAgVVJMIGZvciB0aGUgc2hhcmluZyBkaWFsb2cgKGRpYWxvZyB3aWxsIG5vdCBiZSBvcGVuZWQpXCIsIHNFcnJvcik7XG5cdFx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsKTtcblx0fVxufVxuXG5jb25zdCBTaGFyZUV4dGVuc2lvbk92ZXJyaWRlID0ge1xuXHRhZGFwdFNoYXJlTWV0YWRhdGE6IGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBTaGFyZSwgb1NoYXJlTWV0YWRhdGE6IGFueSkge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdGNvbnN0IG9VSU1vZGVsID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRNb2RlbChcInVpXCIpO1xuXHRcdGNvbnN0IGJJc0VkaXRhYmxlID0gb1VJTW9kZWwuZ2V0UHJvcGVydHkoXCIvaXNFZGl0YWJsZVwiKTtcblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBhQWN0aXZlQ29udGV4dFBhdGhzID0gYXdhaXQgZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQsIHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpKTtcblx0XHRcdGNvbnN0IG9QYWdlVGl0bGVJbmZvID0gKHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHRcdGNvbnN0IG9EYXRhID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuXHRcdFx0XHRnZXRKYW1VcmwoYklzRWRpdGFibGUsIGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZCwgYUFjdGl2ZUNvbnRleHRQYXRocyksXG5cdFx0XHRcdGdldFNoYXJlVXJsKGJJc0VkaXRhYmxlLCBiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQsIGFBY3RpdmVDb250ZXh0UGF0aHMpLFxuXHRcdFx0XHRnZXRTaGFyZUVtYWlsVXJsKClcblx0XHRcdF0pO1xuXG5cdFx0XHRsZXQgc1RpdGxlID0gb1BhZ2VUaXRsZUluZm8udGl0bGU7XG5cdFx0XHRjb25zdCBzT2JqZWN0U3VidGl0bGUgPSBvUGFnZVRpdGxlSW5mby5zdWJ0aXRsZSA/IG9QYWdlVGl0bGVJbmZvLnN1YnRpdGxlLnRvU3RyaW5nKCkgOiBcIlwiO1xuXHRcdFx0aWYgKHNPYmplY3RTdWJ0aXRsZSkge1xuXHRcdFx0XHRzVGl0bGUgPSBgJHtzVGl0bGV9IC0gJHtzT2JqZWN0U3VidGl0bGV9YDtcblx0XHRcdH1cblx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpbGUgPSB7XG5cdFx0XHRcdHRpdGxlOiBvUGFnZVRpdGxlSW5mby50aXRsZSxcblx0XHRcdFx0c3VidGl0bGU6IHNPYmplY3RTdWJ0aXRsZVxuXHRcdFx0fTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnRpdGxlID0gc1RpdGxlO1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBzVGl0bGU7XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS5qYW0udXJsID0gb0RhdGFbMF07XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBvRGF0YVsxXTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IG9EYXRhWzJdO1xuXHRcdFx0Ly8gTVMgVGVhbXMgY29sbGFib3JhdGlvbiBkb2VzIG5vdCB3YW50IHRvIGFsbG93IGZ1cnRoZXIgY2hhbmdlcyB0byB0aGUgVVJMXG5cdFx0XHQvLyBzbyB1cGRhdGUgY29sbG9ib3JhdGlvbkluZm8gbW9kZWwgYXQgTFIgb3ZlcnJpZGUgdG8gaWdub3JlIGZ1cnRoZXIgZXh0ZW5zaW9uIGNoYW5nZXMgYXQgbXVsdGlwbGUgbGV2ZWxzXG5cdFx0XHRjb25zdCBjb2xsYWJvcmF0aW9uSW5mb01vZGVsOiBKU09OTW9kZWwgPSB0aGlzLmJhc2UuZ2V0VmlldygpLmdldE1vZGVsKFwiY29sbGFib3JhdGlvbkluZm9cIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi91cmxcIiwgb1NoYXJlTWV0YWRhdGEudXJsKTtcblx0XHRcdGNvbGxhYm9yYXRpb25JbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvYXBwVGl0bGVcIiwgb1NoYXJlTWV0YWRhdGEudGl0bGUpO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9zdWJUaXRsZVwiLCBzT2JqZWN0U3VidGl0bGUpO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9TaGFyZU1ldGFkYXRhO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaGFyZUV4dGVuc2lvbk92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBVUEsSUFBSUEsd0JBQWlDO0VBRXJDLFNBQVNDLGdDQUFnQyxDQUFDQyxVQUFlLEVBQUVDLHNCQUEyQixFQUFFO0lBQ3ZGLE1BQU1DLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNKLFVBQVUsQ0FBQztJQUVyQyxNQUFNSyxRQUFRLEdBQUdILEtBQUssQ0FBQ0ksR0FBRyxDQUFDLFVBQVVDLElBQVksRUFBRTtNQUNsRCxNQUFNQyxNQUFNLEdBQUdSLFVBQVUsQ0FBQ08sSUFBSSxDQUFDO01BQy9CLElBQUlDLE1BQU0sS0FBS0MsU0FBUyxFQUFFO1FBQ3pCLE9BQU8sSUFBSUMsTUFBTSxDQUFDSCxJQUFJLEVBQUVJLGNBQWMsQ0FBQ0MsRUFBRSxFQUFFSixNQUFNLENBQUM7TUFDbkQ7SUFDRCxDQUFDLENBQUM7SUFFRixJQUFJUCxzQkFBc0IsRUFBRTtNQUMzQixNQUFNWSxhQUFhLEdBQUcsSUFBSUgsTUFBTSxDQUFDO1FBQ2hDSSxPQUFPLEVBQUUsQ0FBQyxJQUFJSixNQUFNLENBQUMsOEJBQThCLEVBQUVDLGNBQWMsQ0FBQ0MsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFRyxHQUFHLEVBQUU7TUFDTixDQUFDLENBQUM7TUFFRlYsUUFBUSxDQUFDVyxJQUFJLENB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
|
|
281
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQiLCJjcmVhdGVGaWx0ZXJUb0ZldGNoQWN0aXZlQ29udGV4dCIsIm1LZXlWYWx1ZXMiLCJiSXNBY3RpdmVFbnRpdHlEZWZpbmVkIiwiYUtleXMiLCJPYmplY3QiLCJrZXlzIiwiYUZpbHRlcnMiLCJtYXAiLCJzS2V5Iiwic1ZhbHVlIiwidW5kZWZpbmVkIiwiRmlsdGVyIiwiRmlsdGVyT3BlcmF0b3IiLCJFUSIsIm9BY3RpdmVGaWx0ZXIiLCJmaWx0ZXJzIiwiYW5kIiwicHVzaCIsImdldEFjdGl2ZUNvbnRleHRQYXRoIiwib0NvbnRyb2xsZXIiLCJzUGFnZUVudGl0eU5hbWUiLCJvRmlsdGVyIiwib0xpc3RCaW5kaW5nIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0TW9kZWwiLCJiaW5kTGlzdCIsIiQkZ3JvdXBJZCIsInJlcXVlc3RDb250ZXh0cyIsInRoZW4iLCJvQ29udGV4dHMiLCJsZW5ndGgiLCJnZXRQYXRoIiwiZ2V0QWN0aXZlQ29udGV4dEluc3RhbmNlcyIsIm9Db250ZXh0Iiwib0VudGl0eVNldCIsImFBY3RpdmVDb250ZXh0cHJvbWlzZXMiLCJhUGFnZXMiLCJzTWV0YVBhdGgiLCJnZXRNZXRhTW9kZWwiLCJnZXRNZXRhUGF0aCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJhTWV0YVBhdGhBcnJheSIsInNwbGl0Iiwic0N1cnJlbnRIYXNoTm9QYXJhbXMiLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiZ2V0SGFzaCIsImFDdXJyZW50SGFzaEFycmF5Iiwib1BhZ2VNYXAiLCJhUGFnZUhhc2hBcnJheSIsImZvckVhY2giLCJzUGFnZUhhc2giLCJhS2V5VmFsdWVzIiwic1BhZ2VIYXNoTmFtZSIsImkiLCJzS2V5QXNzaWdubWVudCIsImFQYXJ0cyIsInNLZXlWYWx1ZSIsIm9NZXRhTW9kZWwiLCJhVGVjaG5pY2FsS2V5cyIsImdldE9iamVjdCIsImpvaW4iLCJsYXN0SW5kZXhPZiIsImRlY29kZVVSSUNvbXBvbmVudCIsIm9QYWdlRW50aXR5U2V0Iiwic05hdmlnYXRpb25QYXRoIiwib1BhZ2VJbmZvIiwic1BhZ2VFbnRpdHlTZXROYW1lIiwiJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmciLCJwYWdlRW50aXR5TmFtZSIsImdldEFjdGl2ZUNvbnRleHRQYXRocyIsInNSb290RW50aXR5TmFtZSIsInN1YnN0ciIsIm9QYWdlQ29udGV4dCIsIlByb21pc2UiLCJhbGwiLCJhRGF0YSIsImFBY3RpdmVDb250ZXh0UGF0aHMiLCJzQWN0aXZlQ29udGV4dFBhdGgiLCJzTmF2aWdhdGlvUHJvcGVydHkiLCJzRW50aXR5U2V0TmFtZSIsInZhbHVlcyIsInJlcGxhY2UiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImluZm8iLCJyZXNvbHZlIiwiZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMiLCJvUHJvbWlzZSIsImFTZW1hbnRpY0tleXMiLCJvTW9kZWwiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIlNlbWFudGljS2V5SGVscGVyIiwiZ2V0U2VtYW50aWNLZXlzIiwib1ZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJnZXRTaGFyZVVybCIsImJJc0VkaXRhYmxlIiwiYklzU3RpY2t5U3VwcG9ydGVkIiwic1NoYXJlVXJsIiwic0hhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwib3JpZ2luIiwicGF0aG5hbWUiLCJzZWFyY2giLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwic0ZMUFVybCIsInNFcnJvciIsImVycm9yIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRKYW1VcmwiLCJiSXNFZGl0TW9kZSIsInNKYW1VcmwiLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwiU2hhcmVFeHRlbnNpb25PdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwiYmFzZSIsIm9VSU1vZGVsIiwiZ2V0UHJvcGVydHkiLCJtYW5pZmVzdCIsImdldEFwcENvbXBvbmVudCIsImdldE1hbmlmZXN0IiwiYXBwSWQiLCJpZCIsImFwcFRpdGxlIiwidGl0bGUiLCJnZXRDb250cm9sbGVyIiwib1BhZ2VUaXRsZUluZm8iLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJvRGF0YSIsInNUaXRsZSIsInNPYmplY3RTdWJ0aXRsZSIsInN1YnRpdGxlIiwidG9TdHJpbmciLCJ0aWxlIiwiZW1haWwiLCJqYW0iLCJ1cmwiLCJjb2xsYWJvcmF0aW9uSW5mb01vZGVsIiwic2V0UHJvcGVydHkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlNoYXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgU2hhcmUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NoYXJlXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBTZW1hbnRpY0tleUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TZW1hbnRpY0tleUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgT2JqZWN0UGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9PYmplY3RQYWdlQ29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCBGaWx0ZXJPcGVyYXRvciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlck9wZXJhdG9yXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxubGV0IGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZDogYm9vbGVhbjtcblxuZnVuY3Rpb24gY3JlYXRlRmlsdGVyVG9GZXRjaEFjdGl2ZUNvbnRleHQobUtleVZhbHVlczogYW55LCBiSXNBY3RpdmVFbnRpdHlEZWZpbmVkOiBhbnkpIHtcblx0Y29uc3QgYUtleXMgPSBPYmplY3Qua2V5cyhtS2V5VmFsdWVzKTtcblxuXHRjb25zdCBhRmlsdGVycyA9IGFLZXlzLm1hcChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0Y29uc3Qgc1ZhbHVlID0gbUtleVZhbHVlc1tzS2V5XTtcblx0XHRpZiAoc1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBuZXcgRmlsdGVyKHNLZXksIEZpbHRlck9wZXJhdG9yLkVRLCBzVmFsdWUpO1xuXHRcdH1cblx0fSk7XG5cblx0aWYgKGJJc0FjdGl2ZUVudGl0eURlZmluZWQpIHtcblx0XHRjb25zdCBvQWN0aXZlRmlsdGVyID0gbmV3IEZpbHRlcih7XG5cdFx0XHRmaWx0ZXJzOiBbbmV3IEZpbHRlcihcIlNpYmxpbmdFbnRpdHkvSXNBY3RpdmVFbnRpdHlcIiwgRmlsdGVyT3BlcmF0b3IuRVEsIHRydWUpXSxcblx0XHRcdGFuZDogZmFsc2Vcblx0XHR9KTtcblxuXHRcdGFGaWx0ZXJzLnB1c2gob0FjdGl2ZUZpbHRlcik7XG5cdH1cblxuXHRyZXR1cm4gbmV3IEZpbHRlcihhRmlsdGVycyBhcyBhbnksIHRydWUpO1xufVxuZnVuY3Rpb24gZ2V0QWN0aXZlQ29udGV4dFBhdGgob0NvbnRyb2xsZXI6IGFueSwgc1BhZ2VFbnRpdHlOYW1lOiBhbnksIG9GaWx0ZXI6IGFueSkge1xuXHRjb25zdCBvTGlzdEJpbmRpbmcgPSBvQ29udHJvbGxlclxuXHRcdC5nZXRWaWV3KClcblx0XHQuZ2V0QmluZGluZ0NvbnRleHQoKVxuXHRcdC5nZXRNb2RlbCgpXG5cdFx0LmJpbmRMaXN0KGAvJHtzUGFnZUVudGl0eU5hbWV9YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9GaWx0ZXIsIHsgJCRncm91cElkOiBcIiRhdXRvLkhlcm9lc1wiIH0pO1xuXHRyZXR1cm4gb0xpc3RCaW5kaW5nLnJlcXVlc3RDb250ZXh0cygwLCAyKS50aGVuKGZ1bmN0aW9uIChvQ29udGV4dHM6IGFueSkge1xuXHRcdGlmIChvQ29udGV4dHMgJiYgb0NvbnRleHRzLmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIG9Db250ZXh0c1swXS5nZXRQYXRoKCk7XG5cdFx0fVxuXHR9KTtcbn1cbmZ1bmN0aW9uIGdldEFjdGl2ZUNvbnRleHRJbnN0YW5jZXMob0NvbnRleHQ6IGFueSwgb0NvbnRyb2xsZXI6IGFueSwgb0VudGl0eVNldDogYW55KSB7XG5cdGNvbnN0IGFBY3RpdmVDb250ZXh0cHJvbWlzZXM6IGFueVtdID0gW107XG5cdGNvbnN0IGFQYWdlczogYW55W10gPSBbXTtcblx0bGV0IHNNZXRhUGF0aCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgob0NvbnRleHQuZ2V0UGF0aCgpKTtcblx0aWYgKHNNZXRhUGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdHNNZXRhUGF0aCA9IHNNZXRhUGF0aC5zdWJzdHJpbmcoMSk7XG5cdH1cblx0Y29uc3QgYU1ldGFQYXRoQXJyYXkgPSBzTWV0YVBhdGguc3BsaXQoXCIvXCIpO1xuXHRjb25zdCBzQ3VycmVudEhhc2hOb1BhcmFtcyA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpLnNwbGl0KFwiP1wiKVswXTtcblx0Y29uc3QgYUN1cnJlbnRIYXNoQXJyYXkgPSBzQ3VycmVudEhhc2hOb1BhcmFtcy5zcGxpdChcIi9cIik7XG5cblx0Ly8gb1BhZ2VNYXAgLSBjcmVhdGluZyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBtYXAgb2YgbWV0YXBhdGggbmFtZSBhbmQgaXQncyB0ZWNobmljYWwgZGV0YWlsc1xuXHQvLyB3aGljaCBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBmaWx0ZXIgdG8gZmV0Y2ggdGhlIHJlbGF2YW50L2NvcnJlY3QgYWN0aXZlIGNvbnRleHRcblx0Ly8gRXhhbXBsZToge1NhbGVzT3JkZXJNYW5hZ2U6e3RlY2huaWNhbElEOnRlY2huaWNhbElEVmFsdWV9LCBfSXRlbTp7dGVjaG5pY2FsSUQ6dGVjaG5pY2FsSURWYWx1ZX19IGV0Yy4sXG5cdGNvbnN0IG9QYWdlTWFwOiBhbnkgPSB7fTtcblx0Y29uc3QgYVBhZ2VIYXNoQXJyYXk6IGFueVtdID0gW107XG5cdGFDdXJyZW50SGFzaEFycmF5LmZvckVhY2goZnVuY3Rpb24gKHNQYWdlSGFzaDogYW55KSB7XG5cdFx0Y29uc3QgYUtleVZhbHVlcyA9IHNQYWdlSGFzaC5zdWJzdHJpbmcoc1BhZ2VIYXNoLmluZGV4T2YoXCIoXCIpICsgMSwgc1BhZ2VIYXNoLmxlbmd0aCAtIDEpLnNwbGl0KFwiLFwiKTtcblx0XHRjb25zdCBtS2V5VmFsdWVzOiBhbnkgPSB7fTtcblx0XHRjb25zdCBzUGFnZUhhc2hOYW1lID0gc1BhZ2VIYXNoLnNwbGl0KFwiKFwiKVswXTtcblx0XHRvUGFnZU1hcFtzUGFnZUhhc2hOYW1lXSA9IHt9O1xuXHRcdGFQYWdlSGFzaEFycmF5LnB1c2goc1BhZ2VIYXNoTmFtZSk7XG5cdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoTmFtZV1bXCJiSXNBY3RpdmVFbnRpdHlEZWZpbmVkXCJdID0gdHJ1ZTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFLZXlWYWx1ZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHNLZXlBc3NpZ25tZW50ID0gYUtleVZhbHVlc1tpXTtcblx0XHRcdGNvbnN0IGFQYXJ0cyA9IHNLZXlBc3NpZ25tZW50LnNwbGl0KFwiPVwiKTtcblx0XHRcdGxldCBzS2V5VmFsdWUgPSBhUGFydHNbMV07XG5cdFx0XHRsZXQgc0tleSA9IGFQYXJ0c1swXTtcblx0XHRcdC8vIEluIGNhc2UgaWYgb25seSBvbmUgdGVjaG5pY2FsIGtleSBpcyBkZWZpbmVkIHRoZW4gdGhlIHVybCBqdXN0IGNvbnRhaW5zIHRoZSB0ZWNobmljYWxJRFZhbHVlIGJ1dCBub3QgdGhlIHRlY2huaWNhbElEXG5cdFx0XHQvLyBFeGFtcGxlOiBTYWxlc09yZGVyTWFuYWdlKElEPTExMTExMTI5LWFhYWEtYmJiYi1jY2NjLWRkZGRlZWVlZmZmZixJc0FjdGl2ZUVudGl0eT1mYWxzZSkvX0l0ZW0oMTExMTExMjktYWFhYS1iYmJiLWNjY2MtZGRkZGVlZWVmZmZmKVxuXHRcdFx0Ly8gSW4gYWJvdmUgZXhhbXBsZSBTYWxlc09yZGVySXRlbSBoYXMgb25seSBvbmUgdGVjaG5pY2FsIGtleSBkZWZpbmVkLCBoZW5jZSB0ZWNobmljYWxJRCBpbmZvIGlzIG5vdCBwcmVzZW50IGluIHRoZSB1cmxcblx0XHRcdC8vIEhlbmNlIGluIHN1Y2ggY2FzZXMgd2UgZ2V0IHRlY2huaWNhbCBrZXkgYW5kIHVzZSB0aGVtIHRvIGZldGNoIGFjdGl2ZSBjb250ZXh0XG5cdFx0XHRpZiAoc0tleUFzc2lnbm1lbnQuaW5kZXhPZihcIj1cIikgPT09IC0xKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0XHRjb25zdCBhVGVjaG5pY2FsS2V5cyA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHthUGFnZUhhc2hBcnJheS5qb2luKFwiL1wiKX0vJFR5cGUvJEtleWApO1xuXHRcdFx0XHRzS2V5VmFsdWUgPSBhUGFydHNbMF07XG5cdFx0XHRcdHNLZXkgPSBhVGVjaG5pY2FsS2V5c1swXTtcblx0XHRcdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoLnNwbGl0KFwiKFwiKVswXV1bXCJiSXNBY3RpdmVFbnRpdHlEZWZpbmVkXCJdID0gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzS2V5ICE9PSBcIklzQWN0aXZlRW50aXR5XCIpIHtcblx0XHRcdFx0aWYgKHNLZXlWYWx1ZS5pbmRleE9mKFwiJ1wiKSA9PT0gMCAmJiBzS2V5VmFsdWUubGFzdEluZGV4T2YoXCInXCIpID09PSBzS2V5VmFsdWUubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdC8vIFJlbW92ZSB0aGUgcXVvdGVzIGZyb20gdGhlIHZhbHVlIGFuZCBkZWNvZGUgc3BlY2lhbCBjaGFyc1xuXHRcdFx0XHRcdHNLZXlWYWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChzS2V5VmFsdWUuc3Vic3RyaW5nKDEsIHNLZXlWYWx1ZS5sZW5ndGggLSAxKSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0bUtleVZhbHVlc1tzS2V5XSA9IHNLZXlWYWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoTmFtZV0ubUtleVZhbHVlcyA9IG1LZXlWYWx1ZXM7XG5cdH0pO1xuXG5cdGxldCBvUGFnZUVudGl0eVNldCA9IG9FbnRpdHlTZXQ7XG5cdGFNZXRhUGF0aEFycmF5LmZvckVhY2goZnVuY3Rpb24gKHNOYXZpZ2F0aW9uUGF0aDogYW55KSB7XG5cdFx0Y29uc3Qgb1BhZ2VJbmZvOiBhbnkgPSB7fTtcblx0XHRjb25zdCBzUGFnZUVudGl0eVNldE5hbWUgPSBvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZyAmJiBvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tzTmF2aWdhdGlvblBhdGhdO1xuXHRcdGlmIChzUGFnZUVudGl0eVNldE5hbWUpIHtcblx0XHRcdG9QYWdlSW5mby5wYWdlRW50aXR5TmFtZSA9IG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW3NOYXZpZ2F0aW9uUGF0aF07XG5cdFx0XHRvUGFnZUVudGl0eVNldCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KGAvJHtzUGFnZUVudGl0eVNldE5hbWV9YCkgfHwgb0VudGl0eVNldDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1BhZ2VJbmZvLnBhZ2VFbnRpdHlOYW1lID0gc05hdmlnYXRpb25QYXRoO1xuXHRcdH1cblx0XHRvUGFnZUluZm8ubUtleVZhbHVlcyA9IG9QYWdlTWFwW3NOYXZpZ2F0aW9uUGF0aF0ubUtleVZhbHVlcztcblx0XHRvUGFnZUluZm8uYklzQWN0aXZlRW50aXR5RGVmaW5lZCA9IG9QYWdlTWFwW3NOYXZpZ2F0aW9uUGF0aF0uYklzQWN0aXZlRW50aXR5RGVmaW5lZDtcblx0XHRhUGFnZXMucHVzaChvUGFnZUluZm8pO1xuXHR9KTtcblxuXHRhUGFnZXMuZm9yRWFjaChmdW5jdGlvbiAob1BhZ2VJbmZvOiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVyID0gY3JlYXRlRmlsdGVyVG9GZXRjaEFjdGl2ZUNvbnRleHQob1BhZ2VJbmZvLm1LZXlWYWx1ZXMsIG9QYWdlSW5mby5iSXNBY3RpdmVFbnRpdHlEZWZpbmVkKTtcblx0XHRhQWN0aXZlQ29udGV4dHByb21pc2VzLnB1c2goZ2V0QWN0aXZlQ29udGV4dFBhdGgob0NvbnRyb2xsZXIsIG9QYWdlSW5mby5wYWdlRW50aXR5TmFtZSwgb0ZpbHRlcikpO1xuXHR9KTtcblxuXHRyZXR1cm4gYUFjdGl2ZUNvbnRleHRwcm9taXNlcztcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZmV0Y2ggYWN0aXZlIGNvbnRleHQgcGF0aCdzLlxuICpcbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgUGFnZSBDb250ZXh0XG4gKiBAcGFyYW0gb0NvbnRyb2xsZXJcbiAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggaXMgcmVzb2x2ZWQgb25jZSB0aGUgYWN0aXZlIGNvbnRleHQncyBhcmUgZmV0Y2hlZFxuICovXG5mdW5jdGlvbiBnZXRBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQ6IGFueSwgb0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBzQ3VycmVudEhhc2hOb1BhcmFtcyA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpLnNwbGl0KFwiP1wiKVswXTtcblx0bGV0IHNSb290RW50aXR5TmFtZSA9IHNDdXJyZW50SGFzaE5vUGFyYW1zICYmIHNDdXJyZW50SGFzaE5vUGFyYW1zLnN1YnN0cigwLCBzQ3VycmVudEhhc2hOb1BhcmFtcy5pbmRleE9mKFwiKFwiKSk7XG5cdGlmIChzUm9vdEVudGl0eU5hbWUuaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRzUm9vdEVudGl0eU5hbWUgPSBzUm9vdEVudGl0eU5hbWUuc3Vic3RyaW5nKDEpO1xuXHR9XG5cdGNvbnN0IG9FbnRpdHlTZXQgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChgLyR7c1Jvb3RFbnRpdHlOYW1lfWApO1xuXHRjb25zdCBvUGFnZUNvbnRleHQgPSBvQ29udGV4dDtcblx0Y29uc3QgYUFjdGl2ZUNvbnRleHRwcm9taXNlcyA9IGdldEFjdGl2ZUNvbnRleHRJbnN0YW5jZXMob0NvbnRleHQsIG9Db250cm9sbGVyLCBvRW50aXR5U2V0KTtcblx0aWYgKGFBY3RpdmVDb250ZXh0cHJvbWlzZXMubGVuZ3RoID4gMCkge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChhQWN0aXZlQ29udGV4dHByb21pc2VzKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKGFEYXRhOiBhbnlbXSkge1xuXHRcdFx0XHRjb25zdCBhQWN0aXZlQ29udGV4dFBhdGhzID0gW107XG5cdFx0XHRcdGxldCBvUGFnZUVudGl0eVNldCA9IG9FbnRpdHlTZXQ7XG5cdFx0XHRcdGlmIChhRGF0YVswXS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChhRGF0YVswXS5zdWJzdHJpbmcoMSkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChhRGF0YVswXSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gSW4gdGhlIGFjdGl2ZSBjb250ZXh0IHBhdGhzIGlkZW50aWZ5IGFuZCByZXBsYWNlIHRoZSBlbnRpdHlTZXQgTmFtZSB3aXRoIGNvcnJlc3BvbmRpbmcgbmF2aWdhdGlvbiBwcm9wZXJ0eSBuYW1lXG5cdFx0XHRcdC8vIFJlcXVpcmVkIHRvIGZvcm0gdGhlIHVybCBwb2ludGluZyB0byBhY3RpdmUgY29udGV4dFxuXHRcdFx0XHQvLyBFeGFtcGxlIDogU2FsZXNPcmRlckl0ZW0gLS0+IF9JdGVtLCBNYXRlcmlhbERldGFpbHMgLS0+IF9NYXRlcmlhbERldGFpbHMgZXRjLixcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDE7IGkgPCBhRGF0YS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGxldCBzQWN0aXZlQ29udGV4dFBhdGggPSBhRGF0YVtpXTtcblx0XHRcdFx0XHRsZXQgc05hdmlnYXRpb1Byb3BlcnR5ID0gXCJcIjtcblx0XHRcdFx0XHRsZXQgc0VudGl0eVNldE5hbWUgPSBzQWN0aXZlQ29udGV4dFBhdGggJiYgc0FjdGl2ZUNvbnRleHRQYXRoLnN1YnN0cigwLCBzQWN0aXZlQ29udGV4dFBhdGguaW5kZXhPZihcIihcIikpO1xuXHRcdFx0XHRcdGlmIChzRW50aXR5U2V0TmFtZS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0XHRcdFx0c0VudGl0eVNldE5hbWUgPSBzRW50aXR5U2V0TmFtZS5zdWJzdHJpbmcoMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChzQWN0aXZlQ29udGV4dFBhdGguaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdFx0XHRcdHNBY3RpdmVDb250ZXh0UGF0aCA9IHNBY3RpdmVDb250ZXh0UGF0aC5zdWJzdHJpbmcoMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNOYXZpZ2F0aW9Qcm9wZXJ0eSA9IE9iamVjdC5rZXlzKG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nKVtcblx0XHRcdFx0XHRcdE9iamVjdC52YWx1ZXMob1BhZ2VFbnRpdHlTZXQuJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcpLmluZGV4T2Yoc0VudGl0eVNldE5hbWUpXG5cdFx0XHRcdFx0XTtcblx0XHRcdFx0XHRpZiAoc05hdmlnYXRpb1Byb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRhQWN0aXZlQ29udGV4dFBhdGhzLnB1c2goc0FjdGl2ZUNvbnRleHRQYXRoLnJlcGxhY2Uoc0VudGl0eVNldE5hbWUsIHNOYXZpZ2F0aW9Qcm9wZXJ0eSkpO1xuXHRcdFx0XHRcdFx0b1BhZ2VFbnRpdHlTZXQgPSBvUGFnZUNvbnRleHQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKS5nZXRPYmplY3QoYC8ke3NFbnRpdHlTZXROYW1lfWApIHx8IG9FbnRpdHlTZXQ7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChzQWN0aXZlQ29udGV4dFBhdGgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYUFjdGl2ZUNvbnRleHRQYXRocztcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5pbmZvKFwiRmFpbGVkIHRvIHJldHJpZXZlIG9uZSBvciBtb3JlIGFjdGl2ZSBjb250ZXh0IHBhdGgnc1wiLCBvRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHR9XG59XG5mdW5jdGlvbiBmZXRjaEFjdGl2ZUNvbnRleHRQYXRocyhvQ29udGV4dDogYW55LCBvQ29udHJvbGxlcjogYW55KSB7XG5cdGxldCBvUHJvbWlzZSwgYVNlbWFudGljS2V5cztcblx0Y29uc3Qgc0N1cnJlbnRIYXNoTm9QYXJhbXMgPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKS5zcGxpdChcIj9cIilbMF07XG5cdGlmIChvQ29udGV4dCkge1xuXHRcdGNvbnN0IG9Nb2RlbCA9IG9Db250ZXh0LmdldE1vZGVsKCk7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKTtcblx0XHRiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQob01ldGFNb2RlbCk7XG5cdFx0bGV0IHNSb290RW50aXR5TmFtZSA9IHNDdXJyZW50SGFzaE5vUGFyYW1zICYmIHNDdXJyZW50SGFzaE5vUGFyYW1zLnN1YnN0cigwLCBzQ3VycmVudEhhc2hOb1BhcmFtcy5pbmRleE9mKFwiKFwiKSk7XG5cdFx0aWYgKHNSb290RW50aXR5TmFtZS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0c1Jvb3RFbnRpdHlOYW1lID0gc1Jvb3RFbnRpdHlOYW1lLnN1YnN0cmluZygxKTtcblx0XHR9XG5cdFx0YVNlbWFudGljS2V5cyA9IFNlbWFudGljS2V5SGVscGVyLmdldFNlbWFudGljS2V5cyhvTWV0YU1vZGVsLCBzUm9vdEVudGl0eU5hbWUpO1xuXHR9XG5cdC8vIEZldGNoIGFjdGl2ZSBjb250ZXh0IGRldGFpbHMgaW5jYXNlIG9mIGJlbG93IHNjZW5hcmlvJ3Mod2hlcmUgcGFnZSBpcyBub3Qgc3RpY2t5IHN1cHBvcnRlZCh3ZSBkbyBub3QgaGF2ZSBkcmFmdCBpbnN0YW5jZSkpXG5cdC8vIDEuIEluIGNhc2Ugb2YgZHJhZnQgZW5hYmxlZCBPYmplY3QgcGFnZSB3aGVyZSBzZW1hbnRpYyBrZXkgYmFzZWQgVVJMIGlzIG5vdCBwb3NzaWJsZShsaWtlIHNlbWFudGljIGtleXMgYXJlIG5vdCBtb2RlbGVkIGluIHRoZSBlbnRpdHkgc2V0KVxuXHQvLyAyLiBJbiBjYXNlIG9mIGRyYWZ0IGVuYWJsZWQgU3ViIE9iamVjdCBQYWdlcyAod2hlcmUgc2VtYW50aWMgYm9va21hcmtpbmcgaXMgbm90IHN1cHBvcnRlZClcblx0Y29uc3Qgb1ZpZXdEYXRhID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpLmdldFZpZXdEYXRhKCk7XG5cdGlmIChvQ29udGV4dCAmJiAhYkdsb2JhbElzU3RpY2t5U3VwcG9ydGVkICYmICgob1ZpZXdEYXRhLnZpZXdMZXZlbCA9PT0gMSAmJiAhYVNlbWFudGljS2V5cykgfHwgb1ZpZXdEYXRhLnZpZXdMZXZlbCA+PSAyKSkge1xuXHRcdG9Qcm9taXNlID0gZ2V0QWN0aXZlQ29udGV4dFBhdGhzKG9Db250ZXh0LCBvQ29udHJvbGxlcik7XG5cdFx0cmV0dXJuIG9Qcm9taXNlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0fVxufVxuXG4vLyAvKipcbi8vICAqIEdldCBzaGFyZSBVUkwuXG4vLyAgKiBAcGFyYW0gYklzRWRpdGFibGVcbi8vICAqIEBwYXJhbSBiSXNTdGlja3lTdXBwb3J0ZWRcbi8vICAqIEBwYXJhbSBhQWN0aXZlQ29udGV4dFBhdGhzXG4vLyAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc2hhcmUgVVJMXG4vLyAgKiBAcHJvdGVjdGVkXG4vLyAgKiBAc3RhdGljXG4vLyAgKi9cbmZ1bmN0aW9uIGdldFNoYXJlVXJsKGJJc0VkaXRhYmxlOiBhbnksIGJJc1N0aWNreVN1cHBvcnRlZDogYW55LCBhQWN0aXZlQ29udGV4dFBhdGhzOiBhbnkpIHtcblx0bGV0IHNTaGFyZVVybDtcblx0Y29uc3Qgc0hhc2ggPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0Y29uc3Qgc0Jhc2VQYXRoID0gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoXG5cdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHQ6IFwiXCI7XG5cdGlmIChiSXNFZGl0YWJsZSAmJiAhYklzU3RpY2t5U3VwcG9ydGVkICYmIGFBY3RpdmVDb250ZXh0UGF0aHMpIHtcblx0XHRzU2hhcmVVcmwgPSBzQmFzZVBhdGggKyBhQWN0aXZlQ29udGV4dFBhdGhzLmpvaW4oXCIvXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHNTaGFyZVVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0fVxuXHRyZXR1cm4gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyBzU2hhcmVVcmw7XG59XG5mdW5jdGlvbiBnZXRTaGFyZUVtYWlsVXJsKCkge1xuXHRjb25zdCBvVVNoZWxsQ29udGFpbmVyID0gc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lcjtcblx0aWYgKG9VU2hlbGxDb250YWluZXIpIHtcblx0XHRyZXR1cm4gb1VTaGVsbENvbnRhaW5lclxuXHRcdFx0LmdldEZMUFVybEFzeW5jKHRydWUpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoc0ZMUFVybDogYW55KSB7XG5cdFx0XHRcdHJldHVybiBzRkxQVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiQ291bGQgbm90IHJldHJpZXZlIGNGTFAgVVJMIGZvciB0aGUgc2hhcmluZyBkaWFsb2cgKGRpYWxvZyB3aWxsIG5vdCBiZSBvcGVuZWQpXCIsIHNFcnJvcik7XG5cdFx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50LlVSTCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0SmFtVXJsKGJJc0VkaXRNb2RlOiBib29sZWFuLCBiSXNTdGlja3lTdXBwb3J0ZWQ6IGFueSwgYUFjdGl2ZUNvbnRleHRQYXRoczogYW55KSB7XG5cdGxldCBzSmFtVXJsOiBzdHJpbmc7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRpZiAoYklzRWRpdE1vZGUgJiYgIWJJc1N0aWNreVN1cHBvcnRlZCAmJiBhQWN0aXZlQ29udGV4dFBhdGhzKSB7XG5cdFx0c0phbVVybCA9IHNCYXNlUGF0aCArIGFBY3RpdmVDb250ZXh0UGF0aHMuam9pbihcIi9cIik7XG5cdH0gZWxzZSB7XG5cdFx0c0phbVVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0fVxuXHQvLyBpbiBjYXNlIHdlIGFyZSBpbiBjRkxQIHNjZW5hcmlvLCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZ1xuXHQvLyBpbnNpZGUgYW4gaWZyYW1lLCBhbmQgdGhlcmUgZm9yIHdlIG5lZWQgdG8gZ2V0IHRoZSBjRkxQIFVSTFxuXHQvLyBhbmQgbm90ICdkb2N1bWVudC5VUkwnIHRoYXQgcmVwcmVzZW50cyB0aGUgaWZyYW1lIFVSTFxuXHRpZiAoc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lciAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lKCkpIHtcblx0XHRzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRGTFBVcmwodHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNVcmwuc3Vic3RyKDAsIHNVcmwuaW5kZXhPZihcIiNcIikpICsgc0phbVVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgc0phbVVybCk7XG5cdH1cbn1cblxuY29uc3QgU2hhcmVFeHRlbnNpb25PdmVycmlkZSA9IHtcblx0YWRhcHRTaGFyZU1ldGFkYXRhOiBhc3luYyBmdW5jdGlvbiAodGhpczogU2hhcmUsIG9TaGFyZU1ldGFkYXRhOiBhbnkpIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRjb25zdCBvVUlNb2RlbCA9IHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0TW9kZWwoXCJ1aVwiKTtcblx0XHRjb25zdCBiSXNFZGl0YWJsZSA9IG9VSU1vZGVsLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIik7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgbWFuaWZlc3QgPSB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TWFuaWZlc3QoKTtcblx0XHRcdGNvbnN0IGFwcElkID0gbWFuaWZlc3Q/LltcInNhcC5hcHBcIl0/LmlkO1xuXHRcdFx0Y29uc3QgYXBwVGl0bGUgPSBtYW5pZmVzdD8uW1wic2FwLmFwcFwiXT8udGl0bGU7XG5cdFx0XHRjb25zdCBhQWN0aXZlQ29udGV4dFBhdGhzID0gYXdhaXQgZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQsIHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpKTtcblx0XHRcdGNvbnN0IG9QYWdlVGl0bGVJbmZvID0gKHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHRcdGNvbnN0IG9EYXRhID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuXHRcdFx0XHRnZXRKYW1VcmwoYklzRWRpdGFibGUsIGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZCwgYUFjdGl2ZUNvbnRleHRQYXRocyksXG5cdFx0XHRcdGdldFNoYXJlVXJsKGJJc0VkaXRhYmxlLCBiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQsIGFBY3RpdmVDb250ZXh0UGF0aHMpLFxuXHRcdFx0XHRnZXRTaGFyZUVtYWlsVXJsKClcblx0XHRcdF0pO1xuXG5cdFx0XHRsZXQgc1RpdGxlID0gb1BhZ2VUaXRsZUluZm8udGl0bGU7XG5cdFx0XHRjb25zdCBzT2JqZWN0U3VidGl0bGUgPSBvUGFnZVRpdGxlSW5mby5zdWJ0aXRsZSA/IG9QYWdlVGl0bGVJbmZvLnN1YnRpdGxlLnRvU3RyaW5nKCkgOiBcIlwiO1xuXHRcdFx0aWYgKHNPYmplY3RTdWJ0aXRsZSkge1xuXHRcdFx0XHRzVGl0bGUgPSBgJHtzVGl0bGV9IC0gJHtzT2JqZWN0U3VidGl0bGV9YDtcblx0XHRcdH1cblx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpbGUgPSB7XG5cdFx0XHRcdHRpdGxlOiBvUGFnZVRpdGxlSW5mby50aXRsZSxcblx0XHRcdFx0c3VidGl0bGU6IHNPYmplY3RTdWJ0aXRsZVxuXHRcdFx0fTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnRpdGxlID0gc1RpdGxlO1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBzVGl0bGU7XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS5qYW0udXJsID0gb0RhdGFbMF07XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBvRGF0YVsxXTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IG9EYXRhWzJdO1xuXHRcdFx0Ly8gTVMgVGVhbXMgY29sbGFib3JhdGlvbiBkb2VzIG5vdCB3YW50IHRvIGFsbG93IGZ1cnRoZXIgY2hhbmdlcyB0byB0aGUgVVJMXG5cdFx0XHQvLyBzbyB1cGRhdGUgY29sbG9ib3JhdGlvbkluZm8gbW9kZWwgYXQgTFIgb3ZlcnJpZGUgdG8gaWdub3JlIGZ1cnRoZXIgZXh0ZW5zaW9uIGNoYW5nZXMgYXQgbXVsdGlwbGUgbGV2ZWxzXG5cdFx0XHRjb25zdCBjb2xsYWJvcmF0aW9uSW5mb01vZGVsOiBKU09OTW9kZWwgPSB0aGlzLmJhc2UuZ2V0VmlldygpLmdldE1vZGVsKFwiY29sbGFib3JhdGlvbkluZm9cIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi91cmxcIiwgb1NoYXJlTWV0YWRhdGEudXJsKTtcblx0XHRcdGNvbGxhYm9yYXRpb25JbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvYXBwVGl0bGVcIiwgYXBwVGl0bGUpO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9zdWJUaXRsZVwiLCBzT2JqZWN0U3VidGl0bGUpO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9hcHBJZFwiLCBhcHBJZCk7XG5cdFx0fSBjYXRjaCAoZXJyb3I6IGFueSkge1xuXHRcdFx0TG9nLmVycm9yKGVycm9yKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gb1NoYXJlTWV0YWRhdGE7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlRXh0ZW5zaW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFVQSxJQUFJQSx3QkFBaUM7RUFFckMsU0FBU0MsZ0NBQWdDLENBQUNDLFVBQWUsRUFBRUMsc0JBQTJCLEVBQUU7SUFDdkYsTUFBTUMsS0FBSyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ0osVUFBVSxDQUFDO0lBRXJDLE1BQU1LLFFBQVEsR0FBR0gsS0FBSyxDQUFDSSxHQUFHLENBQUMsVUFBVUMsSUFBWSxFQUFFO01BQ2xELE1BQU1DLE1BQU0sR0FBR1IsVUFBVSxDQUFDTyxJQUFJLENBQUM7TUFDL0IsSUFBSUMsTUFBTSxLQUFLQyxTQUFTLEVBQUU7UUFDekIs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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/SemanticKeyHelper","sap/ui/core/routing/HashChanger","sap/ui/model/Filter","sap/ui/model/FilterOperator"],function(e,t,n,i,s
|
|
5
|
+
sap.ui.define(["sap/base/Log","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/SemanticKeyHelper","sap/ui/core/routing/HashChanger","sap/ui/model/Filter","sap/ui/model/FilterOperator"],function(e,t,n,i,o,s){"use strict";let r;function l(e,t){const n=Object.keys(e);const i=n.map(function(t){const n=e[t];if(n!==undefined){return new o(t,s.EQ,n)}});if(t){const e=new o({filters:[new o("SiblingEntity/IsActiveEntity",s.EQ,true)],and:false});i.push(e)}return new o(i,true)}function a(e,t,n){const i=e.getView().getBindingContext().getModel().bindList(`/${t}`,undefined,undefined,n,{$$groupId:"$auto.Heroes"});return i.requestContexts(0,2).then(function(e){if(e&&e.length){return e[0].getPath()}})}function c(e,t,n){const o=[];const s=[];let r=e.getModel().getMetaModel().getMetaPath(e.getPath());if(r.indexOf("/")===0){r=r.substring(1)}const c=r.split("/");const u=i.getInstance().getHash().split("?")[0];const g=u.split("/");const f={};const d=[];g.forEach(function(t){const n=t.substring(t.indexOf("(")+1,t.length-1).split(",");const i={};const o=t.split("(")[0];f[o]={};d.push(o);f[o]["bIsActiveEntityDefined"]=true;for(let o=0;o<n.length;o++){const s=n[o];const r=s.split("=");let l=r[1];let a=r[0];if(s.indexOf("=")===-1){const n=e.getModel().getMetaModel();const i=n.getObject(`/${d.join("/")}/$Type/$Key`);l=r[0];a=i[0];f[t.split("(")[0]]["bIsActiveEntityDefined"]=false}if(a!=="IsActiveEntity"){if(l.indexOf("'")===0&&l.lastIndexOf("'")===l.length-1){l=decodeURIComponent(l.substring(1,l.length-1))}i[a]=l}}f[o].mKeyValues=i});let p=n;c.forEach(function(t){const i={};const o=p.$NavigationPropertyBinding&&p.$NavigationPropertyBinding[t];if(o){i.pageEntityName=p.$NavigationPropertyBinding[t];p=e.getModel().getMetaModel().getObject(`/${o}`)||n}else{i.pageEntityName=t}i.mKeyValues=f[t].mKeyValues;i.bIsActiveEntityDefined=f[t].bIsActiveEntityDefined;s.push(i)});s.forEach(function(e){const n=l(e.mKeyValues,e.bIsActiveEntityDefined);o.push(a(t,e.pageEntityName,n))});return o}function u(t,n){const o=i.getInstance().getHash().split("?")[0];let s=o&&o.substr(0,o.indexOf("("));if(s.indexOf("/")===0){s=s.substring(1)}const r=t.getModel().getMetaModel().getObject(`/${s}`);const l=t;const a=c(t,n,r);if(a.length>0){return Promise.all(a).then(function(e){const t=[];let n=r;if(e[0].indexOf("/")===0){t.push(e[0].substring(1))}else{t.push(e[0])}for(let i=1;i<e.length;i++){let o=e[i];let s="";let a=o&&o.substr(0,o.indexOf("("));if(a.indexOf("/")===0){a=a.substring(1)}if(o.indexOf("/")===0){o=o.substring(1)}s=Object.keys(n.$NavigationPropertyBinding)[Object.values(n.$NavigationPropertyBinding).indexOf(a)];if(s){t.push(o.replace(a,s));n=l.getModel().getMetaModel().getObject(`/${a}`)||r}else{t.push(o)}}return t}).catch(function(t){e.info("Failed to retrieve one or more active context path's",t)})}else{return Promise.resolve()}}function g(e,o){let s,l;const a=i.getInstance().getHash().split("?")[0];if(e){const i=e.getModel();const o=i.getMetaModel();r=t.isStickySessionSupported(o);let s=a&&a.substr(0,a.indexOf("("));if(s.indexOf("/")===0){s=s.substring(1)}l=n.getSemanticKeys(o,s)}const c=o.getView().getViewData();if(e&&!r&&(c.viewLevel===1&&!l||c.viewLevel>=2)){s=u(e,o);return s}else{return Promise.resolve()}}function f(e,t,n){let o;const s=i.getInstance().getHash();const r=i.getInstance().hrefForAppSpecificHash?i.getInstance().hrefForAppSpecificHash(""):"";if(e&&!t&&n){o=r+n.join("/")}else{o=s?r+s:window.location.hash}return window.location.origin+window.location.pathname+window.location.search+o}function d(){const t=sap.ushell&&sap.ushell.Container;if(t){return t.getFLPUrlAsync(true).then(function(e){return e}).catch(function(t){e.error("Could not retrieve cFLP URL for the sharing dialog (dialog will not be opened)",t)})}else{return Promise.resolve(document.URL)}}function p(t,n,o){let s;const r=i.getInstance().getHash();const l=i.getInstance().hrefForAppSpecificHash?i.getInstance().hrefForAppSpecificHash(""):"";if(t&&!n&&o){s=l+o.join("/")}else{s=r?l+r:window.location.hash}if(sap.ushell&&sap.ushell.Container&&sap.ushell.Container.runningInIframe&&sap.ushell.Container.runningInIframe()){sap.ushell.Container.getFLPUrl(true).then(function(e){return e.substr(0,e.indexOf("#"))+s}).catch(function(t){e.error("Could not retrieve cFLP URL for the sharing dialog (dialog will not be opened)",t)})}else{return Promise.resolve(window.location.origin+window.location.pathname+s)}}const h={adaptShareMetadata:async function(t){const n=this.base.getView().getBindingContext();const i=this.base.getView().getModel("ui");const o=i.getProperty("/isEditable");try{var s,l;const e=this.base.getAppComponent().getManifest();const i=e===null||e===void 0?void 0:(s=e["sap.app"])===null||s===void 0?void 0:s.id;const a=e===null||e===void 0?void 0:(l=e["sap.app"])===null||l===void 0?void 0:l.title;const c=await g(n,this.base.getView().getController());const u=this.base.getView().getController()._getPageTitleInformation();const h=await Promise.all([p(o,r,c),f(o,r,c),d()]);let b=u.title;const y=u.subtitle?u.subtitle.toString():"";if(y){b=`${b} - ${y}`}t.tile={title:u.title,subtitle:y};t.email.title=b;t.title=b;t.jam.url=h[0];t.url=h[1];t.email.url=h[2];const v=this.base.getView().getModel("collaborationInfo");v.setProperty("/url",t.url);v.setProperty("/appTitle",a);v.setProperty("/subTitle",y);v.setProperty("/appId",i)}catch(t){e.error(t)}return t}};return h},false);
|
|
6
6
|
//# sourceMappingURL=Share.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Share.js","names":["sap","ui","define","Log","ModelHelper","SemanticKeyHelper","HashChanger","Filter","FilterOperator","bGlobalIsStickySupported","createFilterToFetchActiveContext","mKeyValues","bIsActiveEntityDefined","aKeys","Object","keys","aFilters","map","sKey","sValue","undefined","EQ","oActiveFilter","filters","and","push","getActiveContextPath","oController","sPageEntityName","oFilter","oListBinding","getView","getBindingContext","getModel","bindList","$$groupId","requestContexts","then","oContexts","length","getPath","getActiveContextInstances","oContext","oEntitySet","aActiveContextpromises","aPages","sMetaPath","getMetaModel","getMetaPath","indexOf","substring","aMetaPathArray","split","sCurrentHashNoParams","getInstance","getHash","aCurrentHashArray","oPageMap","aPageHashArray","forEach","sPageHash","aKeyValues","sPageHashName","i","sKeyAssignment","aParts","sKeyValue","oMetaModel","aTechnicalKeys","getObject","join","lastIndexOf","decodeURIComponent","oPageEntitySet","sNavigationPath","oPageInfo","sPageEntitySetName","$NavigationPropertyBinding","pageEntityName","getActiveContextPaths","sRootEntityName","substr","oPageContext","Promise","all","aData","aActiveContextPaths","sActiveContextPath","sNavigatioProperty","sEntitySetName","values","replace","catch","oError","info","resolve","fetchActiveContextPaths","oPromise","aSemanticKeys","oModel","isStickySessionSupported","getSemanticKeys","oViewData","getViewData","viewLevel","getShareUrl","bIsEditable","bIsStickySupported","sShareUrl","sHash","sBasePath","hrefForAppSpecificHash","window","location","hash","origin","pathname","search","getShareEmailUrl","oUShellContainer","ushell","Container","getFLPUrlAsync","sFLPUrl","sError","error","document","URL","getJamUrl","bIsEditMode","sJamUrl","runningInIframe","getFLPUrl","sUrl","ShareExtensionOverride","adaptShareMetadata","async","oShareMetadata","this","base","oUIModel","getProperty","getController","oPageTitleInfo","_getPageTitleInformation","oData","sTitle","
|
|
1
|
+
{"version":3,"file":"Share.js","names":["sap","ui","define","Log","ModelHelper","SemanticKeyHelper","HashChanger","Filter","FilterOperator","bGlobalIsStickySupported","createFilterToFetchActiveContext","mKeyValues","bIsActiveEntityDefined","aKeys","Object","keys","aFilters","map","sKey","sValue","undefined","EQ","oActiveFilter","filters","and","push","getActiveContextPath","oController","sPageEntityName","oFilter","oListBinding","getView","getBindingContext","getModel","bindList","$$groupId","requestContexts","then","oContexts","length","getPath","getActiveContextInstances","oContext","oEntitySet","aActiveContextpromises","aPages","sMetaPath","getMetaModel","getMetaPath","indexOf","substring","aMetaPathArray","split","sCurrentHashNoParams","getInstance","getHash","aCurrentHashArray","oPageMap","aPageHashArray","forEach","sPageHash","aKeyValues","sPageHashName","i","sKeyAssignment","aParts","sKeyValue","oMetaModel","aTechnicalKeys","getObject","join","lastIndexOf","decodeURIComponent","oPageEntitySet","sNavigationPath","oPageInfo","sPageEntitySetName","$NavigationPropertyBinding","pageEntityName","getActiveContextPaths","sRootEntityName","substr","oPageContext","Promise","all","aData","aActiveContextPaths","sActiveContextPath","sNavigatioProperty","sEntitySetName","values","replace","catch","oError","info","resolve","fetchActiveContextPaths","oPromise","aSemanticKeys","oModel","isStickySessionSupported","getSemanticKeys","oViewData","getViewData","viewLevel","getShareUrl","bIsEditable","bIsStickySupported","sShareUrl","sHash","sBasePath","hrefForAppSpecificHash","window","location","hash","origin","pathname","search","getShareEmailUrl","oUShellContainer","ushell","Container","getFLPUrlAsync","sFLPUrl","sError","error","document","URL","getJamUrl","bIsEditMode","sJamUrl","runningInIframe","getFLPUrl","sUrl","ShareExtensionOverride","adaptShareMetadata","async","oShareMetadata","this","base","oUIModel","getProperty","_manifest$sapApp","_manifest$sapApp2","manifest","getAppComponent","getManifest","appId","id","appTitle","title","getController","oPageTitleInfo","_getPageTitleInformation","oData","sTitle","sObjectSubtitle","subtitle","toString","tile","email","jam","url","collaborationInfoModel","setProperty"],"sources":["Share-dbg.js"],"mappings":"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"}
|
|
@@ -272,6 +272,9 @@ const ShareExtensionOverride = {
|
|
|
272
272
|
const bIsEditable = oUIModel.getProperty("/isEditable");
|
|
273
273
|
|
|
274
274
|
try {
|
|
275
|
+
const manifest = this.base.getAppComponent().getManifest();
|
|
276
|
+
const appId = manifest?.["sap.app"]?.id;
|
|
277
|
+
const appTitle = manifest?.["sap.app"]?.title;
|
|
275
278
|
const aActiveContextPaths = await fetchActiveContextPaths(oContext, this.base.getView().getController());
|
|
276
279
|
const oPageTitleInfo = (this.base.getView().getController() as ObjectPageController)._getPageTitleInformation();
|
|
277
280
|
const oData = await Promise.all([
|
|
@@ -298,8 +301,9 @@ const ShareExtensionOverride = {
|
|
|
298
301
|
// so update colloborationInfo model at LR override to ignore further extension changes at multiple levels
|
|
299
302
|
const collaborationInfoModel: JSONModel = this.base.getView().getModel("collaborationInfo") as JSONModel;
|
|
300
303
|
collaborationInfoModel.setProperty("/url", oShareMetadata.url);
|
|
301
|
-
collaborationInfoModel.setProperty("/appTitle",
|
|
304
|
+
collaborationInfoModel.setProperty("/appTitle", appTitle);
|
|
302
305
|
collaborationInfoModel.setProperty("/subTitle", sObjectSubtitle);
|
|
306
|
+
collaborationInfoModel.setProperty("/appId", appId);
|
|
303
307
|
} catch (error: any) {
|
|
304
308
|
Log.error(error);
|
|
305
309
|
}
|
|
@@ -184,5 +184,7 @@
|
|
|
184
184
|
</template:repeat>
|
|
185
185
|
</template:if>
|
|
186
186
|
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.RelatedApps" type="XML" />
|
|
187
|
-
<macro:Share id="fe::Share" visible="{= OP.getShareButtonVisibility(${viewData>/}) }"
|
|
187
|
+
<macro:Share id="fe::Share" visible="{= OP.getShareButtonVisibility(${viewData>/}) }">
|
|
188
|
+
<macro:msTeamsOptions enableCard="true" />
|
|
189
|
+
</macro:Share>
|
|
188
190
|
</core:FragmentDefinition>
|