@sapui5/sap.fe.templates 1.111.1 → 1.113.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 (130) 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/ListComponent-dbg.js +1 -1
  5. package/src/sap/fe/templates/ListComponent.ts +2 -0
  6. package/src/sap/fe/templates/ListReport/Component-dbg.js +1 -1
  7. package/src/sap/fe/templates/ListReport/Component.ts +2 -0
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +4 -1
  9. package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -1
  10. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +5 -0
  11. package/src/sap/fe/templates/ListReport/LRMessageStrip-dbg.js +1 -1
  12. package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +4 -0
  13. package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -1
  14. package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +55 -42
  15. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  16. package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
  17. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +75 -61
  18. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl-dbg.js +33 -9
  19. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -1
  20. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -1
  21. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +39 -9
  22. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  23. package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +47 -7
  24. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  25. package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
  26. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +49 -6
  27. package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +1 -1
  28. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block-dbg.js +122 -0
  29. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.js → MultipleMode.block.js} +3 -3
  30. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block.js.map +1 -0
  31. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.ts → MultipleMode.block.ts} +14 -15
  32. package/src/sap/fe/templates/ObjectPage/Component-dbg.js +12 -3
  33. package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  34. package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -1
  35. package/src/sap/fe/templates/ObjectPage/Component.ts +13 -1
  36. package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +10 -12
  37. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  38. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -1
  39. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +11 -12
  40. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +3 -2
  41. package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +144 -121
  42. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  43. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
  44. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +190 -143
  45. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +55 -146
  46. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +1 -1
  47. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -1
  48. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +71 -185
  49. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block-dbg.js +145 -0
  50. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js +6 -0
  51. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js.map +1 -0
  52. package/src/sap/fe/templates/ObjectPage/components/{DraftHandlerButton.tsx → DraftHandlerButton.block.tsx} +15 -12
  53. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +1 -1
  54. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +1 -0
  55. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +2 -1
  56. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js.map +1 -1
  57. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +5 -0
  58. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  59. package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -1
  60. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +4 -3
  61. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block-dbg.js +257 -0
  62. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js +6 -0
  63. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js.map +1 -0
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.tsx +280 -0
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +8 -33
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +189 -109
  67. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionEmbeddedComponent.fragment.xml +24 -0
  68. package/src/sap/fe/templates/library-dbg.js +6 -5
  69. package/src/sap/fe/templates/library-preload.js +27 -23
  70. package/src/sap/fe/templates/library-preload.js.map +1 -1
  71. package/src/sap/fe/templates/library.js +1 -1
  72. package/src/sap/fe/templates/library.js.map +1 -1
  73. package/src/sap/fe/templates/library.ts +6 -4
  74. package/src/sap/fe/templates/manifest.json +1 -1
  75. package/src/sap/fe/templates/messagebundle.properties +5 -0
  76. package/src/sap/fe/templates/messagebundle_ar.properties +3 -0
  77. package/src/sap/fe/templates/messagebundle_bg.properties +4 -1
  78. package/src/sap/fe/templates/messagebundle_ca.properties +3 -0
  79. package/src/sap/fe/templates/messagebundle_cs.properties +3 -0
  80. package/src/sap/fe/templates/messagebundle_cy.properties +3 -0
  81. package/src/sap/fe/templates/messagebundle_da.properties +3 -0
  82. package/src/sap/fe/templates/messagebundle_de.properties +3 -0
  83. package/src/sap/fe/templates/messagebundle_el.properties +3 -0
  84. package/src/sap/fe/templates/messagebundle_en.properties +5 -0
  85. package/src/sap/fe/templates/messagebundle_en_GB.properties +3 -0
  86. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +3 -0
  87. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +3 -0
  88. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +3 -0
  89. package/src/sap/fe/templates/messagebundle_es.properties +5 -2
  90. package/src/sap/fe/templates/messagebundle_es_MX.properties +3 -0
  91. package/src/sap/fe/templates/messagebundle_et.properties +5 -2
  92. package/src/sap/fe/templates/messagebundle_fi.properties +3 -0
  93. package/src/sap/fe/templates/messagebundle_fr.properties +3 -0
  94. package/src/sap/fe/templates/messagebundle_fr_CA.properties +3 -0
  95. package/src/sap/fe/templates/messagebundle_hi.properties +3 -0
  96. package/src/sap/fe/templates/messagebundle_hr.properties +3 -0
  97. package/src/sap/fe/templates/messagebundle_hu.properties +3 -0
  98. package/src/sap/fe/templates/messagebundle_id.properties +3 -0
  99. package/src/sap/fe/templates/messagebundle_it.properties +3 -0
  100. package/src/sap/fe/templates/messagebundle_iw.properties +3 -0
  101. package/src/sap/fe/templates/messagebundle_ja.properties +3 -0
  102. package/src/sap/fe/templates/messagebundle_kk.properties +3 -0
  103. package/src/sap/fe/templates/messagebundle_ko.properties +3 -0
  104. package/src/sap/fe/templates/messagebundle_lt.properties +3 -0
  105. package/src/sap/fe/templates/messagebundle_lv.properties +3 -0
  106. package/src/sap/fe/templates/messagebundle_ms.properties +3 -0
  107. package/src/sap/fe/templates/messagebundle_nl.properties +3 -0
  108. package/src/sap/fe/templates/messagebundle_no.properties +3 -0
  109. package/src/sap/fe/templates/messagebundle_pl.properties +3 -0
  110. package/src/sap/fe/templates/messagebundle_pt.properties +3 -0
  111. package/src/sap/fe/templates/messagebundle_pt_PT.properties +3 -0
  112. package/src/sap/fe/templates/messagebundle_ro.properties +5 -2
  113. package/src/sap/fe/templates/messagebundle_ru.properties +3 -0
  114. package/src/sap/fe/templates/messagebundle_sh.properties +5 -2
  115. package/src/sap/fe/templates/messagebundle_sk.properties +3 -0
  116. package/src/sap/fe/templates/messagebundle_sl.properties +3 -0
  117. package/src/sap/fe/templates/messagebundle_sv.properties +3 -0
  118. package/src/sap/fe/templates/messagebundle_th.properties +5 -2
  119. package/src/sap/fe/templates/messagebundle_tr.properties +3 -0
  120. package/src/sap/fe/templates/messagebundle_uk.properties +3 -0
  121. package/src/sap/fe/templates/messagebundle_vi.properties +5 -2
  122. package/src/sap/fe/templates/messagebundle_zh_CN.properties +5 -2
  123. package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -0
  124. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode-dbg.fragment.js +0 -123
  125. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js.map +0 -1
  126. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton-dbg.js +0 -147
  127. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +0 -6
  128. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js.map +0 -1
  129. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +0 -125
  130. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +0 -199
