@sapui5/sap.fe.templates 1.108.2 → 1.110.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/README.md +5 -1
- package/package.json +11 -8
- package/src/sap/fe/templates/.library +26 -27
- package/src/sap/fe/templates/AnalyticalListPage/Component.js +1 -7
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -4
- package/src/sap/fe/templates/ListComponent.js +45 -62
- package/src/sap/fe/templates/ListComponent.ts +43 -43
- package/src/sap/fe/templates/ListReport/Component.js +11 -19
- package/src/sap/fe/templates/ListReport/Component.ts +6 -0
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +15 -36
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +6 -1
- package/src/sap/fe/templates/ListReport/LRMessageStrip.js +196 -0
- package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +216 -0
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +31 -0
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +142 -247
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +50 -15
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +2 -7
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +21 -108
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +2 -2
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +9 -17
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +3 -2
- package/src/sap/fe/templates/ListReport/overrides/Share.js +9 -25
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +51 -123
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +5 -8
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -23
- package/src/sap/fe/templates/ObjectPage/Component.js +19 -40
- package/src/sap/fe/templates/ObjectPage/Component.ts +11 -4
- package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.js +64 -0
- package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.ts +80 -0
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +24 -59
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +8 -7
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +2 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +182 -463
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +29 -31
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +129 -208
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +62 -14
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +1 -32
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +3 -2
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +9 -37
- package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +1 -7
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +9 -31
- package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +2 -4
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.js +4 -5
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +4 -4
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.ts +3 -3
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +4 -4
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.ts +3 -3
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +16 -21
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +19 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +21 -0
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +4 -5
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +19 -69
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +5 -20
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +6 -6
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +4 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +3 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +4 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +7 -5
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +3 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +2 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +7 -7
- package/src/sap/fe/templates/TableScroller.js +1 -6
- package/src/sap/fe/templates/library.js +4 -7
- package/src/sap/fe/templates/library.ts +1 -2
- package/src/sap/fe/templates/messagebundle.properties +30 -29
- package/src/sap/fe/templates/messagebundle_bg.properties +2 -2
- package/src/sap/fe/templates/messagebundle_cs.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -1
- package/src/sap/fe/templates/messagebundle_es.properties +2 -2
- package/src/sap/fe/templates/messagebundle_et.properties +2 -2
- package/src/sap/fe/templates/messagebundle_no.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ro.properties +2 -2
- package/src/sap/fe/templates/messagebundle_sl.properties +7 -7
- package/src/sap/fe/templates/messagebundle_th.properties +2 -2
- package/src/sap/fe/templates/messagebundle_vi.properties +2 -2
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +2 -2
- package/ui5.yaml +0 -2
- package/src/sap/fe/templates/Feedback.js +0 -80
- package/src/sap/fe/templates/Feedback.ts +0 -64
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +0 -82
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +0 -20
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +0 -20
|
@@ -8,46 +8,38 @@ sap.ui.define(["sap/fe/core/CommonUtils"], function (CommonUtils) {
|
|
|
8
8
|
var IntentBasedNavigationOverride = {
|
|
9
9
|
adaptNavigationContext: function (oSelectionVariant, oTargetInfo) {
|
|
10
10
|
var oView = this.getView(),
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
oController = oView.getController(),
|
|
12
|
+
oFilterBar = oController._getFilterBarControl();
|
|
13
|
+
// Adding filter bar values to the navigation does not make sense if no context has been selected.
|
|
13
14
|
// Hence only consider filter bar values when SelectionVariant is not empty
|
|
14
|
-
|
|
15
|
-
|
|
16
15
|
if (oFilterBar && !oSelectionVariant.isEmpty()) {
|
|
17
16
|
var oViewData = oView.getViewData(),
|
|
18
|
-
|
|
17
|
+
sRootPath = oViewData.fullContextPath;
|
|
19
18
|
var oFilterBarConditions = Object.assign({}, this.base.getView().getController().filterBarConditions);
|
|
20
19
|
var aParameters = [];
|
|
21
|
-
|
|
22
20
|
if (oViewData.contextPath) {
|
|
23
21
|
var oMetaModel = oView.getModel().getMetaModel(),
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
oParameterInfo = CommonUtils.getParameterInfo(oMetaModel, oViewData.contextPath),
|
|
23
|
+
oParamProperties = oParameterInfo.parameterProperties;
|
|
26
24
|
aParameters = oParamProperties && Object.keys(oParamProperties) || [];
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
oFilterBarConditions = oController._intentBasedNavigation.prepareFiltersForExternalNavigation(oFilterBarConditions, sRootPath, aParameters);
|
|
30
|
-
|
|
31
27
|
var oMultipleModeControl = oController._getMultiModeControl();
|
|
32
|
-
|
|
33
28
|
if (oMultipleModeControl) {
|
|
34
29
|
// Do we need to exclude Fields (multi tables mode with multi entity sets)?
|
|
35
30
|
var oTabsModel = oMultipleModeControl.getTabsModel();
|
|
36
|
-
|
|
37
31
|
if (oTabsModel) {
|
|
38
32
|
var _oMultipleModeControl;
|
|
39
|
-
|
|
40
33
|
var aIgnoredFieldsForTab = oTabsModel.getProperty("/".concat((_oMultipleModeControl = oMultipleModeControl.content) === null || _oMultipleModeControl === void 0 ? void 0 : _oMultipleModeControl.getSelectedKey(), "/notApplicable/fields"));
|
|
41
|
-
|
|
42
34
|
if (Array.isArray(aIgnoredFieldsForTab) && aIgnoredFieldsForTab.length > 0) {
|
|
43
35
|
aIgnoredFieldsForTab.forEach(function (sProperty) {
|
|
44
36
|
delete oFilterBarConditions.filterConditions[sProperty];
|
|
45
37
|
});
|
|
46
38
|
}
|
|
47
39
|
}
|
|
48
|
-
}
|
|
49
|
-
|
|
40
|
+
}
|
|
50
41
|
|
|
42
|
+
// TODO: move this also into the intent based navigation controller extension
|
|
51
43
|
CommonUtils.addExternalStateFiltersToSelectionVariant(oSelectionVariant, oFilterBarConditions, oTargetInfo, oFilterBar);
|
|
52
44
|
delete oTargetInfo.propertiesWithoutConflict;
|
|
53
45
|
}
|
|
@@ -58,4 +50,4 @@ sap.ui.define(["sap/fe/core/CommonUtils"], function (CommonUtils) {
|
|
|
58
50
|
};
|
|
59
51
|
return IntentBasedNavigationOverride;
|
|
60
52
|
}, false);
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9NdWx0aXBsZU1vZGVDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJvVGFic01vZGVsIiwiZ2V0VGFic01vZGVsIiwiYUlnbm9yZWRGaWVsZHNGb3JUYWIiLCJnZXRQcm9wZXJ0eSIsImNvbnRlbnQiLCJnZXRTZWxlY3RlZEtleSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJzUHJvcGVydHkiLCJmaWx0ZXJDb25kaXRpb25zIiwiYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQiLCJwcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0IiwiZ2V0RW50aXR5U2V0IiwiZ2V0Q3VycmVudEVudGl0eVNldCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSW50ZW50QmFzZWROYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEludGVudEJhc2VkTmF2aWdhdGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZW50QmFzZWROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aDtcblx0XHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sICh0aGlzLmJhc2UuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBhbnkpLmZpbHRlckJhckNvbmRpdGlvbnMpO1xuXHRcdFx0bGV0IGFQYXJhbWV0ZXJzOiBhbnlbXSA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3Qgb011bHRpcGxlTW9kZUNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpO1xuXHRcdFx0aWYgKG9NdWx0aXBsZU1vZGVDb250cm9sKSB7XG5cdFx0XHRcdC8vIERvIHdlIG5lZWQgdG8gZXhjbHVkZSBGaWVsZHMgKG11bHRpIHRhYmxlcyBtb2RlIHdpdGggbXVsdGkgZW50aXR5IHNldHMpP1xuXHRcdFx0XHRjb25zdCBvVGFic01vZGVsID0gb011bHRpcGxlTW9kZUNvbnRyb2wuZ2V0VGFic01vZGVsKCk7XG5cdFx0XHRcdGlmIChvVGFic01vZGVsKSB7XG5cdFx0XHRcdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHNGb3JUYWIgPSBvVGFic01vZGVsLmdldFByb3BlcnR5KFxuXHRcdFx0XHRcdFx0YC8ke29NdWx0aXBsZU1vZGVDb250cm9sLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCl9L25vdEFwcGxpY2FibGUvZmllbGRzYFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHNGb3JUYWIpICYmIGFJZ25vcmVkRmllbGRzRm9yVGFiLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFJZ25vcmVkRmllbGRzRm9yVGFiLmZvckVhY2goZnVuY3Rpb24gKHNQcm9wZXJ0eTogYW55KSB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSBvRmlsdGVyQmFyQ29uZGl0aW9ucy5maWx0ZXJDb25kaXRpb25zW3NQcm9wZXJ0eV07XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVE9ETzogbW92ZSB0aGlzIGFsc28gaW50byB0aGUgaW50ZW50IGJhc2VkIG5hdmlnYXRpb24gY29udHJvbGxlciBleHRlbnNpb25cblx0XHRcdENvbW1vblV0aWxzLmFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50KG9TZWxlY3Rpb25WYXJpYW50LCBvRmlsdGVyQmFyQ29uZGl0aW9ucywgb1RhcmdldEluZm8sIG9GaWx0ZXJCYXIpO1xuXHRcdFx0ZGVsZXRlIG9UYXJnZXRJbmZvLnByb3BlcnRpZXNXaXRob3V0Q29uZmxpY3Q7XG5cdFx0fVxuXHR9LFxuXHRnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24pIHtcblx0XHRyZXR1cm4gKHRoaXMuYmFzZSBhcyBhbnkpLmdldEN1cnJlbnRFbnRpdHlTZXQoKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFLQSxJQUFNQSw2QkFBNkIsR0FBRztJQUNyQ0Msc0JBQXNCLEVBQUUsVUFBdUNDLGlCQUFzQixFQUFFQyxXQUFnQixFQUFFO01BQ3hHLElBQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sRUFBRTtRQUMzQkMsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQWEsRUFBMEI7UUFDM0RDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBb0IsRUFBRTtNQUNoRDtNQUNBO01BQ0EsSUFBSUQsVUFBVSxJQUFJLENBQUNOLGlCQUFpQixDQUFDUSxPQUFPLEVBQUUsRUFBRTtRQUMvQyxJQUFNQyxTQUFTLEdBQUdQLEtBQUssQ0FBQ1EsV0FBVyxFQUFTO1VBQzNDQyxTQUFTLEdBQUdGLFNBQVMsQ0FBQ0csZUFBZTtRQUN0QyxJQUFJQyxvQkFBb0IsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUcsSUFBSSxDQUFDQyxJQUFJLENBQUNiLE9BQU8sRUFBRSxDQUFDRSxhQUFhLEVBQUUsQ0FBU1ksbUJBQW1CLENBQUM7UUFDOUcsSUFBSUMsV0FBa0IsR0FBRyxFQUFFO1FBRTNCLElBQUlULFNBQVMsQ0FBQ1UsV0FBVyxFQUFFO1VBQzFCLElBQU1DLFVBQVUsR0FBR2xCLEtBQUssQ0FBQ21CLFFBQVEsRUFBRSxDQUFDQyxZQUFZLEVBQW9CO1lBQ25FQyxjQUFjLEdBQUdDLFdBQVcsQ0FBQ0MsZ0JBQWdCLENBQUNMLFVBQVUsRUFBRVgsU0FBUyxDQUFDVSxXQUFXLENBQUM7WUFDaEZPLGdCQUFnQixHQUFHSCxjQUFjLENBQUNJLG1CQUFtQjtVQUN0RFQsV0FBVyxHQUFJUSxnQkFBZ0IsSUFBSVosTUFBTSxDQUFDYyxJQUFJLENBQUNGLGdCQUFnQixDQUFDLElBQUssRUFBRTtRQUN4RTtRQUVBYixvQkFBb0IsR0FBR1QsV0FBVyxDQUFDeUIsc0JBQXNCLENBQUNDLG1DQUFtQyxDQUM1RmpCLG9CQUFvQixFQUNwQkYsU0FBUyxFQUNUTyxXQUFXLENBQ1g7UUFFRCxJQUFNYSxvQkFBb0IsR0FBRzNCLFdBQVcsQ0FBQzRCLG9CQUFvQixFQUFFO1FBQy9ELElBQUlELG9CQUFvQixFQUFFO1VBQ3pCO1VBQ0EsSUFBTUUsVUFBVSxHQUFHRixvQkFBb0IsQ0FBQ0csWUFBWSxFQUFFO1VBQ3RELElBQUlELFVBQVUsRUFBRTtZQUFBO1lBQ2YsSUFBTUUsb0JBQW9CLEdBQUdGLFVBQVUsQ0FBQ0csV0FBVyxxQ0FDOUNMLG9CQUFvQixDQUFDTSxPQUFPLDBEQUE1QixzQkFBOEJDLGNBQWMsRUFBRSwyQkFDbEQ7WUFDRCxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0wsb0JBQW9CLENBQUMsSUFBSUEsb0JBQW9CLENBQUNNLE1BQU0sR0FBRyxDQUFDLEVBQUU7Y0FDM0VOLG9CQUFvQixDQUFDTyxPQUFPLENBQUMsVUFBVUMsU0FBYyxFQUFFO2dCQUN0RCxPQUFPOUIsb0JBQW9CLENBQUMrQixnQkFBZ0IsQ0FBQ0QsU0FBUyxDQUFDO2NBQ3hELENBQUMsQ0FBQztZQUNIO1VBQ0Q7UUFDRDs7UUFFQTtRQUNBbkIsV0FBVyxDQUFDcUIseUNBQXlDLENBQUM3QyxpQkFBaUIsRUFBRWEsb0JBQW9CLEVBQUVaLFdBQVcsRUFBRUssVUFBVSxDQUFDO1FBQ3ZILE9BQU9MLFdBQVcsQ0FBQzZDLHlCQUF5QjtNQUM3QztJQUNELENBQUM7SUFDREMsWUFBWSxFQUFFLFlBQXVDO01BQ3BELE9BQVEsSUFBSSxDQUFDL0IsSUFBSSxDQUFTZ0MsbUJBQW1CLEVBQUU7SUFDaEQ7RUFDRCxDQUFDO0VBQUMsT0FFYWxELDZCQUE2QjtBQUFBIn0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
2
2
|
import type IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
|
|
3
3
|
import type ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
|
|
4
|
+
import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
4
5
|
|
|
5
6
|
const IntentBasedNavigationOverride = {
|
|
6
7
|
adaptNavigationContext: function (this: IntentBasedNavigation, oSelectionVariant: any, oTargetInfo: any) {
|
|
@@ -13,10 +14,10 @@ const IntentBasedNavigationOverride = {
|
|
|
13
14
|
const oViewData = oView.getViewData() as any,
|
|
14
15
|
sRootPath = oViewData.fullContextPath;
|
|
15
16
|
let oFilterBarConditions = Object.assign({}, (this.base.getView().getController() as any).filterBarConditions);
|
|
16
|
-
let aParameters = [];
|
|
17
|
+
let aParameters: any[] = [];
|
|
17
18
|
|
|
18
19
|
if (oViewData.contextPath) {
|
|
19
|
-
const oMetaModel = oView.getModel().getMetaModel(),
|
|
20
|
+
const oMetaModel = oView.getModel().getMetaModel() as ODataMetaModel,
|
|
20
21
|
oParameterInfo = CommonUtils.getParameterInfo(oMetaModel, oViewData.contextPath),
|
|
21
22
|
oParamProperties = oParameterInfo.parameterProperties;
|
|
22
23
|
aParameters = (oParamProperties && Object.keys(oParamProperties)) || [];
|
|
@@ -7,27 +7,22 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
7
7
|
|
|
8
8
|
function getCountUrl(oController) {
|
|
9
9
|
var _oController$_getTabl;
|
|
10
|
-
|
|
11
10
|
var oTable = (_oController$_getTabl = oController._getTable) === null || _oController$_getTabl === void 0 ? void 0 : _oController$_getTabl.call(oController);
|
|
12
|
-
|
|
13
11
|
if (!oTable) {
|
|
14
12
|
return "";
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
var oBinding = oTable.getRowBinding() || oTable.getBinding("items");
|
|
18
15
|
var sDownloadUrl = oBinding && oBinding.getDownloadUrl() || "";
|
|
19
16
|
var aSplitUrl = sDownloadUrl.split("?");
|
|
20
|
-
var baseUrl = "".concat(aSplitUrl[0], "/$count?");
|
|
17
|
+
var baseUrl = "".concat(aSplitUrl[0], "/$count?");
|
|
18
|
+
// getDownloadUrl() returns url with $select, $expand which is not supported when /$count is used to get the record count. only $apply, $search, $filter is supported
|
|
21
19
|
// ?$count=true returns count in a format which is not supported by FLP yet.
|
|
22
20
|
// currently supported format for v4 is ../count.. only (where tile preview will still not work)
|
|
23
|
-
|
|
24
21
|
var aSupportedParams = [];
|
|
25
|
-
|
|
26
22
|
if (aSplitUrl.length > 1) {
|
|
27
23
|
var urlParams = aSplitUrl[1];
|
|
28
24
|
urlParams.split("&").forEach(function (urlParam) {
|
|
29
25
|
var aUrlParamParts = urlParam.split("=");
|
|
30
|
-
|
|
31
26
|
switch (aUrlParamParts[0]) {
|
|
32
27
|
case "$apply":
|
|
33
28
|
case "$search":
|
|
@@ -36,13 +31,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
36
31
|
}
|
|
37
32
|
});
|
|
38
33
|
}
|
|
39
|
-
|
|
40
34
|
return baseUrl + aSupportedParams.join("&");
|
|
41
35
|
}
|
|
42
|
-
|
|
43
36
|
function getShareEmailUrl() {
|
|
44
37
|
var oUShellContainer = sap.ushell && sap.ushell.Container;
|
|
45
|
-
|
|
46
38
|
if (oUShellContainer) {
|
|
47
39
|
return oUShellContainer.getFLPUrlAsync(true).then(function (sFLPUrl) {
|
|
48
40
|
return sFLPUrl;
|
|
@@ -53,29 +45,24 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
53
45
|
return Promise.resolve(document.URL);
|
|
54
46
|
}
|
|
55
47
|
}
|
|
56
|
-
|
|
57
48
|
function getSaveAsTileServiceUrl(oController) {
|
|
58
49
|
var oFilterBar = oController._getFilterBarControl();
|
|
59
|
-
|
|
60
50
|
if (oFilterBar) {
|
|
61
51
|
var oConditions = oFilterBar.getFilterConditions();
|
|
62
52
|
var bSaveAsTileServiceUrlAllowed = SemanticDateOperators.hasSemanticDateOperations(oConditions);
|
|
63
|
-
|
|
64
53
|
if (bSaveAsTileServiceUrlAllowed) {
|
|
65
54
|
return getCountUrl(oController);
|
|
66
55
|
}
|
|
67
56
|
}
|
|
68
|
-
|
|
69
57
|
return "";
|
|
70
58
|
}
|
|
71
|
-
|
|
72
59
|
function getJamUrl() {
|
|
73
60
|
var sHash = HashChanger.getInstance().getHash();
|
|
74
61
|
var sBasePath = HashChanger.getInstance().hrefForAppSpecificHash ? HashChanger.getInstance().hrefForAppSpecificHash("") : "";
|
|
75
|
-
var sJamUrl = sHash ? sBasePath + sHash : window.location.hash;
|
|
62
|
+
var sJamUrl = sHash ? sBasePath + sHash : window.location.hash;
|
|
63
|
+
// in case we are in cFLP scenario, the application is running
|
|
76
64
|
// inside an iframe, and there for we need to get the cFLP URL
|
|
77
65
|
// and not 'document.URL' that represents the iframe URL
|
|
78
|
-
|
|
79
66
|
if (sap.ushell && sap.ushell.Container && sap.ushell.Container.runningInIframe && sap.ushell.Container.runningInIframe()) {
|
|
80
67
|
sap.ushell.Container.getFLPUrl(true).then(function (sUrl) {
|
|
81
68
|
return sUrl.substr(0, sUrl.indexOf("#")) + sJamUrl;
|
|
@@ -86,30 +73,27 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
86
73
|
return window.location.origin + window.location.pathname + sJamUrl;
|
|
87
74
|
}
|
|
88
75
|
}
|
|
89
|
-
|
|
90
76
|
var ShareOverride = {
|
|
91
77
|
adaptShareMetadata: function (oShareMetadata) {
|
|
92
78
|
var _this = this;
|
|
93
|
-
|
|
94
79
|
Promise.resolve(getJamUrl()).then(function (sJamUrl) {
|
|
95
80
|
var oAppComponent = CommonUtils.getAppComponent(_this.base.getView());
|
|
96
81
|
var oMetadata = oAppComponent.getMetadata();
|
|
97
82
|
var oUIManifest = oMetadata.getManifestEntry("sap.ui");
|
|
98
83
|
var sIcon = oUIManifest && oUIManifest.icons && oUIManifest.icons.icon || "";
|
|
99
84
|
var oAppManifest = oMetadata.getManifestEntry("sap.app");
|
|
100
|
-
var sTitle = oAppManifest && oAppManifest.title || "";
|
|
101
|
-
|
|
85
|
+
var sTitle = oAppManifest && oAppManifest.title || "";
|
|
86
|
+
// TODO: check if there is any semantic date used before adding serviceURL as BLI:FIORITECHP1-18023
|
|
102
87
|
oShareMetadata.tile = {
|
|
103
88
|
icon: sIcon,
|
|
104
89
|
title: sTitle,
|
|
105
90
|
queryUrl: getSaveAsTileServiceUrl(_this.base.getView().getController())
|
|
106
91
|
};
|
|
107
92
|
oShareMetadata.title = document.title;
|
|
108
|
-
oShareMetadata.jam.url = sJamUrl;
|
|
93
|
+
oShareMetadata.jam.url = sJamUrl;
|
|
94
|
+
// MS Teams collaboration does not want to allow further changes to the URL
|
|
109
95
|
// so update colloborationInfo model at LR override to ignore further extension changes at multiple levels
|
|
110
|
-
|
|
111
96
|
var collaborationInfoModel = _this.base.getView().getModel("collaborationInfo");
|
|
112
|
-
|
|
113
97
|
collaborationInfoModel.setProperty("/url", oShareMetadata.url);
|
|
114
98
|
collaborationInfoModel.setProperty("/appTitle", oShareMetadata.title);
|
|
115
99
|
}).catch(function (error) {
|
|
@@ -123,4 +107,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
123
107
|
};
|
|
124
108
|
return ShareOverride;
|
|
125
109
|
}, false);
|
|
126
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwib1RhYmxlIiwiX2dldFRhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwidGhlbiIsInNGTFBVcmwiLCJjYXRjaCIsInNFcnJvciIsIkxvZyIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkb2N1bWVudCIsIlVSTCIsImdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwib0NvbmRpdGlvbnMiLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCIsIlNlbWFudGljRGF0ZU9wZXJhdG9ycyIsImhhc1NlbWFudGljRGF0ZU9wZXJhdGlvbnMiLCJnZXRKYW1VcmwiLCJzSGFzaCIsIkhhc2hDaGFuZ2VyIiwiZ2V0SW5zdGFuY2UiLCJnZXRIYXNoIiwic0Jhc2VQYXRoIiwiaHJlZkZvckFwcFNwZWNpZmljSGFzaCIsInNKYW1VcmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhhc2giLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwic3Vic3RyIiwiaW5kZXhPZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVPdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiYmFzZSIsImdldFZpZXciLCJvTWV0YWRhdGEiLCJnZXRNZXRhZGF0YSIsIm9VSU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RFbnRyeSIsInNJY29uIiwiaWNvbnMiLCJpY29uIiwib0FwcE1hbmlmZXN0Iiwic1RpdGxlIiwidGl0bGUiLCJ0aWxlIiwicXVlcnlVcmwiLCJnZXRDb250cm9sbGVyIiwiamFtIiwidXJsIiwiY29sbGFib3JhdGlvbkluZm9Nb2RlbCIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJlbWFpbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBTZW1hbnRpY0RhdGVPcGVyYXRvcnMgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU2VtYW50aWNEYXRlT3BlcmF0b3JzXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCIuLi9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5mdW5jdGlvbiBnZXRDb3VudFVybChvQ29udHJvbGxlcjogTGlzdFJlcG9ydENvbnRyb2xsZXIpIHtcblx0Y29uc3Qgb1RhYmxlID0gb0NvbnRyb2xsZXIuX2dldFRhYmxlPy4oKTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBgJHthU3BsaXRVcmxbMF19LyRjb3VudD9gO1xuXHQvLyBnZXREb3dubG9hZFVybCgpIHJldHVybnMgdXJsIHdpdGggJHNlbGVjdCwgJGV4cGFuZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gLyRjb3VudCBpcyB1c2VkIHRvIGdldCB0aGUgcmVjb3JkIGNvdW50LiBvbmx5ICRhcHBseSwgJHNlYXJjaCwgJGZpbHRlciBpcyBzdXBwb3J0ZWRcblx0Ly8gPyRjb3VudD10cnVlIHJldHVybnMgY291bnQgaW4gYSBmb3JtYXQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBGTFAgeWV0LlxuXHQvLyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdCBmb3IgdjQgaXMgLi4vY291bnQuLiBvbmx5ICh3aGVyZSB0aWxlIHByZXZpZXcgd2lsbCBzdGlsbCBub3Qgd29yaylcblx0Y29uc3QgYVN1cHBvcnRlZFBhcmFtczogYW55W10gPSBbXTtcblx0aWYgKGFTcGxpdFVybC5sZW5ndGggPiAxKSB7XG5cdFx0Y29uc3QgdXJsUGFyYW1zID0gYVNwbGl0VXJsWzFdO1xuXHRcdHVybFBhcmFtcy5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbiAodXJsUGFyYW06IGFueSkge1xuXHRcdFx0Y29uc3QgYVVybFBhcmFtUGFydHMgPSB1cmxQYXJhbS5zcGxpdChcIj1cIik7XG5cdFx0XHRzd2l0Y2ggKGFVcmxQYXJhbVBhcnRzWzBdKSB7XG5cdFx0XHRcdGNhc2UgXCIkYXBwbHlcIjpcblx0XHRcdFx0Y2FzZSBcIiRzZWFyY2hcIjpcblx0XHRcdFx0Y2FzZSBcIiRmaWx0ZXJcIjpcblx0XHRcdFx0XHRhU3VwcG9ydGVkUGFyYW1zLnB1c2godXJsUGFyYW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBiYXNlVXJsICsgYVN1cHBvcnRlZFBhcmFtcy5qb2luKFwiJlwiKTtcbn1cblxuZnVuY3Rpb24gZ2V0U2hhcmVFbWFpbFVybCgpIHtcblx0Y29uc3Qgb1VTaGVsbENvbnRhaW5lciA9IHNhcC51c2hlbGwgJiYgc2FwLnVzaGVsbC5Db250YWluZXI7XG5cdGlmIChvVVNoZWxsQ29udGFpbmVyKSB7XG5cdFx0cmV0dXJuIG9VU2hlbGxDb250YWluZXJcblx0XHRcdC5nZXRGTFBVcmxBc3luYyh0cnVlKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNGTFBVcmw6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gc0ZMUFVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5VUkwpO1xuXHR9XG59XG5mdW5jdGlvbiBnZXRTYXZlQXNUaWxlU2VydmljZVVybChvQ29udHJvbGxlcjogYW55KSB7XG5cdGNvbnN0IG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRpZiAob0ZpbHRlckJhcikge1xuXHRcdGNvbnN0IG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCk7XG5cdFx0Y29uc3QgYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5oYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zKG9Db25kaXRpb25zKTtcblx0XHRpZiAoYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCkge1xuXHRcdFx0cmV0dXJuIGdldENvdW50VXJsKG9Db250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBnZXRKYW1VcmwoKSB7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRjb25zdCBzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHQvLyBpbiBjYXNlIHdlIGFyZSBpbiBjRkxQIHNjZW5hcmlvLCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZ1xuXHQvLyBpbnNpZGUgYW4gaWZyYW1lLCBhbmQgdGhlcmUgZm9yIHdlIG5lZWQgdG8gZ2V0IHRoZSBjRkxQIFVSTFxuXHQvLyBhbmQgbm90ICdkb2N1bWVudC5VUkwnIHRoYXQgcmVwcmVzZW50cyB0aGUgaWZyYW1lIFVSTFxuXHRpZiAoc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lciAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lKCkpIHtcblx0XHRzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRGTFBVcmwodHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNVcmwuc3Vic3RyKDAsIHNVcmwuaW5kZXhPZihcIiNcIikpICsgc0phbVVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsO1xuXHR9XG59XG5cbmNvbnN0IFNoYXJlT3ZlcnJpZGUgPSB7XG5cdGFkYXB0U2hhcmVNZXRhZGF0YTogZnVuY3Rpb24gKHRoaXM6IFNoYXJlLCBvU2hhcmVNZXRhZGF0YTogYW55KSB7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKGdldEphbVVybCgpKVxuXHRcdFx0LnRoZW4oKHNKYW1Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuYmFzZS5nZXRWaWV3KCkpO1xuXHRcdFx0XHRjb25zdCBvTWV0YWRhdGEgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCk7XG5cdFx0XHRcdGNvbnN0IG9VSU1hbmlmZXN0ID0gb01ldGFkYXRhLmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWlcIik7XG5cdFx0XHRcdGNvbnN0IHNJY29uID0gKG9VSU1hbmlmZXN0ICYmIG9VSU1hbmlmZXN0Lmljb25zICYmIG9VSU1hbmlmZXN0Lmljb25zLmljb24pIHx8IFwiXCI7XG5cdFx0XHRcdGNvbnN0IG9BcHBNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKTtcblx0XHRcdFx0Y29uc3Qgc1RpdGxlID0gKG9BcHBNYW5pZmVzdCAmJiBvQXBwTWFuaWZlc3QudGl0bGUpIHx8IFwiXCI7XG5cdFx0XHRcdC8vIFRPRE86IGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzZW1hbnRpYyBkYXRlIHVzZWQgYmVmb3JlIGFkZGluZyBzZXJ2aWNlVVJMIGFzIEJMSTpGSU9SSVRFQ0hQMS0xODAyM1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aWxlID0ge1xuXHRcdFx0XHRcdGljb246IHNJY29uLFxuXHRcdFx0XHRcdHRpdGxlOiBzVGl0bGUsXG5cdFx0XHRcdFx0cXVlcnlVcmw6IGdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsKHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpKVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aXRsZSA9IGRvY3VtZW50LnRpdGxlO1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS5qYW0udXJsID0gc0phbVVybDtcblx0XHRcdFx0Ly8gTVMgVGVhbXMgY29sbGFib3JhdGlvbiBkb2VzIG5vdCB3YW50IHRvIGFsbG93IGZ1cnRoZXIgY2hhbmdlcyB0byB0aGUgVVJMXG5cdFx0XHRcdC8vIHNvIHVwZGF0ZSBjb2xsb2JvcmF0aW9uSW5mbyBtb2RlbCBhdCBMUiBvdmVycmlkZSB0byBpZ25vcmUgZnVydGhlciBleHRlbnNpb24gY2hhbmdlcyBhdCBtdWx0aXBsZSBsZXZlbHNcblx0XHRcdFx0Y29uc3QgY29sbGFib3JhdGlvbkluZm9Nb2RlbDogSlNPTk1vZGVsID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRNb2RlbChcImNvbGxhYm9yYXRpb25JbmZvXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi91cmxcIiwgb1NoYXJlTWV0YWRhdGEudXJsKTtcblx0XHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9hcHBUaXRsZVwiLCBvU2hhcmVNZXRhZGF0YS50aXRsZSk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHR9KTtcblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0U2hhcmVFbWFpbFVybCgpKS50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IHNGTFBVcmw7XG5cdFx0XHRyZXR1cm4gb1NoYXJlTWV0YWRhdGE7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFPQSxTQUFTQSxXQUFULENBQXFCQyxXQUFyQixFQUF3RDtJQUFBOztJQUN2RCxJQUFNQyxNQUFNLDRCQUFHRCxXQUFXLENBQUNFLFNBQWYsMERBQUcsMkJBQUFGLFdBQVcsQ0FBMUI7O0lBQ0EsSUFBSSxDQUFDQyxNQUFMLEVBQWE7TUFDWixPQUFPLEVBQVA7SUFDQTs7SUFDRCxJQUFNRSxRQUFRLEdBQUdGLE1BQU0sQ0FBQ0csYUFBUCxNQUEwQkgsTUFBTSxDQUFDSSxVQUFQLENBQWtCLE9BQWxCLENBQTNDO0lBQ0EsSUFBTUMsWUFBWSxHQUFJSCxRQUFRLElBQUtBLFFBQUQsQ0FBa0JJLGNBQWxCLEVBQWIsSUFBb0QsRUFBekU7SUFDQSxJQUFNQyxTQUFTLEdBQUdGLFlBQVksQ0FBQ0csS0FBYixDQUFtQixHQUFuQixDQUFsQjtJQUNBLElBQU1DLE9BQU8sYUFBTUYsU0FBUyxDQUFDLENBQUQsQ0FBZixhQUFiLENBUnVELENBU3ZEO0lBQ0E7SUFDQTs7SUFDQSxJQUFNRyxnQkFBdUIsR0FBRyxFQUFoQzs7SUFDQSxJQUFJSCxTQUFTLENBQUNJLE1BQVYsR0FBbUIsQ0FBdkIsRUFBMEI7TUFDekIsSUFBTUMsU0FBUyxHQUFHTCxTQUFTLENBQUMsQ0FBRCxDQUEzQjtNQUNBSyxTQUFTLENBQUNKLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUJLLE9BQXJCLENBQTZCLFVBQVVDLFFBQVYsRUFBeUI7UUFDckQsSUFBTUMs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
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwib1RhYmxlIiwiX2dldFRhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwidGhlbiIsInNGTFBVcmwiLCJjYXRjaCIsInNFcnJvciIsIkxvZyIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkb2N1bWVudCIsIlVSTCIsImdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwib0NvbmRpdGlvbnMiLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCIsIlNlbWFudGljRGF0ZU9wZXJhdG9ycyIsImhhc1NlbWFudGljRGF0ZU9wZXJhdGlvbnMiLCJnZXRKYW1VcmwiLCJzSGFzaCIsIkhhc2hDaGFuZ2VyIiwiZ2V0SW5zdGFuY2UiLCJnZXRIYXNoIiwic0Jhc2VQYXRoIiwiaHJlZkZvckFwcFNwZWNpZmljSGFzaCIsInNKYW1VcmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhhc2giLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwic3Vic3RyIiwiaW5kZXhPZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVPdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiYmFzZSIsImdldFZpZXciLCJvTWV0YWRhdGEiLCJnZXRNZXRhZGF0YSIsIm9VSU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RFbnRyeSIsInNJY29uIiwiaWNvbnMiLCJpY29uIiwib0FwcE1hbmlmZXN0Iiwic1RpdGxlIiwidGl0bGUiLCJ0aWxlIiwicXVlcnlVcmwiLCJnZXRDb250cm9sbGVyIiwiamFtIiwidXJsIiwiY29sbGFib3JhdGlvbkluZm9Nb2RlbCIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJlbWFpbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBTZW1hbnRpY0RhdGVPcGVyYXRvcnMgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU2VtYW50aWNEYXRlT3BlcmF0b3JzXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCIuLi9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5mdW5jdGlvbiBnZXRDb3VudFVybChvQ29udHJvbGxlcjogTGlzdFJlcG9ydENvbnRyb2xsZXIpIHtcblx0Y29uc3Qgb1RhYmxlID0gb0NvbnRyb2xsZXIuX2dldFRhYmxlPy4oKTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBgJHthU3BsaXRVcmxbMF19LyRjb3VudD9gO1xuXHQvLyBnZXREb3dubG9hZFVybCgpIHJldHVybnMgdXJsIHdpdGggJHNlbGVjdCwgJGV4cGFuZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gLyRjb3VudCBpcyB1c2VkIHRvIGdldCB0aGUgcmVjb3JkIGNvdW50LiBvbmx5ICRhcHBseSwgJHNlYXJjaCwgJGZpbHRlciBpcyBzdXBwb3J0ZWRcblx0Ly8gPyRjb3VudD10cnVlIHJldHVybnMgY291bnQgaW4gYSBmb3JtYXQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBGTFAgeWV0LlxuXHQvLyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdCBmb3IgdjQgaXMgLi4vY291bnQuLiBvbmx5ICh3aGVyZSB0aWxlIHByZXZpZXcgd2lsbCBzdGlsbCBub3Qgd29yaylcblx0Y29uc3QgYVN1cHBvcnRlZFBhcmFtczogYW55W10gPSBbXTtcblx0aWYgKGFTcGxpdFVybC5sZW5ndGggPiAxKSB7XG5cdFx0Y29uc3QgdXJsUGFyYW1zID0gYVNwbGl0VXJsWzFdO1xuXHRcdHVybFBhcmFtcy5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbiAodXJsUGFyYW06IGFueSkge1xuXHRcdFx0Y29uc3QgYVVybFBhcmFtUGFydHMgPSB1cmxQYXJhbS5zcGxpdChcIj1cIik7XG5cdFx0XHRzd2l0Y2ggKGFVcmxQYXJhbVBhcnRzWzBdKSB7XG5cdFx0XHRcdGNhc2UgXCIkYXBwbHlcIjpcblx0XHRcdFx0Y2FzZSBcIiRzZWFyY2hcIjpcblx0XHRcdFx0Y2FzZSBcIiRmaWx0ZXJcIjpcblx0XHRcdFx0XHRhU3VwcG9ydGVkUGFyYW1zLnB1c2godXJsUGFyYW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBiYXNlVXJsICsgYVN1cHBvcnRlZFBhcmFtcy5qb2luKFwiJlwiKTtcbn1cblxuZnVuY3Rpb24gZ2V0U2hhcmVFbWFpbFVybCgpIHtcblx0Y29uc3Qgb1VTaGVsbENvbnRhaW5lciA9IHNhcC51c2hlbGwgJiYgc2FwLnVzaGVsbC5Db250YWluZXI7XG5cdGlmIChvVVNoZWxsQ29udGFpbmVyKSB7XG5cdFx0cmV0dXJuIG9VU2hlbGxDb250YWluZXJcblx0XHRcdC5nZXRGTFBVcmxBc3luYyh0cnVlKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNGTFBVcmw6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gc0ZMUFVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5VUkwpO1xuXHR9XG59XG5mdW5jdGlvbiBnZXRTYXZlQXNUaWxlU2VydmljZVVybChvQ29udHJvbGxlcjogYW55KSB7XG5cdGNvbnN0IG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRpZiAob0ZpbHRlckJhcikge1xuXHRcdGNvbnN0IG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCk7XG5cdFx0Y29uc3QgYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5oYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zKG9Db25kaXRpb25zKTtcblx0XHRpZiAoYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCkge1xuXHRcdFx0cmV0dXJuIGdldENvdW50VXJsKG9Db250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBnZXRKYW1VcmwoKSB7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRjb25zdCBzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHQvLyBpbiBjYXNlIHdlIGFyZSBpbiBjRkxQIHNjZW5hcmlvLCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZ1xuXHQvLyBpbnNpZGUgYW4gaWZyYW1lLCBhbmQgdGhlcmUgZm9yIHdlIG5lZWQgdG8gZ2V0IHRoZSBjRkxQIFVSTFxuXHQvLyBhbmQgbm90ICdkb2N1bWVudC5VUkwnIHRoYXQgcmVwcmVzZW50cyB0aGUgaWZyYW1lIFVSTFxuXHRpZiAoc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lciAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lKCkpIHtcblx0XHRzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRGTFBVcmwodHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNVcmwuc3Vic3RyKDAsIHNVcmwuaW5kZXhPZihcIiNcIikpICsgc0phbVVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsO1xuXHR9XG59XG5cbmNvbnN0IFNoYXJlT3ZlcnJpZGUgPSB7XG5cdGFkYXB0U2hhcmVNZXRhZGF0YTogZnVuY3Rpb24gKHRoaXM6IFNoYXJlLCBvU2hhcmVNZXRhZGF0YTogYW55KSB7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKGdldEphbVVybCgpKVxuXHRcdFx0LnRoZW4oKHNKYW1Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuYmFzZS5nZXRWaWV3KCkpO1xuXHRcdFx0XHRjb25zdCBvTWV0YWRhdGEgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCk7XG5cdFx0XHRcdGNvbnN0IG9VSU1hbmlmZXN0ID0gb01ldGFkYXRhLmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWlcIik7XG5cdFx0XHRcdGNvbnN0IHNJY29uID0gKG9VSU1hbmlmZXN0ICYmIG9VSU1hbmlmZXN0Lmljb25zICYmIG9VSU1hbmlmZXN0Lmljb25zLmljb24pIHx8IFwiXCI7XG5cdFx0XHRcdGNvbnN0IG9BcHBNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKTtcblx0XHRcdFx0Y29uc3Qgc1RpdGxlID0gKG9BcHBNYW5pZmVzdCAmJiBvQXBwTWFuaWZlc3QudGl0bGUpIHx8IFwiXCI7XG5cdFx0XHRcdC8vIFRPRE86IGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzZW1hbnRpYyBkYXRlIHVzZWQgYmVmb3JlIGFkZGluZyBzZXJ2aWNlVVJMIGFzIEJMSTpGSU9SSVRFQ0hQMS0xODAyM1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aWxlID0ge1xuXHRcdFx0XHRcdGljb246IHNJY29uLFxuXHRcdFx0XHRcdHRpdGxlOiBzVGl0bGUsXG5cdFx0XHRcdFx0cXVlcnlVcmw6IGdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsKHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpKVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aXRsZSA9IGRvY3VtZW50LnRpdGxlO1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS5qYW0udXJsID0gc0phbVVybDtcblx0XHRcdFx0Ly8gTVMgVGVhbXMgY29sbGFib3JhdGlvbiBkb2VzIG5vdCB3YW50IHRvIGFsbG93IGZ1cnRoZXIgY2hhbmdlcyB0byB0aGUgVVJMXG5cdFx0XHRcdC8vIHNvIHVwZGF0ZSBjb2xsb2JvcmF0aW9uSW5mbyBtb2RlbCBhdCBMUiBvdmVycmlkZSB0byBpZ25vcmUgZnVydGhlciBleHRlbnNpb24gY2hhbmdlcyBhdCBtdWx0aXBsZSBsZXZlbHNcblx0XHRcdFx0Y29uc3QgY29sbGFib3JhdGlvbkluZm9Nb2RlbDogSlNPTk1vZGVsID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRNb2RlbChcImNvbGxhYm9yYXRpb25JbmZvXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi91cmxcIiwgb1NoYXJlTWV0YWRhdGEudXJsKTtcblx0XHRcdFx0Y29sbGFib3JhdGlvbkluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9hcHBUaXRsZVwiLCBvU2hhcmVNZXRhZGF0YS50aXRsZSk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHR9KTtcblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0U2hhcmVFbWFpbFVybCgpKS50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IHNGTFBVcmw7XG5cdFx0XHRyZXR1cm4gb1NoYXJlTWV0YWRhdGE7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFPQSxTQUFTQSxXQUFXLENBQUNDLFdBQWlDLEVBQUU7SUFBQTtJQUN2RCxJQUFNQyxNQUFNLDRCQUFHRCxXQUFXLENBQUNFLFNBQVMsMERBQXJCLDJCQUFBRixXQUFXLENBQWM7SUFDeEMsSUFBSSxDQUFDQyxNQUFNLEVBQUU7TUFDWixPQUFPLEVBQUU7SUFDVjtJQUNBLElBQU1FLFFBQVEsR0FBR0YsTUFBTSxDQUFDRyxhQUFhLEVBQUUsSUFBSUgsTUFBTSxDQUFDSSxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ3JFLElBQU1DLFlBQVksR0FBSUgsUUFBUSxJQUFLQSxRQUFRLENBQVNJLGNBQWMsRUFBRSxJQUFLLEVBQUU7SUFDM0UsSUFBTUMsU0FBUyxHQUFHRixZQUFZLENBQUNHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDekMsSUFBTUMsT0FBTyxhQUFNRixTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQVU7SUFDekM7SUFDQTtJQUNBO0lBQ0EsSUFBTUcsZ0JBQXVCLEdBQUcsRUFBRTtJQUNsQyxJQUFJSCxTQUFTLENBQUNJLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDekIsSUFBTUMsU0FBUyxHQUFHTCxTQUFTLENBQUMsQ0FBQyxDQUFDO01BQzlCSyxTQUFTLENBQUNKLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLFVBQVVDLFFBQWEsRUFBRTtRQUNyRCxJQUFNQyxjQUFjLEdBQUdELFFBQVEsQ0FB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
|