@sapui5/sap.fe.templates 1.106.0 → 1.108.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 +3 -2
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/ListComponent.js +5 -1
- package/src/sap/fe/templates/ListComponent.ts +4 -0
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +43 -3
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +38 -2
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +12 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +80 -22
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +63 -14
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +30 -21
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +21 -10
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +4 -7
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +2 -6
- package/src/sap/fe/templates/ListReport/overrides/Share.js +9 -14
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +8 -15
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +15 -11
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +27 -9
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +3 -3
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +2 -2
- package/src/sap/fe/templates/ListReport/view/fragments/Table.fragment.xml +0 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +132 -3
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +88 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +35 -47
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +286 -45
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +209 -32
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +49 -7
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +60 -5
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -2
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -2
- package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.js +33 -0
- package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.ts +23 -0
- package/src/sap/fe/templates/ObjectPage/manifest.json +8 -0
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +10 -3
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +8 -1
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +7 -1
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +5 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +8 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +38 -23
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingContent.fragment.xml +30 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +1 -0
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/messagebundle_lt.properties +1 -1
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +0 -899
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +0 -830
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +0 -207
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +0 -177
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +0 -575
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +0 -492
- package/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +0 -16
- package/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +0 -9
|
@@ -35,4 +35,4 @@ sap.ui.define(["sap/ui/core/Core"], function (Core) {
|
|
|
35
35
|
};
|
|
36
36
|
return StashableVBoxDesignTime;
|
|
37
37
|
}, false);
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvUmVzb3VyY2VCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiU3Rhc2hhYmxlVkJveERlc2lnblRpbWUiLCJhY3Rpb25zIiwicmVtb3ZlIiwiY2hhbmdlVHlwZSIsInJldmVhbCIsIm5hbWUiLCJzaW5ndWxhciIsImdldFRleHQiLCJwbHVyYWwiLCJwYWxldHRlIiwiZ3JvdXAiLCJpY29ucyIsInN2ZyIsInRlbXBsYXRlcyIsImNyZWF0ZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU3Rhc2hhYmxlVkJveC5kZXNpZ250aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5cbmNvbnN0IG9SZXNvdXJjZUJ1bmRsZSA9IENvcmUuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLnRlbXBsYXRlc1wiKTtcblxuY29uc3QgU3Rhc2hhYmxlVkJveERlc2lnblRpbWUgPSB7XG5cdGFjdGlvbnM6IHtcblx0XHRyZW1vdmU6IHtcblx0XHRcdGNoYW5nZVR5cGU6IFwic3Rhc2hDb250cm9sXCJcblx0XHR9LFxuXHRcdHJldmVhbDoge1xuXHRcdFx0Y2hhbmdlVHlwZTogXCJ1bnN0YXNoQ29udHJvbFwiXG5cdFx0fVxuXHR9LFxuXHRuYW1lOiB7XG5cdFx0c2luZ3VsYXI6IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfU1RBU0hBQkxFX1ZCT1hfUlRBX0hFQURFUkNPTExFQ1RJT05GQUNFVF9NRU5VX0FERFwiKTtcblx0XHR9LFxuXHRcdHBsdXJhbDogZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiVF9TVEFTSEFCTEVfVkJPWF9SVEFfSEVBREVSQ09MTEVDVElPTkZBQ0VUX01FTlVfQUREX1BMVVJBTFwiKTtcblx0XHR9XG5cdH0sXG5cdHBhbGV0dGU6IHtcblx0XHRncm91cDogXCJMQVlPVVRcIixcblx0XHRpY29uczoge1xuXHRcdFx0c3ZnOiBcInNhcC9tL2Rlc2lnbnRpbWUvVkJveC5pY29uLnN2Z1wiXG5cdFx0fVxuXHR9LFxuXHR0ZW1wbGF0ZXM6IHtcblx0XHRjcmVhdGU6IFwic2FwL20vZGVzaWdudGltZS9WQm94LmNyZWF0ZS5mcmFnbWVudC54bWxcIlxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdGFzaGFibGVWQm94RGVzaWduVGltZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQUVBLElBQU1BLGVBQWUsR0FBR0MsSUFBSSxDQUFDQyx3QkFBTCxDQUE4QixrQkFBOUIsQ0FBeEI7RUFFQSxJQUFNQyx1QkFBdUIsR0FBRztJQUMvQkMsT0FBTyxFQUFFO01BQ1JDLE1BQU0sRUFBRTtRQUNQQyxVQUFVLEVBQUU7TUFETCxDQURBO01BSVJDLE1BQU0sRUFBRTtRQUNQRCxVQUFVLEVBQUU7TUFETDtJQUpBLENBRHNCO0lBUy9CRSxJQUFJLEVBQUU7TUFDTEMsUUFBUSxFQUFFLFlBQVk7UUFDckIsT0FBT1QsZUFBZSxDQUFDVSxPQUFoQixDQUF3QixxREFBeEIsQ0FBUDtNQUNBLENBSEk7TUFJTEMsTUFBTSxFQUFFLFlBQVk7UUFDbkIsT0FBT1gsZUFBZSxDQUFDVSxPQUFoQixDQUF3Qiw0REFBeEIsQ0FBUDtNQUNBO0lBTkksQ0FUeUI7SUFpQi9CRSxPQUFPLEVBQUU7TUFDUkMsS0FBSyxFQUFFLFFBREM7TUFFUkMsS0FBSyxFQUFFO1FBQ05DLEdBQUcsRUFBRTtNQURDO0lBRkMsQ0FqQnNCO0lBdUIvQkMsU0FBUyxFQUFFO01BQ1ZDLE1BQU0sRUFBRTtJQURFO0VBdkJvQixDQUFoQztTQTRCZWQsdUIifQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import Core from "sap/ui/core/Core";
|
|
2
|
-
import type { CoreEx } from "types/extension_types";
|
|
3
2
|
|
|
4
|
-
const oResourceBundle =
|
|
3
|
+
const oResourceBundle = Core.getLibraryResourceBundle("sap.fe.templates");
|
|
5
4
|
|
|
6
5
|
const StashableVBoxDesignTime = {
|
|
7
6
|
actions: {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/ui/fl/changeHandler/MoveControls"], function (MoveControls) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
+
|
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
|
|
14
|
+
var ScrollableHeaderContainerFlexibility = {
|
|
15
|
+
moveControls: {
|
|
16
|
+
changeHandler: {
|
|
17
|
+
applyChange: function (change, control, propertyBag) {
|
|
18
|
+
return MoveControls.applyChange(change, control, _objectSpread(_objectSpread({}, propertyBag), {}, {
|
|
19
|
+
sourceAggregation: "content",
|
|
20
|
+
targetAggregation: "content"
|
|
21
|
+
}));
|
|
22
|
+
},
|
|
23
|
+
// all 3 changeHandlers have to be implemented
|
|
24
|
+
// if variant managemant should be relevant for the object page header in future,
|
|
25
|
+
// it might be necessary to override also the revertChange handler
|
|
26
|
+
revertChange: MoveControls.revertChange,
|
|
27
|
+
completeChangeContent: MoveControls.completeChangeContent
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return ScrollableHeaderContainerFlexibility;
|
|
32
|
+
}, false);
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTY3JvbGxhYmxlSGVhZGVyQ29udGFpbmVyRmxleGliaWxpdHkiLCJtb3ZlQ29udHJvbHMiLCJjaGFuZ2VIYW5kbGVyIiwiYXBwbHlDaGFuZ2UiLCJjaGFuZ2UiLCJjb250cm9sIiwicHJvcGVydHlCYWciLCJNb3ZlQ29udHJvbHMiLCJzb3VyY2VBZ2dyZWdhdGlvbiIsInRhcmdldEFnZ3JlZ2F0aW9uIiwicmV2ZXJ0Q2hhbmdlIiwiY29tcGxldGVDaGFuZ2VDb250ZW50Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTY3JvbGxhYmxlSGVhZGVyQ29udGFpbmVyLmZsZXhpYmlsaXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIENoYW5nZSBmcm9tIFwic2FwL3VpL2ZsL0NoYW5nZVwiO1xuaW1wb3J0IE1vdmVDb250cm9scyBmcm9tIFwic2FwL3VpL2ZsL2NoYW5nZUhhbmRsZXIvTW92ZUNvbnRyb2xzXCI7XG5cbmNvbnN0IFNjcm9sbGFibGVIZWFkZXJDb250YWluZXJGbGV4aWJpbGl0eSA9IHtcblx0bW92ZUNvbnRyb2xzOiB7XG5cdFx0Y2hhbmdlSGFuZGxlcjoge1xuXHRcdFx0YXBwbHlDaGFuZ2U6IGZ1bmN0aW9uIChjaGFuZ2U6IENoYW5nZSwgY29udHJvbDogQ29udHJvbCwgcHJvcGVydHlCYWc6IG9iamVjdCkge1xuXHRcdFx0XHRyZXR1cm4gTW92ZUNvbnRyb2xzLmFwcGx5Q2hhbmdlKGNoYW5nZSwgY29udHJvbCwge1xuXHRcdFx0XHRcdC4uLnByb3BlcnR5QmFnLFxuXHRcdFx0XHRcdHNvdXJjZUFnZ3JlZ2F0aW9uOiBcImNvbnRlbnRcIixcblx0XHRcdFx0XHR0YXJnZXRBZ2dyZWdhdGlvbjogXCJjb250ZW50XCJcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gYWxsIDMgY2hhbmdlSGFuZGxlcnMgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZFxuXHRcdFx0Ly8gaWYgdmFyaWFudCBtYW5hZ2VtYW50IHNob3VsZCBiZSByZWxldmFudCBmb3IgdGhlIG9iamVjdCBwYWdlIGhlYWRlciBpbiBmdXR1cmUsXG5cdFx0XHQvLyBpdCBtaWdodCBiZSBuZWNlc3NhcnkgdG8gb3ZlcnJpZGUgYWxzbyB0aGUgcmV2ZXJ0Q2hhbmdlIGhhbmRsZXJcblx0XHRcdHJldmVydENoYW5nZTogTW92ZUNvbnRyb2xzLnJldmVydENoYW5nZSxcblx0XHRcdGNvbXBsZXRlQ2hhbmdlQ29udGVudDogTW92ZUNvbnRyb2xzLmNvbXBsZXRlQ2hhbmdlQ29udGVudFxuXHRcdH1cblx0fVxufTtcbmV4cG9ydCBkZWZhdWx0IFNjcm9sbGFibGVIZWFkZXJDb250YWluZXJGbGV4aWJpbGl0eTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztFQUlBLElBQU1BLG9DQUFvQyxHQUFHO0lBQzVDQyxZQUFZLEVBQUU7TUFDYkMsYUFBYSxFQUFFO1FBQ2RDLFdBQVcsRUFBRSxVQUFVQyxNQUFWLEVBQTBCQyxPQUExQixFQUE0Q0MsV0FBNUMsRUFBaUU7VUFDN0UsT0FBT0MsWUFBWSxDQUFDSixXQUFiLENBQXlCQyxNQUF6QixFQUFpQ0MsT0FBakMsa0NBQ0hDLFdBREc7WUFFTkUsaUJBQWlCLEVBQUUsU0FGYjtZQUdOQyxpQkFBaUIsRUFBRTtVQUhiLEdBQVA7UUFLQSxDQVBhO1FBUWQ7UUFDQTtRQUNBO1FBQ0FDLFlBQVksRUFBRUgsWUFBWSxDQUFDRyxZQVhiO1FBWWRDLHFCQUFxQixFQUFFSixZQUFZLENBQUNJO01BWnRCO0lBREY7RUFEOEIsQ0FBN0M7U0FrQmVYLG9DIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type Control from "sap/ui/core/Control";
|
|
2
|
+
import type Change from "sap/ui/fl/Change";
|
|
3
|
+
import MoveControls from "sap/ui/fl/changeHandler/MoveControls";
|
|
4
|
+
|
|
5
|
+
const ScrollableHeaderContainerFlexibility = {
|
|
6
|
+
moveControls: {
|
|
7
|
+
changeHandler: {
|
|
8
|
+
applyChange: function (change: Change, control: Control, propertyBag: object) {
|
|
9
|
+
return MoveControls.applyChange(change, control, {
|
|
10
|
+
...propertyBag,
|
|
11
|
+
sourceAggregation: "content",
|
|
12
|
+
targetAggregation: "content"
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
// all 3 changeHandlers have to be implemented
|
|
16
|
+
// if variant managemant should be relevant for the object page header in future,
|
|
17
|
+
// it might be necessary to override also the revertChange handler
|
|
18
|
+
revertChange: MoveControls.revertChange,
|
|
19
|
+
completeChangeContent: MoveControls.completeChangeContent
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export default ScrollableHeaderContainerFlexibility;
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"name": "Cancel",
|
|
37
37
|
"shortcut": "Escape"
|
|
38
38
|
},
|
|
39
|
+
"Validate": {
|
|
40
|
+
"name": "Validate",
|
|
41
|
+
"shortcut": "Enter"
|
|
42
|
+
},
|
|
39
43
|
"Create": {
|
|
40
44
|
"name": "Create",
|
|
41
45
|
"shortcut": "Ctrl+Enter"
|
|
@@ -79,6 +83,10 @@
|
|
|
79
83
|
"Share": {
|
|
80
84
|
"name": "Share",
|
|
81
85
|
"shortcut": "Shift+Ctrl+S"
|
|
86
|
+
},
|
|
87
|
+
"FE_PrimaryAction": {
|
|
88
|
+
"name": "FE_PrimaryAction",
|
|
89
|
+
"shortcut": "Ctrl+Enter"
|
|
82
90
|
}
|
|
83
91
|
},
|
|
84
92
|
"services": {
|
|
@@ -8,9 +8,9 @@ sap.ui.define([], function () {
|
|
|
8
8
|
var MessageHandlerExtension = {
|
|
9
9
|
getShowBoundMessagesInMessageDialog: function () {
|
|
10
10
|
// in case of edit mode we show the messages in the message popover
|
|
11
|
-
return !this.base.getModel("ui").getProperty("/isEditable") || this.base.getView().getBindingContext("internal").getProperty("isActionParameterDialogOpen");
|
|
11
|
+
return !this.base.getModel("ui").getProperty("/isEditable") || this.base.getView().getBindingContext("internal").getProperty("isActionParameterDialogOpen") || this.base.getView().getBindingContext("internal").getProperty("getBoundMessagesForMassEdit");
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
return MessageHandlerExtension;
|
|
15
15
|
}, false);
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXNzYWdlSGFuZGxlckV4dGVuc2lvbiIsImdldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nIiwiYmFzZSIsImdldE1vZGVsIiwiZ2V0UHJvcGVydHkiLCJnZXRWaWV3IiwiZ2V0QmluZGluZ0NvbnRleHQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk1lc3NhZ2VIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIE1lc3NhZ2VIYW5kbGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9NZXNzYWdlSGFuZGxlclwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5cbmNvbnN0IE1lc3NhZ2VIYW5kbGVyRXh0ZW5zaW9uID0ge1xuXHRnZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZzogZnVuY3Rpb24gKHRoaXM6IE1lc3NhZ2VIYW5kbGVyKSB7XG5cdFx0Ly8gaW4gY2FzZSBvZiBlZGl0IG1vZGUgd2Ugc2hvdyB0aGUgbWVzc2FnZXMgaW4gdGhlIG1lc3NhZ2UgcG9wb3ZlclxuXHRcdHJldHVybiAoXG5cdFx0XHQhdGhpcy5iYXNlLmdldE1vZGVsKFwidWlcIikuZ2V0UHJvcGVydHkoXCIvaXNFZGl0YWJsZVwiKSB8fFxuXHRcdFx0KHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCkuZ2V0UHJvcGVydHkoXCJpc0FjdGlvblBhcmFtZXRlckRpYWxvZ09wZW5cIikgfHxcblx0XHRcdCh0aGlzLmJhc2UuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpLmdldFByb3BlcnR5KFwiZ2V0Qm91bmRNZXNzYWdlc0Zvck1hc3NFZGl0XCIpXG5cdFx0KTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUhhbmRsZXJFeHRlbnNpb247XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFHQSxJQUFNQSx1QkFBdUIsR0FBRztJQUMvQkMsbUNBQW1DLEVBQUUsWUFBZ0M7TUFDcEU7TUFDQSxPQUNDLENBQUMsS0FBS0MsSUFBTCxDQUFVQyxRQUFWLENBQW1CLElBQW5CLEVBQXlCQyxXQUF6QixDQUFxQyxhQUFyQyxDQUFELElBQ0MsS0FBS0YsSUFBTCxDQUFVRyxPQUFWLEdBQW9CQyxpQkFBcEIsQ0FBc0MsVUFBdEMsQ0FBRCxDQUE0RUYsV0FBNUUsQ0FBd0YsNkJBQXhGLENBREEsSUFFQyxLQUFLRixJQUFMLENBQVVHLE9BQVYsR0FBb0JDLGlCQUFwQixDQUFzQyxVQUF0QyxDQUFELENBQTRFRixXQUE1RSxDQUF3Riw2QkFBeEYsQ0FIRDtJQUtBO0VBUjhCLENBQWhDO1NBV2VKLHVCIn0=
|
|
@@ -6,7 +6,8 @@ const MessageHandlerExtension = {
|
|
|
6
6
|
// in case of edit mode we show the messages in the message popover
|
|
7
7
|
return (
|
|
8
8
|
!this.base.getModel("ui").getProperty("/isEditable") ||
|
|
9
|
-
(this.base.getView().getBindingContext("internal") as InternalModelContext).getProperty("isActionParameterDialogOpen")
|
|
9
|
+
(this.base.getView().getBindingContext("internal") as InternalModelContext).getProperty("isActionParameterDialogOpen") ||
|
|
10
|
+
(this.base.getView().getBindingContext("internal") as InternalModelContext).getProperty("getBoundMessagesForMassEdit")
|
|
10
11
|
);
|
|
11
12
|
}
|
|
12
13
|
};
|
|
@@ -246,7 +246,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/h
|
|
|
246
246
|
sShareUrl = sHash ? sBasePath + sHash : window.location.hash;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
return sShareUrl;
|
|
249
|
+
return window.location.origin + window.location.pathname + sShareUrl;
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
function getShareEmailUrl() {
|
|
@@ -319,7 +319,14 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/h
|
|
|
319
319
|
oShareMetadata.title = sTitle;
|
|
320
320
|
oShareMetadata.jam.url = oData[0];
|
|
321
321
|
oShareMetadata.url = oData[1];
|
|
322
|
-
oShareMetadata.email.url = oData[2];
|
|
322
|
+
oShareMetadata.email.url = oData[2]; // MS Teams collaboration does not want to allow further changes to the URL
|
|
323
|
+
// so update colloborationInfo model at LR override to ignore further extension changes at multiple levels
|
|
324
|
+
|
|
325
|
+
var collaborationInfoModel = _this2.base.getView().getModel("collaborationInfo");
|
|
326
|
+
|
|
327
|
+
collaborationInfoModel.setProperty("/url", oShareMetadata.url);
|
|
328
|
+
collaborationInfoModel.setProperty("/appTitle", oShareMetadata.title);
|
|
329
|
+
collaborationInfoModel.setProperty("/subTitle", sObjectSubtitle);
|
|
323
330
|
});
|
|
324
331
|
});
|
|
325
332
|
}, function (error) {
|
|
@@ -336,4 +343,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/h
|
|
|
336
343
|
};
|
|
337
344
|
return ShareExtensionOverride;
|
|
338
345
|
}, false);
|
|
339
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiYkdsb2JhbElzU3RpY2t5U3VwcG9ydGVkIiwiY3JlYXRlRmlsdGVyVG9GZXRjaEFjdGl2ZUNvbnRleHQiLCJtS2V5VmFsdWVzIiwiYklzQWN0aXZlRW50aXR5RGVmaW5lZCIsImFLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImFGaWx0ZXJzIiwibWFwIiwic0tleSIsInNWYWx1ZSIsInVuZGVmaW5lZCIsIkZpbHRlciIsIkZpbHRlck9wZXJhdG9yIiwiRVEiLCJvQWN0aXZlRmlsdGVyIiwiZmlsdGVycyIsImFuZCIsInB1c2giLCJnZXRBY3RpdmVDb250ZXh0UGF0aCIsIm9Db250cm9sbGVyIiwic1BhZ2VFbnRpdHlOYW1lIiwib0ZpbHRlciIsIm9MaXN0QmluZGluZyIsImdldFZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldE1vZGVsIiwiYmluZExpc3QiLCJyZXF1ZXN0Q29udGV4dHMiLCJvQ29udGV4dHMiLCJsZW5ndGgiLCJnZXRQYXRoIiwiZ2V0QWN0aXZlQ29udGV4dEluc3RhbmNlcyIsIm9Db250ZXh0Iiwib0VudGl0eVNldCIsImFBY3RpdmVDb250ZXh0cHJvbWlzZXMiLCJhUGFnZXMiLCJzTWV0YVBhdGgiLCJnZXRNZXRhTW9kZWwiLCJnZXRNZXRhUGF0aCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJhTWV0YVBhdGhBcnJheSIsInNwbGl0Iiwic0N1cnJlbnRIYXNoTm9QYXJhbXMiLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiZ2V0SGFzaCIsImFDdXJyZW50SGFzaEFycmF5Iiwib1BhZ2VNYXAiLCJhUGFnZUhhc2hBcnJheSIsImZvckVhY2giLCJzUGFnZUhhc2giLCJhS2V5VmFsdWVzIiwic1BhZ2VIYXNoTmFtZSIsImkiLCJzS2V5QXNzaWdubWVudCIsImFQYXJ0cyIsInNLZXlWYWx1ZSIsIm9NZXRhTW9kZWwiLCJhVGVjaG5pY2FsS2V5cyIsImdldE9iamVjdCIsImpvaW4iLCJsYXN0SW5kZXhPZiIsImRlY29kZVVSSUNvbXBvbmVudCIsIm9QYWdlRW50aXR5U2V0Iiwic05hdmlnYXRpb25QYXRoIiwib1BhZ2VJbmZvIiwic1BhZ2VFbnRpdHlTZXROYW1lIiwiJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmciLCJwYWdlRW50aXR5TmFtZSIsImdldEFjdGl2ZUNvbnRleHRQYXRocyIsInNSb290RW50aXR5TmFtZSIsInN1YnN0ciIsIm9QYWdlQ29udGV4dCIsIlByb21pc2UiLCJhbGwiLCJhRGF0YSIsImFBY3RpdmVDb250ZXh0UGF0aHMiLCJzQWN0aXZlQ29udGV4dFBhdGgiLCJzTmF2aWdhdGlvUHJvcGVydHkiLCJzRW50aXR5U2V0TmFtZSIsInZhbHVlcyIsInJlcGxhY2UiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImluZm8iLCJyZXNvbHZlIiwiZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMiLCJvUHJvbWlzZSIsImFTZW1hbnRpY0tleXMiLCJvTW9kZWwiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIlNlbWFudGljS2V5SGVscGVyIiwiZ2V0U2VtYW50aWNLZXlzIiwib1ZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJnZXRTaGFyZVVybCIsImJJc0VkaXRhYmxlIiwiYklzU3RpY2t5U3VwcG9ydGVkIiwic1NoYXJlVXJsIiwic0hhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwiZ2V0U2hhcmVFbWFpbFVybCIsIm9VU2hlbGxDb250YWluZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRGTFBVcmxBc3luYyIsInNGTFBVcmwiLCJzRXJyb3IiLCJlcnJvciIsImRvY3VtZW50IiwiVVJMIiwiZ2V0SmFtVXJsIiwiYklzRWRpdE1vZGUiLCJzSmFtVXJsIiwicnVubmluZ0luSWZyYW1lIiwiZ2V0RkxQVXJsIiwic1VybCIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVFeHRlbnNpb25PdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwiYmFzZSIsIm9VSU1vZGVsIiwiZ2V0UHJvcGVydHkiLCJnZXRDb250cm9sbGVyIiwib1BhZ2VUaXRsZUluZm8iLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJvRGF0YSIsInNUaXRsZSIsInRpdGxlIiwic09iamVjdFN1YnRpdGxlIiwic3VidGl0bGUiLCJ0b1N0cmluZyIsInRpbGUiLCJlbWFpbCIsImphbSIsInVybCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFNlbWFudGljS2V5SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NlbWFudGljS2V5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBIYXNoQ2hhbmdlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9IYXNoQ2hhbmdlclwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcblxubGV0IGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZDogYm9vbGVhbjtcblxuZnVuY3Rpb24gY3JlYXRlRmlsdGVyVG9GZXRjaEFjdGl2ZUNvbnRleHQobUtleVZhbHVlczogYW55LCBiSXNBY3RpdmVFbnRpdHlEZWZpbmVkOiBhbnkpIHtcblx0Y29uc3QgYUtleXMgPSBPYmplY3Qua2V5cyhtS2V5VmFsdWVzKTtcblxuXHRjb25zdCBhRmlsdGVycyA9IGFLZXlzLm1hcChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0Y29uc3Qgc1ZhbHVlID0gbUtleVZhbHVlc1tzS2V5XTtcblx0XHRpZiAoc1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBuZXcgRmlsdGVyKHNLZXksIEZpbHRlck9wZXJhdG9yLkVRLCBzVmFsdWUpO1xuXHRcdH1cblx0fSk7XG5cblx0aWYgKGJJc0FjdGl2ZUVudGl0eURlZmluZWQpIHtcblx0XHRjb25zdCBvQWN0aXZlRmlsdGVyID0gbmV3IEZpbHRlcih7XG5cdFx0XHRmaWx0ZXJzOiBbbmV3IEZpbHRlcihcIlNpYmxpbmdFbnRpdHkvSXNBY3RpdmVFbnRpdHlcIiwgRmlsdGVyT3BlcmF0b3IuRVEsIHRydWUpXSxcblx0XHRcdGFuZDogZmFsc2Vcblx0XHR9KTtcblxuXHRcdGFGaWx0ZXJzLnB1c2gob0FjdGl2ZUZpbHRlcik7XG5cdH1cblxuXHRyZXR1cm4gbmV3IEZpbHRlcihhRmlsdGVycyBhcyBhbnksIHRydWUpO1xufVxuZnVuY3Rpb24gZ2V0QWN0aXZlQ29udGV4dFBhdGgob0NvbnRyb2xsZXI6IGFueSwgc1BhZ2VFbnRpdHlOYW1lOiBhbnksIG9GaWx0ZXI6IGFueSkge1xuXHRjb25zdCBvTGlzdEJpbmRpbmcgPSBvQ29udHJvbGxlclxuXHRcdC5nZXRWaWV3KClcblx0XHQuZ2V0QmluZGluZ0NvbnRleHQoKVxuXHRcdC5nZXRNb2RlbCgpXG5cdFx0LmJpbmRMaXN0KGAvJHtzUGFnZUVudGl0eU5hbWV9YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9GaWx0ZXIsIHsgXCIkJGdyb3VwSWRcIjogXCIkYXV0by5IZXJvZXNcIiB9KTtcblx0cmV0dXJuIG9MaXN0QmluZGluZy5yZXF1ZXN0Q29udGV4dHMoMCwgMikudGhlbihmdW5jdGlvbiAob0NvbnRleHRzOiBhbnkpIHtcblx0XHRpZiAob0NvbnRleHRzICYmIG9Db250ZXh0cy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBvQ29udGV4dHNbMF0uZ2V0UGF0aCgpO1xuXHRcdH1cblx0fSk7XG59XG5mdW5jdGlvbiBnZXRBY3RpdmVDb250ZXh0SW5zdGFuY2VzKG9Db250ZXh0OiBhbnksIG9Db250cm9sbGVyOiBhbnksIG9FbnRpdHlTZXQ6IGFueSkge1xuXHRjb25zdCBhQWN0aXZlQ29udGV4dHByb21pc2VzOiBhbnlbXSA9IFtdO1xuXHRjb25zdCBhUGFnZXM6IGFueVtdID0gW107XG5cdGxldCBzTWV0YVBhdGggPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE1ldGFQYXRoKG9Db250ZXh0LmdldFBhdGgoKSk7XG5cdGlmIChzTWV0YVBhdGguaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRzTWV0YVBhdGggPSBzTWV0YVBhdGguc3Vic3RyaW5nKDEpO1xuXHR9XG5cdGNvbnN0IGFNZXRhUGF0aEFycmF5ID0gc01ldGFQYXRoLnNwbGl0KFwiL1wiKTtcblx0Y29uc3Qgc0N1cnJlbnRIYXNoTm9QYXJhbXMgPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKS5zcGxpdChcIj9cIilbMF07XG5cdGNvbnN0IGFDdXJyZW50SGFzaEFycmF5ID0gc0N1cnJlbnRIYXNoTm9QYXJhbXMuc3BsaXQoXCIvXCIpO1xuXG5cdC8vIG9QYWdlTWFwIC0gY3JlYXRpbmcgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgbWFwIG9mIG1ldGFwYXRoIG5hbWUgYW5kIGl0J3MgdGVjaG5pY2FsIGRldGFpbHNcblx0Ly8gd2hpY2ggaXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgZmlsdGVyIHRvIGZldGNoIHRoZSByZWxhdmFudC9jb3JyZWN0IGFjdGl2ZSBjb250ZXh0XG5cdC8vIEV4YW1wbGU6IHtTYWxlc09yZGVyTWFuYWdlOnt0ZWNobmljYWxJRDp0ZWNobmljYWxJRFZhbHVlfSwgX0l0ZW06e3RlY2huaWNhbElEOnRlY2huaWNhbElEVmFsdWV9fSBldGMuLFxuXHRjb25zdCBvUGFnZU1hcDogYW55ID0ge307XG5cdGNvbnN0IGFQYWdlSGFzaEFycmF5OiBhbnlbXSA9IFtdO1xuXHRhQ3VycmVudEhhc2hBcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChzUGFnZUhhc2g6IGFueSkge1xuXHRcdGNvbnN0IGFLZXlWYWx1ZXMgPSBzUGFnZUhhc2guc3Vic3RyaW5nKHNQYWdlSGFzaC5pbmRleE9mKFwiKFwiKSArIDEsIHNQYWdlSGFzaC5sZW5ndGggLSAxKS5zcGxpdChcIixcIik7XG5cdFx0Y29uc3QgbUtleVZhbHVlczogYW55ID0ge307XG5cdFx0Y29uc3Qgc1BhZ2VIYXNoTmFtZSA9IHNQYWdlSGFzaC5zcGxpdChcIihcIilbMF07XG5cdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoTmFtZV0gPSB7fTtcblx0XHRhUGFnZUhhc2hBcnJheS5wdXNoKHNQYWdlSGFzaE5hbWUpO1xuXHRcdG9QYWdlTWFwW3NQYWdlSGFzaE5hbWVdW1wiYklzQWN0aXZlRW50aXR5RGVmaW5lZFwiXSA9IHRydWU7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhS2V5VmFsdWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCBzS2V5QXNzaWdubWVudCA9IGFLZXlWYWx1ZXNbaV07XG5cdFx0XHRjb25zdCBhUGFydHMgPSBzS2V5QXNzaWdubWVudC5zcGxpdChcIj1cIik7XG5cdFx0XHRsZXQgc0tleVZhbHVlID0gYVBhcnRzWzFdO1xuXHRcdFx0bGV0IHNLZXkgPSBhUGFydHNbMF07XG5cdFx0XHQvLyBJbiBjYXNlIGlmIG9ubHkgb25lIHRlY2huaWNhbCBrZXkgaXMgZGVmaW5lZCB0aGVuIHRoZSB1cmwganVzdCBjb250YWlucyB0aGUgdGVjaG5pY2FsSURWYWx1ZSBidXQgbm90IHRoZSB0ZWNobmljYWxJRFxuXHRcdFx0Ly8gRXhhbXBsZTogU2FsZXNPcmRlck1hbmFnZShJRD0xMTExMTEyOS1hYWFhLWJiYmItY2NjYy1kZGRkZWVlZWZmZmYsSXNBY3RpdmVFbnRpdHk9ZmFsc2UpL19JdGVtKDExMTExMTI5LWFhYWEtYmJiYi1jY2NjLWRkZGRlZWVlZmZmZilcblx0XHRcdC8vIEluIGFib3ZlIGV4YW1wbGUgU2FsZXNPcmRlckl0ZW0gaGFzIG9ubHkgb25lIHRlY2huaWNhbCBrZXkgZGVmaW5lZCwgaGVuY2UgdGVjaG5pY2FsSUQgaW5mbyBpcyBub3QgcHJlc2VudCBpbiB0aGUgdXJsXG5cdFx0XHQvLyBIZW5jZSBpbiBzdWNoIGNhc2VzIHdlIGdldCB0ZWNobmljYWwga2V5IGFuZCB1c2UgdGhlbSB0byBmZXRjaCBhY3RpdmUgY29udGV4dFxuXHRcdFx0aWYgKHNLZXlBc3NpZ25tZW50LmluZGV4T2YoXCI9XCIpID09PSAtMSkge1xuXHRcdFx0XHRjb25zdCBvTWV0YU1vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRcdFx0Y29uc3QgYVRlY2huaWNhbEtleXMgPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7YVBhZ2VIYXNoQXJyYXkuam9pbihcIi9cIil9LyRUeXBlLyRLZXlgKTtcblx0XHRcdFx0c0tleVZhbHVlID0gYVBhcnRzWzBdO1xuXHRcdFx0XHRzS2V5ID0gYVRlY2huaWNhbEtleXNbMF07XG5cdFx0XHRcdG9QYWdlTWFwW3NQYWdlSGFzaC5zcGxpdChcIihcIilbMF1dW1wiYklzQWN0aXZlRW50aXR5RGVmaW5lZFwiXSA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc0tleSAhPT0gXCJJc0FjdGl2ZUVudGl0eVwiKSB7XG5cdFx0XHRcdGlmIChzS2V5VmFsdWUuaW5kZXhPZihcIidcIikgPT09IDAgJiYgc0tleVZhbHVlLmxhc3RJbmRleE9mKFwiJ1wiKSA9PT0gc0tleVZhbHVlLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0XHQvLyBSZW1vdmUgdGhlIHF1b3RlcyBmcm9tIHRoZSB2YWx1ZSBhbmQgZGVjb2RlIHNwZWNpYWwgY2hhcnNcblx0XHRcdFx0XHRzS2V5VmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoc0tleVZhbHVlLnN1YnN0cmluZygxLCBzS2V5VmFsdWUubGVuZ3RoIC0gMSkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1LZXlWYWx1ZXNbc0tleV0gPSBzS2V5VmFsdWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdG9QYWdlTWFwW3NQYWdlSGFzaE5hbWVdLm1LZXlWYWx1ZXMgPSBtS2V5VmFsdWVzO1xuXHR9KTtcblxuXHRsZXQgb1BhZ2VFbnRpdHlTZXQgPSBvRW50aXR5U2V0O1xuXHRhTWV0YVBhdGhBcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChzTmF2aWdhdGlvblBhdGg6IGFueSkge1xuXHRcdGNvbnN0IG9QYWdlSW5mbzogYW55ID0ge307XG5cdFx0Y29uc3Qgc1BhZ2VFbnRpdHlTZXROYW1lID0gb1BhZ2VFbnRpdHlTZXQuJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcgJiYgb1BhZ2VFbnRpdHlTZXQuJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbc05hdmlnYXRpb25QYXRoXTtcblx0XHRpZiAoc1BhZ2VFbnRpdHlTZXROYW1lKSB7XG5cdFx0XHRvUGFnZUluZm8ucGFnZUVudGl0eU5hbWUgPSBvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tzTmF2aWdhdGlvblBhdGhdO1xuXHRcdFx0b1BhZ2VFbnRpdHlTZXQgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChgLyR7c1BhZ2VFbnRpdHlTZXROYW1lfWApIHx8IG9FbnRpdHlTZXQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9QYWdlSW5mby5wYWdlRW50aXR5TmFtZSA9IHNOYXZpZ2F0aW9uUGF0aDtcblx0XHR9XG5cdFx0b1BhZ2VJbmZvLm1LZXlWYWx1ZXMgPSBvUGFnZU1hcFtzTmF2aWdhdGlvblBhdGhdLm1LZXlWYWx1ZXM7XG5cdFx0b1BhZ2VJbmZvLmJJc0FjdGl2ZUVudGl0eURlZmluZWQgPSBvUGFnZU1hcFtzTmF2aWdhdGlvblBhdGhdLmJJc0FjdGl2ZUVudGl0eURlZmluZWQ7XG5cdFx0YVBhZ2VzLnB1c2gob1BhZ2VJbmZvKTtcblx0fSk7XG5cblx0YVBhZ2VzLmZvckVhY2goZnVuY3Rpb24gKG9QYWdlSW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb0ZpbHRlciA9IGNyZWF0ZUZpbHRlclRvRmV0Y2hBY3RpdmVDb250ZXh0KG9QYWdlSW5mby5tS2V5VmFsdWVzLCBvUGFnZUluZm8uYklzQWN0aXZlRW50aXR5RGVmaW5lZCk7XG5cdFx0YUFjdGl2ZUNvbnRleHRwcm9taXNlcy5wdXNoKGdldEFjdGl2ZUNvbnRleHRQYXRoKG9Db250cm9sbGVyLCBvUGFnZUluZm8ucGFnZUVudGl0eU5hbWUsIG9GaWx0ZXIpKTtcblx0fSk7XG5cblx0cmV0dXJuIGFBY3RpdmVDb250ZXh0cHJvbWlzZXM7XG59XG5cbi8qKlxuICogTWV0aG9kIHRvIGZldGNoIGFjdGl2ZSBjb250ZXh0IHBhdGgncy5cbiAqXG4gKiBAcGFyYW0gb0NvbnRleHQgVGhlIFBhZ2UgQ29udGV4dFxuICogQHBhcmFtIG9Db250cm9sbGVyXG4gKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIGlzIHJlc29sdmVkIG9uY2UgdGhlIGFjdGl2ZSBjb250ZXh0J3MgYXJlIGZldGNoZWRcbiAqL1xuZnVuY3Rpb24gZ2V0QWN0aXZlQ29udGV4dFBhdGhzKG9Db250ZXh0OiBhbnksIG9Db250cm9sbGVyOiBhbnkpIHtcblx0Y29uc3Qgc0N1cnJlbnRIYXNoTm9QYXJhbXMgPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKS5zcGxpdChcIj9cIilbMF07XG5cdGxldCBzUm9vdEVudGl0eU5hbWUgPSBzQ3VycmVudEhhc2hOb1BhcmFtcyAmJiBzQ3VycmVudEhhc2hOb1BhcmFtcy5zdWJzdHIoMCwgc0N1cnJlbnRIYXNoTm9QYXJhbXMuaW5kZXhPZihcIihcIikpO1xuXHRpZiAoc1Jvb3RFbnRpdHlOYW1lLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0c1Jvb3RFbnRpdHlOYW1lID0gc1Jvb3RFbnRpdHlOYW1lLnN1YnN0cmluZygxKTtcblx0fVxuXHRjb25zdCBvRW50aXR5U2V0ID0gb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKS5nZXRPYmplY3QoYC8ke3NSb290RW50aXR5TmFtZX1gKTtcblx0Y29uc3Qgb1BhZ2VDb250ZXh0ID0gb0NvbnRleHQ7XG5cdGNvbnN0IGFBY3RpdmVDb250ZXh0cHJvbWlzZXMgPSBnZXRBY3RpdmVDb250ZXh0SW5zdGFuY2VzKG9Db250ZXh0LCBvQ29udHJvbGxlciwgb0VudGl0eVNldCk7XG5cdGlmIChhQWN0aXZlQ29udGV4dHByb21pc2VzLmxlbmd0aCA+IDApIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoYUFjdGl2ZUNvbnRleHRwcm9taXNlcylcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChhRGF0YTogYW55W10pIHtcblx0XHRcdFx0Y29uc3QgYUFjdGl2ZUNvbnRleHRQYXRocyA9IFtdO1xuXHRcdFx0XHRsZXQgb1BhZ2VFbnRpdHlTZXQgPSBvRW50aXR5U2V0O1xuXHRcdFx0XHRpZiAoYURhdGFbMF0uaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdFx0XHRhQWN0aXZlQ29udGV4dFBhdGhzLnB1c2goYURhdGFbMF0uc3Vic3RyaW5nKDEpKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhQWN0aXZlQ29udGV4dFBhdGhzLnB1c2goYURhdGFbMF0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIEluIHRoZSBhY3RpdmUgY29udGV4dCBwYXRocyBpZGVudGlmeSBhbmQgcmVwbGFjZSB0aGUgZW50aXR5U2V0IE5hbWUgd2l0aCBjb3JyZXNwb25kaW5nIG5hdmlnYXRpb24gcHJvcGVydHkgbmFtZVxuXHRcdFx0XHQvLyBSZXF1aXJlZCB0byBmb3JtIHRoZSB1cmwgcG9pbnRpbmcgdG8gYWN0aXZlIGNvbnRleHRcblx0XHRcdFx0Ly8gRXhhbXBsZSA6IFNhbGVzT3JkZXJJdGVtIC0tPiBfSXRlbSwgTWF0ZXJpYWxEZXRhaWxzIC0tPiBfTWF0ZXJpYWxEZXRhaWxzIGV0Yy4sXG5cdFx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgYURhdGEubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRsZXQgc0FjdGl2ZUNvbnRleHRQYXRoID0gYURhdGFbaV07XG5cdFx0XHRcdFx0bGV0IHNOYXZpZ2F0aW9Qcm9wZXJ0eSA9IFwiXCI7XG5cdFx0XHRcdFx0bGV0IHNFbnRpdHlTZXROYW1lID0gc0FjdGl2ZUNvbnRleHRQYXRoICYmIHNBY3RpdmVDb250ZXh0UGF0aC5zdWJzdHIoMCwgc0FjdGl2ZUNvbnRleHRQYXRoLmluZGV4T2YoXCIoXCIpKTtcblx0XHRcdFx0XHRpZiAoc0VudGl0eVNldE5hbWUuaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdFx0XHRcdHNFbnRpdHlTZXROYW1lID0gc0VudGl0eVNldE5hbWUuc3Vic3RyaW5nKDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoc0FjdGl2ZUNvbnRleHRQYXRoLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHRcdFx0XHRzQWN0aXZlQ29udGV4dFBhdGggPSBzQWN0aXZlQ29udGV4dFBhdGguc3Vic3RyaW5nKDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzTmF2aWdhdGlvUHJvcGVydHkgPSBPYmplY3Qua2V5cyhvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZylbXG5cdFx0XHRcdFx0XHRPYmplY3QudmFsdWVzKG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nKS5pbmRleE9mKHNFbnRpdHlTZXROYW1lKVxuXHRcdFx0XHRcdF07XG5cdFx0XHRcdFx0aWYgKHNOYXZpZ2F0aW9Qcm9wZXJ0eSkge1xuXHRcdFx0XHRcdFx0YUFjdGl2ZUNvbnRleHRQYXRocy5wdXNoKHNBY3RpdmVDb250ZXh0UGF0aC5yZXBsYWNlKHNFbnRpdHlTZXROYW1lLCBzTmF2aWdhdGlvUHJvcGVydHkpKTtcblx0XHRcdFx0XHRcdG9QYWdlRW50aXR5U2V0ID0gb1BhZ2VDb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KGAvJHtzRW50aXR5U2V0TmFtZX1gKSB8fCBvRW50aXR5U2V0O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhQWN0aXZlQ29udGV4dFBhdGhzLnB1c2goc0FjdGl2ZUNvbnRleHRQYXRoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGFBY3RpdmVDb250ZXh0UGF0aHM7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuaW5mbyhcIkZhaWxlZCB0byByZXRyaWV2ZSBvbmUgb3IgbW9yZSBhY3RpdmUgY29udGV4dCBwYXRoJ3NcIiwgb0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0fVxufVxuZnVuY3Rpb24gZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQ6IGFueSwgb0NvbnRyb2xsZXI6IGFueSkge1xuXHRsZXQgb1Byb21pc2UsIGFTZW1hbnRpY0tleXM7XG5cdGNvbnN0IHNDdXJyZW50SGFzaE5vUGFyYW1zID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCkuc3BsaXQoXCI/XCIpWzBdO1xuXHRpZiAob0NvbnRleHQpIHtcblx0XHRjb25zdCBvTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpO1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvTW9kZWwuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Ykdsb2JhbElzU3RpY2t5U3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKG9NZXRhTW9kZWwpO1xuXHRcdGxldCBzUm9vdEVudGl0eU5hbWUgPSBzQ3VycmVudEhhc2hOb1BhcmFtcyAmJiBzQ3VycmVudEhhc2hOb1BhcmFtcy5zdWJzdHIoMCwgc0N1cnJlbnRIYXNoTm9QYXJhbXMuaW5kZXhPZihcIihcIikpO1xuXHRcdGlmIChzUm9vdEVudGl0eU5hbWUuaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdHNSb290RW50aXR5TmFtZSA9IHNSb290RW50aXR5TmFtZS5zdWJzdHJpbmcoMSk7XG5cdFx0fVxuXHRcdGFTZW1hbnRpY0tleXMgPSBTZW1hbnRpY0tleUhlbHBlci5nZXRTZW1hbnRpY0tleXMob01ldGFNb2RlbCwgc1Jvb3RFbnRpdHlOYW1lKTtcblx0fVxuXHQvLyBGZXRjaCBhY3RpdmUgY29udGV4dCBkZXRhaWxzIGluY2FzZSBvZiBiZWxvdyBzY2VuYXJpbydzKHdoZXJlIHBhZ2UgaXMgbm90IHN0aWNreSBzdXBwb3J0ZWQod2UgZG8gbm90IGhhdmUgZHJhZnQgaW5zdGFuY2UpKVxuXHQvLyAxLiBJbiBjYXNlIG9mIGRyYWZ0IGVuYWJsZWQgT2JqZWN0IHBhZ2Ugd2hlcmUgc2VtYW50aWMga2V5IGJhc2VkIFVSTCBpcyBub3QgcG9zc2libGUobGlrZSBzZW1hbnRpYyBrZXlzIGFyZSBub3QgbW9kZWxlZCBpbiB0aGUgZW50aXR5IHNldClcblx0Ly8gMi4gSW4gY2FzZSBvZiBkcmFmdCBlbmFibGVkIFN1YiBPYmplY3QgUGFnZXMgKHdoZXJlIHNlbWFudGljIGJvb2ttYXJraW5nIGlzIG5vdCBzdXBwb3J0ZWQpXG5cdGNvbnN0IG9WaWV3RGF0YSA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpO1xuXHRpZiAob0NvbnRleHQgJiYgIWJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZCAmJiAoKG9WaWV3RGF0YS52aWV3TGV2ZWwgPT09IDEgJiYgIWFTZW1hbnRpY0tleXMpIHx8IG9WaWV3RGF0YS52aWV3TGV2ZWwgPj0gMikpIHtcblx0XHRvUHJvbWlzZSA9IGdldEFjdGl2ZUNvbnRleHRQYXRocyhvQ29udGV4dCwgb0NvbnRyb2xsZXIpO1xuXHRcdHJldHVybiBvUHJvbWlzZTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdH1cbn1cblxuLy8gLyoqXG4vLyAgKiBHZXQgc2hhcmUgVVJMLlxuLy8gICogQHBhcmFtIGJJc0VkaXRhYmxlXG4vLyAgKiBAcGFyYW0gYklzU3RpY2t5U3VwcG9ydGVkXG4vLyAgKiBAcGFyYW0gYUFjdGl2ZUNvbnRleHRQYXRoc1xuLy8gICogQHJldHVybnMge3N0cmluZ30gVGhlIHNoYXJlIFVSTFxuLy8gICogQHByb3RlY3RlZFxuLy8gICogQHN0YXRpY1xuLy8gICovXG5mdW5jdGlvbiBnZXRTaGFyZVVybChiSXNFZGl0YWJsZTogYW55LCBiSXNTdGlja3lTdXBwb3J0ZWQ6IGFueSwgYUFjdGl2ZUNvbnRleHRQYXRoczogYW55KSB7XG5cdGxldCBzU2hhcmVVcmw7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRpZiAoYklzRWRpdGFibGUgJiYgIWJJc1N0aWNreVN1cHBvcnRlZCAmJiBhQWN0aXZlQ29udGV4dFBhdGhzKSB7XG5cdFx0c1NoYXJlVXJsID0gc0Jhc2VQYXRoICsgYUFjdGl2ZUNvbnRleHRQYXRocy5qb2luKFwiL1wiKTtcblx0fSBlbHNlIHtcblx0XHRzU2hhcmVVcmwgPSBzSGFzaCA/IHNCYXNlUGF0aCArIHNIYXNoIDogd2luZG93LmxvY2F0aW9uLmhhc2g7XG5cdH1cblx0cmV0dXJuIHNTaGFyZVVybDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuXG5mdW5jdGlvbiBnZXRKYW1VcmwoYklzRWRpdE1vZGU6IGJvb2xlYW4sIGJJc1N0aWNreVN1cHBvcnRlZDogYW55LCBhQWN0aXZlQ29udGV4dFBhdGhzOiBhbnkpIHtcblx0bGV0IHNKYW1Vcmw6IHN0cmluZztcblx0Y29uc3Qgc0hhc2ggPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0Y29uc3Qgc0Jhc2VQYXRoID0gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoXG5cdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHQ6IFwiXCI7XG5cdGlmIChiSXNFZGl0TW9kZSAmJiAhYklzU3RpY2t5U3VwcG9ydGVkICYmIGFBY3RpdmVDb250ZXh0UGF0aHMpIHtcblx0XHRzSmFtVXJsID0gc0Jhc2VQYXRoICsgYUFjdGl2ZUNvbnRleHRQYXRocy5qb2luKFwiL1wiKTtcblx0fSBlbHNlIHtcblx0XHRzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHR9XG5cdC8vIGluIGNhc2Ugd2UgYXJlIGluIGNGTFAgc2NlbmFyaW8sIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nXG5cdC8vIGluc2lkZSBhbiBpZnJhbWUsIGFuZCB0aGVyZSBmb3Igd2UgbmVlZCB0byBnZXQgdGhlIGNGTFAgVVJMXG5cdC8vIGFuZCBub3QgJ2RvY3VtZW50LlVSTCcgdGhhdCByZXByZXNlbnRzIHRoZSBpZnJhbWUgVVJMXG5cdGlmIChzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyICYmIHNhcC51c2hlbGwuQ29udGFpbmVyLnJ1bm5pbmdJbklmcmFtZSAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUoKSkge1xuXHRcdHNhcC51c2hlbGwuQ29udGFpbmVyLmdldEZMUFVybCh0cnVlKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNVcmw6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gc1VybC5zdWJzdHIoMCwgc1VybC5pbmRleE9mKFwiI1wiKSkgKyBzSmFtVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiQ291bGQgbm90IHJldHJpZXZlIGNGTFAgVVJMIGZvciB0aGUgc2hhcmluZyBkaWFsb2cgKGRpYWxvZyB3aWxsIG5vdCBiZSBvcGVuZWQpXCIsIHNFcnJvcik7XG5cdFx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsKTtcblx0fVxufVxuXG5jb25zdCBTaGFyZUV4dGVuc2lvbk92ZXJyaWRlID0ge1xuXHRhZGFwdFNoYXJlTWV0YWRhdGE6IGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBTaGFyZSwgb1NoYXJlTWV0YWRhdGE6IGFueSkge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdGNvbnN0IG9VSU1vZGVsID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRNb2RlbChcInVpXCIpO1xuXHRcdGNvbnN0IGJJc0VkaXRhYmxlID0gb1VJTW9kZWwuZ2V0UHJvcGVydHkoXCIvaXNFZGl0YWJsZVwiKTtcblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBhQWN0aXZlQ29udGV4dFBhdGhzID0gYXdhaXQgZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQsIHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpKTtcblx0XHRcdGNvbnN0IG9QYWdlVGl0bGVJbmZvID0gKHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHRcdGNvbnN0IG9EYXRhID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuXHRcdFx0XHRnZXRKYW1VcmwoYklzRWRpdGFibGUsIGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZCwgYUFjdGl2ZUNvbnRleHRQYXRocyksXG5cdFx0XHRcdGdldFNoYXJlVXJsKGJJc0VkaXRhYmxlLCBiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQsIGFBY3RpdmVDb250ZXh0UGF0aHMpLFxuXHRcdFx0XHRnZXRTaGFyZUVtYWlsVXJsKClcblx0XHRcdF0pO1xuXG5cdFx0XHRsZXQgc1RpdGxlID0gb1BhZ2VUaXRsZUluZm8udGl0bGU7XG5cdFx0XHRjb25zdCBzT2JqZWN0U3VidGl0bGUgPSBvUGFnZVRpdGxlSW5mby5zdWJ0aXRsZSA/IG9QYWdlVGl0bGVJbmZvLnN1YnRpdGxlLnRvU3RyaW5nKCkgOiBcIlwiO1xuXHRcdFx0aWYgKHNPYmplY3RTdWJ0aXRsZSkge1xuXHRcdFx0XHRzVGl0bGUgPSBgJHtzVGl0bGV9IC0gJHtzT2JqZWN0U3VidGl0bGV9YDtcblx0XHRcdH1cblx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpbGUgPSB7XG5cdFx0XHRcdHRpdGxlOiBvUGFnZVRpdGxlSW5mby50aXRsZSxcblx0XHRcdFx0c3VidGl0bGU6IHNPYmplY3RTdWJ0aXRsZVxuXHRcdFx0fTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnRpdGxlID0gc1RpdGxlO1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBzVGl0bGU7XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS5qYW0udXJsID0gb0RhdGFbMF07XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBvRGF0YVsxXTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IG9EYXRhWzJdO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9TaGFyZU1ldGFkYXRhO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaGFyZUV4dGVuc2lvbk92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBa2pCTyxnQkFBZ0JBLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQjtJQUNyQyxJQUFJO01BQ0gsSUFBSUMsTUFBTSxHQUFHRixJQUFJLEVBQWpCO0lBQ0EsQ0FGRCxDQUVFLE9BQU1HLENBQU4sRUFBUztNQUNWLE9BQU9GLE9BQU8sQ0FBQ0UsQ0FBRCxDQUFkO0lBQ0E7O0lBQ0QsSUFBSUQsTUFBTSxJQUFJQSxNQUFNLENBQUNFLElBQXJCLEVBQTJCO01BQzFCLE9BQU9GLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLEtBQUssQ0FBakIsRUFBb0JILE9BQXBCLENBQVA7SUFDQTs7SUFDRCxPQUFPQyxNQUFQO0VBQ0E7O0VBbmpCRCxJQUFJRyx3QkFBSjs7RUFFQSxTQUFTQyxnQ0FBVCxDQUEwQ0MsVUFBMUMsRUFBMkRDLHNCQUEzRCxF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
|
|
346
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiYkdsb2JhbElzU3RpY2t5U3VwcG9ydGVkIiwiY3JlYXRlRmlsdGVyVG9GZXRjaEFjdGl2ZUNvbnRleHQiLCJtS2V5VmFsdWVzIiwiYklzQWN0aXZlRW50aXR5RGVmaW5lZCIsImFLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImFGaWx0ZXJzIiwibWFwIiwic0tleSIsInNWYWx1ZSIsInVuZGVmaW5lZCIsIkZpbHRlciIsIkZpbHRlck9wZXJhdG9yIiwiRVEiLCJvQWN0aXZlRmlsdGVyIiwiZmlsdGVycyIsImFuZCIsInB1c2giLCJnZXRBY3RpdmVDb250ZXh0UGF0aCIsIm9Db250cm9sbGVyIiwic1BhZ2VFbnRpdHlOYW1lIiwib0ZpbHRlciIsIm9MaXN0QmluZGluZyIsImdldFZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldE1vZGVsIiwiYmluZExpc3QiLCJyZXF1ZXN0Q29udGV4dHMiLCJvQ29udGV4dHMiLCJsZW5ndGgiLCJnZXRQYXRoIiwiZ2V0QWN0aXZlQ29udGV4dEluc3RhbmNlcyIsIm9Db250ZXh0Iiwib0VudGl0eVNldCIsImFBY3RpdmVDb250ZXh0cHJvbWlzZXMiLCJhUGFnZXMiLCJzTWV0YVBhdGgiLCJnZXRNZXRhTW9kZWwiLCJnZXRNZXRhUGF0aCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJhTWV0YVBhdGhBcnJheSIsInNwbGl0Iiwic0N1cnJlbnRIYXNoTm9QYXJhbXMiLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiZ2V0SGFzaCIsImFDdXJyZW50SGFzaEFycmF5Iiwib1BhZ2VNYXAiLCJhUGFnZUhhc2hBcnJheSIsImZvckVhY2giLCJzUGFnZUhhc2giLCJhS2V5VmFsdWVzIiwic1BhZ2VIYXNoTmFtZSIsImkiLCJzS2V5QXNzaWdubWVudCIsImFQYXJ0cyIsInNLZXlWYWx1ZSIsIm9NZXRhTW9kZWwiLCJhVGVjaG5pY2FsS2V5cyIsImdldE9iamVjdCIsImpvaW4iLCJsYXN0SW5kZXhPZiIsImRlY29kZVVSSUNvbXBvbmVudCIsIm9QYWdlRW50aXR5U2V0Iiwic05hdmlnYXRpb25QYXRoIiwib1BhZ2VJbmZvIiwic1BhZ2VFbnRpdHlTZXROYW1lIiwiJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmciLCJwYWdlRW50aXR5TmFtZSIsImdldEFjdGl2ZUNvbnRleHRQYXRocyIsInNSb290RW50aXR5TmFtZSIsInN1YnN0ciIsIm9QYWdlQ29udGV4dCIsIlByb21pc2UiLCJhbGwiLCJhRGF0YSIsImFBY3RpdmVDb250ZXh0UGF0aHMiLCJzQWN0aXZlQ29udGV4dFBhdGgiLCJzTmF2aWdhdGlvUHJvcGVydHkiLCJzRW50aXR5U2V0TmFtZSIsInZhbHVlcyIsInJlcGxhY2UiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImluZm8iLCJyZXNvbHZlIiwiZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMiLCJvUHJvbWlzZSIsImFTZW1hbnRpY0tleXMiLCJvTW9kZWwiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIlNlbWFudGljS2V5SGVscGVyIiwiZ2V0U2VtYW50aWNLZXlzIiwib1ZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJnZXRTaGFyZVVybCIsImJJc0VkaXRhYmxlIiwiYklzU3RpY2t5U3VwcG9ydGVkIiwic1NoYXJlVXJsIiwic0hhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwib3JpZ2luIiwicGF0aG5hbWUiLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwic0ZMUFVybCIsInNFcnJvciIsImVycm9yIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRKYW1VcmwiLCJiSXNFZGl0TW9kZSIsInNKYW1VcmwiLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwiU2hhcmVFeHRlbnNpb25PdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwiYmFzZSIsIm9VSU1vZGVsIiwiZ2V0UHJvcGVydHkiLCJnZXRDb250cm9sbGVyIiwib1BhZ2VUaXRsZUluZm8iLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJvRGF0YSIsInNUaXRsZSIsInRpdGxlIiwic09iamVjdFN1YnRpdGxlIiwic3VidGl0bGUiLCJ0b1N0cmluZyIsInRpbGUiLCJlbWFpbCIsImphbSIsInVybCIsImNvbGxhYm9yYXRpb25JbmZvTW9kZWwiLCJzZXRQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFNlbWFudGljS2V5SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NlbWFudGljS2V5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBIYXNoQ2hhbmdlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9IYXNoQ2hhbmdlclwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5sZXQgYkdsb2JhbElzU3RpY2t5U3VwcG9ydGVkOiBib29sZWFuO1xuXG5mdW5jdGlvbiBjcmVhdGVGaWx0ZXJUb0ZldGNoQWN0aXZlQ29udGV4dChtS2V5VmFsdWVzOiBhbnksIGJJc0FjdGl2ZUVudGl0eURlZmluZWQ6IGFueSkge1xuXHRjb25zdCBhS2V5cyA9IE9iamVjdC5rZXlzKG1LZXlWYWx1ZXMpO1xuXG5cdGNvbnN0IGFGaWx0ZXJzID0gYUtleXMubWFwKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRjb25zdCBzVmFsdWUgPSBtS2V5VmFsdWVzW3NLZXldO1xuXHRcdGlmIChzVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIG5ldyBGaWx0ZXIoc0tleSwgRmlsdGVyT3BlcmF0b3IuRVEsIHNWYWx1ZSk7XG5cdFx0fVxuXHR9KTtcblxuXHRpZiAoYklzQWN0aXZlRW50aXR5RGVmaW5lZCkge1xuXHRcdGNvbnN0IG9BY3RpdmVGaWx0ZXIgPSBuZXcgRmlsdGVyKHtcblx0XHRcdGZpbHRlcnM6IFtuZXcgRmlsdGVyKFwiU2libGluZ0VudGl0eS9Jc0FjdGl2ZUVudGl0eVwiLCBGaWx0ZXJPcGVyYXRvci5FUSwgdHJ1ZSldLFxuXHRcdFx0YW5kOiBmYWxzZVxuXHRcdH0pO1xuXG5cdFx0YUZpbHRlcnMucHVzaChvQWN0aXZlRmlsdGVyKTtcblx0fVxuXG5cdHJldHVybiBuZXcgRmlsdGVyKGFGaWx0ZXJzIGFzIGFueSwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBnZXRBY3RpdmVDb250ZXh0UGF0aChvQ29udHJvbGxlcjogYW55LCBzUGFnZUVudGl0eU5hbWU6IGFueSwgb0ZpbHRlcjogYW55KSB7XG5cdGNvbnN0IG9MaXN0QmluZGluZyA9IG9Db250cm9sbGVyXG5cdFx0LmdldFZpZXcoKVxuXHRcdC5nZXRCaW5kaW5nQ29udGV4dCgpXG5cdFx0LmdldE1vZGVsKClcblx0XHQuYmluZExpc3QoYC8ke3NQYWdlRW50aXR5TmFtZX1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb0ZpbHRlciwgeyBcIiQkZ3JvdXBJZFwiOiBcIiRhdXRvLkhlcm9lc1wiIH0pO1xuXHRyZXR1cm4gb0xpc3RCaW5kaW5nLnJlcXVlc3RDb250ZXh0cygwLCAyKS50aGVuKGZ1bmN0aW9uIChvQ29udGV4dHM6IGFueSkge1xuXHRcdGlmIChvQ29udGV4dHMgJiYgb0NvbnRleHRzLmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIG9Db250ZXh0c1swXS5nZXRQYXRoKCk7XG5cdFx0fVxuXHR9KTtcbn1cbmZ1bmN0aW9uIGdldEFjdGl2ZUNvbnRleHRJbnN0YW5jZXMob0NvbnRleHQ6IGFueSwgb0NvbnRyb2xsZXI6IGFueSwgb0VudGl0eVNldDogYW55KSB7XG5cdGNvbnN0IGFBY3RpdmVDb250ZXh0cHJvbWlzZXM6IGFueVtdID0gW107XG5cdGNvbnN0IGFQYWdlczogYW55W10gPSBbXTtcblx0bGV0IHNNZXRhUGF0aCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgob0NvbnRleHQuZ2V0UGF0aCgpKTtcblx0aWYgKHNNZXRhUGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdHNNZXRhUGF0aCA9IHNNZXRhUGF0aC5zdWJzdHJpbmcoMSk7XG5cdH1cblx0Y29uc3QgYU1ldGFQYXRoQXJyYXkgPSBzTWV0YVBhdGguc3BsaXQoXCIvXCIpO1xuXHRjb25zdCBzQ3VycmVudEhhc2hOb1BhcmFtcyA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpLnNwbGl0KFwiP1wiKVswXTtcblx0Y29uc3QgYUN1cnJlbnRIYXNoQXJyYXkgPSBzQ3VycmVudEhhc2hOb1BhcmFtcy5zcGxpdChcIi9cIik7XG5cblx0Ly8gb1BhZ2VNYXAgLSBjcmVhdGluZyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBtYXAgb2YgbWV0YXBhdGggbmFtZSBhbmQgaXQncyB0ZWNobmljYWwgZGV0YWlsc1xuXHQvLyB3aGljaCBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBmaWx0ZXIgdG8gZmV0Y2ggdGhlIHJlbGF2YW50L2NvcnJlY3QgYWN0aXZlIGNvbnRleHRcblx0Ly8gRXhhbXBsZToge1NhbGVzT3JkZXJNYW5hZ2U6e3RlY2huaWNhbElEOnRlY2huaWNhbElEVmFsdWV9LCBfSXRlbTp7dGVjaG5pY2FsSUQ6dGVjaG5pY2FsSURWYWx1ZX19IGV0Yy4sXG5cdGNvbnN0IG9QYWdlTWFwOiBhbnkgPSB7fTtcblx0Y29uc3QgYVBhZ2VIYXNoQXJyYXk6IGFueVtdID0gW107XG5cdGFDdXJyZW50SGFzaEFycmF5LmZvckVhY2goZnVuY3Rpb24gKHNQYWdlSGFzaDogYW55KSB7XG5cdFx0Y29uc3QgYUtleVZhbHVlcyA9IHNQYWdlSGFzaC5zdWJzdHJpbmcoc1BhZ2VIYXNoLmluZGV4T2YoXCIoXCIpICsgMSwgc1BhZ2VIYXNoLmxlbmd0aCAtIDEpLnNwbGl0KFwiLFwiKTtcblx0XHRjb25zdCBtS2V5VmFsdWVzOiBhbnkgPSB7fTtcblx0XHRjb25zdCBzUGFnZUhhc2hOYW1lID0gc1BhZ2VIYXNoLnNwbGl0KFwiKFwiKVswXTtcblx0XHRvUGFnZU1hcFtzUGFnZUhhc2hOYW1lXSA9IHt9O1xuXHRcdGFQYWdlSGFzaEFycmF5LnB1c2goc1BhZ2VIYXNoTmFtZSk7XG5cdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoTmFtZV1bXCJiSXNBY3RpdmVFbnRpdHlEZWZpbmVkXCJdID0gdHJ1ZTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFLZXlWYWx1ZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHNLZXlBc3NpZ25tZW50ID0gYUtleVZhbHVlc1tpXTtcblx0XHRcdGNvbnN0IGFQYXJ0cyA9IHNLZXlBc3NpZ25tZW50LnNwbGl0KFwiPVwiKTtcblx0XHRcdGxldCBzS2V5VmFsdWUgPSBhUGFydHNbMV07XG5cdFx0XHRsZXQgc0tleSA9IGFQYXJ0c1swXTtcblx0XHRcdC8vIEluIGNhc2UgaWYgb25seSBvbmUgdGVjaG5pY2FsIGtleSBpcyBkZWZpbmVkIHRoZW4gdGhlIHVybCBqdXN0IGNvbnRhaW5zIHRoZSB0ZWNobmljYWxJRFZhbHVlIGJ1dCBub3QgdGhlIHRlY2huaWNhbElEXG5cdFx0XHQvLyBFeGFtcGxlOiBTYWxlc09yZGVyTWFuYWdlKElEPTExMTExMTI5LWFhYWEtYmJiYi1jY2NjLWRkZGRlZWVlZmZmZixJc0FjdGl2ZUVudGl0eT1mYWxzZSkvX0l0ZW0oMTExMTExMjktYWFhYS1iYmJiLWNjY2MtZGRkZGVlZWVmZmZmKVxuXHRcdFx0Ly8gSW4gYWJvdmUgZXhhbXBsZSBTYWxlc09yZGVySXRlbSBoYXMgb25seSBvbmUgdGVjaG5pY2FsIGtleSBkZWZpbmVkLCBoZW5jZSB0ZWNobmljYWxJRCBpbmZvIGlzIG5vdCBwcmVzZW50IGluIHRoZSB1cmxcblx0XHRcdC8vIEhlbmNlIGluIHN1Y2ggY2FzZXMgd2UgZ2V0IHRlY2huaWNhbCBrZXkgYW5kIHVzZSB0aGVtIHRvIGZldGNoIGFjdGl2ZSBjb250ZXh0XG5cdFx0XHRpZiAoc0tleUFzc2lnbm1lbnQuaW5kZXhPZihcIj1cIikgPT09IC0xKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0XHRjb25zdCBhVGVjaG5pY2FsS2V5cyA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHthUGFnZUhhc2hBcnJheS5qb2luKFwiL1wiKX0vJFR5cGUvJEtleWApO1xuXHRcdFx0XHRzS2V5VmFsdWUgPSBhUGFydHNbMF07XG5cdFx0XHRcdHNLZXkgPSBhVGVjaG5pY2FsS2V5c1swXTtcblx0XHRcdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoLnNwbGl0KFwiKFwiKVswXV1bXCJiSXNBY3RpdmVFbnRpdHlEZWZpbmVkXCJdID0gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzS2V5ICE9PSBcIklzQWN0aXZlRW50aXR5XCIpIHtcblx0XHRcdFx0aWYgKHNLZXlWYWx1ZS5pbmRleE9mKFwiJ1wiKSA9PT0gMCAmJiBzS2V5VmFsdWUubGFzdEluZGV4T2YoXCInXCIpID09PSBzS2V5VmFsdWUubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdC8vIFJlbW92ZSB0aGUgcXVvdGVzIGZyb20gdGhlIHZhbHVlIGFuZCBkZWNvZGUgc3BlY2lhbCBjaGFyc1xuXHRcdFx0XHRcdHNLZXlWYWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChzS2V5VmFsdWUuc3Vic3RyaW5nKDEsIHNLZXlWYWx1ZS5sZW5ndGggLSAxKSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0bUtleVZhbHVlc1tzS2V5XSA9IHNLZXlWYWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0b1BhZ2VNYXBbc1BhZ2VIYXNoTmFtZV0ubUtleVZhbHVlcyA9IG1LZXlWYWx1ZXM7XG5cdH0pO1xuXG5cdGxldCBvUGFnZUVudGl0eVNldCA9IG9FbnRpdHlTZXQ7XG5cdGFNZXRhUGF0aEFycmF5LmZvckVhY2goZnVuY3Rpb24gKHNOYXZpZ2F0aW9uUGF0aDogYW55KSB7XG5cdFx0Y29uc3Qgb1BhZ2VJbmZvOiBhbnkgPSB7fTtcblx0XHRjb25zdCBzUGFnZUVudGl0eVNldE5hbWUgPSBvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZyAmJiBvUGFnZUVudGl0eVNldC4kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tzTmF2aWdhdGlvblBhdGhdO1xuXHRcdGlmIChzUGFnZUVudGl0eVNldE5hbWUpIHtcblx0XHRcdG9QYWdlSW5mby5wYWdlRW50aXR5TmFtZSA9IG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW3NOYXZpZ2F0aW9uUGF0aF07XG5cdFx0XHRvUGFnZUVudGl0eVNldCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KGAvJHtzUGFnZUVudGl0eVNldE5hbWV9YCkgfHwgb0VudGl0eVNldDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1BhZ2VJbmZvLnBhZ2VFbnRpdHlOYW1lID0gc05hdmlnYXRpb25QYXRoO1xuXHRcdH1cblx0XHRvUGFnZUluZm8ubUtleVZhbHVlcyA9IG9QYWdlTWFwW3NOYXZpZ2F0aW9uUGF0aF0ubUtleVZhbHVlcztcblx0XHRvUGFnZUluZm8uYklzQWN0aXZlRW50aXR5RGVmaW5lZCA9IG9QYWdlTWFwW3NOYXZpZ2F0aW9uUGF0aF0uYklzQWN0aXZlRW50aXR5RGVmaW5lZDtcblx0XHRhUGFnZXMucHVzaChvUGFnZUluZm8pO1xuXHR9KTtcblxuXHRhUGFnZXMuZm9yRWFjaChmdW5jdGlvbiAob1BhZ2VJbmZvOiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVyID0gY3JlYXRlRmlsdGVyVG9GZXRjaEFjdGl2ZUNvbnRleHQob1BhZ2VJbmZvLm1LZXlWYWx1ZXMsIG9QYWdlSW5mby5iSXNBY3RpdmVFbnRpdHlEZWZpbmVkKTtcblx0XHRhQWN0aXZlQ29udGV4dHByb21pc2VzLnB1c2goZ2V0QWN0aXZlQ29udGV4dFBhdGgob0NvbnRyb2xsZXIsIG9QYWdlSW5mby5wYWdlRW50aXR5TmFtZSwgb0ZpbHRlcikpO1xuXHR9KTtcblxuXHRyZXR1cm4gYUFjdGl2ZUNvbnRleHRwcm9taXNlcztcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZmV0Y2ggYWN0aXZlIGNvbnRleHQgcGF0aCdzLlxuICpcbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgUGFnZSBDb250ZXh0XG4gKiBAcGFyYW0gb0NvbnRyb2xsZXJcbiAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggaXMgcmVzb2x2ZWQgb25jZSB0aGUgYWN0aXZlIGNvbnRleHQncyBhcmUgZmV0Y2hlZFxuICovXG5mdW5jdGlvbiBnZXRBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQ6IGFueSwgb0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBzQ3VycmVudEhhc2hOb1BhcmFtcyA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpLnNwbGl0KFwiP1wiKVswXTtcblx0bGV0IHNSb290RW50aXR5TmFtZSA9IHNDdXJyZW50SGFzaE5vUGFyYW1zICYmIHNDdXJyZW50SGFzaE5vUGFyYW1zLnN1YnN0cigwLCBzQ3VycmVudEhhc2hOb1BhcmFtcy5pbmRleE9mKFwiKFwiKSk7XG5cdGlmIChzUm9vdEVudGl0eU5hbWUuaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRzUm9vdEVudGl0eU5hbWUgPSBzUm9vdEVudGl0eU5hbWUuc3Vic3RyaW5nKDEpO1xuXHR9XG5cdGNvbnN0IG9FbnRpdHlTZXQgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChgLyR7c1Jvb3RFbnRpdHlOYW1lfWApO1xuXHRjb25zdCBvUGFnZUNvbnRleHQgPSBvQ29udGV4dDtcblx0Y29uc3QgYUFjdGl2ZUNvbnRleHRwcm9taXNlcyA9IGdldEFjdGl2ZUNvbnRleHRJbnN0YW5jZXMob0NvbnRleHQsIG9Db250cm9sbGVyLCBvRW50aXR5U2V0KTtcblx0aWYgKGFBY3RpdmVDb250ZXh0cHJvbWlzZXMubGVuZ3RoID4gMCkge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChhQWN0aXZlQ29udGV4dHByb21pc2VzKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKGFEYXRhOiBhbnlbXSkge1xuXHRcdFx0XHRjb25zdCBhQWN0aXZlQ29udGV4dFBhdGhzID0gW107XG5cdFx0XHRcdGxldCBvUGFnZUVudGl0eVNldCA9IG9FbnRpdHlTZXQ7XG5cdFx0XHRcdGlmIChhRGF0YVswXS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChhRGF0YVswXS5zdWJzdHJpbmcoMSkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChhRGF0YVswXSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gSW4gdGhlIGFjdGl2ZSBjb250ZXh0IHBhdGhzIGlkZW50aWZ5IGFuZCByZXBsYWNlIHRoZSBlbnRpdHlTZXQgTmFtZSB3aXRoIGNvcnJlc3BvbmRpbmcgbmF2aWdhdGlvbiBwcm9wZXJ0eSBuYW1lXG5cdFx0XHRcdC8vIFJlcXVpcmVkIHRvIGZvcm0gdGhlIHVybCBwb2ludGluZyB0byBhY3RpdmUgY29udGV4dFxuXHRcdFx0XHQvLyBFeGFtcGxlIDogU2FsZXNPcmRlckl0ZW0gLS0+IF9JdGVtLCBNYXRlcmlhbERldGFpbHMgLS0+IF9NYXRlcmlhbERldGFpbHMgZXRjLixcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDE7IGkgPCBhRGF0YS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGxldCBzQWN0aXZlQ29udGV4dFBhdGggPSBhRGF0YVtpXTtcblx0XHRcdFx0XHRsZXQgc05hdmlnYXRpb1Byb3BlcnR5ID0gXCJcIjtcblx0XHRcdFx0XHRsZXQgc0VudGl0eVNldE5hbWUgPSBzQWN0aXZlQ29udGV4dFBhdGggJiYgc0FjdGl2ZUNvbnRleHRQYXRoLnN1YnN0cigwLCBzQWN0aXZlQ29udGV4dFBhdGguaW5kZXhPZihcIihcIikpO1xuXHRcdFx0XHRcdGlmIChzRW50aXR5U2V0TmFtZS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0XHRcdFx0c0VudGl0eVNldE5hbWUgPSBzRW50aXR5U2V0TmFtZS5zdWJzdHJpbmcoMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChzQWN0aXZlQ29udGV4dFBhdGguaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdFx0XHRcdHNBY3RpdmVDb250ZXh0UGF0aCA9IHNBY3RpdmVDb250ZXh0UGF0aC5zdWJzdHJpbmcoMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNOYXZpZ2F0aW9Qcm9wZXJ0eSA9IE9iamVjdC5rZXlzKG9QYWdlRW50aXR5U2V0LiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nKVtcblx0XHRcdFx0XHRcdE9iamVjdC52YWx1ZXMob1BhZ2VFbnRpdHlTZXQuJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcpLmluZGV4T2Yoc0VudGl0eVNldE5hbWUpXG5cdFx0XHRcdFx0XTtcblx0XHRcdFx0XHRpZiAoc05hdmlnYXRpb1Byb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRhQWN0aXZlQ29udGV4dFBhdGhzLnB1c2goc0FjdGl2ZUNvbnRleHRQYXRoLnJlcGxhY2Uoc0VudGl0eVNldE5hbWUsIHNOYXZpZ2F0aW9Qcm9wZXJ0eSkpO1xuXHRcdFx0XHRcdFx0b1BhZ2VFbnRpdHlTZXQgPSBvUGFnZUNvbnRleHQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKS5nZXRPYmplY3QoYC8ke3NFbnRpdHlTZXROYW1lfWApIHx8IG9FbnRpdHlTZXQ7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGFBY3RpdmVDb250ZXh0UGF0aHMucHVzaChzQWN0aXZlQ29udGV4dFBhdGgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYUFjdGl2ZUNvbnRleHRQYXRocztcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5pbmZvKFwiRmFpbGVkIHRvIHJldHJpZXZlIG9uZSBvciBtb3JlIGFjdGl2ZSBjb250ZXh0IHBhdGgnc1wiLCBvRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHR9XG59XG5mdW5jdGlvbiBmZXRjaEFjdGl2ZUNvbnRleHRQYXRocyhvQ29udGV4dDogYW55LCBvQ29udHJvbGxlcjogYW55KSB7XG5cdGxldCBvUHJvbWlzZSwgYVNlbWFudGljS2V5cztcblx0Y29uc3Qgc0N1cnJlbnRIYXNoTm9QYXJhbXMgPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKS5zcGxpdChcIj9cIilbMF07XG5cdGlmIChvQ29udGV4dCkge1xuXHRcdGNvbnN0IG9Nb2RlbCA9IG9Db250ZXh0LmdldE1vZGVsKCk7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKTtcblx0XHRiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQob01ldGFNb2RlbCk7XG5cdFx0bGV0IHNSb290RW50aXR5TmFtZSA9IHNDdXJyZW50SGFzaE5vUGFyYW1zICYmIHNDdXJyZW50SGFzaE5vUGFyYW1zLnN1YnN0cigwLCBzQ3VycmVudEhhc2hOb1BhcmFtcy5pbmRleE9mKFwiKFwiKSk7XG5cdFx0aWYgKHNSb290RW50aXR5TmFtZS5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0c1Jvb3RFbnRpdHlOYW1lID0gc1Jvb3RFbnRpdHlOYW1lLnN1YnN0cmluZygxKTtcblx0XHR9XG5cdFx0YVNlbWFudGljS2V5cyA9IFNlbWFudGljS2V5SGVscGVyLmdldFNlbWFudGljS2V5cyhvTWV0YU1vZGVsLCBzUm9vdEVudGl0eU5hbWUpO1xuXHR9XG5cdC8vIEZldGNoIGFjdGl2ZSBjb250ZXh0IGRldGFpbHMgaW5jYXNlIG9mIGJlbG93IHNjZW5hcmlvJ3Mod2hlcmUgcGFnZSBpcyBub3Qgc3RpY2t5IHN1cHBvcnRlZCh3ZSBkbyBub3QgaGF2ZSBkcmFmdCBpbnN0YW5jZSkpXG5cdC8vIDEuIEluIGNhc2Ugb2YgZHJhZnQgZW5hYmxlZCBPYmplY3QgcGFnZSB3aGVyZSBzZW1hbnRpYyBrZXkgYmFzZWQgVVJMIGlzIG5vdCBwb3NzaWJsZShsaWtlIHNlbWFudGljIGtleXMgYXJlIG5vdCBtb2RlbGVkIGluIHRoZSBlbnRpdHkgc2V0KVxuXHQvLyAyLiBJbiBjYXNlIG9mIGRyYWZ0IGVuYWJsZWQgU3ViIE9iamVjdCBQYWdlcyAod2hlcmUgc2VtYW50aWMgYm9va21hcmtpbmcgaXMgbm90IHN1cHBvcnRlZClcblx0Y29uc3Qgb1ZpZXdEYXRhID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpLmdldFZpZXdEYXRhKCk7XG5cdGlmIChvQ29udGV4dCAmJiAhYkdsb2JhbElzU3RpY2t5U3VwcG9ydGVkICYmICgob1ZpZXdEYXRhLnZpZXdMZXZlbCA9PT0gMSAmJiAhYVNlbWFudGljS2V5cykgfHwgb1ZpZXdEYXRhLnZpZXdMZXZlbCA+PSAyKSkge1xuXHRcdG9Qcm9taXNlID0gZ2V0QWN0aXZlQ29udGV4dFBhdGhzKG9Db250ZXh0LCBvQ29udHJvbGxlcik7XG5cdFx0cmV0dXJuIG9Qcm9taXNlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0fVxufVxuXG4vLyAvKipcbi8vICAqIEdldCBzaGFyZSBVUkwuXG4vLyAgKiBAcGFyYW0gYklzRWRpdGFibGVcbi8vICAqIEBwYXJhbSBiSXNTdGlja3lTdXBwb3J0ZWRcbi8vICAqIEBwYXJhbSBhQWN0aXZlQ29udGV4dFBhdGhzXG4vLyAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc2hhcmUgVVJMXG4vLyAgKiBAcHJvdGVjdGVkXG4vLyAgKiBAc3RhdGljXG4vLyAgKi9cbmZ1bmN0aW9uIGdldFNoYXJlVXJsKGJJc0VkaXRhYmxlOiBhbnksIGJJc1N0aWNreVN1cHBvcnRlZDogYW55LCBhQWN0aXZlQ29udGV4dFBhdGhzOiBhbnkpIHtcblx0bGV0IHNTaGFyZVVybDtcblx0Y29uc3Qgc0hhc2ggPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0Y29uc3Qgc0Jhc2VQYXRoID0gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoXG5cdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHQ6IFwiXCI7XG5cdGlmIChiSXNFZGl0YWJsZSAmJiAhYklzU3RpY2t5U3VwcG9ydGVkICYmIGFBY3RpdmVDb250ZXh0UGF0aHMpIHtcblx0XHRzU2hhcmVVcmwgPSBzQmFzZVBhdGggKyBhQWN0aXZlQ29udGV4dFBhdGhzLmpvaW4oXCIvXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHNTaGFyZVVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0fVxuXHRyZXR1cm4gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIHNTaGFyZVVybDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuXG5mdW5jdGlvbiBnZXRKYW1VcmwoYklzRWRpdE1vZGU6IGJvb2xlYW4sIGJJc1N0aWNreVN1cHBvcnRlZDogYW55LCBhQWN0aXZlQ29udGV4dFBhdGhzOiBhbnkpIHtcblx0bGV0IHNKYW1Vcmw6IHN0cmluZztcblx0Y29uc3Qgc0hhc2ggPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpLmdldEhhc2goKTtcblx0Y29uc3Qgc0Jhc2VQYXRoID0gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoXG5cdFx0PyAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIilcblx0XHQ6IFwiXCI7XG5cdGlmIChiSXNFZGl0TW9kZSAmJiAhYklzU3RpY2t5U3VwcG9ydGVkICYmIGFBY3RpdmVDb250ZXh0UGF0aHMpIHtcblx0XHRzSmFtVXJsID0gc0Jhc2VQYXRoICsgYUFjdGl2ZUNvbnRleHRQYXRocy5qb2luKFwiL1wiKTtcblx0fSBlbHNlIHtcblx0XHRzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHR9XG5cdC8vIGluIGNhc2Ugd2UgYXJlIGluIGNGTFAgc2NlbmFyaW8sIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nXG5cdC8vIGluc2lkZSBhbiBpZnJhbWUsIGFuZCB0aGVyZSBmb3Igd2UgbmVlZCB0byBnZXQgdGhlIGNGTFAgVVJMXG5cdC8vIGFuZCBub3QgJ2RvY3VtZW50LlVSTCcgdGhhdCByZXByZXNlbnRzIHRoZSBpZnJhbWUgVVJMXG5cdGlmIChzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyICYmIHNhcC51c2hlbGwuQ29udGFpbmVyLnJ1bm5pbmdJbklmcmFtZSAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUoKSkge1xuXHRcdHNhcC51c2hlbGwuQ29udGFpbmVyLmdldEZMUFVybCh0cnVlKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNVcmw6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gc1VybC5zdWJzdHIoMCwgc1VybC5pbmRleE9mKFwiI1wiKSkgKyBzSmFtVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiQ291bGQgbm90IHJldHJpZXZlIGNGTFAgVVJMIGZvciB0aGUgc2hhcmluZyBkaWFsb2cgKGRpYWxvZyB3aWxsIG5vdCBiZSBvcGVuZWQpXCIsIHNFcnJvcik7XG5cdFx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsKTtcblx0fVxufVxuXG5jb25zdCBTaGFyZUV4dGVuc2lvbk92ZXJyaWRlID0ge1xuXHRhZGFwdFNoYXJlTWV0YWRhdGE6IGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBTaGFyZSwgb1NoYXJlTWV0YWRhdGE6IGFueSkge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdGNvbnN0IG9VSU1vZGVsID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRNb2RlbChcInVpXCIpO1xuXHRcdGNvbnN0IGJJc0VkaXRhYmxlID0gb1VJTW9kZWwuZ2V0UHJvcGVydHkoXCIvaXNFZGl0YWJsZVwiKTtcblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBhQWN0aXZlQ29udGV4dFBhdGhzID0gYXdhaXQgZmV0Y2hBY3RpdmVDb250ZXh0UGF0aHMob0NvbnRleHQsIHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpKTtcblx0XHRcdGNvbnN0IG9QYWdlVGl0bGVJbmZvID0gKHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHRcdGNvbnN0IG9EYXRhID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuXHRcdFx0XHRnZXRKYW1VcmwoYklzRWRpdGFibGUsIGJHbG9iYWxJc1N0aWNreVN1cHBvcnRlZCwgYUFjdGl2ZUNvbnRleHRQYXRocyksXG5cdFx0XHRcdGdldFNoYXJlVXJsKGJJc0VkaXRhYmxlLCBiR2xvYmFsSXNTdGlja3lTdXBwb3J0ZWQsIGFBY3RpdmVDb250ZXh0UGF0aHMpLFxuXHRcdFx0XHRnZXRTaGFyZUVtYWlsVXJsKClcblx0XHRcdF0pO1xuXG5cdFx0XHRsZXQgc1RpdGxlID0gb1BhZ2VUaXRsZUluZm8udGl0bGU7XG5cdFx0XHRjb25zdCBzT2JqZWN0U3VidGl0bGUgPSBvUGFnZVRpdGxlSW5mby5zdWJ0aXRsZSA/IG9QYWdlVGl0bGVJbmZvLnN1YnRpdGxlLnRvU3RyaW5nKCkgOiBcIlwiO1xuXHRcdFx0aWYgKHNPYmplY3RTdWJ0aXRsZSkge1xuXHRcdFx0XHRzVGl0bGUgPSBgJHtzVGl0bGV9IC0gJHtzT2JqZWN0U3VidGl0bGV9YDtcblx0XHRcdH1cblx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpbGUgPSB7XG5cdFx0XHRcdHRpdGxlOiBvUGFnZVRpdGxlSW5mby50aXRsZSxcblx0XHRcdFx0c3VidGl0bGU6IHNPYmplY3RTdWJ0aXRsZVxuXHRcdFx0fTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnRpdGxlID0gc1RpdGxlO1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBzVGl0bGU7XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS5qYW0udXJsID0gb0RhdGFbMF07XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBvRGF0YVsxXTtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IG9EYXRhWzJdO1xuXHRcdFx0Ly8gTVMgVGVhbXMgY29sbGFib3JhdGlvbiBkb2VzIG5vdCB3YW50IHRvIGFsbG93IGZ1cnRoZXIgY2hhbmdlcyB0byB0aGUgVVJMXG5cdFx0XHQvLyBzbyB1cGRhdGUgY29sbG9ib3JhdGlvbkluZm8gbW9kZWwgYXQgTFIgb3ZlcnJpZGUgdG8gaWdub3JlIGZ1cnRoZXIgZXh0ZW5zaW9uIGNoYW5nZXMgYXQgbXVsdGlwbGUgbGV2ZWxzXG5cdFx0XHRjb25zdCBjb2xsYWJvcmF0aW9uSW5mb01vZGVsOiBKU09OTW9kZWwgPSB0aGlzLmJhc2UuZ2V0VmlldygpLmdldE1vZGVsKFwiY29sbGFib3JhdGlvbkluZm9cIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi91cmxcIiwgb1NoYXJlTWV0YWRhdGEudXJsKTtcblx0XHRcdGNvbGxhYm9yYXRpb25JbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvYXBwVGl0bGVcIiwgb1NoYXJlTWV0YWRhdGEudGl0bGUpO1xuXHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9zdWJUaXRsZVwiLCBzT2JqZWN0U3VidGl0bGUpO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9TaGFyZU1ldGFkYXRhO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaGFyZUV4dGVuc2lvbk92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBa2pCTyxnQkFBZ0JBLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQjtJQUNyQyxJQUFJO01BQ0gsSUFBSUMsTUFBTSxHQUFHRixJQUFJLEVBQWpCO0lBQ0EsQ0FGRCxDQUVFLE9BQU1HLENBQU4sRUFBUztNQUNWLE9BQU9GLE9BQU8sQ0FBQ0UsQ0FBRCxDQUFkO0lBQ0E7O0lBQ0QsSUFBSUQsTUFBTSxJQUFJQSxNQUFNLENBQUNFLElBQXJCLEVBQTJCO01BQzFCLE9BQU9GLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLEtBQUssQ0FBakIsRUFBb0JILE9BQXBCLENBQVA7SUFDQTs7SUFDRCxPQUFPQyxNQUFQO0VBQ0E7O0VBbGpCRCxJQUFJRyx3QkFBSjs7RUFFQSxTQUFTQyxnQ0FBVCxDQUEwQ0MsVUFBMUMsRUFBMkRDLHNCQUEzRCxFQUF3RjtJQUN2RixJQUFNQyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixVQUFaLENBQWQ7SUFFQSxJQUFNSyxRQUFRLEdBQUdILEtBQUssQ0FBQ0ksR0FBTixDQUFVLFVBQVVDLElBQVYsRUFBd0I7TUFDbEQsSUFBTUMsTUFBTSxHQUFHUixVQUFVLENBQUNPLElBQUQsQ0FBekI7O01BQ0EsSUFBSUMsTUFBTSxLQUFLQyxTQUFmLEVBQTBCO1FBQ3pCLE9BQU8sSUFB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
|
|
@@ -6,6 +6,7 @@ import type ObjectPageController from "sap/fe/templates/ObjectPage/ObjectPageCon
|
|
|
6
6
|
import HashChanger from "sap/ui/core/routing/HashChanger";
|
|
7
7
|
import Filter from "sap/ui/model/Filter";
|
|
8
8
|
import FilterOperator from "sap/ui/model/FilterOperator";
|
|
9
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
9
10
|
|
|
10
11
|
let bGlobalIsStickySupported: boolean;
|
|
11
12
|
|
|
@@ -219,7 +220,7 @@ function getShareUrl(bIsEditable: any, bIsStickySupported: any, aActiveContextPa
|
|
|
219
220
|
} else {
|
|
220
221
|
sShareUrl = sHash ? sBasePath + sHash : window.location.hash;
|
|
221
222
|
}
|
|
222
|
-
return sShareUrl;
|
|
223
|
+
return window.location.origin + window.location.pathname + sShareUrl;
|
|
223
224
|
}
|
|
224
225
|
function getShareEmailUrl() {
|
|
225
226
|
const oUShellContainer = sap.ushell && sap.ushell.Container;
|
|
@@ -293,6 +294,12 @@ const ShareExtensionOverride = {
|
|
|
293
294
|
oShareMetadata.jam.url = oData[0];
|
|
294
295
|
oShareMetadata.url = oData[1];
|
|
295
296
|
oShareMetadata.email.url = oData[2];
|
|
297
|
+
// MS Teams collaboration does not want to allow further changes to the URL
|
|
298
|
+
// so update colloborationInfo model at LR override to ignore further extension changes at multiple levels
|
|
299
|
+
const collaborationInfoModel: JSONModel = this.base.getView().getModel("collaborationInfo") as JSONModel;
|
|
300
|
+
collaborationInfoModel.setProperty("/url", oShareMetadata.url);
|
|
301
|
+
collaborationInfoModel.setProperty("/appTitle", oShareMetadata.title);
|
|
302
|
+
collaborationInfoModel.setProperty("/subTitle", sObjectSubtitle);
|
|
296
303
|
} catch (error: any) {
|
|
297
304
|
Log.error(error);
|
|
298
305
|
}
|
|
@@ -39,6 +39,12 @@ sap.ui.define(["sap/fe/core/helpers/KeepAliveHelper", "sap/fe/core/library"], fu
|
|
|
39
39
|
if (bControlVM) {
|
|
40
40
|
aStateControls.push(oTable.getVariant());
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
aStateControls.push(oTable);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
oController._findCharts().forEach(function (oChart) {
|
|
47
|
+
aStateControls.push(oChart);
|
|
42
48
|
});
|
|
43
49
|
|
|
44
50
|
aStateControls.push(oView.byId("fe::ObjectPage"));
|
|
@@ -72,4 +78,4 @@ sap.ui.define(["sap/fe/core/helpers/KeepAliveHelper", "sap/fe/core/library"], fu
|
|
|
72
78
|
};
|
|
73
79
|
return ViewStateExtensionOverride;
|
|
74
80
|
}, false);
|
|
75
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYXJpYW50TWFuYWdlbWVudCIsIkNvcmVMaWJyYXJ5IiwiVmlld1N0YXRlRXh0ZW5zaW9uT3ZlcnJpZGUiLCJhcHBseUluaXRpYWxTdGF0ZU9ubHkiLCJhZGFwdFN0YXRlQ29udHJvbHMiLCJhU3RhdGVDb250cm9scyIsIm9WaWV3IiwiZ2V0VmlldyIsIm9Db250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwiYkNvbnRyb2xWTSIsInZhcmlhbnRNYW5hZ2VtZW50IiwiQ29udHJvbCIsIlBhZ2UiLCJOb25lIiwiRXJyb3IiLCJnZXRWYXJpYW50TWFuYWdlbWVudCIsIl9maW5kVGFibGVzIiwiZm9yRWFjaCIsIm9UYWJsZSIsIm9RdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwicHVzaCIsImdldFZhcmlhbnQiLCJfZmluZENoYXJ0cyIsIm9DaGFydCIsImJ5SWQiLCJhZGFwdEJpbmRpbmdSZWZyZXNoQ29udHJvbHMiLCJhQ29udHJvbHMiLCJzUmVmcmVzaFN0cmF0ZWd5IiwiS2VlcEFsaXZlSGVscGVyIiwiZ2V0Vmlld1JlZnJlc2hJbmZvIiwiYUNvbnRyb2xzVG9SZWZyZXNoIiwib09iamVjdFBhZ2VDb250cm9sIiwiX2dldE9iamVjdFBhZ2VMYXlvdXRDb250cm9sIiwiYVZpZXdDb250cm9scyIsImNvbmNhdCIsImdldENvbnRyb2xzRm9yUmVmcmVzaCIsInJlZHVjZSIsImFQcmV2Q29udHJvbHMiLCJvQ29udHJvbCIsImluZGV4T2YiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpZXdTdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBWaWV3U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IEtlZXBBbGl2ZUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9LZWVwQWxpdmVIZWxwZXJcIjtcbmltcG9ydCBDb3JlTGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgT2JqZWN0UGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9PYmplY3RQYWdlQ29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5cbmNvbnN0IFZhcmlhbnRNYW5hZ2VtZW50ID0gQ29yZUxpYnJhcnkuVmFyaWFudE1hbmFnZW1lbnQ7XG5cbmNvbnN0IFZpZXdTdGF0ZUV4dGVuc2lvbk92ZXJyaWRlID0ge1xuXHRhcHBseUluaXRpYWxTdGF0ZU9ubHk6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0sXG5cdGFkYXB0U3RhdGVDb250cm9sczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSwgYVN0YXRlQ29udHJvbHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSxcblx0XHRcdG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCkgYXMgYW55O1xuXHRcdGxldCBiQ29udHJvbFZNID0gZmFsc2U7XG5cblx0XHRzd2l0Y2ggKG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCkge1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudC5Db250cm9sOlxuXHRcdFx0XHRiQ29udHJvbFZNID0gdHJ1ZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50LlBhZ2U6XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50Lk5vbmU6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGB1bmhhbmRsZWQgdmFyaWFudCBzZXR0aW5nOiAke29WaWV3RGF0YS5nZXRWYXJpYW50TWFuYWdlbWVudCgpfWApO1xuXHRcdH1cblxuXHRcdChvQ29udHJvbGxlciBhcyBPYmplY3RQYWdlQ29udHJvbGxlcikuX2ZpbmRUYWJsZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChvVGFibGU6IGFueSkge1xuXHRcdFx0Y29uc3Qgb1F1aWNrRmlsdGVyID0gb1RhYmxlLmdldFF1aWNrRmlsdGVyKCk7XG5cdFx0XHRpZiAob1F1aWNrRmlsdGVyKSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1F1aWNrRmlsdGVyKTtcblx0XHRcdH1cblx0XHRcdGlmIChiQ29udHJvbFZNKSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1RhYmxlLmdldFZhcmlhbnQoKSk7XG5cdFx0XHR9XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9UYWJsZSk7XG5cdFx0fSk7XG5cblx0XHQob0NvbnRyb2xsZXIgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXIpLl9maW5kQ2hhcnRzKCkuZm9yRWFjaChmdW5jdGlvbiAob0NoYXJ0OiBhbnkpIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NoYXJ0KTtcblx0XHR9KTtcblxuXHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1ZpZXcuYnlJZChcImZlOjpPYmplY3RQYWdlXCIpKTtcblx0fSxcblx0YWRhcHRCaW5kaW5nUmVmcmVzaENvbnRyb2xzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlLCBhQ29udHJvbHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRzUmVmcmVzaFN0cmF0ZWd5ID0gS2VlcEFsaXZlSGVscGVyLmdldFZpZXdSZWZyZXNoSW5mbyhvVmlldyksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKTtcblx0XHRsZXQgYUNvbnRyb2xzVG9SZWZyZXNoOiBDb250cm9sW10gPSBbXTtcblxuXHRcdGlmIChzUmVmcmVzaFN0cmF0ZWd5KSB7XG5cdFx0XHRjb25zdCBvT2JqZWN0UGFnZUNvbnRyb2wgPSAob0NvbnRyb2xsZXIgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXIpLl9nZXRPYmplY3RQYWdlTGF5b3V0Q29udHJvbCgpO1xuXHRcdFx0YUNvbnRyb2xzVG9SZWZyZXNoLnB1c2gob09iamVjdFBhZ2VDb250cm9sKTtcblx0XHR9XG5cdFx0aWYgKHNSZWZyZXNoU3RyYXRlZ3kgIT09IFwiaW5jbHVkaW5nRGVwZW5kZW50c1wiKSB7XG5cdFx0XHRjb25zdCBhVmlld0NvbnRyb2xzID0gKG9Db250cm9sbGVyIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyKS5fZmluZFRhYmxlcygpO1xuXHRcdFx0YUNvbnRyb2xzVG9SZWZyZXNoID0gYUNvbnRyb2xzVG9SZWZyZXNoLmNvbmNhdChLZWVwQWxpdmVIZWxwZXIuZ2V0Q29udHJvbHNGb3JSZWZyZXNoKG9WaWV3LCBhVmlld0NvbnRyb2xzKSB8fCBbXSk7XG5cdFx0fVxuXHRcdHJldHVybiBhQ29udHJvbHNUb1JlZnJlc2gucmVkdWNlKGZ1bmN0aW9uIChhUHJldkNvbnRyb2xzOiBhbnksIG9Db250cm9sOiBhbnkpIHtcblx0XHRcdGlmIChhUHJldkNvbnRyb2xzLmluZGV4T2Yob0NvbnRyb2wpID09PSAtMSkge1xuXHRcdFx0XHRhUHJldkNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGFQcmV2Q29udHJvbHM7XG5cdFx0fSwgYUNvbnRyb2xzKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVmlld1N0YXRlRXh0ZW5zaW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFNQSxJQUFNQSxpQkFBaUIsR0FBR0MsV0FBVyxDQUFDRCxpQkFBdEM7RUFFQSxJQUFNRSwwQkFBMEIsR0FBRztJQUNsQ0MscUJBQXFCLEVBQUUsWUFBWTtNQUNsQyxPQUFPLEtBQVA7SUFDQSxDQUhpQztJQUlsQ0Msa0JBQWtCLEVBQUUsVUFBMkJDLGNBQTNCLEVBQWdEO01B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
|
|
@@ -35,6 +35,11 @@ const ViewStateExtensionOverride = {
|
|
|
35
35
|
if (bControlVM) {
|
|
36
36
|
aStateControls.push(oTable.getVariant());
|
|
37
37
|
}
|
|
38
|
+
aStateControls.push(oTable);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
(oController as ObjectPageController)._findCharts().forEach(function (oChart: any) {
|
|
42
|
+
aStateControls.push(oChart);
|
|
38
43
|
});
|
|
39
44
|
|
|
40
45
|
aStateControls.push(oView.byId("fe::ObjectPage"));
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
CRIT: 'sap/fe/core/templating/CriticalityFormatters',
|
|
15
15
|
COMMON: 'sap/fe/macros/CommonHelper',
|
|
16
16
|
FIELD: 'sap/fe/macros/field/FieldHelper',
|
|
17
|
-
DEFAULTACTIONHANDLER: 'sap/fe/macros/internal/helpers/DefaultActionHandler'
|
|
17
|
+
DEFAULTACTIONHANDLER: 'sap/fe/macros/internal/helpers/DefaultActionHandler',
|
|
18
|
+
FE_MODEL: 'sap/fe/core/helpers/ModelHelper'
|
|
18
19
|
}"
|
|
19
20
|
>
|
|
20
21
|
<template:if test="{converterContext>header/actions}">
|
|
@@ -22,9 +23,14 @@
|
|
|
22
23
|
<template:if test="{= ${headerAction>type} === 'DraftActions' && OP.checkDraftState(${entitySet>@}) }">
|
|
23
24
|
<template:then>
|
|
24
25
|
<components:DraftHandlerButton contextPath="{entitySet>}" id="fe::StandardAction::SwitchDraftAndActiveObject" />
|
|
26
|
+
<template:if test="{= !${entitySet>@@FE_MODEL.isCollaborationDraftSupported} }">
|
|
27
|
+
<ToolbarSpacer />
|
|
28
|
+
</template:if>
|
|
29
|
+
</template:then>
|
|
30
|
+
<template:elseif test="{= ${headerAction>type} === 'CollaborationAvatars' }">
|
|
25
31
|
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.CollaborationDraft" type="XML" />
|
|
26
32
|
<ToolbarSpacer />
|
|
27
|
-
</template:
|
|
33
|
+
</template:elseif>
|
|
28
34
|
<template:elseif test="{= OP.isManifestAction(${headerAction>}) }">
|
|
29
35
|
<template:if test="{= ${headerAction>type} === 'Menu'}">
|
|
30
36
|
<template:then>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<core:FragmentDefinition
|
|
2
|
+
xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
|
|
2
3
|
xmlns="sap.m"
|
|
3
4
|
xmlns:core="sap.ui.core"
|
|
4
5
|
xmlns:dt="sap.ui.dt"
|
|
@@ -10,40 +11,54 @@
|
|
|
10
11
|
ID: 'sap/fe/core/helpers/StableIdHelper'
|
|
11
12
|
}"
|
|
12
13
|
>
|
|
14
|
+
<template:if test="{header>avatar}">
|
|
15
|
+
<Avatar
|
|
16
|
+
unittest:id="AvatarOPHeaderContent"
|
|
17
|
+
class="sapUiSmallMarginEnd sapUiSmallMarginBottom"
|
|
18
|
+
src="{header>avatar/src}"
|
|
19
|
+
initials="{header>avatar/initials}"
|
|
20
|
+
fallbackIcon="{header>avatar/fallbackIcon}"
|
|
21
|
+
displayShape="{header>avatar/displayShape}"
|
|
22
|
+
displaySize="XL"
|
|
23
|
+
/>
|
|
24
|
+
</template:if>
|
|
13
25
|
<template:with path="converterContext>header/facets" var="converterHeaderFacets">
|
|
14
26
|
<template:repeat list="{converterHeaderFacets>}" var="converterHeaderFacet">
|
|
15
27
|
<template:if test="{= ${converterHeaderFacet>type} === 'Annotation'}">
|
|
16
28
|
<!-- Header facets from OData Service Annotations -->
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
<template:then>
|
|
30
|
+
<template:with path="converterHeaderFacet>annotationPath" var="headerFacet">
|
|
31
|
+
<template:with path="headerFacet>" var="collectionHeaderFacet">
|
|
32
|
+
<template:if test="{= ${converterHeaderFacet>facetType} === 'Reference' }">
|
|
33
|
+
<template:then>
|
|
34
|
+
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeaderFacet" type="XML" />
|
|
35
|
+
</template:then>
|
|
36
|
+
<template:elseif test="{= ${converterHeaderFacet>facetType} === 'Collection' }">
|
|
37
|
+
<fe:StashableVBox
|
|
26
38
|
id="{= ID.generate(['fe', 'HeaderCollectionFacetContainer', { Facet: ${collectionHeaderFacet>} } ])}"
|
|
27
39
|
dt:designtime="{= ${converterHeaderFacet>flexSettings/designtime} === 'Default' ? 'sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime' : ${converterHeaderFacet>flexSettings/designtime}}"
|
|
28
40
|
fl:flexibility="sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility"
|
|
29
41
|
stashed="{converterHeaderFacet>stashed}"
|
|
30
42
|
displayInline="true"
|
|
31
43
|
>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
44
|
+
<template:repeat list="{converterHeaderFacet>facets}" var="converterHeaderFacet">
|
|
45
|
+
<template:with path="converterHeaderFacet>annotationPath" var="headerFacet">
|
|
46
|
+
<core:Fragment
|
|
47
|
+
fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeaderFacet"
|
|
48
|
+
type="XML"
|
|
49
|
+
/>
|
|
50
|
+
</template:with>
|
|
51
|
+
</template:repeat>
|
|
52
|
+
</fe:StashableVBox>
|
|
53
|
+
</template:elseif>
|
|
54
|
+
</template:if>
|
|
55
|
+
</template:with>
|
|
40
56
|
</template:with>
|
|
41
|
-
</template:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
</template:elseif>
|
|
57
|
+
</template:then>
|
|
58
|
+
<template:elseif test="{= ${converterHeaderFacet>fragmentName}}">
|
|
59
|
+
<!-- Custom header facets from manifest (FPM) -->
|
|
60
|
+
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeaderFacetCustomContainer" type="XML" />
|
|
61
|
+
</template:elseif>
|
|
47
62
|
</template:if>
|
|
48
63
|
</template:repeat>
|
|
49
64
|
</template:with>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<core:FragmentDefinition
|
|
2
|
+
xmlns="sap.m"
|
|
3
|
+
xmlns:core="sap.ui.core"
|
|
4
|
+
xmlns:uxap="sap.uxap"
|
|
5
|
+
xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
|
|
6
|
+
xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
|
|
7
|
+
template:require="{
|
|
8
|
+
OP: 'sap/fe/templates/ObjectPage/ObjectPageTemplating',
|
|
9
|
+
DATAFIELDHELPER : 'sap/fe/core/converters/helpers/DataFieldHelper'
|
|
10
|
+
}"
|
|
11
|
+
>
|
|
12
|
+
<FlexBox>
|
|
13
|
+
<template:if test="{entityType>@com.sap.vocabularies.UI.v1.HeaderInfo/Description}">
|
|
14
|
+
<template:if test="{= !DATAFIELDHELPER.isHeaderStaticallyHidden(${headerInfo>Description@@UI.getDataModelObjectPath})}">
|
|
15
|
+
<Label
|
|
16
|
+
text="{= OP.getExpressionForDescription(${headerInfo>@@UI.getConverterContext}, ${fullContextPath>@@UI.getDataModelObjectPath})}"
|
|
17
|
+
wrapping="true"
|
|
18
|
+
/>
|
|
19
|
+
</template:if>
|
|
20
|
+
</template:if>
|
|
21
|
+
</FlexBox>
|
|
22
|
+
<MessageStrip
|
|
23
|
+
visible="{= ${internal>OPMessageStripVisibility} || false }"
|
|
24
|
+
text="{internal>OPMessageStripText}"
|
|
25
|
+
type="{internal>OPMessageStripType}"
|
|
26
|
+
showIcon="true"
|
|
27
|
+
showCloseButton="true"
|
|
28
|
+
class="sapUiSmallMarginTop"
|
|
29
|
+
/>
|
|
30
|
+
</core:FragmentDefinition>
|
|
@@ -18,5 +18,6 @@
|
|
|
18
18
|
chartDelegate="{= '{name: \'sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate\', payload: { contextPath: \'' + HELPER.getCollectionName(${visualizationDefinition>collection}) + '\', parameters:{$$groupId:\'$auto.Workers\'}, selectionMode: \'Multiple\' } }' }"
|
|
19
19
|
selectionChange=".handlers.onChartSelectionChanged"
|
|
20
20
|
headerLevel='{= ${section>subSections}.length > 1 ? (${subSection>level} === 2 && ${subSection>titleVisible} ? "H6": "H5") : (${subSection>level} === 2 && ${subSection>titleVisible} ? "H5": "H4")}'
|
|
21
|
+
stateChange=".handlers.onStateChange"
|
|
21
22
|
/>
|
|
22
23
|
</core:FragmentDefinition>
|
|
@@ -19,5 +19,6 @@
|
|
|
19
19
|
visible="{= ${converterContext>hasMultiVisualizations} ? '{= ${pageInternal>alpContentView} !== \'Chart\'}' : 'true' }"
|
|
20
20
|
tabTitle="{view>title}"
|
|
21
21
|
headerLevel='{= ${section>subSections}.length > 1 ? (${subSection>level} === 2 && ${subSection>titleVisible} ? "H6": "H5") : (${subSection>level} === 2 && ${subSection>titleVisible} ? "H5": "H4")}'
|
|
22
|
+
stateChange=".handlers.onStateChange"
|
|
22
23
|
/>
|
|
23
24
|
</core:FragmentDefinition>
|
|
@@ -8,7 +8,7 @@ T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO=(Objektas be
|
|
|
8
8
|
|
|
9
9
|
T_NEW_OBJECT=Naujas objektas
|
|
10
10
|
|
|
11
|
-
T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE=
|
|
11
|
+
T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE=Nauja
|
|
12
12
|
|
|
13
13
|
C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=Seansas baig\u0117si
|
|
14
14
|
|