@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.
Files changed (145) hide show
  1. package/package.json +4 -5
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/Component.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
  5. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
  6. package/src/sap/fe/templates/Feedback.js +18 -18
  7. package/src/sap/fe/templates/Feedback.ts +12 -12
  8. package/src/sap/fe/templates/ListComponent.js +2 -2
  9. package/src/sap/fe/templates/ListReport/Component.js +2 -2
  10. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +13 -14
  11. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +11 -13
  12. package/src/sap/fe/templates/ListReport/ListReport.view.xml +12 -74
  13. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +95 -392
  14. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +99 -367
  15. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +1 -1
  16. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +471 -0
  17. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +347 -0
  18. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +16 -9
  19. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +17 -11
  20. package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -4
  21. package/src/sap/fe/templates/ListReport/overrides/Share.ts +6 -7
  22. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +22 -31
  23. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +33 -37
  24. package/src/sap/fe/templates/ListReport/view/fragments/Chart.fragment.xml +3 -0
  25. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +11 -5
  26. package/src/sap/fe/templates/{controls → ListReport/view/fragments}/MacroChart.fragment.xml +3 -2
  27. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +20 -4
  28. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +80 -48
  29. package/src/sap/fe/templates/{controls → ListReport/view/fragments}/Table.fragment.xml +6 -5
  30. package/src/sap/fe/templates/ListReport/view/fragments/VariantManagement.fragment.xml +31 -0
  31. package/src/sap/fe/templates/ObjectPage/Component.js +2 -2
  32. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +21 -20
  33. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +23 -22
  34. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +52 -146
  35. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +303 -268
  36. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +191 -242
  37. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +72 -71
  38. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +81 -88
  39. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +178 -0
  40. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +132 -0
  41. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +2 -2
  42. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +2 -2
  43. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +3 -4
  44. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
  45. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  46. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  47. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
  48. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  49. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
  50. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +1 -1
  51. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +1 -1
  52. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  53. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +6 -6
  54. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  55. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
  56. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  57. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
  58. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  59. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
  60. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +67 -41
  61. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +44 -56
  62. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
  63. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +3 -10
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/Chart.fragment.xml +13 -0
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +15 -5
  67. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
  68. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
  69. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -14
  70. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +2 -2
  71. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +3 -0
  72. package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +22 -0
  73. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
  74. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
  75. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +8 -3
  76. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +12 -50
  77. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +6 -2
  78. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  79. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  80. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +1 -1
  81. package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +23 -0
  82. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +26 -29
  83. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +30 -33
  84. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +4 -5
  85. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
  86. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +141 -53
  87. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
  88. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  89. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
  90. package/src/sap/fe/templates/TableScroller.js +3 -3
  91. package/src/sap/fe/templates/TableScroller.ts +2 -2
  92. package/src/sap/fe/templates/library.js +7 -3
  93. package/src/sap/fe/templates/library.ts +5 -0
  94. package/src/sap/fe/templates/messagebundle.properties +7 -22
  95. package/src/sap/fe/templates/messagebundle_ar.properties +3 -12
  96. package/src/sap/fe/templates/messagebundle_bg.properties +2 -11
  97. package/src/sap/fe/templates/messagebundle_ca.properties +2 -11
  98. package/src/sap/fe/templates/messagebundle_cs.properties +3 -12
  99. package/src/sap/fe/templates/messagebundle_cy.properties +2 -11
  100. package/src/sap/fe/templates/messagebundle_da.properties +3 -12
  101. package/src/sap/fe/templates/messagebundle_de.properties +2 -11
  102. package/src/sap/fe/templates/messagebundle_el.properties +2 -11
  103. package/src/sap/fe/templates/messagebundle_en.properties +2 -11
  104. package/src/sap/fe/templates/messagebundle_en_GB.properties +2 -11
  105. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -11
  106. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -11
  107. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -11
  108. package/src/sap/fe/templates/messagebundle_es.properties +0 -9
  109. package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -11
  110. package/src/sap/fe/templates/messagebundle_et.properties +0 -9
  111. package/src/sap/fe/templates/messagebundle_fi.properties +2 -11
  112. package/src/sap/fe/templates/messagebundle_fr.properties +3 -12
  113. package/src/sap/fe/templates/messagebundle_fr_CA.properties +2 -11
  114. package/src/sap/fe/templates/messagebundle_hi.properties +2 -11
  115. package/src/sap/fe/templates/messagebundle_hr.properties +2 -11
  116. package/src/sap/fe/templates/messagebundle_hu.properties +2 -11
  117. package/src/sap/fe/templates/messagebundle_id.properties +2 -11
  118. package/src/sap/fe/templates/messagebundle_it.properties +2 -11
  119. package/src/sap/fe/templates/messagebundle_iw.properties +2 -11
  120. package/src/sap/fe/templates/messagebundle_ja.properties +2 -11
  121. package/src/sap/fe/templates/messagebundle_kk.properties +2 -11
  122. package/src/sap/fe/templates/messagebundle_ko.properties +2 -11
  123. package/src/sap/fe/templates/messagebundle_lt.properties +2 -11
  124. package/src/sap/fe/templates/messagebundle_lv.properties +2 -11
  125. package/src/sap/fe/templates/messagebundle_ms.properties +2 -11
  126. package/src/sap/fe/templates/messagebundle_nl.properties +2 -11
  127. package/src/sap/fe/templates/messagebundle_no.properties +0 -9
  128. package/src/sap/fe/templates/messagebundle_pl.properties +0 -9
  129. package/src/sap/fe/templates/messagebundle_pt.properties +3 -12
  130. package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -11
  131. package/src/sap/fe/templates/messagebundle_ro.properties +0 -9
  132. package/src/sap/fe/templates/messagebundle_ru.properties +2 -11
  133. package/src/sap/fe/templates/messagebundle_sh.properties +2 -11
  134. package/src/sap/fe/templates/messagebundle_sk.properties +2 -11
  135. package/src/sap/fe/templates/messagebundle_sl.properties +2 -11
  136. package/src/sap/fe/templates/messagebundle_sv.properties +2 -11
  137. package/src/sap/fe/templates/messagebundle_th.properties +1 -10
  138. package/src/sap/fe/templates/messagebundle_tr.properties +2 -11
  139. package/src/sap/fe/templates/messagebundle_uk.properties +2 -11
  140. package/src/sap/fe/templates/messagebundle_vi.properties +0 -9
  141. package/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -9
  142. package/src/sap/fe/templates/messagebundle_zh_TW.properties +2 -11
  143. package/src/sap/fe/templates/ListReport/view/fragments/MultipleModeOld.fragment.xml +0 -50
  144. package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +0 -27
  145. package/src/sap/fe/templates/controls/Chart.fragment.xml +0 -25
