@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.
Files changed (102) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  5. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +1 -1
  6. package/src/sap/fe/templates/ListReport/ListReport.view.xml +45 -10
  7. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +43 -16
  8. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +51 -15
  9. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +39 -3
  10. package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +35 -1
  11. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +4 -1
  12. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +3 -0
  13. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  14. package/src/sap/fe/templates/ListReport/overrides/MessageHandler.js +3 -2
  15. package/src/sap/fe/templates/ListReport/overrides/MessageHandler.ts +2 -1
  16. package/src/sap/fe/templates/ObjectPage/Component.js +4 -2
  17. package/src/sap/fe/templates/ObjectPage/Component.ts +3 -1
  18. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +163 -28
  19. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +163 -23
  20. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +246 -35
  21. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +286 -42
  22. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +32 -16
  23. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +46 -33
  24. package/src/sap/fe/templates/ObjectPage/components/CollaborationDiscardDialog.js +4 -1
  25. package/src/sap/fe/templates/ObjectPage/components/CollaborationDiscardDialog.tsx +1 -0
  26. package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.js +15 -4
  27. package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.tsx +11 -2
  28. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +28 -1
  29. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +31 -0
  30. package/src/sap/fe/templates/ObjectPage/helpers/SectionNavigationHelper.js +72 -0
  31. package/src/sap/fe/templates/ObjectPage/helpers/SectionNavigationHelper.ts +75 -0
  32. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -15
  33. package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.js +29 -20
  34. package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.ts +28 -21
  35. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +4 -3
  36. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +4 -4
  37. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +2 -2
  38. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
  39. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +93 -17
  40. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +108 -22
  41. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +12 -2
  42. package/src/sap/fe/templates/ObjectPage/view/fragments/EmphasizedFirstHeaderAction.fragment.xml +182 -0
  43. package/src/sap/fe/templates/ObjectPage/view/fragments/ExpandedHeading.fragment.xml +4 -4
  44. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +4 -4
  45. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +1 -1
  46. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +1 -1
  47. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +1 -0
  48. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +2 -0
  49. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +18 -12
  50. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +2 -0
  51. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +2 -0
  52. package/src/sap/fe/templates/library.js +1 -1
  53. package/src/sap/fe/templates/messagebundle.properties +1 -1
  54. package/src/sap/fe/templates/messagebundle_ar.properties +1 -1
  55. package/src/sap/fe/templates/messagebundle_bg.properties +1 -1
  56. package/src/sap/fe/templates/messagebundle_ca.properties +1 -1
  57. package/src/sap/fe/templates/messagebundle_cnr.properties +1 -1
  58. package/src/sap/fe/templates/messagebundle_cs.properties +1 -1
  59. package/src/sap/fe/templates/messagebundle_cy.properties +1 -1
  60. package/src/sap/fe/templates/messagebundle_da.properties +1 -1
  61. package/src/sap/fe/templates/messagebundle_de.properties +1 -1
  62. package/src/sap/fe/templates/messagebundle_el.properties +1 -1
  63. package/src/sap/fe/templates/messagebundle_en.properties +1 -1
  64. package/src/sap/fe/templates/messagebundle_en_GB.properties +1 -1
  65. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
  66. package/src/sap/fe/templates/messagebundle_es.properties +1 -1
  67. package/src/sap/fe/templates/messagebundle_es_MX.properties +1 -1
  68. package/src/sap/fe/templates/messagebundle_et.properties +1 -1
  69. package/src/sap/fe/templates/messagebundle_fi.properties +1 -1
  70. package/src/sap/fe/templates/messagebundle_fr.properties +1 -1
  71. package/src/sap/fe/templates/messagebundle_fr_CA.properties +1 -1
  72. package/src/sap/fe/templates/messagebundle_hi.properties +1 -1
  73. package/src/sap/fe/templates/messagebundle_hr.properties +1 -1
  74. package/src/sap/fe/templates/messagebundle_hu.properties +1 -1
  75. package/src/sap/fe/templates/messagebundle_id.properties +1 -1
  76. package/src/sap/fe/templates/messagebundle_it.properties +1 -1
  77. package/src/sap/fe/templates/messagebundle_iw.properties +2 -2
  78. package/src/sap/fe/templates/messagebundle_ja.properties +1 -1
  79. package/src/sap/fe/templates/messagebundle_kk.properties +1 -1
  80. package/src/sap/fe/templates/messagebundle_ko.properties +1 -1
  81. package/src/sap/fe/templates/messagebundle_lt.properties +1 -1
  82. package/src/sap/fe/templates/messagebundle_lv.properties +1 -1
  83. package/src/sap/fe/templates/messagebundle_mk.properties +1 -1
  84. package/src/sap/fe/templates/messagebundle_ms.properties +1 -1
  85. package/src/sap/fe/templates/messagebundle_nl.properties +1 -1
  86. package/src/sap/fe/templates/messagebundle_no.properties +2 -2
  87. package/src/sap/fe/templates/messagebundle_pl.properties +1 -1
  88. package/src/sap/fe/templates/messagebundle_pt.properties +1 -1
  89. package/src/sap/fe/templates/messagebundle_pt_PT.properties +1 -1
  90. package/src/sap/fe/templates/messagebundle_ro.properties +1 -1
  91. package/src/sap/fe/templates/messagebundle_ru.properties +1 -1
  92. package/src/sap/fe/templates/messagebundle_sh.properties +1 -1
  93. package/src/sap/fe/templates/messagebundle_sk.properties +1 -1
  94. package/src/sap/fe/templates/messagebundle_sl.properties +1 -1
  95. package/src/sap/fe/templates/messagebundle_sr.properties +1 -1
  96. package/src/sap/fe/templates/messagebundle_sv.properties +1 -1
  97. package/src/sap/fe/templates/messagebundle_th.properties +1 -1
  98. package/src/sap/fe/templates/messagebundle_tr.properties +1 -1
  99. package/src/sap/fe/templates/messagebundle_uk.properties +3 -3
  100. package/src/sap/fe/templates/messagebundle_vi.properties +1 -1
  101. package/src/sap/fe/templates/messagebundle_zh_CN.properties +1 -1
  102. 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="20em"
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/LmlzQTxWQm94PihcInNhcC5tLlZCb3hcIikpIHtcblx0XHRcdGZvcm1WQm94LmdldEl0ZW1zKCkuZm9yRWFjaCgoZm9ybUVsZW1lbnRIQm94KSA9PiB7XG5cdFx0XHRcdC8vIEhCb3ggaXMgZXF1aXZhbGVudCBvZiBmb3JtIGVsZW1lbnRcblx0XHRcdFx0aWYgKGZvcm1FbGVtZW50SEJveC5pc0E8SEJveD4oXCJzYXAubS5IQm94XCIpKSB7XG5cdFx0XHRcdFx0Y29uc3QgbGFiZWxDdHJsID0gZm9ybUVsZW1lbnRIQm94LmdldEl0ZW1zKClbMF07XG5cdFx0XHRcdFx0aWYgKGxhYmVsQ3RybD8uaXNBPExhYmVsPihcInNhcC5tLkxhYmVsXCIpKSB7XG5cdFx0XHRcdFx0XHQvLyBGaXJzdCBlbGVtZW50IGlzIGxhYmVsXG5cdFx0XHRcdFx0XHRyZXQucHVzaChsYWJlbEN0cmwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiByZXQ7XG5cdH1cbn1cblN0YXNoZWRDb250cm9sU3VwcG9ydC5taXhJbnRvKFN0YXNoYWJsZUhCb3gpO1xuXG5leHBvcnQgZGVmYXVsdCBTdGFzaGFibGVIQm94O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7TUFpQk1BLGFBQWEsSUFBQUMsSUFBQSxHQUhsQkMsY0FBYyxDQUFDLG9EQUFvRCxFQUFFO0lBQ3JFQyxVQUFVLEVBQUU7RUFDYixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU9BQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FNNUJGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUUsS0FBQSxHQUc1QkgsUUFBUSxDQUFDO0lBQUVD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
@@ -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.146.0"
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
- await controller.pageReady.waitPageReady();
21
- const card = !isEditable ? await appComponent.getCollaborationManagerService().getDesignTimeCard(RetrieveCardTypes.INTEGRATION) : undefined;
22
- if (card) {
23
- const onAddCardToCollaborationManagerCallback = () => {
24
- try {
25
- if (card) {
26
- appComponent.getCollaborationManagerService().publishCard(card);
27
- return;
28
- }
29
- } catch (e) {
30
- showGenericErrorMessage(view);
31
- Log.error(e);
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
- const pageTitleInformation = await controller._getPageTitleInformation();
35
- cards.push({
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXRyaWV2ZUNhcmRUeXBlcyIsIklOVEVHUkFUSU9OIiwiX2V4cG9ydHMiLCJDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlIiwiY29sbGVjdEF2YWlsYWJsZUNhcmRzIiwiY2FyZHMiLCJ2aWV3IiwiYmFzZSIsImdldFZpZXciLCJjb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsImFwcENvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50IiwiaXNFZGl0YWJsZSIsIkNvbW1vblV0aWxzIiwiZ2V0SXNFZGl0YWJsZSIsInBhZ2VSZWFkeSIsIndhaXRQYWdlUmVhZHkiLCJjYXJkIiwiZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlIiwiZ2V0RGVzaWduVGltZUNhcmQiLCJ1bmRlZmluZWQiLCJvbkFkZENhcmRUb0NvbGxhYm9yYXRpb25NYW5hZ2VyQ2FsbGJhY2siLCJwdWJsaXNoQ2FyZCIsImUiLCJzaG93R2VuZXJpY0Vycm9yTWVzc2FnZSIsIkxvZyIsImVycm9yIiwicGFnZVRpdGxlSW5mb3JtYXRpb24iLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJwdXNoIiwidGl0bGUiLCJzdWJ0aXRsZSIsImNhbGxiYWNrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb2xsYWJvcmF0aW9uTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IHR5cGUgUmV0cmlldmVDYXJkVHlwZSB9IGZyb20gXCJzYXAvY2FyZHMvYXAvY29tbW9uL3NlcnZpY2VzL1JldHJpZXZlQ2FyZFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgQ29sbGFib3JhdGlvbk1hbmFnZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NhcmRzL0NvbGxhYm9yYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIFdyYXBwZWRDYXJkIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0NvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IHNob3dHZW5lcmljRXJyb3JNZXNzYWdlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW5zaWdodHMvQ29tbW9uSW5zaWdodHNIZWxwZXJcIjtcbmltcG9ydCB7IHR5cGUgQ2FyZE1hbmlmZXN0IH0gZnJvbSBcInNhcC9pbnNpZ2h0cy9DYXJkSGVscGVyXCI7XG5leHBvcnQgY29uc3QgUmV0cmlldmVDYXJkVHlwZXM6IFJlY29yZDxzdHJpbmcsIFJldHJpZXZlQ2FyZFR5cGU+ID0ge1xuXHRJTlRFR1JBVElPTjogXCJpbnRlZ3JhdGlvblwiXG59O1xuXG5jb25zdCBDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlID0ge1xuXHRhc3luYyBjb2xsZWN0QXZhaWxhYmxlQ2FyZHModGhpczogQ29sbGFib3JhdGlvbk1hbmFnZXIsIGNhcmRzOiBXcmFwcGVkQ2FyZFtdKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuYmFzZS5nZXRWaWV3KCk7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHZpZXcuZ2V0Q29udHJvbGxlcigpO1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IGNvbnRyb2xsZXIuZ2V0T3duZXJDb21wb25lbnQoKS5nZXRBcHBDb21wb25lbnQoKTtcblx0XHRjb25zdCBpc0VkaXRhYmxlID0gQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KTtcblx0ICAgIGF3YWl0IGNvbnRyb2xsZXIucGFnZVJlYWR5LndhaXRQYWdlUmVhZHkoKTtcblx0XHRjb25zdCBjYXJkID0gIWlzRWRpdGFibGVcblx0XHRcdD8gYXdhaXQgYXBwQ29tcG9uZW50LmdldENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZSgpLmdldERlc2lnblRpbWVDYXJkKFJldHJpZXZlQ2FyZFR5cGVzLklOVEVHUkFUSU9OKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0aWYgKGNhcmQpIHtcblx0XHRcdGNvbnN0IG9uQWRkQ2FyZFRvQ29sbGFib3JhdGlvbk1hbmFnZXJDYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRpZiAoY2FyZCkge1xuXHRcdFx0XHRcdFx0YXBwQ29tcG9uZW50LmdldENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZSgpLnB1Ymxpc2hDYXJkKGNhcmQgYXMgQ2FyZE1hbmlmZXN0KTtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRzaG93R2VuZXJpY0Vycm9yTWVzc2FnZSh2aWV3KTtcblx0XHRcdFx0XHRMb2cuZXJyb3IoZSBhcyBzdHJpbmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgcGFnZVRpdGxlSW5mb3JtYXRpb24gPSBhd2FpdCBjb250cm9sbGVyLl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbigpO1xuXHRcdFx0Y2FyZHMucHVzaCh7XG5cdFx0XHRcdGNhcmQ6IGNhcmQsXG5cdFx0XHRcdHRpdGxlOiBwYWdlVGl0bGVJbmZvcm1hdGlvbi5zdWJ0aXRsZSB8fCBcIlwiLFxuXHRcdFx0XHRjYWxsYmFjazogb25BZGRDYXJkVG9Db2xsYWJvcmF0aW9uTWFuYWdlckNhbGxiYWNrXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7RUFPTyxNQUFNQSxpQkFBbUQsR0FBRztJQUNsRUMsV0FBVyxFQUFFO0VBQ2QsQ0FBQztFQUFDQyxRQUFBLENBQUFGLGlCQUFBLEdBQUFBLGlCQUFBO0VBRUYsTUFBTUcsNEJBQTRCLEdBQUc7SUFDcEMsTUFBTUMscUJBQXFCQSxDQUE2QkMsS0FBb0IsRUFBaUI7TUFDNUYsTUFBTUMsSUFBSSxHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQztNQUNoQyxNQUFNQyxVQUFVLEdBQUdILElBQUksQ0FBQ0ksYUFBYSxDQUFDLENBQUM7TUFDdkMsTUFBTUMsWUFBWSxHQUFHRixVQUFVLENBQUNHLGlCQUFpQixDQUFDLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLENBQUM7TUFDckUsTUFBTUMsVUFBVSxHQUFHQyxXQUFXLENBQUNDLGFBQWEsQ0FBQ1YsSUFBSSxDQUFDO01BQy9DLE1BQU1HLFVBQVUsQ0FBQ1EsU0FBUyxDQUFDQyxhQUFhLENBQUMsQ0FBQztNQUM3QyxNQUFNQyxJQUFJLEdBQUcsQ0FBQ0wsVUFBVSxHQUNyQixNQUFNSCxZQUFZLENBQUNTLDhCQUE4QixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUNyQixpQkFBaUIsQ0FBQ0MsV0FBVyxDQUFDLEdBQ3BHcUIsU0FBUztNQUNaLElBQUlILElBQUksRUFBRTtRQUNULE1BQU1JLHVDQUF1QyxHQUFHQSxDQUFBLEtBQVk7VUFDM0QsSUFBSTtZQUNILElBQUlKLElBQUksRUFBRTtjQUNUUixZQUFZLENBQUNTLDhCQUE4QixDQUFDLENBQUMsQ0FBQ0ksV0FBVyxDQUFDTCxJQUFvQixDQUFDO2NBQy9FO1lBQ0Q7VUFDRCxDQUFDLENBQUMsT0FBT00sQ0FBQyxFQUFFO1lBQ1hDLHVCQUF1QixDQUFDcEIsSUFBSSxDQUFDO1lBQzdCcUIsR0FBRyxDQUFDQyxLQUFLLENBQUNILENBQVcsQ0FBQztVQUN2QjtRQUNELENBQUM7UUFDRCxNQUFNSSxvQkFBb0IsR0FBRyxNQUFNcEIsVUFBVSxDQUFDcUIsd0JBQXdCLENBQUMsQ0FBQztRQUN4RXpCLEtBQUssQ0FBQzBCLElBQUksQ0FBQztVQUNWWixJQUFJLEVBQUVBLElBQUk7VUFDVmEsS0FBSyxFQUFFSCxvQkFBb0IsQ0FBQ0ksUUFBUSxJQUFJLEVBQUU7VUFDMUNDLFFBQVEsRUFBRVg7UUFDWCxDQUFDLENBQUM7TUFDSDtJQUNEO0VBQ0QsQ0FBQztFQUFDLE9BQ2FwQiw0QkFBNEI7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
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
- await controller.pageReady.waitPageReady();
19
- const card = !isEditable
20
- ? await appComponent.getCollaborationManagerService().getDesignTimeCard(RetrieveCardTypes.INTEGRATION)
21
- : undefined;
22
- if (card) {
23
- const onAddCardToCollaborationManagerCallback = (): void => {
24
- try {
25
- if (card) {
26
- appComponent.getCollaborationManagerService().publishCard(card as CardManifest);
27
- return;
28
- }
29
- } catch (e) {
30
- showGenericErrorMessage(view);
31
- Log.error(e as string);
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
- const pageTitleInformation = await controller._getPageTitleInformation();
35
- cards.push({
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
  };