@sapui5/sap.fe.templates 1.146.0 → 1.148.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +1 -1
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +45 -10
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +43 -16
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +51 -15
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +39 -3
- package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +35 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +4 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +3 -0
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/overrides/MessageHandler.js +3 -2
- package/src/sap/fe/templates/ListReport/overrides/MessageHandler.ts +2 -1
- package/src/sap/fe/templates/ObjectPage/Component.js +4 -2
- package/src/sap/fe/templates/ObjectPage/Component.ts +3 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +163 -28
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +163 -23
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +246 -35
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +286 -42
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +32 -16
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +46 -33
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDiscardDialog.js +4 -1
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDiscardDialog.tsx +1 -0
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.js +15 -4
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.tsx +11 -2
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +28 -1
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +31 -0
- package/src/sap/fe/templates/ObjectPage/helpers/SectionNavigationHelper.js +72 -0
- package/src/sap/fe/templates/ObjectPage/helpers/SectionNavigationHelper.ts +75 -0
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -15
- package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.js +29 -20
- package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.ts +28 -21
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +4 -3
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +93 -17
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +108 -22
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +12 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/EmphasizedFirstHeaderAction.fragment.xml +182 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ExpandedHeading.fragment.xml +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +2 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +18 -12
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +2 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +2 -0
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/messagebundle.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ar.properties +1 -1
- package/src/sap/fe/templates/messagebundle_bg.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ca.properties +1 -1
- package/src/sap/fe/templates/messagebundle_cnr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_cs.properties +1 -1
- package/src/sap/fe/templates/messagebundle_cy.properties +1 -1
- package/src/sap/fe/templates/messagebundle_da.properties +1 -1
- package/src/sap/fe/templates/messagebundle_de.properties +1 -1
- package/src/sap/fe/templates/messagebundle_el.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_GB.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_es.properties +1 -1
- package/src/sap/fe/templates/messagebundle_es_MX.properties +1 -1
- package/src/sap/fe/templates/messagebundle_et.properties +1 -1
- package/src/sap/fe/templates/messagebundle_fi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_fr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +1 -1
- package/src/sap/fe/templates/messagebundle_hi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_hr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_hu.properties +1 -1
- package/src/sap/fe/templates/messagebundle_id.properties +1 -1
- package/src/sap/fe/templates/messagebundle_it.properties +1 -1
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -2
- package/src/sap/fe/templates/messagebundle_ja.properties +1 -1
- package/src/sap/fe/templates/messagebundle_kk.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ko.properties +1 -1
- package/src/sap/fe/templates/messagebundle_lt.properties +1 -1
- package/src/sap/fe/templates/messagebundle_lv.properties +1 -1
- package/src/sap/fe/templates/messagebundle_mk.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ms.properties +1 -1
- package/src/sap/fe/templates/messagebundle_nl.properties +1 -1
- package/src/sap/fe/templates/messagebundle_no.properties +2 -2
- package/src/sap/fe/templates/messagebundle_pl.properties +1 -1
- package/src/sap/fe/templates/messagebundle_pt.properties +1 -1
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ro.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ru.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sh.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sk.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sl.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sv.properties +1 -1
- package/src/sap/fe/templates/messagebundle_th.properties +1 -1
- package/src/sap/fe/templates/messagebundle_tr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_uk.properties +3 -3
- package/src/sap/fe/templates/messagebundle_vi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +1 -1
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +1 -1
|
@@ -37,6 +37,7 @@ import Text from "sap/m/Text";
|
|
|
37
37
|
import VBox from "sap/m/VBox";
|
|
38
38
|
import type Event from "sap/ui/base/Event";
|
|
39
39
|
import type Control from "sap/ui/core/Control";
|
|
40
|
+
import InvisibleText from "sap/ui/core/InvisibleText";
|
|
40
41
|
import Lib from "sap/ui/core/Lib";
|
|
41
42
|
import { ValueState } from "sap/ui/core/library";
|
|
42
43
|
import type { Field$ChangeEvent } from "sap/ui/mdc/Field";
|
|
@@ -213,6 +214,7 @@ export default class CollaborationDraft extends BuildingBlock {
|
|
|
213
214
|
<>
|
|
214
215
|
<CollaborationDraft.GridTableColumnControl width={CommonHelper.isDesktop() ? "10%" : "3em"}>
|
|
215
216
|
{{
|
|
217
|
+
label: <Text text={this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_TABLE_USER_AVATAR_COLUMN")} />,
|
|
216
218
|
template: (
|
|
217
219
|
<HBox alignItems="Center" justifyContent="SpaceBetween">
|
|
218
220
|
<Avatar displaySize="XS" backgroundColor="{internal>color}" initials="{internal>initials}" />
|
|
@@ -239,6 +241,7 @@ export default class CollaborationDraft extends BuildingBlock {
|
|
|
239
241
|
</CollaborationDraft.GridTableColumnControl>
|
|
240
242
|
<CollaborationDraft.GridTableColumnControl width={CommonHelper.isDesktop() ? "8%" : "3em"}>
|
|
241
243
|
{{
|
|
244
|
+
label: <Text text={this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_TABLE_REMOVE_COLUMN")} />,
|
|
242
245
|
template: (
|
|
243
246
|
<HBox>
|
|
244
247
|
<Button
|
|
@@ -260,6 +263,10 @@ export default class CollaborationDraft extends BuildingBlock {
|
|
|
260
263
|
* @returns The control tree
|
|
261
264
|
*/
|
|
262
265
|
getManageDialogUserTable(): Table | undefined {
|
|
266
|
+
const tableTitle = (
|
|
267
|
+
<InvisibleText text={this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_TABLE_TITLE")} />
|
|
268
|
+
) as InvisibleText;
|
|
269
|
+
|
|
263
270
|
this.manageDialogUserTable = (
|
|
264
271
|
<CollaborationDraft.GridTableControl
|
|
265
272
|
width="100%"
|
|
@@ -267,9 +274,11 @@ export default class CollaborationDraft extends BuildingBlock {
|
|
|
267
274
|
visibleRowCount={CommonHelper.isDesktop() ? "5" : "3"}
|
|
268
275
|
visibleRowCountMode="Fixed"
|
|
269
276
|
selectionMode="None"
|
|
277
|
+
ariaLabelledBy={[tableTitle]}
|
|
270
278
|
>
|
|
271
279
|
{{
|
|
272
|
-
columns: this.getManageDialogUserTableColumns()
|
|
280
|
+
columns: this.getManageDialogUserTableColumns(),
|
|
281
|
+
dependents: tableTitle
|
|
273
282
|
}}
|
|
274
283
|
</CollaborationDraft.GridTableControl>
|
|
275
284
|
);
|
|
@@ -287,7 +296,7 @@ export default class CollaborationDraft extends BuildingBlock {
|
|
|
287
296
|
value="{internal>UserID}"
|
|
288
297
|
additionalValue="{internal>UserDescription}"
|
|
289
298
|
display="DescriptionValue"
|
|
290
|
-
width="
|
|
299
|
+
width="100%"
|
|
291
300
|
required={true}
|
|
292
301
|
valueHelp="userValueHelp"
|
|
293
302
|
placeholder={this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_INPUT_PLACEHOLDER")}
|
|
@@ -42,6 +42,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/HBox", "sap/ui/core/StashedCon
|
|
|
42
42
|
_initializerDefineProperty(_this, "fallbackTitle", _descriptor2, _this);
|
|
43
43
|
_initializerDefineProperty(_this, "_disconnected", _descriptor3, _this);
|
|
44
44
|
_initializerDefineProperty(_this, "disableObjectPageRequestOptimization", _descriptor4, _this);
|
|
45
|
+
_this.lastSetVisibleContext = undefined;
|
|
45
46
|
return _this;
|
|
46
47
|
}
|
|
47
48
|
_inheritsLoose(StashableHBox, _HBox);
|
|
@@ -101,6 +102,28 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/HBox", "sap/ui/core/StashedCon
|
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
return null;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Refreshes the controls bound to navigation properties of the current context. The refreshing is needed in case the visibility has changed but the context has not changed (eg: visibility changed by an action with side effects ).
|
|
109
|
+
* @param lastContext
|
|
110
|
+
*/;
|
|
111
|
+
_proto._refreshControlsBoundToNavigationProperties = function _refreshControlsBoundToNavigationProperties(lastContext) {
|
|
112
|
+
const contextToRefresh = [];
|
|
113
|
+
this.findElements(true).forEach(elem => {
|
|
114
|
+
//if the visibility change is not due to a navigation but to an interactive action
|
|
115
|
+
// we want to refresh only the elements bound to a navigation property
|
|
116
|
+
if (this.getBindingContext() === lastContext) {
|
|
117
|
+
const elemContext = elem.getBindingContext();
|
|
118
|
+
// only refreshing the elements which are bound to navigation properties of the current context, to avoid unnecessary refreshes
|
|
119
|
+
if (elemContext && elemContext.getPath().startsWith(this.getBindingContext().getPath() + "/") && !contextToRefresh.includes(elemContext)) {
|
|
120
|
+
contextToRefresh.push(elemContext);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
contextToRefresh.forEach(async context => context.requestSideEffects([{
|
|
125
|
+
$NavigationPropertyPath: ""
|
|
126
|
+
}]));
|
|
104
127
|
};
|
|
105
128
|
_proto.setVisible = function setVisible(visible) {
|
|
106
129
|
_HBox.prototype.setVisible.call(this, visible);
|
|
@@ -109,12 +132,16 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/HBox", "sap/ui/core/StashedCon
|
|
|
109
132
|
this.findElements(false).forEach(elem => {
|
|
110
133
|
elem.setBindingContext(undefined);
|
|
111
134
|
});
|
|
135
|
+
setTimeout(() => {
|
|
136
|
+
this._refreshControlsBoundToNavigationProperties(this.lastSetVisibleContext);
|
|
137
|
+
}, 0);
|
|
112
138
|
} else {
|
|
113
139
|
this.findElements(false).forEach(elem => {
|
|
114
140
|
elem.setBindingContext(null);
|
|
115
141
|
});
|
|
116
142
|
}
|
|
117
143
|
}
|
|
144
|
+
this.lastSetVisibleContext = this.getBindingContext();
|
|
118
145
|
return this;
|
|
119
146
|
};
|
|
120
147
|
_proto.set_disconnected = function set_disconnected(disconnected) {
|
|
@@ -179,4 +206,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/HBox", "sap/ui/core/StashedCon
|
|
|
179
206
|
StashedControlSupport.mixInto(StashableHBox);
|
|
180
207
|
return StashableHBox;
|
|
181
208
|
}, false);
|
|
182
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGFzaGFibGVIQm94IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiZGVzaWdudGltZSIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9IQm94IiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRUaXRsZSIsInRpdGxlIiwiZ2V0VGl0bGVDb250cm9sIiwiZ2V0VGV4dCIsImZhbGxiYWNrVGl0bGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIm9FdmVudCIsInNldFRleHQiLCJnZXRDb250cm9sSXRlbXMiLCJpdGVtcyIsImFJdGVtcyIsImkiLCJnZXRJdGVtcyIsImdldE1pY3JvQ2hhcnRUaXRsZSIsImdldENvbnRlbnQiLCJjb250ZW50IiwiaXRlbSIsImlzQSIsInNldFZpc2libGUiLCJ2aXNpYmxlIiwiZGlzYWJsZU9iamVjdFBhZ2VSZXF1ZXN0T3B0aW1pemF0aW9uIiwiZ2V0QmluZGluZyIsImdldFJhd1ZhbHVlIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJmaW5kRWxlbWVudHMiLCJmb3JFYWNoIiwiZWxlbSIsInNldEJpbmRpbmdDb250ZXh0Iiwic2V0X2Rpc2Nvbm5lY3RlZCIsImRpc2Nvbm5lY3RlZCIsIl9kaXNjb25uZWN0ZWQiLCJnZXRGb3JtTGFiZWxzIiwicmV0IiwiZm9ybVZCb3giLCJmb3JtRWxlbWVudEhCb3giLCJsYWJlbEN0cmwiLCJwdXNoIiwiSEJveCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciIsIlN0YXNoZWRDb250cm9sU3VwcG9ydCIsIm1peEludG8iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN0YXNoYWJsZUhCb3gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIE1pY3JvQ2hhcnQgZnJvbSBcInNhcC9mZS9tYWNyb3MvTWljcm9DaGFydFwiO1xuaW1wb3J0IHR5cGUgVGl0bGVMaW5rIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL1RpdGxlTGlua1wiO1xuaW1wb3J0IHR5cGUgTWljcm9DaGFydENvbnRhaW5lciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9taWNyb2NoYXJ0L01pY3JvQ2hhcnRDb250YWluZXJcIjtcbmltcG9ydCBIQm94IGZyb20gXCJzYXAvbS9IQm94XCI7XG5pbXBvcnQgdHlwZSBMYWJlbCBmcm9tIFwic2FwL20vTGFiZWxcIjtcbmltcG9ydCB0eXBlIExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCB0eXBlIFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IHR5cGUgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IFN0YXNoZWRDb250cm9sU3VwcG9ydCBmcm9tIFwic2FwL3VpL2NvcmUvU3Rhc2hlZENvbnRyb2xTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBDb21wb3NpdGVCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQ29tcG9zaXRlQmluZGluZ1wiO1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN0YXNoYWJsZUhCb3hcIiwge1xuXHRkZXNpZ250aW1lOiBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9kZXNpZ250aW1lL1N0YXNoYWJsZUhCb3guZGVzaWdudGltZVwiXG59KVxuY2xhc3MgU3Rhc2hhYmxlSEJveCBleHRlbmRzIEhCb3gge1xuXHQvKlxuXHQgKiBUaXRsZSBvZiB0aGUgSGVhZGVyIEZhY2V0LiBOb3QgdmlzaWJsZSBvbiB0aGUgVUkuIFZpc2libGUgb24gdGhlIFVJIGlzIHRoZSBUaXRsZSBvciBMaW5rIGNvbnRyb2wgaW5zaWRlIHRoZSBpdGVtcyBhZ2dyZWdhdGlvbiBvZiB0aGUgSGVhZGVyIEZhY2V0LlxuXHQgKiBNdXN0IGFsd2F5cyBiZSBpbiBzeW5jIHdpdGggdGhlIHZpc2libGUgVGl0bGUgb3IgTGluayBjb250cm9sLlxuXHQgKiBUaGlzIGlzIHVzZWQgd2hlbiByZW5hbWluZyB0aHJvdWdoIHRoZSBmbGV4aWJpbGl0eSBkaWFsb2cuXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdHRpdGxlPzogc3RyaW5nO1xuXG5cdC8qXG5cdCAqIEZhbGxiYWNrIHRpdGxlIHRvIGJlIGRpc3BsYXllZCBpZiBubyB0aXRsZSBpcyBhdmFpbGFibGUgKG9ubHkgbmVlZGVkIGZvciBkaXNwbGF5aW5nIHN0YXNoZWQgaGVhZGVyIGZhY2V0cyBpbiBGbGV4IGRpYWxvZylcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZmFsbGJhY2tUaXRsZSE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRfZGlzY29ubmVjdGVkITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRkaXNhYmxlT2JqZWN0UGFnZVJlcXVlc3RPcHRpbWl6YXRpb24gPSB0cnVlO1xuXG5cdC8qXG5cdCAqIFJldHVybiB0aGUgdGl0bGUgcHJvcGVydHkuXG5cdCAqL1xuXHRnZXRUaXRsZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnRpdGxlID8/IHRoaXMuZ2V0VGl0bGVDb250cm9sKCk/LmdldFRleHQoKSA/PyB0aGlzLmZhbGxiYWNrVGl0bGU7XG5cdH1cblxuXHRvbkJlZm9yZVJlbmRlcmluZyhvRXZlbnQ6IGpRdWVyeS5FdmVudCk6IHZvaWQgfCB1bmRlZmluZWQge1xuXHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIHRpdGxlIGNvbWluZyBmcm9tIHRoZSBSVEEsIHdlIG5lZWQgdG8gc2V0IGl0IHRvIHRoZSBpbm5lciBjb250cm9sIGJlZm9yZSByZW5kZXJpbmdcblx0XHRpZiAodGhpcy50aXRsZSkge1xuXHRcdFx0dGhpcy5nZXRUaXRsZUNvbnRyb2woKT8uc2V0VGV4dCh0aGlzLnRpdGxlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHN1cGVyLm9uQmVmb3JlUmVuZGVyaW5nKG9FdmVudCk7XG5cdH1cblxuXHRnZXRDb250cm9sSXRlbXMoaXRlbXM6IENvbnRyb2xbXSk6IENvbnRyb2xbXSB7XG5cdFx0bGV0IGFJdGVtczogQ29udHJvbFtdID0gW10sXG5cdFx0XHRpO1xuXHRcdGlmIChpdGVtcykge1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmICgoaXRlbXNbaV0gYXMgSEJveCkuZ2V0SXRlbXMpIHtcblx0XHRcdFx0XHRhSXRlbXMgPSAoaXRlbXNbaV0gYXMgSEJveCkuZ2V0SXRlbXMoKTtcblx0XHRcdFx0fSBlbHNlIGlmICgoaXRlbXNbaV0gYXMgRW5oYW5jZVdpdGhVSTU8TWljcm9DaGFydENvbnRhaW5lcj4pLmdldE1pY3JvQ2hhcnRUaXRsZSkge1xuXHRcdFx0XHRcdGFJdGVtcyA9IChpdGVtc1tpXSBhcyBFbmhhbmNlV2l0aFVJNTxNaWNyb0NoYXJ0Q29udGFpbmVyPikuZ2V0TWljcm9DaGFydFRpdGxlKCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0KChpdGVtc1tpXSBhcyBFbmhhbmNlV2l0aFVJNTxNaWNyb0NoYXJ0PikuZ2V0Q29udGVudD8uKCkgYXMgRW5oYW5jZVdpdGhVSTU8TWljcm9DaGFydENvbnRhaW5lcj4pPy5nZXRNaWNyb0NoYXJ0VGl0bGVcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0YUl0ZW1zID0gKFxuXHRcdFx0XHRcdFx0KGl0ZW1zW2ldIGFzIEVuaGFuY2VXaXRoVUk1PE1pY3JvQ2hhcnQ+KS5nZXRDb250ZW50KCkgYXMgRW5oYW5jZVdpdGhVSTU8TWljcm9DaGFydENvbnRhaW5lcj5cblx0XHRcdFx0XHQpLmdldE1pY3JvQ2hhcnRUaXRsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhSXRlbXM7XG5cdH1cblxuXHQvKlxuXHQgKiBSZXRyaWV2ZXMgVGl0bGUvTGluayBjb250cm9sIGZyb20gaXRlbXMgYWdncmVnYXRpb24uXG5cdCAqL1xuXHRnZXRUaXRsZUNvbnRyb2woKTogTGluayB8IG51bGwge1xuXHRcdGxldCBhSXRlbXM6IENvbnRyb2xbXSA9IFtdLFxuXHRcdFx0Y29udGVudCxcblx0XHRcdGk7XG5cdFx0Y29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XG5cdFx0YUl0ZW1zID0gdGhpcy5nZXRDb250cm9sSXRlbXMoaXRlbXMpO1xuXHRcdGZvciAoaSA9IDA7IGkgPCBhSXRlbXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSBhSXRlbXNbaV0uaXNBKFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbC5UaXRsZUxpbmtcIikgPyAoYUl0ZW1zW2ldIGFzIFRpdGxlTGluaykuZ2V0Q29udGVudCgpIDogYUl0ZW1zW2ldO1xuXHRcdFx0aWYgKGl0ZW0pIHtcblx0XHRcdFx0aWYgKGl0ZW0uaXNBPFRpdGxlPihcInNhcC5tLlRpdGxlXCIpIHx8IGl0ZW0uaXNBPExpbms+KFwic2FwLm0uTGlua1wiKSkge1xuXHRcdFx0XHRcdGlmIChpdGVtLmlzQTxUaXRsZT4oXCJzYXAubS5UaXRsZVwiKSkge1xuXHRcdFx0XHRcdFx0Ly8gSWYgYSB0aXRsZSB3YXMgZm91bmQsIGNoZWNrIGlmIHRoZXJlIGlzIGEgbGluayBpbiB0aGUgY29udGVudCBhZ2dyZWdhdGlvblxuXHRcdFx0XHRcdFx0Y29udGVudCA9IGl0ZW0uZ2V0Q29udGVudCgpIGFzIHVua25vd24gYXMgQ29udHJvbCB8IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQuaXNBPExpbms+KFwic2FwLm0uTGlua1wiKSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gY29udGVudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGl0ZW0gYXMgTGluaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHRoaXMge1xuXHRcdHN1cGVyLnNldFZpc2libGUodmlzaWJsZSk7XG5cdFx0aWYgKCF0aGlzLmRpc2FibGVPYmplY3RQYWdlUmVxdWVzdE9wdGltaXphdGlvbikge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR2aXNpYmxlICYmXG5cdFx0XHRcdCghdGhpcy5nZXRCaW5kaW5nKFwidmlzaWJsZVwiKSB8fFxuXHRcdFx0XHRcdCEodGhpcy5nZXRCaW5kaW5nKFwidmlzaWJsZVwiKSBhcyB1bmtub3duIGFzIENvbXBvc2l0ZUJpbmRpbmcpLmdldFJhd1ZhbHVlKCkuaW5jbHVkZXModW5kZWZpbmVkKSlcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmZpbmRFbGVtZW50cyhmYWxzZSkuZm9yRWFjaCgoZWxlbSkgPT4ge1xuXHRcdFx0XHRcdGVsZW0uc2V0QmluZGluZ0NvbnRleHQodW5kZWZpbmVkKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmZpbmRFbGVtZW50cyhmYWxzZSkuZm9yRWFjaCgoZWxlbSkgPT4ge1xuXHRcdFx0XHRcdGVsZW0uc2V0QmluZGluZ0NvbnRleHQobnVsbCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHNldF9kaXNjb25uZWN0ZWQoZGlzY29ubmVjdGVkOiBib29sZWFuKTogdGhpcyB7XG5cdFx0dGhpcy5fZGlzY29ubmVjdGVkID0gZGlzY29ubmVjdGVkO1xuXHRcdC8vIEJ5IHNldHRpbmcgdGhlIGJpbmRpbmcgY29udGV4dCB0byBgbnVsbGAgd2UgYXJlIHByZXZlbnRpbmcgZGF0YSBsb2FkaW5nXG5cdFx0Ly8gU2V0dGluZyBpdCBiYWNrIHRvIGB1bmRlZmluZWRgIGVuc3VyZXMgdGhhdCB0aGUgcGFyZW50IGNvbnRleHQgaXMgYXBwbGllZFxuXHRcdGlmIChkaXNjb25uZWN0ZWQpIHtcblx0XHRcdHRoaXMuc2V0QmluZGluZ0NvbnRleHQobnVsbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2V0QmluZGluZ0NvbnRleHQodW5kZWZpbmVkKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKlxuXHQgKiBSZXRyaWV2ZXMgbGFiZWwgY29udHJvbHMgZnJvbSBpdGVtcyBhZ2dyZWdhdGlvbi5cblx0ICovXG5cdGdldEZvcm1MYWJlbHMoKTogTGFiZWxbXSB7XG5cdFx0Ly8gTk9URTogUHJlc2VudCBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRzIGZvciBkaXJlY3QgUmVmZXJlbmNlRmFjZXRzKFZCb3gpIGluIFVJLkZhY2V0cyBhcyBwZXIgdGhlIHJlcXVpcmVtZW50IGZvciBnZXR0aW5nIExhYmVscyBmcm9tIGZvcm1zLlxuXHRcdGNvbnN0IHJldDogTGFiZWxbXSA9IFtdLFxuXHRcdFx0Zm9ybVZCb3ggPSB0aGlzLmdldEl0ZW1zICYmIHRoaXMuZ2V0SXRlbXMoKVswXTtcblxuXHRcdC8vIFZCb3ggaXMgZXF1aXZhbGVudCBvZiBmb3JtXG5cdFx0aWYgKGZvcm1WQm94Py5pc0E8VkJveD4oXCJzYXAubS5WQm94XCIpKSB7XG5cdFx0XHRmb3JtVkJveC5nZXRJdGVtcygpLmZvckVhY2goKGZvcm1FbGVtZW50SEJveCkgPT4ge1xuXHRcdFx0XHQvLyBIQm94IGlzIGVxdWl2YWxlbnQgb2YgZm9ybSBlbGVtZW50XG5cdFx0XHRcdGlmIChmb3JtRWxlbWVudEhCb3guaXNBPEhCb3g+KFwic2FwLm0uSEJveFwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IGxhYmVsQ3RybCA9IGZvcm1FbGVtZW50SEJveC5nZXRJdGVtcygpWzBdO1xuXHRcdFx0XHRcdGlmIChsYWJlbEN0cmw/LmlzQTxMYWJlbD4oXCJzYXAubS5MYWJlbFwiKSkge1xuXHRcdFx0XHRcdFx0Ly8gRmlyc3QgZWxlbWVudCBpcyBsYWJlbFxuXHRcdFx0XHRcdFx0cmV0LnB1c2gobGFiZWxDdHJsKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gcmV0O1xuXHR9XG59XG5TdGFzaGVkQ29udHJvbFN1cHBvcnQubWl4SW50byhTdGFzaGFibGVIQm94KTtcblxuZXhwb3J0IGRlZmF1bHQgU3Rhc2hhYmxlSEJveDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O01BZ0JNQSxhQUFhLElBQUFDLElBQUEsR0FIbEJDLGNBQWMsQ0FBQyxvREFBb0QsRUFBRTtJQUNyRUMsVUFBVSxFQUFFO0VBQ2IsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FPQUMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTTVCRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FHNUJILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBVSxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQUc3QkosUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBTCxJQUFBLENBQUFTLE1BQUEsSUFBQUMsT0FB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
|
|
209
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGFzaGFibGVIQm94IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiZGVzaWdudGltZSIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9IQm94IiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwibGFzdFNldFZpc2libGVDb250ZXh0IiwidW5kZWZpbmVkIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRUaXRsZSIsInRpdGxlIiwiZ2V0VGl0bGVDb250cm9sIiwiZ2V0VGV4dCIsImZhbGxiYWNrVGl0bGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIm9FdmVudCIsInNldFRleHQiLCJnZXRDb250cm9sSXRlbXMiLCJpdGVtcyIsImFJdGVtcyIsImkiLCJnZXRJdGVtcyIsImdldE1pY3JvQ2hhcnRUaXRsZSIsImdldENvbnRlbnQiLCJjb250ZW50IiwiaXRlbSIsImlzQSIsIl9yZWZyZXNoQ29udHJvbHNCb3VuZFRvTmF2aWdhdGlvblByb3BlcnRpZXMiLCJsYXN0Q29udGV4dCIsImNvbnRleHRUb1JlZnJlc2giLCJmaW5kRWxlbWVudHMiLCJmb3JFYWNoIiwiZWxlbSIsImdldEJpbmRpbmdDb250ZXh0IiwiZWxlbUNvbnRleHQiLCJnZXRQYXRoIiwic3RhcnRzV2l0aCIsImluY2x1ZGVzIiwicHVzaCIsImNvbnRleHQiLCJyZXF1ZXN0U2lkZUVmZmVjdHMiLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsInNldFZpc2libGUiLCJ2aXNpYmxlIiwiZGlzYWJsZU9iamVjdFBhZ2VSZXF1ZXN0T3B0aW1pemF0aW9uIiwiZ2V0QmluZGluZyIsImdldFJhd1ZhbHVlIiwic2V0QmluZGluZ0NvbnRleHQiLCJzZXRUaW1lb3V0Iiwic2V0X2Rpc2Nvbm5lY3RlZCIsImRpc2Nvbm5lY3RlZCIsIl9kaXNjb25uZWN0ZWQiLCJnZXRGb3JtTGFiZWxzIiwicmV0IiwiZm9ybVZCb3giLCJmb3JtRWxlbWVudEhCb3giLCJsYWJlbEN0cmwiLCJIQm94IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIiwiU3Rhc2hlZENvbnRyb2xTdXBwb3J0IiwibWl4SW50byJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU3Rhc2hhYmxlSEJveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuaGFuY2VXaXRoVUk1IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgTWljcm9DaGFydCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9NaWNyb0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSBUaXRsZUxpbmsgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvVGl0bGVMaW5rXCI7XG5pbXBvcnQgdHlwZSBNaWNyb0NoYXJ0Q29udGFpbmVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL21pY3JvY2hhcnQvTWljcm9DaGFydENvbnRhaW5lclwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCB0eXBlIExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IHR5cGUgTGluayBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IHR5cGUgVGl0bGUgZnJvbSBcInNhcC9tL1RpdGxlXCI7XG5pbXBvcnQgdHlwZSBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgU3Rhc2hlZENvbnRyb2xTdXBwb3J0IGZyb20gXCJzYXAvdWkvY29yZS9TdGFzaGVkQ29udHJvbFN1cHBvcnRcIjtcbmltcG9ydCB0eXBlIENvbXBvc2l0ZUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Db21wb3NpdGVCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPZGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVIQm94XCIsIHtcblx0ZGVzaWdudGltZTogXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvZGVzaWdudGltZS9TdGFzaGFibGVIQm94LmRlc2lnbnRpbWVcIlxufSlcbmNsYXNzIFN0YXNoYWJsZUhCb3ggZXh0ZW5kcyBIQm94IHtcblx0Lypcblx0ICogVGl0bGUgb2YgdGhlIEhlYWRlciBGYWNldC4gTm90IHZpc2libGUgb24gdGhlIFVJLiBWaXNpYmxlIG9uIHRoZSBVSSBpcyB0aGUgVGl0bGUgb3IgTGluayBjb250cm9sIGluc2lkZSB0aGUgaXRlbXMgYWdncmVnYXRpb24gb2YgdGhlIEhlYWRlciBGYWNldC5cblx0ICogTXVzdCBhbHdheXMgYmUgaW4gc3luYyB3aXRoIHRoZSB2aXNpYmxlIFRpdGxlIG9yIExpbmsgY29udHJvbC5cblx0ICogVGhpcyBpcyB1c2VkIHdoZW4gcmVuYW1pbmcgdGhyb3VnaCB0aGUgZmxleGliaWxpdHkgZGlhbG9nLlxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHR0aXRsZT86IHN0cmluZztcblxuXHQvKlxuXHQgKiBGYWxsYmFjayB0aXRsZSB0byBiZSBkaXNwbGF5ZWQgaWYgbm8gdGl0bGUgaXMgYXZhaWxhYmxlIChvbmx5IG5lZWRlZCBmb3IgZGlzcGxheWluZyBzdGFzaGVkIGhlYWRlciBmYWNldHMgaW4gRmxleCBkaWFsb2cpXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGZhbGxiYWNrVGl0bGUhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0X2Rpc2Nvbm5lY3RlZCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0ZGlzYWJsZU9iamVjdFBhZ2VSZXF1ZXN0T3B0aW1pemF0aW9uID0gdHJ1ZTtcblxuXHRwcml2YXRlIGxhc3RTZXRWaXNpYmxlQ29udGV4dDogT2RhdGFWNENvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG5cdC8qXG5cdCAqIFJldHVybiB0aGUgdGl0bGUgcHJvcGVydHkuXG5cdCAqL1xuXHRnZXRUaXRsZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnRpdGxlID8/IHRoaXMuZ2V0VGl0bGVDb250cm9sKCk/LmdldFRleHQoKSA/PyB0aGlzLmZhbGxiYWNrVGl0bGU7XG5cdH1cblxuXHRvbkJlZm9yZVJlbmRlcmluZyhvRXZlbnQ6IGpRdWVyeS5FdmVudCk6IHZvaWQgfCB1bmRlZmluZWQge1xuXHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIHRpdGxlIGNvbWluZyBmcm9tIHRoZSBSVEEsIHdlIG5lZWQgdG8gc2V0IGl0IHRvIHRoZSBpbm5lciBjb250cm9sIGJlZm9yZSByZW5kZXJpbmdcblx0XHRpZiAodGhpcy50aXRsZSkge1xuXHRcdFx0dGhpcy5nZXRUaXRsZUNvbnRyb2woKT8uc2V0VGV4dCh0aGlzLnRpdGxlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHN1cGVyLm9uQmVmb3JlUmVuZGVyaW5nKG9FdmVudCk7XG5cdH1cblxuXHRnZXRDb250cm9sSXRlbXMoaXRlbXM6IENvbnRyb2xbXSk6IENvbnRyb2xbXSB7XG5cdFx0bGV0IGFJdGVtczogQ29udHJvbFtdID0gW10sXG5cdFx0XHRpO1xuXHRcdGlmIChpdGVtcykge1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmICgoaXRlbXNbaV0gYXMgSEJveCkuZ2V0SXRlbXMpIHtcblx0XHRcdFx0XHRhSXRlbXMgPSAoaXRlbXNbaV0gYXMgSEJveCkuZ2V0SXRlbXMoKTtcblx0XHRcdFx0fSBlbHNlIGlmICgoaXRlbXNbaV0gYXMgRW5oYW5jZVdpdGhVSTU8TWljcm9DaGFydENvbnRhaW5lcj4pLmdldE1pY3JvQ2hhcnRUaXRsZSkge1xuXHRcdFx0XHRcdGFJdGVtcyA9IChpdGVtc1tpXSBhcyBFbmhhbmNlV2l0aFVJNTxNaWNyb0NoYXJ0Q29udGFpbmVyPikuZ2V0TWljcm9DaGFydFRpdGxlKCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0KChpdGVtc1tpXSBhcyBFbmhhbmNlV2l0aFVJNTxNaWNyb0NoYXJ0PikuZ2V0Q29udGVudD8uKCkgYXMgRW5oYW5jZVdpdGhVSTU8TWljcm9DaGFydENvbnRhaW5lcj4pPy5nZXRNaWNyb0NoYXJ0VGl0bGVcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0YUl0ZW1zID0gKFxuXHRcdFx0XHRcdFx0KGl0ZW1zW2ldIGFzIEVuaGFuY2VXaXRoVUk1PE1pY3JvQ2hhcnQ+KS5nZXRDb250ZW50KCkgYXMgRW5oYW5jZVdpdGhVSTU8TWljcm9DaGFydENvbnRhaW5lcj5cblx0XHRcdFx0XHQpLmdldE1pY3JvQ2hhcnRUaXRsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhSXRlbXM7XG5cdH1cblxuXHQvKlxuXHQgKiBSZXRyaWV2ZXMgVGl0bGUvTGluayBjb250cm9sIGZyb20gaXRlbXMgYWdncmVnYXRpb24uXG5cdCAqL1xuXHRnZXRUaXRsZUNvbnRyb2woKTogTGluayB8IG51bGwge1xuXHRcdGxldCBhSXRlbXM6IENvbnRyb2xbXSA9IFtdLFxuXHRcdFx0Y29udGVudCxcblx0XHRcdGk7XG5cdFx0Y29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XG5cdFx0YUl0ZW1zID0gdGhpcy5nZXRDb250cm9sSXRlbXMoaXRlbXMpO1xuXHRcdGZvciAoaSA9IDA7IGkgPCBhSXRlbXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSBhSXRlbXNbaV0uaXNBKFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbC5UaXRsZUxpbmtcIikgPyAoYUl0ZW1zW2ldIGFzIFRpdGxlTGluaykuZ2V0Q29udGVudCgpIDogYUl0ZW1zW2ldO1xuXHRcdFx0aWYgKGl0ZW0pIHtcblx0XHRcdFx0aWYgKGl0ZW0uaXNBPFRpdGxlPihcInNhcC5tLlRpdGxlXCIpIHx8IGl0ZW0uaXNBPExpbms+KFwic2FwLm0uTGlua1wiKSkge1xuXHRcdFx0XHRcdGlmIChpdGVtLmlzQTxUaXRsZT4oXCJzYXAubS5UaXRsZVwiKSkge1xuXHRcdFx0XHRcdFx0Ly8gSWYgYSB0aXRsZSB3YXMgZm91bmQsIGNoZWNrIGlmIHRoZXJlIGlzIGEgbGluayBpbiB0aGUgY29udGVudCBhZ2dyZWdhdGlvblxuXHRcdFx0XHRcdFx0Y29udGVudCA9IGl0ZW0uZ2V0Q29udGVudCgpIGFzIHVua25vd24gYXMgQ29udHJvbCB8IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQuaXNBPExpbms+KFwic2FwLm0uTGlua1wiKSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gY29udGVudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGl0ZW0gYXMgTGluaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgdGhlIGNvbnRyb2xzIGJvdW5kIHRvIG5hdmlnYXRpb24gcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBjb250ZXh0LiBUaGUgcmVmcmVzaGluZyBpcyBuZWVkZWQgaW4gY2FzZSB0aGUgdmlzaWJpbGl0eSBoYXMgY2hhbmdlZCBidXQgdGhlIGNvbnRleHQgaGFzIG5vdCBjaGFuZ2VkIChlZzogdmlzaWJpbGl0eSBjaGFuZ2VkIGJ5IGFuIGFjdGlvbiB3aXRoIHNpZGUgZWZmZWN0cyApLlxuXHQgKiBAcGFyYW0gbGFzdENvbnRleHRcblx0ICovXG5cdF9yZWZyZXNoQ29udHJvbHNCb3VuZFRvTmF2aWdhdGlvblByb3BlcnRpZXMobGFzdENvbnRleHQ/OiBPZGF0YVY0Q29udGV4dCB8IG51bGwpOiB2b2lkIHtcblx0XHRjb25zdCBjb250ZXh0VG9SZWZyZXNoOiBPZGF0YVY0Q29udGV4dFtdID0gW107XG5cdFx0dGhpcy5maW5kRWxlbWVudHModHJ1ZSkuZm9yRWFjaCgoZWxlbSkgPT4ge1xuXHRcdFx0Ly9pZiB0aGUgdmlzaWJpbGl0eSBjaGFuZ2UgaXMgbm90IGR1ZSB0byBhIG5hdmlnYXRpb24gYnV0IHRvIGFuIGludGVyYWN0aXZlIGFjdGlvblxuXHRcdFx0Ly8gd2Ugd2FudCB0byByZWZyZXNoIG9ubHkgdGhlIGVsZW1lbnRzIGJvdW5kIHRvIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eVxuXHRcdFx0aWYgKHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoKSA9PT0gbGFzdENvbnRleHQpIHtcblx0XHRcdFx0Y29uc3QgZWxlbUNvbnRleHQgPSBlbGVtLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgT2RhdGFWNENvbnRleHQgfCB1bmRlZmluZWQ7XG5cdFx0XHRcdC8vIG9ubHkgcmVmcmVzaGluZyB0aGUgZWxlbWVudHMgd2hpY2ggYXJlIGJvdW5kIHRvIG5hdmlnYXRpb24gcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBjb250ZXh0LCB0byBhdm9pZCB1bm5lY2Vzc2FyeSByZWZyZXNoZXNcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGVsZW1Db250ZXh0ICYmXG5cdFx0XHRcdFx0ZWxlbUNvbnRleHQuZ2V0UGF0aCgpLnN0YXJ0c1dpdGgodGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpIS5nZXRQYXRoKCkgKyBcIi9cIikgJiZcblx0XHRcdFx0XHQhY29udGV4dFRvUmVmcmVzaC5pbmNsdWRlcyhlbGVtQ29udGV4dClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Y29udGV4dFRvUmVmcmVzaC5wdXNoKGVsZW1Db250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGNvbnRleHRUb1JlZnJlc2guZm9yRWFjaChhc3luYyAoY29udGV4dCkgPT4gY29udGV4dC5yZXF1ZXN0U2lkZUVmZmVjdHMoW3sgJE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IFwiXCIgfV0pKTtcblx0fVxuXG5cdHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHRoaXMge1xuXHRcdHN1cGVyLnNldFZpc2libGUodmlzaWJsZSk7XG5cdFx0aWYgKCF0aGlzLmRpc2FibGVPYmplY3RQYWdlUmVxdWVzdE9wdGltaXphdGlvbikge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR2aXNpYmxlICYmXG5cdFx0XHRcdCghdGhpcy5nZXRCaW5kaW5nKFwidmlzaWJsZVwiKSB8fFxuXHRcdFx0XHRcdCEodGhpcy5nZXRCaW5kaW5nKFwidmlzaWJsZVwiKSBhcyB1bmtub3duIGFzIENvbXBvc2l0ZUJpbmRpbmcpLmdldFJhd1ZhbHVlKCkuaW5jbHVkZXModW5kZWZpbmVkKSlcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmZpbmRFbGVtZW50cyhmYWxzZSkuZm9yRWFjaCgoZWxlbSkgPT4ge1xuXHRcdFx0XHRcdGVsZW0uc2V0QmluZGluZ0NvbnRleHQodW5kZWZpbmVkKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX3JlZnJlc2hDb250cm9sc0JvdW5kVG9OYXZpZ2F0aW9uUHJvcGVydGllcyh0aGlzLmxhc3RTZXRWaXNpYmxlQ29udGV4dCk7XG5cdFx0XHRcdH0sIDApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5maW5kRWxlbWVudHMoZmFsc2UpLmZvckVhY2goKGVsZW0pID0+IHtcblx0XHRcdFx0XHRlbGVtLnNldEJpbmRpbmdDb250ZXh0KG51bGwpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5sYXN0U2V0VmlzaWJsZUNvbnRleHQgPSB0aGlzLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgT2RhdGFWNENvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0c2V0X2Rpc2Nvbm5lY3RlZChkaXNjb25uZWN0ZWQ6IGJvb2xlYW4pOiB0aGlzIHtcblx0XHR0aGlzLl9kaXNjb25uZWN0ZWQgPSBkaXNjb25uZWN0ZWQ7XG5cdFx0Ly8gQnkgc2V0dGluZyB0aGUgYmluZGluZyBjb250ZXh0IHRvIGBudWxsYCB3ZSBhcmUgcHJldmVudGluZyBkYXRhIGxvYWRpbmdcblx0XHQvLyBTZXR0aW5nIGl0IGJhY2sgdG8gYHVuZGVmaW5lZGAgZW5zdXJlcyB0aGF0IHRoZSBwYXJlbnQgY29udGV4dCBpcyBhcHBsaWVkXG5cdFx0aWYgKGRpc2Nvbm5lY3RlZCkge1xuXHRcdFx0dGhpcy5zZXRCaW5kaW5nQ29udGV4dChudWxsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZXRCaW5kaW5nQ29udGV4dCh1bmRlZmluZWQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qXG5cdCAqIFJldHJpZXZlcyBsYWJlbCBjb250cm9scyBmcm9tIGl0ZW1zIGFnZ3JlZ2F0aW9uLlxuXHQgKi9cblx0Z2V0Rm9ybUxhYmVscygpOiBMYWJlbFtdIHtcblx0XHQvLyBOT1RFOiBQcmVzZW50IGltcGxlbWVudGF0aW9uIG9ubHkgc3VwcG9ydHMgZm9yIGRpcmVjdCBSZWZlcmVuY2VGYWNldHMoVkJveCkgaW4gVUkuRmFjZXRzIGFzIHBlciB0aGUgcmVxdWlyZW1lbnQgZm9yIGdldHRpbmcgTGFiZWxzIGZyb20gZm9ybXMuXG5cdFx0Y29uc3QgcmV0OiBMYWJlbFtdID0gW10sXG5cdFx0XHRmb3JtVkJveCA9IHRoaXMuZ2V0SXRlbXMgJiYgdGhpcy5nZXRJdGVtcygpWzBdO1xuXG5cdFx0Ly8gVkJveCBpcyBlcXVpdmFsZW50IG9mIGZvcm1cblx0XHRpZiAoZm9ybVZCb3g/LmlzQTxWQm94PihcInNhcC5tLlZCb3hcIikpIHtcblx0XHRcdGZvcm1WQm94LmdldEl0ZW1zKCkuZm9yRWFjaCgoZm9ybUVsZW1lbnRIQm94KSA9PiB7XG5cdFx0XHRcdC8vIEhCb3ggaXMgZXF1aXZhbGVudCBvZiBmb3JtIGVsZW1lbnRcblx0XHRcdFx0aWYgKGZvcm1FbGVtZW50SEJveC5pc0E8SEJveD4oXCJzYXAubS5IQm94XCIpKSB7XG5cdFx0XHRcdFx0Y29uc3QgbGFiZWxDdHJsID0gZm9ybUVsZW1lbnRIQm94LmdldEl0ZW1zKClbMF07XG5cdFx0XHRcdFx0aWYgKGxhYmVsQ3RybD8uaXNBPExhYmVsPihcInNhcC5tLkxhYmVsXCIpKSB7XG5cdFx0XHRcdFx0XHQvLyBGaXJzdCBlbGVtZW50IGlzIGxhYmVsXG5cdFx0XHRcdFx0XHRyZXQucHVzaChsYWJlbEN0cmwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiByZXQ7XG5cdH1cbn1cblN0YXNoZWRDb250cm9sU3VwcG9ydC5taXhJbnRvKFN0YXNoYWJsZUhCb3gpO1xuXG5leHBvcnQgZGVmYXVsdCBTdGFzaGFibGVIQm94O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7TUFpQk1BLGFBQWEsSUFBQUMsSUFBQSxHQUhsQkMsY0FBYyxDQUFDLG9EQUFvRCxFQUFFO0lBQ3JFQyxVQUFVLEVBQUU7RUFDYixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU9BQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FNNUJGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUUsS0FBQSxHQUc1QkgsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBRyxLQUFBLEdBRzdCSixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFMLElBQUEsQ0FBQVMsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxLQUFBO0lBQUEsU0FBQVosY0FBQTtNQUFBLElBQUFhLEtBQUE7TUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO1FBQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7TUFBQTtNQUFBTixLQUFBLEdBQUFELEtBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BakI5QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO01BSkNJLDBCQUFBLENBQUFSLEtBQUEsV0FBQVMsV0FBQSxFQUFBVCxLQUFBO01BUUE7QUFDRDtBQUNBO01BRkNRLDBCQUFBLENBQUFSLEtBQUEsbUJBQUFVLFlBQUEsRUFBQVYsS0FBQTtNQUFBUSwwQkFBQSxDQUFBUixLQUFBLG1CQUFBVyxZQUFBLEVBQUFYLEtBQUE7TUFBQVEsMEJBQUEsQ0FBQVIsS0FBQSwwQ0FBQVksWUFBQSxFQUFBWixLQUFBO01BQUFBLEtBQUEsQ0FZUWEscUJBQXFCLEdBQXNDQyxTQUFTO01BQUEsT0FBQWQsS0FBQTtJQUFBO0lBQUFlLGNBQUEsQ0FBQTVCLGFBQUEsRUFBQVksS0FBQTtJQUFBLElBQUFpQixNQUFBLEdBQUE3QixhQUFBLENBQUE4QixTQUFBO0lBRTVFO0FBQ0Q7QUFDQTtJQUZDRCxNQUFBLENBR0FFLFFBQVEsR0FBUixTQUFBQSxRQUFRQSxDQUFBLEVBQVc7TUFDbEIsT0FBTyxJQUFJLENBQUNDLEtBQUssSUFBSSxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDQyxhQUFhO0lBQzdFLENBQUM7SUFBQU4sTUFBQSxDQUVETyxpQkFBaUIsR0FBakIsU0FBQUEsaUJBQWlCQSxDQUFDQyxNQUFvQixFQUFvQjtNQUN6RDtNQUNBLElBQUksSUFBSSxDQUFDTCxLQUFLLEVBQUU7UUFDZixJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDLEVBQUVLLE9BQU8sQ0FBQyxJQUFJLENBQUNOLEtBQUssQ0FBQztNQUM1QztNQUNBLE9BQUFwQixLQUFBLENBQUFrQixTQUFBLENBQWFNLGlCQUFpQixDQUFBaEIsSUFBQSxPQUFDaUIsTUFBTTtJQUN0QyxDQUFDO0lBQUFSLE1BQUEsQ0FFRFUsZUFBZSxHQUFmLFNBQUFBLGVBQWVBLENBQUNDLEtBQWdCLEVBQWE7TUFDNUMsSUFBSUMsTUFBaUIsR0FBRyxFQUFFO1FBQ3pCQyxDQUFDO01BQ0YsSUFBSUYsS0FBSyxFQUFFO1FBQ1YsS0FBS0UsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRixLQUFLLENBQUN4QixNQUFNLEVBQUUwQixDQUFDLEVBQUUsRUFBRTtVQUNsQyxJQUFLRixLQUFLLENBQUNFLENBQUMsQ0FBQyxDQUFVQyxRQUFRLEVBQUU7WUFDaENGLE1BQU0sR0FBSUQsS0FBSyxDQUFDRSxDQUFDLENBQUMsQ0FBVUMsUUFBUSxDQUFDLENBQUM7VUFDdkMsQ0FBQyxNQUFNLElBQUtILEtBQUssQ0FBQ0UsQ0FBQyxDQUFDLENBQXlDRSxrQkFBa0IsRUFBRTtZQUNoRkgsTUFBTSxHQUFJRCxLQUFLLENBQUNFLENBQUMsQ0FBQyxDQUF5Q0Usa0JBQWtCLENBQUMsQ0FBQztVQUNoRixDQUFDLE1BQU0sSUFDSkosS0FBSyxDQUFDRSxDQUFDLENBQUMsQ0FBZ0NHLFVBQVUsR0FBRyxDQUFDLEVBQTBDRCxrQkFBa0IsRUFDbkg7WUFDREgsTUFBTSxHQUNKRCxLQUFLLENBQUNFLENBQUMsQ0FBQyxDQUFnQ0csVUFBVSxDQUFDLENBQUMsQ0FDcERELGtCQUFrQixDQUFDLENBQUM7VUFDdkI7UUFDRDtNQUNEO01BQ0EsT0FBT0gsTUFBTTtJQUNkOztJQUVBO0FBQ0Q7QUFDQSxPQUZDO0lBQUFaLE1BQUEsQ0FHQUksZUFBZSxHQUFmLFNBQUFBLGVBQWVBLENBQUEsRUFBZ0I7TUFDOUIsSUFBSVEsTUFBaUIsR0FBRyxFQUFFO1FBQ3pCSyxPQUFPO1FBQ1BKLENBQUM7TUFDRixNQUFNRixLQUFLLEdBQUcsSUFBSSxDQUFDRyxRQUFRLENBQUMsQ0FBQztNQUM3QkYsTUFBTSxHQUFHLElBQUksQ0FBQ0YsZUFBZSxDQUFDQyxLQUFLLENBQUM7TUFDcEMsS0FBS0UsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxNQUFNLENBQUN6QixNQUFNLEVBQUUwQixDQUFDLEVBQUUsRUFBRTtRQUNuQyxNQUFNSyxJQUFJLEdBQUdOLE1BQU0sQ0FBQ0MsQ0FBQyxDQUFDLENBQUNNLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFJUCxNQUFNLENBQUNDLENBQUMsQ0FBQyxDQUFlRyxVQUFVLENBQUMsQ0FBQyxHQUFHSixNQUFNLENBQUNDLENBQUMsQ0FBQztRQUNsSCxJQUFJSyxJQUFJLEVBQUU7VUFDVCxJQUFJQSxJQUFJLENBQUNDLEdBQUcsQ0FBUSxhQUFhLENBQUMsSUFBSUQsSUFBSSxDQUFDQyxHQUFHLENBQU8sWUFBWSxDQUFDLEVBQUU7WUFDbkUsSUFBSUQsSUFBSSxDQUFDQyxHQUFHLENBQVEsYUFBYSxDQUFDLEVBQUU7Y0FDbkM7Y0FDQUYsT0FBTyxHQUFHQyxJQUFJLENBQUNGLFVBQVUsQ0FBQyxDQUFtQztjQUM3RCxJQUFJQyxPQUFPLElBQUlBLE9BQU8sQ0FBQ0UsR0FBRyxDQUFPLFlBQVksQ0FBQyxFQUFFO2dCQUMvQyxPQUFPRixPQUFPO2NBQ2Y7WUFDRDtZQUNBLE9BQU9DLElBQUk7VUFDWjtRQUNEO01BQ0Q7TUFDQSxPQUFPLElBQUk7SUFDWjs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUFsQixNQUFBLENBSUFvQiwyQ0FBMkMsR0FBM0MsU0FBQUEsMkNBQTJDQSxDQUFDQyxXQUFtQyxFQUFRO01BQ3RGLE1BQU1DLGdCQUFrQyxHQUFHLEVBQUU7TUFDN0MsSUFBSSxDQUFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUNDLE9BQU8sQ0FBRUMsSUFBSSxJQUFLO1FBQ3pDO1FBQ0E7UUFDQSxJQUFJLElBQUksQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQyxLQUFLTCxXQUFXLEVBQUU7VUFDN0MsTUFBTU0sV0FBVyxHQUFHRixJQUFJLENBQUNDLGlCQUFpQixDQUFDLENBQStCO1VBQzFFO1VBQ0EsSUFDQ0MsV0FBVyxJQUNYQSxXQUFXLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUNILGlCQUFpQixDQUFDLENBQUMsQ0FBRUUsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFDM0UsQ0FBQ04sZ0JBQWdCLENBQUNRLFFBQVEsQ0FBQ0gsV0FBVyxDQUFDLEVBQ3RDO1lBQ0RMLGdCQUFnQixDQUFDUyxJQUFJLENBQUNKLFdBQVcsQ0FBQztVQUNuQztRQUNEO01BQ0QsQ0FBQyxDQUFDO01BQ0ZMLGdCQUFnQixDQUFDRSxPQUFPLENBQUMsTUFBT1EsT0FBTyxJQUFLQSxPQUFPLENBQUNDLGtCQUFrQixDQUFDLENBQUM7UUFBRUMsdUJBQXVCLEVBQUU7TUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFBQWxDLE1BQUEsQ0FFRG1DLFVBQVUsR0FBVixTQUFBQSxVQUFVQSxDQUFDQyxPQUFnQixFQUFRO01BQ2xDckQsS0FBQSxDQUFBa0IsU0FBQSxDQUFNa0MsVUFBVSxDQUFBNUMsSUFBQSxPQUFDNkMsT0FBTztNQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDQyxvQ0FBb0MsRUFBRTtRQUMvQyxJQUNDRCxPQUFPLEtBQ04sQ0FBQyxJQUFJLENBQUNFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFDM0IsQ0FBRSxJQUFJLENBQUNBLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBaUNDLFdBQVcsQ0FBQyxDQUFDLENBQUNULFFBQVEsQ0FBQ2hDLFNBQVMsQ0FBQyxDQUFDLEVBQy9GO1VBQ0QsSUFBSSxDQUFDeUIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDQyxPQUFPLENBQUVDLElBQUksSUFBSztZQUMxQ0EsSUFBSSxDQUFDZSxpQkFBaUIsQ0FBQzFDLFNBQVMsQ0FBQztVQUNsQyxDQUFDLENBQUM7VUFDRjJDLFVBQVUsQ0FBQyxNQUFNO1lBQ2hCLElBQUksQ0FBQ3JCLDJDQUEyQyxDQUFDLElBQUksQ0FBQ3ZCLHFCQUFxQixDQUFDO1VBQzdFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDTixDQUFDLE1BQU07VUFDTixJQUFJLENBQUMwQixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUNDLE9BQU8sQ0FBRUMsSUFBSSxJQUFLO1lBQzFDQSxJQUFJLENBQUNlLGlCQUFpQixDQUFDLElBQUksQ0FBQztVQUM3QixDQUFDLENBQUM7UUFDSDtNQUNEO01BQ0EsSUFBSSxDQUFDM0MscUJBQXFCLEdBQUcsSUFBSSxDQUFDNkIsaUJBQWlCLENBQUMsQ0FBc0M7TUFDMUYsT0FBTyxJQUFJO0lBQ1osQ0FBQztJQUFBMUIsTUFBQSxDQUVEMEMsZ0JBQWdCLEdBQWhCLFNBQUFBLGdCQUFnQkEsQ0FBQ0MsWUFBcUIsRUFBUTtNQUM3QyxJQUFJLENBQUNDLGFBQWEsR0FBR0QsWUFBWTtNQUNqQztNQUNBO01BQ0EsSUFBSUEsWUFBWSxFQUFFO1FBQ2pCLElBQUksQ0FBQ0gsaUJBQWlCLENBQUMsSUFBSSxDQUFDO01BQzdCLENBQUMsTUFBTTtRQUNOLElBQUksQ0FBQ0EsaUJBQWlCLENBQUMxQyxTQUFTLENBQUM7TUFDbEM7TUFDQSxPQUFPLElBQUk7SUFDWjs7SUFFQTtBQUNEO0FBQ0EsT0FGQztJQUFBRSxNQUFBLENBR0E2QyxhQUFhLEdBQWIsU0FBQUEsYUFBYUEsQ0FBQSxFQUFZO01BQ3hCO01BQ0EsTUFBTUMsR0FBWSxHQUFHLEVBQUU7UUFDdEJDLFFBQVEsR0FBRyxJQUFJLENBQUNqQyxRQUFRLElBQUksSUFBSSxDQUFDQSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7TUFFL0M7TUFDQSxJQUFJaUMsUUFBUSxFQUFFNUIsR0FBRyxDQUFPLFlBQVksQ0FBQyxFQUFFO1FBQ3RDNEIsUUFBUSxDQUFDakMsUUFBUSxDQUFDLENBQUMsQ0FBQ1UsT0FBTyxDQUFFd0IsZUFBZSxJQUFLO1VBQ2hEO1VBQ0EsSUFBSUEsZUFBZSxDQUFDN0IsR0FBRyxDQUFPLFlBQVksQ0FBQyxFQUFFO1lBQzVDLE1BQU04QixTQUFTLEdBQUdELGVBQWUsQ0FBQ2xDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUltQyxTQUFTLEVBQUU5QixHQUFHLENBQVEsYUFBYSxDQUFDLEVBQUU7Y0FDekM7Y0FDQTJCLEdBQUcsQ0FBQ2YsSUFBSSxDQUFDa0IsU0FBUyxDQUFDO1lBQ3BCO1VBQ0Q7UUFDRCxDQUFDLENBQUM7TUFDSDtNQUNBLE9BQU9ILEdBQUc7SUFDWCxDQUFDO0lBQUEsT0FBQTNFLGFBQUE7RUFBQSxFQXhLMEIrRSxJQUFJLEdBQUF6RCxXQUFBLEdBQUEwRCx5QkFBQSxDQUFBckUsT0FBQSxDQUFBbUIsU0FBQSxZQUFBMUIsS0FBQTtJQUFBNkUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE3RCxZQUFBLEdBQUF5RCx5QkFBQSxDQUFBckUsT0FBQSxDQUFBbUIsU0FBQSxvQkFBQXZCLEtBQUE7SUFBQTBFLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBNUQsWUFBQSxHQUFBd0QseUJBQUEsQ0FBQXJFLE9BQUEsQ0FBQW1CLFNBQUEsb0JBQUF0QixLQUFBO0lBQUF5RSxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQTNELFlBQUEsR0FBQXVELHlCQUFBLENBQUFyRSxPQUFBLENBQUFtQixTQUFBLDJDQUFBckIsS0FBQTtJQUFBd0UsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0FtQlEsSUFBSTtJQUFBO0VBQUEsSUFBQXpFLE9BQUEsTUFBQUQsTUFBQTtFQXVKNUMyRSxxQkFBcUIsQ0FBQ0MsT0FBTyxDQUFDdEYsYUFBYSxDQUFDO0VBQUMsT0FFOUJBLGFBQWE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -11,6 +11,7 @@ import type VBox from "sap/m/VBox";
|
|
|
11
11
|
import type Control from "sap/ui/core/Control";
|
|
12
12
|
import StashedControlSupport from "sap/ui/core/StashedControlSupport";
|
|
13
13
|
import type CompositeBinding from "sap/ui/model/CompositeBinding";
|
|
14
|
+
import type OdataV4Context from "sap/ui/model/odata/v4/Context";
|
|
14
15
|
@defineUI5Class("sap.fe.templates.ObjectPage.controls.StashableHBox", {
|
|
15
16
|
designtime: "sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime"
|
|
16
17
|
})
|
|
@@ -35,6 +36,8 @@ class StashableHBox extends HBox {
|
|
|
35
36
|
@property({ type: "boolean" })
|
|
36
37
|
disableObjectPageRequestOptimization = true;
|
|
37
38
|
|
|
39
|
+
private lastSetVisibleContext: OdataV4Context | null | undefined = undefined;
|
|
40
|
+
|
|
38
41
|
/*
|
|
39
42
|
* Return the title property.
|
|
40
43
|
*/
|
|
@@ -98,6 +101,30 @@ class StashableHBox extends HBox {
|
|
|
98
101
|
return null;
|
|
99
102
|
}
|
|
100
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Refreshes the controls bound to navigation properties of the current context. The refreshing is needed in case the visibility has changed but the context has not changed (eg: visibility changed by an action with side effects ).
|
|
106
|
+
* @param lastContext
|
|
107
|
+
*/
|
|
108
|
+
_refreshControlsBoundToNavigationProperties(lastContext?: OdataV4Context | null): void {
|
|
109
|
+
const contextToRefresh: OdataV4Context[] = [];
|
|
110
|
+
this.findElements(true).forEach((elem) => {
|
|
111
|
+
//if the visibility change is not due to a navigation but to an interactive action
|
|
112
|
+
// we want to refresh only the elements bound to a navigation property
|
|
113
|
+
if (this.getBindingContext() === lastContext) {
|
|
114
|
+
const elemContext = elem.getBindingContext() as OdataV4Context | undefined;
|
|
115
|
+
// only refreshing the elements which are bound to navigation properties of the current context, to avoid unnecessary refreshes
|
|
116
|
+
if (
|
|
117
|
+
elemContext &&
|
|
118
|
+
elemContext.getPath().startsWith(this.getBindingContext()!.getPath() + "/") &&
|
|
119
|
+
!contextToRefresh.includes(elemContext)
|
|
120
|
+
) {
|
|
121
|
+
contextToRefresh.push(elemContext);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
contextToRefresh.forEach(async (context) => context.requestSideEffects([{ $NavigationPropertyPath: "" }]));
|
|
126
|
+
}
|
|
127
|
+
|
|
101
128
|
setVisible(visible: boolean): this {
|
|
102
129
|
super.setVisible(visible);
|
|
103
130
|
if (!this.disableObjectPageRequestOptimization) {
|
|
@@ -109,12 +136,16 @@ class StashableHBox extends HBox {
|
|
|
109
136
|
this.findElements(false).forEach((elem) => {
|
|
110
137
|
elem.setBindingContext(undefined);
|
|
111
138
|
});
|
|
139
|
+
setTimeout(() => {
|
|
140
|
+
this._refreshControlsBoundToNavigationProperties(this.lastSetVisibleContext);
|
|
141
|
+
}, 0);
|
|
112
142
|
} else {
|
|
113
143
|
this.findElements(false).forEach((elem) => {
|
|
114
144
|
elem.setBindingContext(null);
|
|
115
145
|
});
|
|
116
146
|
}
|
|
117
147
|
}
|
|
148
|
+
this.lastSetVisibleContext = this.getBindingContext() as OdataV4Context | null | undefined;
|
|
118
149
|
return this;
|
|
119
150
|
}
|
|
120
151
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define([], function () {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for polling section stability.
|
|
11
|
+
*/
|
|
12
|
+
/** Default polling interval in milliseconds. */
|
|
13
|
+
const POLL_INTERVAL = 50;
|
|
14
|
+
/** Default maximum number of polling attempts. */
|
|
15
|
+
const MAX_ATTEMPTS = 10;
|
|
16
|
+
/** Number of consecutive stable checks required before considering navigation complete. */
|
|
17
|
+
const REQUIRED_STABLE_CHECKS = 3;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Polls for section selection stability to detect and recover from ObjectPageLayout UX rules resets.
|
|
21
|
+
* During initial ObjectPage load, the ObjectPageLayout's _adjustSelectedSectionByUXRules method may reset
|
|
22
|
+
* the selected section to the first visible section. This utility polls to detect such resets and
|
|
23
|
+
* re-triggers navigation when detected.
|
|
24
|
+
* The polling stops when either:
|
|
25
|
+
* - The target section has been stable for 3 consecutive checks (~150ms).
|
|
26
|
+
* - Maximum attempts (10) reached (~500ms total).
|
|
27
|
+
* - Guard check returns false (e.g., control destroyed).
|
|
28
|
+
* @param config Polling configuration.
|
|
29
|
+
* @returns Promise that resolves when polling completes (either stable or timeout).
|
|
30
|
+
*/
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/promise-function-async -- Cannot use async here as return await is not allowed
|
|
32
|
+
function pollForSectionStability(config) {
|
|
33
|
+
return new Promise(resolve => {
|
|
34
|
+
let attempts = 0;
|
|
35
|
+
let stableCount = 0;
|
|
36
|
+
const checkSection = () => {
|
|
37
|
+
attempts++;
|
|
38
|
+
|
|
39
|
+
// Guard check (e.g., control destroyed during navigation)
|
|
40
|
+
if (config.guardCheck && !config.guardCheck()) {
|
|
41
|
+
resolve();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const currentSection = config.getSelectedSection();
|
|
45
|
+
if (currentSection !== config.targetSectionId) {
|
|
46
|
+
// UX rules reset detected - re-navigate
|
|
47
|
+
stableCount = 0;
|
|
48
|
+
config.onResetDetected();
|
|
49
|
+
} else {
|
|
50
|
+
stableCount++;
|
|
51
|
+
if (stableCount >= REQUIRED_STABLE_CHECKS) {
|
|
52
|
+
// Section stable - stop polling
|
|
53
|
+
resolve();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (attempts < MAX_ATTEMPTS) {
|
|
58
|
+
setTimeout(checkSection, POLL_INTERVAL);
|
|
59
|
+
} else {
|
|
60
|
+
// Max attempts reached - stop polling
|
|
61
|
+
resolve();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Start polling after first interval
|
|
66
|
+
setTimeout(checkSection, POLL_INTERVAL);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
_exports.pollForSectionStability = pollForSectionStability;
|
|
70
|
+
return _exports;
|
|
71
|
+
}, false);
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQT0xMX0lOVEVSVkFMIiwiTUFYX0FUVEVNUFRTIiwiUkVRVUlSRURfU1RBQkxFX0NIRUNLUyIsInBvbGxGb3JTZWN0aW9uU3RhYmlsaXR5IiwiY29uZmlnIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhdHRlbXB0cyIsInN0YWJsZUNvdW50IiwiY2hlY2tTZWN0aW9uIiwiZ3VhcmRDaGVjayIsImN1cnJlbnRTZWN0aW9uIiwiZ2V0U2VsZWN0ZWRTZWN0aW9uIiwidGFyZ2V0U2VjdGlvbklkIiwib25SZXNldERldGVjdGVkIiwic2V0VGltZW91dCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTZWN0aW9uTmF2aWdhdGlvbkhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHBvbGxpbmcgc2VjdGlvbiBzdGFiaWxpdHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvblN0YWJpbGl0eVBvbGxpbmdDb25maWcge1xuXHQvKiogRnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc2VjdGlvbiBJRC4gKi9cblx0Z2V0U2VsZWN0ZWRTZWN0aW9uOiAoKSA9PiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXHQvKiogVGhlIHRhcmdldCBzZWN0aW9uIElEIHdlJ3JlIHdhaXRpbmcgZm9yLiAqL1xuXHR0YXJnZXRTZWN0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIENhbGxiYWNrIGludm9rZWQgd2hlbiBhIFVYIHJ1bGVzIHJlc2V0IGlzIGRldGVjdGVkIChzZWN0aW9uIGNoYW5nZWQgYXdheSBmcm9tIHRhcmdldCkuICovXG5cdG9uUmVzZXREZXRlY3RlZDogKCkgPT4gdm9pZDtcblx0LyoqIE9wdGlvbmFsIGd1YXJkIGNoZWNrIC0gcmV0dXJuIGZhbHNlIHRvIHN0b3AgcG9sbGluZyBlYXJseSAoZS5nLiwgY29udHJvbCBkZXN0cm95ZWQpLiAqL1xuXHRndWFyZENoZWNrPzogKCkgPT4gYm9vbGVhbjtcbn1cblxuLyoqIERlZmF1bHQgcG9sbGluZyBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMuICAqL1xuY29uc3QgUE9MTF9JTlRFUlZBTCA9IDUwO1xuLyoqIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgcG9sbGluZyBhdHRlbXB0cy4gKi9cbmNvbnN0IE1BWF9BVFRFTVBUUyA9IDEwO1xuLyoqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBzdGFibGUgY2hlY2tzIHJlcXVpcmVkIGJlZm9yZSBjb25zaWRlcmluZyBuYXZpZ2F0aW9uIGNvbXBsZXRlLiAqL1xuY29uc3QgUkVRVUlSRURfU1RBQkxFX0NIRUNLUyA9IDM7XG5cbi8qKlxuICogUG9sbHMgZm9yIHNlY3Rpb24gc2VsZWN0aW9uIHN0YWJpbGl0eSB0byBkZXRlY3QgYW5kIHJlY292ZXIgZnJvbSBPYmplY3RQYWdlTGF5b3V0IFVYIHJ1bGVzIHJlc2V0cy5cbiAqIER1cmluZyBpbml0aWFsIE9iamVjdFBhZ2UgbG9hZCwgdGhlIE9iamVjdFBhZ2VMYXlvdXQncyBfYWRqdXN0U2VsZWN0ZWRTZWN0aW9uQnlVWFJ1bGVzIG1ldGhvZCBtYXkgcmVzZXRcbiAqIHRoZSBzZWxlY3RlZCBzZWN0aW9uIHRvIHRoZSBmaXJzdCB2aXNpYmxlIHNlY3Rpb24uIFRoaXMgdXRpbGl0eSBwb2xscyB0byBkZXRlY3Qgc3VjaCByZXNldHMgYW5kXG4gKiByZS10cmlnZ2VycyBuYXZpZ2F0aW9uIHdoZW4gZGV0ZWN0ZWQuXG4gKiBUaGUgcG9sbGluZyBzdG9wcyB3aGVuIGVpdGhlcjpcbiAqIC0gVGhlIHRhcmdldCBzZWN0aW9uIGhhcyBiZWVuIHN0YWJsZSBmb3IgMyBjb25zZWN1dGl2ZSBjaGVja3MgKH4xNTBtcykuXG4gKiAtIE1heGltdW0gYXR0ZW1wdHMgKDEwKSByZWFjaGVkICh+NTAwbXMgdG90YWwpLlxuICogLSBHdWFyZCBjaGVjayByZXR1cm5zIGZhbHNlIChlLmcuLCBjb250cm9sIGRlc3Ryb3llZCkuXG4gKiBAcGFyYW0gY29uZmlnIFBvbGxpbmcgY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHBvbGxpbmcgY29tcGxldGVzIChlaXRoZXIgc3RhYmxlIG9yIHRpbWVvdXQpLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmMgLS0gQ2Fubm90IHVzZSBhc3luYyBoZXJlIGFzIHJldHVybiBhd2FpdCBpcyBub3QgYWxsb3dlZFxuZXhwb3J0IGZ1bmN0aW9uIHBvbGxGb3JTZWN0aW9uU3RhYmlsaXR5KGNvbmZpZzogU2VjdGlvblN0YWJpbGl0eVBvbGxpbmdDb25maWcpOiBQcm9taXNlPHZvaWQ+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0bGV0IGF0dGVtcHRzID0gMDtcblx0XHRsZXQgc3RhYmxlQ291bnQgPSAwO1xuXG5cdFx0Y29uc3QgY2hlY2tTZWN0aW9uID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0YXR0ZW1wdHMrKztcblxuXHRcdFx0Ly8gR3VhcmQgY2hlY2sgKGUuZy4sIGNvbnRyb2wgZGVzdHJveWVkIGR1cmluZyBuYXZpZ2F0aW9uKVxuXHRcdFx0aWYgKGNvbmZpZy5ndWFyZENoZWNrICYmICFjb25maWcuZ3VhcmRDaGVjaygpKSB7XG5cdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjdXJyZW50U2VjdGlvbiA9IGNvbmZpZy5nZXRTZWxlY3RlZFNlY3Rpb24oKTtcblxuXHRcdFx0aWYgKGN1cnJlbnRTZWN0aW9uICE9PSBjb25maWcudGFyZ2V0U2VjdGlvbklkKSB7XG5cdFx0XHRcdC8vIFVYIHJ1bGVzIHJlc2V0IGRldGVjdGVkIC0gcmUtbmF2aWdhdGVcblx0XHRcdFx0c3RhYmxlQ291bnQgPSAwO1xuXHRcdFx0XHRjb25maWcub25SZXNldERldGVjdGVkKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdGFibGVDb3VudCsrO1xuXHRcdFx0XHRpZiAoc3RhYmxlQ291bnQgPj0gUkVRVUlSRURfU1RBQkxFX0NIRUNLUykge1xuXHRcdFx0XHRcdC8vIFNlY3Rpb24gc3RhYmxlIC0gc3RvcCBwb2xsaW5nXG5cdFx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoYXR0ZW1wdHMgPCBNQVhfQVRURU1QVFMpIHtcblx0XHRcdFx0c2V0VGltZW91dChjaGVja1NlY3Rpb24sIFBPTExfSU5URVJWQUwpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gTWF4IGF0dGVtcHRzIHJlYWNoZWQgLSBzdG9wIHBvbGxpbmdcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHQvLyBTdGFydCBwb2xsaW5nIGFmdGVyIGZpcnN0IGludGVydmFsXG5cdFx0c2V0VGltZW91dChjaGVja1NlY3Rpb24sIFBPTExfSU5URVJWQUwpO1xuXHR9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7RUFBQTtBQUNBO0FBQ0E7RUFZQTtFQUNBLE1BQU1BLGFBQWEsR0FBRyxFQUFFO0VBQ3hCO0VBQ0EsTUFBTUMsWUFBWSxHQUFHLEVBQUU7RUFDdkI7RUFDQSxNQUFNQyxzQkFBc0IsR0FBRyxDQUFDOztFQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNPLFNBQVNDLHVCQUF1QkEsQ0FBQ0MsTUFBcUMsRUFBaUI7SUFDN0YsT0FBTyxJQUFJQyxPQUFPLENBQUVDLE9BQU8sSUFBSztNQUMvQixJQUFJQyxRQUFRLEdBQUcsQ0FBQztNQUNoQixJQUFJQyxXQUFXLEdBQUcsQ0FBQztNQUVuQixNQUFNQyxZQUFZLEdBQUdBLENBQUEsS0FBWTtRQUNoQ0YsUUFBUSxFQUFFOztRQUVWO1FBQ0EsSUFBSUgsTUFBTSxDQUFDTSxVQUFVLElBQUksQ0FBQ04sTUFBTSxDQUFDTSxVQUFVLENBQUMsQ0FBQyxFQUFFO1VBQzlDSixPQUFPLENBQUMsQ0FBQztVQUNUO1FBQ0Q7UUFFQSxNQUFNSyxjQUFjLEdBQUdQLE1BQU0sQ0FBQ1Esa0JBQWtCLENBQUMsQ0FBQztRQUVsRCxJQUFJRCxjQUFjLEtBQUtQLE1BQU0sQ0FBQ1MsZUFBZSxFQUFFO1VBQzlDO1VBQ0FMLFdBQVcsR0FBRyxDQUFDO1VBQ2ZKLE1BQU0sQ0FBQ1UsZUFBZSxDQUFDLENBQUM7UUFDekIsQ0FBQyxNQUFNO1VBQ05OLFdBQVcsRUFBRTtVQUNiLElBQUlBLFdBQVcsSUFBSU4sc0JBQXNCLEVBQUU7WUFDMUM7WUFDQUksT0FBTyxDQUFDLENBQUM7WUFDVDtVQUNEO1FBQ0Q7UUFFQSxJQUFJQyxRQUFRLEdBQUdOLFlBQVksRUFBRTtVQUM1QmMsVUFBVSxDQUFDTixZQUFZLEVBQUVULGFBQWEsQ0FBQztRQUN4QyxDQUFDLE1BQU07VUFDTjtVQUNBTSxPQUFPLENBQUMsQ0FBQztRQUNWO01BQ0QsQ0FBQzs7TUFFRDtNQUNBUyxVQUFVLENBQUNOLFlBQVksRUFBRVQsYUFBYSxDQUFDO0lBQ3hDLENBQUMsQ0FBQztFQUNIO0VBQUNnQixRQUFBLENBQUFiLHVCQUFBLEdBQUFBLHVCQUFBO0VBQUEsT0FBQWEsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for polling section stability.
|
|
3
|
+
*/
|
|
4
|
+
export interface SectionStabilityPollingConfig {
|
|
5
|
+
/** Function that returns the currently selected section ID. */
|
|
6
|
+
getSelectedSection: () => string | null | undefined;
|
|
7
|
+
/** The target section ID we're waiting for. */
|
|
8
|
+
targetSectionId: string | undefined;
|
|
9
|
+
/** Callback invoked when a UX rules reset is detected (section changed away from target). */
|
|
10
|
+
onResetDetected: () => void;
|
|
11
|
+
/** Optional guard check - return false to stop polling early (e.g., control destroyed). */
|
|
12
|
+
guardCheck?: () => boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Default polling interval in milliseconds. */
|
|
16
|
+
const POLL_INTERVAL = 50;
|
|
17
|
+
/** Default maximum number of polling attempts. */
|
|
18
|
+
const MAX_ATTEMPTS = 10;
|
|
19
|
+
/** Number of consecutive stable checks required before considering navigation complete. */
|
|
20
|
+
const REQUIRED_STABLE_CHECKS = 3;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Polls for section selection stability to detect and recover from ObjectPageLayout UX rules resets.
|
|
24
|
+
* During initial ObjectPage load, the ObjectPageLayout's _adjustSelectedSectionByUXRules method may reset
|
|
25
|
+
* the selected section to the first visible section. This utility polls to detect such resets and
|
|
26
|
+
* re-triggers navigation when detected.
|
|
27
|
+
* The polling stops when either:
|
|
28
|
+
* - The target section has been stable for 3 consecutive checks (~150ms).
|
|
29
|
+
* - Maximum attempts (10) reached (~500ms total).
|
|
30
|
+
* - Guard check returns false (e.g., control destroyed).
|
|
31
|
+
* @param config Polling configuration.
|
|
32
|
+
* @returns Promise that resolves when polling completes (either stable or timeout).
|
|
33
|
+
*/
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/promise-function-async -- Cannot use async here as return await is not allowed
|
|
35
|
+
export function pollForSectionStability(config: SectionStabilityPollingConfig): Promise<void> {
|
|
36
|
+
return new Promise((resolve) => {
|
|
37
|
+
let attempts = 0;
|
|
38
|
+
let stableCount = 0;
|
|
39
|
+
|
|
40
|
+
const checkSection = (): void => {
|
|
41
|
+
attempts++;
|
|
42
|
+
|
|
43
|
+
// Guard check (e.g., control destroyed during navigation)
|
|
44
|
+
if (config.guardCheck && !config.guardCheck()) {
|
|
45
|
+
resolve();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const currentSection = config.getSelectedSection();
|
|
50
|
+
|
|
51
|
+
if (currentSection !== config.targetSectionId) {
|
|
52
|
+
// UX rules reset detected - re-navigate
|
|
53
|
+
stableCount = 0;
|
|
54
|
+
config.onResetDetected();
|
|
55
|
+
} else {
|
|
56
|
+
stableCount++;
|
|
57
|
+
if (stableCount >= REQUIRED_STABLE_CHECKS) {
|
|
58
|
+
// Section stable - stop polling
|
|
59
|
+
resolve();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (attempts < MAX_ATTEMPTS) {
|
|
65
|
+
setTimeout(checkSection, POLL_INTERVAL);
|
|
66
|
+
} else {
|
|
67
|
+
// Max attempts reached - stop polling
|
|
68
|
+
resolve();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Start polling after first interval
|
|
73
|
+
setTimeout(checkSection, POLL_INTERVAL);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"id": "sap.fe.templates.ObjectPage",
|
|
5
5
|
"type": "component",
|
|
6
6
|
"applicationVersion": {
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.148.0"
|
|
8
8
|
},
|
|
9
9
|
"title": "Object Page",
|
|
10
10
|
"tags": {
|
|
@@ -47,20 +47,6 @@
|
|
|
47
47
|
"shortcut": "Ctrl+Enter",
|
|
48
48
|
"description": "{{CREATE_OBJECT_SHORTCUT_DESCRIPTION}}"
|
|
49
49
|
},
|
|
50
|
-
"Cut": {
|
|
51
|
-
"name": "Cut",
|
|
52
|
-
"shortcut": "Ctrl+X",
|
|
53
|
-
"description": "{{CUT_SHORTCUT_DESCRIPTION}}"
|
|
54
|
-
},
|
|
55
|
-
"Copy": {
|
|
56
|
-
"name": "Copy",
|
|
57
|
-
"shortcut": "Ctrl+c"
|
|
58
|
-
},
|
|
59
|
-
"Paste": {
|
|
60
|
-
"name": "Paste",
|
|
61
|
-
"shortcut": "Ctrl+V",
|
|
62
|
-
"description": "{{PASTE_SHORTCUT_DESCRIPTION}}"
|
|
63
|
-
},
|
|
64
50
|
"DeleteEntry": {
|
|
65
51
|
"name": "DeleteEntry",
|
|
66
52
|
"shortcut": "Ctrl+D",
|
|
@@ -17,29 +17,38 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/macros/insight
|
|
|
17
17
|
const controller = view.getController();
|
|
18
18
|
const appComponent = controller.getOwnerComponent().getAppComponent();
|
|
19
19
|
const isEditable = CommonUtils.getIsEditable(view);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
if (!isEditable) {
|
|
21
|
+
// Start card retrieval immediately and register it with pageReady so it runs in
|
|
22
|
+
// parallel with the OData page load instead of sequentially after it.
|
|
23
|
+
// _getPageTitleInformation uses requestProperty() which is an OData V4 async API
|
|
24
|
+
// that safely queues data requests and resolves when entity data arrives.
|
|
25
|
+
const cardRetrievalPromise = (async () => {
|
|
26
|
+
const card = await appComponent.getCollaborationManagerService().getDesignTimeCard(RetrieveCardTypes.INTEGRATION);
|
|
27
|
+
if (card) {
|
|
28
|
+
const onAddCardToCollaborationManagerCallback = () => {
|
|
29
|
+
try {
|
|
30
|
+
if (card) {
|
|
31
|
+
appComponent.getCollaborationManagerService().publishCard(card);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
} catch (e) {
|
|
35
|
+
showGenericErrorMessage(view);
|
|
36
|
+
Log.error(e);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const pageTitleInformation = await controller._getPageTitleInformation();
|
|
40
|
+
cards.push({
|
|
41
|
+
card: card,
|
|
42
|
+
title: pageTitleInformation.subtitle || "",
|
|
43
|
+
callback: onAddCardToCollaborationManagerCallback
|
|
44
|
+
});
|
|
32
45
|
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
card: card,
|
|
37
|
-
title: pageTitleInformation.subtitle || "",
|
|
38
|
-
callback: onAddCardToCollaborationManagerCallback
|
|
39
|
-
});
|
|
46
|
+
})();
|
|
47
|
+
controller.pageReady.waitFor(cardRetrievalPromise);
|
|
48
|
+
await cardRetrievalPromise;
|
|
40
49
|
}
|
|
41
50
|
}
|
|
42
51
|
};
|
|
43
52
|
return CollaborationManagerOverride;
|
|
44
53
|
}, false);
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXRyaWV2ZUNhcmRUeXBlcyIsIklOVEVHUkFUSU9OIiwiX2V4cG9ydHMiLCJDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlIiwiY29sbGVjdEF2YWlsYWJsZUNhcmRzIiwiY2FyZHMiLCJ2aWV3IiwiYmFzZSIsImdldFZpZXciLCJjb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsImFwcENvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50IiwiaXNFZGl0YWJsZSIsIkNvbW1vblV0aWxzIiwiZ2V0SXNFZGl0YWJsZSIsImNhcmRSZXRyaWV2YWxQcm9taXNlIiwiY2FyZCIsImdldENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZSIsImdldERlc2lnblRpbWVDYXJkIiwib25BZGRDYXJkVG9Db2xsYWJvcmF0aW9uTWFuYWdlckNhbGxiYWNrIiwicHVibGlzaENhcmQiLCJlIiwic2hvd0dlbmVyaWNFcnJvck1lc3NhZ2UiLCJMb2ciLCJlcnJvciIsInBhZ2VUaXRsZUluZm9ybWF0aW9uIiwiX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uIiwicHVzaCIsInRpdGxlIiwic3VidGl0bGUiLCJjYWxsYmFjayIsInBhZ2VSZWFkeSIsIndhaXRGb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgdHlwZSBSZXRyaWV2ZUNhcmRUeXBlIH0gZnJvbSBcInNhcC9jYXJkcy9hcC9jb21tb24vc2VydmljZXMvUmV0cmlldmVDYXJkXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBDb2xsYWJvcmF0aW9uTWFuYWdlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY2FyZHMvQ29sbGFib3JhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgV3JhcHBlZENhcmQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgc2hvd0dlbmVyaWNFcnJvck1lc3NhZ2UgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnNpZ2h0cy9Db21tb25JbnNpZ2h0c0hlbHBlclwiO1xuaW1wb3J0IHsgdHlwZSBDYXJkTWFuaWZlc3QgfSBmcm9tIFwic2FwL2luc2lnaHRzL0NhcmRIZWxwZXJcIjtcbmV4cG9ydCBjb25zdCBSZXRyaWV2ZUNhcmRUeXBlczogUmVjb3JkPHN0cmluZywgUmV0cmlldmVDYXJkVHlwZT4gPSB7XG5cdElOVEVHUkFUSU9OOiBcImludGVncmF0aW9uXCJcbn07XG5cbmNvbnN0IENvbGxhYm9yYXRpb25NYW5hZ2VyT3ZlcnJpZGUgPSB7XG5cdGFzeW5jIGNvbGxlY3RBdmFpbGFibGVDYXJkcyh0aGlzOiBDb2xsYWJvcmF0aW9uTWFuYWdlciwgY2FyZHM6IFdyYXBwZWRDYXJkW10pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5iYXNlLmdldFZpZXcoKTtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IGlzRWRpdGFibGUgPSBDb21tb25VdGlscy5nZXRJc0VkaXRhYmxlKHZpZXcpO1xuXHRcdGlmICghaXNFZGl0YWJsZSkge1xuXHRcdFx0Ly8gU3RhcnQgY2FyZCByZXRyaWV2YWwgaW1tZWRpYXRlbHkgYW5kIHJlZ2lzdGVyIGl0IHdpdGggcGFnZVJlYWR5IHNvIGl0IHJ1bnMgaW5cblx0XHRcdC8vIHBhcmFsbGVsIHdpdGggdGhlIE9EYXRhIHBhZ2UgbG9hZCBpbnN0ZWFkIG9mIHNlcXVlbnRpYWxseSBhZnRlciBpdC5cblx0XHRcdC8vIF9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbiB1c2VzIHJlcXVlc3RQcm9wZXJ0eSgpIHdoaWNoIGlzIGFuIE9EYXRhIFY0IGFzeW5jIEFQSVxuXHRcdFx0Ly8gdGhhdCBzYWZlbHkgcXVldWVzIGRhdGEgcmVxdWVzdHMgYW5kIHJlc29sdmVzIHdoZW4gZW50aXR5IGRhdGEgYXJyaXZlcy5cblx0XHRcdGNvbnN0IGNhcmRSZXRyaWV2YWxQcm9taXNlID0gKGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0Y29uc3QgY2FyZCA9IGF3YWl0IGFwcENvbXBvbmVudC5nZXRDb2xsYWJvcmF0aW9uTWFuYWdlclNlcnZpY2UoKS5nZXREZXNpZ25UaW1lQ2FyZChSZXRyaWV2ZUNhcmRUeXBlcy5JTlRFR1JBVElPTik7XG5cdFx0XHRcdGlmIChjYXJkKSB7XG5cdFx0XHRcdFx0Y29uc3Qgb25BZGRDYXJkVG9Db2xsYWJvcmF0aW9uTWFuYWdlckNhbGxiYWNrID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0aWYgKGNhcmQpIHtcblx0XHRcdFx0XHRcdFx0XHRhcHBDb21wb25lbnQuZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlKCkucHVibGlzaENhcmQoY2FyZCBhcyBDYXJkTWFuaWZlc3QpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdFx0XHRzaG93R2VuZXJpY0Vycm9yTWVzc2FnZSh2aWV3KTtcblx0XHRcdFx0XHRcdFx0TG9nLmVycm9yKGUgYXMgc3RyaW5nKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGNvbnN0IHBhZ2VUaXRsZUluZm9ybWF0aW9uID0gYXdhaXQgY29udHJvbGxlci5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHRcdFx0XHRjYXJkcy5wdXNoKHtcblx0XHRcdFx0XHRcdGNhcmQ6IGNhcmQsXG5cdFx0XHRcdFx0XHR0aXRsZTogcGFnZVRpdGxlSW5mb3JtYXRpb24uc3VidGl0bGUgfHwgXCJcIixcblx0XHRcdFx0XHRcdGNhbGxiYWNrOiBvbkFkZENhcmRUb0NvbGxhYm9yYXRpb25NYW5hZ2VyQ2FsbGJhY2tcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSkoKTtcblx0XHRcdGNvbnRyb2xsZXIucGFnZVJlYWR5LndhaXRGb3IoY2FyZFJldHJpZXZhbFByb21pc2UpO1xuXHRcdFx0YXdhaXQgY2FyZFJldHJpZXZhbFByb21pc2U7XG5cdFx0fVxuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgQ29sbGFib3JhdGlvbk1hbmFnZXJPdmVycmlkZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0VBT08sTUFBTUEsaUJBQW1ELEdBQUc7SUFDbEVDLFdBQVcsRUFBRTtFQUNkLENBQUM7RUFBQ0MsUUFBQSxDQUFBRixpQkFBQSxHQUFBQSxpQkFBQTtFQUVGLE1BQU1HLDRCQUE0QixHQUFHO0lBQ3BDLE1BQU1DLHFCQUFxQkEsQ0FBNkJDLEtBQW9CLEVBQWlCO01BQzVGLE1BQU1DLElBQUksR0FBRyxJQUFJLENBQUNDLElBQUksQ0FBQ0MsT0FBTyxDQUFDLENBQUM7TUFDaEMsTUFBTUMsVUFBVSxHQUFHSCxJQUFJLENBQUNJLGFBQWEsQ0FBQyxDQUFDO01BQ3ZDLE1BQU1DLFlBQVksR0FBR0YsVUFBVSxDQUFDRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUNDLGVBQWUsQ0FBQyxDQUFDO01BQ3JFLE1BQU1DLFVBQVUsR0FBR0MsV0FBVyxDQUFDQyxhQUFhLENBQUNWLElBQUksQ0FBQztNQUNsRCxJQUFJLENBQUNRLFVBQVUsRUFBRTtRQUNoQjtRQUNBO1FBQ0E7UUFDQTtRQUNBLE1BQU1HLG9CQUFvQixHQUFHLENBQUMsWUFBMkI7VUFDeEQsTUFBTUMsSUFBSSxHQUFHLE1BQU1QLFlBQVksQ0FBQ1EsOEJBQThCLENBQUMsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQ3BCLGlCQUFpQixDQUFDQyxXQUFXLENBQUM7VUFDakgsSUFBSWlCLElBQUksRUFBRTtZQUNULE1BQU1HLHVDQUF1QyxHQUFHQSxDQUFBLEtBQVk7Y0FDM0QsSUFBSTtnQkFDSCxJQUFJSCxJQUFJLEVBQUU7a0JBQ1RQLFlBQVksQ0FBQ1EsOEJBQThCLENBQUMsQ0FBQyxDQUFDRyxXQUFXLENBQUNKLElBQW9CLENBQUM7a0JBQy9FO2dCQUNEO2NBQ0QsQ0FBQyxDQUFDLE9BQU9LLENBQUMsRUFBRTtnQkFDWEMsdUJBQXVCLENBQUNsQixJQUFJLENBQUM7Z0JBQzdCbUIsR0FBRyxDQUFDQyxLQUFLLENBQUNILENBQVcsQ0FBQztjQUN2QjtZQUNELENBQUM7WUFDRCxNQUFNSSxvQkFBb0IsR0FBRyxNQUFNbEIsVUFBVSxDQUFDbUIsd0JBQXdCLENBQUMsQ0FBQztZQUN4RXZCLEtBQUssQ0FBQ3dCLElBQUksQ0FBQztjQUNWWCxJQUFJLEVBQUVBLElBQUk7Y0FDVlksS0FBSyxFQUFFSCxvQkFBb0IsQ0FBQ0ksUUFBUSxJQUFJLEVBQUU7Y0FDMUNDLFFBQVEsRUFBRVg7WUFDWCxDQUFDLENBQUM7VUFDSDtRQUNELENBQUMsRUFBRSxDQUFDO1FBQ0paLFVBQVUsQ0FBQ3dCLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDakIsb0JBQW9CLENBQUM7UUFDbEQsTUFBTUEsb0JBQW9CO01BQzNCO0lBQ0Q7RUFDRCxDQUFDO0VBQUMsT0FDYWQsNEJBQTRCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -15,28 +15,35 @@ const CollaborationManagerOverride = {
|
|
|
15
15
|
const controller = view.getController();
|
|
16
16
|
const appComponent = controller.getOwnerComponent().getAppComponent();
|
|
17
17
|
const isEditable = CommonUtils.getIsEditable(view);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
18
|
+
if (!isEditable) {
|
|
19
|
+
// Start card retrieval immediately and register it with pageReady so it runs in
|
|
20
|
+
// parallel with the OData page load instead of sequentially after it.
|
|
21
|
+
// _getPageTitleInformation uses requestProperty() which is an OData V4 async API
|
|
22
|
+
// that safely queues data requests and resolves when entity data arrives.
|
|
23
|
+
const cardRetrievalPromise = (async (): Promise<void> => {
|
|
24
|
+
const card = await appComponent.getCollaborationManagerService().getDesignTimeCard(RetrieveCardTypes.INTEGRATION);
|
|
25
|
+
if (card) {
|
|
26
|
+
const onAddCardToCollaborationManagerCallback = (): void => {
|
|
27
|
+
try {
|
|
28
|
+
if (card) {
|
|
29
|
+
appComponent.getCollaborationManagerService().publishCard(card as CardManifest);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
} catch (e) {
|
|
33
|
+
showGenericErrorMessage(view);
|
|
34
|
+
Log.error(e as string);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const pageTitleInformation = await controller._getPageTitleInformation();
|
|
38
|
+
cards.push({
|
|
39
|
+
card: card,
|
|
40
|
+
title: pageTitleInformation.subtitle || "",
|
|
41
|
+
callback: onAddCardToCollaborationManagerCallback
|
|
42
|
+
});
|
|
32
43
|
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
card: card,
|
|
37
|
-
title: pageTitleInformation.subtitle || "",
|
|
38
|
-
callback: onAddCardToCollaborationManagerCallback
|
|
39
|
-
});
|
|
44
|
+
})();
|
|
45
|
+
controller.pageReady.waitFor(cardRetrievalPromise);
|
|
46
|
+
await cardRetrievalPromise;
|
|
40
47
|
}
|
|
41
48
|
}
|
|
42
49
|
};
|