@sapui5/sap.fe.templates 1.112.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/ExtensionAPI-dbg.js +3 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +2 -0
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +23 -14
- 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 +24 -11
- 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/controls/MultipleModeControl-dbg.js +3 -3
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +1 -2
- 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/Component-dbg.js +2 -2
- package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/Component.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +21 -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 +21 -9
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +149 -87
- 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 +166 -95
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +12 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +11 -0
- 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/ObjectPage/view/fragments/SectionContent.fragment.xml +93 -45
- package/src/sap/fe/templates/library-dbg.js +1 -1
- package/src/sap/fe/templates/library-preload.js +20 -20
- 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 +3 -1
- 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 +4 -2
- 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 +3 -1
- 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 +3 -1
- package/src/sap/fe/templates/messagebundle_hi.properties +3 -1
- 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 +3 -1
- 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 +3 -1
- package/src/sap/fe/templates/messagebundle_lt.properties +2 -0
- package/src/sap/fe/templates/messagebundle_lv.properties +3 -1
- 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 +3 -1
- 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 +3 -1
- package/src/sap/fe/templates/messagebundle_ru.properties +3 -1
- 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 +3 -1
- 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 +3 -1
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -1
|
@@ -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>
|
|
@@ -2,7 +2,7 @@
|
|
|
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/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/buildingBlocks/RuntimeBuildingBlock", "sap/fe/core/
|
|
5
|
+
sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/buildingBlocks/RuntimeBuildingBlock", "sap/fe/core/converters/helpers/BindingHelper", "sap/fe/core/converters/ManifestSettings", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/StableIdHelper", "sap/fe/macros/actions/CustomAction.block", "sap/fe/macros/actions/DataFieldForAction.block", "sap/fe/macros/messages/MessageButton", "sap/m/Button", "sap/m/DraftIndicator", "sap/m/Menu", "sap/m/MenuButton", "sap/m/MenuItem", "sap/m/OverflowToolbar", "sap/m/OverflowToolbarLayoutData", "sap/m/ToolbarSpacer", "sap/ui/core/InvisibleText", "../../ObjectPageTemplating", "sap/fe/core/jsx-runtime/jsx", "sap/fe/core/jsx-runtime/jsxs"], function (BuildingBlockSupport, RuntimeBuildingBlock, BindingHelper, ManifestSettings, MetaModelConverter, BindingToolkit, ModelHelper, StableIdHelper, CustomActionBlock, DataFieldForActionBlock, MessageButton, Button, DraftIndicator, Menu, MenuButton, MenuItem, OverflowToolbar, OverflowToolbarLayoutData, ToolbarSpacer, InvisibleText, ObjectPageTemplating, _jsx, _jsxs) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
|
|
@@ -14,6 +14,7 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
14
14
|
var not = BindingToolkit.not;
|
|
15
15
|
var ifElse = BindingToolkit.ifElse;
|
|
16
16
|
var constant = BindingToolkit.constant;
|
|
17
|
+
var compileExpression = BindingToolkit.compileExpression;
|
|
17
18
|
var and = BindingToolkit.and;
|
|
18
19
|
var getInvolvedDataModelObjects = MetaModelConverter.getInvolvedDataModelObjects;
|
|
19
20
|
var ActionType = ManifestSettings.ActionType;
|
|
@@ -139,7 +140,7 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
139
140
|
if (this.isDraftValidation && !viewData.isDesktop) {
|
|
140
141
|
return _jsx(MenuButton, {
|
|
141
142
|
text: this.getTextSaveButton(),
|
|
142
|
-
|
|
143
|
+
"jsx:command": "cmd:Save|defaultAction",
|
|
143
144
|
useDefaultActionOnly: "true",
|
|
144
145
|
buttonMode: "Split",
|
|
145
146
|
type: emphasizedExpression,
|
|
@@ -158,7 +159,7 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
158
159
|
type: emphasizedExpression,
|
|
159
160
|
visible: UI.IsEditable,
|
|
160
161
|
enabled: true,
|
|
161
|
-
|
|
162
|
+
"jsx:command": "cmd:Save|press"
|
|
162
163
|
});
|
|
163
164
|
};
|
|
164
165
|
_proto.getTextSaveButton = function getTextSaveButton() {
|
|
@@ -173,9 +174,9 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
173
174
|
return _jsx(Button, {
|
|
174
175
|
id: this.createId("StandardAction::Cancel"),
|
|
175
176
|
text: ModelHelper.isDraftRoot(this.dataViewModelPath.targetEntitySet) ? "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISCARD_DRAFT}" : "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_CANCEL}",
|
|
176
|
-
|
|
177
|
+
"jsx:command": "cmd:Cancel|press",
|
|
177
178
|
visible: UI.IsEditable,
|
|
178
|
-
ariaHasPopup: "Dialog",
|
|
179
|
+
ariaHasPopup: compileExpression(ifElse(pathInModel("/isDocumentModified", "ui"), constant("Dialog"), constant("None"))),
|
|
179
180
|
enabled: true,
|
|
180
181
|
layoutData: _jsx(OverflowToolbarLayoutData, {
|
|
181
182
|
priority: "NeverOverflow"
|
|
@@ -254,4 +255,4 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
254
255
|
_exports = FooterContentBlock;
|
|
255
256
|
return _exports;
|
|
256
257
|
}, false);
|
|
257
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb290ZXJDb250ZW50QmxvY2siLCJkZWZpbmVCdWlsZGluZ0Jsb2NrIiwibmFtZSIsIm5hbWVzcGFjZSIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsInJlcXVpcmVkIiwicHJvcHMiLCJvdGhlcnMiLCJpc0RyYWZ0VmFsaWRhdGlvbiIsIm9EYXRhTWV0YU1vZGVsIiwiY29udGV4dFBhdGgiLCJnZXRNb2RlbCIsImRhdGFWaWV3TW9kZWxQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJNb2RlbEhlbHBlciIsImdldERyYWZ0Um9vdCIsIlByZXBhcmF0aW9uQWN0aW9uIiwiZW50aXR5VHlwZSIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiTWVzc2FnZXMiLCJnZXRBY3Rpb25Nb2RlbFBhdGgiLCJhY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImFjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0IiwidW5kZWZpbmVkIiwiZ2V0VmlzaWJpbGl0eSIsIl9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyIsImFjdGlvbnMiLCJsZW5ndGgiLCJtYXAiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInZpc2libGUiLCJjb25zdGFudCIsImRldGVybWluaW5nQWN0aW9ucyIsImZpbHRlciIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJtYW5pZmVzdEFjdGlvbkJpbmRpbmdzIiwiT2JqZWN0UGFnZVRlbXBsYXRpbmciLCJpc01hbmlmZXN0QWN0aW9uIiwiZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncyIsImlzTm90SGlkZGVuRGV0ZXJtaW5pbmdBY3Rpb24iLCJmaW5kIiwiYWN0aW9uQ29udGV4dE1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsIlVJIiwiSGlkZGVuIiwib3IiLCJhbmQiLCJJc0VkaXRhYmxlIiwibm90IiwicGF0aEluTW9kZWwiLCJnZXREcmFmdEluZGljYXRvciIsImVudGl0eVNldCIsInRhcmdldEVudGl0eVNldCIsImNvbW1vbkFubm90YXRpb24iLCJEcmFmdFJvb3QiLCJEcmFmdE5vZGUiLCJnZXRBcHBseUJ1dHRvbiIsInZpZXciLCJlbXBoYXNpemVkRXhwcmVzc2lvbiIsImNvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwidmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsImlzRGVza3RvcCIsImZjbEVuYWJsZWQiLCJfYXBwbHlEb2N1bWVudCIsImdldEJpbmRpbmdDb250ZXh0IiwiX3ZhbGlkYXRlRG9jdW1lbnQiLCJjcmVhdGVJZCIsImdldFByaW1hcnkiLCJnZXRUZXh0U2F2ZUJ1dHRvbiIsIkNvbW1hbmRFeGVjdXRpb24iLCJleGVjdXRlQ29tbWFuZCIsInNhdmVCdXR0b25UZXh0IiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJjcmVhdGVCdXR0b25UZXh0IiwiaWZFbHNlIiwiU2Vzc2lvbiIsIlN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJJc0NyZWF0ZU1vZGUiLCJEcmFmdCIsIklzTmV3T2JqZWN0IiwiZ2V0Q2FuY2VsQnV0dG9uIiwiaXNEcmFmdFJvb3QiLCJnZXREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJnZW5lcmF0ZSIsImlkIiwiZ2V0TWFuaWZlc3RCdXR0b24iLCJnZXRBY3Rpb25Db250cm9scyIsImVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwiYnVpbGRFbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbiIsIkRlZmF1bHRBcHBseSIsIlByaW1hcnkiLCJTZWNvbmRhcnkiLCJnZXRDb250ZW50IiwiX2dldEZvb3RlclZpc2liaWxpdHkiLCJSdW50aW1lQnVpbGRpbmdCbG9jayJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRm9vdGVyQ29udGVudC5ibG9jay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgYmxvY2tBdHRyaWJ1dGUsIGRlZmluZUJ1aWxkaW5nQmxvY2sgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCBSdW50aW1lQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvUnVudGltZUJ1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBDb21tYW5kRXhlY3V0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9Db21tYW5kRXhlY3V0aW9uXCI7XG5pbXBvcnQgeyBCYXNlQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgRHJhZnQsIFVJIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHtcblx0YW5kLFxuXHRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sXG5cdGNvbnN0YW50LFxuXHRpZkVsc2UsXG5cdG5vdCxcblx0b3IsXG5cdHBhdGhJbk1vZGVsLFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgQ3VzdG9tQWN0aW9uQmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvYWN0aW9ucy9DdXN0b21BY3Rpb24uYmxvY2tcIjtcbmltcG9ydCBEYXRhRmllbGRGb3JBY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL21hY3Jvcy9hY3Rpb25zL0RhdGFGaWVsZEZvckFjdGlvbi5ibG9ja1wiO1xuaW1wb3J0IE1lc3NhZ2VCdXR0b24gZnJvbSBcInNhcC9mZS9tYWNyb3MvbWVzc2FnZXMvTWVzc2FnZUJ1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRHJhZnRJbmRpY2F0b3IgZnJvbSBcInNhcC9tL0RyYWZ0SW5kaWNhdG9yXCI7XG5pbXBvcnQgTWVudSBmcm9tIFwic2FwL20vTWVudVwiO1xuaW1wb3J0IE1lbnVCdXR0b24gZnJvbSBcInNhcC9tL01lbnVCdXR0b25cIjtcbmltcG9ydCBNZW51SXRlbSBmcm9tIFwic2FwL20vTWVudUl0ZW1cIjtcbmltcG9ydCBPdmVyZmxvd1Rvb2xiYXIgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhclwiO1xuaW1wb3J0IE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhckxheW91dERhdGFcIjtcbmltcG9ydCBUb29sYmFyU3BhY2VyIGZyb20gXCJzYXAvbS9Ub29sYmFyU3BhY2VyXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgT2JqZWN0UGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uLy4uL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCAqIGFzIE9iamVjdFBhZ2VUZW1wbGF0aW5nIGZyb20gXCIuLi8uLi9PYmplY3RQYWdlVGVtcGxhdGluZ1wiO1xuXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7IG5hbWU6IFwiRm9vdGVyQ29udGVudFwiLCBuYW1lc3BhY2U6IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLnZpZXcuZnJhZ21lbnRzXCIgfSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvb3RlckNvbnRlbnRCbG9jayBleHRlbmRzIFJ1bnRpbWVCdWlsZGluZ0Jsb2NrIHtcblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pXG5cdGlkITogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYXJyYXlcIiwgcmVxdWlyZWQ6IHRydWUgfSlcblx0YWN0aW9ucyE6IEJhc2VBY3Rpb25bXTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIgfSlcblx0Y29udGV4dFBhdGg/OiBDb250ZXh0O1xuXG5cdG9EYXRhTWV0YU1vZGVsITogT0RhdGFNZXRhTW9kZWw7XG5cdGRhdGFWaWV3TW9kZWxQYXRoITogRGF0YU1vZGVsT2JqZWN0UGF0aDtcblx0aXNEcmFmdFZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZvb3RlckNvbnRlbnRCbG9jaz4sIC4uLm90aGVyczogYW55W10pIHtcblx0XHRzdXBlcihwcm9wcywgLi4ub3RoZXJzKTtcblx0XHR0aGlzLm9EYXRhTWV0YU1vZGVsID0gdGhpcy5jb250ZXh0UGF0aCEuZ2V0TW9kZWwoKSBhcyB1bmtub3duIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRcdHRoaXMuZGF0YVZpZXdNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHModGhpcy5jb250ZXh0UGF0aCEpO1xuXHRcdGNvbnN0IHN0YXJ0aW5nRW50aXR5U2V0ID0gdGhpcy5kYXRhVmlld01vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldDtcblx0XHR0aGlzLmlzRHJhZnRWYWxpZGF0aW9uID0gISEoXG5cdFx0XHRNb2RlbEhlbHBlci5nZXREcmFmdFJvb3Qoc3RhcnRpbmdFbnRpdHlTZXQpPy5QcmVwYXJhdGlvbkFjdGlvbiAmJiBzdGFydGluZ0VudGl0eVNldD8uZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5Db21tb24/Lk1lc3NhZ2VzXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbjogQmFzZUFjdGlvbikge1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dCA9IHRoaXMub0RhdGFNZXRhTW9kZWwuZ2V0Q29udGV4dChhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRyZXR1cm4gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKGFjdGlvbkNvbnRleHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgT2JqZWN0UGFnZSBmb290ZXIgY29udGVudC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldFZpc2liaWxpdHlcblx0ICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvblxuXHQgKi9cblx0Z2V0VmlzaWJpbGl0eSgpIHtcblx0XHRjb25zdCBfZ2VuZXJhdGVCaW5kaW5nc0ZvckFjdGlvbnMgPSAoYWN0aW9uczogQmFzZUFjdGlvbltdKSA9PiB7XG5cdFx0XHRpZiAoYWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0cmV0dXJuIGFjdGlvbnMubWFwKChhY3Rpb24pID0+XG5cdFx0XHRcdFx0cmVzb2x2ZUJpbmRpbmdTdHJpbmcoYWN0aW9uLnZpc2libGUgPz8gdHJ1ZSwgXCJib29sZWFuXCIpXG5cdFx0XHRcdCkgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+W107XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gW2NvbnN0YW50KGZhbHNlKV07XG5cdFx0fTtcblx0XHQvLyBBY3Rpb25zIGFyZSBjb21pbmcgZnJvbSB0aGUgY29udmVydGVyIHNvIG9ubHkgZGV0ZXJtaW5pbmcgYWN0aW9ucyBhbmQgbm90IHN0YXRpY2FsbHkgaGlkZGVuIGFyZSBsaXN0ZWRcblx0XHRjb25zdCBkZXRlcm1pbmluZ0FjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+IGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbik7XG5cdFx0Y29uc3QgbWFuaWZlc3RBY3Rpb25CaW5kaW5ncyA9IF9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyhcblx0XHRcdHRoaXMuYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gT2JqZWN0UGFnZVRlbXBsYXRpbmcuaXNNYW5pZmVzdEFjdGlvbihhY3Rpb24pKVxuXHRcdCk7XG5cdFx0Y29uc3QgZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncyA9IF9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyhkZXRlcm1pbmluZ0FjdGlvbnMpO1xuXG5cdFx0Y29uc3QgaXNOb3RIaWRkZW5EZXRlcm1pbmluZ0FjdGlvbiA9ICEhZGV0ZXJtaW5pbmdBY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4ge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dE1vZGVsUGF0aCA9IHRoaXMuZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbik7XG5cdFx0XHRyZXR1cm4gIShhY3Rpb25Db250ZXh0TW9kZWxQYXRoPy50YXJnZXRPYmplY3QgYXMgRGF0YUZpZWxkRm9yQWN0aW9uIHwgdW5kZWZpbmVkKT8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW47XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gb3IoXG5cdFx0XHRpc05vdEhpZGRlbkRldGVybWluaW5nQWN0aW9uLFxuXHRcdFx0b3IoLi4ubWFuaWZlc3RBY3Rpb25CaW5kaW5ncyksXG5cdFx0XHRhbmQob3IoVUkuSXNFZGl0YWJsZSwgb3IoLi4uZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncykpLCBub3QocGF0aEluTW9kZWwoXCJpc0NyZWF0ZURpYWxvZ09wZW5cIiwgXCJpbnRlcm5hbFwiKSkpXG5cdFx0KTtcblx0fVxuXG5cdGdldERyYWZ0SW5kaWNhdG9yKCkge1xuXHRcdGNvbnN0IGVudGl0eVNldCA9ICh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCB8fCB0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0KSBhcyBFbnRpdHlTZXQ7IC8vIHN0YXJ0aW5nRW50aXR5U2V0IGlzIHVzZWQgb24gY29udGFpbm1lbnQgc2NlbmFyaW9cblx0XHRjb25zdCBjb21tb25Bbm5vdGF0aW9uID0gZW50aXR5U2V0LmFubm90YXRpb25zPy5Db21tb247XG5cdFx0aWYgKGNvbW1vbkFubm90YXRpb24/LkRyYWZ0Um9vdCB8fCBjb21tb25Bbm5vdGF0aW9uPy5EcmFmdE5vZGUpIHtcblx0XHRcdHJldHVybiA8RHJhZnRJbmRpY2F0b3Igc3RhdGU9XCJ7dWk+L2RyYWZ0U3RhdHVzfVwiIHZpc2libGU9XCJ7dWk+L2lzRWRpdGFibGV9XCIgLz47XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwcml2YXRlIGdldEFwcGx5QnV0dG9uKHZpZXc6IFZpZXcsIGVtcGhhc2l6ZWRFeHByZXNzaW9uOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogQnV0dG9uIHwgTWVudUJ1dHRvbiB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IHZpZXdEYXRhID0gdmlldy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGlmICh0aGlzLmlzRHJhZnRWYWxpZGF0aW9uICYmICF2aWV3RGF0YS5pc0Rlc2t0b3AgJiYgIXZpZXdEYXRhLmZjbEVuYWJsZWQpIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxNZW51QnV0dG9uXG5cdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9BUFBMWV9EUkFGVH1cIlxuXHRcdFx0XHRcdGRlZmF1bHRBY3Rpb249eygpID0+IGNvbnRyb2xsZXIuX2FwcGx5RG9jdW1lbnQodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpKX1cblx0XHRcdFx0XHR1c2VEZWZhdWx0QWN0aW9uT25seT1cInRydWVcIlxuXHRcdFx0XHRcdGJ1dHRvbk1vZGU9XCJTcGxpdFwiXG5cdFx0XHRcdFx0dHlwZT17ZW1waGFzaXplZEV4cHJlc3Npb259XG5cdFx0XHRcdFx0dmlzaWJsZT17VUkuSXNFZGl0YWJsZX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxNZW51PlxuXHRcdFx0XHRcdFx0PE1lbnVJdGVtIHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfVkFMSURBVEVfRFJBRlR9XCIgcHJlc3M9eygpID0+IGNvbnRyb2xsZXIuX3ZhbGlkYXRlRG9jdW1lbnQoKX0gLz5cblx0XHRcdFx0XHQ8L01lbnU+XG5cdFx0XHRcdDwvTWVudUJ1dHRvbj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OkFwcGx5XCIpfVxuXHRcdFx0XHR0ZXh0PVwie3NhcC5mZS5pMThuPlRfQ09NTU9OX09CSkVDVF9QQUdFX0FQUExZX0RSQUZUfVwiXG5cdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRlbmFibGVkPXt0cnVlfVxuXHRcdFx0XHRwcmVzcz17KCkgPT4gY29udHJvbGxlci5fYXBwbHlEb2N1bWVudCh2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkpfVxuXHRcdFx0XHR2aXNpYmxlPVwie3VpPi9pc0VkaXRhYmxlfVwiXG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFByaW1hcnkodmlldzogVmlldywgZW1waGFzaXplZEV4cHJlc3Npb246IFByb3BlcnR5QmluZGluZ0luZm8pOiBCdXR0b24gfCBNZW51QnV0dG9uIHtcblx0XHRjb25zdCB2aWV3RGF0YSA9IHZpZXcuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncztcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0aWYgKHRoaXMuaXNEcmFmdFZhbGlkYXRpb24gJiYgIXZpZXdEYXRhLmlzRGVza3RvcCkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PE1lbnVCdXR0b25cblx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRleHRTYXZlQnV0dG9uKCl9XG5cdFx0XHRcdFx0ZGVmYXVsdEFjdGlvbj17Q29tbWFuZEV4ZWN1dGlvbi5leGVjdXRlQ29tbWFuZChcIlNhdmVcIil9XG5cdFx0XHRcdFx0dXNlRGVmYXVsdEFjdGlvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRidXR0b25Nb2RlPVwiU3BsaXRcIlxuXHRcdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRcdHZpc2libGU9e1VJLklzRWRpdGFibGV9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8TWVudT5cblx0XHRcdFx0XHRcdDxNZW51SXRlbSB0ZXh0PVwie3NhcC5mZS5pMThuPlRfQ09NTU9OX09CSkVDVF9QQUdFX1ZBTElEQVRFX0RSQUZUfVwiIHByZXNzPXsoKSA9PiBjb250cm9sbGVyLl92YWxpZGF0ZURvY3VtZW50KCl9IC8+XG5cdFx0XHRcdFx0PC9NZW51PlxuXHRcdFx0XHQ8L01lbnVCdXR0b24+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gKFxuXHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIlN0YW5kYXJkQWN0aW9uOjpTYXZlXCIpfVxuXHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRleHRTYXZlQnV0dG9uKCl9XG5cdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHR2aXNpYmxlPXtVSS5Jc0VkaXRhYmxlfVxuXHRcdFx0XHRlbmFibGVkPXt0cnVlfVxuXHRcdFx0XHRwcmVzcz17Q29tbWFuZEV4ZWN1dGlvbi5leGVjdXRlQ29tbWFuZChcIlNhdmVcIil9XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFRleHRTYXZlQnV0dG9uKCkge1xuXHRcdGNvbnN0IHNhdmVCdXR0b25UZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfU0FWRVwiKTtcblx0XHRjb25zdCBjcmVhdGVCdXR0b25UZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfQ1JFQVRFXCIpO1xuXHRcdC8vIElmIHdlJ3JlIGluIHN0aWNreSBtb2RlICAtPiB0aGUgdWkgaXMgaW4gY3JlYXRlIG1vZGUsIHNob3cgQ3JlYXRlLCBlbHNlIHNob3cgU2F2ZVxuXHRcdC8vIElmIG5vdCAtPiB3ZSdyZSBpbiBkcmFmdCBBTkQgdGhlIGRyYWZ0IGlzIGEgbmV3IG9iamVjdCAoIUlzQWN0aXZlRW50aXR5ICYmICFIYXNBY3RpdmVFbnRpdHkpLCBzaG93IGNyZWF0ZSwgZWxzZSBzaG93IHNhdmVcblx0XHRyZXR1cm4gaWZFbHNlKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHQodGhpcy5kYXRhVmlld01vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldCBhcyBFbnRpdHlTZXQpLmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQgIT09IHVuZGVmaW5lZCxcblx0XHRcdFx0VUkuSXNDcmVhdGVNb2RlLFxuXHRcdFx0XHREcmFmdC5Jc05ld09iamVjdFxuXHRcdFx0KSxcblx0XHRcdGNyZWF0ZUJ1dHRvblRleHQsXG5cdFx0XHRzYXZlQnV0dG9uVGV4dFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldENhbmNlbEJ1dHRvbigpOiBCdXR0b24ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OkNhbmNlbFwiKX1cblx0XHRcdFx0dGV4dD17XG5cdFx0XHRcdFx0TW9kZWxIZWxwZXIuaXNEcmFmdFJvb3QodGhpcy5kYXRhVmlld01vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQpXG5cdFx0XHRcdFx0XHQ/IFwie3NhcC5mZS5pMThuPkNfQ09NTU9OX09CSkVDVF9QQUdFX0RJU0NBUkRfRFJBRlR9XCJcblx0XHRcdFx0XHRcdDogXCJ7c2FwLmZlLmkxOG4+Q19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMfVwiXG5cdFx0XHRcdH1cblx0XHRcdFx0cHJlc3M9e0NvbW1hbmRFeGVjdXRpb24uZXhlY3V0ZUNvbW1hbmQoXCJDYW5jZWxcIil9XG5cdFx0XHRcdHZpc2libGU9e1VJLklzRWRpdGFibGV9XG5cdFx0XHRcdGFyaWFIYXNQb3B1cD1cIkRpYWxvZ1wiXG5cdFx0XHRcdGVuYWJsZWQ9e3RydWV9XG5cdFx0XHRcdGxheW91dERhdGE9ezxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIHByaW9yaXR5PVwiTmV2ZXJPdmVyZmxvd1wiIC8+fVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24oYWN0aW9uOiBCYXNlQWN0aW9uKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoYWN0aW9uLmFubm90YXRpb25QYXRoKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8RGF0YUZpZWxkRm9yQWN0aW9uQmxvY2tcblx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIHRoaXMuZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbildKX1cblx0XHRcdFx0XHRhY3Rpb249e2FjdGlvbn1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5jb250ZXh0UGF0aH1cblx0XHRcdFx0Lz5cblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRNYW5pZmVzdEJ1dHRvbihhY3Rpb246IEJhc2VBY3Rpb24pOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGlmIChPYmplY3RQYWdlVGVtcGxhdGluZy5pc01hbmlmZXN0QWN0aW9uKGFjdGlvbikpIHtcblx0XHRcdHJldHVybiA8Q3VzdG9tQWN0aW9uQmxvY2sgaWQ9e2dlbmVyYXRlKFtcImZlXCIsIFwiRm9vdGVyQmFyXCIsIGFjdGlvbi5pZF0pfSBhY3Rpb249e2FjdGlvbn0gLz47XG5cdFx0fVxuXHR9XG5cblx0Z2V0QWN0aW9uQ29udHJvbHModmlldzogVmlldykge1xuXHRcdGNvbnN0IGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uID0gT2JqZWN0UGFnZVRlbXBsYXRpbmcuYnVpbGRFbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbih0aGlzLmRhdGFWaWV3TW9kZWxQYXRoKTtcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb25zXG5cdFx0XHQubWFwKChhY3Rpb24pID0+IHtcblx0XHRcdFx0c3dpdGNoIChhY3Rpb24udHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgQWN0aW9uVHlwZS5EZWZhdWx0QXBwbHk6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRBcHBseUJ1dHRvbih2aWV3LCBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbjpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihhY3Rpb24pO1xuXHRcdFx0XHRcdGNhc2UgQWN0aW9uVHlwZS5QcmltYXJ5OlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0UHJpbWFyeSh2aWV3LCBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLlNlY29uZGFyeTpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldENhbmNlbEJ1dHRvbigpO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRNYW5pZmVzdEJ1dHRvbihhY3Rpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmZpbHRlcigoYWN0aW9uKTogYWN0aW9uIGlzIEJ1dHRvbiA9PiAhIWFjdGlvbik7XG5cdH1cblxuXHRnZXRDb250ZW50KHZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxPdmVyZmxvd1Rvb2xiYXIgaWQ9e3RoaXMuaWR9IGFzeW5jTW9kZT17dHJ1ZX0gdmlzaWJsZT17dGhpcy5nZXRWaXNpYmlsaXR5KCl9PlxuXHRcdFx0XHQ8SW52aXNpYmxlVGV4dFxuXHRcdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiTWVzc2FnZUJ1dHRvbjo6QXJpYVRleHRcIil9XG5cdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5DX0NPTU1PTl9TQVBGRV9FUlJPUl9NRVNTQUdFU19QQUdFX0JVVFRPTl9BUklBX1RFWFR9XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0PE1lc3NhZ2VCdXR0b25cblx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIk1lc3NhZ2VCdXR0b25cIil9XG5cdFx0XHRcdFx0bWVzc2FnZUNoYW5nZT17KCkgPT4gY29udHJvbGxlci5fZ2V0Rm9vdGVyVmlzaWJpbGl0eSgpfVxuXHRcdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXtbdGhpcy5jcmVhdGVJZChcIk1lc3NhZ2VCdXR0b246OkFyaWFUZXh0XCIpIGFzIHN0cmluZ119XG5cdFx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRcdGFyaWFIYXNQb3B1cD1cIkRpYWxvZ1wiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdDxUb29sYmFyU3BhY2VyIC8+XG5cdFx0XHRcdHt0aGlzLmdldERyYWZ0SW5kaWNhdG9yKCl9XG5cdFx0XHRcdHt0aGlzLmdldEFjdGlvbkNvbnRyb2xzKHZpZXcpfVxuXHRcdFx0PC9PdmVyZmxvd1Rvb2xiYXI+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQTRDcUJBLGtCQUFrQixXQUR0Q0MsbUJBQW1CLENBQUM7SUFBRUMsSUFBSSxFQUFFLGVBQWU7SUFBRUMsU0FBUyxFQUFFO0VBQTZDLENBQUMsQ0FBQyxVQUV0R0MsY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxRQUFRO0lBQ2RDLFFBQVEsRUFBRTtFQUNYLENBQUMsQ0FBQyxVQUdERixjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLE9BQU87SUFBRUMsUUFBUSxF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
|
|
258
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb290ZXJDb250ZW50QmxvY2siLCJkZWZpbmVCdWlsZGluZ0Jsb2NrIiwibmFtZSIsIm5hbWVzcGFjZSIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsInJlcXVpcmVkIiwicHJvcHMiLCJvdGhlcnMiLCJpc0RyYWZ0VmFsaWRhdGlvbiIsIm9EYXRhTWV0YU1vZGVsIiwiY29udGV4dFBhdGgiLCJnZXRNb2RlbCIsImRhdGFWaWV3TW9kZWxQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJNb2RlbEhlbHBlciIsImdldERyYWZ0Um9vdCIsIlByZXBhcmF0aW9uQWN0aW9uIiwiZW50aXR5VHlwZSIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiTWVzc2FnZXMiLCJnZXRBY3Rpb25Nb2RlbFBhdGgiLCJhY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImFjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0IiwidW5kZWZpbmVkIiwiZ2V0VmlzaWJpbGl0eSIsIl9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyIsImFjdGlvbnMiLCJsZW5ndGgiLCJtYXAiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInZpc2libGUiLCJjb25zdGFudCIsImRldGVybWluaW5nQWN0aW9ucyIsImZpbHRlciIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJtYW5pZmVzdEFjdGlvbkJpbmRpbmdzIiwiT2JqZWN0UGFnZVRlbXBsYXRpbmciLCJpc01hbmlmZXN0QWN0aW9uIiwiZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncyIsImlzTm90SGlkZGVuRGV0ZXJtaW5pbmdBY3Rpb24iLCJmaW5kIiwiYWN0aW9uQ29udGV4dE1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsIlVJIiwiSGlkZGVuIiwib3IiLCJhbmQiLCJJc0VkaXRhYmxlIiwibm90IiwicGF0aEluTW9kZWwiLCJnZXREcmFmdEluZGljYXRvciIsImVudGl0eVNldCIsInRhcmdldEVudGl0eVNldCIsImNvbW1vbkFubm90YXRpb24iLCJEcmFmdFJvb3QiLCJEcmFmdE5vZGUiLCJnZXRBcHBseUJ1dHRvbiIsInZpZXciLCJlbXBoYXNpemVkRXhwcmVzc2lvbiIsImNvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwidmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsImlzRGVza3RvcCIsImZjbEVuYWJsZWQiLCJfYXBwbHlEb2N1bWVudCIsImdldEJpbmRpbmdDb250ZXh0IiwiX3ZhbGlkYXRlRG9jdW1lbnQiLCJjcmVhdGVJZCIsImdldFByaW1hcnkiLCJnZXRUZXh0U2F2ZUJ1dHRvbiIsInNhdmVCdXR0b25UZXh0IiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJjcmVhdGVCdXR0b25UZXh0IiwiaWZFbHNlIiwiU2Vzc2lvbiIsIlN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJJc0NyZWF0ZU1vZGUiLCJEcmFmdCIsIklzTmV3T2JqZWN0IiwiZ2V0Q2FuY2VsQnV0dG9uIiwiaXNEcmFmdFJvb3QiLCJjb21waWxlRXhwcmVzc2lvbiIsImdldERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbiIsImdlbmVyYXRlIiwiaWQiLCJnZXRNYW5pZmVzdEJ1dHRvbiIsImdldEFjdGlvbkNvbnRyb2xzIiwiZW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24iLCJidWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwiRGVmYXVsdEFwcGx5IiwiUHJpbWFyeSIsIlNlY29uZGFyeSIsImdldENvbnRlbnQiLCJfZ2V0Rm9vdGVyVmlzaWJpbGl0eSIsIlJ1bnRpbWVCdWlsZGluZ0Jsb2NrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGb290ZXJDb250ZW50LmJsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVNldCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGRGb3JBY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBibG9ja0F0dHJpYnV0ZSwgZGVmaW5lQnVpbGRpbmdCbG9jayB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IFJ1bnRpbWVCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9SdW50aW1lQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHsgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IERyYWZ0LCBVSSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlTWFuaWZlc3RTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0QmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRjb21waWxlRXhwcmVzc2lvbixcblx0Y29uc3RhbnQsXG5cdGlmRWxzZSxcblx0bm90LFxuXHRvcixcblx0cGF0aEluTW9kZWwsXG5cdHJlc29sdmVCaW5kaW5nU3RyaW5nXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDdXN0b21BY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL21hY3Jvcy9hY3Rpb25zL0N1c3RvbUFjdGlvbi5ibG9ja1wiO1xuaW1wb3J0IERhdGFGaWVsZEZvckFjdGlvbkJsb2NrIGZyb20gXCJzYXAvZmUvbWFjcm9zL2FjdGlvbnMvRGF0YUZpZWxkRm9yQWN0aW9uLmJsb2NrXCI7XG5pbXBvcnQgTWVzc2FnZUJ1dHRvbiBmcm9tIFwic2FwL2ZlL21hY3Jvcy9tZXNzYWdlcy9NZXNzYWdlQnV0dG9uXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBEcmFmdEluZGljYXRvciBmcm9tIFwic2FwL20vRHJhZnRJbmRpY2F0b3JcIjtcbmltcG9ydCBNZW51IGZyb20gXCJzYXAvbS9NZW51XCI7XG5pbXBvcnQgTWVudUJ1dHRvbiBmcm9tIFwic2FwL20vTWVudUJ1dHRvblwiO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gXCJzYXAvbS9NZW51SXRlbVwiO1xuaW1wb3J0IE92ZXJmbG93VG9vbGJhciBmcm9tIFwic2FwL20vT3ZlcmZsb3dUb29sYmFyXCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBmcm9tIFwic2FwL20vT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YVwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCB7IFByb3BlcnR5QmluZGluZ0luZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IEludmlzaWJsZVRleHQgZnJvbSBcInNhcC91aS9jb3JlL0ludmlzaWJsZVRleHRcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCB2NENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgT2JqZWN0UGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uLy4uL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCAqIGFzIE9iamVjdFBhZ2VUZW1wbGF0aW5nIGZyb20gXCIuLi8uLi9PYmplY3RQYWdlVGVtcGxhdGluZ1wiO1xuXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7IG5hbWU6IFwiRm9vdGVyQ29udGVudFwiLCBuYW1lc3BhY2U6IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLnZpZXcuZnJhZ21lbnRzXCIgfSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvb3RlckNvbnRlbnRCbG9jayBleHRlbmRzIFJ1bnRpbWVCdWlsZGluZ0Jsb2NrIHtcblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pXG5cdGlkITogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYXJyYXlcIiwgcmVxdWlyZWQ6IHRydWUgfSlcblx0YWN0aW9ucyE6IEJhc2VBY3Rpb25bXTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIgfSlcblx0Y29udGV4dFBhdGg/OiBDb250ZXh0O1xuXG5cdG9EYXRhTWV0YU1vZGVsITogT0RhdGFNZXRhTW9kZWw7XG5cdGRhdGFWaWV3TW9kZWxQYXRoITogRGF0YU1vZGVsT2JqZWN0UGF0aDtcblx0aXNEcmFmdFZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZvb3RlckNvbnRlbnRCbG9jaz4sIC4uLm90aGVyczogYW55W10pIHtcblx0XHRzdXBlcihwcm9wcywgLi4ub3RoZXJzKTtcblx0XHR0aGlzLm9EYXRhTWV0YU1vZGVsID0gdGhpcy5jb250ZXh0UGF0aCEuZ2V0TW9kZWwoKSBhcyB1bmtub3duIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRcdHRoaXMuZGF0YVZpZXdNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHModGhpcy5jb250ZXh0UGF0aCEpO1xuXHRcdGNvbnN0IHN0YXJ0aW5nRW50aXR5U2V0ID0gdGhpcy5kYXRhVmlld01vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldDtcblx0XHR0aGlzLmlzRHJhZnRWYWxpZGF0aW9uID0gISEoXG5cdFx0XHRNb2RlbEhlbHBlci5nZXREcmFmdFJvb3Qoc3RhcnRpbmdFbnRpdHlTZXQpPy5QcmVwYXJhdGlvbkFjdGlvbiAmJiBzdGFydGluZ0VudGl0eVNldD8uZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5Db21tb24/Lk1lc3NhZ2VzXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbjogQmFzZUFjdGlvbikge1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dCA9IHRoaXMub0RhdGFNZXRhTW9kZWwuZ2V0Q29udGV4dChhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRyZXR1cm4gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKGFjdGlvbkNvbnRleHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgT2JqZWN0UGFnZSBmb290ZXIgY29udGVudC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldFZpc2liaWxpdHlcblx0ICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvblxuXHQgKi9cblx0Z2V0VmlzaWJpbGl0eSgpIHtcblx0XHRjb25zdCBfZ2VuZXJhdGVCaW5kaW5nc0ZvckFjdGlvbnMgPSAoYWN0aW9uczogQmFzZUFjdGlvbltdKSA9PiB7XG5cdFx0XHRpZiAoYWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0cmV0dXJuIGFjdGlvbnMubWFwKChhY3Rpb24pID0+XG5cdFx0XHRcdFx0cmVzb2x2ZUJpbmRpbmdTdHJpbmcoYWN0aW9uLnZpc2libGUgPz8gdHJ1ZSwgXCJib29sZWFuXCIpXG5cdFx0XHRcdCkgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+W107XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gW2NvbnN0YW50KGZhbHNlKV07XG5cdFx0fTtcblx0XHQvLyBBY3Rpb25zIGFyZSBjb21pbmcgZnJvbSB0aGUgY29udmVydGVyIHNvIG9ubHkgZGV0ZXJtaW5pbmcgYWN0aW9ucyBhbmQgbm90IHN0YXRpY2FsbHkgaGlkZGVuIGFyZSBsaXN0ZWRcblx0XHRjb25zdCBkZXRlcm1pbmluZ0FjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+IGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbik7XG5cdFx0Y29uc3QgbWFuaWZlc3RBY3Rpb25CaW5kaW5ncyA9IF9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyhcblx0XHRcdHRoaXMuYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gT2JqZWN0UGFnZVRlbXBsYXRpbmcuaXNNYW5pZmVzdEFjdGlvbihhY3Rpb24pKVxuXHRcdCk7XG5cdFx0Y29uc3QgZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncyA9IF9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyhkZXRlcm1pbmluZ0FjdGlvbnMpO1xuXG5cdFx0Y29uc3QgaXNOb3RIaWRkZW5EZXRlcm1pbmluZ0FjdGlvbiA9ICEhZGV0ZXJtaW5pbmdBY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4ge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dE1vZGVsUGF0aCA9IHRoaXMuZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbik7XG5cdFx0XHRyZXR1cm4gIShhY3Rpb25Db250ZXh0TW9kZWxQYXRoPy50YXJnZXRPYmplY3QgYXMgRGF0YUZpZWxkRm9yQWN0aW9uIHwgdW5kZWZpbmVkKT8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW47XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gb3IoXG5cdFx0XHRpc05vdEhpZGRlbkRldGVybWluaW5nQWN0aW9uLFxuXHRcdFx0b3IoLi4ubWFuaWZlc3RBY3Rpb25CaW5kaW5ncyksXG5cdFx0XHRhbmQob3IoVUkuSXNFZGl0YWJsZSwgb3IoLi4uZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncykpLCBub3QocGF0aEluTW9kZWwoXCJpc0NyZWF0ZURpYWxvZ09wZW5cIiwgXCJpbnRlcm5hbFwiKSkpXG5cdFx0KTtcblx0fVxuXG5cdGdldERyYWZ0SW5kaWNhdG9yKCkge1xuXHRcdGNvbnN0IGVudGl0eVNldCA9ICh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCB8fCB0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0KSBhcyBFbnRpdHlTZXQ7IC8vIHN0YXJ0aW5nRW50aXR5U2V0IGlzIHVzZWQgb24gY29udGFpbm1lbnQgc2NlbmFyaW9cblx0XHRjb25zdCBjb21tb25Bbm5vdGF0aW9uID0gZW50aXR5U2V0LmFubm90YXRpb25zPy5Db21tb247XG5cdFx0aWYgKGNvbW1vbkFubm90YXRpb24/LkRyYWZ0Um9vdCB8fCBjb21tb25Bbm5vdGF0aW9uPy5EcmFmdE5vZGUpIHtcblx0XHRcdHJldHVybiA8RHJhZnRJbmRpY2F0b3Igc3RhdGU9XCJ7dWk+L2RyYWZ0U3RhdHVzfVwiIHZpc2libGU9XCJ7dWk+L2lzRWRpdGFibGV9XCIgLz47XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwcml2YXRlIGdldEFwcGx5QnV0dG9uKHZpZXc6IFZpZXcsIGVtcGhhc2l6ZWRFeHByZXNzaW9uOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogQnV0dG9uIHwgTWVudUJ1dHRvbiB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IHZpZXdEYXRhID0gdmlldy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGlmICh0aGlzLmlzRHJhZnRWYWxpZGF0aW9uICYmICF2aWV3RGF0YS5pc0Rlc2t0b3AgJiYgIXZpZXdEYXRhLmZjbEVuYWJsZWQpIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxNZW51QnV0dG9uXG5cdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9BUFBMWV9EUkFGVH1cIlxuXHRcdFx0XHRcdGRlZmF1bHRBY3Rpb249eygpID0+IGNvbnRyb2xsZXIuX2FwcGx5RG9jdW1lbnQodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIHY0Q29udGV4dCl9XG5cdFx0XHRcdFx0dXNlRGVmYXVsdEFjdGlvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRidXR0b25Nb2RlPVwiU3BsaXRcIlxuXHRcdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRcdHZpc2libGU9e1VJLklzRWRpdGFibGV9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8TWVudT5cblx0XHRcdFx0XHRcdDxNZW51SXRlbSB0ZXh0PVwie3NhcC5mZS5pMThuPlRfQ09NTU9OX09CSkVDVF9QQUdFX1ZBTElEQVRFX0RSQUZUfVwiIHByZXNzPXsoKSA9PiBjb250cm9sbGVyLl92YWxpZGF0ZURvY3VtZW50KCl9IC8+XG5cdFx0XHRcdFx0PC9NZW51PlxuXHRcdFx0XHQ8L01lbnVCdXR0b24+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gKFxuXHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIlN0YW5kYXJkQWN0aW9uOjpBcHBseVwiKX1cblx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9BUFBMWV9EUkFGVH1cIlxuXHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0ZW5hYmxlZD17dHJ1ZX1cblx0XHRcdFx0cHJlc3M9eygpID0+IGNvbnRyb2xsZXIuX2FwcGx5RG9jdW1lbnQodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIHY0Q29udGV4dCl9XG5cdFx0XHRcdHZpc2libGU9XCJ7dWk+L2lzRWRpdGFibGV9XCJcblx0XHRcdC8+XG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0UHJpbWFyeSh2aWV3OiBWaWV3LCBlbXBoYXNpemVkRXhwcmVzc2lvbjogUHJvcGVydHlCaW5kaW5nSW5mbyk6IEJ1dHRvbiB8IE1lbnVCdXR0b24ge1xuXHRcdGNvbnN0IHZpZXdEYXRhID0gdmlldy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB2aWV3LmdldENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRpZiAodGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiAmJiAhdmlld0RhdGEuaXNEZXNrdG9wKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TWVudUJ1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VGV4dFNhdmVCdXR0b24oKX1cblx0XHRcdFx0XHRqc3g6Y29tbWFuZD1cImNtZDpTYXZlfGRlZmF1bHRBY3Rpb25cIlxuXHRcdFx0XHRcdHVzZURlZmF1bHRBY3Rpb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0YnV0dG9uTW9kZT1cIlNwbGl0XCJcblx0XHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0XHR2aXNpYmxlPXtVSS5Jc0VkaXRhYmxlfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PE1lbnU+XG5cdFx0XHRcdFx0XHQ8TWVudUl0ZW0gdGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9WQUxJREFURV9EUkFGVH1cIiBwcmVzcz17KCkgPT4gY29udHJvbGxlci5fdmFsaWRhdGVEb2N1bWVudCgpfSAvPlxuXHRcdFx0XHRcdDwvTWVudT5cblx0XHRcdFx0PC9NZW51QnV0dG9uPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJTdGFuZGFyZEFjdGlvbjo6U2F2ZVwiKX1cblx0XHRcdFx0dGV4dD17dGhpcy5nZXRUZXh0U2F2ZUJ1dHRvbigpfVxuXHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0dmlzaWJsZT17VUkuSXNFZGl0YWJsZX1cblx0XHRcdFx0ZW5hYmxlZD17dHJ1ZX1cblx0XHRcdFx0anN4OmNvbW1hbmQ9XCJjbWQ6U2F2ZXxwcmVzc1wiXG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFRleHRTYXZlQnV0dG9uKCkge1xuXHRcdGNvbnN0IHNhdmVCdXR0b25UZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfU0FWRVwiKTtcblx0XHRjb25zdCBjcmVhdGVCdXR0b25UZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfQ1JFQVRFXCIpO1xuXHRcdC8vIElmIHdlJ3JlIGluIHN0aWNreSBtb2RlICAtPiB0aGUgdWkgaXMgaW4gY3JlYXRlIG1vZGUsIHNob3cgQ3JlYXRlLCBlbHNlIHNob3cgU2F2ZVxuXHRcdC8vIElmIG5vdCAtPiB3ZSdyZSBpbiBkcmFmdCBBTkQgdGhlIGRyYWZ0IGlzIGEgbmV3IG9iamVjdCAoIUlzQWN0aXZlRW50aXR5ICYmICFIYXNBY3RpdmVFbnRpdHkpLCBzaG93IGNyZWF0ZSwgZWxzZSBzaG93IHNhdmVcblx0XHRyZXR1cm4gaWZFbHNlKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHQodGhpcy5kYXRhVmlld01vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldCBhcyBFbnRpdHlTZXQpLmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQgIT09IHVuZGVmaW5lZCxcblx0XHRcdFx0VUkuSXNDcmVhdGVNb2RlLFxuXHRcdFx0XHREcmFmdC5Jc05ld09iamVjdFxuXHRcdFx0KSxcblx0XHRcdGNyZWF0ZUJ1dHRvblRleHQsXG5cdFx0XHRzYXZlQnV0dG9uVGV4dFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldENhbmNlbEJ1dHRvbigpOiBCdXR0b24ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OkNhbmNlbFwiKX1cblx0XHRcdFx0dGV4dD17XG5cdFx0XHRcdFx0TW9kZWxIZWxwZXIuaXNEcmFmdFJvb3QodGhpcy5kYXRhVmlld01vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQpXG5cdFx0XHRcdFx0XHQ/IFwie3NhcC5mZS5pMThuPkNfQ09NTU9OX09CSkVDVF9QQUdFX0RJU0NBUkRfRFJBRlR9XCJcblx0XHRcdFx0XHRcdDogXCJ7c2FwLmZlLmkxOG4+Q19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMfVwiXG5cdFx0XHRcdH1cblx0XHRcdFx0anN4OmNvbW1hbmQ9XCJjbWQ6Q2FuY2VsfHByZXNzXCJcblx0XHRcdFx0dmlzaWJsZT17VUkuSXNFZGl0YWJsZX1cblx0XHRcdFx0YXJpYUhhc1BvcHVwPXtjb21waWxlRXhwcmVzc2lvbihpZkVsc2UocGF0aEluTW9kZWwoXCIvaXNEb2N1bWVudE1vZGlmaWVkXCIsIFwidWlcIiksIGNvbnN0YW50KFwiRGlhbG9nXCIpLCBjb25zdGFudChcIk5vbmVcIikpKX1cblx0XHRcdFx0ZW5hYmxlZD17dHJ1ZX1cblx0XHRcdFx0bGF5b3V0RGF0YT17PE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgcHJpb3JpdHk9XCJOZXZlck92ZXJmbG93XCIgLz59XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihhY3Rpb246IEJhc2VBY3Rpb24pOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGlmIChhY3Rpb24uYW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxEYXRhRmllbGRGb3JBY3Rpb25CbG9ja1xuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgdGhpcy5nZXRBY3Rpb25Nb2RlbFBhdGgoYWN0aW9uKV0pfVxuXHRcdFx0XHRcdGFjdGlvbj17YWN0aW9ufVxuXHRcdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmNvbnRleHRQYXRofVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldE1hbmlmZXN0QnV0dG9uKGFjdGlvbjogQmFzZUFjdGlvbik6IEJ1dHRvbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKE9iamVjdFBhZ2VUZW1wbGF0aW5nLmlzTWFuaWZlc3RBY3Rpb24oYWN0aW9uKSkge1xuXHRcdFx0cmV0dXJuIDxDdXN0b21BY3Rpb25CbG9jayBpZD17Z2VuZXJhdGUoW1wiZmVcIiwgXCJGb290ZXJCYXJcIiwgYWN0aW9uLmlkXSl9IGFjdGlvbj17YWN0aW9ufSAvPjtcblx0XHR9XG5cdH1cblxuXHRnZXRBY3Rpb25Db250cm9scyh2aWV3OiBWaWV3KSB7XG5cdFx0Y29uc3QgZW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24gPSBPYmplY3RQYWdlVGVtcGxhdGluZy5idWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uKHRoaXMuZGF0YVZpZXdNb2RlbFBhdGgpO1xuXHRcdHJldHVybiB0aGlzLmFjdGlvbnNcblx0XHRcdC5tYXAoKGFjdGlvbikgPT4ge1xuXHRcdFx0XHRzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseTpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldEFwcGx5QnV0dG9uKHZpZXcsIGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uKTtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKGFjdGlvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLlByaW1hcnk6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRQcmltYXJ5KHZpZXcsIGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uKTtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuU2Vjb25kYXJ5OlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0Q2FuY2VsQnV0dG9uKCk7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldE1hbmlmZXN0QnV0dG9uKGFjdGlvbik7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuZmlsdGVyKChhY3Rpb24pOiBhY3Rpb24gaXMgQnV0dG9uID0+ICEhYWN0aW9uKTtcblx0fVxuXG5cdGdldENvbnRlbnQodmlldzogVmlldykge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB2aWV3LmdldENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PE92ZXJmbG93VG9vbGJhciBpZD17dGhpcy5pZH0gYXN5bmNNb2RlPXt0cnVlfSB2aXNpYmxlPXt0aGlzLmdldFZpc2liaWxpdHkoKX0+XG5cdFx0XHRcdDxJbnZpc2libGVUZXh0XG5cdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJNZXNzYWdlQnV0dG9uOjpBcmlhVGV4dFwiKX1cblx0XHRcdFx0XHR0ZXh0PVwie3NhcC5mZS5pMThuPkNfQ09NTU9OX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfQlVUVE9OX0FSSUFfVEVYVH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8TWVzc2FnZUJ1dHRvblxuXHRcdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiTWVzc2FnZUJ1dHRvblwiKX1cblx0XHRcdFx0XHRtZXNzYWdlQ2hhbmdlPXsoKSA9PiBjb250cm9sbGVyLl9nZXRGb290ZXJWaXNpYmlsaXR5KCl9XG5cdFx0XHRcdFx0YXJpYUxhYmVsbGVkQnk9e1t0aGlzLmNyZWF0ZUlkKFwiTWVzc2FnZUJ1dHRvbjo6QXJpYVRleHRcIikgYXMgc3RyaW5nXX1cblx0XHRcdFx0XHR0eXBlPVwiRW1waGFzaXplZFwiXG5cdFx0XHRcdFx0YXJpYUhhc1BvcHVwPVwiRGlhbG9nXCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0PFRvb2xiYXJTcGFjZXIgLz5cblx0XHRcdFx0e3RoaXMuZ2V0RHJhZnRJbmRpY2F0b3IoKX1cblx0XHRcdFx0e3RoaXMuZ2V0QWN0aW9uQ29udHJvbHModmlldyl9XG5cdFx0XHQ8L092ZXJmbG93VG9vbGJhcj5cblx0XHQpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQTZDcUJBLGtCQUFrQixXQUR0Q0MsbUJBQW1CLENBQUM7SUFBRUMsSUFBSSxFQUFFLGVBQWU7SUFBRUMsU0FBUyxFQUFFO0VBQTZDLENBQUMsQ0FBQyxVQUV0R0MsY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxRQUFRO0lBQ2RDLFFBQVEsRUFB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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/fe/core/buildingBlocks/BuildingBlockSupport","sap/fe/core/buildingBlocks/RuntimeBuildingBlock","sap/fe/core/
|
|
5
|
+
sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport","sap/fe/core/buildingBlocks/RuntimeBuildingBlock","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/converters/ManifestSettings","sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/StableIdHelper","sap/fe/macros/actions/CustomAction.block","sap/fe/macros/actions/DataFieldForAction.block","sap/fe/macros/messages/MessageButton","sap/m/Button","sap/m/DraftIndicator","sap/m/Menu","sap/m/MenuButton","sap/m/MenuItem","sap/m/OverflowToolbar","sap/m/OverflowToolbarLayoutData","sap/m/ToolbarSpacer","sap/ui/core/InvisibleText","../../ObjectPageTemplating","sap/fe/core/jsx-runtime/jsx","sap/fe/core/jsx-runtime/jsxs"],function(t,e,i,n,a,r,o,s,l,c,u,d,p,f,g,h,v,b,m,A,y,_,M){"use strict";var E,D,P,O,C,T,B,x,S;var I={};var w=s.generate;var F=r.resolveBindingString;var V=r.pathInModel;var j=r.or;var R=r.not;var k=r.ifElse;var z=r.constant;var N=r.compileExpression;var G=r.and;var J=a.getInvolvedDataModelObjects;var L=n.ActionType;var H=i.UI;var U=i.Draft;var q=t.defineBuildingBlock;var Y=t.blockAttribute;function X(t,e,i,n){if(!i)return;Object.defineProperty(t,e,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function K(t){if(t===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return t}function Q(t,e){t.prototype=Object.create(e.prototype);t.prototype.constructor=t;W(t,e)}function W(t,e){W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function t(e,i){e.__proto__=i;return e};return W(t,e)}function Z(t,e,i,n,a){var r={};Object.keys(n).forEach(function(t){r[t]=n[t]});r.enumerable=!!r.enumerable;r.configurable=!!r.configurable;if("value"in r||r.initializer){r.writable=true}r=i.slice().reverse().reduce(function(i,n){return n(t,e,i)||i},r);if(a&&r.initializer!==void 0){r.value=r.initializer?r.initializer.call(a):void 0;r.initializer=undefined}if(r.initializer===void 0){Object.defineProperty(t,e,r);r=null}return r}function $(t,e){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}let tt=(E=q({name:"FooterContent",namespace:"sap.fe.templates.ObjectPage.view.fragments"}),D=Y({type:"string",required:true}),P=Y({type:"array",required:true}),O=Y({type:"sap.ui.model.Context"}),E(C=(T=function(t){Q(e,t);function e(e){var i,n;var a;for(var r=arguments.length,s=new Array(r>1?r-1:0),l=1;l<r;l++){s[l-1]=arguments[l]}a=t.call(this,e,...s)||this;X(a,"id",B,K(a));X(a,"actions",x,K(a));X(a,"contextPath",S,K(a));a.isDraftValidation=false;a.oDataMetaModel=a.contextPath.getModel();a.dataViewModelPath=J(a.contextPath);const c=a.dataViewModelPath.startingEntitySet;a.isDraftValidation=!!((i=o.getDraftRoot(c))!==null&&i!==void 0&&i.PreparationAction&&c!==null&&c!==void 0&&(n=c.entityType.annotations.Common)!==null&&n!==void 0&&n.Messages);return a}I=e;var i=e.prototype;i.getActionModelPath=function t(e){const i=e.annotationPath;if(i){const t=this.oDataMetaModel.getContext(i);return J(t)}return undefined};i.getVisibility=function t(){const e=t=>{if(t.length){return t.map(t=>F(t.visible??true,"boolean"))}return[z(false)]};const i=this.actions.filter(t=>t.type===L.DataFieldForAction);const n=e(this.actions.filter(t=>y.isManifestAction(t)));const a=e(i);const r=!!i.find(t=>{var e,i,n;const a=this.getActionModelPath(t);return!(a!==null&&a!==void 0&&(e=a.targetObject)!==null&&e!==void 0&&(i=e.annotations)!==null&&i!==void 0&&(n=i.UI)!==null&&n!==void 0&&n.Hidden)});return j(r,j(...n),G(j(H.IsEditable,j(...a)),R(V("isCreateDialogOpen","internal"))))};i.getDraftIndicator=function t(){var e;const i=this.dataViewModelPath.targetEntitySet||this.dataViewModelPath.startingEntitySet;const n=(e=i.annotations)===null||e===void 0?void 0:e.Common;if(n!==null&&n!==void 0&&n.DraftRoot||n!==null&&n!==void 0&&n.DraftNode){return _(p,{state:"{ui>/draftStatus}",visible:"{ui>/isEditable}"})}return undefined};i.getApplyButton=function t(e,i){const n=e.getController();const a=e.getViewData();if(this.isDraftValidation&&!a.isDesktop&&!a.fclEnabled){return _(g,{text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}",defaultAction:()=>n._applyDocument(e.getBindingContext()),useDefaultActionOnly:"true",buttonMode:"Split",type:i,visible:H.IsEditable,children:_(f,{children:_(h,{text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}",press:()=>n._validateDocument()})})})}return _(d,{id:this.createId("StandardAction::Apply"),text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}",type:i,enabled:true,press:()=>n._applyDocument(e.getBindingContext()),visible:"{ui>/isEditable}"})};i.getPrimary=function t(e,i){const n=e.getViewData();const a=e.getController();if(this.isDraftValidation&&!n.isDesktop){return _(g,{text:this.getTextSaveButton(),"jsx:command":"cmd:Save|defaultAction",useDefaultActionOnly:"true",buttonMode:"Split",type:i,visible:H.IsEditable,children:_(f,{children:_(h,{text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}",press:()=>a._validateDocument()})})})}return _(d,{id:this.createId("StandardAction::Save"),text:this.getTextSaveButton(),type:i,visible:H.IsEditable,enabled:true,"jsx:command":"cmd:Save|press"})};i.getTextSaveButton=function t(){var e;const i=this.getTranslatedText("T_OP_OBJECT_PAGE_SAVE");const n=this.getTranslatedText("T_OP_OBJECT_PAGE_CREATE");return k(k(((e=this.dataViewModelPath.startingEntitySet.annotations.Session)===null||e===void 0?void 0:e.StickySessionSupported)!==undefined,H.IsCreateMode,U.IsNewObject),n,i)};i.getCancelButton=function t(){return _(d,{id:this.createId("StandardAction::Cancel"),text:o.isDraftRoot(this.dataViewModelPath.targetEntitySet)?"{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISCARD_DRAFT}":"{sap.fe.i18n>C_COMMON_OBJECT_PAGE_CANCEL}","jsx:command":"cmd:Cancel|press",visible:H.IsEditable,ariaHasPopup:N(k(V("/isDocumentModified","ui"),z("Dialog"),z("None"))),enabled:true,layoutData:_(b,{priority:"NeverOverflow"})})};i.getDataFieldForActionButton=function t(e){if(e.annotationPath){return _(c,{id:w([this.id,this.getActionModelPath(e)]),action:e,contextPath:this.contextPath})}};i.getManifestButton=function t(e){if(y.isManifestAction(e)){return _(l,{id:w(["fe","FooterBar",e.id]),action:e})}};i.getActionControls=function t(e){const i=y.buildEmphasizedButtonExpression(this.dataViewModelPath);return this.actions.map(t=>{switch(t.type){case L.DefaultApply:return this.getApplyButton(e,i);case L.DataFieldForAction:return this.getDataFieldForActionButton(t);case L.Primary:return this.getPrimary(e,i);case L.Secondary:return this.getCancelButton();default:return this.getManifestButton(t)}}).filter(t=>!!t)};i.getContent=function t(e){const i=e.getController();return M(v,{id:this.id,asyncMode:true,visible:this.getVisibility(),children:[_(A,{id:this.createId("MessageButton::AriaText"),text:"{sap.fe.i18n>C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_BUTTON_ARIA_TEXT}"}),_(u,{id:this.createId("MessageButton"),messageChange:()=>i._getFooterVisibility(),ariaLabelledBy:[this.createId("MessageButton::AriaText")],type:"Emphasized",ariaHasPopup:"Dialog"}),_(m,{}),this.getDraftIndicator(),this.getActionControls(e)]})};return e}(e),B=Z(T.prototype,"id",[D],{configurable:true,enumerable:true,writable:true,initializer:null}),x=Z(T.prototype,"actions",[P],{configurable:true,enumerable:true,writable:true,initializer:null}),S=Z(T.prototype,"contextPath",[O],{configurable:true,enumerable:true,writable:true,initializer:null}),T))||C);I=tt;return I},false);
|
|
6
6
|
//# sourceMappingURL=FooterContent.block.js.map
|