@@ -1,30 +1,31 @@
1
1
  // Formatters for the Object Page
2
- import { DataField, HeaderInfoType, UIAnnotationTerms, UIAnnotationTypes } from "@sap-ux/vocabularies-types";
3
- import { DataFieldTypes } from "@sap-ux/vocabularies-types/dist/generated/UI";
4
- import ResourceBundle from "sap/base/i18n/ResourceBundle";
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
- annotationExpression,
12
- BindingExpression,
13
- compileBinding,
13
+ compileExpression,
14
14
  concat,
15
- Expression,
15
+ getExpressionFromAnnotation,
16
16
  ifElse,
17
17
  isEmpty,
18
18
  or,
19
19
  resolveBindingString
20
- } from "sap/fe/core/helpers/BindingExpression";
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
- ): BindingExpression<string> {
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 = annotationExpression((oHeaderInfo?.Title as DataFieldTypes)?.Value);
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, ": ", annotationExpression(oHeaderInfo.TypeName.toString()))
91
+ ? concat(titleWithHeaderInfo, ": ", getExpressionFromAnnotation(oHeaderInfo.TypeName.toString()))
90
92
  : titleNoHeaderInfo;
91
93
  const activeExpression = oDraftRoot ? Entity.IsActive : true;
92
94
 
