@sapui5/sap.fe.templates 1.111.1 → 1.112.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 (129) 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 +2 -1
  9. package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -1
  10. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +3 -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/ListReportController-dbg.controller.js +37 -32
  14. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  15. package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
  16. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +58 -52
  17. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl-dbg.js +32 -8
  18. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -1
  19. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -1
  20. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +38 -7
  21. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  22. package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +47 -7
  23. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  24. package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
  25. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +49 -6
  26. package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +1 -1
  27. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block-dbg.js +122 -0
  28. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.js → MultipleMode.block.js} +3 -3
  29. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block.js.map +1 -0
  30. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.ts → MultipleMode.block.ts} +14 -15
  31. package/src/sap/fe/templates/ObjectPage/Component-dbg.js +11 -2
  32. package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  33. package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -1
  34. package/src/sap/fe/templates/ObjectPage/Component.ts +12 -0
  35. package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +8 -12
  36. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  37. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -1
  38. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +9 -12
  39. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +3 -2
  40. package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +38 -90
  41. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
  43. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +65 -104
  44. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +44 -146
  45. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +1 -1
  46. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -1
  47. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +60 -185
  48. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block-dbg.js +145 -0
  49. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js +6 -0
  50. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js.map +1 -0
  51. package/src/sap/fe/templates/ObjectPage/components/{DraftHandlerButton.tsx → DraftHandlerButton.block.tsx} +15 -12
  52. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +1 -1
  53. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +1 -0
  54. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +2 -1
  55. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js.map +1 -1
  56. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +5 -0
  57. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  58. package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -1
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +4 -3
  60. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block-dbg.js +257 -0
  61. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js +6 -0
  62. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js.map +1 -0
  63. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.tsx +280 -0
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +8 -33
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +144 -112
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionEmbeddedComponent.fragment.xml +24 -0
  67. package/src/sap/fe/templates/library-dbg.js +6 -5
  68. package/src/sap/fe/templates/library-preload.js +26 -22
  69. package/src/sap/fe/templates/library-preload.js.map +1 -1
  70. package/src/sap/fe/templates/library.js +1 -1
  71. package/src/sap/fe/templates/library.js.map +1 -1
  72. package/src/sap/fe/templates/library.ts +6 -4
  73. package/src/sap/fe/templates/manifest.json +1 -1
  74. package/src/sap/fe/templates/messagebundle.properties +5 -0
  75. package/src/sap/fe/templates/messagebundle_ar.properties +3 -0
  76. package/src/sap/fe/templates/messagebundle_bg.properties +3 -0
  77. package/src/sap/fe/templates/messagebundle_ca.properties +3 -0
  78. package/src/sap/fe/templates/messagebundle_cs.properties +3 -0
  79. package/src/sap/fe/templates/messagebundle_cy.properties +3 -0
  80. package/src/sap/fe/templates/messagebundle_da.properties +3 -0
  81. package/src/sap/fe/templates/messagebundle_de.properties +3 -0
  82. package/src/sap/fe/templates/messagebundle_el.properties +3 -0
  83. package/src/sap/fe/templates/messagebundle_en.properties +5 -0
  84. package/src/sap/fe/templates/messagebundle_en_GB.properties +3 -0
  85. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +3 -0
  86. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +3 -0
  87. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +3 -0
  88. package/src/sap/fe/templates/messagebundle_es.properties +5 -2
  89. package/src/sap/fe/templates/messagebundle_es_MX.properties +3 -0
  90. package/src/sap/fe/templates/messagebundle_et.properties +5 -2
  91. package/src/sap/fe/templates/messagebundle_fi.properties +3 -0
  92. package/src/sap/fe/templates/messagebundle_fr.properties +3 -0
  93. package/src/sap/fe/templates/messagebundle_fr_CA.properties +3 -0
  94. package/src/sap/fe/templates/messagebundle_hi.properties +3 -0
  95. package/src/sap/fe/templates/messagebundle_hr.properties +3 -0
  96. package/src/sap/fe/templates/messagebundle_hu.properties +3 -0
  97. package/src/sap/fe/templates/messagebundle_id.properties +3 -0
  98. package/src/sap/fe/templates/messagebundle_it.properties +3 -0
  99. package/src/sap/fe/templates/messagebundle_iw.properties +3 -0
  100. package/src/sap/fe/templates/messagebundle_ja.properties +3 -0
  101. package/src/sap/fe/templates/messagebundle_kk.properties +3 -0
  102. package/src/sap/fe/templates/messagebundle_ko.properties +3 -0
  103. package/src/sap/fe/templates/messagebundle_lt.properties +3 -0
  104. package/src/sap/fe/templates/messagebundle_lv.properties +3 -0
  105. package/src/sap/fe/templates/messagebundle_ms.properties +3 -0
  106. package/src/sap/fe/templates/messagebundle_nl.properties +3 -0
  107. package/src/sap/fe/templates/messagebundle_no.properties +3 -0
  108. package/src/sap/fe/templates/messagebundle_pl.properties +3 -0
  109. package/src/sap/fe/templates/messagebundle_pt.properties +3 -0
  110. package/src/sap/fe/templates/messagebundle_pt_PT.properties +3 -0
  111. package/src/sap/fe/templates/messagebundle_ro.properties +5 -2
  112. package/src/sap/fe/templates/messagebundle_ru.properties +3 -0
  113. package/src/sap/fe/templates/messagebundle_sh.properties +5 -2
  114. package/src/sap/fe/templates/messagebundle_sk.properties +3 -0
  115. package/src/sap/fe/templates/messagebundle_sl.properties +3 -0
  116. package/src/sap/fe/templates/messagebundle_sv.properties +3 -0
  117. package/src/sap/fe/templates/messagebundle_th.properties +5 -2
  118. package/src/sap/fe/templates/messagebundle_tr.properties +3 -0
  119. package/src/sap/fe/templates/messagebundle_uk.properties +3 -0
  120. package/src/sap/fe/templates/messagebundle_vi.properties +5 -2
  121. package/src/sap/fe/templates/messagebundle_zh_CN.properties +5 -2
  122. package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -0
  123. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode-dbg.fragment.js +0 -123
  124. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js.map +0 -1
  125. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton-dbg.js +0 -147
  126. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +0 -6
  127. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js.map +0 -1
  128. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +0 -125
  129. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +0 -199