@@ -15,6 +15,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
15
15
  /**
16
16
  * Extension API for object pages on SAP Fiori elements for OData V4.
17
17
  *
18
+ * To correctly integrate your app extension coding with SAP Fiori elements, use only the extensionAPI of SAP Fiori elements. Don't access or manipulate controls, properties, models, or other internal objects created by the SAP Fiori elements framework.
19
+ *
18
20
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI
19
21
  * @public
20
22
  * @hideconstructor
@@ -47,13 +49,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
47
49
  oSideEffectsService = oAppComponent.getSideEffectsService(),
48
50
  oMetaModel = oBindingContext.getModel().getMetaModel(),
49
51
  oSideEffects = {
50
- TargetProperties: [],
51
- TargetEntities: []
52
+ targetProperties: [],
53
+ targetEntities: []
52
54
  };
53
55
  let aPaths, sPath, sBaseEntitySet, sKind;
54
56
  if (vPath === undefined || vPath === null) {
55
57
  // we just add an empty path which should refresh the page with all dependent bindings
56
- oSideEffects.TargetEntities.push({
58
+ oSideEffects.targetEntities.push({
57
59
  $NavigationPropertyPath: ""
58
60
  });
59
61
  } else {
@@ -63,26 +65,22 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
63
65
  sPath = aPaths[i];
64
66
  if (sPath === "") {
65
67
  // an empty path shall refresh the entity without dependencies which means * for the model
66
- oSideEffects.TargetProperties.push({
67
- $PropertyPath: "*"
68
- });
68
+ oSideEffects.targetProperties.push("*");
69
69
  } else {
70
70
  sKind = oMetaModel.getObject(`/${sBaseEntitySet}/${sPath}/$kind`);
71
71
  if (sKind === "NavigationProperty") {
72
- oSideEffects.TargetEntities.push({
72
+ oSideEffects.targetEntities.push({
73
73
  $NavigationPropertyPath: sPath
74
74
  });
75
75
  } else if (sKind) {
76
- oSideEffects.TargetProperties.push({
77
- $PropertyPath: sPath
78
- });
76
+ oSideEffects.targetProperties.push(sPath);
79
77
  } else {
80
78
  return Promise.reject(`${sPath} is not a valid path to be refreshed`);
81
79
  }
82
80
  }
83
81
  }
84
82
  }
85
- return oSideEffectsService.requestSideEffects(oSideEffects.TargetEntities.concat(oSideEffects.TargetProperties), oBindingContext);
83
+ return oSideEffectsService.requestSideEffects([...oSideEffects.targetEntities, ...oSideEffects.targetProperties], oBindingContext);
86
84
  }
87
85
 
88
86
  /**
@@ -219,4 +217,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
219
217
  }(ExtensionAPI)) || _class);
220
218
  return ObjectPageExtensionAPI;
221
219
  }, false);
222
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3RQYWdlRXh0ZW5zaW9uQVBJIiwiZGVmaW5lVUk1Q2xhc3MiLCJyZWZyZXNoIiwidlBhdGgiLCJvQmluZGluZ0NvbnRleHQiLCJfdmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJvQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRBcHBDb21wb25lbnQiLCJvU2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwib01ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwib1NpZGVFZmZlY3RzIiwiVGFyZ2V0UHJvcGVydGllcyIsIlRhcmdldEVudGl0aWVzIiwiYVBhdGhzIiwic1BhdGgiLCJzQmFzZUVudGl0eVNldCIsInNLaW5kIiwidW5kZWZpbmVkIiwicHVzaCIsIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoIiwiQXJyYXkiLCJpc0FycmF5IiwiX2NvbnRyb2xsZXIiLCJnZXRPd25lckNvbXBvbmVudCIsImdldEVudGl0eVNldCIsImkiLCJsZW5ndGgiLCIkUHJvcGVydHlQYXRoIiwiZ2V0T2JqZWN0IiwicmVqZWN0IiwicmVxdWVzdFNpZGVFZmZlY3RzIiwiY29uY2F0IiwiZ2V0U2VsZWN0ZWRDb250ZXh0cyIsInNUYWJsZUlkIiwib1RhYmxlIiwiYnlJZCIsImlzQSIsImdldENvbnRlbnQiLCJzaG93U2lkZUNvbnRlbnQiLCJzU3ViU2VjdGlvbktleSIsImJTaG93Iiwic0Jsb2NrSUQiLCJnZXRTaWRlQ29udGVudExheW91dElEIiwib0Jsb2NrIiwiYkJsb2NrU3RhdGUiLCJnZXRTaG93U2lkZUNvbnRlbnQiLCJzZXRTaG93U2lkZUNvbnRlbnQiLCJfYnVpbGRPUE1lc3NhZ2UiLCJtZXNzYWdlcyIsInZpZXciLCJyZXNvdXJjZUJ1bmRsZSIsImdldFJlc291cmNlQnVuZGxlIiwibWVzc2FnZSIsIm1lc3NhZ2VTdGF0cyIsIkVycm9yIiwiaWQiLCJjb3VudCIsIldhcm5pbmciLCJJbmZvcm1hdGlvbiIsInJlZHVjZSIsImFjYyIsImN1cnJlbnRWYWx1ZSIsImN1cnJlbnRUeXBlIiwiZ2V0VHlwZSIsInNldFR5cGUiLCJNZXNzYWdlIiwidHlwZSIsIk1lc3NhZ2VUeXBlIiwic2V0TWVzc2FnZSIsImdldFRleHQiLCJzaG93TWVzc2FnZXMiLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsInNldFByb3BlcnR5IiwiZ2V0TWVzc2FnZSIsIkludmlzaWJsZU1lc3NhZ2UiLCJnZXRJbnN0YW5jZSIsImFubm91bmNlIiwiSW52aXNpYmxlTWVzc2FnZU1vZGUiLCJBc3NlcnRpdmUiLCJoaWRlTWVzc2FnZSIsImVyciIsIkxvZyIsImVycm9yIiwiRXh0ZW5zaW9uQVBJIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFeHRlbnNpb25BUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBnZXRTaWRlQ29udGVudExheW91dElEIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9JRFwiO1xuaW1wb3J0IEV4dGVuc2lvbkFQSSBmcm9tIFwic2FwL2ZlL2NvcmUvRXh0ZW5zaW9uQVBJXCI7XG5pbXBvcnQgdHlwZSB7IEVuaGFuY2VXaXRoVUk1IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVGFibGVBUElcIjtcbmltcG9ydCBJbnZpc2libGVNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVNZXNzYWdlXCI7XG5pbXBvcnQgeyBJbnZpc2libGVNZXNzYWdlTW9kZSwgTWVzc2FnZVR5cGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IHR5cGUgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuXG4vKipcbiAqIEV4dGVuc2lvbiBBUEkgZm9yIG9iamVjdCBwYWdlcyBvbiBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICpcbiAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJXG4gKiBAcHVibGljXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAZmluYWxcbiAqIEBzaW5jZSAxLjc5LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVwiKVxuY2xhc3MgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSSBleHRlbmRzIEV4dGVuc2lvbkFQSSB7XG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgZWl0aGVyIHRoZSB3aG9sZSBvYmplY3QgcGFnZSBvciBvbmx5IHBhcnRzIG9mIGl0LlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNyZWZyZXNoXG5cdCAqIEBwYXJhbSBbdlBhdGhdIFBhdGggb3IgYXJyYXkgb2YgcGF0aHMgcmVmZXJyaW5nIHRvIGVudGl0aWVzIG9yIHByb3BlcnRpZXMgdG8gYmUgcmVmcmVzaGVkLlxuXHQgKiBJZiBvbWl0dGVkLCB0aGUgd2hvbGUgb2JqZWN0IHBhZ2UgaXMgcmVmcmVzaGVkLiBUaGUgcGF0aCBcIlwiIHJlZnJlc2hlcyB0aGUgZW50aXR5IGFzc2lnbmVkIHRvIHRoZSBvYmplY3QgcGFnZVxuXHQgKiB3aXRob3V0IG5hdmlnYXRpb25zXG5cdCAqIEByZXR1cm5zIFJlc29sdmVkIG9uY2UgdGhlIGRhdGEgaXMgcmVmcmVzaGVkIG9yIHJlamVjdGVkIGlmIHRoZSByZXF1ZXN0IGZhaWxlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRyZWZyZXNoKHZQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IG9CaW5kaW5nQ29udGV4dCA9IHRoaXMuX3ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdGlmICghb0JpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHQvLyBub3RoaW5nIHRvIGJlIHJlZnJlc2hlZCAtIGRvIG5vdCBibG9jayB0aGUgYXBwIVxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuX3ZpZXcpLFxuXHRcdFx0b1NpZGVFZmZlY3RzU2VydmljZSA9IG9BcHBDb21wb25lbnQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCksXG5cdFx0XHRvTWV0YU1vZGVsID0gb0JpbmRpbmdDb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRvU2lkZUVmZmVjdHM6IGFueSA9IHtcblx0XHRcdFx0VGFyZ2V0UHJvcGVydGllczogW10sXG5cdFx0XHRcdFRhcmdldEVudGl0aWVzOiBbXVxuXHRcdFx0fTtcblx0XHRsZXQgYVBhdGhzLCBzUGF0aCwgc0Jhc2VFbnRpdHlTZXQsIHNLaW5kO1xuXG5cdFx0aWYgKHZQYXRoID09PSB1bmRlZmluZWQgfHwgdlBhdGggPT09IG51bGwpIHtcblx0XHRcdC8vIHdlIGp1c3QgYWRkIGFuIGVtcHR5IHBhdGggd2hpY2ggc2hvdWxkIHJlZnJlc2ggdGhlIHBhZ2Ugd2l0aCBhbGwgZGVwZW5kZW50IGJpbmRpbmdzXG5cdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0RW50aXRpZXMucHVzaCh7XG5cdFx0XHRcdCROYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBcIlwiXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YVBhdGhzID0gQXJyYXkuaXNBcnJheSh2UGF0aCkgPyB2UGF0aCA6IFt2UGF0aF07XG5cdFx0XHRzQmFzZUVudGl0eVNldCA9ICh0aGlzLl9jb250cm9sbGVyLmdldE93bmVyQ29tcG9uZW50KCkgYXMgYW55KS5nZXRFbnRpdHlTZXQoKTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhUGF0aHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0c1BhdGggPSBhUGF0aHNbaV07XG5cdFx0XHRcdGlmIChzUGF0aCA9PT0gXCJcIikge1xuXHRcdFx0XHRcdC8vIGFuIGVtcHR5IHBhdGggc2hhbGwgcmVmcmVzaCB0aGUgZW50aXR5IHdpdGhvdXQgZGVwZW5kZW5jaWVzIHdoaWNoIG1lYW5zICogZm9yIHRoZSBtb2RlbFxuXHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRQcm9wZXJ0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogXCIqXCJcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzS2luZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtzQmFzZUVudGl0eVNldH0vJHtzUGF0aH0vJGtpbmRgKTtcblxuXHRcdFx0XHRcdGlmIChzS2luZCA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0XHRcdFx0b1NpZGVFZmZlY3RzLlRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogc1BhdGhcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoc0tpbmQpIHtcblx0XHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRQcm9wZXJ0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHQkUHJvcGVydHlQYXRoOiBzUGF0aFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChgJHtzUGF0aH0gaXMgbm90IGEgdmFsaWQgcGF0aCB0byBiZSByZWZyZXNoZWRgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG9TaWRlRWZmZWN0c1NlcnZpY2UucmVxdWVzdFNpZGVFZmZlY3RzKG9TaWRlRWZmZWN0cy5UYXJnZXRFbnRpdGllcy5jb25jYXQob1NpZGVFZmZlY3RzLlRhcmdldFByb3BlcnRpZXMpLCBvQmluZGluZ0NvbnRleHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGxpc3QgZW50cmllcyBjdXJyZW50bHkgc2VsZWN0ZWQgZm9yIHRoZSB0YWJsZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjZ2V0U2VsZWN0ZWRDb250ZXh0c1xuXHQgKiBAcGFyYW0gc1RhYmxlSWQgVGhlIElEIGlkZW50aWZ5aW5nIHRoZSB0YWJsZSB0aGUgc2VsZWN0ZWQgY29udGV4dCBpcyByZXF1ZXN0ZWQgZm9yXG5cdCAqIEByZXR1cm5zIEFycmF5IGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIGNvbnRleHRzXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldFNlbGVjdGVkQ29udGV4dHMoc1RhYmxlSWQ6IHN0cmluZykge1xuXHRcdGxldCBvVGFibGUgPSB0aGlzLl92aWV3LmJ5SWQoc1RhYmxlSWQpO1xuXHRcdGlmIChvVGFibGUgJiYgb1RhYmxlLmlzQShcInNhcC5mZS5tYWNyb3MudGFibGUuVGFibGVBUElcIikpIHtcblx0XHRcdG9UYWJsZSA9IChvVGFibGUgYXMgRW5oYW5jZVdpdGhVSTU8VGFibGVBUEk+KS5nZXRDb250ZW50KCk7XG5cdFx0fVxuXHRcdHJldHVybiAob1RhYmxlICYmIG9UYWJsZS5pc0EoXCJzYXAudWkubWRjLlRhYmxlXCIpICYmIChvVGFibGUgYXMgYW55KS5nZXRTZWxlY3RlZENvbnRleHRzKCkpIHx8IFtdO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIG9yIGhpZGVzIHRoZSBzaWRlIGNvbnRlbnQgb2YgYW4gb2JqZWN0IHBhZ2UuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI3Nob3dTaWRlQ29udGVudFxuXHQgKiBAcGFyYW0gc1N1YlNlY3Rpb25LZXkgS2V5IG9mIHRoZSBzaWRlIGNvbnRlbnQgZnJhZ21lbnQgYXMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QuanNvblxuXHQgKiBAcGFyYW0gW2JTaG93XSBPcHRpb25hbCBCb29sZWFuIGZsYWcgdG8gc2hvdyBvciBoaWRlIHRoZSBzaWRlIGNvbnRlbnRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0c2hvd1NpZGVDb250ZW50KHNTdWJTZWN0aW9uS2V5OiBzdHJpbmcsIGJTaG93OiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG5cdFx0Y29uc3Qgc0Jsb2NrSUQgPSBnZXRTaWRlQ29udGVudExheW91dElEKHNTdWJTZWN0aW9uS2V5KSxcblx0XHRcdG9CbG9jayA9IHRoaXMuX3ZpZXcuYnlJZChzQmxvY2tJRCksXG5cdFx0XHRiQmxvY2tTdGF0ZSA9IGJTaG93ID09PSB1bmRlZmluZWQgPyAhKG9CbG9jayBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLmdldFNob3dTaWRlQ29udGVudCgpIDogYlNob3c7XG5cdFx0KG9CbG9jayBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLnNldFNob3dTaWRlQ29udGVudChiQmxvY2tTdGF0ZSwgZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGJvdW5kIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IHBhZ2UuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI2dldEJpbmRpbmdDb250ZXh0XG5cdCAqIEByZXR1cm5zIENvbnRleHQgYm91bmQgdG8gdGhlIG9iamVjdCBwYWdlXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldEJpbmRpbmdDb250ZXh0KCkge1xuXHRcdHJldHVybiB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGQgYSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBiZWxvdyB0aGUgYW5jaG9yIGJhci5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjX2J1aWxkT1BNZXNzYWdlXG5cdCAqIEBwYXJhbSB7c2FwLnVpLmNvcmUubWVzc2FnZS5NZXNzYWdlW119IG1lc3NhZ2VzIEFycmF5IG9mIG1lc3NhZ2VzIHVzZWQgdG8gZ2VuZXJhdGVkIHRoZSBtZXNzYWdlXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPE1lc3NhZ2U+fSBQcm9taXNlIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBtZXNzYWdlXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRhc3luYyBfYnVpbGRPUE1lc3NhZ2UobWVzc2FnZXM6IE1lc3NhZ2VbXSk6IFByb21pc2U8TWVzc2FnZSB8IG51bGw+IHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5fdmlldztcblx0XHRjb25zdCByZXNvdXJjZUJ1bmRsZSA9IGF3YWl0ICh2aWV3LmdldE1vZGVsKFwic2FwLmZlLmkxOG5cIikgYXMgUmVzb3VyY2VNb2RlbCkuZ2V0UmVzb3VyY2VCdW5kbGUoKTtcblx0XHRsZXQgbWVzc2FnZTogTWVzc2FnZSB8IG51bGwgPSBudWxsO1xuXHRcdHN3aXRjaCAobWVzc2FnZXMubGVuZ3RoKSB7XG5cdFx0XHRjYXNlIDA6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0XHRtZXNzYWdlID0gbWVzc2FnZXNbMF07XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y29uc3QgbWVzc2FnZVN0YXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuXHRcdFx0XHRcdEVycm9yOiB7IGlkOiAyLCBjb3VudDogMCB9LFxuXHRcdFx0XHRcdFdhcm5pbmc6IHsgaWQ6IDEsIGNvdW50OiAwIH0sXG5cdFx0XHRcdFx0SW5mb3JtYXRpb246IHsgaWQ6IDAsIGNvdW50OiAwIH1cblx0XHRcdFx0fTtcblx0XHRcdFx0bWVzc2FnZSA9IG1lc3NhZ2VzLnJlZHVjZSgoYWNjLCBjdXJyZW50VmFsdWUpID0+IHtcblx0XHRcdFx0XHRjb25zdCBjdXJyZW50VHlwZSA9IGN1cnJlbnRWYWx1ZS5nZXRUeXBlKCk7XG5cdFx0XHRcdFx0YWNjLnNldFR5cGUobWVzc2FnZVN0YXRzW2N1cnJlbnRUeXBlXS5pZCA+IG1lc3NhZ2VTdGF0c1thY2MuZ2V0VHlwZSgpXS5pZCA/IGN1cnJlbnRUeXBlIDogYWNjLmdldFR5cGUoKSk7XG5cdFx0XHRcdFx0bWVzc2FnZVN0YXRzW2N1cnJlbnRUeXBlXS5jb3VudCsrO1xuXHRcdFx0XHRcdHJldHVybiBhY2M7XG5cdFx0XHRcdH0sIG5ldyBNZXNzYWdlKHsgdHlwZTogTWVzc2FnZVR5cGUuSW5mb3JtYXRpb24gfSkpO1xuXG5cdFx0XHRcdGlmIChtZXNzYWdlU3RhdHMuRXJyb3IuY291bnQgPT09IDAgJiYgbWVzc2FnZVN0YXRzLldhcm5pbmcuY291bnQgPT09IDAgJiYgbWVzc2FnZVN0YXRzLkluZm9ybWF0aW9uLmNvdW50ID4gMCkge1xuXHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiT0JKRUNUUEFHRVNUQVRFX0lORk9STUFUSU9OXCIpKTtcblx0XHRcdFx0fSBlbHNlIGlmICgobWVzc2FnZVN0YXRzLkVycm9yLmNvdW50ID4gMCAmJiBtZXNzYWdlU3RhdHMuV2FybmluZy5jb3VudCA+IDApIHx8IG1lc3NhZ2VTdGF0cy5JbmZvcm1hdGlvbi5jb3VudCA+IDApIHtcblx0XHRcdFx0XHRtZXNzYWdlLnNldE1lc3NhZ2UocmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk9CSkVDVFBBR0VTVEFURV9JU1NVRVwiKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bWVzc2FnZS5zZXRNZXNzYWdlKFxuXHRcdFx0XHRcdFx0cmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcblx0XHRcdFx0XHRcdFx0bWVzc2FnZS5nZXRUeXBlKCkgPT09IE1lc3NhZ2VUeXBlLkVycm9yID8gXCJPQkpFQ1RQQUdFU1RBVEVfRVJST1JcIiA6IFwiT0JKRUNUUEFHRVNUQVRFX1dBUk5JTkdcIlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG1lc3NhZ2U7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGxheXMgdGhlIG1lc3NhZ2Ugc3RyaXAgYmV0d2VlbiB0aGUgdGl0bGUgYW5kIHRoZSBoZWFkZXIgb2YgdGhlIE9iamVjdFBhZ2UuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI3Nob3dNZXNzYWdlc1xuXHQgKiBAcGFyYW0ge3NhcC51aS5jb3JlLm1lc3NhZ2UuTWVzc2FnZX0gbWVzc2FnZXMgVGhlIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cblx0YXN5bmMgc2hvd01lc3NhZ2VzKG1lc3NhZ2VzOiBNZXNzYWdlW10pIHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5fdmlldztcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IGF3YWl0IHRoaXMuX2J1aWxkT1BNZXNzYWdlKG1lc3NhZ2VzKTtcblx0XHRcdGlmIChtZXNzYWdlKSB7XG5cdFx0XHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVmlzaWJpbGl0eVwiLCB0cnVlKTtcblx0XHRcdFx0KGludGVybmFsTW9kZWxDb250ZXh0IGFzIGFueSk/LnNldFByb3BlcnR5KFwiT1BNZXNzYWdlU3RyaXBUZXh0XCIsIG1lc3NhZ2UuZ2V0TWVzc2FnZSgpKTtcblx0XHRcdFx0KGludGVybmFsTW9kZWxDb250ZXh0IGFzIGFueSk/LnNldFByb3BlcnR5KFwiT1BNZXNzYWdlU3RyaXBUeXBlXCIsIG1lc3NhZ2UuZ2V0VHlwZSgpKTtcblx0XHRcdFx0SW52aXNpYmxlTWVzc2FnZS5nZXRJbnN0YW5jZSgpLmFubm91bmNlKG1lc3NhZ2UuZ2V0TWVzc2FnZSgpLCBJbnZpc2libGVNZXNzYWdlTW9kZS5Bc3NlcnRpdmUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5oaWRlTWVzc2FnZSgpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IGRpc3BsYXkgT2JqZWN0UGFnZSBtZXNzYWdlXCIpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIaWRlcyB0aGUgbWVzc2FnZSBzdHJpcCBiZWxvdyB0aGUgYW5jaG9yIGJhci5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjaGlkZU1lc3NhZ2Vcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0aGlkZU1lc3NhZ2UoKSB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB2aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik7XG5cdFx0KGludGVybmFsTW9kZWxDb250ZXh0IGFzIGFueSk/LnNldFByb3BlcnR5KFwiT1BNZXNzYWdlU3RyaXBWaXNpYmlsaXR5XCIsIGZhbHNlKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBPYmplY3RQYWdlRXh0ZW5zaW9uQVBJO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7OztFQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVJBLElBVU1BLHNCQUFzQixXQUQzQkMsY0FBYyxDQUFDLDBDQUEwQyxDQUFDO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUUxRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQVRDLE9BVUFDLE9BQU8sR0FBUCxpQkFBUUMsS0FBb0MsRUFBRTtNQUM3QyxNQUFNQyxlQUFlLEdBQUcsSUFBSSxDQUFDQyxLQUFLLENBQUNDLGlCQUFpQixFQUFhO01BQ2pFLElBQUksQ0FBQ0YsZUFBZSxFQUFFO1FBQ3JCO1FBQ0EsT0FBT0csT0FBTyxDQUFDQyxPQUFPLEVBQUU7TUFDekI7TUFDQSxNQUFNQyxhQUFhLEdBQUdDLFdBQVcsQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQ04sS0FBSyxDQUFDO1FBQzVETyxtQkFBbUIsR0FBR0gsYUFBYSxDQUFDSSxxQkFBcUIsRUFBRTtRQUMzREMsVUFBVSxHQUFHVixlQUFlLENBQUNXLFFBQVEsRUFBRSxDQUFDQyxZQUFZLEVBQUU7UUFDdERDLFlBQWlCLEdBQUc7VUFDbkJDLGdCQUFnQixFQUFFLEVBQUU7VUFDcEJDLGNBQWMsRUFBRTtRQUNqQixDQUFDO01BQ0YsSUFBSUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLGNBQWMsRUFBRUMsS0FBSztNQUV4QyxJQUFJcEIsS0FBSyxLQUFLcUIsU0FBUyxJQUFJckIsS0FBSyxLQUFLLElBQUksRUFBRTtRQUMxQztRQUNBYyxZQUFZLENBQUNFLGNBQWMsQ0FBQ00sSUFBSSxDQUFDO1VBQ2hDQyx1QkFBdUIsRUFBRTtRQUMxQixDQUFDLENBQUM7TUFDSCxDQUFDLE1BQU07UUFDTk4sTUFBTSxH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
220
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3RQYWdlRXh0ZW5zaW9uQVBJIiwiZGVmaW5lVUk1Q2xhc3MiLCJyZWZyZXNoIiwidlBhdGgiLCJvQmluZGluZ0NvbnRleHQiLCJfdmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJvQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRBcHBDb21wb25lbnQiLCJvU2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwib01ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwib1NpZGVFZmZlY3RzIiwidGFyZ2V0UHJvcGVydGllcyIsInRhcmdldEVudGl0aWVzIiwiYVBhdGhzIiwic1BhdGgiLCJzQmFzZUVudGl0eVNldCIsInNLaW5kIiwidW5kZWZpbmVkIiwicHVzaCIsIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoIiwiQXJyYXkiLCJpc0FycmF5IiwiX2NvbnRyb2xsZXIiLCJnZXRPd25lckNvbXBvbmVudCIsImdldEVudGl0eVNldCIsImkiLCJsZW5ndGgiLCJnZXRPYmplY3QiLCJyZWplY3QiLCJyZXF1ZXN0U2lkZUVmZmVjdHMiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwic1RhYmxlSWQiLCJvVGFibGUiLCJieUlkIiwiaXNBIiwiZ2V0Q29udGVudCIsInNob3dTaWRlQ29udGVudCIsInNTdWJTZWN0aW9uS2V5IiwiYlNob3ciLCJzQmxvY2tJRCIsImdldFNpZGVDb250ZW50TGF5b3V0SUQiLCJvQmxvY2siLCJiQmxvY2tTdGF0ZSIsImdldFNob3dTaWRlQ29udGVudCIsInNldFNob3dTaWRlQ29udGVudCIsIl9idWlsZE9QTWVzc2FnZSIsIm1lc3NhZ2VzIiwidmlldyIsInJlc291cmNlQnVuZGxlIiwiZ2V0UmVzb3VyY2VCdW5kbGUiLCJtZXNzYWdlIiwibWVzc2FnZVN0YXRzIiwiRXJyb3IiLCJpZCIsImNvdW50IiwiV2FybmluZyIsIkluZm9ybWF0aW9uIiwicmVkdWNlIiwiYWNjIiwiY3VycmVudFZhbHVlIiwiY3VycmVudFR5cGUiLCJnZXRUeXBlIiwic2V0VHlwZSIsIk1lc3NhZ2UiLCJ0eXBlIiwiTWVzc2FnZVR5cGUiLCJzZXRNZXNzYWdlIiwiZ2V0VGV4dCIsInNob3dNZXNzYWdlcyIsImludGVybmFsTW9kZWxDb250ZXh0Iiwic2V0UHJvcGVydHkiLCJnZXRNZXNzYWdlIiwiSW52aXNpYmxlTWVzc2FnZSIsImdldEluc3RhbmNlIiwiYW5ub3VuY2UiLCJJbnZpc2libGVNZXNzYWdlTW9kZSIsIkFzc2VydGl2ZSIsImhpZGVNZXNzYWdlIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJFeHRlbnNpb25BUEkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkV4dGVuc2lvbkFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGdldFNpZGVDb250ZW50TGF5b3V0SUQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIHsgRW5oYW5jZVdpdGhVSTUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBTaWRlRWZmZWN0c1RhcmdldFR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVGFibGVBUElcIjtcbmltcG9ydCBJbnZpc2libGVNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVNZXNzYWdlXCI7XG5pbXBvcnQgeyBJbnZpc2libGVNZXNzYWdlTW9kZSwgTWVzc2FnZVR5cGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IHR5cGUgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuXG4vKipcbiAqIEV4dGVuc2lvbiBBUEkgZm9yIG9iamVjdCBwYWdlcyBvbiBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICpcbiAqIFRvIGNvcnJlY3RseSBpbnRlZ3JhdGUgeW91ciBhcHAgZXh0ZW5zaW9uIGNvZGluZyB3aXRoIFNBUCBGaW9yaSBlbGVtZW50cywgdXNlIG9ubHkgdGhlIGV4dGVuc2lvbkFQSSBvZiBTQVAgRmlvcmkgZWxlbWVudHMuIERvbid0IGFjY2VzcyBvciBtYW5pcHVsYXRlIGNvbnRyb2xzLCBwcm9wZXJ0aWVzLCBtb2RlbHMsIG9yIG90aGVyIGludGVybmFsIG9iamVjdHMgY3JlYXRlZCBieSB0aGUgU0FQIEZpb3JpIGVsZW1lbnRzIGZyYW1ld29yay5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVxuICogQHB1YmxpY1xuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQGZpbmFsXG4gKiBAc2luY2UgMS43OS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUElcIilcbmNsYXNzIE9iamVjdFBhZ2VFeHRlbnNpb25BUEkgZXh0ZW5kcyBFeHRlbnNpb25BUEkge1xuXHQvKipcblx0ICogUmVmcmVzaGVzIGVpdGhlciB0aGUgd2hvbGUgb2JqZWN0IHBhZ2Ugb3Igb25seSBwYXJ0cyBvZiBpdC5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjcmVmcmVzaFxuXHQgKiBAcGFyYW0gW3ZQYXRoXSBQYXRoIG9yIGFycmF5IG9mIHBhdGhzIHJlZmVycmluZyB0byBlbnRpdGllcyBvciBwcm9wZXJ0aWVzIHRvIGJlIHJlZnJlc2hlZC5cblx0ICogSWYgb21pdHRlZCwgdGhlIHdob2xlIG9iamVjdCBwYWdlIGlzIHJlZnJlc2hlZC4gVGhlIHBhdGggXCJcIiByZWZyZXNoZXMgdGhlIGVudGl0eSBhc3NpZ25lZCB0byB0aGUgb2JqZWN0IHBhZ2Vcblx0ICogd2l0aG91dCBuYXZpZ2F0aW9uc1xuXHQgKiBAcmV0dXJucyBSZXNvbHZlZCBvbmNlIHRoZSBkYXRhIGlzIHJlZnJlc2hlZCBvciByZWplY3RlZCBpZiB0aGUgcmVxdWVzdCBmYWlsZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cmVmcmVzaCh2UGF0aDogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBvQmluZGluZ0NvbnRleHQgPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRpZiAoIW9CaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0Ly8gbm90aGluZyB0byBiZSByZWZyZXNoZWQgLSBkbyBub3QgYmxvY2sgdGhlIGFwcCFcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLl92aWV3KSxcblx0XHRcdG9TaWRlRWZmZWN0c1NlcnZpY2UgPSBvQXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLFxuXHRcdFx0b01ldGFNb2RlbCA9IG9CaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0b1NpZGVFZmZlY3RzOiBTaWRlRWZmZWN0c1RhcmdldFR5cGUgPSB7XG5cdFx0XHRcdHRhcmdldFByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHR0YXJnZXRFbnRpdGllczogW11cblx0XHRcdH07XG5cdFx0bGV0IGFQYXRocywgc1BhdGgsIHNCYXNlRW50aXR5U2V0LCBzS2luZDtcblxuXHRcdGlmICh2UGF0aCA9PT0gdW5kZWZpbmVkIHx8IHZQYXRoID09PSBudWxsKSB7XG5cdFx0XHQvLyB3ZSBqdXN0IGFkZCBhbiBlbXB0eSBwYXRoIHdoaWNoIHNob3VsZCByZWZyZXNoIHRoZSBwYWdlIHdpdGggYWxsIGRlcGVuZGVudCBiaW5kaW5nc1xuXHRcdFx0b1NpZGVFZmZlY3RzLnRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogXCJcIlxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFQYXRocyA9IEFycmF5LmlzQXJyYXkodlBhdGgpID8gdlBhdGggOiBbdlBhdGhdO1xuXHRcdFx0c0Jhc2VFbnRpdHlTZXQgPSAodGhpcy5fY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpIGFzIGFueSkuZ2V0RW50aXR5U2V0KCk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVBhdGhzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHNQYXRoID0gYVBhdGhzW2ldO1xuXHRcdFx0XHRpZiAoc1BhdGggPT09IFwiXCIpIHtcblx0XHRcdFx0XHQvLyBhbiBlbXB0eSBwYXRoIHNoYWxsIHJlZnJlc2ggdGhlIGVudGl0eSB3aXRob3V0IGRlcGVuZGVuY2llcyB3aGljaCBtZWFucyAqIGZvciB0aGUgbW9kZWxcblx0XHRcdFx0XHRvU2lkZUVmZmVjdHMudGFyZ2V0UHJvcGVydGllcy5wdXNoKFwiKlwiKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzS2luZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtzQmFzZUVudGl0eVNldH0vJHtzUGF0aH0vJGtpbmRgKTtcblxuXHRcdFx0XHRcdGlmIChzS2luZCA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0XHRcdFx0b1NpZGVFZmZlY3RzLnRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogc1BhdGhcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoc0tpbmQpIHtcblx0XHRcdFx0XHRcdG9TaWRlRWZmZWN0cy50YXJnZXRQcm9wZXJ0aWVzLnB1c2goc1BhdGgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYCR7c1BhdGh9IGlzIG5vdCBhIHZhbGlkIHBhdGggdG8gYmUgcmVmcmVzaGVkYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvU2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhbLi4ub1NpZGVFZmZlY3RzLnRhcmdldEVudGl0aWVzLCAuLi5vU2lkZUVmZmVjdHMudGFyZ2V0UHJvcGVydGllc10sIG9CaW5kaW5nQ29udGV4dCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgbGlzdCBlbnRyaWVzIGN1cnJlbnRseSBzZWxlY3RlZCBmb3IgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNnZXRTZWxlY3RlZENvbnRleHRzXG5cdCAqIEBwYXJhbSBzVGFibGVJZCBUaGUgSUQgaWRlbnRpZnlpbmcgdGhlIHRhYmxlIHRoZSBzZWxlY3RlZCBjb250ZXh0IGlzIHJlcXVlc3RlZCBmb3Jcblx0ICogQHJldHVybnMgQXJyYXkgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgY29udGV4dHNcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0U2VsZWN0ZWRDb250ZXh0cyhzVGFibGVJZDogc3RyaW5nKSB7XG5cdFx0bGV0IG9UYWJsZSA9IHRoaXMuX3ZpZXcuYnlJZChzVGFibGVJZCk7XG5cdFx0aWYgKG9UYWJsZSAmJiBvVGFibGUuaXNBKFwic2FwLmZlLm1hY3Jvcy50YWJsZS5UYWJsZUFQSVwiKSkge1xuXHRcdFx0b1RhYmxlID0gKG9UYWJsZSBhcyBFbmhhbmNlV2l0aFVJNTxUYWJsZUFQST4pLmdldENvbnRlbnQoKTtcblx0XHR9XG5cdFx0cmV0dXJuIChvVGFibGUgJiYgb1RhYmxlLmlzQShcInNhcC51aS5tZGMuVGFibGVcIikgJiYgKG9UYWJsZSBhcyBhbnkpLmdldFNlbGVjdGVkQ29udGV4dHMoKSkgfHwgW107XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGxheXMgb3IgaGlkZXMgdGhlIHNpZGUgY29udGVudCBvZiBhbiBvYmplY3QgcGFnZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjc2hvd1NpZGVDb250ZW50XG5cdCAqIEBwYXJhbSBzU3ViU2VjdGlvbktleSBLZXkgb2YgdGhlIHNpZGUgY29udGVudCBmcmFnbWVudCBhcyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5qc29uXG5cdCAqIEBwYXJhbSBbYlNob3ddIE9wdGlvbmFsIEJvb2xlYW4gZmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIHNpZGUgY29udGVudFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzaG93U2lkZUNvbnRlbnQoc1N1YlNlY3Rpb25LZXk6IHN0cmluZywgYlNob3c6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBzQmxvY2tJRCA9IGdldFNpZGVDb250ZW50TGF5b3V0SUQoc1N1YlNlY3Rpb25LZXkpLFxuXHRcdFx0b0Jsb2NrID0gdGhpcy5fdmlldy5ieUlkKHNCbG9ja0lEKSxcblx0XHRcdGJCbG9ja1N0YXRlID0gYlNob3cgPT09IHVuZGVmaW5lZCA/ICEob0Jsb2NrIGFzIER5bmFtaWNTaWRlQ29udGVudCkuZ2V0U2hvd1NpZGVDb250ZW50KCkgOiBiU2hvdztcblx0XHQob0Jsb2NrIGFzIER5bmFtaWNTaWRlQ29udGVudCkuc2V0U2hvd1NpZGVDb250ZW50KGJCbG9ja1N0YXRlLCBmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgYm91bmQgY29udGV4dCBvZiB0aGUgY3VycmVudCBvYmplY3QgcGFnZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjZ2V0QmluZGluZ0NvbnRleHRcblx0ICogQHJldHVybnMgQ29udGV4dCBib3VuZCB0byB0aGUgb2JqZWN0IHBhZ2Vcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0QmluZGluZ0NvbnRleHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZCBhIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGJlbG93IHRoZSBhbmNob3IgYmFyLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNfYnVpbGRPUE1lc3NhZ2Vcblx0ICogQHBhcmFtIHtzYXAudWkuY29yZS5tZXNzYWdlLk1lc3NhZ2VbXX0gbWVzc2FnZXMgQXJyYXkgb2YgbWVzc2FnZXMgdXNlZCB0byBnZW5lcmF0ZWQgdGhlIG1lc3NhZ2Vcblx0ICogQHJldHVybnMge1Byb21pc2U8TWVzc2FnZT59IFByb21pc2UgY29udGFpbmluZyB0aGUgZ2VuZXJhdGVkIG1lc3NhZ2Vcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGFzeW5jIF9idWlsZE9QTWVzc2FnZShtZXNzYWdlczogTWVzc2FnZVtdKTogUHJvbWlzZTxNZXNzYWdlIHwgbnVsbD4ge1xuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3O1xuXHRcdGNvbnN0IHJlc291cmNlQnVuZGxlID0gYXdhaXQgKHZpZXcuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpO1xuXHRcdGxldCBtZXNzYWdlOiBNZXNzYWdlIHwgbnVsbCA9IG51bGw7XG5cdFx0c3dpdGNoIChtZXNzYWdlcy5sZW5ndGgpIHtcblx0XHRcdGNhc2UgMDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdG1lc3NhZ2UgPSBtZXNzYWdlc1swXTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjb25zdCBtZXNzYWdlU3RhdHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG5cdFx0XHRcdFx0RXJyb3I6IHsgaWQ6IDIsIGNvdW50OiAwIH0sXG5cdFx0XHRcdFx0V2FybmluZzogeyBpZDogMSwgY291bnQ6IDAgfSxcblx0XHRcdFx0XHRJbmZvcm1hdGlvbjogeyBpZDogMCwgY291bnQ6IDAgfVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRtZXNzYWdlID0gbWVzc2FnZXMucmVkdWNlKChhY2MsIGN1cnJlbnRWYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUeXBlID0gY3VycmVudFZhbHVlLmdldFR5cGUoKTtcblx0XHRcdFx0XHRhY2Muc2V0VHlwZShtZXNzYWdlU3RhdHNbY3VycmVudFR5cGVdLmlkID4gbWVzc2FnZVN0YXRzW2FjYy5nZXRUeXBlKCldLmlkID8gY3VycmVudFR5cGUgOiBhY2MuZ2V0VHlwZSgpKTtcblx0XHRcdFx0XHRtZXNzYWdlU3RhdHNbY3VycmVudFR5cGVdLmNvdW50Kys7XG5cdFx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdFx0fSwgbmV3IE1lc3NhZ2UoeyB0eXBlOiBNZXNzYWdlVHlwZS5JbmZvcm1hdGlvbiB9KSk7XG5cblx0XHRcdFx0aWYgKG1lc3NhZ2VTdGF0cy5FcnJvci5jb3VudCA9PT0gMCAmJiBtZXNzYWdlU3RhdHMuV2FybmluZy5jb3VudCA9PT0gMCAmJiBtZXNzYWdlU3RhdHMuSW5mb3JtYXRpb24uY291bnQgPiAwKSB7XG5cdFx0XHRcdFx0bWVzc2FnZS5zZXRNZXNzYWdlKHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfSU5GT1JNQVRJT05cIikpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKChtZXNzYWdlU3RhdHMuRXJyb3IuY291bnQgPiAwICYmIG1lc3NhZ2VTdGF0cy5XYXJuaW5nLmNvdW50ID4gMCkgfHwgbWVzc2FnZVN0YXRzLkluZm9ybWF0aW9uLmNvdW50ID4gMCkge1xuXHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiT0JKRUNUUEFHRVNUQVRFX0lTU1VFXCIpKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRtZXNzYWdlLnNldE1lc3NhZ2UoXG5cdFx0XHRcdFx0XHRyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFxuXHRcdFx0XHRcdFx0XHRtZXNzYWdlLmdldFR5cGUoKSA9PT0gTWVzc2FnZVR5cGUuRXJyb3IgPyBcIk9CSkVDVFBBR0VTVEFURV9FUlJPUlwiIDogXCJPQkpFQ1RQQUdFU1RBVEVfV0FSTklOR1wiXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbWVzc2FnZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyB0aGUgbWVzc2FnZSBzdHJpcCBiZXR3ZWVuIHRoZSB0aXRsZSBhbmQgdGhlIGhlYWRlciBvZiB0aGUgT2JqZWN0UGFnZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjc2hvd01lc3NhZ2VzXG5cdCAqIEBwYXJhbSB7c2FwLnVpLmNvcmUubWVzc2FnZS5NZXNzYWdlfSBtZXNzYWdlcyBUaGUgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblxuXHRhc3luYyBzaG93TWVzc2FnZXMobWVzc2FnZXM6IE1lc3NhZ2VbXSkge1xuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3O1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy5fYnVpbGRPUE1lc3NhZ2UobWVzc2FnZXMpO1xuXHRcdFx0aWYgKG1lc3NhZ2UpIHtcblx0XHRcdFx0KGludGVybmFsTW9kZWxDb250ZXh0IGFzIGFueSk/LnNldFByb3BlcnR5KFwiT1BNZXNzYWdlU3RyaXBWaXNpYmlsaXR5XCIsIHRydWUpO1xuXHRcdFx0XHQoaW50ZXJuYWxNb2RlbENvbnRleHQgYXMgYW55KT8uc2V0UHJvcGVydHkoXCJPUE1lc3NhZ2VTdHJpcFRleHRcIiwgbWVzc2FnZS5nZXRNZXNzYWdlKCkpO1xuXHRcdFx0XHQoaW50ZXJuYWxNb2RlbENvbnRleHQgYXMgYW55KT8uc2V0UHJvcGVydHkoXCJPUE1lc3NhZ2VTdHJpcFR5cGVcIiwgbWVzc2FnZS5nZXRUeXBlKCkpO1xuXHRcdFx0XHRJbnZpc2libGVNZXNzYWdlLmdldEluc3RhbmNlKCkuYW5ub3VuY2UobWVzc2FnZS5nZXRNZXNzYWdlKCksIEludmlzaWJsZU1lc3NhZ2VNb2RlLkFzc2VydGl2ZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmhpZGVNZXNzYWdlKCk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgZGlzcGxheSBPYmplY3RQYWdlIG1lc3NhZ2VcIik7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEhpZGVzIHRoZSBtZXNzYWdlIHN0cmlwIGJlbG93IHRoZSBhbmNob3IgYmFyLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNoaWRlTWVzc2FnZVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRoaWRlTWVzc2FnZSgpIHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5fdmlldztcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0XHQoaW50ZXJuYWxNb2RlbENvbnRleHQgYXMgYW55KT8uc2V0UHJvcGVydHkoXCJPUE1lc3NhZ2VTdHJpcFZpc2liaWxpdHlcIiwgZmFsc2UpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9iamVjdFBhZ2VFeHRlbnNpb25BUEk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0VBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVZBLElBWU1BLHNCQUFzQixXQUQzQkMsY0FBYyxDQUFDLDBDQUEwQyxDQUFDO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUUxRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQVRDLE9BVUFDLE9BQU8sR0FBUCxpQkFBUUMsS0FBb0MsRUFBRTtNQUM3QyxNQUFNQyxlQUFlLEdBQUcsSUFBSSxDQUFDQyxLQUFLLENBQUNDLGlCQUFpQixFQUFhO01BQ2pFLElBQUksQ0FBQ0YsZUFBZSxFQUFFO1FBQ3JCO1FBQ0EsT0FBT0csT0FBTyxDQUFDQyxPQUFPLEVBQUU7TUFDekI7TUFDQSxNQUFNQyxhQUFhLEdBQUdDLFdBQVcsQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQ04sS0FBSyxDQUFDO1FBQzVETyxtQkFBbUIsR0FBR0gsYUFBYSxDQUFDSSxxQkFBcUIsRUFBRTtRQUMzREMsVUFBVSxHQUFHVixlQUFlLENBQUNXLFFBQVEsRUFBRSxDQUFDQyxZQUFZLEVBQUU7UUFDdERDLFlBQW1DLEdBQUc7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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/converters/helpers/ID","sap/fe/core/ExtensionAPI","sap/fe/core/helpers/ClassSupport","sap/ui/core/InvisibleMessage","sap/ui/core/library","sap/ui/core/message/Message"],function(e,t,n,s,i,r,o,a){"use strict";var c,g;var p=o.MessageType;var u=o.InvisibleMessageMode;var l=i.defineUI5Class;var d=n.getSideContentLayoutID;function f(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;y(e,t)}function y(e,t){y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return y(e,t)}let h=(c=l("sap.fe.templates.ObjectPage.ExtensionAPI"),c(g=function(n){f(s,n);function s(){return n.apply(this,arguments)||this}var i=s.prototype;i.refresh=function e(n){const s=this._view.getBindingContext();if(!s){return Promise.resolve()}const i=t.getAppComponent(this._view),r=i.getSideEffectsService(),o=s.getModel().getMetaModel(),a={TargetProperties:[],TargetEntities:[]};let c,g,p,u;if(n===undefined||n===null){a.TargetEntities.push({$NavigationPropertyPath:""})}else{c=Array.isArray(n)?n:[n];p=this._controller.getOwnerComponent().getEntitySet();for(let e=0;e<c.length;e++){g=c[e];if(g===""){a.TargetProperties.push({$PropertyPath:"*"})}else{u=o.getObject(`/${p}/${g}/$kind`);if(u==="NavigationProperty"){a.TargetEntities.push({$NavigationPropertyPath:g})}else if(u){a.TargetProperties.push({$PropertyPath:g})}else{return Promise.reject(`${g} is not a valid path to be refreshed`)}}}}return r.requestSideEffects(a.TargetEntities.concat(a.TargetProperties),s)};i.getSelectedContexts=function e(t){let n=this._view.byId(t);if(n&&n.isA("sap.fe.macros.table.TableAPI")){n=n.getContent()}return n&&n.isA("sap.ui.mdc.Table")&&n.getSelectedContexts()||[]};i.showSideContent=function e(t,n){const s=d(t),i=this._view.byId(s),r=n===undefined?!i.getShowSideContent():n;i.setShowSideContent(r,false)};i.getBindingContext=function e(){return this._view.getBindingContext()};i._buildOPMessage=async function e(t){const n=this._view;const s=await n.getModel("sap.fe.i18n").getResourceBundle();let i=null;switch(t.length){case 0:break;case 1:i=t[0];break;default:const e={Error:{id:2,count:0},Warning:{id:1,count:0},Information:{id:0,count:0}};i=t.reduce((t,n)=>{const s=n.getType();t.setType(e[s].id>e[t.getType()].id?s:t.getType());e[s].count++;return t},new a({type:p.Information}));if(e.Error.count===0&&e.Warning.count===0&&e.Information.count>0){i.setMessage(s.getText("OBJECTPAGESTATE_INFORMATION"))}else if(e.Error.count>0&&e.Warning.count>0||e.Information.count>0){i.setMessage(s.getText("OBJECTPAGESTATE_ISSUE"))}else{i.setMessage(s.getText(i.getType()===p.Error?"OBJECTPAGESTATE_ERROR":"OBJECTPAGESTATE_WARNING"))}}return i};i.showMessages=async function t(n){const s=this._view;const i=s.getBindingContext("internal");try{const e=await this._buildOPMessage(n);if(e){i===null||i===void 0?void 0:i.setProperty("OPMessageStripVisibility",true);i===null||i===void 0?void 0:i.setProperty("OPMessageStripText",e.getMessage());i===null||i===void 0?void 0:i.setProperty("OPMessageStripType",e.getType());r.getInstance().announce(e.getMessage(),u.Assertive)}else{this.hideMessage()}}catch(t){e.error("Cannot display ObjectPage message")}};i.hideMessage=function e(){const t=this._view;const n=t.getBindingContext("internal");n===null||n===void 0?void 0:n.setProperty("OPMessageStripVisibility",false)};return s}(s))||g);return h},false);
5
+ sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/converters/helpers/ID","sap/fe/core/ExtensionAPI","sap/fe/core/helpers/ClassSupport","sap/ui/core/InvisibleMessage","sap/ui/core/library","sap/ui/core/message/Message"],function(e,t,s,n,i,r,o,a){"use strict";var g,c;var p=o.MessageType;var u=o.InvisibleMessageMode;var l=i.defineUI5Class;var d=s.getSideContentLayoutID;function f(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;y(e,t)}function y(e,t){y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,s){t.__proto__=s;return t};return y(e,t)}let h=(g=l("sap.fe.templates.ObjectPage.ExtensionAPI"),g(c=function(s){f(n,s);function n(){return s.apply(this,arguments)||this}var i=n.prototype;i.refresh=function e(s){const n=this._view.getBindingContext();if(!n){return Promise.resolve()}const i=t.getAppComponent(this._view),r=i.getSideEffectsService(),o=n.getModel().getMetaModel(),a={targetProperties:[],targetEntities:[]};let g,c,p,u;if(s===undefined||s===null){a.targetEntities.push({$NavigationPropertyPath:""})}else{g=Array.isArray(s)?s:[s];p=this._controller.getOwnerComponent().getEntitySet();for(let e=0;e<g.length;e++){c=g[e];if(c===""){a.targetProperties.push("*")}else{u=o.getObject(`/${p}/${c}/$kind`);if(u==="NavigationProperty"){a.targetEntities.push({$NavigationPropertyPath:c})}else if(u){a.targetProperties.push(c)}else{return Promise.reject(`${c} is not a valid path to be refreshed`)}}}}return r.requestSideEffects([...a.targetEntities,...a.targetProperties],n)};i.getSelectedContexts=function e(t){let s=this._view.byId(t);if(s&&s.isA("sap.fe.macros.table.TableAPI")){s=s.getContent()}return s&&s.isA("sap.ui.mdc.Table")&&s.getSelectedContexts()||[]};i.showSideContent=function e(t,s){const n=d(t),i=this._view.byId(n),r=s===undefined?!i.getShowSideContent():s;i.setShowSideContent(r,false)};i.getBindingContext=function e(){return this._view.getBindingContext()};i._buildOPMessage=async function e(t){const s=this._view;const n=await s.getModel("sap.fe.i18n").getResourceBundle();let i=null;switch(t.length){case 0:break;case 1:i=t[0];break;default:const e={Error:{id:2,count:0},Warning:{id:1,count:0},Information:{id:0,count:0}};i=t.reduce((t,s)=>{const n=s.getType();t.setType(e[n].id>e[t.getType()].id?n:t.getType());e[n].count++;return t},new a({type:p.Information}));if(e.Error.count===0&&e.Warning.count===0&&e.Information.count>0){i.setMessage(n.getText("OBJECTPAGESTATE_INFORMATION"))}else if(e.Error.count>0&&e.Warning.count>0||e.Information.count>0){i.setMessage(n.getText("OBJECTPAGESTATE_ISSUE"))}else{i.setMessage(n.getText(i.getType()===p.Error?"OBJECTPAGESTATE_ERROR":"OBJECTPAGESTATE_WARNING"))}}return i};i.showMessages=async function t(s){const n=this._view;const i=n.getBindingContext("internal");try{const e=await this._buildOPMessage(s);if(e){i===null||i===void 0?void 0:i.setProperty("OPMessageStripVisibility",true);i===null||i===void 0?void 0:i.setProperty("OPMessageStripText",e.getMessage());i===null||i===void 0?void 0:i.setProperty("OPMessageStripType",e.getType());r.getInstance().announce(e.getMessage(),u.Assertive)}else{this.hideMessage()}}catch(t){e.error("Cannot display ObjectPage message")}};i.hideMessage=function e(){const t=this._view;const s=t.getBindingContext("internal");s===null||s===void 0?void 0:s.setProperty("OPMessageStripVisibility",false)};return n}(n))||c);return h},false);
6
6
  //# sourceMappingURL=ExtensionAPI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionAPI.js","names":["sap","ui","define","Log","CommonUtils","ID","ExtensionAPI","ClassSupport","InvisibleMessage","library","Message","_dec","_class","MessageType","InvisibleMessageMode","defineUI5Class","getSideContentLayoutID","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","ObjectPageExtensionAPI","_ExtensionAPI","apply","this","arguments","_proto","refresh","vPath","oBindingContext","_view","getBindingContext","Promise","resolve","oAppComponent","getAppComponent","oSideEffectsService","getSideEffectsService","oMetaModel","getModel","getMetaModel","oSideEffects","TargetProperties","TargetEntities","aPaths","sPath","sBaseEntitySet","sKind","undefined","push","$NavigationPropertyPath","Array","isArray","_controller","getOwnerComponent","getEntitySet","i","length","$PropertyPath","getObject","reject","requestSideEffects","concat","getSelectedContexts","sTableId","oTable","byId","isA","getContent","showSideContent","sSubSectionKey","bShow","sBlockID","oBlock","bBlockState","getShowSideContent","setShowSideContent","_buildOPMessage","async","messages","view","resourceBundle","getResourceBundle","message","messageStats","Error","id","count","Warning","Information","reduce","acc","currentValue","currentType","getType","setType","type","setMessage","getText","showMessages","internalModelContext","setProperty","getMessage","getInstance","announce","Assertive","hideMessage","err","error"],"sources":["ExtensionAPI-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"ExtensionAPI.js","names":["sap","ui","define","Log","CommonUtils","ID","ExtensionAPI","ClassSupport","InvisibleMessage","library","Message","_dec","_class","MessageType","InvisibleMessageMode","defineUI5Class","getSideContentLayoutID","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","ObjectPageExtensionAPI","_ExtensionAPI","apply","this","arguments","_proto","refresh","vPath","oBindingContext","_view","getBindingContext","Promise","resolve","oAppComponent","getAppComponent","oSideEffectsService","getSideEffectsService","oMetaModel","getModel","getMetaModel","oSideEffects","targetProperties","targetEntities","aPaths","sPath","sBaseEntitySet","sKind","undefined","push","$NavigationPropertyPath","Array","isArray","_controller","getOwnerComponent","getEntitySet","i","length","getObject","reject","requestSideEffects","getSelectedContexts","sTableId","oTable","byId","isA","getContent","showSideContent","sSubSectionKey","bShow","sBlockID","oBlock","bBlockState","getShowSideContent","setShowSideContent","_buildOPMessage","async","messages","view","resourceBundle","getResourceBundle","message","messageStats","Error","id","count","Warning","Information","reduce","acc","currentValue","currentType","getType","setType","type","setMessage","getText","showMessages","internalModelContext","setProperty","getMessage","getInstance","announce","Assertive","hideMessage","err","error"],"sources":["ExtensionAPI-dbg.js"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { getSideContentLayoutID } from "sap/fe/core/converters/helpers/ID";
4
4
  import ExtensionAPI from "sap/fe/core/ExtensionAPI";
5
5
  import type { EnhanceWithUI5 } from "sap/fe/core/helpers/ClassSupport";
6
6
  import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
7
+ import { SideEffectsTargetType } from "sap/fe/core/services/SideEffectsServiceFactory";
7
8
  import type TableAPI from "sap/fe/macros/table/TableAPI";
8
9
  import InvisibleMessage from "sap/ui/core/InvisibleMessage";
9
10
  import { InvisibleMessageMode, MessageType } from "sap/ui/core/library";
@@ -15,6 +16,8 @@ import ResourceModel from "sap/ui/model/resource/ResourceModel";
15
16
  /**
16
17
  * Extension API for object pages on SAP Fiori elements for OData V4.
17
18
  *
19
+ * To correctly integrate your app extension coding with SAP Fiori elements, use only the extensionAPI of SAP Fiori elements. Don't access or manipulate controls, properties, models, or other internal objects created by the SAP Fiori elements framework.
20
+ *
18
21
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI
19
22
  * @public
20
23
  * @hideconstructor
@@ -42,15 +45,15 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
42
45
  const oAppComponent = CommonUtils.getAppComponent(this._view),
43
46
  oSideEffectsService = oAppComponent.getSideEffectsService(),
44
47
  oMetaModel = oBindingContext.getModel().getMetaModel(),
45
- oSideEffects: any = {
46
- TargetProperties: [],
47
- TargetEntities: []
48
+ oSideEffects: SideEffectsTargetType = {
49
+ targetProperties: [],
50
+ targetEntities: []
48
51
  };
49
52
  let aPaths, sPath, sBaseEntitySet, sKind;
50
53
 
51
54
  if (vPath === undefined || vPath === null) {
52
55
  // we just add an empty path which should refresh the page with all dependent bindings
53
- oSideEffects.TargetEntities.push({
56
+ oSideEffects.targetEntities.push({
54
57
  $NavigationPropertyPath: ""
55
58
  });
56
59
  } else {
@@ -61,27 +64,23 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
61
64
  sPath = aPaths[i];
62
65
  if (sPath === "") {
63
66
  // an empty path shall refresh the entity without dependencies which means * for the model
64
- oSideEffects.TargetProperties.push({
65
- $PropertyPath: "*"
66
- });
67
+ oSideEffects.targetProperties.push("*");
67
68
  } else {
68
69
  sKind = oMetaModel.getObject(`/${sBaseEntitySet}/${sPath}/$kind`);
69
70
 
70
71
  if (sKind === "NavigationProperty") {
71
- oSideEffects.TargetEntities.push({
72
+ oSideEffects.targetEntities.push({
72
73
  $NavigationPropertyPath: sPath
73
74
  });
74
75
  } else if (sKind) {
75
- oSideEffects.TargetProperties.push({
76
- $PropertyPath: sPath
77
- });
76
+ oSideEffects.targetProperties.push(sPath);
78
77
  } else {
79
78
  return Promise.reject(`${sPath} is not a valid path to be refreshed`);
80
79
  }
81
80
  }
82
81
  }
83
82
  }
84
- return oSideEffectsService.requestSideEffects(oSideEffects.TargetEntities.concat(oSideEffects.TargetProperties), oBindingContext);
83
+ return oSideEffectsService.requestSideEffects([...oSideEffects.targetEntities, ...oSideEffects.targetProperties], oBindingContext);
85
84
  }
86
85
 
87
86
  /**
@@ -7,6 +7,7 @@
7
7
  xmlns:uxap="sap.uxap"
8
8
  xmlns="sap.m"
9
9
  xmlns:control="sap.fe.core.controls"
10
+ xmlns:fragments="sap.fe.templates.ObjectPage.view.fragments"
10
11
  xmlns:fe="sap.fe.templates.controls"
11
12
  xmlns:dt="sap.ui.dt"
12
13
  xmlns:fl="sap.ui.fl"
@@ -112,7 +113,7 @@
112
113
  >
113
114
  <internalMacro:ActionCommand
114
115
  action="{footerAction>}"
115
- onExecuteAction="{= OP.getPressExpressionForFooterAnnotationAction(${dataField>}, ${entitySet>@sapui.name}, ${footerAction>}) }"
116
+ onExecuteAction="{= OP.getPressExpressionForFooterAnnotationAction(${dataField>@@UI.getDataModelObjectPath}, ${entitySet>@sapui.name}, ${footerAction>}) }"
116
117
  onExecuteIBN="{footerAction>press}"
117
118
  onExecuteManifest="{= COMMON.buildActionWrapper(${footerAction>})}"
118
119
  isIBNEnabled="{footerAction>enabled}"
@@ -206,7 +207,7 @@
206
207
  <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.Section" type="XML" />
207
208
  </uxap:sections>
208
209
  <uxap:footer>
209
- <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.FooterContent" type="XML" />
210
+ <fragments:FooterContent id="fe::FooterBar" actions="{converterContext>/footerActions}" />
210
211
  </uxap:footer>
211
212
  </uxap:ObjectPageLayout>
212
213
  </template:with>