93
- return compileBinding(
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
- ): BindingExpression<string> {
120
- let bindingExpression = annotationExpression((oHeaderInfo?.Description as DataFieldTypes)?.Value);
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
- bindingExpression = addTextArrangementToBindingExpression(bindingExpression, fullContextPath);
125
+ pathInModel = addTextArrangementToBindingExpression(pathInModel, fullContextPath);
124
126
  }
125
127
 
126
- return compileBinding(formatValueRecursively(bindingExpression, fullContextPath));
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 (oViewData: ViewData, fullContextPath: DataModelObjectPath): BindingExpression<string> {
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 compileBinding(saveExpression);
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 {ConverterAction[]} footerActions The footer action object coming from the converter
157
- * @param {DataField[]} dataFields Data field array for normal footer visibility processing
158
- * @returns {boolean | BindingExpression<string>} `true` if any action is true, otherwise compiled Binding or `false`
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 (footerActions: ConverterAction[], dataFields: DataField[]): boolean | BindingExpression<string> {
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: Expression<boolean>;
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 compileBinding(or(customActionVisibility, resolveBindingString<boolean>(annotationActionVisibility, "boolean")));
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 {Array} aDataFields Array of DataFields in the identification
186
- * @param {boolean} bConsiderEditable Whether the edit mode binding is required or not
187
- * @returns {string} An expression if all the actions are ui.hidden, true otherwise
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 {object} oAction The action object
239
- * @returns {boolean} `true` if action is coming from manifest, `false` otherwise
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 {Array} aIdentification Array of all the DataFields in Identification
264
- * @returns {string} An expression to deduce if button type is Default or Emphasized
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 {object} oAnnotations Annotations of the current entity set.
355
- * @returns {string} Returns the Boolean value based on draft state
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 {object} oAnnotations Annotations of the current entity set.
372
- * @returns {string} Returns expression binding or Boolean value based on the draft state
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 {object} oAnnotations Annotations of the current entity set.
386
- * @returns {string} Returns expression binding or Boolean value based on the draft state
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 {object} oAnnotations Annotations of the current entity set.
400
- * @returns {string} Returns expression binding or Boolean value based on the draft state
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 {object[]} aConverterContextHeaderActions Array of 'header' actions on the object page.
414
- * @param {string} sActionType The action type
415
- * @returns {object | undefined} The action with the matching action type
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 {Array} aConverterContextHeaderActions Array of header actions on the object page
432
- * @returns {string} Returns expression binding or Boolean value from the converter output
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 {Array} aConverterContextHeaderActions Array of header actions on the object page
443
- * @returns {string} Returns expression binding or Boolean value from the converter output
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 {Array} aConverterContextHeaderActions Array of header actions on the object page
454
- * @returns {string} Returns expression binding or Boolean value from the converter output
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 {Array} aConverterContextHeaderActions Array of header actions on the object page
465
- * @returns {string} Returns expression binding or Boolean value from the converter output
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 {object} [oEntitySet] The value from the expression.
476
- * @returns {string} Returns expression binding or boolean value based on vRawValue & oDraftNode
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 + "@com.sap.vocabularies.Common.v1.DraftRoot/EditAction");
493
+ sActionName = oEntitySet.getObject(`${sPath}@com.sap.vocabularies.Common.v1.DraftRoot/EditAction`);
486
494
  } else if (bStickySession) {
487
- sActionName = oEntitySet.getObject(sPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction");
495
+ sActionName = oEntitySet.getObject(`${sPath}@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction`);
488
496
  }
489
- return !sActionName ? sActionName : sPath + "/" + sActionName;
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
- * @function
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 {DataFieldAbstractTypes[]} aFormElements A collection of form elements used in the current field group
627
- * @returns {boolean} Returns true if only 1 data field with Multiline Text annotation exists.
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 isSubSectionTitleVisible = function (sSubSectionvisible: any, sSubSectiontitle: any, sSubSectionshowTitle: any) {
822
- if (sSubSectionvisible.indexOf("{=") === 0) {
823
- // Dynamic expression
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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