@@ -0,0 +1,257 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/buildingBlocks/RuntimeBuildingBlock", "sap/fe/core/controls/CommandExecution", "sap/fe/core/converters/helpers/BindingHelper", "sap/fe/core/converters/ManifestSettings", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/StableIdHelper", "sap/fe/macros/actions/CustomAction.block", "sap/fe/macros/actions/DataFieldForAction.block", "sap/fe/macros/messages/MessageButton", "sap/m/Button", "sap/m/DraftIndicator", "sap/m/Menu", "sap/m/MenuButton", "sap/m/MenuItem", "sap/m/OverflowToolbar", "sap/m/OverflowToolbarLayoutData", "sap/m/ToolbarSpacer", "sap/ui/core/InvisibleText", "../../ObjectPageTemplating", "sap/fe/core/jsx-runtime/jsx", "sap/fe/core/jsx-runtime/jsxs"], function (BuildingBlockSupport, RuntimeBuildingBlock, CommandExecution, BindingHelper, ManifestSettings, MetaModelConverter, BindingToolkit, ModelHelper, StableIdHelper, CustomActionBlock, DataFieldForActionBlock, MessageButton, Button, DraftIndicator, Menu, MenuButton, MenuItem, OverflowToolbar, OverflowToolbarLayoutData, ToolbarSpacer, InvisibleText, ObjectPageTemplating, _jsx, _jsxs) {
6
+ "use strict";
7
+
8
+ var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
9
+ var _exports = {};
10
+ var generate = StableIdHelper.generate;
11
+ var resolveBindingString = BindingToolkit.resolveBindingString;
12
+ var pathInModel = BindingToolkit.pathInModel;
13
+ var or = BindingToolkit.or;
14
+ var not = BindingToolkit.not;
15
+ var ifElse = BindingToolkit.ifElse;
16
+ var constant = BindingToolkit.constant;
17
+ var and = BindingToolkit.and;
18
+ var getInvolvedDataModelObjects = MetaModelConverter.getInvolvedDataModelObjects;
19
+ var ActionType = ManifestSettings.ActionType;
20
+ var UI = BindingHelper.UI;
21
+ var Draft = BindingHelper.Draft;
22
+ var defineBuildingBlock = BuildingBlockSupport.defineBuildingBlock;
23
+ var blockAttribute = BuildingBlockSupport.blockAttribute;
24
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
25
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
26
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
27
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
29
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
30
+ let FooterContentBlock = (_dec = defineBuildingBlock({
31
+ name: "FooterContent",
32
+ namespace: "sap.fe.templates.ObjectPage.view.fragments"
33
+ }), _dec2 = blockAttribute({
34
+ type: "string",
35
+ required: true
36
+ }), _dec3 = blockAttribute({
37
+ type: "array",
38
+ required: true
39
+ }), _dec4 = blockAttribute({
40
+ type: "sap.ui.model.Context"
41
+ }), _dec(_class = (_class2 = /*#__PURE__*/function (_RuntimeBuildingBlock) {
42
+ _inheritsLoose(FooterContentBlock, _RuntimeBuildingBlock);
43
+ function FooterContentBlock(props) {
44
+ var _ModelHelper$getDraft, _startingEntitySet$en;
45
+ var _this;
46
+ for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
47
+ others[_key - 1] = arguments[_key];
48
+ }
49
+ _this = _RuntimeBuildingBlock.call(this, props, ...others) || this;
50
+ _initializerDefineProperty(_this, "id", _descriptor, _assertThisInitialized(_this));
51
+ _initializerDefineProperty(_this, "actions", _descriptor2, _assertThisInitialized(_this));
52
+ _initializerDefineProperty(_this, "contextPath", _descriptor3, _assertThisInitialized(_this));
53
+ _this.isDraftValidation = false;
54
+ _this.oDataMetaModel = _this.contextPath.getModel();
55
+ _this.dataViewModelPath = getInvolvedDataModelObjects(_this.contextPath);
56
+ const startingEntitySet = _this.dataViewModelPath.startingEntitySet;
57
+ _this.isDraftValidation = !!((_ModelHelper$getDraft = ModelHelper.getDraftRoot(startingEntitySet)) !== null && _ModelHelper$getDraft !== void 0 && _ModelHelper$getDraft.PreparationAction && startingEntitySet !== null && startingEntitySet !== void 0 && (_startingEntitySet$en = startingEntitySet.entityType.annotations.Common) !== null && _startingEntitySet$en !== void 0 && _startingEntitySet$en.Messages);
58
+ return _this;
59
+ }
60
+ _exports = FooterContentBlock;
61
+ var _proto = FooterContentBlock.prototype;
62
+ _proto.getActionModelPath = function getActionModelPath(action) {
63
+ const annotationPath = action.annotationPath;
64
+ if (annotationPath) {
65
+ const actionContext = this.oDataMetaModel.getContext(annotationPath);
66
+ return getInvolvedDataModelObjects(actionContext);
67
+ }
68
+ return undefined;
69
+ }
70
+
71
+ /**
72
+ * Get the visibility of the ObjectPage footer content.
73
+ *
74
+ * @function
75
+ * @name getVisibility
76
+ * @returns The binding expression
77
+ */;
78
+ _proto.getVisibility = function getVisibility() {
79
+ const _generateBindingsForActions = actions => {
80
+ if (actions.length) {
81
+ return actions.map(action => resolveBindingString(action.visible ?? true, "boolean"));
82
+ }
83
+ return [constant(false)];
84
+ };
85
+ // Actions are coming from the converter so only determining actions and not statically hidden are listed
86
+ const determiningActions = this.actions.filter(action => action.type === ActionType.DataFieldForAction);
87
+ const manifestActionBindings = _generateBindingsForActions(this.actions.filter(action => ObjectPageTemplating.isManifestAction(action)));
88
+ const deterMiningActionBindings = _generateBindingsForActions(determiningActions);
89
+ const isNotHiddenDeterminingAction = !!determiningActions.find(action => {
90
+ var _actionContextModelPa, _actionContextModelPa2, _actionContextModelPa3;
91
+ const actionContextModelPath = this.getActionModelPath(action);
92
+ return !(actionContextModelPath !== null && actionContextModelPath !== void 0 && (_actionContextModelPa = actionContextModelPath.targetObject) !== null && _actionContextModelPa !== void 0 && (_actionContextModelPa2 = _actionContextModelPa.annotations) !== null && _actionContextModelPa2 !== void 0 && (_actionContextModelPa3 = _actionContextModelPa2.UI) !== null && _actionContextModelPa3 !== void 0 && _actionContextModelPa3.Hidden);
93
+ });
94
+ return or(isNotHiddenDeterminingAction, or(...manifestActionBindings), and(or(UI.IsEditable, or(...deterMiningActionBindings)), not(pathInModel("isCreateDialogOpen", "internal"))));
95
+ };
96
+ _proto.getDraftIndicator = function getDraftIndicator() {
97
+ var _entitySet$annotation;
98
+ const entitySet = this.dataViewModelPath.targetEntitySet || this.dataViewModelPath.startingEntitySet; // startingEntitySet is used on containment scenario
99
+ const commonAnnotation = (_entitySet$annotation = entitySet.annotations) === null || _entitySet$annotation === void 0 ? void 0 : _entitySet$annotation.Common;
100
+ if (commonAnnotation !== null && commonAnnotation !== void 0 && commonAnnotation.DraftRoot || commonAnnotation !== null && commonAnnotation !== void 0 && commonAnnotation.DraftNode) {
101
+ return _jsx(DraftIndicator, {
102
+ state: "{ui>/draftStatus}",
103
+ visible: "{ui>/isEditable}"
104
+ });
105
+ }
106
+ return undefined;
107
+ };
108
+ _proto.getApplyButton = function getApplyButton(view, emphasizedExpression) {
109
+ const controller = view.getController();
110
+ const viewData = view.getViewData();
111
+ if (this.isDraftValidation && !viewData.isDesktop && !viewData.fclEnabled) {
112
+ return _jsx(MenuButton, {
113
+ text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}",
114
+ defaultAction: () => controller._applyDocument(view.getBindingContext()),
115
+ useDefaultActionOnly: "true",
116
+ buttonMode: "Split",
117
+ type: emphasizedExpression,
118
+ visible: UI.IsEditable,
119
+ children: _jsx(Menu, {
120
+ children: _jsx(MenuItem, {
121
+ text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}",
122
+ press: () => controller._validateDocument()
123
+ })
124
+ })
125
+ });
126
+ }
127
+ return _jsx(Button, {
128
+ id: this.createId("StandardAction::Apply"),
129
+ text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}",
130
+ type: emphasizedExpression,
131
+ enabled: true,
132
+ press: () => controller._applyDocument(view.getBindingContext()),
133
+ visible: "{ui>/isEditable}"
134
+ });
135
+ };
136
+ _proto.getPrimary = function getPrimary(view, emphasizedExpression) {
137
+ const viewData = view.getViewData();
138
+ const controller = view.getController();
139
+ if (this.isDraftValidation && !viewData.isDesktop) {
140
+ return _jsx(MenuButton, {
141
+ text: this.getTextSaveButton(),
142
+ defaultAction: CommandExecution.executeCommand("Save"),
143
+ useDefaultActionOnly: "true",
144
+ buttonMode: "Split",
145
+ type: emphasizedExpression,
146
+ visible: UI.IsEditable,
147
+ children: _jsx(Menu, {
148
+ children: _jsx(MenuItem, {
149
+ text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}",
150
+ press: () => controller._validateDocument()
151
+ })
152
+ })
153
+ });
154
+ }
155
+ return _jsx(Button, {
156
+ id: this.createId("StandardAction::Save"),
157
+ text: this.getTextSaveButton(),
158
+ type: emphasizedExpression,
159
+ visible: UI.IsEditable,
160
+ enabled: true,
161
+ press: CommandExecution.executeCommand("Save")
162
+ });
163
+ };
164
+ _proto.getTextSaveButton = function getTextSaveButton() {
165
+ var _annotations$Session;
166
+ const saveButtonText = this.getTranslatedText("T_OP_OBJECT_PAGE_SAVE");
167
+ const createButtonText = this.getTranslatedText("T_OP_OBJECT_PAGE_CREATE");
168
+ // If we're in sticky mode -> the ui is in create mode, show Create, else show Save
169
+ // If not -> we're in draft AND the draft is a new object (!IsActiveEntity && !HasActiveEntity), show create, else show save
170
+ return ifElse(ifElse(((_annotations$Session = this.dataViewModelPath.startingEntitySet.annotations.Session) === null || _annotations$Session === void 0 ? void 0 : _annotations$Session.StickySessionSupported) !== undefined, UI.IsCreateMode, Draft.IsNewObject), createButtonText, saveButtonText);
171
+ };
172
+ _proto.getCancelButton = function getCancelButton() {
173
+ return _jsx(Button, {
174
+ id: this.createId("StandardAction::Cancel"),
175
+ text: ModelHelper.isDraftRoot(this.dataViewModelPath.targetEntitySet) ? "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISCARD_DRAFT}" : "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_CANCEL}",
176
+ press: CommandExecution.executeCommand("Cancel"),
177
+ visible: UI.IsEditable,
178
+ ariaHasPopup: "Dialog",
179
+ enabled: true,
180
+ layoutData: _jsx(OverflowToolbarLayoutData, {
181
+ priority: "NeverOverflow"
182
+ })
183
+ });
184
+ };
185
+ _proto.getDataFieldForActionButton = function getDataFieldForActionButton(action) {
186
+ if (action.annotationPath) {
187
+ return _jsx(DataFieldForActionBlock, {
188
+ id: generate([this.id, this.getActionModelPath(action)]),
189
+ action: action,
190
+ contextPath: this.contextPath
191
+ });
192
+ }
193
+ };
194
+ _proto.getManifestButton = function getManifestButton(action) {
195
+ if (ObjectPageTemplating.isManifestAction(action)) {
196
+ return _jsx(CustomActionBlock, {
197
+ id: generate(["fe", "FooterBar", action.id]),
198
+ action: action
199
+ });
200
+ }
201
+ };
202
+ _proto.getActionControls = function getActionControls(view) {
203
+ const emphasizedButtonExpression = ObjectPageTemplating.buildEmphasizedButtonExpression(this.dataViewModelPath);
204
+ return this.actions.map(action => {
205
+ switch (action.type) {
206
+ case ActionType.DefaultApply:
207
+ return this.getApplyButton(view, emphasizedButtonExpression);
208
+ case ActionType.DataFieldForAction:
209
+ return this.getDataFieldForActionButton(action);
210
+ case ActionType.Primary:
211
+ return this.getPrimary(view, emphasizedButtonExpression);
212
+ case ActionType.Secondary:
213
+ return this.getCancelButton();
214
+ default:
215
+ return this.getManifestButton(action);
216
+ }
217
+ }).filter(action => !!action);
218
+ };
219
+ _proto.getContent = function getContent(view) {
220
+ const controller = view.getController();
221
+ return _jsxs(OverflowToolbar, {
222
+ id: this.id,
223
+ asyncMode: true,
224
+ visible: this.getVisibility(),
225
+ children: [_jsx(InvisibleText, {
226
+ id: this.createId("MessageButton::AriaText"),
227
+ text: "{sap.fe.i18n>C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_BUTTON_ARIA_TEXT}"
228
+ }), _jsx(MessageButton, {
229
+ id: this.createId("MessageButton"),
230
+ messageChange: () => controller._getFooterVisibility(),
231
+ ariaLabelledBy: [this.createId("MessageButton::AriaText")],
232
+ type: "Emphasized",
233
+ ariaHasPopup: "Dialog"
234
+ }), _jsx(ToolbarSpacer, {}), this.getDraftIndicator(), this.getActionControls(view)]
235
+ });
236
+ };
237
+ return FooterContentBlock;
238
+ }(RuntimeBuildingBlock), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "id", [_dec2], {
239
+ configurable: true,
240
+ enumerable: true,
241
+ writable: true,
242
+ initializer: null
243
+ }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "actions", [_dec3], {
244
+ configurable: true,
245
+ enumerable: true,
246
+ writable: true,
247
+ initializer: null
248
+ }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "contextPath", [_dec4], {
249
+ configurable: true,
250
+ enumerable: true,
251
+ writable: true,
252
+ initializer: null
253
+ })), _class2)) || _class);
254
+ _exports = FooterContentBlock;
255
+ return _exports;
256
+ }, false);
257
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb290ZXJDb250ZW50QmxvY2siLCJkZWZpbmVCdWlsZGluZ0Jsb2NrIiwibmFtZSIsIm5hbWVzcGFjZSIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsInJlcXVpcmVkIiwicHJvcHMiLCJvdGhlcnMiLCJpc0RyYWZ0VmFsaWRhdGlvbiIsIm9EYXRhTWV0YU1vZGVsIiwiY29udGV4dFBhdGgiLCJnZXRNb2RlbCIsImRhdGFWaWV3TW9kZWxQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJNb2RlbEhlbHBlciIsImdldERyYWZ0Um9vdCIsIlByZXBhcmF0aW9uQWN0aW9uIiwiZW50aXR5VHlwZSIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiTWVzc2FnZXMiLCJnZXRBY3Rpb25Nb2RlbFBhdGgiLCJhY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImFjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0IiwidW5kZWZpbmVkIiwiZ2V0VmlzaWJpbGl0eSIsIl9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyIsImFjdGlvbnMiLCJsZW5ndGgiLCJtYXAiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInZpc2libGUiLCJjb25zdGFudCIsImRldGVybWluaW5nQWN0aW9ucyIsImZpbHRlciIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJtYW5pZmVzdEFjdGlvbkJpbmRpbmdzIiwiT2JqZWN0UGFnZVRlbXBsYXRpbmciLCJpc01hbmlmZXN0QWN0aW9uIiwiZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncyIsImlzTm90SGlkZGVuRGV0ZXJtaW5pbmdBY3Rpb24iLCJmaW5kIiwiYWN0aW9uQ29udGV4dE1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsIlVJIiwiSGlkZGVuIiwib3IiLCJhbmQiLCJJc0VkaXRhYmxlIiwibm90IiwicGF0aEluTW9kZWwiLCJnZXREcmFmdEluZGljYXRvciIsImVudGl0eVNldCIsInRhcmdldEVudGl0eVNldCIsImNvbW1vbkFubm90YXRpb24iLCJEcmFmdFJvb3QiLCJEcmFmdE5vZGUiLCJnZXRBcHBseUJ1dHRvbiIsInZpZXciLCJlbXBoYXNpemVkRXhwcmVzc2lvbiIsImNvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwidmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsImlzRGVza3RvcCIsImZjbEVuYWJsZWQiLCJfYXBwbHlEb2N1bWVudCIsImdldEJpbmRpbmdDb250ZXh0IiwiX3ZhbGlkYXRlRG9jdW1lbnQiLCJjcmVhdGVJZCIsImdldFByaW1hcnkiLCJnZXRUZXh0U2F2ZUJ1dHRvbiIsIkNvbW1hbmRFeGVjdXRpb24iLCJleGVjdXRlQ29tbWFuZCIsInNhdmVCdXR0b25UZXh0IiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJjcmVhdGVCdXR0b25UZXh0IiwiaWZFbHNlIiwiU2Vzc2lvbiIsIlN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJJc0NyZWF0ZU1vZGUiLCJEcmFmdCIsIklzTmV3T2JqZWN0IiwiZ2V0Q2FuY2VsQnV0dG9uIiwiaXNEcmFmdFJvb3QiLCJnZXREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJnZW5lcmF0ZSIsImlkIiwiZ2V0TWFuaWZlc3RCdXR0b24iLCJnZXRBY3Rpb25Db250cm9scyIsImVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwiYnVpbGRFbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbiIsIkRlZmF1bHRBcHBseSIsIlByaW1hcnkiLCJTZWNvbmRhcnkiLCJnZXRDb250ZW50IiwiX2dldEZvb3RlclZpc2liaWxpdHkiLCJSdW50aW1lQnVpbGRpbmdCbG9jayJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRm9vdGVyQ29udGVudC5ibG9jay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgYmxvY2tBdHRyaWJ1dGUsIGRlZmluZUJ1aWxkaW5nQmxvY2sgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCBSdW50aW1lQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvUnVudGltZUJ1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBDb21tYW5kRXhlY3V0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9Db21tYW5kRXhlY3V0aW9uXCI7XG5pbXBvcnQgeyBCYXNlQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgRHJhZnQsIFVJIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHtcblx0YW5kLFxuXHRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sXG5cdGNvbnN0YW50LFxuXHRpZkVsc2UsXG5cdG5vdCxcblx0b3IsXG5cdHBhdGhJbk1vZGVsLFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgQ3VzdG9tQWN0aW9uQmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvYWN0aW9ucy9DdXN0b21BY3Rpb24uYmxvY2tcIjtcbmltcG9ydCBEYXRhRmllbGRGb3JBY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL21hY3Jvcy9hY3Rpb25zL0RhdGFGaWVsZEZvckFjdGlvbi5ibG9ja1wiO1xuaW1wb3J0IE1lc3NhZ2VCdXR0b24gZnJvbSBcInNhcC9mZS9tYWNyb3MvbWVzc2FnZXMvTWVzc2FnZUJ1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRHJhZnRJbmRpY2F0b3IgZnJvbSBcInNhcC9tL0RyYWZ0SW5kaWNhdG9yXCI7XG5pbXBvcnQgTWVudSBmcm9tIFwic2FwL20vTWVudVwiO1xuaW1wb3J0IE1lbnVCdXR0b24gZnJvbSBcInNhcC9tL01lbnVCdXR0b25cIjtcbmltcG9ydCBNZW51SXRlbSBmcm9tIFwic2FwL20vTWVudUl0ZW1cIjtcbmltcG9ydCBPdmVyZmxvd1Rvb2xiYXIgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhclwiO1xuaW1wb3J0IE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhckxheW91dERhdGFcIjtcbmltcG9ydCBUb29sYmFyU3BhY2VyIGZyb20gXCJzYXAvbS9Ub29sYmFyU3BhY2VyXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgT2JqZWN0UGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uLy4uL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCAqIGFzIE9iamVjdFBhZ2VUZW1wbGF0aW5nIGZyb20gXCIuLi8uLi9PYmplY3RQYWdlVGVtcGxhdGluZ1wiO1xuXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7IG5hbWU6IFwiRm9vdGVyQ29udGVudFwiLCBuYW1lc3BhY2U6IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLnZpZXcuZnJhZ21lbnRzXCIgfSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvb3RlckNvbnRlbnRCbG9jayBleHRlbmRzIFJ1bnRpbWVCdWlsZGluZ0Jsb2NrIHtcblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pXG5cdGlkITogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwiYXJyYXlcIiwgcmVxdWlyZWQ6IHRydWUgfSlcblx0YWN0aW9ucyE6IEJhc2VBY3Rpb25bXTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIgfSlcblx0Y29udGV4dFBhdGg/OiBDb250ZXh0O1xuXG5cdG9EYXRhTWV0YU1vZGVsITogT0RhdGFNZXRhTW9kZWw7XG5cdGRhdGFWaWV3TW9kZWxQYXRoITogRGF0YU1vZGVsT2JqZWN0UGF0aDtcblx0aXNEcmFmdFZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZvb3RlckNvbnRlbnRCbG9jaz4sIC4uLm90aGVyczogYW55W10pIHtcblx0XHRzdXBlcihwcm9wcywgLi4ub3RoZXJzKTtcblx0XHR0aGlzLm9EYXRhTWV0YU1vZGVsID0gdGhpcy5jb250ZXh0UGF0aCEuZ2V0TW9kZWwoKSBhcyB1bmtub3duIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRcdHRoaXMuZGF0YVZpZXdNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHModGhpcy5jb250ZXh0UGF0aCEpO1xuXHRcdGNvbnN0IHN0YXJ0aW5nRW50aXR5U2V0ID0gdGhpcy5kYXRhVmlld01vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldDtcblx0XHR0aGlzLmlzRHJhZnRWYWxpZGF0aW9uID0gISEoXG5cdFx0XHRNb2RlbEhlbHBlci5nZXREcmFmdFJvb3Qoc3RhcnRpbmdFbnRpdHlTZXQpPy5QcmVwYXJhdGlvbkFjdGlvbiAmJiBzdGFydGluZ0VudGl0eVNldD8uZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5Db21tb24/Lk1lc3NhZ2VzXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbjogQmFzZUFjdGlvbikge1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dCA9IHRoaXMub0RhdGFNZXRhTW9kZWwuZ2V0Q29udGV4dChhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRyZXR1cm4gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKGFjdGlvbkNvbnRleHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgT2JqZWN0UGFnZSBmb290ZXIgY29udGVudC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldFZpc2liaWxpdHlcblx0ICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvblxuXHQgKi9cblx0Z2V0VmlzaWJpbGl0eSgpIHtcblx0XHRjb25zdCBfZ2VuZXJhdGVCaW5kaW5nc0ZvckFjdGlvbnMgPSAoYWN0aW9uczogQmFzZUFjdGlvbltdKSA9PiB7XG5cdFx0XHRpZiAoYWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0cmV0dXJuIGFjdGlvbnMubWFwKChhY3Rpb24pID0+XG5cdFx0XHRcdFx0cmVzb2x2ZUJpbmRpbmdTdHJpbmcoYWN0aW9uLnZpc2libGUgPz8gdHJ1ZSwgXCJib29sZWFuXCIpXG5cdFx0XHRcdCkgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+W107XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gW2NvbnN0YW50KGZhbHNlKV07XG5cdFx0fTtcblx0XHQvLyBBY3Rpb25zIGFyZSBjb21pbmcgZnJvbSB0aGUgY29udmVydGVyIHNvIG9ubHkgZGV0ZXJtaW5pbmcgYWN0aW9ucyBhbmQgbm90IHN0YXRpY2FsbHkgaGlkZGVuIGFyZSBsaXN0ZWRcblx0XHRjb25zdCBkZXRlcm1pbmluZ0FjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+IGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbik7XG5cdFx0Y29uc3QgbWFuaWZlc3RBY3Rpb25CaW5kaW5ncyA9IF9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyhcblx0XHRcdHRoaXMuYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gT2JqZWN0UGFnZVRlbXBsYXRpbmcuaXNNYW5pZmVzdEFjdGlvbihhY3Rpb24pKVxuXHRcdCk7XG5cdFx0Y29uc3QgZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncyA9IF9nZW5lcmF0ZUJpbmRpbmdzRm9yQWN0aW9ucyhkZXRlcm1pbmluZ0FjdGlvbnMpO1xuXG5cdFx0Y29uc3QgaXNOb3RIaWRkZW5EZXRlcm1pbmluZ0FjdGlvbiA9ICEhZGV0ZXJtaW5pbmdBY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4ge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dE1vZGVsUGF0aCA9IHRoaXMuZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbik7XG5cdFx0XHRyZXR1cm4gIShhY3Rpb25Db250ZXh0TW9kZWxQYXRoPy50YXJnZXRPYmplY3QgYXMgRGF0YUZpZWxkRm9yQWN0aW9uIHwgdW5kZWZpbmVkKT8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW47XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gb3IoXG5cdFx0XHRpc05vdEhpZGRlbkRldGVybWluaW5nQWN0aW9uLFxuXHRcdFx0b3IoLi4ubWFuaWZlc3RBY3Rpb25CaW5kaW5ncyksXG5cdFx0XHRhbmQob3IoVUkuSXNFZGl0YWJsZSwgb3IoLi4uZGV0ZXJNaW5pbmdBY3Rpb25CaW5kaW5ncykpLCBub3QocGF0aEluTW9kZWwoXCJpc0NyZWF0ZURpYWxvZ09wZW5cIiwgXCJpbnRlcm5hbFwiKSkpXG5cdFx0KTtcblx0fVxuXG5cdGdldERyYWZ0SW5kaWNhdG9yKCkge1xuXHRcdGNvbnN0IGVudGl0eVNldCA9ICh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCB8fCB0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0KSBhcyBFbnRpdHlTZXQ7IC8vIHN0YXJ0aW5nRW50aXR5U2V0IGlzIHVzZWQgb24gY29udGFpbm1lbnQgc2NlbmFyaW9cblx0XHRjb25zdCBjb21tb25Bbm5vdGF0aW9uID0gZW50aXR5U2V0LmFubm90YXRpb25zPy5Db21tb247XG5cdFx0aWYgKGNvbW1vbkFubm90YXRpb24/LkRyYWZ0Um9vdCB8fCBjb21tb25Bbm5vdGF0aW9uPy5EcmFmdE5vZGUpIHtcblx0XHRcdHJldHVybiA8RHJhZnRJbmRpY2F0b3Igc3RhdGU9XCJ7dWk+L2RyYWZ0U3RhdHVzfVwiIHZpc2libGU9XCJ7dWk+L2lzRWRpdGFibGV9XCIgLz47XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwcml2YXRlIGdldEFwcGx5QnV0dG9uKHZpZXc6IFZpZXcsIGVtcGhhc2l6ZWRFeHByZXNzaW9uOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogQnV0dG9uIHwgTWVudUJ1dHRvbiB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IHZpZXdEYXRhID0gdmlldy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGlmICh0aGlzLmlzRHJhZnRWYWxpZGF0aW9uICYmICF2aWV3RGF0YS5pc0Rlc2t0b3AgJiYgIXZpZXdEYXRhLmZjbEVuYWJsZWQpIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxNZW51QnV0dG9uXG5cdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9BUFBMWV9EUkFGVH1cIlxuXHRcdFx0XHRcdGRlZmF1bHRBY3Rpb249eygpID0+IGNvbnRyb2xsZXIuX2FwcGx5RG9jdW1lbnQodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpKX1cblx0XHRcdFx0XHR1c2VEZWZhdWx0QWN0aW9uT25seT1cInRydWVcIlxuXHRcdFx0XHRcdGJ1dHRvbk1vZGU9XCJTcGxpdFwiXG5cdFx0XHRcdFx0dHlwZT17ZW1waGFzaXplZEV4cHJlc3Npb259XG5cdFx0XHRcdFx0dmlzaWJsZT17VUkuSXNFZGl0YWJsZX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxNZW51PlxuXHRcdFx0XHRcdFx0PE1lbnVJdGVtIHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfVkFMSURBVEVfRFJBRlR9XCIgcHJlc3M9eygpID0+IGNvbnRyb2xsZXIuX3ZhbGlkYXRlRG9jdW1lbnQoKX0gLz5cblx0XHRcdFx0XHQ8L01lbnU+XG5cdFx0XHRcdDwvTWVudUJ1dHRvbj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OkFwcGx5XCIpfVxuXHRcdFx0XHR0ZXh0PVwie3NhcC5mZS5pMThuPlRfQ09NTU9OX09CSkVDVF9QQUdFX0FQUExZX0RSQUZUfVwiXG5cdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRlbmFibGVkPXt0cnVlfVxuXHRcdFx0XHRwcmVzcz17KCkgPT4gY29udHJvbGxlci5fYXBwbHlEb2N1bWVudCh2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkpfVxuXHRcdFx0XHR2aXNpYmxlPVwie3VpPi9pc0VkaXRhYmxlfVwiXG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFByaW1hcnkodmlldzogVmlldywgZW1waGFzaXplZEV4cHJlc3Npb246IFByb3BlcnR5QmluZGluZ0luZm8pOiBCdXR0b24gfCBNZW51QnV0dG9uIHtcblx0XHRjb25zdCB2aWV3RGF0YSA9IHZpZXcuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncztcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0aWYgKHRoaXMuaXNEcmFmdFZhbGlkYXRpb24gJiYgIXZpZXdEYXRhLmlzRGVza3RvcCkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PE1lbnVCdXR0b25cblx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRleHRTYXZlQnV0dG9uKCl9XG5cdFx0XHRcdFx0ZGVmYXVsdEFjdGlvbj17Q29tbWFuZEV4ZWN1dGlvbi5leGVjdXRlQ29tbWFuZChcIlNhdmVcIil9XG5cdFx0XHRcdFx0dXNlRGVmYXVsdEFjdGlvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRidXR0b25Nb2RlPVwiU3BsaXRcIlxuXHRcdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRcdHZpc2libGU9e1VJLklzRWRpdGFibGV9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8TWVudT5cblx0XHRcdFx0XHRcdDxNZW51SXRlbSB0ZXh0PVwie3NhcC5mZS5pMThuPlRfQ09NTU9OX09CSkVDVF9QQUdFX1ZBTElEQVRFX0RSQUZUfVwiIHByZXNzPXsoKSA9PiBjb250cm9sbGVyLl92YWxpZGF0ZURvY3VtZW50KCl9IC8+XG5cdFx0XHRcdFx0PC9NZW51PlxuXHRcdFx0XHQ8L01lbnVCdXR0b24+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gKFxuXHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIlN0YW5kYXJkQWN0aW9uOjpTYXZlXCIpfVxuXHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRleHRTYXZlQnV0dG9uKCl9XG5cdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHR2aXNpYmxlPXtVSS5Jc0VkaXRhYmxlfVxuXHRcdFx0XHRlbmFibGVkPXt0cnVlfVxuXHRcdFx0XHRwcmVzcz17Q29tbWFuZEV4ZWN1dGlvbi5leGVjdXRlQ29tbWFuZChcIlNhdmVcIil9XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFRleHRTYXZlQnV0dG9uKCkge1xuXHRcdGNvbnN0IHNhdmVCdXR0b25UZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfU0FWRVwiKTtcblx0XHRjb25zdCBjcmVhdGVCdXR0b25UZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfQ1JFQVRFXCIpO1xuXHRcdC8vIElmIHdlJ3JlIGluIHN0aWNreSBtb2RlICAtPiB0aGUgdWkgaXMgaW4gY3JlYXRlIG1vZGUsIHNob3cgQ3JlYXRlLCBlbHNlIHNob3cgU2F2ZVxuXHRcdC8vIElmIG5vdCAtPiB3ZSdyZSBpbiBkcmFmdCBBTkQgdGhlIGRyYWZ0IGlzIGEgbmV3IG9iamVjdCAoIUlzQWN0aXZlRW50aXR5ICYmICFIYXNBY3RpdmVFbnRpdHkpLCBzaG93IGNyZWF0ZSwgZWxzZSBzaG93IHNhdmVcblx0XHRyZXR1cm4gaWZFbHNlKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHQodGhpcy5kYXRhVmlld01vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldCBhcyBFbnRpdHlTZXQpLmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQgIT09IHVuZGVmaW5lZCxcblx0XHRcdFx0VUkuSXNDcmVhdGVNb2RlLFxuXHRcdFx0XHREcmFmdC5Jc05ld09iamVjdFxuXHRcdFx0KSxcblx0XHRcdGNyZWF0ZUJ1dHRvblRleHQsXG5cdFx0XHRzYXZlQnV0dG9uVGV4dFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldENhbmNlbEJ1dHRvbigpOiBCdXR0b24ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OkNhbmNlbFwiKX1cblx0XHRcdFx0dGV4dD17XG5cdFx0XHRcdFx0TW9kZWxIZWxwZXIuaXNEcmFmdFJvb3QodGhpcy5kYXRhVmlld01vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQpXG5cdFx0XHRcdFx0XHQ/IFwie3NhcC5mZS5pMThuPkNfQ09NTU9OX09CSkVDVF9QQUdFX0RJU0NBUkRfRFJBRlR9XCJcblx0XHRcdFx0XHRcdDogXCJ7c2FwLmZlLmkxOG4+Q19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMfVwiXG5cdFx0XHRcdH1cblx0XHRcdFx0cHJlc3M9e0NvbW1hbmRFeGVjdXRpb24uZXhlY3V0ZUNvbW1hbmQoXCJDYW5jZWxcIil9XG5cdFx0XHRcdHZpc2libGU9e1VJLklzRWRpdGFibGV9XG5cdFx0XHRcdGFyaWFIYXNQb3B1cD1cIkRpYWxvZ1wiXG5cdFx0XHRcdGVuYWJsZWQ9e3RydWV9XG5cdFx0XHRcdGxheW91dERhdGE9ezxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIHByaW9yaXR5PVwiTmV2ZXJPdmVyZmxvd1wiIC8+fVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24oYWN0aW9uOiBCYXNlQWN0aW9uKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoYWN0aW9uLmFubm90YXRpb25QYXRoKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8RGF0YUZpZWxkRm9yQWN0aW9uQmxvY2tcblx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIHRoaXMuZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbildKX1cblx0XHRcdFx0XHRhY3Rpb249e2FjdGlvbn1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5jb250ZXh0UGF0aH1cblx0XHRcdFx0Lz5cblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRNYW5pZmVzdEJ1dHRvbihhY3Rpb246IEJhc2VBY3Rpb24pOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGlmIChPYmplY3RQYWdlVGVtcGxhdGluZy5pc01hbmlmZXN0QWN0aW9uKGFjdGlvbikpIHtcblx0XHRcdHJldHVybiA8Q3VzdG9tQWN0aW9uQmxvY2sgaWQ9e2dlbmVyYXRlKFtcImZlXCIsIFwiRm9vdGVyQmFyXCIsIGFjdGlvbi5pZF0pfSBhY3Rpb249e2FjdGlvbn0gLz47XG5cdFx0fVxuXHR9XG5cblx0Z2V0QWN0aW9uQ29udHJvbHModmlldzogVmlldykge1xuXHRcdGNvbnN0IGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uID0gT2JqZWN0UGFnZVRlbXBsYXRpbmcuYnVpbGRFbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbih0aGlzLmRhdGFWaWV3TW9kZWxQYXRoKTtcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb25zXG5cdFx0XHQubWFwKChhY3Rpb24pID0+IHtcblx0XHRcdFx0c3dpdGNoIChhY3Rpb24udHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgQWN0aW9uVHlwZS5EZWZhdWx0QXBwbHk6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRBcHBseUJ1dHRvbih2aWV3LCBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbjpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihhY3Rpb24pO1xuXHRcdFx0XHRcdGNhc2UgQWN0aW9uVHlwZS5QcmltYXJ5OlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0UHJpbWFyeSh2aWV3LCBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLlNlY29uZGFyeTpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldENhbmNlbEJ1dHRvbigpO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRNYW5pZmVzdEJ1dHRvbihhY3Rpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmZpbHRlcigoYWN0aW9uKTogYWN0aW9uIGlzIEJ1dHRvbiA9PiAhIWFjdGlvbik7XG5cdH1cblxuXHRnZXRDb250ZW50KHZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxPdmVyZmxvd1Rvb2xiYXIgaWQ9e3RoaXMuaWR9IGFzeW5jTW9kZT17dHJ1ZX0gdmlzaWJsZT17dGhpcy5nZXRWaXNpYmlsaXR5KCl9PlxuXHRcdFx0XHQ8SW52aXNpYmxlVGV4dFxuXHRcdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiTWVzc2FnZUJ1dHRvbjo6QXJpYVRleHRcIil9XG5cdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5DX0NPTU1PTl9TQVBGRV9FUlJPUl9NRVNTQUdFU19QQUdFX0JVVFRPTl9BUklBX1RFWFR9XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0PE1lc3NhZ2VCdXR0b25cblx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIk1lc3NhZ2VCdXR0b25cIil9XG5cdFx0XHRcdFx0bWVzc2FnZUNoYW5nZT17KCkgPT4gY29udHJvbGxlci5fZ2V0Rm9vdGVyVmlzaWJpbGl0eSgpfVxuXHRcdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXtbdGhpcy5jcmVhdGVJZChcIk1lc3NhZ2VCdXR0b246OkFyaWFUZXh0XCIpIGFzIHN0cmluZ119XG5cdFx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRcdGFyaWFIYXNQb3B1cD1cIkRpYWxvZ1wiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdDxUb29sYmFyU3BhY2VyIC8+XG5cdFx0XHRcdHt0aGlzLmdldERyYWZ0SW5kaWNhdG9yKCl9XG5cdFx0XHRcdHt0aGlzLmdldEFjdGlvbkNvbnRyb2xzKHZpZXcpfVxuXHRcdFx0PC9PdmVyZmxvd1Rvb2xiYXI+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQTRDcUJBLGtCQUFrQixXQUR0Q0MsbUJBQW1CLENBQUM7SUFBRUMsSUFBSSxFQUFFLGVBQWU7SUFBRUMsU0FBUyxFQUFFO0VBQTZDLENBQUMsQ0FBQyxVQUV0R0MsY0FBYyxDQUFDO0lBQ2ZDLElBQUksRUFBRSxRQUFRO0lBQ2RDLFFBQVEsRUFBRTtFQUNYLENBQUMsQ0FBQyxVQUdERixjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLE9BQU87SUFBRUMsUUFBUSxF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
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport","sap/fe/core/buildingBlocks/RuntimeBuildingBlock","sap/fe/core/controls/CommandExecution","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/converters/ManifestSettings","sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/StableIdHelper","sap/fe/macros/actions/CustomAction.block","sap/fe/macros/actions/DataFieldForAction.block","sap/fe/macros/messages/MessageButton","sap/m/Button","sap/m/DraftIndicator","sap/m/Menu","sap/m/MenuButton","sap/m/MenuItem","sap/m/OverflowToolbar","sap/m/OverflowToolbarLayoutData","sap/m/ToolbarSpacer","sap/ui/core/InvisibleText","../../ObjectPageTemplating","sap/fe/core/jsx-runtime/jsx","sap/fe/core/jsx-runtime/jsxs"],function(t,e,i,n,a,r,o,s,l,u,c,d,p,f,g,h,v,b,A,m,y,_,M,E){"use strict";var C,P,D,O,T,B,x,S,I;var w={};var F=l.generate;var V=o.resolveBindingString;var R=o.pathInModel;var j=o.or;var k=o.not;var z=o.ifElse;var N=o.constant;var G=o.and;var J=r.getInvolvedDataModelObjects;var L=a.ActionType;var H=n.UI;var U=n.Draft;var q=t.defineBuildingBlock;var Y=t.blockAttribute;function X(t,e,i,n){if(!i)return;Object.defineProperty(t,e,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function K(t){if(t===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return t}function Q(t,e){t.prototype=Object.create(e.prototype);t.prototype.constructor=t;W(t,e)}function W(t,e){W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function t(e,i){e.__proto__=i;return e};return W(t,e)}function Z(t,e,i,n,a){var r={};Object.keys(n).forEach(function(t){r[t]=n[t]});r.enumerable=!!r.enumerable;r.configurable=!!r.configurable;if("value"in r||r.initializer){r.writable=true}r=i.slice().reverse().reduce(function(i,n){return n(t,e,i)||i},r);if(a&&r.initializer!==void 0){r.value=r.initializer?r.initializer.call(a):void 0;r.initializer=undefined}if(r.initializer===void 0){Object.defineProperty(t,e,r);r=null}return r}function $(t,e){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}let tt=(C=q({name:"FooterContent",namespace:"sap.fe.templates.ObjectPage.view.fragments"}),P=Y({type:"string",required:true}),D=Y({type:"array",required:true}),O=Y({type:"sap.ui.model.Context"}),C(T=(B=function(t){Q(e,t);function e(e){var i,n;var a;for(var r=arguments.length,o=new Array(r>1?r-1:0),l=1;l<r;l++){o[l-1]=arguments[l]}a=t.call(this,e,...o)||this;X(a,"id",x,K(a));X(a,"actions",S,K(a));X(a,"contextPath",I,K(a));a.isDraftValidation=false;a.oDataMetaModel=a.contextPath.getModel();a.dataViewModelPath=J(a.contextPath);const u=a.dataViewModelPath.startingEntitySet;a.isDraftValidation=!!((i=s.getDraftRoot(u))!==null&&i!==void 0&&i.PreparationAction&&u!==null&&u!==void 0&&(n=u.entityType.annotations.Common)!==null&&n!==void 0&&n.Messages);return a}w=e;var n=e.prototype;n.getActionModelPath=function t(e){const i=e.annotationPath;if(i){const t=this.oDataMetaModel.getContext(i);return J(t)}return undefined};n.getVisibility=function t(){const e=t=>{if(t.length){return t.map(t=>V(t.visible??true,"boolean"))}return[N(false)]};const i=this.actions.filter(t=>t.type===L.DataFieldForAction);const n=e(this.actions.filter(t=>_.isManifestAction(t)));const a=e(i);const r=!!i.find(t=>{var e,i,n;const a=this.getActionModelPath(t);return!(a!==null&&a!==void 0&&(e=a.targetObject)!==null&&e!==void 0&&(i=e.annotations)!==null&&i!==void 0&&(n=i.UI)!==null&&n!==void 0&&n.Hidden)});return j(r,j(...n),G(j(H.IsEditable,j(...a)),k(R("isCreateDialogOpen","internal"))))};n.getDraftIndicator=function t(){var e;const i=this.dataViewModelPath.targetEntitySet||this.dataViewModelPath.startingEntitySet;const n=(e=i.annotations)===null||e===void 0?void 0:e.Common;if(n!==null&&n!==void 0&&n.DraftRoot||n!==null&&n!==void 0&&n.DraftNode){return M(f,{state:"{ui>/draftStatus}",visible:"{ui>/isEditable}"})}return undefined};n.getApplyButton=function t(e,i){const n=e.getController();const a=e.getViewData();if(this.isDraftValidation&&!a.isDesktop&&!a.fclEnabled){return M(h,{text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}",defaultAction:()=>n._applyDocument(e.getBindingContext()),useDefaultActionOnly:"true",buttonMode:"Split",type:i,visible:H.IsEditable,children:M(g,{children:M(v,{text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}",press:()=>n._validateDocument()})})})}return M(p,{id:this.createId("StandardAction::Apply"),text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}",type:i,enabled:true,press:()=>n._applyDocument(e.getBindingContext()),visible:"{ui>/isEditable}"})};n.getPrimary=function t(e,n){const a=e.getViewData();const r=e.getController();if(this.isDraftValidation&&!a.isDesktop){return M(h,{text:this.getTextSaveButton(),defaultAction:i.executeCommand("Save"),useDefaultActionOnly:"true",buttonMode:"Split",type:n,visible:H.IsEditable,children:M(g,{children:M(v,{text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}",press:()=>r._validateDocument()})})})}return M(p,{id:this.createId("StandardAction::Save"),text:this.getTextSaveButton(),type:n,visible:H.IsEditable,enabled:true,press:i.executeCommand("Save")})};n.getTextSaveButton=function t(){var e;const i=this.getTranslatedText("T_OP_OBJECT_PAGE_SAVE");const n=this.getTranslatedText("T_OP_OBJECT_PAGE_CREATE");return z(z(((e=this.dataViewModelPath.startingEntitySet.annotations.Session)===null||e===void 0?void 0:e.StickySessionSupported)!==undefined,H.IsCreateMode,U.IsNewObject),n,i)};n.getCancelButton=function t(){return M(p,{id:this.createId("StandardAction::Cancel"),text:s.isDraftRoot(this.dataViewModelPath.targetEntitySet)?"{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISCARD_DRAFT}":"{sap.fe.i18n>C_COMMON_OBJECT_PAGE_CANCEL}",press:i.executeCommand("Cancel"),visible:H.IsEditable,ariaHasPopup:"Dialog",enabled:true,layoutData:M(A,{priority:"NeverOverflow"})})};n.getDataFieldForActionButton=function t(e){if(e.annotationPath){return M(c,{id:F([this.id,this.getActionModelPath(e)]),action:e,contextPath:this.contextPath})}};n.getManifestButton=function t(e){if(_.isManifestAction(e)){return M(u,{id:F(["fe","FooterBar",e.id]),action:e})}};n.getActionControls=function t(e){const i=_.buildEmphasizedButtonExpression(this.dataViewModelPath);return this.actions.map(t=>{switch(t.type){case L.DefaultApply:return this.getApplyButton(e,i);case L.DataFieldForAction:return this.getDataFieldForActionButton(t);case L.Primary:return this.getPrimary(e,i);case L.Secondary:return this.getCancelButton();default:return this.getManifestButton(t)}}).filter(t=>!!t)};n.getContent=function t(e){const i=e.getController();return E(b,{id:this.id,asyncMode:true,visible:this.getVisibility(),children:[M(y,{id:this.createId("MessageButton::AriaText"),text:"{sap.fe.i18n>C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_BUTTON_ARIA_TEXT}"}),M(d,{id:this.createId("MessageButton"),messageChange:()=>i._getFooterVisibility(),ariaLabelledBy:[this.createId("MessageButton::AriaText")],type:"Emphasized",ariaHasPopup:"Dialog"}),M(m,{}),this.getDraftIndicator(),this.getActionControls(e)]})};return e}(e),x=Z(B.prototype,"id",[P],{configurable:true,enumerable:true,writable:true,initializer:null}),S=Z(B.prototype,"actions",[D],{configurable:true,enumerable:true,writable:true,initializer:null}),I=Z(B.prototype,"contextPath",[O],{configurable:true,enumerable:true,writable:true,initializer:null}),B))||T);w=tt;return w},false);
6
+ //# sourceMappingURL=FooterContent.block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FooterContent.block.js","names":["sap","ui","define","BuildingBlockSupport","RuntimeBuildingBlock","CommandExecution","BindingHelper","ManifestSettings","MetaModelConverter","BindingToolkit","ModelHelper","StableIdHelper","CustomActionBlock","DataFieldForActionBlock","MessageButton","Button","DraftIndicator","Menu","MenuButton","MenuItem","OverflowToolbar","OverflowToolbarLayoutData","ToolbarSpacer","InvisibleText","ObjectPageTemplating","_jsx","_jsxs","_dec","_dec2","_dec3","_dec4","_class","_class2","_descriptor","_descriptor2","_descriptor3","_exports","generate","resolveBindingString","pathInModel","or","not","ifElse","constant","and","getInvolvedDataModelObjects","ActionType","UI","Draft","defineBuildingBlock","blockAttribute","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","FooterContentBlock","name","namespace","type","required","_RuntimeBuildingBlock","props","_ModelHelper$getDraft","_startingEntitySet$en","_this","_len","arguments","length","others","Array","_key","this","isDraftValidation","oDataMetaModel","contextPath","getModel","dataViewModelPath","startingEntitySet","getDraftRoot","PreparationAction","entityType","annotations","Common","Messages","_proto","getActionModelPath","action","annotationPath","actionContext","getContext","getVisibility","_generateBindingsForActions","actions","map","visible","determiningActions","filter","DataFieldForAction","manifestActionBindings","isManifestAction","deterMiningActionBindings","isNotHiddenDeterminingAction","find","_actionContextModelPa","_actionContextModelPa2","_actionContextModelPa3","actionContextModelPath","targetObject","Hidden","IsEditable","getDraftIndicator","_entitySet$annotation","entitySet","targetEntitySet","commonAnnotation","DraftRoot","DraftNode","state","getApplyButton","view","emphasizedExpression","controller","getController","viewData","getViewData","isDesktop","fclEnabled","text","defaultAction","_applyDocument","getBindingContext","useDefaultActionOnly","buttonMode","children","press","_validateDocument","id","createId","enabled","getPrimary","getTextSaveButton","executeCommand","_annotations$Session","saveButtonText","getTranslatedText","createButtonText","Session","StickySessionSupported","IsCreateMode","IsNewObject","getCancelButton","isDraftRoot","ariaHasPopup","layoutData","priority","getDataFieldForActionButton","getManifestButton","getActionControls","emphasizedButtonExpression","buildEmphasizedButtonExpression","DefaultApply","Primary","Secondary","getContent","asyncMode","messageChange","_getFooterVisibility","ariaLabelledBy"],"sources":["FooterContent.block-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,kDAAmD,kDAAmD,wCAAyC,+CAAgD,0CAA2C,4CAA6C,qCAAsC,kCAAmC,qCAAsC,2CAA4C,iDAAkD,uCAAwC,eAAgB,uBAAwB,aAAc,mBAAoB,iBAAkB,wBAAyB,kCAAmC,sBAAuB,4BAA6B,6BAA8B,8BAA+B,gCAAiC,SAAUC,EAAsBC,EAAsBC,EAAkBC,EAAeC,EAAkBC,EAAoBC,EAAgBC,EAAaC,EAAgBC,EAAmBC,EAAyBC,EAAeC,EAAQC,EAAgBC,EAAMC,EAAYC,EAAUC,EAAiBC,EAA2BC,EAAeC,EAAeC,EAAsBC,EAAMC,GAClsC,aAEA,IAAIC,EAAMC,EAAOC,EAAOC,EAAOC,EAAQC,EAASC,EAAaC,EAAcC,EAC3E,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAW1B,EAAe0B,SAC9B,IAAIC,EAAuB7B,EAAe6B,qBAC1C,IAAIC,EAAc9B,EAAe8B,YACjC,IAAIC,EAAK/B,EAAe+B,GACxB,IAAIC,EAAMhC,EAAegC,IACzB,IAAIC,EAASjC,EAAeiC,OAC5B,IAAIC,EAAWlC,EAAekC,SAC9B,IAAIC,EAAMnC,EAAemC,IACzB,IAAIC,EAA8BrC,EAAmBqC,4BACrD,IAAIC,EAAavC,EAAiBuC,WAClC,IAAIC,EAAKzC,EAAcyC,GACvB,IAAIC,EAAQ1C,EAAc0C,MAC1B,IAAIC,EAAsB9C,EAAqB8C,oBAC/C,IAAIC,EAAiB/C,EAAqB+C,eAC1C,SAASC,EAA2BC,EAAQC,EAAUC,EAAYC,GAAW,IAAKD,EAAY,OAAQE,OAAOC,eAAeL,EAAQC,EAAU,CAAEK,WAAYJ,EAAWI,WAAYC,aAAcL,EAAWK,aAAcC,SAAUN,EAAWM,SAAUC,MAAOP,EAAWQ,YAAcR,EAAWQ,YAAYC,KAAKR,QAAgB,GAAM,CAC3U,SAASS,EAAuBC,GAAQ,GAAIA,SAAc,EAAG,CAAE,MAAM,IAAIC,eAAe,4DAA8D,CAAE,OAAOD,CAAM,CACrK,SAASE,EAAeC,EAAUC,GAAcD,EAASE,UAAYd,OAAOe,OAAOF,EAAWC,WAAYF,EAASE,UAAUE,YAAcJ,EAAUK,EAAgBL,EAAUC,EAAa,CAC5L,SAASI,EAAgBC,EAAGC,GAAKF,EAAkBjB,OAAOoB,eAAiBpB,OAAOoB,eAAeC,OAAS,SAASJ,EAAgBC,EAAGC,GAAKD,EAAEI,UAAYH,EAAG,OAAOD,CAAG,EAAG,OAAOD,EAAgBC,EAAGC,EAAI,CACvM,SAASI,EAA0B3B,EAAQC,EAAU2B,EAAY1B,EAAYC,GAAW,IAAI0B,EAAO,CAAC,EAAGzB,OAAO0B,KAAK5B,GAAY6B,QAAQ,SAAUC,GAAOH,EAAKG,GAAO9B,EAAW8B,EAAM,GAAIH,EAAKvB,aAAeuB,EAAKvB,WAAYuB,EAAKtB,eAAiBsB,EAAKtB,aAAc,GAAI,UAAWsB,GAAQA,EAAKnB,YAAa,CAAEmB,EAAKrB,SAAW,IAAM,CAAEqB,EAAOD,EAAWK,QAAQC,UAAUC,OAAO,SAAUN,EAAMO,GAAa,OAAOA,EAAUpC,EAAQC,EAAU4B,IAASA,CAAM,EAAGA,GAAO,GAAI1B,GAAW0B,EAAKnB,mBAAqB,EAAG,CAAEmB,EAAKpB,MAAQoB,EAAKnB,YAAcmB,EAAKnB,YAAYC,KAAKR,QAAgB,EAAG0B,EAAKnB,YAAc2B,SAAW,CAAE,GAAIR,EAAKnB,mBAAqB,EAAG,CAAEN,OAAOC,eAAeL,EAAQC,EAAU4B,GAAOA,EAAO,IAAM,CAAE,OAAOA,CAAM,CACntB,SAASS,EAA0BpC,EAAYC,GAAW,MAAM,IAAIoC,MAAM,wDAA0D,gFAAkF,CACtN,IAAIC,IAAsBjE,EAAOsB,EAAoB,CACnD4C,KAAM,gBACNC,UAAW,+CACTlE,EAAQsB,EAAe,CACzB6C,KAAM,SACNC,SAAU,OACRnE,EAAQqB,EAAe,CACzB6C,KAAM,QACNC,SAAU,OACRlE,EAAQoB,EAAe,CACzB6C,KAAM,yBACJpE,EAAKI,GAAUC,EAAuB,SAAUiE,GAClD9B,EAAeyB,EAAoBK,GACnC,SAASL,EAAmBM,GAC1B,IAAIC,EAAuBC,EAC3B,IAAIC,EACJ,IAAK,IAAIC,EAAOC,UAAUC,OAAQC,EAAS,IAAIC,MAAMJ,EAAO,EAAIA,EAAO,EAAI,GAAIK,EAAO,EAAGA,EAAOL,EAAMK,IAAQ,CAC5GF,EAAOE,EAAO,GAAKJ,UAAUI,EAC/B,CACAN,EAAQJ,EAAsBlC,KAAK6C,KAAMV,KAAUO,IAAWG,KAC9DzD,EAA2BkD,EAAO,KAAMpE,EAAa+B,EAAuBqC,IAC5ElD,EAA2BkD,EAAO,UAAWnE,EAAc8B,EAAuBqC,IAClFlD,EAA2BkD,EAAO,cAAelE,EAAc6B,EAAuBqC,IACtFA,EAAMQ,kBAAoB,MAC1BR,EAAMS,eAAiBT,EAAMU,YAAYC,WACzCX,EAAMY,kBAAoBpE,EAA4BwD,EAAMU,aAC5D,MAAMG,EAAoBb,EAAMY,kBAAkBC,kBAClDb,EAAMQ,sBAAwBV,EAAwBzF,EAAYyG,aAAaD,MAAwB,MAAQf,SAA+B,GAAKA,EAAsBiB,mBAAqBF,IAAsB,MAAQA,SAA2B,IAAMd,EAAwBc,EAAkBG,WAAWC,YAAYC,UAAY,MAAQnB,SAA+B,GAAKA,EAAsBoB,UAC5Y,OAAOnB,CACT,CACAjE,EAAWwD,EACX,IAAI6B,EAAS7B,EAAmBtB,UAChCmD,EAAOC,mBAAqB,SAASA,EAAmBC,GACtD,MAAMC,EAAiBD,EAAOC,eAC9B,GAAIA,EAAgB,CAClB,MAAMC,EAAgBjB,KAAKE,eAAegB,WAAWF,GACrD,OAAO/E,EAA4BgF,EACrC,CACA,OAAOpC,SACT,EASAgC,EAAOM,cAAgB,SAASA,IAC9B,MAAMC,EAA8BC,IAClC,GAAIA,EAAQzB,OAAQ,CAClB,OAAOyB,EAAQC,IAAIP,GAAUrF,EAAqBqF,EAAOQ,SAAW,KAAM,WAC5E,CACA,MAAO,CAACxF,EAAS,OAAO,EAG1B,MAAMyF,EAAqBxB,KAAKqB,QAAQI,OAAOV,GAAUA,EAAO5B,OAASjD,EAAWwF,oBACpF,MAAMC,EAAyBP,EAA4BpB,KAAKqB,QAAQI,OAAOV,GAAUnG,EAAqBgH,iBAAiBb,KAC/H,MAAMc,EAA4BT,EAA4BI,GAC9D,MAAMM,IAAiCN,EAAmBO,KAAKhB,IAC7D,IAAIiB,EAAuBC,EAAwBC,EACnD,MAAMC,EAAyBnC,KAAKc,mBAAmBC,GACvD,QAASoB,IAA2B,MAAQA,SAAgC,IAAMH,EAAwBG,EAAuBC,gBAAkB,MAAQJ,SAA+B,IAAMC,EAAyBD,EAAsBtB,eAAiB,MAAQuB,SAAgC,IAAMC,EAAyBD,EAAuB9F,MAAQ,MAAQ+F,SAAgC,GAAKA,EAAuBG,OAAO,GAEnb,OAAOzG,EAAGkG,EAA8BlG,KAAM+F,GAAyB3F,EAAIJ,EAAGO,EAAGmG,WAAY1G,KAAMiG,IAA6BhG,EAAIF,EAAY,qBAAsB,cACxK,EACAkF,EAAO0B,kBAAoB,SAASA,IAClC,IAAIC,EACJ,MAAMC,EAAYzC,KAAKK,kBAAkBqC,iBAAmB1C,KAAKK,kBAAkBC,kBACnF,MAAMqC,GAAoBH,EAAwBC,EAAU/B,eAAiB,MAAQ8B,SAA+B,OAAS,EAAIA,EAAsB7B,OACvJ,GAAIgC,IAAqB,MAAQA,SAA0B,GAAKA,EAAiBC,WAAaD,IAAqB,MAAQA,SAA0B,GAAKA,EAAiBE,UAAW,CACpL,OAAOhI,EAAKT,EAAgB,CAC1B0I,MAAO,oBACPvB,QAAS,oBAEb,CACA,OAAO1C,SACT,EACAgC,EAAOkC,eAAiB,SAASA,EAAeC,EAAMC,GACpD,MAAMC,EAAaF,EAAKG,gBACxB,MAAMC,EAAWJ,EAAKK,cACtB,GAAIrD,KAAKC,oBAAsBmD,EAASE,YAAcF,EAASG,WAAY,CACzE,OAAO1I,EAAKP,EAAY,CACtBkJ,KAAM,iDACNC,cAAe,IAAMP,EAAWQ,eAAeV,EAAKW,qBACpDC,qBAAsB,OACtBC,WAAY,QACZ1E,KAAM8D,EACN1B,QAASpF,EAAGmG,WACZwB,SAAUjJ,EAAKR,EAAM,CACnByJ,SAAUjJ,EAAKN,EAAU,CACvBiJ,KAAM,oDACNO,MAAO,IAAMb,EAAWc,yBAIhC,CACA,OAAOnJ,EAAKV,EAAQ,CAClB8J,GAAIjE,KAAKkE,SAAS,yBAClBV,KAAM,iDACNrE,KAAM8D,EACNkB,QAAS,KACTJ,MAAO,IAAMb,EAAWQ,eAAeV,EAAKW,qBAC5CpC,QAAS,oBAEb,EACAV,EAAOuD,WAAa,SAASA,EAAWpB,EAAMC,GAC5C,MAAMG,EAAWJ,EAAKK,cACtB,MAAMH,EAAaF,EAAKG,gBACxB,GAAInD,KAAKC,oBAAsBmD,EAASE,UAAW,CACjD,OAAOzI,EAAKP,EAAY,CACtBkJ,KAAMxD,KAAKqE,oBACXZ,cAAehK,EAAiB6K,eAAe,QAC/CV,qBAAsB,OACtBC,WAAY,QACZ1E,KAAM8D,EACN1B,QAASpF,EAAGmG,WACZwB,SAAUjJ,EAAKR,EAAM,CACnByJ,SAAUjJ,EAAKN,EAAU,CACvBiJ,KAAM,oDACNO,MAAO,IAAMb,EAAWc,yBAIhC,CACA,OAAOnJ,EAAKV,EAAQ,CAClB8J,GAAIjE,KAAKkE,SAAS,wBAClBV,KAAMxD,KAAKqE,oBACXlF,KAAM8D,EACN1B,QAASpF,EAAGmG,WACZ6B,QAAS,KACTJ,MAAOtK,EAAiB6K,eAAe,SAE3C,EACAzD,EAAOwD,kBAAoB,SAASA,IAClC,IAAIE,EACJ,MAAMC,EAAiBxE,KAAKyE,kBAAkB,yBAC9C,MAAMC,EAAmB1E,KAAKyE,kBAAkB,2BAGhD,OAAO3I,EAAOA,IAASyI,EAAuBvE,KAAKK,kBAAkBC,kBAAkBI,YAAYiE,WAAa,MAAQJ,SAA8B,OAAS,EAAIA,EAAqBK,0BAA4B/F,UAAW1C,EAAG0I,aAAczI,EAAM0I,aAAcJ,EAAkBF,EACxR,EACA3D,EAAOkE,gBAAkB,SAASA,IAChC,OAAOlK,EAAKV,EAAQ,CAClB8J,GAAIjE,KAAKkE,SAAS,0BAClBV,KAAM1J,EAAYkL,YAAYhF,KAAKK,kBAAkBqC,iBAAmB,mDAAqD,4CAC7HqB,MAAOtK,EAAiB6K,eAAe,UACvC/C,QAASpF,EAAGmG,WACZ2C,aAAc,SACdd,QAAS,KACTe,WAAYrK,EAAKJ,EAA2B,CAC1C0K,SAAU,mBAGhB,EACAtE,EAAOuE,4BAA8B,SAASA,EAA4BrE,GACxE,GAAIA,EAAOC,eAAgB,CACzB,OAAOnG,EAAKZ,EAAyB,CACnCgK,GAAIxI,EAAS,CAACuE,KAAKiE,GAAIjE,KAAKc,mBAAmBC,KAC/CA,OAAQA,EACRZ,YAAaH,KAAKG,aAEtB,CACF,EACAU,EAAOwE,kBAAoB,SAASA,EAAkBtE,GACpD,GAAInG,EAAqBgH,iBAAiBb,GAAS,CACjD,OAAOlG,EAAKb,EAAmB,CAC7BiK,GAAIxI,EAAS,CAAC,KAAM,YAAasF,EAAOkD,KACxClD,OAAQA,GAEZ,CACF,EACAF,EAAOyE,kBAAoB,SAASA,EAAkBtC,GACpD,MAAMuC,EAA6B3K,EAAqB4K,gCAAgCxF,KAAKK,mBAC7F,OAAOL,KAAKqB,QAAQC,IAAIP,IACtB,OAAQA,EAAO5B,MACb,KAAKjD,EAAWuJ,aACd,OAAOzF,KAAK+C,eAAeC,EAAMuC,GACnC,KAAKrJ,EAAWwF,mBACd,OAAO1B,KAAKoF,4BAA4BrE,GAC1C,KAAK7E,EAAWwJ,QACd,OAAO1F,KAAKoE,WAAWpB,EAAMuC,GAC/B,KAAKrJ,EAAWyJ,UACd,OAAO3F,KAAK+E,kBACd,QACE,OAAO/E,KAAKqF,kBAAkBtE,GAClC,GACCU,OAAOV,KAAYA,EACxB,EACAF,EAAO+E,WAAa,SAASA,EAAW5C,GACtC,MAAME,EAAaF,EAAKG,gBACxB,OAAOrI,EAAMN,EAAiB,CAC5ByJ,GAAIjE,KAAKiE,GACT4B,UAAW,KACXtE,QAASvB,KAAKmB,gBACd2C,SAAU,CAACjJ,EAAKF,EAAe,CAC7BsJ,GAAIjE,KAAKkE,SAAS,2BAClBV,KAAM,sEACJ3I,EAAKX,EAAe,CACtB+J,GAAIjE,KAAKkE,SAAS,iBAClB4B,cAAe,IAAM5C,EAAW6C,uBAChCC,eAAgB,CAAChG,KAAKkE,SAAS,4BAC/B/E,KAAM,aACN8F,aAAc,WACZpK,EAAKH,EAAe,CAAC,GAAIsF,KAAKuC,oBAAqBvC,KAAKsF,kBAAkBtC,KAElF,EACA,OAAOhE,CACT,CArM0C,CAqMxCxF,GAAwB6B,EAAc8C,EAA0B/C,EAAQsC,UAAW,KAAM,CAAC1C,GAAQ,CAClG+B,aAAc,KACdD,WAAY,KACZE,SAAU,KACVE,YAAa,OACX5B,EAAe6C,EAA0B/C,EAAQsC,UAAW,UAAW,CAACzC,GAAQ,CAClF8B,aAAc,KACdD,WAAY,KACZE,SAAU,KACVE,YAAa,OACX3B,EAAe4C,EAA0B/C,EAAQsC,UAAW,cAAe,CAACxC,GAAQ,CACtF6B,aAAc,KACdD,WAAY,KACZE,SAAU,KACVE,YAAa,OACV9B,KAAaD,GAClBK,EAAWwD,GACX,OAAOxD,CACT,EAAG"}
@@ -0,0 +1,280 @@
1
+ import type { EntitySet } from "@sap-ux/vocabularies-types";
2
+ import type { DataFieldForAction } from "@sap-ux/vocabularies-types/vocabularies/UI";
3
+ import { blockAttribute, defineBuildingBlock } from "sap/fe/core/buildingBlocks/BuildingBlockSupport";
4
+ import RuntimeBuildingBlock from "sap/fe/core/buildingBlocks/RuntimeBuildingBlock";
5
+ import CommandExecution from "sap/fe/core/controls/CommandExecution";
6
+ import { BaseAction } from "sap/fe/core/converters/controls/Common/Action";
7
+ import { Draft, UI } from "sap/fe/core/converters/helpers/BindingHelper";
8
+ import type { BaseManifestSettings } from "sap/fe/core/converters/ManifestSettings";
9
+ import { ActionType } from "sap/fe/core/converters/ManifestSettings";
10
+ import { getInvolvedDataModelObjects } from "sap/fe/core/converters/MetaModelConverter";
11
+ import {
12
+ and,
13
+ BindingToolkitExpression,
14
+ constant,
15
+ ifElse,
16
+ not,
17
+ or,
18
+ pathInModel,
19
+ resolveBindingString
20
+ } from "sap/fe/core/helpers/BindingToolkit";
21
+ import { PropertiesOf } from "sap/fe/core/helpers/ClassSupport";
22
+ import ModelHelper from "sap/fe/core/helpers/ModelHelper";
23
+ import { generate } from "sap/fe/core/helpers/StableIdHelper";
24
+ import { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
25
+ import CustomActionBlock from "sap/fe/macros/actions/CustomAction.block";
26
+ import DataFieldForActionBlock from "sap/fe/macros/actions/DataFieldForAction.block";
27
+ import MessageButton from "sap/fe/macros/messages/MessageButton";
28
+ import Button from "sap/m/Button";
29
+ import DraftIndicator from "sap/m/DraftIndicator";
30
+ import Menu from "sap/m/Menu";
31
+ import MenuButton from "sap/m/MenuButton";
32
+ import MenuItem from "sap/m/MenuItem";
33
+ import OverflowToolbar from "sap/m/OverflowToolbar";
34
+ import OverflowToolbarLayoutData from "sap/m/OverflowToolbarLayoutData";
35
+ import ToolbarSpacer from "sap/m/ToolbarSpacer";
36
+ import { PropertyBindingInfo } from "sap/ui/base/ManagedObject";
37
+ import InvisibleText from "sap/ui/core/InvisibleText";
38
+ import type View from "sap/ui/core/mvc/View";
39
+ import Context from "sap/ui/model/Context";
40
+ import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
41
+ import type ObjectPageController from "../../ObjectPageController.controller";
42
+ import * as ObjectPageTemplating from "../../ObjectPageTemplating";
43
+
44
+ @defineBuildingBlock({ name: "FooterContent", namespace: "sap.fe.templates.ObjectPage.view.fragments" })
45
+ export default class FooterContentBlock extends RuntimeBuildingBlock {
46
+ @blockAttribute({
47
+ type: "string",
48
+ required: true
49
+ })
50
+ id!: string;
51
+
52
+ @blockAttribute({ type: "array", required: true })
53
+ actions!: BaseAction[];
54
+
55
+ @blockAttribute({ type: "sap.ui.model.Context" })
56
+ contextPath?: Context;
57
+
58
+ oDataMetaModel!: ODataMetaModel;
59
+ dataViewModelPath!: DataModelObjectPath;
60
+ isDraftValidation: boolean = false;
61
+
62
+ constructor(props: PropertiesOf<FooterContentBlock>, ...others: any[]) {
63
+ super(props, ...others);
64
+ this.oDataMetaModel = this.contextPath!.getModel() as unknown as ODataMetaModel;
65
+ this.dataViewModelPath = getInvolvedDataModelObjects(this.contextPath!);
66
+ const startingEntitySet = this.dataViewModelPath.startingEntitySet;
67
+ this.isDraftValidation = !!(
68
+ ModelHelper.getDraftRoot(startingEntitySet)?.PreparationAction && startingEntitySet?.entityType.annotations.Common?.Messages
69
+ );
70
+ }
71
+
72
+ private getActionModelPath(action: BaseAction) {
73
+ const annotationPath = action.annotationPath;
74
+ if (annotationPath) {
75
+ const actionContext = this.oDataMetaModel.getContext(annotationPath);
76
+ return getInvolvedDataModelObjects(actionContext);
77
+ }
78
+ return undefined;
79
+ }
80
+
81
+ /**
82
+ * Get the visibility of the ObjectPage footer content.
83
+ *
84
+ * @function
85
+ * @name getVisibility
86
+ * @returns The binding expression
87
+ */
88
+ getVisibility() {
89
+ const _generateBindingsForActions = (actions: BaseAction[]) => {
90
+ if (actions.length) {
91
+ return actions.map((action) =>
92
+ resolveBindingString(action.visible ?? true, "boolean")
93
+ ) as BindingToolkitExpression<boolean>[];
94
+ }
95
+ return [constant(false)];
96
+ };
97
+ // Actions are coming from the converter so only determining actions and not statically hidden are listed
98
+ const determiningActions = this.actions.filter((action) => action.type === ActionType.DataFieldForAction);
99
+ const manifestActionBindings = _generateBindingsForActions(
100
+ this.actions.filter((action) => ObjectPageTemplating.isManifestAction(action))
101
+ );
102
+ const deterMiningActionBindings = _generateBindingsForActions(determiningActions);
103
+
104
+ const isNotHiddenDeterminingAction = !!determiningActions.find((action) => {
105
+ const actionContextModelPath = this.getActionModelPath(action);
106
+ return !(actionContextModelPath?.targetObject as DataFieldForAction | undefined)?.annotations?.UI?.Hidden;
107
+ });
108
+
109
+ return or(
110
+ isNotHiddenDeterminingAction,
111
+ or(...manifestActionBindings),
112
+ and(or(UI.IsEditable, or(...deterMiningActionBindings)), not(pathInModel("isCreateDialogOpen", "internal")))
113
+ );
114
+ }
115
+
116
+ getDraftIndicator() {
117
+ const entitySet = (this.dataViewModelPath.targetEntitySet || this.dataViewModelPath.startingEntitySet) as EntitySet; // startingEntitySet is used on containment scenario
118
+ const commonAnnotation = entitySet.annotations?.Common;
119
+ if (commonAnnotation?.DraftRoot || commonAnnotation?.DraftNode) {
120
+ return <DraftIndicator state="{ui>/draftStatus}" visible="{ui>/isEditable}" />;
121
+ }
122
+ return undefined;
123
+ }
124
+
125
+ private getApplyButton(view: View, emphasizedExpression: PropertyBindingInfo): Button | MenuButton {
126
+ const controller = view.getController() as ObjectPageController;
127
+ const viewData = view.getViewData() as BaseManifestSettings;
128
+ if (this.isDraftValidation && !viewData.isDesktop && !viewData.fclEnabled) {
129
+ return (
130
+ <MenuButton
131
+ text="{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}"
132
+ defaultAction={() => controller._applyDocument(view.getBindingContext())}
133
+ useDefaultActionOnly="true"
134
+ buttonMode="Split"
135
+ type={emphasizedExpression}
136
+ visible={UI.IsEditable}
137
+ >
138
+ <Menu>
139
+ <MenuItem text="{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}" press={() => controller._validateDocument()} />
140
+ </Menu>
141
+ </MenuButton>
142
+ );
143
+ }
144
+ return (
145
+ <Button
146
+ id={this.createId("StandardAction::Apply")}
147
+ text="{sap.fe.i18n>T_COMMON_OBJECT_PAGE_APPLY_DRAFT}"
148
+ type={emphasizedExpression}
149
+ enabled={true}
150
+ press={() => controller._applyDocument(view.getBindingContext())}
151
+ visible="{ui>/isEditable}"
152
+ />
153
+ );
154
+ }
155
+
156
+ private getPrimary(view: View, emphasizedExpression: PropertyBindingInfo): Button | MenuButton {
157
+ const viewData = view.getViewData() as BaseManifestSettings;
158
+ const controller = view.getController() as ObjectPageController;
159
+ if (this.isDraftValidation && !viewData.isDesktop) {
160
+ return (
161
+ <MenuButton
162
+ text={this.getTextSaveButton()}
163
+ defaultAction={CommandExecution.executeCommand("Save")}
164
+ useDefaultActionOnly="true"
165
+ buttonMode="Split"
166
+ type={emphasizedExpression}
167
+ visible={UI.IsEditable}
168
+ >
169
+ <Menu>
170
+ <MenuItem text="{sap.fe.i18n>T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT}" press={() => controller._validateDocument()} />
171
+ </Menu>
172
+ </MenuButton>
173
+ );
174
+ }
175
+ return (
176
+ <Button
177
+ id={this.createId("StandardAction::Save")}
178
+ text={this.getTextSaveButton()}
179
+ type={emphasizedExpression}
180
+ visible={UI.IsEditable}
181
+ enabled={true}
182
+ press={CommandExecution.executeCommand("Save")}
183
+ />
184
+ );
185
+ }
186
+
187
+ private getTextSaveButton() {
188
+ const saveButtonText = this.getTranslatedText("T_OP_OBJECT_PAGE_SAVE");
189
+ const createButtonText = this.getTranslatedText("T_OP_OBJECT_PAGE_CREATE");
190
+ // If we're in sticky mode -> the ui is in create mode, show Create, else show Save
191
+ // If not -> we're in draft AND the draft is a new object (!IsActiveEntity && !HasActiveEntity), show create, else show save
192
+ return ifElse(
193
+ ifElse(
194
+ (this.dataViewModelPath.startingEntitySet as EntitySet).annotations.Session?.StickySessionSupported !== undefined,
195
+ UI.IsCreateMode,
196
+ Draft.IsNewObject
197
+ ),
198
+ createButtonText,
199
+ saveButtonText
200
+ );
201
+ }
202
+
203
+ private getCancelButton(): Button {
204
+ return (
205
+ <Button
206
+ id={this.createId("StandardAction::Cancel")}
207
+ text={
208
+ ModelHelper.isDraftRoot(this.dataViewModelPath.targetEntitySet)
209
+ ? "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISCARD_DRAFT}"
210
+ : "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_CANCEL}"
211
+ }
212
+ press={CommandExecution.executeCommand("Cancel")}
213
+ visible={UI.IsEditable}
214
+ ariaHasPopup="Dialog"
215
+ enabled={true}
216
+ layoutData={<OverflowToolbarLayoutData priority="NeverOverflow" />}
217
+ />
218
+ );
219
+ }
220
+
221
+ private getDataFieldForActionButton(action: BaseAction): Button | undefined {
222
+ if (action.annotationPath) {
223
+ return (
224
+ <DataFieldForActionBlock
225
+ id={generate([this.id, this.getActionModelPath(action)])}
226
+ action={action}
227
+ contextPath={this.contextPath}
228
+ />
229
+ );
230
+ }
231
+ }
232
+
233
+ private getManifestButton(action: BaseAction): Button | undefined {
234
+ if (ObjectPageTemplating.isManifestAction(action)) {
235
+ return <CustomActionBlock id={generate(["fe", "FooterBar", action.id])} action={action} />;
236
+ }
237
+ }
238
+
239
+ getActionControls(view: View) {
240
+ const emphasizedButtonExpression = ObjectPageTemplating.buildEmphasizedButtonExpression(this.dataViewModelPath);
241
+ return this.actions
242
+ .map((action) => {
243
+ switch (action.type) {
244
+ case ActionType.DefaultApply:
245
+ return this.getApplyButton(view, emphasizedButtonExpression);
246
+ case ActionType.DataFieldForAction:
247
+ return this.getDataFieldForActionButton(action);
248
+ case ActionType.Primary:
249
+ return this.getPrimary(view, emphasizedButtonExpression);
250
+ case ActionType.Secondary:
251
+ return this.getCancelButton();
252
+ default:
253
+ return this.getManifestButton(action);
254
+ }
255
+ })
256
+ .filter((action): action is Button => !!action);
257
+ }
258
+
259
+ getContent(view: View) {
260
+ const controller = view.getController() as ObjectPageController;
261
+ return (
262
+ <OverflowToolbar id={this.id} asyncMode={true} visible={this.getVisibility()}>
263
+ <InvisibleText
264
+ id={this.createId("MessageButton::AriaText")}
265
+ text="{sap.fe.i18n>C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_BUTTON_ARIA_TEXT}"
266
+ />
267
+ <MessageButton
268
+ id={this.createId("MessageButton")}
269
+ messageChange={() => controller._getFooterVisibility()}
270
+ ariaLabelledBy={[this.createId("MessageButton::AriaText") as string]}
271
+ type="Emphasized"
272
+ ariaHasPopup="Dialog"
273
+ />
274
+ <ToolbarSpacer />
275
+ {this.getDraftIndicator()}
276
+ {this.getActionControls(view)}
277
+ </OverflowToolbar>
278
+ );
279
+ }
280
+ }