@sapui5/sap.fe.core 1.135.0 → 1.136.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +3 -2
- package/src/sap/fe/core/ActionRuntime.ts +3 -1
- package/src/sap/fe/core/AppComponent.js +6 -4
- package/src/sap/fe/core/AppComponent.ts +3 -1
- package/src/sap/fe/core/AppStateHandler.js +8 -6
- package/src/sap/fe/core/AppStateHandler.ts +7 -5
- package/src/sap/fe/core/CommonUtils.js +4 -1
- package/src/sap/fe/core/CommonUtils.ts +12 -2
- package/src/sap/fe/core/ExtensionAPI.js +5 -3
- package/src/sap/fe/core/ExtensionAPI.ts +4 -2
- package/src/sap/fe/core/PageController.js +13 -1
- package/src/sap/fe/core/PageController.ts +13 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +13 -5
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +19 -6
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +4 -2
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +3 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +58 -14
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +71 -11
- package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +184 -17
- package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +204 -12
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +12 -3
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +11 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +35 -5
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +41 -1
- package/src/sap/fe/core/controllerextensions/Routing.js +6 -6
- package/src/sap/fe/core/controllerextensions/Routing.ts +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +3 -11
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +2 -10
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +11 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +12 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +21 -6
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +19 -5
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +17 -14
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +19 -17
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +4 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +10 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +8 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +33 -31
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +3 -3
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +4 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +2 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.tsx +8 -1
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +4 -3
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +7 -2
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.js +68 -0
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.tsx +52 -0
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.js +144 -0
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.tsx +128 -0
- package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.js +53 -0
- package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.tsx +39 -0
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +18 -8
- package/src/sap/fe/core/converters/controls/Common/Action.js +54 -5
- package/src/sap/fe/core/converters/controls/Common/Action.ts +59 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -4
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -4
- package/src/sap/fe/core/converters/controls/Common/Form.js +13 -4
- package/src/sap/fe/core/converters/controls/Common/Form.ts +13 -3
- package/src/sap/fe/core/converters/controls/Common/Table.js +29 -9
- package/src/sap/fe/core/converters/controls/Common/Table.ts +38 -8
- package/src/sap/fe/core/converters/controls/Common/table/Columns.js +14 -16
- package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +61 -96
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +62 -13
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +75 -13
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +4 -33
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +4 -44
- package/src/sap/fe/core/converters/controls/ListReport/FilterField.js +106 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterField.ts +129 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +9 -4
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +8 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +7 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +5 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +29 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +40 -16
- package/src/sap/fe/core/designtime/AnnotationBasedChanges.js +34 -16
- package/src/sap/fe/core/designtime/AnnotationBasedChanges.ts +35 -16
- package/src/sap/fe/core/designtime/messagebundle_ar.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_bg.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ca.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_cnr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_cs.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_cy.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_da.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_de.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_el.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_en.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_en_GB.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_es.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_es_MX.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_et.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_fi.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_fr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_fr_CA.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_hi.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_hr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_hu.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_id.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_it.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_iw.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ja.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_kk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ko.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_lt.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_lv.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_mk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ms.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_nl.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_no.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_pl.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_pt.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_pt_PT.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ro.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ru.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sh.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sl.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sv.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_th.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_tr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_uk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_vi.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_zh_CN.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_zh_TW.properties +7 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +24 -3
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +28 -2
- package/src/sap/fe/core/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/helpers/BindingHelper.ts +2 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +4 -9
- package/src/sap/fe/core/helpers/DeleteHelper.ts +3 -8
- package/src/sap/fe/core/helpers/ModelHelper.js +14 -4
- package/src/sap/fe/core/helpers/ModelHelper.ts +15 -4
- package/src/sap/fe/core/helpers/PasteHelper.js +38 -39
- package/src/sap/fe/core/helpers/PasteHelper.ts +49 -51
- package/src/sap/fe/core/helpers/WebSocket.js +10 -1
- package/src/sap/fe/core/helpers/WebSocket.ts +8 -0
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +41 -2
- package/src/sap/fe/core/messagebundle_ar.properties +23 -2
- package/src/sap/fe/core/messagebundle_bg.properties +23 -2
- package/src/sap/fe/core/messagebundle_ca.properties +21 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +23 -2
- package/src/sap/fe/core/messagebundle_cs.properties +21 -0
- package/src/sap/fe/core/messagebundle_cy.properties +21 -0
- package/src/sap/fe/core/messagebundle_da.properties +23 -2
- package/src/sap/fe/core/messagebundle_de.properties +23 -2
- package/src/sap/fe/core/messagebundle_el.properties +21 -0
- package/src/sap/fe/core/messagebundle_en.properties +23 -2
- package/src/sap/fe/core/messagebundle_en_GB.properties +23 -2
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +23 -2
- package/src/sap/fe/core/messagebundle_es.properties +21 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +21 -0
- package/src/sap/fe/core/messagebundle_et.properties +21 -0
- package/src/sap/fe/core/messagebundle_fi.properties +21 -0
- package/src/sap/fe/core/messagebundle_fr.properties +22 -1
- package/src/sap/fe/core/messagebundle_fr_CA.properties +21 -0
- package/src/sap/fe/core/messagebundle_hi.properties +22 -1
- package/src/sap/fe/core/messagebundle_hr.properties +24 -3
- package/src/sap/fe/core/messagebundle_hu.properties +21 -0
- package/src/sap/fe/core/messagebundle_id.properties +21 -0
- package/src/sap/fe/core/messagebundle_it.properties +23 -2
- package/src/sap/fe/core/messagebundle_iw.properties +21 -0
- package/src/sap/fe/core/messagebundle_ja.properties +21 -0
- package/src/sap/fe/core/messagebundle_kk.properties +21 -0
- package/src/sap/fe/core/messagebundle_ko.properties +21 -0
- package/src/sap/fe/core/messagebundle_lt.properties +21 -0
- package/src/sap/fe/core/messagebundle_lv.properties +23 -2
- package/src/sap/fe/core/messagebundle_mk.properties +21 -0
- package/src/sap/fe/core/messagebundle_ms.properties +22 -1
- package/src/sap/fe/core/messagebundle_nl.properties +21 -0
- package/src/sap/fe/core/messagebundle_no.properties +21 -0
- package/src/sap/fe/core/messagebundle_pl.properties +23 -2
- package/src/sap/fe/core/messagebundle_pt.properties +23 -2
- package/src/sap/fe/core/messagebundle_pt_PT.properties +21 -0
- package/src/sap/fe/core/messagebundle_ro.properties +23 -2
- package/src/sap/fe/core/messagebundle_ru.properties +22 -1
- package/src/sap/fe/core/messagebundle_sh.properties +23 -2
- package/src/sap/fe/core/messagebundle_sk.properties +21 -0
- package/src/sap/fe/core/messagebundle_sl.properties +23 -2
- package/src/sap/fe/core/messagebundle_sr.properties +23 -2
- package/src/sap/fe/core/messagebundle_sv.properties +21 -0
- package/src/sap/fe/core/messagebundle_th.properties +21 -0
- package/src/sap/fe/core/messagebundle_tr.properties +21 -0
- package/src/sap/fe/core/messagebundle_uk.properties +23 -2
- package/src/sap/fe/core/messagebundle_vi.properties +23 -2
- package/src/sap/fe/core/messagebundle_zh_CN.properties +23 -2
- package/src/sap/fe/core/messagebundle_zh_TW.properties +21 -0
- package/src/sap/fe/core/rootView/Fcl.controller.js +5 -5
- package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -4
- package/src/sap/fe/core/rootView/NavContainer.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js +61 -9
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +70 -7
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +28 -12
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +27 -13
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +7 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +6 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +2 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +4 -3
- package/src/sap/fe/core/services/ShellServicesFactory.ts +5 -3
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +27 -3
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +32 -3
- package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +198 -58
- package/src/sap/fe/core/templating/EntitySetHelper.ts +221 -61
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +6 -7
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +9 -7
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/MetaPath", "sap/ui/core/Component", "sap/ui/core/Lib", "sap/fe/core/templating/PropertyHelper", "sap/ui/rta/plugin/annotations/AnnotationTypes"], function (Log, MetaModelConverter, MetaPath, Component, Lib, PropertyHelper, AnnotationTypes) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/MetaPath", "sap/ui/core/Component", "sap/ui/core/Lib", "sap/fe/core/templating/PropertyHelper", "sap/fe/core/CommonUtils", "sap/ui/rta/plugin/annotations/AnnotationTypes"], function (Log, MetaModelConverter, MetaPath, Component, Lib, PropertyHelper, CommonUtils, AnnotationTypes) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -81,29 +81,43 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/MetaModelConverter", "sap
|
|
|
81
81
|
}
|
|
82
82
|
return properties;
|
|
83
83
|
}
|
|
84
|
+
function getTargetPropertyFromFormElement(oControl) {
|
|
85
|
+
let targetProperty;
|
|
86
|
+
if (oControl.isA("sap.ui.layout.form.FormElement")) {
|
|
87
|
+
const fields = oControl.getFields();
|
|
88
|
+
if (fields?.length > 0 && fields[0].isA("sap.fe.macros.Field")) {
|
|
89
|
+
const targetObject = fields[0];
|
|
90
|
+
targetProperty = targetObject.getMainPropertyRelativePath();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return targetProperty;
|
|
94
|
+
}
|
|
95
|
+
_exports.getTargetPropertyFromFormElement = getTargetPropertyFromFormElement;
|
|
84
96
|
function getRenameAction() {
|
|
85
|
-
let
|
|
86
|
-
let changeLabelText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "RTA_CONTEXT_ACTIONMENU_CHANGELABELS";
|
|
87
|
-
let isAtElementLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
97
|
+
let isAtElementLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
88
98
|
return {
|
|
89
99
|
changeType: "renameLabel",
|
|
90
|
-
title: () => isAtElementLevel ? getText(
|
|
100
|
+
title: () => isAtElementLevel ? getText("RTA_CONTEXT_ACTIONMENU_RENAME") : getText("RTA_CONTEXT_ACTIONMENU_CHANGELABELS"),
|
|
91
101
|
icon: "sap-icon://edit",
|
|
102
|
+
singleRename: isAtElementLevel,
|
|
103
|
+
controlBasedRenameChangeType: "renameField",
|
|
92
104
|
type: AnnotationTypes.StringType,
|
|
93
105
|
delegate: {
|
|
94
106
|
getAnnotationsChangeInfo: (oControl, _annotation) => {
|
|
95
|
-
|
|
107
|
+
let templateComponent = Component.getOwnerComponentFor(oControl);
|
|
108
|
+
if (!templateComponent) {
|
|
109
|
+
const view = CommonUtils.getTargetView(oControl);
|
|
110
|
+
templateComponent = view?.getController().getOwnerComponent();
|
|
111
|
+
}
|
|
96
112
|
if (templateComponent) {
|
|
97
113
|
let targetProperty;
|
|
98
|
-
if (oControl.isA("sap.ui.layout.form.FormElement")) {
|
|
99
|
-
const fields = oControl.getFields();
|
|
100
|
-
if (fields.length > 0 && fields[0].isA("sap.fe.macros.Field")) {
|
|
101
|
-
// const targetObject = fields[0];
|
|
102
|
-
// targetProperty =targetObject.property;
|
|
103
|
-
// We could get from the Field the current property / where it comes from, but we need to add an API for that
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
114
|
const properties = collectProperties(templateComponent, oControl, () => true);
|
|
115
|
+
const targetPropertyPath = getTargetPropertyFromFormElement(oControl);
|
|
116
|
+
if (targetPropertyPath) {
|
|
117
|
+
targetProperty = properties?.find(prop => {
|
|
118
|
+
return prop.property.name === targetPropertyPath;
|
|
119
|
+
})?.property;
|
|
120
|
+
}
|
|
107
121
|
if (properties && properties.length > 0) {
|
|
108
122
|
return {
|
|
109
123
|
serviceUrl: oControl.getModel()?.getServiceUrl(),
|
|
@@ -133,7 +147,11 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/MetaModelConverter", "sap
|
|
|
133
147
|
type: AnnotationTypes.ValueListType,
|
|
134
148
|
delegate: {
|
|
135
149
|
getAnnotationsChangeInfo: (oControl, _annotation) => {
|
|
136
|
-
|
|
150
|
+
let templateComponent = Component.getOwnerComponentFor(oControl);
|
|
151
|
+
if (!templateComponent) {
|
|
152
|
+
const view = CommonUtils.getTargetView(oControl);
|
|
153
|
+
templateComponent = view?.getController().getOwnerComponent();
|
|
154
|
+
}
|
|
137
155
|
if (templateComponent) {
|
|
138
156
|
const properties = collectProperties(templateComponent, oControl, filterPropertyWithTextAnnotation);
|
|
139
157
|
if (properties && properties.length > 0) {
|
|
@@ -163,4 +181,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/MetaModelConverter", "sap
|
|
|
163
181
|
_exports.getTextArrangementChangeAction = getTextArrangementChangeAction;
|
|
164
182
|
return _exports;
|
|
165
183
|
}, false);
|
|
166
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvdXJjZUJ1bmRsZURlc2lnbnRpbWUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJrZXkiLCJfZXhwb3J0cyIsIlRFWFRfQVJSQU5HRU1FTlRfTEFCRUxTIiwiZmlsdGVyUHJvcGVydHlXaXRoVGV4dEFubm90YXRpb24iLCJwcm9wIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwidW5kZWZpbmVkIiwiaGFzQ3VycmVuY3kiLCJoYXNVbml0IiwiaXNDdXJyZW5jeSIsImlzVW5pdCIsIl9jb2xsZWN0UHJvcGVydGllcyIsImVudGl0eVR5cGUiLCJwcm9wZXJ0aWVzIiwiZmlsdGVyRm4iLCJ2aXNpdGVkRW50aXR5IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwicHVzaCIsImVudGl0eVByb3BlcnRpZXMiLCJmaWx0ZXIiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJ0YXJnZXRUeXBlIiwibWFwIiwicHJvcGVydHkiLCJjb2xsZWN0UHJvcGVydGllcyIsInRlbXBsYXRlQ29tcG9uZW50IiwiY29udHJvbCIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImNvbnRleHRQYXRoVG9Vc2UiLCJnZXRGdWxsQ29udGV4dFBhdGgiLCJidWlsZGluZ0Jsb2NrIiwiaXNBIiwiZ2V0UGFyZW50IiwibWV0YVBhdGgiLCJnZXRQcm9wZXJ0eSIsInRhcmdldEVudGl0eSIsIk1ldGFQYXRoIiwiY29udmVydFR5cGVzIiwiZSIsIkxvZyIsIndhcm5pbmciLCJnZXRDbG9zZXN0RW50aXR5VHlwZSIsImdldFJlbmFtZUFjdGlvbiIsInJlbmFtZVRleHQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJjaGFuZ2VMYWJlbFRleHQiLCJpc0F0RWxlbWVudExldmVsIiwiY2hhbmdlVHlwZSIsInRpdGxlIiwiaWNvbiIsInR5cGUiLCJBbm5vdGF0aW9uVHlwZXMiLCJTdHJpbmdUeXBlIiwiZGVsZWdhdGUiLCJnZXRBbm5vdGF0aW9uc0NoYW5nZUluZm8iLCJvQ29udHJvbCIsIl9hbm5vdGF0aW9uIiwiQ29tcG9uZW50IiwiZ2V0T3duZXJDb21wb25lbnRGb3IiLCJ0YXJnZXRQcm9wZXJ0eSIsImZpZWxkcyIsImdldEZpZWxkcyIsInNlcnZpY2VVcmwiLCJnZXRNb2RlbCIsImdldFNlcnZpY2VVcmwiLCJwcm9wZXJ0eU5hbWUiLCJuYW1lIiwiYW5ub3RhdGlvblBhdGgiLCJjdXJyZW50VmFsdWUiLCJMYWJlbCIsInRvU3RyaW5nIiwicG9zc2libGVWYWx1ZXMiLCJwcmVTZWxlY3RlZFByb3BlcnR5IiwiZ2V0VGV4dEFycmFuZ2VtZW50Q2hhbmdlQWN0aW9uIiwiVmFsdWVMaXN0VHlwZSIsImRlZmF1bHRUeXBlIiwiVGV4dEFycmFuZ2VtZW50IiwiT2JqZWN0Iiwia2V5cyIsInNLZXkiLCJ0ZXh0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBbm5vdGF0aW9uQmFzZWRDaGFuZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5VHlwZSwgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IFRleHRBcnJhbmdlbWVudFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgTWV0YVBhdGggZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YVBhdGhcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuLy8gT0sgc2luY2Ugd2UgYXJlIGluIGRlc2lnbnRpbWUgd2UgY2FuIGlnbm9yZSB0aGF0IGRlcGVuZGVuY3lcbmltcG9ydCB7IGhhc0N1cnJlbmN5LCBoYXNVbml0LCBpc0N1cnJlbmN5LCBpc1VuaXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcInNhcC9mZS9tYWNyb3MvRmllbGRcIjtcbmltcG9ydCB0eXBlIEZvcm1FbGVtZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUVsZW1lbnRcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgQW5ub3RhdGlvblR5cGVzIGZyb20gXCJzYXAvdWkvcnRhL3BsdWdpbi9hbm5vdGF0aW9ucy9Bbm5vdGF0aW9uVHlwZXNcIjtcblxuY29uc3QgcmVzb3VyY2VCdW5kbGVEZXNpZ250aW1lID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmUuZGVzaWdudGltZVwiKSE7XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0ID0gZnVuY3Rpb24gKGtleTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHJlc291cmNlQnVuZGxlRGVzaWdudGltZS5nZXRUZXh0KGtleSk7XG59O1xuXG50eXBlIEFubm90YXRpb25DaGFuZ2VSZXR1cm5UeXBlID0ge1xuXHRzZXJ2aWNlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdHByb3BlcnRpZXM6IHtcblx0XHRwcm9wZXJ0eU5hbWU6IHN0cmluZztcblx0XHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRcdGN1cnJlbnRWYWx1ZTogc3RyaW5nO1xuXHR9W107XG5cdHBvc3NpYmxlVmFsdWVzOiB7IGtleTogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdO1xuXHRwcmVTZWxlY3RlZFByb3BlcnR5OiBzdHJpbmc7IC8vIGlmIHRoZSBhY3Rpb24gaXMgdHJpZ2dlcmVkIGZyb20gYSBjb250cm9sIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBwcm9wZXJ0eSwgb25seSB0aGlzIG9uZSB3aWxsIGJlIHNob3duIGluIHRoZSBEaWFsb2cgaW5pdGlhbGx5IChzZWFyY2ggZmllbGQgcG9wdWxhdGVkIHdpdGggdGhpcyBzdHJpbmcpXG59O1xuXG5jb25zdCBURVhUX0FSUkFOR0VNRU5UX0xBQkVMUyA9IHtcblx0W1RleHRBcnJhbmdlbWVudFR5cGUuVGV4dE9ubHldOiBcIlRleHQgT25seVwiLFxuXHRbVGV4dEFycmFuZ2VtZW50VHlwZS5UZXh0Rmlyc3RdOiBcIlRleHQgRmlyc3RcIixcblx0W1RleHRBcnJhbmdlbWVudFR5cGUuVGV4dExhc3RdOiBcIlRleHQgTGFzdFwiLFxuXHRbVGV4dEFycmFuZ2VtZW50VHlwZS5UZXh0U2VwYXJhdGVdOiBcIklEIE9ubHlcIlxufTtcblxuZnVuY3Rpb24gZmlsdGVyUHJvcGVydHlXaXRoVGV4dEFubm90YXRpb24ocHJvcDogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuIHByb3AuYW5ub3RhdGlvbnMuQ29tbW9uPy5UZXh0ICE9PSB1bmRlZmluZWQgJiYgIWhhc0N1cnJlbmN5KHByb3ApICYmICFoYXNVbml0KHByb3ApICYmICFpc0N1cnJlbmN5KHByb3ApICYmICFpc1VuaXQocHJvcCk7XG59XG5cbi8qKlxuICogQ29sbGVjdHMgYWxsIHByb3BlcnRpZXMgd2l0aCBhIFRleHQgYW5ub3RhdGlvbiBmcm9tIHRoZSBnaXZlbiBlbnRpdHkgdHlwZSBhbmQgaXRzIG5hdmlnYXRpb24gcHJvcGVydGllcy5cbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBlbnRpdHkgdHlwZSB0byBzdGFydCB3aXRoXG4gKiBAcGFyYW0gcHJvcGVydGllcyBUaGUgYXJyYXkgdG8gY29sbGVjdCB0aGUgcHJvcGVydGllcyBpblxuICogQHBhcmFtIGZpbHRlckZuIEEgZmlsdGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGljaCBwcm9wZXJ0aWVzIHRvIGNvbGxlY3RcbiAqIEBwYXJhbSB2aXNpdGVkRW50aXR5IEEgbWFwIHRvIGtlZXAgdHJhY2sgb2YgdmlzaXRlZCBlbnRpdGllc1xuICovXG5mdW5jdGlvbiBfY29sbGVjdFByb3BlcnRpZXMoXG5cdGVudGl0eVR5cGU6IEVudGl0eVR5cGUsXG5cdHByb3BlcnRpZXM6IHsgcHJvcGVydHk6IFByb3BlcnR5OyBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIH1bXSxcblx0ZmlsdGVyRm46IChwcm9wOiBQcm9wZXJ0eSkgPT4gYm9vbGVhbixcblx0dmlzaXRlZEVudGl0eTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj5cbik6IHZvaWQge1xuXHRpZiAodmlzaXRlZEVudGl0eVtlbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZV0pIHtcblx0XHRyZXR1cm47XG5cdH1cblx0dmlzaXRlZEVudGl0eVtlbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZV0gPSB0cnVlO1xuXHRwcm9wZXJ0aWVzLnB1c2goXG5cdFx0Li4uZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzXG5cdFx0XHQuZmlsdGVyKGZpbHRlckZuKVxuXHRcdFx0LmZpbHRlcigocHJvcCkgPT4ge1xuXHRcdFx0XHQvLyBBbHdheXMgZmlsdGVyIG91dCBVSS5IaWRkZW4gPSB0cnVlXG5cdFx0XHRcdC8vIEFsd2F5cyBmaWx0ZXIgb3V0IGNvbXBsZXggdHlwZVxuXHRcdFx0XHRpZiAocHJvcC5hbm5vdGF0aW9ucy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUgfHwgISFwcm9wLnRhcmdldFR5cGUpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9KVxuXHRcdFx0Lm1hcCgocHJvcDogUHJvcGVydHkpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRwcm9wZXJ0eTogcHJvcCxcblx0XHRcdFx0XHRlbnRpdHlUeXBlOiBlbnRpdHlUeXBlXG5cdFx0XHRcdH07XG5cdFx0XHR9KVxuXHQpO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0UHJvcGVydGllcyhcblx0dGVtcGxhdGVDb21wb25lbnQ6IFRlbXBsYXRlQ29tcG9uZW50LFxuXHRjb250cm9sOiBNYW5hZ2VkT2JqZWN0LFxuXHRmaWx0ZXJGbjogKHByb3A6IFByb3BlcnR5KSA9PiBib29sZWFuXG4pOiB7IHByb3BlcnR5OiBQcm9wZXJ0eTsgZW50aXR5VHlwZTogRW50aXR5VHlwZSB9W10gfCBudWxsIHtcblx0Y29uc3QgbWV0YU1vZGVsID0gdGVtcGxhdGVDb21wb25lbnQuZ2V0TWV0YU1vZGVsKCk7XG5cdGNvbnN0IGNvbnRleHRQYXRoVG9Vc2UgPSB0ZW1wbGF0ZUNvbXBvbmVudC5nZXRGdWxsQ29udGV4dFBhdGgoKTtcblx0Ly8gRmluZCBjbG9zZXN0IGJ1aWxkaW5nIGJsb2NrXG5cdGxldCBidWlsZGluZ0Jsb2NrOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCA9IGNvbnRyb2w7XG5cdHdoaWxlIChidWlsZGluZ0Jsb2NrICYmICFidWlsZGluZ0Jsb2NrLmlzQTxCdWlsZGluZ0Jsb2NrPihcInNhcC5mZS5jb3JlLmJ1aWxkaW5nQmxvY2tzLkJ1aWxkaW5nQmxvY2tcIikpIHtcblx0XHRidWlsZGluZ0Jsb2NrID0gYnVpbGRpbmdCbG9jay5nZXRQYXJlbnQoKTtcblx0fVxuXHRsZXQgbWV0YVBhdGggPSBjb250ZXh0UGF0aFRvVXNlITtcblx0aWYgKGJ1aWxkaW5nQmxvY2spIHtcblx0XHRtZXRhUGF0aCA9IGJ1aWxkaW5nQmxvY2suZ2V0UHJvcGVydHkoXCJtZXRhUGF0aFwiKSA/PyBjb250ZXh0UGF0aFRvVXNlO1xuXHR9XG5cdGNvbnN0IHByb3BlcnRpZXM6IHsgcHJvcGVydHk6IFByb3BlcnR5OyBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIH1bXSA9IFtdO1xuXHRpZiAobWV0YU1vZGVsICYmIGNvbnRleHRQYXRoVG9Vc2UpIHtcblx0XHRsZXQgdGFyZ2V0RW50aXR5OiBNZXRhUGF0aDxFbnRpdHlUeXBlPjtcblx0XHR0cnkge1xuXHRcdFx0dGFyZ2V0RW50aXR5ID0gbmV3IE1ldGFQYXRoKGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpLCBtZXRhUGF0aCwgY29udGV4dFBhdGhUb1VzZSk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLndhcm5pbmcoYE5vIG1ldGFtb2RlbCBvciBtZXRhUGF0aCBpcyBub3QgcmVhY2hhYmxlIHdpdGggJHttZXRhUGF0aH0gYW5kICR7Y29udGV4dFBhdGhUb1VzZX1gKTtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdGNvbnN0IHZpc2l0ZWRFbnRpdHk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG5cdFx0Ly8gQ29sbGVjdCBhbGwgcHJvcGVydGllcywgZG9uJ3QgYXBwbHkgZmlsdGVyc1xuXHRcdF9jb2xsZWN0UHJvcGVydGllcyh0YXJnZXRFbnRpdHkuZ2V0Q2xvc2VzdEVudGl0eVR5cGUoKSwgcHJvcGVydGllcywgZmlsdGVyRm4sIHZpc2l0ZWRFbnRpdHkpO1xuXHR9XG5cdHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVuYW1lQWN0aW9uKFxuXHRyZW5hbWVUZXh0ID0gXCJSVEFfQ09OVEVYVF9BQ1RJT05NRU5VX1JFTkFNRVwiLFxuXHRjaGFuZ2VMYWJlbFRleHQgPSBcIlJUQV9DT05URVhUX0FDVElPTk1FTlVfQ0hBTkdFTEFCRUxTXCIsXG5cdGlzQXRFbGVtZW50TGV2ZWwgPSBmYWxzZVxuKToge1xuXHRjaGFuZ2VUeXBlOiBzdHJpbmc7XG5cdHRpdGxlOiAoKSA9PiBzdHJpbmc7XG5cdGljb246IHN0cmluZztcblx0dHlwZTogc3RyaW5nO1xuXHRkZWxlZ2F0ZTogeyBnZXRBbm5vdGF0aW9uc0NoYW5nZUluZm86IChvQ29udHJvbDogTWFuYWdlZE9iamVjdCwgX2Fubm90YXRpb246IHN0cmluZykgPT4gQW5ub3RhdGlvbkNoYW5nZVJldHVyblR5cGUgfCBudWxsIH07XG59IHtcblx0cmV0dXJuIHtcblx0XHRjaGFuZ2VUeXBlOiBcInJlbmFtZUxhYmVsXCIsXG5cdFx0dGl0bGU6ICgpOiBzdHJpbmcgPT4gKGlzQXRFbGVtZW50TGV2ZWwgPyBnZXRUZXh0KHJlbmFtZVRleHQpIDogZ2V0VGV4dChjaGFuZ2VMYWJlbFRleHQpKSxcblx0XHRpY29uOiBcInNhcC1pY29uOi8vZWRpdFwiLFxuXHRcdHR5cGU6IEFubm90YXRpb25UeXBlcy5TdHJpbmdUeXBlLFxuXHRcdGRlbGVnYXRlOiB7XG5cdFx0XHRnZXRBbm5vdGF0aW9uc0NoYW5nZUluZm86IChvQ29udHJvbDogTWFuYWdlZE9iamVjdCwgX2Fubm90YXRpb246IHN0cmluZyk6IEFubm90YXRpb25DaGFuZ2VSZXR1cm5UeXBlIHwgbnVsbCA9PiB7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKG9Db250cm9sKSBhcyBUZW1wbGF0ZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblx0XHRcdFx0aWYgKHRlbXBsYXRlQ29tcG9uZW50KSB7XG5cdFx0XHRcdFx0bGV0IHRhcmdldFByb3BlcnR5OiBQcm9wZXJ0eSB8IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRpZiAob0NvbnRyb2wuaXNBPEZvcm1FbGVtZW50PihcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtRWxlbWVudFwiKSkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZmllbGRzID0gb0NvbnRyb2wuZ2V0RmllbGRzKCk7XG5cdFx0XHRcdFx0XHRpZiAoZmllbGRzLmxlbmd0aCA+IDAgJiYgZmllbGRzWzBdLmlzQTxGaWVsZD4oXCJzYXAuZmUubWFjcm9zLkZpZWxkXCIpKSB7XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnN0IHRhcmdldE9iamVjdCA9IGZpZWxkc1swXTtcblx0XHRcdFx0XHRcdFx0Ly8gdGFyZ2V0UHJvcGVydHkgPXRhcmdldE9iamVjdC5wcm9wZXJ0eTtcblx0XHRcdFx0XHRcdFx0Ly8gV2UgY291bGQgZ2V0IGZyb20gdGhlIEZpZWxkIHRoZSBjdXJyZW50IHByb3BlcnR5IC8gd2hlcmUgaXQgY29tZXMgZnJvbSwgYnV0IHdlIG5lZWQgdG8gYWRkIGFuIEFQSSBmb3IgdGhhdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0aWVzID0gY29sbGVjdFByb3BlcnRpZXModGVtcGxhdGVDb21wb25lbnQsIG9Db250cm9sLCAoKSA9PiB0cnVlKTtcblxuXHRcdFx0XHRcdGlmIChwcm9wZXJ0aWVzICYmIHByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0c2VydmljZVVybDogKG9Db250cm9sLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbCB8IHVuZGVmaW5lZCk/LmdldFNlcnZpY2VVcmwoKSxcblx0XHRcdFx0XHRcdFx0cHJvcGVydGllczogcHJvcGVydGllcy5tYXAoKHByb3A6IHsgcHJvcGVydHk6IFByb3BlcnR5OyBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBgJHtwcm9wLnByb3BlcnR5Lm5hbWV9YCxcblx0XHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AuZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AucHJvcGVydHkubmFtZSArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudFZhbHVlOiBwcm9wLnByb3BlcnR5LmFubm90YXRpb25zLkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgPz8gcHJvcC5wcm9wZXJ0eS5uYW1lXG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRcdHBvc3NpYmxlVmFsdWVzOiBbXSxcblx0XHRcdFx0XHRcdFx0cHJlU2VsZWN0ZWRQcm9wZXJ0eTogdGFyZ2V0UHJvcGVydHlcblx0XHRcdFx0XHRcdFx0XHQ/IFwiL1wiICsgdGFyZ2V0UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lICsgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCJcblx0XHRcdFx0XHRcdFx0XHQ6IFwiXCIgLy8gaWYgdGhlIGFjdGlvbiBpcyB0cmlnZ2VyZWQgZnJvbSBhIGNvbnRyb2wgdGhhdCBjb3JyZXNwb25kcyB0byBhIHByb3BlcnR5LCBvbmx5IHRoaXMgb25lIHdpbGwgYmUgc2hvd24gaW4gdGhlIERpYWxvZyBpbml0aWFsbHkgKHNlYXJjaCBmaWVsZCBwb3B1bGF0ZWQgd2l0aCB0aGlzIHN0cmluZylcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRBcnJhbmdlbWVudENoYW5nZUFjdGlvbihrZXkgPSBcIlJUQV9DT05URVhUX0FDVElPTk1FTlVfVEVYVEFSUkFOR0VcIik6IHtcblx0Y2hhbmdlVHlwZTogc3RyaW5nO1xuXHR0aXRsZTogKCkgPT4gc3RyaW5nO1xuXHR0eXBlOiBzdHJpbmc7XG5cdGRlbGVnYXRlOiB7IGdldEFubm90YXRpb25zQ2hhbmdlSW5mbzogKG9Db250cm9sOiBNYW5hZ2VkT2JqZWN0LCBfYW5ub3RhdGlvbjogc3RyaW5nKSA9PiBBbm5vdGF0aW9uQ2hhbmdlUmV0dXJuVHlwZSB8IG51bGwgfTtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGNoYW5nZVR5cGU6IFwidGV4dEFycmFuZ2VtZW50X1Rlc3RcIixcblx0XHR0aXRsZTogKCk6IHN0cmluZyA9PiBnZXRUZXh0KGtleSksXG5cdFx0dHlwZTogQW5ub3RhdGlvblR5cGVzLlZhbHVlTGlzdFR5cGUsXG5cdFx0ZGVsZWdhdGU6IHtcblx0XHRcdGdldEFubm90YXRpb25zQ2hhbmdlSW5mbzogKG9Db250cm9sOiBNYW5hZ2VkT2JqZWN0LCBfYW5ub3RhdGlvbjogc3RyaW5nKTogQW5ub3RhdGlvbkNoYW5nZVJldHVyblR5cGUgfCBudWxsID0+IHtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVDb21wb25lbnQgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3Iob0NvbnRyb2wpIGFzIFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXHRcdFx0XHRpZiAodGVtcGxhdGVDb21wb25lbnQpIHtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0aWVzID0gY29sbGVjdFByb3BlcnRpZXModGVtcGxhdGVDb21wb25lbnQsIG9Db250cm9sLCBmaWx0ZXJQcm9wZXJ0eVdpdGhUZXh0QW5ub3RhdGlvbik7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnRpZXMgJiYgcHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRzZXJ2aWNlVXJsOiAob0NvbnRyb2wuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsIHwgdW5kZWZpbmVkKT8uZ2V0U2VydmljZVVybCgpLFxuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzLm1hcCgocHJvcDogeyBwcm9wZXJ0eTogUHJvcGVydHk7IGVudGl0eVR5cGU6IEVudGl0eVR5cGUgfSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRlZmF1bHRUeXBlID1cblx0XHRcdFx0XHRcdFx0XHRcdHByb3AuZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uVGV4dEFycmFuZ2VtZW50Py50b1N0cmluZygpID8/IFRleHRBcnJhbmdlbWVudFR5cGUuVGV4dEZpcnN0LnRvU3RyaW5nKCk7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRcdHByb3BlcnR5TmFtZTogcHJvcC5wcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpID8/IHByb3AucHJvcGVydHkubmFtZSxcblx0XHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AuZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AucHJvcGVydHkubmFtZSArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5UZXh0QGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlRleHRBcnJhbmdlbWVudFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudFZhbHVlOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwcm9wLnByb3BlcnR5LmFubm90YXRpb25zLkNvbW1vbj8uVGV4dD8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQ/LnRvU3RyaW5nKCkgPz8gZGVmYXVsdFR5cGVcblx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRcdFx0cG9zc2libGVWYWx1ZXM6IE9iamVjdC5rZXlzKFRFWFRfQVJSQU5HRU1FTlRfTEFCRUxTKS5tYXAoKHNLZXkpID0+ICh7XG5cdFx0XHRcdFx0XHRcdFx0a2V5OiBzS2V5LFxuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IFRFWFRfQVJSQU5HRU1FTlRfTEFCRUxTW3NLZXkgYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgVEVYVF9BUlJBTkdFTUVOVF9MQUJFTFNdXG5cdFx0XHRcdFx0XHRcdH0pKSxcblx0XHRcdFx0XHRcdFx0cHJlU2VsZWN0ZWRQcm9wZXJ0eTogXCJcIiAvLyBpZiB0aGUgYWN0aW9uIGlzIHRyaWdnZXJlZCBmcm9tIGEgY29udHJvbCB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgcHJvcGVydHksIG9ubHkgdGhpcyBvbmUgd2lsbCBiZSBzaG93biBpbiB0aGUgRGlhbG9nIGluaXRpYWxseSAoc2VhcmNoIGZpZWxkIHBvcHVsYXRlZCB3aXRoIHRoaXMgc3RyaW5nKVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0VBV0E7RUFJQTtFQUdBLE1BQU1BLHdCQUF3QixHQUFHQyxHQUFHLENBQUNDLG9CQUFvQixDQUFDLHdCQUF3QixDQUFFO0VBRTdFLE1BQU1DLE9BQU8sR0FBRyxTQUFBQSxDQUFVQyxHQUFXLEVBQVU7SUFDckQsT0FBT0osd0JBQXdCLENBQUNHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDO0VBQzdDLENBQUM7RUFBQ0MsUUFBQSxDQUFBRixPQUFBLEdBQUFBLE9BQUE7RUFhRixNQUFNRyx1QkFBdUIsR0FBRztJQUMvQixxQ0FBZ0MsV0FBVztJQUMzQyxzQ0FBaUMsWUFBWTtJQUM3QyxxQ0FBZ0MsV0FBVztJQUMzQyx5Q0FBb0M7RUFDckMsQ0FBQztFQUVELFNBQVNDLGdDQUFnQ0EsQ0FBQ0MsSUFBYyxFQUFXO0lBQ2xFLE9BQU9BLElBQUksQ0FBQ0MsV0FBVyxDQUFDQyxNQUFNLEVBQUVDLElBQUksS0FBS0MsU0FBUyxJQUFJLENBQUNDLFdBQVcsQ0FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQ00sT0FBTyxDQUFDTixJQUFJLENBQUMsSUFBSSxDQUFDTyxVQUFVLENBQUNQLElBQUksQ0FBQyxJQUFJLENBQUNRLE1BQU0sQ0FBQ1IsSUFBSSxDQUFDO0VBQ2pJOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsU0FBU1Msa0JBQWtCQSxDQUMxQkMsVUFBc0IsRUFDdEJDLFVBQTRELEVBQzVEQyxRQUFxQyxFQUNyQ0MsYUFBc0MsRUFDL0I7SUFDUCxJQUFJQSxhQUFhLENBQUNILFVBQVUsQ0FBQ0ksa0JBQWtCLENBQUMsRUFBRTtNQUNqRDtJQUNEO0lBQ0FELGFBQWEsQ0FBQ0gsVUFBVSxDQUFDSSxrQkFBa0IsQ0FBQyxHQUFHLElBQUk7SUFDbkRILFVBQVUsQ0FBQ0ksSUFBSSxDQUNkLEdBQUdMLFVBQVUsQ0FBQ00sZ0JBQWdCLENBQzVCQyxNQUFNLENBQUNMLFFBQVEsQ0FBQyxDQUNoQkssTUFBTSxDQUFFakIsSUFBSSxJQUFLO01BQ2pCO01BQ0E7TUFDQSxJQUFJQSxJQUFJLENBQUNDLFdBQVcsQ0FBQ2lCLEVBQUUsRUFBRUMsTUFBTSxFQUFFQyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUNwQixJQUFJLENBQUNxQixVQUFVLEVBQUU7UUFDekUsT0FBTyxLQUFLO01BQ2I7TUFDQSxPQUFPLElBQUk7SUFDWixDQUFDLENBQUMsQ0FDREMsR0FBRyxDQUFFdEIsSUFBYyxJQUFLO01BQ3hCLE9BQU87UUFDTnVCLFFBQVEsRUFBRXZCLElBQUk7UUFDZFUsVUFBVSxFQUFFQTtNQUNiLENBQUM7SUFDRixDQUFDLENBQ0gsQ0FBQztFQUNGO0VBRUEsU0FBU2MsaUJBQWlCQSxDQUN6QkMsaUJBQW9DLEVBQ3BDQyxPQUFzQixFQUN0QmQsUUFBcUMsRUFDcUI7SUFDMUQsTUFBTWUsU0FBUyxHQUFHRixpQkFBaUIsQ0FBQ0csWUFBWSxDQUFDLENBQUM7SUFDbEQsTUFBTUMsZ0JBQWdCLEdBQUdKLGlCQUFpQixDQUFDSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9EO0lBQ0EsSUFBSUMsYUFBbUMsR0FBR0wsT0FBTztJQUNqRCxPQUFPSyxhQUFhLElBQUksQ0FBQ0EsYUFBYSxDQUFDQyxHQUFHLENBQWdCLDBDQUEwQyxDQUFDLEVBQUU7TUFDdEdELGFBQWEsR0FBR0EsYUFBYSxDQUFDRSxTQUFTLENBQUMsQ0FBQztJQUMxQztJQUNBLElBQUlDLFFBQVEsR0FBR0wsZ0JBQWlCO0lBQ2hDLElBQUlFLGFBQWEsRUFBRTtNQUNsQkcsUUFBUSxHQUFHSCxhQUFhLENBQUNJLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSU4sZ0JBQWdCO0lBQ3JFO0lBQ0EsTUFBTWxCLFVBQTRELEdBQUcsRUFBRTtJQUN2RSxJQUFJZ0IsU0FBUyxJQUFJRSxnQkFBZ0IsRUFBRTtNQUNsQyxJQUFJTyxZQUFrQztNQUN0QyxJQUFJO1FBQ0hBLFlBQVksR0FBRyxJQUFJQyxRQUFRLENBQUNDLFlBQVksQ0FBQ1gsU0FBUyxDQUFDLEVBQUVPLFFBQVEsRUFBRUwsZ0JBQWdCLENBQUM7TUFDakYsQ0FBQyxDQUFDLE9BQU9VLENBQUMsRUFBRTtRQUNYQyxHQUFHLENBQUNDLE9BQU8sQ0FBQyxrREFBa0RQLFFBQVEsUUFBUUwsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqRyxPQUFPLElBQUk7TUFDWjtNQUVBLE1BQU1oQixhQUFzQyxHQUFHLENBQUMsQ0FBQztNQUNqRDtNQUNBSixrQkFBa0IsQ0FBQzJCLFlBQVksQ0FBQ00sb0JBQW9CLENBQUMsQ0FBQyxFQUFFL0IsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsQ0FBQztJQUM3RjtJQUNBLE9BQU9GLFVBQVU7RUFDbEI7RUFFTyxTQUFTZ0MsZUFBZUEsQ0FBQSxFQVU3QjtJQUFBLElBVERDLFVBQVUsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQXpDLFNBQUEsR0FBQXlDLFNBQUEsTUFBRywrQkFBK0I7SUFBQSxJQUM1Q0UsZUFBZSxHQUFBRixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBekMsU0FBQSxHQUFBeUMsU0FBQSxNQUFHLHFDQUFxQztJQUFBLElBQ3ZERyxnQkFBZ0IsR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQXpDLFNBQUEsR0FBQXlDLFNBQUEsTUFBRyxLQUFLO0lBUXhCLE9BQU87TUFDTkksVUFBVSxFQUFFLGFBQWE7TUFDekJDLEtBQUssRUFBRUEsQ0FBQSxLQUFlRixnQkFBZ0IsR0FBR3JELE9BQU8sQ0FBQ2lELFVBQVUsQ0FBQyxHQUFHakQsT0FBTyxDQUFDb0QsZUFBZSxDQUFFO01BQ3hGSSxJQUFJLEVBQUUsaUJBQWlCO01BQ3ZCQyxJQUFJLEVBQUVDLGVBQWUsQ0FBQ0MsVUFBVTtNQUNoQ0MsUUFBUSxFQUFFO1FBQ1RDLHdCQUF3QixFQUFFQSxDQUFDQyxRQUF1QixFQUFFQyxXQUFtQixLQUF3QztVQUM5RyxNQUFNakMsaUJBQWlCLEdBQUdrQyxTQUFTLENBQUNDLG9CQUFvQixDQUFDSCxRQUFRLENBQWtDO1VBQ25HLElBQUloQyxpQkFBaUIsRUFBRTtZQUN0QixJQUFJb0MsY0FBb0M7WUFDeEMsSUFBSUosUUFBUSxDQUFDekIsR0FBRyxDQUFjLGdDQUFnQyxDQUFDLEVBQUU7Y0FDaEUsTUFBTThCLE1BQU0sR0FBR0wsUUFBUSxDQUFDTSxTQUFTLENBQUMsQ0FBQztjQUNuQyxJQUFJRCxNQUFNLENBQUNoQixNQUFNLEdBQUcsQ0FBQyxJQUFJZ0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDOUIsR0FBRyxDQUFRLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ3JFO2dCQUNBO2dCQUNBO2NBQUE7WUFFRjtZQUNBLE1BQU1yQixVQUFVLEdBQUdhLGlCQUFpQixDQUFDQyxpQkFBaUIsRUFBRWdDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQztZQUU3RSxJQUFJOUMsVUFBVSxJQUFJQSxVQUFVLENBQUNtQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2NBQ3hDLE9BQU87Z0JBQ05rQixVQUFVLEVBQUdQLFFBQVEsQ0FBQ1EsUUFBUSxDQUFDLENBQUMsRUFBNkJDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RXZELFVBQVUsRUFBRUEsVUFBVSxDQUFDVyxHQUFHLENBQUV0QixJQUFvRCxJQUFLO2tCQUNwRixPQUFPO29CQUNObUUsWUFBWSxFQUFFLEdBQUduRSxJQUFJLENBQUN1QixRQUFRLENBQUM2QyxJQUFJLEVBQUU7b0JBQ3JDQyxjQUFjLEVBQ2IsR0FBRyxHQUNIckUsSUFBSSxDQUFDVSxVQUFVLENBQUNJLGtCQUFrQixHQUNsQyxHQUFHLEdBQ0hkLElBQUksQ0FBQ3VCLFFBQVEsQ0FBQzZDLElBQUksR0FDbEIsdUNBQXVDO29CQUN4Q0UsWUFBWSxFQUFFdEUsSUFBSSxDQUFDdUIsUUFBUSxDQUFDdEIsV0FBVyxDQUFDQyxNQUFNLEVBQUVxRSxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxDQUFDLElBQUl4RSxJQUFJLENBQUN1QixRQUFRLENBQUM2QztrQkFDcEYsQ0FBQztnQkFDRixDQUFDLENBQUM7Z0JBQ0ZLLGNBQWMsRUFBRSxFQUFFO2dCQUNsQkMsbUJBQW1CLEVBQUViLGNBQWMsR0FDaEMsR0FBRyxHQUFHQSxjQUFjLENBQUMvQyxrQkFBa0IsR0FBRyx1Q0FBdUMsR0FDakYsRUFBRSxDQUFDO2NBQ1AsQ0FBQztZQUNGO1VBQ0Q7VUFDQSxPQUFPLElBQUk7UUFDWjtNQUNEO0lBQ0QsQ0FBQztFQUNGO0VBQUNqQixRQUFBLENBQUE4QyxlQUFBLEdBQUFBLGVBQUE7RUFFTSxTQUFTZ0MsOEJBQThCQSxDQUFBLEVBSzVDO0lBQUEsSUFMNkMvRSxHQUFHLEdBQUFpRCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBekMsU0FBQSxHQUFBeUMsU0FBQSxNQUFHLG9DQUFvQztJQU14RixPQUFPO01BQ05JLFVBQVUsRUFBRSxzQkFBc0I7TUFDbENDLEtBQUssRUFBRUEsQ0FBQSxLQUFjdkQsT0FBTyxDQUFDQyxHQUFHLENBQUM7TUFDakN3RCxJQUFJLEVBQUVDLGVBQWUsQ0FBQ3VCLGFBQWE7TUFDbkNyQixRQUFRLEVBQUU7UUFDVEMsd0JBQXdCLEVBQUVBLENBQUNDLFFBQXVCLEVBQUVDLFdBQW1CLEtBQXdDO1VBQzlHLE1BQU1qQyxpQkFBaUIsR0FBR2tDLFNBQVMsQ0FBQ0Msb0JBQW9CLENBQUNILFFBQVEsQ0FBa0M7VUFDbkcsSUFBSWhDLGlCQUFpQixFQUFFO1lBQ3RCLE1BQU1kLFVBQVUsR0FBR2EsaUJBQWlCLENBQUNDLGlCQUFpQixFQUFFZ0MsUUFBUSxFQUFFMUQsZ0NBQWdDLENBQUM7WUFDbkcsSUFBSVksVUFBVSxJQUFJQSxVQUFVLENBQUNtQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2NBQ3hDLE9BQU87Z0JBQ05rQixVQUFVLEVBQUdQLFFBQVEsQ0FBQ1EsUUFBUSxDQUFDLENBQUMsRUFBNkJDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RXZELFVBQVUsRUFBRUEsVUFBVSxDQUFDVyxHQUFHLENBQUV0QixJQUFvRCxJQUFLO2tCQUNwRixNQUFNNkUsV0FBVyxHQUNoQjdFLElBQUksQ0FBQ1UsVUFBVSxDQUFDVCxXQUFXLENBQUNpQixFQUFFLEVBQUU0RCxlQUFlLEVBQUVOLFFBQVEsQ0FBQyxDQUFDLElBQUksbUNBQThCQSxRQUFRLENBQUMsQ0FBQztrQkFDeEcsT0FBTztvQkFDTkwsWUFBWSxFQUFFbkUsSUFBSSxDQUFDdUIsUUFBUSxDQUFDdEIsV0FBVyxDQUFDQyxNQUFNLEVBQUVxRSxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxDQUFDLElBQUl4RSxJQUFJLENBQUN1QixRQUFRLENBQUM2QyxJQUFJO29CQUN2RkMsY0FBYyxFQUNiLEdBQUcsR0FDSHJFLElBQUksQ0FBQ1UsVUFBVSxDQUFDSSxrQkFBa0IsR0FDbEMsR0FBRyxHQUNIZCxJQUFJLENBQUN1QixRQUFRLENBQUM2QyxJQUFJLEdBQ2xCLGlGQUFpRjtvQkFDbEZFLFlBQVksRUFDWHRFLElBQUksQ0FBQ3VCLFFBQVEsQ0FBQ3RCLFdBQVcsQ0FBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVGLFdBQVcsRUFBRWlCLEVBQUUsRUFBRTRELGVBQWUsRUFBRU4sUUFBUSxDQUFDLENBQUMsSUFBSUs7a0JBQzFGLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDO2dCQUNGSixjQUFjLEVBQUVNLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDbEYsdUJBQXVCLENBQUMsQ0FBQ3dCLEdBQUcsQ0FBRTJELElBQUksS0FBTTtrQkFDbkVyRixHQUFHLEVBQUVxRixJQUFJO2tCQUNUQyxJQUFJLEVBQUVwRix1QkFBdUIsQ0FBQ21GLElBQUk7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNIUCxtQkFBbUIsRUFBRSxFQUFFLENBQUM7Y0FDekIsQ0FBQztZQUNGO1VBQ0Q7VUFDQSxPQUFPLElBQUk7UUFDWjtNQUNEO0lBQ0QsQ0FBQztFQUNGO0VBQUM3RSxRQUFBLENBQUE4RSw4QkFBQSxHQUFBQSw4QkFBQTtFQUFBLE9BQUE5RSxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvdXJjZUJ1bmRsZURlc2lnbnRpbWUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJrZXkiLCJfZXhwb3J0cyIsIlRFWFRfQVJSQU5HRU1FTlRfTEFCRUxTIiwiZmlsdGVyUHJvcGVydHlXaXRoVGV4dEFubm90YXRpb24iLCJwcm9wIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwidW5kZWZpbmVkIiwiaGFzQ3VycmVuY3kiLCJoYXNVbml0IiwiaXNDdXJyZW5jeSIsImlzVW5pdCIsIl9jb2xsZWN0UHJvcGVydGllcyIsImVudGl0eVR5cGUiLCJwcm9wZXJ0aWVzIiwiZmlsdGVyRm4iLCJ2aXNpdGVkRW50aXR5IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwicHVzaCIsImVudGl0eVByb3BlcnRpZXMiLCJmaWx0ZXIiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJ0YXJnZXRUeXBlIiwibWFwIiwicHJvcGVydHkiLCJjb2xsZWN0UHJvcGVydGllcyIsInRlbXBsYXRlQ29tcG9uZW50IiwiY29udHJvbCIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImNvbnRleHRQYXRoVG9Vc2UiLCJnZXRGdWxsQ29udGV4dFBhdGgiLCJidWlsZGluZ0Jsb2NrIiwiaXNBIiwiZ2V0UGFyZW50IiwibWV0YVBhdGgiLCJnZXRQcm9wZXJ0eSIsInRhcmdldEVudGl0eSIsIk1ldGFQYXRoIiwiY29udmVydFR5cGVzIiwiZSIsIkxvZyIsIndhcm5pbmciLCJnZXRDbG9zZXN0RW50aXR5VHlwZSIsImdldFRhcmdldFByb3BlcnR5RnJvbUZvcm1FbGVtZW50Iiwib0NvbnRyb2wiLCJ0YXJnZXRQcm9wZXJ0eSIsImZpZWxkcyIsImdldEZpZWxkcyIsImxlbmd0aCIsInRhcmdldE9iamVjdCIsImdldE1haW5Qcm9wZXJ0eVJlbGF0aXZlUGF0aCIsImdldFJlbmFtZUFjdGlvbiIsImlzQXRFbGVtZW50TGV2ZWwiLCJhcmd1bWVudHMiLCJjaGFuZ2VUeXBlIiwidGl0bGUiLCJpY29uIiwic2luZ2xlUmVuYW1lIiwiY29udHJvbEJhc2VkUmVuYW1lQ2hhbmdlVHlwZSIsInR5cGUiLCJBbm5vdGF0aW9uVHlwZXMiLCJTdHJpbmdUeXBlIiwiZGVsZWdhdGUiLCJnZXRBbm5vdGF0aW9uc0NoYW5nZUluZm8iLCJfYW5ub3RhdGlvbiIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwidmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJnZXRPd25lckNvbXBvbmVudCIsInRhcmdldFByb3BlcnR5UGF0aCIsImZpbmQiLCJuYW1lIiwic2VydmljZVVybCIsImdldE1vZGVsIiwiZ2V0U2VydmljZVVybCIsInByb3BlcnR5TmFtZSIsImFubm90YXRpb25QYXRoIiwiY3VycmVudFZhbHVlIiwiTGFiZWwiLCJ0b1N0cmluZyIsInBvc3NpYmxlVmFsdWVzIiwicHJlU2VsZWN0ZWRQcm9wZXJ0eSIsImdldFRleHRBcnJhbmdlbWVudENoYW5nZUFjdGlvbiIsIlZhbHVlTGlzdFR5cGUiLCJkZWZhdWx0VHlwZSIsIlRleHRBcnJhbmdlbWVudCIsIk9iamVjdCIsImtleXMiLCJzS2V5IiwidGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQW5ub3RhdGlvbkJhc2VkQ2hhbmdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBUZXh0QXJyYW5nZW1lbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB7IGNvbnZlcnRUeXBlcyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IE1ldGFQYXRoIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01ldGFQYXRoXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbi8vIE9LIHNpbmNlIHdlIGFyZSBpbiBkZXNpZ250aW1lIHdlIGNhbiBpZ25vcmUgdGhhdCBkZXBlbmRlbmN5XG5pbXBvcnQgeyBoYXNDdXJyZW5jeSwgaGFzVW5pdCwgaXNDdXJyZW5jeSwgaXNVbml0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB0eXBlIEZpZWxkIGZyb20gXCJzYXAvZmUvbWFjcm9zL0ZpZWxkXCI7XG5pbXBvcnQgdHlwZSBGb3JtRWxlbWVudCBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1FbGVtZW50XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IEFubm90YXRpb25UeXBlcyBmcm9tIFwic2FwL3VpL3J0YS9wbHVnaW4vYW5ub3RhdGlvbnMvQW5ub3RhdGlvblR5cGVzXCI7XG5cbmNvbnN0IHJlc291cmNlQnVuZGxlRGVzaWdudGltZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb3JlLmRlc2lnbnRpbWVcIikhO1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dCA9IGZ1bmN0aW9uIChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiByZXNvdXJjZUJ1bmRsZURlc2lnbnRpbWUuZ2V0VGV4dChrZXkpO1xufTtcblxudHlwZSBBbm5vdGF0aW9uQ2hhbmdlUmV0dXJuVHlwZSA9IHtcblx0c2VydmljZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRwcm9wZXJ0aWVzOiB7XG5cdFx0cHJvcGVydHlOYW1lOiBzdHJpbmc7XG5cdFx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0XHRjdXJyZW50VmFsdWU6IHN0cmluZztcblx0fVtdO1xuXHRwb3NzaWJsZVZhbHVlczogeyBrZXk6IHN0cmluZzsgdGV4dDogc3RyaW5nIH1bXTtcblx0cHJlU2VsZWN0ZWRQcm9wZXJ0eTogc3RyaW5nOyAvLyBpZiB0aGUgYWN0aW9uIGlzIHRyaWdnZXJlZCBmcm9tIGEgY29udHJvbCB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgcHJvcGVydHksIG9ubHkgdGhpcyBvbmUgd2lsbCBiZSBzaG93biBpbiB0aGUgRGlhbG9nIGluaXRpYWxseSAoc2VhcmNoIGZpZWxkIHBvcHVsYXRlZCB3aXRoIHRoaXMgc3RyaW5nKVxufTtcblxuY29uc3QgVEVYVF9BUlJBTkdFTUVOVF9MQUJFTFMgPSB7XG5cdFtUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRPbmx5XTogXCJUZXh0IE9ubHlcIixcblx0W1RleHRBcnJhbmdlbWVudFR5cGUuVGV4dEZpcnN0XTogXCJUZXh0IEZpcnN0XCIsXG5cdFtUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRMYXN0XTogXCJUZXh0IExhc3RcIixcblx0W1RleHRBcnJhbmdlbWVudFR5cGUuVGV4dFNlcGFyYXRlXTogXCJJRCBPbmx5XCJcbn07XG5cbmZ1bmN0aW9uIGZpbHRlclByb3BlcnR5V2l0aFRleHRBbm5vdGF0aW9uKHByb3A6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBwcm9wLmFubm90YXRpb25zLkNvbW1vbj8uVGV4dCAhPT0gdW5kZWZpbmVkICYmICFoYXNDdXJyZW5jeShwcm9wKSAmJiAhaGFzVW5pdChwcm9wKSAmJiAhaXNDdXJyZW5jeShwcm9wKSAmJiAhaXNVbml0KHByb3ApO1xufVxuXG4vKipcbiAqIENvbGxlY3RzIGFsbCBwcm9wZXJ0aWVzIHdpdGggYSBUZXh0IGFubm90YXRpb24gZnJvbSB0aGUgZ2l2ZW4gZW50aXR5IHR5cGUgYW5kIGl0cyBuYXZpZ2F0aW9uIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgZW50aXR5IHR5cGUgdG8gc3RhcnQgd2l0aFxuICogQHBhcmFtIHByb3BlcnRpZXMgVGhlIGFycmF5IHRvIGNvbGxlY3QgdGhlIHByb3BlcnRpZXMgaW5cbiAqIEBwYXJhbSBmaWx0ZXJGbiBBIGZpbHRlciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hpY2ggcHJvcGVydGllcyB0byBjb2xsZWN0XG4gKiBAcGFyYW0gdmlzaXRlZEVudGl0eSBBIG1hcCB0byBrZWVwIHRyYWNrIG9mIHZpc2l0ZWQgZW50aXRpZXNcbiAqL1xuZnVuY3Rpb24gX2NvbGxlY3RQcm9wZXJ0aWVzKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRwcm9wZXJ0aWVzOiB7IHByb3BlcnR5OiBQcm9wZXJ0eTsgZW50aXR5VHlwZTogRW50aXR5VHlwZSB9W10sXG5cdGZpbHRlckZuOiAocHJvcDogUHJvcGVydHkpID0+IGJvb2xlYW4sXG5cdHZpc2l0ZWRFbnRpdHk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+XG4pOiB2b2lkIHtcblx0aWYgKHZpc2l0ZWRFbnRpdHlbZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWVdKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZpc2l0ZWRFbnRpdHlbZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWVdID0gdHJ1ZTtcblx0cHJvcGVydGllcy5wdXNoKFxuXHRcdC4uLmVudGl0eVR5cGUuZW50aXR5UHJvcGVydGllc1xuXHRcdFx0LmZpbHRlcihmaWx0ZXJGbilcblx0XHRcdC5maWx0ZXIoKHByb3ApID0+IHtcblx0XHRcdFx0Ly8gQWx3YXlzIGZpbHRlciBvdXQgVUkuSGlkZGVuID0gdHJ1ZVxuXHRcdFx0XHQvLyBBbHdheXMgZmlsdGVyIG91dCBjb21wbGV4IHR5cGVcblx0XHRcdFx0aWYgKHByb3AuYW5ub3RhdGlvbnMuVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlIHx8ICEhcHJvcC50YXJnZXRUeXBlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSlcblx0XHRcdC5tYXAoKHByb3A6IFByb3BlcnR5KSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0cHJvcGVydHk6IHByb3AsXG5cdFx0XHRcdFx0ZW50aXR5VHlwZTogZW50aXR5VHlwZVxuXHRcdFx0XHR9O1xuXHRcdFx0fSlcblx0KTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdFByb3BlcnRpZXMoXG5cdHRlbXBsYXRlQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCxcblx0Y29udHJvbDogTWFuYWdlZE9iamVjdCxcblx0ZmlsdGVyRm46IChwcm9wOiBQcm9wZXJ0eSkgPT4gYm9vbGVhblxuKTogeyBwcm9wZXJ0eTogUHJvcGVydHk7IGVudGl0eVR5cGU6IEVudGl0eVR5cGUgfVtdIHwgbnVsbCB7XG5cdGNvbnN0IG1ldGFNb2RlbCA9IHRlbXBsYXRlQ29tcG9uZW50LmdldE1ldGFNb2RlbCgpO1xuXHRjb25zdCBjb250ZXh0UGF0aFRvVXNlID0gdGVtcGxhdGVDb21wb25lbnQuZ2V0RnVsbENvbnRleHRQYXRoKCk7XG5cdC8vIEZpbmQgY2xvc2VzdCBidWlsZGluZyBibG9ja1xuXHRsZXQgYnVpbGRpbmdCbG9jazogTWFuYWdlZE9iamVjdCB8IG51bGwgPSBjb250cm9sO1xuXHR3aGlsZSAoYnVpbGRpbmdCbG9jayAmJiAhYnVpbGRpbmdCbG9jay5pc0E8QnVpbGRpbmdCbG9jaz4oXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrcy5CdWlsZGluZ0Jsb2NrXCIpKSB7XG5cdFx0YnVpbGRpbmdCbG9jayA9IGJ1aWxkaW5nQmxvY2suZ2V0UGFyZW50KCk7XG5cdH1cblx0bGV0IG1ldGFQYXRoID0gY29udGV4dFBhdGhUb1VzZSE7XG5cdGlmIChidWlsZGluZ0Jsb2NrKSB7XG5cdFx0bWV0YVBhdGggPSBidWlsZGluZ0Jsb2NrLmdldFByb3BlcnR5KFwibWV0YVBhdGhcIikgPz8gY29udGV4dFBhdGhUb1VzZTtcblx0fVxuXHRjb25zdCBwcm9wZXJ0aWVzOiB7IHByb3BlcnR5OiBQcm9wZXJ0eTsgZW50aXR5VHlwZTogRW50aXR5VHlwZSB9W10gPSBbXTtcblx0aWYgKG1ldGFNb2RlbCAmJiBjb250ZXh0UGF0aFRvVXNlKSB7XG5cdFx0bGV0IHRhcmdldEVudGl0eTogTWV0YVBhdGg8RW50aXR5VHlwZT47XG5cdFx0dHJ5IHtcblx0XHRcdHRhcmdldEVudGl0eSA9IG5ldyBNZXRhUGF0aChjb252ZXJ0VHlwZXMobWV0YU1vZGVsKSwgbWV0YVBhdGgsIGNvbnRleHRQYXRoVG9Vc2UpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdExvZy53YXJuaW5nKGBObyBtZXRhbW9kZWwgb3IgbWV0YVBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoICR7bWV0YVBhdGh9IGFuZCAke2NvbnRleHRQYXRoVG9Vc2V9YCk7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRjb25zdCB2aXNpdGVkRW50aXR5OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXHRcdC8vIENvbGxlY3QgYWxsIHByb3BlcnRpZXMsIGRvbid0IGFwcGx5IGZpbHRlcnNcblx0XHRfY29sbGVjdFByb3BlcnRpZXModGFyZ2V0RW50aXR5LmdldENsb3Nlc3RFbnRpdHlUeXBlKCksIHByb3BlcnRpZXMsIGZpbHRlckZuLCB2aXNpdGVkRW50aXR5KTtcblx0fVxuXHRyZXR1cm4gcHJvcGVydGllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhcmdldFByb3BlcnR5RnJvbUZvcm1FbGVtZW50KG9Db250cm9sOiBNYW5hZ2VkT2JqZWN0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0bGV0IHRhcmdldFByb3BlcnR5O1xuXHRpZiAob0NvbnRyb2wuaXNBPEZvcm1FbGVtZW50PihcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtRWxlbWVudFwiKSkge1xuXHRcdGNvbnN0IGZpZWxkcyA9IG9Db250cm9sLmdldEZpZWxkcygpO1xuXHRcdGlmIChmaWVsZHM/Lmxlbmd0aCA+IDAgJiYgZmllbGRzWzBdLmlzQTxGaWVsZD4oXCJzYXAuZmUubWFjcm9zLkZpZWxkXCIpKSB7XG5cdFx0XHRjb25zdCB0YXJnZXRPYmplY3QgPSBmaWVsZHNbMF07XG5cdFx0XHR0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldE9iamVjdC5nZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgoKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRhcmdldFByb3BlcnR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVuYW1lQWN0aW9uKGlzQXRFbGVtZW50TGV2ZWwgPSBmYWxzZSk6IHtcblx0Y2hhbmdlVHlwZTogc3RyaW5nO1xuXHRzaW5nbGVSZW5hbWU6IGJvb2xlYW47XG5cdGNvbnRyb2xCYXNlZFJlbmFtZUNoYW5nZVR5cGU6IHN0cmluZztcblx0dGl0bGU6ICgpID0+IHN0cmluZztcblx0aWNvbjogc3RyaW5nO1xuXHR0eXBlOiBzdHJpbmc7XG5cdGRlbGVnYXRlOiB7IGdldEFubm90YXRpb25zQ2hhbmdlSW5mbzogKG9Db250cm9sOiBNYW5hZ2VkT2JqZWN0LCBfYW5ub3RhdGlvbjogc3RyaW5nKSA9PiBBbm5vdGF0aW9uQ2hhbmdlUmV0dXJuVHlwZSB8IG51bGwgfTtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGNoYW5nZVR5cGU6IFwicmVuYW1lTGFiZWxcIixcblx0XHR0aXRsZTogKCk6IHN0cmluZyA9PiAoaXNBdEVsZW1lbnRMZXZlbCA/IGdldFRleHQoXCJSVEFfQ09OVEVYVF9BQ1RJT05NRU5VX1JFTkFNRVwiKSA6IGdldFRleHQoXCJSVEFfQ09OVEVYVF9BQ1RJT05NRU5VX0NIQU5HRUxBQkVMU1wiKSksXG5cdFx0aWNvbjogXCJzYXAtaWNvbjovL2VkaXRcIixcblx0XHRzaW5nbGVSZW5hbWU6IGlzQXRFbGVtZW50TGV2ZWwsXG5cdFx0Y29udHJvbEJhc2VkUmVuYW1lQ2hhbmdlVHlwZTogXCJyZW5hbWVGaWVsZFwiLFxuXHRcdHR5cGU6IEFubm90YXRpb25UeXBlcy5TdHJpbmdUeXBlLFxuXHRcdGRlbGVnYXRlOiB7XG5cdFx0XHRnZXRBbm5vdGF0aW9uc0NoYW5nZUluZm86IChvQ29udHJvbDogTWFuYWdlZE9iamVjdCwgX2Fubm90YXRpb246IHN0cmluZyk6IEFubm90YXRpb25DaGFuZ2VSZXR1cm5UeXBlIHwgbnVsbCA9PiB7XG5cdFx0XHRcdGxldCB0ZW1wbGF0ZUNvbXBvbmVudCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihvQ29udHJvbCkgYXMgVGVtcGxhdGVDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cdFx0XHRcdGlmICghdGVtcGxhdGVDb21wb25lbnQpIHtcblx0XHRcdFx0XHRjb25zdCB2aWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhvQ29udHJvbCk7XG5cdFx0XHRcdFx0dGVtcGxhdGVDb21wb25lbnQgPSB2aWV3Py5nZXRDb250cm9sbGVyKCkuZ2V0T3duZXJDb21wb25lbnQoKSBhcyBUZW1wbGF0ZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGVtcGxhdGVDb21wb25lbnQpIHtcblx0XHRcdFx0XHRsZXQgdGFyZ2V0UHJvcGVydHk6IFByb3BlcnR5IHwgdW5kZWZpbmVkO1xuXHRcdFx0XHRcdGNvbnN0IHByb3BlcnRpZXMgPSBjb2xsZWN0UHJvcGVydGllcyh0ZW1wbGF0ZUNvbXBvbmVudCwgb0NvbnRyb2wsICgpID0+IHRydWUpO1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldFByb3BlcnR5UGF0aCA9IGdldFRhcmdldFByb3BlcnR5RnJvbUZvcm1FbGVtZW50KG9Db250cm9sKTtcblx0XHRcdFx0XHRpZiAodGFyZ2V0UHJvcGVydHlQYXRoKSB7XG5cdFx0XHRcdFx0XHR0YXJnZXRQcm9wZXJ0eSA9IHByb3BlcnRpZXM/LmZpbmQoKHByb3ApID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHByb3AucHJvcGVydHkubmFtZSA9PT0gdGFyZ2V0UHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdFx0fSk/LnByb3BlcnR5O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChwcm9wZXJ0aWVzICYmIHByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0c2VydmljZVVybDogKG9Db250cm9sLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbCB8IHVuZGVmaW5lZCk/LmdldFNlcnZpY2VVcmwoKSxcblx0XHRcdFx0XHRcdFx0cHJvcGVydGllczogcHJvcGVydGllcy5tYXAoKHByb3A6IHsgcHJvcGVydHk6IFByb3BlcnR5OyBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBgJHtwcm9wLnByb3BlcnR5Lm5hbWV9YCxcblx0XHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AuZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AucHJvcGVydHkubmFtZSArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudFZhbHVlOiBwcm9wLnByb3BlcnR5LmFubm90YXRpb25zLkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgPz8gcHJvcC5wcm9wZXJ0eS5uYW1lXG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRcdHBvc3NpYmxlVmFsdWVzOiBbXSxcblx0XHRcdFx0XHRcdFx0cHJlU2VsZWN0ZWRQcm9wZXJ0eTogdGFyZ2V0UHJvcGVydHlcblx0XHRcdFx0XHRcdFx0XHQ/IFwiL1wiICsgdGFyZ2V0UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lICsgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCJcblx0XHRcdFx0XHRcdFx0XHQ6IFwiXCIgLy8gaWYgdGhlIGFjdGlvbiBpcyB0cmlnZ2VyZWQgZnJvbSBhIGNvbnRyb2wgdGhhdCBjb3JyZXNwb25kcyB0byBhIHByb3BlcnR5LCBvbmx5IHRoaXMgb25lIHdpbGwgYmUgc2hvd24gaW4gdGhlIERpYWxvZyBpbml0aWFsbHkgKHNlYXJjaCBmaWVsZCBwb3B1bGF0ZWQgd2l0aCB0aGlzIHN0cmluZylcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRBcnJhbmdlbWVudENoYW5nZUFjdGlvbihrZXkgPSBcIlJUQV9DT05URVhUX0FDVElPTk1FTlVfVEVYVEFSUkFOR0VcIik6IHtcblx0Y2hhbmdlVHlwZTogc3RyaW5nO1xuXHR0aXRsZTogKCkgPT4gc3RyaW5nO1xuXHR0eXBlOiBzdHJpbmc7XG5cdGRlbGVnYXRlOiB7IGdldEFubm90YXRpb25zQ2hhbmdlSW5mbzogKG9Db250cm9sOiBNYW5hZ2VkT2JqZWN0LCBfYW5ub3RhdGlvbjogc3RyaW5nKSA9PiBBbm5vdGF0aW9uQ2hhbmdlUmV0dXJuVHlwZSB8IG51bGwgfTtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGNoYW5nZVR5cGU6IFwidGV4dEFycmFuZ2VtZW50X1Rlc3RcIixcblx0XHR0aXRsZTogKCk6IHN0cmluZyA9PiBnZXRUZXh0KGtleSksXG5cdFx0dHlwZTogQW5ub3RhdGlvblR5cGVzLlZhbHVlTGlzdFR5cGUsXG5cdFx0ZGVsZWdhdGU6IHtcblx0XHRcdGdldEFubm90YXRpb25zQ2hhbmdlSW5mbzogKG9Db250cm9sOiBNYW5hZ2VkT2JqZWN0LCBfYW5ub3RhdGlvbjogc3RyaW5nKTogQW5ub3RhdGlvbkNoYW5nZVJldHVyblR5cGUgfCBudWxsID0+IHtcblx0XHRcdFx0bGV0IHRlbXBsYXRlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKG9Db250cm9sKSBhcyBUZW1wbGF0ZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblx0XHRcdFx0aWYgKCF0ZW1wbGF0ZUNvbXBvbmVudCkge1xuXHRcdFx0XHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KG9Db250cm9sKTtcblx0XHRcdFx0XHR0ZW1wbGF0ZUNvbXBvbmVudCA9IHZpZXc/LmdldENvbnRyb2xsZXIoKS5nZXRPd25lckNvbXBvbmVudCgpIGFzIFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0ZW1wbGF0ZUNvbXBvbmVudCkge1xuXHRcdFx0XHRcdGNvbnN0IHByb3BlcnRpZXMgPSBjb2xsZWN0UHJvcGVydGllcyh0ZW1wbGF0ZUNvbXBvbmVudCwgb0NvbnRyb2wsIGZpbHRlclByb3BlcnR5V2l0aFRleHRBbm5vdGF0aW9uKTtcblx0XHRcdFx0XHRpZiAocHJvcGVydGllcyAmJiBwcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VVcmw6IChvQ29udHJvbC5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWwgfCB1bmRlZmluZWQpPy5nZXRTZXJ2aWNlVXJsKCksXG5cdFx0XHRcdFx0XHRcdHByb3BlcnRpZXM6IHByb3BlcnRpZXMubWFwKChwcm9wOiB7IHByb3BlcnR5OiBQcm9wZXJ0eTsgZW50aXR5VHlwZTogRW50aXR5VHlwZSB9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGVmYXVsdFR5cGUgPVxuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcC5lbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5UZXh0QXJyYW5nZW1lbnQ/LnRvU3RyaW5nKCkgPz8gVGV4dEFycmFuZ2VtZW50VHlwZS5UZXh0Rmlyc3QudG9TdHJpbmcoKTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBwcm9wLnByb3BlcnR5LmFubm90YXRpb25zLkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgPz8gcHJvcC5wcm9wZXJ0eS5uYW1lLFxuXHRcdFx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiL1wiICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cHJvcC5lbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSArXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiL1wiICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cHJvcC5wcm9wZXJ0eS5uYW1lICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlRleHRAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuVGV4dEFycmFuZ2VtZW50XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50VmFsdWU6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByb3AucHJvcGVydHkuYW5ub3RhdGlvbnMuQ29tbW9uPy5UZXh0Py5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudD8udG9TdHJpbmcoKSA/PyBkZWZhdWx0VHlwZVxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0XHRwb3NzaWJsZVZhbHVlczogT2JqZWN0LmtleXMoVEVYVF9BUlJBTkdFTUVOVF9MQUJFTFMpLm1hcCgoc0tleSkgPT4gKHtcblx0XHRcdFx0XHRcdFx0XHRrZXk6IHNLZXksXG5cdFx0XHRcdFx0XHRcdFx0dGV4dDogVEVYVF9BUlJBTkdFTUVOVF9MQUJFTFNbc0tleSBhcyB1bmtub3duIGFzIGtleW9mIHR5cGVvZiBURVhUX0FSUkFOR0VNRU5UX0xBQkVMU11cblx0XHRcdFx0XHRcdFx0fSkpLFxuXHRcdFx0XHRcdFx0XHRwcmVTZWxlY3RlZFByb3BlcnR5OiBcIlwiIC8vIGlmIHRoZSBhY3Rpb24gaXMgdHJpZ2dlcmVkIGZyb20gYSBjb250cm9sIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBwcm9wZXJ0eSwgb25seSB0aGlzIG9uZSB3aWxsIGJlIHNob3duIGluIHRoZSBEaWFsb2cgaW5pdGlhbGx5IChzZWFyY2ggZmllbGQgcG9wdWxhdGVkIHdpdGggdGhpcyBzdHJpbmcpXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7RUFXQTtFQUlBO0VBSUEsTUFBTUEsd0JBQXdCLEdBQUdDLEdBQUcsQ0FBQ0Msb0JBQW9CLENBQUMsd0JBQXdCLENBQUU7RUFFN0UsTUFBTUMsT0FBTyxHQUFHLFNBQUFBLENBQVVDLEdBQVcsRUFBVTtJQUNyRCxPQUFPSix3QkFBd0IsQ0FBQ0csT0FBTyxDQUFDQyxHQUFHLENBQUM7RUFDN0MsQ0FBQztFQUFDQyxRQUFBLENBQUFGLE9BQUEsR0FBQUEsT0FBQTtFQWFGLE1BQU1HLHVCQUF1QixHQUFHO0lBQy9CLHFD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RUFBRTtZQUN0QixNQUFNZCxVQUFVLEdBQUdhLGlCQUFpQixDQUFDQyxpQkFBaUIsRUFBRW1CLFFBQVEsRUFBRTdDLGdDQUFnQyxDQUFDO1lBQ25HLElBQUlZLFVBQVUsSUFBSUEsVUFBVSxDQUFDcUMsTUFBTSxHQUFHLENBQUMsRUFBRTtjQUN4QyxPQUFPO2dCQUNOMkIsVUFBVSxFQUFHL0IsUUFBUSxDQUFDZ0MsUUFBUSxDQUFDLENBQUMsRUFBNkJDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RWxFLFVBQVUsRUFBRUEsVUFBVSxDQUFDVyxHQUFHLENBQUV0QixJQUFvRCxJQUFLO2tCQUNwRixNQUFNdUYsV0FBVyxHQUNoQnZGLElBQUksQ0FBQ1UsVUFBVSxDQUFDVCxXQUFXLENBQUNpQixFQUFFLEVBQUVzRSxlQUFlLEVBQUVOLFFBQVEsQ0FBQyxDQUFDLElBQUksbUNBQThCQSxRQUFRLENBQUMsQ0FBQztrQkFDeEcsT0FBTztvQkFDTkosWUFBWSxFQUFFOUUsSUFBSSxDQUFDdUIsUUFBUSxDQUFDdEIsV0FBVyxDQUFDQyxNQUFNLEVBQUUrRSxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxDQUFDLElBQUlsRixJQUFJLENBQUN1QixRQUFRLENBQUNtRCxJQUFJO29CQUN2RkssY0FBYyxFQUNiLEdBQUcsR0FDSC9FLElBQUksQ0FBQ1UsVUFBVSxDQUFDSSxrQkFBa0IsR0FDbEMsR0FBRyxHQUNIZCxJQUFJLENBQUN1QixRQUFRLENBQUNtRCxJQUFJLEdBQ2xCLGlGQUFpRjtvQkFDbEZNLFlBQVksRUFDWGhGLElBQUksQ0FBQ3VCLFFBQVEsQ0FBQ3RCLFdBQVcsQ0FBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVGLFdBQVcsRUFBRWlCLEVBQUUsRUFBRXNFLGVBQWUsRUFBRU4sUUFBUSxDQUFDLENBQUMsSUFBSUs7a0JBQzFGLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDO2dCQUNGSixjQUFjLEVBQUVNLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDNUYsdUJBQXVCLENBQUMsQ0FBQ3dCLEdBQUcsQ0FBRXFFLElBQUksS0FBTTtrQkFDbkUvRixHQUFHLEVBQUUrRixJQUFJO2tCQUNUQyxJQUFJLEVBQUU5Rix1QkFBdUIsQ0FBQzZGLElBQUk7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNIUCxtQkFBbUIsRUFBRSxFQUFFLENBQUM7Y0FDekIsQ0FBQztZQUNGO1VBQ0Q7VUFDQSxPQUFPLElBQUk7UUFDWjtNQUNEO0lBQ0QsQ0FBQztFQUNGO0VBQUN2RixRQUFBLENBQUF3Riw4QkFBQSxHQUFBQSw4QkFBQTtFQUFBLE9BQUF4RixRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -14,6 +14,7 @@ import { hasCurrency, hasUnit, isCurrency, isUnit } from "sap/fe/core/templating
|
|
|
14
14
|
import type Field from "sap/fe/macros/Field";
|
|
15
15
|
import type FormElement from "sap/ui/layout/form/FormElement";
|
|
16
16
|
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
|
17
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
17
18
|
import AnnotationTypes from "sap/ui/rta/plugin/annotations/AnnotationTypes";
|
|
18
19
|
|
|
19
20
|
const resourceBundleDesigntime = Lib.getResourceBundleFor("sap.fe.core.designtime")!;
|
|
@@ -114,12 +115,22 @@ function collectProperties(
|
|
|
114
115
|
return properties;
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
export function
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
)
|
|
118
|
+
export function getTargetPropertyFromFormElement(oControl: ManagedObject): string | undefined {
|
|
119
|
+
let targetProperty;
|
|
120
|
+
if (oControl.isA<FormElement>("sap.ui.layout.form.FormElement")) {
|
|
121
|
+
const fields = oControl.getFields();
|
|
122
|
+
if (fields?.length > 0 && fields[0].isA<Field>("sap.fe.macros.Field")) {
|
|
123
|
+
const targetObject = fields[0];
|
|
124
|
+
targetProperty = targetObject.getMainPropertyRelativePath();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return targetProperty;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function getRenameAction(isAtElementLevel = false): {
|
|
122
131
|
changeType: string;
|
|
132
|
+
singleRename: boolean;
|
|
133
|
+
controlBasedRenameChangeType: string;
|
|
123
134
|
title: () => string;
|
|
124
135
|
icon: string;
|
|
125
136
|
type: string;
|
|
@@ -127,23 +138,27 @@ export function getRenameAction(
|
|
|
127
138
|
} {
|
|
128
139
|
return {
|
|
129
140
|
changeType: "renameLabel",
|
|
130
|
-
title: (): string => (isAtElementLevel ? getText(
|
|
141
|
+
title: (): string => (isAtElementLevel ? getText("RTA_CONTEXT_ACTIONMENU_RENAME") : getText("RTA_CONTEXT_ACTIONMENU_CHANGELABELS")),
|
|
131
142
|
icon: "sap-icon://edit",
|
|
143
|
+
singleRename: isAtElementLevel,
|
|
144
|
+
controlBasedRenameChangeType: "renameField",
|
|
132
145
|
type: AnnotationTypes.StringType,
|
|
133
146
|
delegate: {
|
|
134
147
|
getAnnotationsChangeInfo: (oControl: ManagedObject, _annotation: string): AnnotationChangeReturnType | null => {
|
|
135
|
-
|
|
148
|
+
let templateComponent = Component.getOwnerComponentFor(oControl) as TemplateComponent | undefined;
|
|
149
|
+
if (!templateComponent) {
|
|
150
|
+
const view = CommonUtils.getTargetView(oControl);
|
|
151
|
+
templateComponent = view?.getController().getOwnerComponent() as TemplateComponent | undefined;
|
|
152
|
+
}
|
|
136
153
|
if (templateComponent) {
|
|
137
154
|
let targetProperty: Property | undefined;
|
|
138
|
-
if (oControl.isA<FormElement>("sap.ui.layout.form.FormElement")) {
|
|
139
|
-
const fields = oControl.getFields();
|
|
140
|
-
if (fields.length > 0 && fields[0].isA<Field>("sap.fe.macros.Field")) {
|
|
141
|
-
// const targetObject = fields[0];
|
|
142
|
-
// targetProperty =targetObject.property;
|
|
143
|
-
// We could get from the Field the current property / where it comes from, but we need to add an API for that
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
155
|
const properties = collectProperties(templateComponent, oControl, () => true);
|
|
156
|
+
const targetPropertyPath = getTargetPropertyFromFormElement(oControl);
|
|
157
|
+
if (targetPropertyPath) {
|
|
158
|
+
targetProperty = properties?.find((prop) => {
|
|
159
|
+
return prop.property.name === targetPropertyPath;
|
|
160
|
+
})?.property;
|
|
161
|
+
}
|
|
147
162
|
|
|
148
163
|
if (properties && properties.length > 0) {
|
|
149
164
|
return {
|
|
@@ -185,7 +200,11 @@ export function getTextArrangementChangeAction(key = "RTA_CONTEXT_ACTIONMENU_TEX
|
|
|
185
200
|
type: AnnotationTypes.ValueListType,
|
|
186
201
|
delegate: {
|
|
187
202
|
getAnnotationsChangeInfo: (oControl: ManagedObject, _annotation: string): AnnotationChangeReturnType | null => {
|
|
188
|
-
|
|
203
|
+
let templateComponent = Component.getOwnerComponentFor(oControl) as TemplateComponent | undefined;
|
|
204
|
+
if (!templateComponent) {
|
|
205
|
+
const view = CommonUtils.getTargetView(oControl);
|
|
206
|
+
templateComponent = view?.getController().getOwnerComponent() as TemplateComponent | undefined;
|
|
207
|
+
}
|
|
189
208
|
if (templateComponent) {
|
|
190
209
|
const properties = collectProperties(templateComponent, oControl, filterPropertyWithTextAnnotation);
|
|
191
210
|
if (properties && properties.length > 0) {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u0627\u0644\u062A\u0643\u0648\u064A\u0646
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u062A\u063A\u064A\u064A\u0631 \u062A\u0631\u062A\u064A\u0628 \u0627\u0644\u0646\u0635\u0648\u0635
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u0625\u0639\u0627\u062F\u0629 \u062A\u0633\u0645\u064A\u0629
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u062A\u0633\u0645\u064A\u0627\u062A
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u0430
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438\u0442\u0435
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u0394\u03B9\u03B1\u03BC\u03CC\u03C1\u03C6\u03C9\u03C3\u03B7
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u0394\u03B9\u03AC\u03C4\u03B1\u03BE\u03B7\u03C2 \u039A\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u039C\u03B5\u03C4\u03BF\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u0395\u03C4\u03B9\u03BA\u03B5\u03C4\u03CE\u03BD
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u0915\u0949\u0928\u094D\u092B\u093C\u093F\u0917\u0930\u0947\u0936\u0928
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u091F\u0947\u0915\u094D\u0938\u094D\u091F \u0935\u094D\u092F\u0935\u0938\u094D\u0925\u093E \u092C\u0926\u0932\u0947\u0902
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u0928\u093E\u092E \u092C\u0926\u0932\u0947\u0902
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u0932\u0947\u092C\u0932 \u092C\u0926\u0932\u0947\u0902
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=Konfigur\u00E1ci\u00F3
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=Sz\u00F6vegelrendez\u00E9s m\u00F3dos\u00EDt\u00E1sa
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u00C1tnevez\u00E9s
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=C\u00EDmk\u00E9k m\u00F3dos\u00EDt\u00E1sa
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u05EA\u05E6\u05D5\u05E8\u05D4
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u05E9\u05E0\u05D4 \u05E1\u05D9\u05D3\u05D5\u05E8 \u05D8\u05E7\u05E1\u05D8
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u05E9\u05E0\u05D4 \u05E9\u05DD
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u05E9\u05E0\u05D4 \u05EA\u05D5\u05D5\u05D9\u05D5\u05EA
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u8A2D\u5B9A
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u30C6\u30AD\u30B9\u30C8\u914D\u7F6E\u306E\u5909\u66F4
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u540D\u524D\u306E\u5909\u66F4
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u30E9\u30D9\u30EB\u306E\u5909\u66F4
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u041C\u04D9\u0442\u0456\u043D \u043E\u0440\u043D\u0430\u043B\u0430\u0441\u0443\u044B\u043D \u04E9\u0437\u0433\u0435\u0440\u0442\u0443
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u0410\u0442\u044B\u043D \u04E9\u0437\u0433\u0435\u0440\u0442\u0443
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u0417\u0430\u0442\u0431\u0435\u043B\u0433\u0456\u043B\u0435\u0440\u0434\u0456 \u04E9\u0437\u0433\u0435\u0440\u0442\u0443
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0458\u0430
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u0418\u0437\u043C\u0435\u043D\u0438 \u0433\u043E \u043F\u043E\u0434\u0440\u0435\u0434\u0443\u0432\u0430\u045A\u0435\u0442\u043E \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0442
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u0458
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u041F\u0440\u043E\u043C\u0435\u043D\u0430 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0430\u0442\u0430
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
RTA_CONTEXT_ACTIONMENU_CONFIG=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
|
|
2
|
+
|
|
3
|
+
RTA_CONTEXT_ACTIONMENU_TEXTARRANGE=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043A\u0441\u0442\u0430
|
|
4
|
+
|
|
5
|
+
RTA_CONTEXT_ACTIONMENU_RENAME=\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C
|
|
6
|
+
|
|
7
|
+
RTA_CONTEXT_ACTIONMENU_CHANGELABELS=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043C\u0435\u0442\u043A\u0438
|