@sapui5/sap.fe.templates 1.102.3 → 1.105.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -5
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/Component.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
- package/src/sap/fe/templates/Feedback.js +18 -18
- package/src/sap/fe/templates/Feedback.ts +12 -12
- package/src/sap/fe/templates/ListComponent.js +2 -2
- package/src/sap/fe/templates/ListReport/Component.js +2 -2
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +13 -14
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +11 -13
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +12 -74
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +95 -392
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +99 -367
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +471 -0
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +347 -0
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +16 -9
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +17 -11
- package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -4
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +6 -7
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +22 -31
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +33 -37
- package/src/sap/fe/templates/ListReport/view/fragments/Chart.fragment.xml +3 -0
- package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +11 -5
- package/src/sap/fe/templates/{controls → ListReport/view/fragments}/MacroChart.fragment.xml +3 -2
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +20 -4
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +80 -48
- package/src/sap/fe/templates/{controls → ListReport/view/fragments}/Table.fragment.xml +6 -5
- package/src/sap/fe/templates/ListReport/view/fragments/VariantManagement.fragment.xml +31 -0
- package/src/sap/fe/templates/ObjectPage/Component.js +2 -2
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +21 -20
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +23 -22
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +52 -146
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +303 -268
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +191 -242
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +72 -71
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +81 -88
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +178 -0
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +132 -0
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +2 -2
- package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +2 -2
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +3 -4
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +1 -1
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +6 -6
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +67 -41
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +44 -56
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +3 -10
- package/src/sap/fe/templates/ObjectPage/view/fragments/Chart.fragment.xml +13 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +15 -5
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -14
- package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +2 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +3 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +22 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +8 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +12 -50
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +6 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +23 -0
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +26 -29
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +30 -33
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +4 -5
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +141 -53
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
- package/src/sap/fe/templates/TableScroller.js +3 -3
- package/src/sap/fe/templates/TableScroller.ts +2 -2
- package/src/sap/fe/templates/library.js +7 -3
- package/src/sap/fe/templates/library.ts +5 -0
- package/src/sap/fe/templates/messagebundle.properties +7 -22
- package/src/sap/fe/templates/messagebundle_ar.properties +3 -12
- package/src/sap/fe/templates/messagebundle_bg.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ca.properties +2 -11
- package/src/sap/fe/templates/messagebundle_cs.properties +3 -12
- package/src/sap/fe/templates/messagebundle_cy.properties +2 -11
- package/src/sap/fe/templates/messagebundle_da.properties +3 -12
- package/src/sap/fe/templates/messagebundle_de.properties +2 -11
- package/src/sap/fe/templates/messagebundle_el.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_GB.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -11
- package/src/sap/fe/templates/messagebundle_es.properties +0 -9
- package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -11
- package/src/sap/fe/templates/messagebundle_et.properties +0 -9
- package/src/sap/fe/templates/messagebundle_fi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_fr.properties +3 -12
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hr.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hu.properties +2 -11
- package/src/sap/fe/templates/messagebundle_id.properties +2 -11
- package/src/sap/fe/templates/messagebundle_it.properties +2 -11
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ja.properties +2 -11
- package/src/sap/fe/templates/messagebundle_kk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ko.properties +2 -11
- package/src/sap/fe/templates/messagebundle_lt.properties +2 -11
- package/src/sap/fe/templates/messagebundle_lv.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ms.properties +2 -11
- package/src/sap/fe/templates/messagebundle_nl.properties +2 -11
- package/src/sap/fe/templates/messagebundle_no.properties +0 -9
- package/src/sap/fe/templates/messagebundle_pl.properties +0 -9
- package/src/sap/fe/templates/messagebundle_pt.properties +3 -12
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ro.properties +0 -9
- package/src/sap/fe/templates/messagebundle_ru.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sh.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sl.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sv.properties +2 -11
- package/src/sap/fe/templates/messagebundle_th.properties +1 -10
- package/src/sap/fe/templates/messagebundle_tr.properties +2 -11
- package/src/sap/fe/templates/messagebundle_uk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_vi.properties +0 -9
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -9
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +2 -11
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleModeOld.fragment.xml +0 -50
- package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +0 -27
- package/src/sap/fe/templates/controls/Chart.fragment.xml +0 -25
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
// Formatters for the Object Page
|
|
2
|
-
import {
|
|
3
|
-
import { DataFieldTypes } from "@sap-ux/vocabularies-types/
|
|
4
|
-
import
|
|
2
|
+
import { EntitySet } from "@sap-ux/vocabularies-types";
|
|
3
|
+
import type { DataField, DataFieldTypes, HeaderInfoType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
4
|
+
import { UIAnnotationTerms, UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
5
|
+
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
5
6
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
6
|
-
import { ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
|
|
7
|
+
import type { ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
|
|
7
8
|
import { Draft, Entity, UI } from "sap/fe/core/converters/helpers/BindingHelper";
|
|
8
|
-
import { ManifestAction } from "sap/fe/core/converters/ManifestSettings";
|
|
9
|
+
import type { ManifestAction } from "sap/fe/core/converters/ManifestSettings";
|
|
10
|
+
import type { BindingToolkitExpression, CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
9
11
|
import {
|
|
10
12
|
and,
|
|
11
|
-
|
|
12
|
-
BindingExpression,
|
|
13
|
-
compileBinding,
|
|
13
|
+
compileExpression,
|
|
14
14
|
concat,
|
|
15
|
-
|
|
15
|
+
getExpressionFromAnnotation,
|
|
16
16
|
ifElse,
|
|
17
17
|
isEmpty,
|
|
18
18
|
or,
|
|
19
19
|
resolveBindingString
|
|
20
|
-
} from "sap/fe/core/helpers/
|
|
21
|
-
import { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
20
|
+
} from "sap/fe/core/helpers/BindingToolkit";
|
|
21
|
+
import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
22
22
|
import CommonHelper from "sap/fe/macros/CommonHelper";
|
|
23
23
|
import { addTextArrangementToBindingExpression, formatValueRecursively } from "sap/fe/macros/field/FieldTemplating";
|
|
24
24
|
import mLibrary from "sap/m/library";
|
|
25
25
|
import ManagedObject from "sap/ui/base/ManagedObject";
|
|
26
26
|
import ODataModelAnnotationHelper from "sap/ui/model/odata/v4/AnnotationHelper";
|
|
27
|
-
import Context from "sap/ui/model/odata/v4/Context";
|
|
27
|
+
import type Context from "sap/ui/model/odata/v4/Context";
|
|
28
|
+
|
|
28
29
|
const ButtonType = mLibrary.ButtonType;
|
|
29
30
|
|
|
30
31
|
type ViewData = {
|
|
@@ -48,6 +49,7 @@ type ViewData = {
|
|
|
48
49
|
// ```
|
|
49
50
|
/**
|
|
50
51
|
* Compute the title for the object page.
|
|
52
|
+
*
|
|
51
53
|
* @param oHeaderInfo The @UI.HeaderInfo annotation content
|
|
52
54
|
* @param oViewData The view data object we're currently on
|
|
53
55
|
* @param fullContextPath The full context path used to reach that object page
|
|
@@ -59,7 +61,7 @@ export const getExpressionForTitle = function (
|
|
|
59
61
|
oViewData: ViewData,
|
|
60
62
|
fullContextPath: DataModelObjectPath,
|
|
61
63
|
oDraftRoot: Object | undefined
|
|
62
|
-
):
|
|
64
|
+
): CompiledBindingToolkitExpression {
|
|
63
65
|
const titleNoHeaderInfo = CommonUtils.getTranslatedText("T_NEW_OBJECT", oViewData.resourceBundle, undefined, oViewData.entitySet);
|
|
64
66
|
|
|
65
67
|
const titleWithHeaderInfo = CommonUtils.getTranslatedText(
|
|
@@ -76,7 +78,7 @@ export const getExpressionForTitle = function (
|
|
|
76
78
|
? CommonUtils.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO", oViewData.resourceBundle)
|
|
77
79
|
: "";
|
|
78
80
|
|
|
79
|
-
let titleValueExpression =
|
|
81
|
+
let titleValueExpression = getExpressionFromAnnotation((oHeaderInfo?.Title as DataFieldTypes)?.Value);
|
|
80
82
|
if ((oHeaderInfo?.Title as DataFieldTypes)?.Value?.$target?.annotations?.Common?.Text?.annotations?.UI?.TextArrangement) {
|
|
81
83
|
// In case an explicit text arrangement was set we make use of it in the description as well
|
|
82
84
|
titleValueExpression = addTextArrangementToBindingExpression(titleValueExpression, fullContextPath);
|
|
@@ -86,11 +88,11 @@ export const getExpressionForTitle = function (
|
|
|
86
88
|
|
|
87
89
|
// If there is a TypeName defined, show the default title 'New + TypeName', otherwise show the custom title or the default 'New object'
|
|
88
90
|
const createModeTitle = oHeaderInfo?.TypeName
|
|
89
|
-
? concat(titleWithHeaderInfo, ": ",
|
|
91
|
+
? concat(titleWithHeaderInfo, ": ", getExpressionFromAnnotation(oHeaderInfo.TypeName.toString()))
|
|
90
92
|
: titleNoHeaderInfo;
|
|
91
93
|
const activeExpression = oDraftRoot ? Entity.IsActive : true;
|
|
92
94
|
|
|
93
|
-
return
|
|
95
|
+
return compileExpression(
|
|
94
96
|
ifElse(
|
|
95
97
|
// If Create Mode && Empty expression
|
|
96
98
|
and(or(UI.IsCreateModeSticky, UI.IsCreateMode), titleValueExpression && isEmpty(titleValueExpression)),
|
|
@@ -116,14 +118,14 @@ export const getExpressionForTitle = function (
|
|
|
116
118
|
export const getExpressionForDescription = function (
|
|
117
119
|
oHeaderInfo: HeaderInfoType | undefined,
|
|
118
120
|
fullContextPath: DataModelObjectPath
|
|
119
|
-
):
|
|
120
|
-
let
|
|
121
|
+
): CompiledBindingToolkitExpression {
|
|
122
|
+
let pathInModel = getExpressionFromAnnotation((oHeaderInfo?.Description as DataFieldTypes)?.Value);
|
|
121
123
|
if ((oHeaderInfo?.Description as DataFieldTypes)?.Value?.$target?.annotations?.Common?.Text?.annotations?.UI?.TextArrangement) {
|
|
122
124
|
// In case an explicit text arrangement was set we make use of it in the description as well
|
|
123
|
-
|
|
125
|
+
pathInModel = addTextArrangementToBindingExpression(pathInModel, fullContextPath);
|
|
124
126
|
}
|
|
125
127
|
|
|
126
|
-
return
|
|
128
|
+
return compileExpression(formatValueRecursively(pathInModel, fullContextPath));
|
|
127
129
|
};
|
|
128
130
|
|
|
129
131
|
/**
|
|
@@ -133,19 +135,22 @@ export const getExpressionForDescription = function (
|
|
|
133
135
|
* @param fullContextPath The path used up until here
|
|
134
136
|
* @returns The binding expression that shows the right save button text
|
|
135
137
|
*/
|
|
136
|
-
export const getExpressionForSaveButton = function (
|
|
138
|
+
export const getExpressionForSaveButton = function (
|
|
139
|
+
oViewData: ViewData,
|
|
140
|
+
fullContextPath: DataModelObjectPath
|
|
141
|
+
): CompiledBindingToolkitExpression {
|
|
137
142
|
const saveButtonText = CommonUtils.getTranslatedText("T_OP_OBJECT_PAGE_SAVE", oViewData.resourceBundle);
|
|
138
143
|
const createButtonText = CommonUtils.getTranslatedText("T_OP_OBJECT_PAGE_CREATE", oViewData.resourceBundle);
|
|
139
144
|
let saveExpression;
|
|
140
145
|
|
|
141
|
-
if (fullContextPath.startingEntitySet.annotations.Session?.StickySessionSupported) {
|
|
146
|
+
if ((fullContextPath.startingEntitySet as EntitySet).annotations.Session?.StickySessionSupported) {
|
|
142
147
|
// If we're in sticky mode AND the ui is in create mode, show Create, else show Save
|
|
143
148
|
saveExpression = ifElse(UI.IsCreateModeSticky, createButtonText, saveButtonText);
|
|
144
149
|
} else {
|
|
145
150
|
// If we're in draft AND the draft is a new object (!IsActiveEntity && !HasActiveEntity), show create, else show save
|
|
146
151
|
saveExpression = ifElse(Draft.IsNewObject, createButtonText, saveButtonText);
|
|
147
152
|
}
|
|
148
|
-
return
|
|
153
|
+
return compileExpression(saveExpression);
|
|
149
154
|
};
|
|
150
155
|
|
|
151
156
|
/**
|
|
@@ -153,13 +158,16 @@ export const getExpressionForSaveButton = function (oViewData: ViewData, fullCon
|
|
|
153
158
|
*
|
|
154
159
|
* @function
|
|
155
160
|
* @name getFooterVisible
|
|
156
|
-
* @param
|
|
157
|
-
* @param
|
|
158
|
-
* @returns
|
|
161
|
+
* @param footerActions The footer action object coming from the converter
|
|
162
|
+
* @param dataFields Data field array for normal footer visibility processing
|
|
163
|
+
* @returns `true` if any action is true, otherwise compiled Binding or `false`
|
|
159
164
|
*/
|
|
160
|
-
export const getFooterVisible = function (
|
|
165
|
+
export const getFooterVisible = function (
|
|
166
|
+
footerActions: ConverterAction[],
|
|
167
|
+
dataFields: DataField[]
|
|
168
|
+
): boolean | CompiledBindingToolkitExpression {
|
|
161
169
|
const manifestActions = footerActions.filter((action) => isManifestAction(action)) as ManifestAction[];
|
|
162
|
-
let customActionVisibility:
|
|
170
|
+
let customActionVisibility: BindingToolkitExpression<boolean>;
|
|
163
171
|
if (manifestActions.length) {
|
|
164
172
|
// If we have manifest actions
|
|
165
173
|
const customActionIndividualVisibility = manifestActions.map((action) => {
|
|
@@ -170,7 +178,7 @@ export const getFooterVisible = function (footerActions: ConverterAction[], data
|
|
|
170
178
|
// and then the binding of all annotation actions inside the footer ...
|
|
171
179
|
const annotationActionVisibility = getDataFieldBasedFooterVisibility(dataFields, true);
|
|
172
180
|
// finally, return everything.
|
|
173
|
-
return
|
|
181
|
+
return compileExpression(or(customActionVisibility, resolveBindingString<boolean>(annotationActionVisibility, "boolean")));
|
|
174
182
|
}
|
|
175
183
|
return getDataFieldBasedFooterVisibility(dataFields, true);
|
|
176
184
|
};
|
|
@@ -182,12 +190,12 @@ export const getFooterVisible = function (footerActions: ConverterAction[], data
|
|
|
182
190
|
* @static
|
|
183
191
|
* @name sap.fe.templates.ObjectPage.ObjectPageTemplating.getDataFieldBasedFooterVisibility
|
|
184
192
|
* @memberof sap.fe.templates.ObjectPage.ObjectPageTemplating
|
|
185
|
-
* @param
|
|
186
|
-
* @param
|
|
187
|
-
* @returns
|
|
193
|
+
* @param aDataFields Array of DataFields in the identification
|
|
194
|
+
* @param bConsiderEditable Whether the edit mode binding is required or not
|
|
195
|
+
* @returns An expression if all the actions are ui.hidden, true otherwise
|
|
188
196
|
* @private
|
|
189
197
|
* @ui5-restricted
|
|
190
|
-
|
|
198
|
+
*/
|
|
191
199
|
export const getDataFieldBasedFooterVisibility = function (aDataFields: any[], bConsiderEditable: boolean) {
|
|
192
200
|
let sHiddenExpression = "";
|
|
193
201
|
let sSemiHiddenExpression;
|
|
@@ -235,8 +243,8 @@ export const getDataFieldBasedFooterVisibility = function (aDataFields: any[], b
|
|
|
235
243
|
*
|
|
236
244
|
* @function
|
|
237
245
|
* @name isManifestActionVisible
|
|
238
|
-
* @param
|
|
239
|
-
* @returns
|
|
246
|
+
* @param oAction The action object
|
|
247
|
+
* @returns `true` if action is coming from manifest, `false` otherwise
|
|
240
248
|
*/
|
|
241
249
|
export const isManifestAction = function (oAction: any) {
|
|
242
250
|
const aActions = [
|
|
@@ -260,11 +268,11 @@ export const isManifestAction = function (oAction: any) {
|
|
|
260
268
|
* @static
|
|
261
269
|
* @name sap.fe.templates.ObjectPage.ObjectPageTemplating.buildEmphasizedButtonExpression
|
|
262
270
|
* @memberof sap.fe.templates.ObjectPage.ObjectPageTemplating
|
|
263
|
-
* @param
|
|
264
|
-
* @returns
|
|
271
|
+
* @param aIdentification Array of all the DataFields in Identification
|
|
272
|
+
* @returns An expression to deduce if button type is Default or Emphasized
|
|
265
273
|
* @private
|
|
266
274
|
* @ui5-restricted
|
|
267
|
-
|
|
275
|
+
*/
|
|
268
276
|
export const buildEmphasizedButtonExpression = function (aIdentification?: any[]) {
|
|
269
277
|
if (!aIdentification) {
|
|
270
278
|
return ButtonType.Emphasized;
|
|
@@ -351,8 +359,8 @@ export const getElementBinding = function (sPath: any) {
|
|
|
351
359
|
/**
|
|
352
360
|
* Function to check if draft pattern is supported.
|
|
353
361
|
*
|
|
354
|
-
* @param
|
|
355
|
-
* @returns
|
|
362
|
+
* @param oAnnotations Annotations of the current entity set.
|
|
363
|
+
* @returns Returns the Boolean value based on draft state
|
|
356
364
|
*/
|
|
357
365
|
export const checkDraftState = function (oAnnotations: any) {
|
|
358
366
|
if (
|
|
@@ -368,8 +376,8 @@ export const checkDraftState = function (oAnnotations: any) {
|
|
|
368
376
|
/**
|
|
369
377
|
* Function to get the visibility for the SwitchToActive button in the object page or subobject page.
|
|
370
378
|
*
|
|
371
|
-
* @param
|
|
372
|
-
* @returns
|
|
379
|
+
* @param oAnnotations Annotations of the current entity set.
|
|
380
|
+
* @returns Returns expression binding or Boolean value based on the draft state
|
|
373
381
|
*/
|
|
374
382
|
export const getSwitchToActiveVisibility = function (oAnnotations: any): any {
|
|
375
383
|
if (checkDraftState(oAnnotations)) {
|
|
@@ -382,8 +390,8 @@ export const getSwitchToActiveVisibility = function (oAnnotations: any): any {
|
|
|
382
390
|
/**
|
|
383
391
|
* Function to get the visibility for the SwitchToDraft button in the object page or subobject page.
|
|
384
392
|
*
|
|
385
|
-
* @param
|
|
386
|
-
* @returns
|
|
393
|
+
* @param oAnnotations Annotations of the current entity set.
|
|
394
|
+
* @returns Returns expression binding or Boolean value based on the draft state
|
|
387
395
|
*/
|
|
388
396
|
export const getSwitchToDraftVisibility = function (oAnnotations: any): any {
|
|
389
397
|
if (checkDraftState(oAnnotations)) {
|
|
@@ -396,8 +404,8 @@ export const getSwitchToDraftVisibility = function (oAnnotations: any): any {
|
|
|
396
404
|
/**
|
|
397
405
|
* Function to get the visibility for the SwitchDraftAndActive button in the object page or subobject page.
|
|
398
406
|
*
|
|
399
|
-
* @param
|
|
400
|
-
* @returns
|
|
407
|
+
* @param oAnnotations Annotations of the current entity set.
|
|
408
|
+
* @returns Returns expression binding or Boolean value based on the draft state
|
|
401
409
|
*/
|
|
402
410
|
export const getSwitchDraftAndActiveVisibility = function (oAnnotations: any): any {
|
|
403
411
|
if (checkDraftState(oAnnotations)) {
|
|
@@ -410,9 +418,9 @@ export const getSwitchDraftAndActiveVisibility = function (oAnnotations: any): a
|
|
|
410
418
|
/**
|
|
411
419
|
* Function to find an action from the array of header actions in the converter context.
|
|
412
420
|
*
|
|
413
|
-
* @param
|
|
414
|
-
* @param
|
|
415
|
-
* @returns
|
|
421
|
+
* @param aConverterContextHeaderActions Array of 'header' actions on the object page.
|
|
422
|
+
* @param sActionType The action type
|
|
423
|
+
* @returns The action with the matching action type
|
|
416
424
|
* @private
|
|
417
425
|
*/
|
|
418
426
|
export const _findAction = function (aConverterContextHeaderActions: any[], sActionType: string) {
|
|
@@ -428,8 +436,8 @@ export const _findAction = function (aConverterContextHeaderActions: any[], sAct
|
|
|
428
436
|
/**
|
|
429
437
|
* Function to format the 'enabled' property for the Delete button on the object page or subobject page in case of a Command Execution.
|
|
430
438
|
*
|
|
431
|
-
* @param
|
|
432
|
-
* @returns
|
|
439
|
+
* @param aConverterContextHeaderActions Array of header actions on the object page
|
|
440
|
+
* @returns Returns expression binding or Boolean value from the converter output
|
|
433
441
|
*/
|
|
434
442
|
export const getDeleteCommandExecutionEnabled = function (aConverterContextHeaderActions: any[]) {
|
|
435
443
|
const oDeleteAction = _findAction(aConverterContextHeaderActions, "Secondary");
|
|
@@ -439,8 +447,8 @@ export const getDeleteCommandExecutionEnabled = function (aConverterContextHeade
|
|
|
439
447
|
/**
|
|
440
448
|
* Function to format the 'visible' property for the Delete button on the object page or subobject page in case of a Command Execution.
|
|
441
449
|
*
|
|
442
|
-
* @param
|
|
443
|
-
* @returns
|
|
450
|
+
* @param aConverterContextHeaderActions Array of header actions on the object page
|
|
451
|
+
* @returns Returns expression binding or Boolean value from the converter output
|
|
444
452
|
*/
|
|
445
453
|
export const getDeleteCommandExecutionVisible = function (aConverterContextHeaderActions: any[]) {
|
|
446
454
|
const oDeleteAction = _findAction(aConverterContextHeaderActions, "Secondary");
|
|
@@ -450,8 +458,8 @@ export const getDeleteCommandExecutionVisible = function (aConverterContextHeade
|
|
|
450
458
|
/**
|
|
451
459
|
* Function to format the 'visible' property for the Edit button on the object page or subobject page in case of a Command Execution.
|
|
452
460
|
*
|
|
453
|
-
* @param
|
|
454
|
-
* @returns
|
|
461
|
+
* @param aConverterContextHeaderActions Array of header actions on the object page
|
|
462
|
+
* @returns Returns expression binding or Boolean value from the converter output
|
|
455
463
|
*/
|
|
456
464
|
export const getEditCommandExecutionVisible = function (aConverterContextHeaderActions: any[]) {
|
|
457
465
|
const oEditAction = _findAction(aConverterContextHeaderActions, "Primary");
|
|
@@ -461,8 +469,8 @@ export const getEditCommandExecutionVisible = function (aConverterContextHeaderA
|
|
|
461
469
|
/**
|
|
462
470
|
* Function to format the 'enabled' property for the Edit button on the object page or subobject page in case of a Command Execution.
|
|
463
471
|
*
|
|
464
|
-
* @param
|
|
465
|
-
* @returns
|
|
472
|
+
* @param aConverterContextHeaderActions Array of header actions on the object page
|
|
473
|
+
* @returns Returns expression binding or Boolean value from the converter output
|
|
466
474
|
*/
|
|
467
475
|
export const getEditCommandExecutionEnabled = function (aConverterContextHeaderActions: any[]) {
|
|
468
476
|
const oEditAction = _findAction(aConverterContextHeaderActions, "Primary");
|
|
@@ -472,21 +480,21 @@ export const getEditCommandExecutionEnabled = function (aConverterContextHeaderA
|
|
|
472
480
|
/**
|
|
473
481
|
* Function to get the EditAction from the Entityset based on Draft or sticky based application.
|
|
474
482
|
*
|
|
475
|
-
* @param
|
|
476
|
-
* @returns
|
|
483
|
+
* @param [oEntitySet] The value from the expression.
|
|
484
|
+
* @returns Returns expression binding or boolean value based on vRawValue & oDraftNode
|
|
477
485
|
*/
|
|
478
486
|
export const getEditAction = function (oEntitySet: Context) {
|
|
479
487
|
const sPath = oEntitySet.getPath(),
|
|
480
|
-
oAnnotations = oEntitySet.getObject(sPath
|
|
488
|
+
oAnnotations = oEntitySet.getObject(`${sPath}@`);
|
|
481
489
|
const bDraftRoot = oAnnotations.hasOwnProperty("@com.sap.vocabularies.Common.v1.DraftRoot");
|
|
482
490
|
const bStickySession = oAnnotations.hasOwnProperty("@com.sap.vocabularies.Session.v1.StickySessionSupported");
|
|
483
491
|
let sActionName;
|
|
484
492
|
if (bDraftRoot) {
|
|
485
|
-
sActionName = oEntitySet.getObject(sPath
|
|
493
|
+
sActionName = oEntitySet.getObject(`${sPath}@com.sap.vocabularies.Common.v1.DraftRoot/EditAction`);
|
|
486
494
|
} else if (bStickySession) {
|
|
487
|
-
sActionName = oEntitySet.getObject(sPath
|
|
495
|
+
sActionName = oEntitySet.getObject(`${sPath}@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction`);
|
|
488
496
|
}
|
|
489
|
-
return !sActionName ? sActionName : sPath
|
|
497
|
+
return !sActionName ? sActionName : `${sPath}/${sActionName}`;
|
|
490
498
|
};
|
|
491
499
|
|
|
492
500
|
export const isReadOnlyFromStaticAnnotations = function (oAnnotations: any, oFieldControl: any) {
|
|
@@ -519,14 +527,14 @@ export const readOnlyExpressionFromDynamicAnnotations = function (oFieldControl:
|
|
|
519
527
|
if (sIsFieldControlPathReadOnly) {
|
|
520
528
|
return "{= " + sIsFieldControlPathReadOnly + "? false : true }";
|
|
521
529
|
} else {
|
|
522
|
-
return;
|
|
530
|
+
return undefined;
|
|
523
531
|
}
|
|
524
532
|
};
|
|
525
533
|
|
|
526
534
|
/*
|
|
527
535
|
* Function to get the expression for chart Title Press
|
|
528
536
|
*
|
|
529
|
-
* @
|
|
537
|
+
* @functionw
|
|
530
538
|
* @param {oConfiguration} [oConfigurations] control configuration from manifest
|
|
531
539
|
* @param {oManifest} [oManifest] Outbounds from manifest
|
|
532
540
|
* returns {String} [sCollectionName] Collection Name of the Micro Chart
|
|
@@ -623,8 +631,8 @@ export const getBindingWithGroupIdFromConfig = function (oConfigurations: any, s
|
|
|
623
631
|
/**
|
|
624
632
|
* Method to check whether a FieldGroup consists of only 1 DataField with MultiLine Text annotation.
|
|
625
633
|
*
|
|
626
|
-
* @param
|
|
627
|
-
* @returns
|
|
634
|
+
* @param aFormElements A collection of form elements used in the current field group
|
|
635
|
+
* @returns Returns true if only 1 data field with Multiline Text annotation exists.
|
|
628
636
|
*/
|
|
629
637
|
export const doesFieldGroupContainOnlyOneMultiLineDataField = function (aFormElements: any[]) {
|
|
630
638
|
return aFormElements && aFormElements.length === 1 && !!aFormElements[0].isValueMultilineText;
|
|
@@ -743,9 +751,7 @@ export const getPressExpressionForEdit = function (oDataField: any, sEntitySetNa
|
|
|
743
751
|
label: CommonHelper.addSingleQuotes(oDataField && oDataField.Label, true),
|
|
744
752
|
isNavigable: oHeaderAction && oHeaderAction.isNavigable,
|
|
745
753
|
defaultValuesExtensionFunction:
|
|
746
|
-
oHeaderAction && oHeaderAction.defaultValuesExtensionFunction
|
|
747
|
-
? "'" + oHeaderAction.defaultValuesExtensionFunction + "'"
|
|
748
|
-
: undefined
|
|
754
|
+
oHeaderAction && oHeaderAction.defaultValuesExtensionFunction ? `'${oHeaderAction.defaultValuesExtensionFunction}'` : undefined
|
|
749
755
|
};
|
|
750
756
|
return CommonHelper.generateFunction(".handlers.onCallAction", "${$view>/}", sEditableContexts, CommonHelper.objectToString(oParams));
|
|
751
757
|
};
|
|
@@ -771,9 +777,7 @@ export const getPressExpressionForFooterAnnotationAction = function (oDataField:
|
|
|
771
777
|
label: CommonHelper.addSingleQuotes(oDataField && oDataField.Label, true),
|
|
772
778
|
isNavigable: oHeaderAction && oHeaderAction.isNavigable,
|
|
773
779
|
defaultValuesExtensionFunction:
|
|
774
|
-
oHeaderAction && oHeaderAction.defaultValuesExtensionFunction
|
|
775
|
-
? "'" + oHeaderAction.defaultValuesExtensionFunction + "'"
|
|
776
|
-
: undefined
|
|
780
|
+
oHeaderAction && oHeaderAction.defaultValuesExtensionFunction ? `'${oHeaderAction.defaultValuesExtensionFunction}'` : undefined
|
|
777
781
|
};
|
|
778
782
|
return CommonHelper.generateFunction(".handlers.onCallAction", "${$view>/}", sActionContexts, CommonHelper.objectToString(oParams));
|
|
779
783
|
};
|
|
@@ -818,20 +822,9 @@ export const getPressExpressionForLink = function (oConfiguration: any, oManifes
|
|
|
818
822
|
}
|
|
819
823
|
};
|
|
820
824
|
|
|
821
|
-
export const
|
|
822
|
-
if (
|
|
823
|
-
|
|
824
|
-
const sExpressionResult = sSubSectionvisible.substring(sSubSectionvisible.indexOf("{=") + 2, sSubSectionvisible.lastIndexOf("}"));
|
|
825
|
-
return (
|
|
826
|
-
"{= (" +
|
|
827
|
-
sExpressionResult +
|
|
828
|
-
") && ('" +
|
|
829
|
-
sSubSectiontitle +
|
|
830
|
-
"' !=='undefined') && (" +
|
|
831
|
-
sSubSectionshowTitle +
|
|
832
|
-
" ? true : false) }"
|
|
833
|
-
);
|
|
834
|
-
} else {
|
|
835
|
-
return sSubSectionvisible && sSubSectiontitle !== "undefined" && (sSubSectionshowTitle ? "true" : "false");
|
|
825
|
+
export const getHeaderFormHboxRenderType = function (dataField: DataModelObjectPath): string | undefined {
|
|
826
|
+
if (dataField?.targetObject?.$Type === UIAnnotationTypes.DataFieldForAnnotation) {
|
|
827
|
+
return undefined;
|
|
836
828
|
}
|
|
829
|
+
return "Bare";
|
|
837
830
|
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/BindingHelper", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ClassSupport", "sap/fe/templates/ObjectPage/ObjectPageTemplating", "sap/m/Button", "sap/m/ResponsivePopover", "sap/m/SelectList", "sap/ui/core/InvisibleText", "sap/ui/core/Item", "sap/fe/core/jsx-runtime/jsx", "sap/fe/core/jsx-runtime/jsxs", "sap/fe/core/jsx-runtime/Fragment"], function (BuildingBlock, CommonUtils, BindingHelper, BindingToolkit, ClassSupport, ObjectPageTemplating, Button, ResponsivePopover, SelectList, InvisibleText, Item, _jsx, _jsxs, _Fragment) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;
|
|
9
|
+
|
|
10
|
+
var _exports = {};
|
|
11
|
+
var getSwitchDraftAndActiveVisibility = ObjectPageTemplating.getSwitchDraftAndActiveVisibility;
|
|
12
|
+
var defineReference = ClassSupport.defineReference;
|
|
13
|
+
var pathInModel = BindingToolkit.pathInModel;
|
|
14
|
+
var not = BindingToolkit.not;
|
|
15
|
+
var ifElse = BindingToolkit.ifElse;
|
|
16
|
+
var and = BindingToolkit.and;
|
|
17
|
+
var UI = BindingHelper.UI;
|
|
18
|
+
var Entity = BindingHelper.Entity;
|
|
19
|
+
var xmlAttribute = BuildingBlock.xmlAttribute;
|
|
20
|
+
var defineBuildingBlock = BuildingBlock.defineBuildingBlock;
|
|
21
|
+
var BuildingBlockBase = BuildingBlock.BuildingBlockBase;
|
|
22
|
+
|
|
23
|
+
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 }); }
|
|
24
|
+
|
|
25
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
26
|
+
|
|
27
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
28
|
+
|
|
29
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
30
|
+
|
|
31
|
+
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; }
|
|
32
|
+
|
|
33
|
+
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.'); }
|
|
34
|
+
|
|
35
|
+
var DraftHandlerButton = (_dec = defineBuildingBlock({
|
|
36
|
+
name: "DraftHandlerButton",
|
|
37
|
+
namespace: "sap.fe.templates.ObjectPage.components",
|
|
38
|
+
isRuntime: true
|
|
39
|
+
}), _dec2 = xmlAttribute({
|
|
40
|
+
type: "string"
|
|
41
|
+
}), _dec3 = xmlAttribute({
|
|
42
|
+
type: "sap.ui.model.Context"
|
|
43
|
+
}), _dec4 = defineReference(), _dec5 = defineReference(), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockBase) {
|
|
44
|
+
_inheritsLoose(DraftHandlerButton, _BuildingBlockBase);
|
|
45
|
+
|
|
46
|
+
function DraftHandlerButton(oProps) {
|
|
47
|
+
var _this;
|
|
48
|
+
|
|
49
|
+
_this = _BuildingBlockBase.call(this, oProps) || this;
|
|
50
|
+
_this.SWITCH_TO_DRAFT_KEY = "switchToDraft";
|
|
51
|
+
_this.SWITCH_TO_ACTIVE_KEY = "switchToActive";
|
|
52
|
+
|
|
53
|
+
_initializerDefineProperty(_this, "id", _descriptor, _assertThisInitialized(_this));
|
|
54
|
+
|
|
55
|
+
_initializerDefineProperty(_this, "contextPath", _descriptor2, _assertThisInitialized(_this));
|
|
56
|
+
|
|
57
|
+
_initializerDefineProperty(_this, "switchToActiveRef", _descriptor3, _assertThisInitialized(_this));
|
|
58
|
+
|
|
59
|
+
_initializerDefineProperty(_this, "switchToDraftRef", _descriptor4, _assertThisInitialized(_this));
|
|
60
|
+
|
|
61
|
+
_this.initialSelectedKey = _this.SWITCH_TO_ACTIVE_KEY;
|
|
62
|
+
|
|
63
|
+
_this.handleSelectedItemChange = function (event) {
|
|
64
|
+
var selectedItemKey = event.getParameter("item").getProperty("key");
|
|
65
|
+
|
|
66
|
+
if (selectedItemKey !== _this.initialSelectedKey) {
|
|
67
|
+
_this._containingView.getController().editFlow.toggleDraftActive(_this._containingView.getBindingContext());
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (_this.popover) {
|
|
71
|
+
_this.popover.close();
|
|
72
|
+
|
|
73
|
+
_this.popover.destroy();
|
|
74
|
+
|
|
75
|
+
delete _this.popover;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
_this.openSwitchActivePopover = function (event) {
|
|
80
|
+
var sourceControl = event.getSource();
|
|
81
|
+
var containingView = CommonUtils.getTargetView(sourceControl);
|
|
82
|
+
var context = containingView.getBindingContext();
|
|
83
|
+
var isActiveEntity = context.getObject().IsActiveEntity;
|
|
84
|
+
_this.initialSelectedKey = isActiveEntity ? _this.SWITCH_TO_ACTIVE_KEY : _this.SWITCH_TO_DRAFT_KEY;
|
|
85
|
+
_this.popover = _this.createPopover();
|
|
86
|
+
_this._containingView = containingView;
|
|
87
|
+
containingView.addDependent(_this.popover);
|
|
88
|
+
|
|
89
|
+
_this.popover.openBy(sourceControl);
|
|
90
|
+
|
|
91
|
+
_this.popover.attachEventOnce("afterOpen", function () {
|
|
92
|
+
if (isActiveEntity) {
|
|
93
|
+
var _this$switchToDraftRe;
|
|
94
|
+
|
|
95
|
+
(_this$switchToDraftRe = _this.switchToDraftRef.current) === null || _this$switchToDraftRe === void 0 ? void 0 : _this$switchToDraftRe.focus();
|
|
96
|
+
} else {
|
|
97
|
+
var _this$switchToActiveR;
|
|
98
|
+
|
|
99
|
+
(_this$switchToActiveR = _this.switchToActiveRef.current) === null || _this$switchToActiveR === void 0 ? void 0 : _this$switchToActiveR.focus();
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
return _this.popover;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return _this;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
_exports = DraftHandlerButton;
|
|
110
|
+
var _proto = DraftHandlerButton.prototype;
|
|
111
|
+
|
|
112
|
+
_proto.createPopover = function createPopover() {
|
|
113
|
+
return _jsx(ResponsivePopover, {
|
|
114
|
+
showHeader: false,
|
|
115
|
+
contentWidth: "15.625rem",
|
|
116
|
+
verticalScrolling: false,
|
|
117
|
+
class: "sapUiNoContentPadding",
|
|
118
|
+
placement: "Bottom",
|
|
119
|
+
children: _jsxs(SelectList, {
|
|
120
|
+
selectedKey: this.initialSelectedKey,
|
|
121
|
+
itemPress: this.handleSelectedItemChange,
|
|
122
|
+
children: [_jsx(Item, {
|
|
123
|
+
text: "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISPLAY_DRAFT_MIT}",
|
|
124
|
+
ref: this.switchToDraftRef
|
|
125
|
+
}, this.SWITCH_TO_DRAFT_KEY), _jsx(Item, {
|
|
126
|
+
text: "{sap.fe.i18n>C_COMMON_OBJECT_PAGE_DISPLAY_SAVED_VERSION_MIT}",
|
|
127
|
+
ref: this.switchToActiveRef
|
|
128
|
+
}, this.SWITCH_TO_ACTIVE_KEY)]
|
|
129
|
+
})
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
_proto.render = function render() {
|
|
134
|
+
var textValue = ifElse(and(not(UI.IsEditable), not(UI.IsCreateMode), Entity.HasDraft), pathInModel("C_COMMON_OBJECT_PAGE_SAVED_VERSION_BUT", "sap.fe.i18n"), pathInModel("C_COMMON_OBJECT_PAGE_DRAFT_BUT", "sap.fe.i18n"));
|
|
135
|
+
var visible = getSwitchDraftAndActiveVisibility(this.contextPath.getObject("@"));
|
|
136
|
+
return _jsxs(_Fragment, {
|
|
137
|
+
children: [_jsx(Button, {
|
|
138
|
+
id: "fe::StandardAction::SwitchDraftAndActiveObject",
|
|
139
|
+
text: textValue,
|
|
140
|
+
visible: visible,
|
|
141
|
+
icon: "sap-icon://navigation-down-arrow",
|
|
142
|
+
iconFirst: false,
|
|
143
|
+
type: "Transparent",
|
|
144
|
+
press: this.openSwitchActivePopover,
|
|
145
|
+
ariaDescribedBy: ["fe::StandardAction::SwitchDraftAndActiveObject::AriaTextDraftSwitcher"]
|
|
146
|
+
}), _jsx(InvisibleText, {
|
|
147
|
+
text: "{sap.fe.i18n>T_HEADER_DATAPOINT_TITLE_DRAFT_SWITCHER_ARIA_BUTTON}",
|
|
148
|
+
id: "fe::StandardAction::SwitchDraftAndActiveObject::AriaTextDraftSwitcher"
|
|
149
|
+
})]
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
return DraftHandlerButton;
|
|
154
|
+
}(BuildingBlockBase), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "id", [_dec2], {
|
|
155
|
+
configurable: true,
|
|
156
|
+
enumerable: true,
|
|
157
|
+
writable: true,
|
|
158
|
+
initializer: null
|
|
159
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "contextPath", [_dec3], {
|
|
160
|
+
configurable: true,
|
|
161
|
+
enumerable: true,
|
|
162
|
+
writable: true,
|
|
163
|
+
initializer: null
|
|
164
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "switchToActiveRef", [_dec4], {
|
|
165
|
+
configurable: true,
|
|
166
|
+
enumerable: true,
|
|
167
|
+
writable: true,
|
|
168
|
+
initializer: null
|
|
169
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "switchToDraftRef", [_dec5], {
|
|
170
|
+
configurable: true,
|
|
171
|
+
enumerable: true,
|
|
172
|
+
writable: true,
|
|
173
|
+
initializer: null
|
|
174
|
+
})), _class2)) || _class);
|
|
175
|
+
_exports = DraftHandlerButton;
|
|
176
|
+
return _exports;
|
|
177
|
+
}, false);
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEcmFmdEhhbmRsZXJCdXR0b24iLCJkZWZpbmVCdWlsZGluZ0Jsb2NrIiwibmFtZSIsIm5hbWVzcGFjZSIsImlzUnVudGltZSIsInhtbEF0dHJpYnV0ZSIsInR5cGUiLCJkZWZpbmVSZWZlcmVuY2UiLCJvUHJvcHMiLCJTV0lUQ0hfVE9fRFJBRlRfS0VZIiwiU1dJVENIX1RPX0FDVElWRV9LRVkiLCJpbml0aWFsU2VsZWN0ZWRLZXkiLCJoYW5kbGVTZWxlY3RlZEl0ZW1DaGFuZ2UiLCJldmVudCIsInNlbGVjdGVkSXRlbUtleSIsImdldFBhcmFtZXRlciIsImdldFByb3BlcnR5IiwiX2NvbnRhaW5pbmdWaWV3IiwiZ2V0Q29udHJvbGxlciIsImVkaXRGbG93IiwidG9nZ2xlRHJhZnRBY3RpdmUiLCJnZXRCaW5kaW5nQ29udGV4dCIsInBvcG92ZXIiLCJjbG9zZSIsImRlc3Ryb3kiLCJvcGVuU3dpdGNoQWN0aXZlUG9wb3ZlciIsInNvdXJjZUNvbnRyb2wiLCJnZXRTb3VyY2UiLCJjb250YWluaW5nVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImNvbnRleHQiLCJpc0FjdGl2ZUVudGl0eSIsImdldE9iamVjdCIsIklzQWN0aXZlRW50aXR5IiwiY3JlYXRlUG9wb3ZlciIsImFkZERlcGVuZGVudCIsIm9wZW5CeSIsImF0dGFjaEV2ZW50T25jZSIsInN3aXRjaFRvRHJhZnRSZWYiLCJjdXJyZW50IiwiZm9jdXMiLCJzd2l0Y2hUb0FjdGl2ZVJlZiIsInJlbmRlciIsInRleHRWYWx1ZSIsImlmRWxzZSIsImFuZCIsIm5vdCIsIlVJIiwiSXNFZGl0YWJsZSIsIklzQ3JlYXRlTW9kZSIsIkVudGl0eSIsIkhhc0RyYWZ0IiwicGF0aEluTW9kZWwiLCJ2aXNpYmxlIiwiZ2V0U3dpdGNoRHJhZnRBbmRBY3RpdmVWaXNpYmlsaXR5IiwiY29udGV4dFBhdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRHJhZnRIYW5kbGVyQnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZGluZ0Jsb2NrQmFzZSwgZGVmaW5lQnVpbGRpbmdCbG9jaywgeG1sQXR0cmlidXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IEVudGl0eSwgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB7IGFuZCwgaWZFbHNlLCBub3QsIHBhdGhJbk1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVJlZmVyZW5jZSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBSZWYgfSBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBnZXRTd2l0Y2hEcmFmdEFuZEFjdGl2ZVZpc2liaWxpdHkgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL09iamVjdFBhZ2VUZW1wbGF0aW5nXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBSZXNwb25zaXZlUG9wb3ZlciBmcm9tIFwic2FwL20vUmVzcG9uc2l2ZVBvcG92ZXJcIjtcbmltcG9ydCBTZWxlY3RMaXN0IGZyb20gXCJzYXAvbS9TZWxlY3RMaXN0XCI7XG5pbXBvcnQgRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgSXRlbSBmcm9tIFwic2FwL3VpL2NvcmUvSXRlbVwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgVjRDb250ZXh0IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7IG5hbWU6IFwiRHJhZnRIYW5kbGVyQnV0dG9uXCIsIG5hbWVzcGFjZTogXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29tcG9uZW50c1wiLCBpc1J1bnRpbWU6IHRydWUgfSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyYWZ0SGFuZGxlckJ1dHRvbiBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlIHtcblx0cHJpdmF0ZSBfY29udGFpbmluZ1ZpZXchOiBWaWV3O1xuXHRwcml2YXRlIHBvcG92ZXI/OiBSZXNwb25zaXZlUG9wb3ZlcjtcblxuXHRwcml2YXRlIHJlYWRvbmx5IFNXSVRDSF9UT19EUkFGVF9LRVkgPSBcInN3aXRjaFRvRHJhZnRcIjtcblx0cHJpdmF0ZSByZWFkb25seSBTV0lUQ0hfVE9fQUNUSVZFX0tFWSA9IFwic3dpdGNoVG9BY3RpdmVcIjtcblxuXHRjb25zdHJ1Y3RvcihvUHJvcHM6IFByb3BlcnRpZXNPZjxEcmFmdEhhbmRsZXJCdXR0b24+KSB7XG5cdFx0c3VwZXIob1Byb3BzKTtcblx0fVxuXG5cdEB4bWxBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAeG1sQXR0cmlidXRlKHsgdHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiIH0pXG5cdHB1YmxpYyBjb250ZXh0UGF0aCE6IENvbnRleHQ7XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdHB1YmxpYyBzd2l0Y2hUb0FjdGl2ZVJlZiE6IFJlZjxJdGVtPjtcblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdHB1YmxpYyBzd2l0Y2hUb0RyYWZ0UmVmITogUmVmPEl0ZW0+O1xuXG5cdHByaXZhdGUgaW5pdGlhbFNlbGVjdGVkS2V5OiBzdHJpbmcgPSB0aGlzLlNXSVRDSF9UT19BQ1RJVkVfS0VZO1xuXG5cdGhhbmRsZVNlbGVjdGVkSXRlbUNoYW5nZSA9IChldmVudDogRXZlbnQpID0+IHtcblx0XHRjb25zdCBzZWxlY3RlZEl0ZW1LZXkgPSBldmVudC5nZXRQYXJhbWV0ZXIoXCJpdGVtXCIpLmdldFByb3BlcnR5KFwia2V5XCIpO1xuXHRcdGlmIChzZWxlY3RlZEl0ZW1LZXkgIT09IHRoaXMuaW5pdGlhbFNlbGVjdGVkS2V5KSB7XG5cdFx0XHQodGhpcy5fY29udGFpbmluZ1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIFBhZ2VDb250cm9sbGVyKS5lZGl0Rmxvdy50b2dnbGVEcmFmdEFjdGl2ZShcblx0XHRcdFx0dGhpcy5fY29udGFpbmluZ1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBWNENvbnRleHRcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnBvcG92ZXIpIHtcblx0XHRcdHRoaXMucG9wb3Zlci5jbG9zZSgpO1xuXHRcdFx0dGhpcy5wb3BvdmVyLmRlc3Ryb3koKTtcblx0XHRcdGRlbGV0ZSB0aGlzLnBvcG92ZXI7XG5cdFx0fVxuXHR9O1xuXG5cdG9wZW5Td2l0Y2hBY3RpdmVQb3BvdmVyID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuXHRcdGNvbnN0IHNvdXJjZUNvbnRyb2wgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBjb250YWluaW5nVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcoc291cmNlQ29udHJvbCk7XG5cblx0XHRjb25zdCBjb250ZXh0OiBWNENvbnRleHQgPSBjb250YWluaW5nVmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdGNvbnN0IGlzQWN0aXZlRW50aXR5ID0gY29udGV4dC5nZXRPYmplY3QoKS5Jc0FjdGl2ZUVudGl0eTtcblx0XHR0aGlzLmluaXRpYWxTZWxlY3RlZEtleSA9IGlzQWN0aXZlRW50aXR5ID8gdGhpcy5TV0lUQ0hfVE9fQUNUSVZFX0tFWSA6IHRoaXMuU1dJVENIX1RPX0RSQUZUX0tFWTtcblx0XHR0aGlzLnBvcG92ZXIgPSB0aGlzLmNyZWF0ZVBvcG92ZXIoKTtcblxuXHRcdHRoaXMuX2NvbnRhaW5pbmdWaWV3ID0gY29udGFpbmluZ1ZpZXc7XG5cdFx0Y29udGFpbmluZ1ZpZXcuYWRkRGVwZW5kZW50KHRoaXMucG9wb3Zlcik7XG5cdFx0dGhpcy5wb3BvdmVyLm9wZW5CeShzb3VyY2VDb250cm9sKTtcblx0XHR0aGlzLnBvcG92ZXIuYXR0YWNoRXZlbnRPbmNlKFwiYWZ0ZXJPcGVuXCIsICgpID0+IHtcblx0XHRcdGlmIChpc0FjdGl2ZUVudGl0eSkge1xuXHRcdFx0XHR0aGlzLnN3aXRjaFRvRHJhZnRSZWYuY3VycmVudD8uZm9jdXMoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc3dpdGNoVG9BY3RpdmVSZWYuY3VycmVudD8uZm9jdXMoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gdGhpcy5wb3BvdmVyO1xuXHR9O1xuXG5cdGNyZWF0ZVBvcG92ZXIoKTogUmVzcG9uc2l2ZVBvcG92ZXIge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8UmVzcG9uc2l2ZVBvcG92ZXJcblx0XHRcdFx0c2hvd0hlYWRlcj17ZmFsc2V9XG5cdFx0XHRcdGNvbnRlbnRXaWR0aD17XCIxNS42MjVyZW1cIn1cblx0XHRcdFx0dmVydGljYWxTY3JvbGxpbmc9e2ZhbHNlfVxuXHRcdFx0XHRjbGFzcz17XCJzYXBVaU5vQ29udGVudFBhZGRpbmdcIn1cblx0XHRcdFx0cGxhY2VtZW50PXtcIkJvdHRvbVwifVxuXHRcdFx0PlxuXHRcdFx0XHQ8U2VsZWN0TGlzdCBzZWxlY3RlZEtleT17dGhpcy5pbml0aWFsU2VsZWN0ZWRLZXl9IGl0ZW1QcmVzcz17dGhpcy5oYW5kbGVTZWxlY3RlZEl0ZW1DaGFuZ2V9PlxuXHRcdFx0XHRcdDxJdGVtXG5cdFx0XHRcdFx0XHR0ZXh0PXtcIntzYXAuZmUuaTE4bj5DX0NPTU1PTl9PQkpFQ1RfUEFHRV9ESVNQTEFZX0RSQUZUX01JVH1cIn1cblx0XHRcdFx0XHRcdGtleT17dGhpcy5TV0lUQ0hfVE9fRFJBRlRfS0VZfVxuXHRcdFx0XHRcdFx0cmVmPXt0aGlzLnN3aXRjaFRvRHJhZnRSZWZ9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8SXRlbVxuXHRcdFx0XHRcdFx0dGV4dD17XCJ7c2FwLmZlLmkxOG4+Q19DT01NT05fT0JKRUNUX1BBR0VfRElTUExBWV9TQVZFRF9WRVJTSU9OX01JVH1cIn1cblx0XHRcdFx0XHRcdGtleT17dGhpcy5TV0lUQ0hfVE9fQUNUSVZFX0tFWX1cblx0XHRcdFx0XHRcdHJlZj17dGhpcy5zd2l0Y2hUb0FjdGl2ZVJlZn1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1NlbGVjdExpc3Q+XG5cdFx0XHQ8L1Jlc3BvbnNpdmVQb3BvdmVyPlxuXHRcdCk7XG5cdH1cblxuXHRyZW5kZXIoKSB7XG5cdFx0Y29uc3QgdGV4dFZhbHVlID0gaWZFbHNlKFxuXHRcdFx0YW5kKG5vdChVSS5Jc0VkaXRhYmxlKSwgbm90KFVJLklzQ3JlYXRlTW9kZSksIEVudGl0eS5IYXNEcmFmdCksXG5cdFx0XHRwYXRoSW5Nb2RlbChcIkNfQ09NTU9OX09CSkVDVF9QQUdFX1NBVkVEX1ZFUlNJT05fQlVUXCIsIFwic2FwLmZlLmkxOG5cIiksXG5cdFx0XHRwYXRoSW5Nb2RlbChcIkNfQ09NTU9OX09CSkVDVF9QQUdFX0RSQUZUX0JVVFwiLCBcInNhcC5mZS5pMThuXCIpXG5cdFx0KSBhcyBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXHRcdGNvbnN0IHZpc2libGUgPSBnZXRTd2l0Y2hEcmFmdEFuZEFjdGl2ZVZpc2liaWxpdHkodGhpcy5jb250ZXh0UGF0aC5nZXRPYmplY3QoXCJAXCIpKTtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PD5cblx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdGlkPVwiZmU6OlN0YW5kYXJkQWN0aW9uOjpTd2l0Y2hEcmFmdEFuZEFjdGl2ZU9iamVjdFwiXG5cdFx0XHRcdFx0dGV4dD17dGV4dFZhbHVlfVxuXHRcdFx0XHRcdHZpc2libGU9e3Zpc2libGV9XG5cdFx0XHRcdFx0aWNvbj1cInNhcC1pY29uOi8vbmF2aWdhdGlvbi1kb3duLWFycm93XCJcblx0XHRcdFx0XHRpY29uRmlyc3Q9e2ZhbHNlfVxuXHRcdFx0XHRcdHR5cGU9XCJUcmFuc3BhcmVudFwiXG5cdFx0XHRcdFx0cHJlc3M9e3RoaXMub3BlblN3aXRjaEFjdGl2ZVBvcG92ZXJ9XG5cdFx0XHRcdFx0YXJpYURlc2NyaWJlZEJ5PXtbXCJmZTo6U3RhbmRhcmRBY3Rpb246OlN3aXRjaERyYWZ0QW5kQWN0aXZlT2JqZWN0OjpBcmlhVGV4dERyYWZ0U3dpdGNoZXJcIl19XG5cdFx0XHRcdD48L0J1dHRvbj5cblx0XHRcdFx0PEludmlzaWJsZVRleHRcblx0XHRcdFx0XHR0ZXh0PVwie3NhcC5mZS5pMThuPlRfSEVBREVSX0RBVEFQT0lOVF9USVRMRV9EUkFGVF9TV0lUQ0hFUl9BUklBX0JVVFRPTn1cIlxuXHRcdFx0XHRcdGlkPVwiZmU6OlN0YW5kYXJkQWN0aW9uOjpTd2l0Y2hEcmFmdEFuZEFjdGl2ZU9iamVjdDo6QXJpYVRleHREcmFmdFN3aXRjaGVyXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvPlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQW9CcUJBLGtCLFdBRHBCQyxtQkFBbUIsQ0FBQztJQUFFQyxJQUFJLEVBQUUsb0JBQVI7SUFBOEJDLFNBQVMsRUFBRSx3Q0FBekM7SUFBbUZDLFNBQVMsRUFBRTtFQUE5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
|