@sapui5/sap.fe.templates 1.102.0 → 1.103.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 (74) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
  5. package/src/sap/fe/templates/Feedback.js +18 -18
  6. package/src/sap/fe/templates/Feedback.ts +12 -12
  7. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +9 -12
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +9 -12
  9. package/src/sap/fe/templates/ListReport/ListReport.view.xml +3 -1
  10. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +80 -55
  11. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +95 -71
  12. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  13. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +2 -2
  14. package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -4
  15. package/src/sap/fe/templates/ListReport/overrides/Share.ts +6 -7
  16. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +4 -5
  17. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +10 -10
  18. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -1
  19. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +1 -1
  20. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +12 -16
  21. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +17 -20
  22. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +4 -3
  23. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +148 -163
  24. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +138 -192
  25. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +62 -73
  26. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +75 -90
  27. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -3
  28. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
  29. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  30. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
  31. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  32. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
  33. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.js +103 -0
  34. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.ts +97 -0
  35. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  36. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +5 -5
  37. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  38. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
  39. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  40. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
  41. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
  43. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +15 -15
  44. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +17 -28
  45. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
  46. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
  47. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +6 -1
  48. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +10 -2
  49. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
  50. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -14
  51. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +1 -0
  52. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
  53. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
  54. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +1 -1
  55. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +4 -1
  56. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +6 -2
  57. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  58. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +2 -2
  60. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +25 -28
  61. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +30 -33
  62. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +3 -4
  63. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
  64. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +140 -52
  65. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
  66. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  67. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
  68. package/src/sap/fe/templates/TableScroller.js +3 -3
  69. package/src/sap/fe/templates/TableScroller.ts +2 -2
  70. package/src/sap/fe/templates/controls/Table.fragment.xml +1 -0
  71. package/src/sap/fe/templates/library.js +5 -2
  72. package/src/sap/fe/templates/library.ts +3 -0
  73. package/src/sap/fe/templates/messagebundle.properties +6 -18
  74. package/src/sap/fe/templates/messagebundle_pt.properties +1 -1
@@ -1,30 +1,30 @@
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 type { DataField, DataFieldTypes, HeaderInfoType } from "@sap-ux/vocabularies-types/vocabularies/UI";
3
+ import { UIAnnotationTerms, UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
4
+ import type ResourceBundle from "sap/base/i18n/ResourceBundle";
5
5
  import CommonUtils from "sap/fe/core/CommonUtils";
6
- import { ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
6
+ import type { ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
7
7
  import { Draft, Entity, UI } from "sap/fe/core/converters/helpers/BindingHelper";
8
- import { ManifestAction } from "sap/fe/core/converters/ManifestSettings";
8
+ import type { ManifestAction } from "sap/fe/core/converters/ManifestSettings";
9
+ import type { BindingToolkitExpression, CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
9
10
  import {
10
11
  and,
11
- annotationExpression,
12
- BindingExpression,
13
- compileBinding,
12
+ compileExpression,
14
13
  concat,
15
- Expression,
14
+ getExpressionFromAnnotation,
16
15
  ifElse,
17
16
  isEmpty,
18
17
  or,
19
18
  resolveBindingString
20
- } from "sap/fe/core/helpers/BindingExpression";
21
- import { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
19
+ } from "sap/fe/core/helpers/BindingToolkit";
20
+ import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
22
21
  import CommonHelper from "sap/fe/macros/CommonHelper";
23
22
  import { addTextArrangementToBindingExpression, formatValueRecursively } from "sap/fe/macros/field/FieldTemplating";
24
23
  import mLibrary from "sap/m/library";
25
24
  import ManagedObject from "sap/ui/base/ManagedObject";
26
25
  import ODataModelAnnotationHelper from "sap/ui/model/odata/v4/AnnotationHelper";
27
- import Context from "sap/ui/model/odata/v4/Context";
26
+ import type Context from "sap/ui/model/odata/v4/Context";
27
+
28
28
  const ButtonType = mLibrary.ButtonType;
29
29
 
30
30
  type ViewData = {
@@ -48,6 +48,7 @@ type ViewData = {
48
48
  // ```
49
49
  /**
50
50
  * Compute the title for the object page.
51
+ *
51
52
  * @param oHeaderInfo The @UI.HeaderInfo annotation content
52
53
  * @param oViewData The view data object we're currently on
53
54
  * @param fullContextPath The full context path used to reach that object page
@@ -59,7 +60,7 @@ export const getExpressionForTitle = function (
59
60
  oViewData: ViewData,
60
61
  fullContextPath: DataModelObjectPath,
61
62
  oDraftRoot: Object | undefined
62
- ): BindingExpression<string> {
63
+ ): CompiledBindingToolkitExpression {
63
64
  const titleNoHeaderInfo = CommonUtils.getTranslatedText("T_NEW_OBJECT", oViewData.resourceBundle, undefined, oViewData.entitySet);
64
65
 
65
66
  const titleWithHeaderInfo = CommonUtils.getTranslatedText(
@@ -76,7 +77,7 @@ export const getExpressionForTitle = function (
76
77
  ? CommonUtils.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO", oViewData.resourceBundle)
77
78
  : "";
78
79
 
79
- let titleValueExpression = annotationExpression((oHeaderInfo?.Title as DataFieldTypes)?.Value);
80
+ let titleValueExpression = getExpressionFromAnnotation((oHeaderInfo?.Title as DataFieldTypes)?.Value);
80
81
  if ((oHeaderInfo?.Title as DataFieldTypes)?.Value?.$target?.annotations?.Common?.Text?.annotations?.UI?.TextArrangement) {
81
82
  // In case an explicit text arrangement was set we make use of it in the description as well
82
83
  titleValueExpression = addTextArrangementToBindingExpression(titleValueExpression, fullContextPath);
@@ -86,11 +87,11 @@ export const getExpressionForTitle = function (
86
87
 
87
88
  // If there is a TypeName defined, show the default title 'New + TypeName', otherwise show the custom title or the default 'New object'
88
89
  const createModeTitle = oHeaderInfo?.TypeName
89
- ? concat(titleWithHeaderInfo, ": ", annotationExpression(oHeaderInfo.TypeName.toString()))
90
+ ? concat(titleWithHeaderInfo, ": ", getExpressionFromAnnotation(oHeaderInfo.TypeName.toString()))
90
91
  : titleNoHeaderInfo;
91
92
  const activeExpression = oDraftRoot ? Entity.IsActive : true;
92
93
 
93
- return compileBinding(
94
+ return compileExpression(
94
95
  ifElse(
95
96
  // If Create Mode && Empty expression
96
97
  and(or(UI.IsCreateModeSticky, UI.IsCreateMode), titleValueExpression && isEmpty(titleValueExpression)),
@@ -116,14 +117,14 @@ export const getExpressionForTitle = function (
116
117
  export const getExpressionForDescription = function (
117
118
  oHeaderInfo: HeaderInfoType | undefined,
118
119
  fullContextPath: DataModelObjectPath
119
- ): BindingExpression<string> {
120
- let bindingExpression = annotationExpression((oHeaderInfo?.Description as DataFieldTypes)?.Value);
120
+ ): CompiledBindingToolkitExpression {
121
+ let pathInModel = getExpressionFromAnnotation((oHeaderInfo?.Description as DataFieldTypes)?.Value);
121
122
  if ((oHeaderInfo?.Description as DataFieldTypes)?.Value?.$target?.annotations?.Common?.Text?.annotations?.UI?.TextArrangement) {
122
123
  // In case an explicit text arrangement was set we make use of it in the description as well
123
- bindingExpression = addTextArrangementToBindingExpression(bindingExpression, fullContextPath);
124
+ pathInModel = addTextArrangementToBindingExpression(pathInModel, fullContextPath);
124
125
  }
125
126
 
126
- return compileBinding(formatValueRecursively(bindingExpression, fullContextPath));
127
+ return compileExpression(formatValueRecursively(pathInModel, fullContextPath));
127
128
  };
128
129
 
129
130
  /**
@@ -133,7 +134,10 @@ export const getExpressionForDescription = function (
133
134
  * @param fullContextPath The path used up until here
134
135
  * @returns The binding expression that shows the right save button text
135
136
  */
136
- export const getExpressionForSaveButton = function (oViewData: ViewData, fullContextPath: DataModelObjectPath): BindingExpression<string> {
137
+ export const getExpressionForSaveButton = function (
138
+ oViewData: ViewData,
139
+ fullContextPath: DataModelObjectPath
140
+ ): CompiledBindingToolkitExpression {
137
141
  const saveButtonText = CommonUtils.getTranslatedText("T_OP_OBJECT_PAGE_SAVE", oViewData.resourceBundle);
138
142
  const createButtonText = CommonUtils.getTranslatedText("T_OP_OBJECT_PAGE_CREATE", oViewData.resourceBundle);
139
143
  let saveExpression;
@@ -145,7 +149,7 @@ export const getExpressionForSaveButton = function (oViewData: ViewData, fullCon
145
149
  // If we're in draft AND the draft is a new object (!IsActiveEntity && !HasActiveEntity), show create, else show save
146
150
  saveExpression = ifElse(Draft.IsNewObject, createButtonText, saveButtonText);
147
151
  }
148
- return compileBinding(saveExpression);
152
+ return compileExpression(saveExpression);
149
153
  };
150
154
 
151
155
  /**
@@ -153,13 +157,16 @@ export const getExpressionForSaveButton = function (oViewData: ViewData, fullCon
153
157
  *
154
158
  * @function
155
159
  * @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`
160
+ * @param footerActions The footer action object coming from the converter
161
+ * @param dataFields Data field array for normal footer visibility processing
162
+ * @returns `true` if any action is true, otherwise compiled Binding or `false`
159
163
  */
160
- export const getFooterVisible = function (footerActions: ConverterAction[], dataFields: DataField[]): boolean | BindingExpression<string> {
164
+ export const getFooterVisible = function (
165
+ footerActions: ConverterAction[],
166
+ dataFields: DataField[]
167
+ ): boolean | CompiledBindingToolkitExpression {
161
168
  const manifestActions = footerActions.filter((action) => isManifestAction(action)) as ManifestAction[];
162
- let customActionVisibility: Expression<boolean>;
169
+ let customActionVisibility: BindingToolkitExpression<boolean>;
163
170
  if (manifestActions.length) {
164
171
  // If we have manifest actions
165
172
  const customActionIndividualVisibility = manifestActions.map((action) => {
@@ -170,7 +177,7 @@ export const getFooterVisible = function (footerActions: ConverterAction[], data
170
177
  // and then the binding of all annotation actions inside the footer ...
171
178
  const annotationActionVisibility = getDataFieldBasedFooterVisibility(dataFields, true);
172
179
  // finally, return everything.
173
- return compileBinding(or(customActionVisibility, resolveBindingString<boolean>(annotationActionVisibility, "boolean")));
180
+ return compileExpression(or(customActionVisibility, resolveBindingString<boolean>(annotationActionVisibility, "boolean")));
174
181
  }
175
182
  return getDataFieldBasedFooterVisibility(dataFields, true);
176
183
  };
@@ -182,12 +189,12 @@ export const getFooterVisible = function (footerActions: ConverterAction[], data
182
189
  * @static
183
190
  * @name sap.fe.templates.ObjectPage.ObjectPageTemplating.getDataFieldBasedFooterVisibility
184
191
  * @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
192
+ * @param aDataFields Array of DataFields in the identification
193
+ * @param bConsiderEditable Whether the edit mode binding is required or not
194
+ * @returns An expression if all the actions are ui.hidden, true otherwise
188
195
  * @private
189
196
  * @ui5-restricted
190
- **/
197
+ */
191
198
  export const getDataFieldBasedFooterVisibility = function (aDataFields: any[], bConsiderEditable: boolean) {
192
199
  let sHiddenExpression = "";
193
200
  let sSemiHiddenExpression;
@@ -235,8 +242,8 @@ export const getDataFieldBasedFooterVisibility = function (aDataFields: any[], b
235
242
  *
236
243
  * @function
237
244
  * @name isManifestActionVisible
238
- * @param {object} oAction The action object
239
- * @returns {boolean} `true` if action is coming from manifest, `false` otherwise
245
+ * @param oAction The action object
246
+ * @returns `true` if action is coming from manifest, `false` otherwise
240
247
  */
241
248
  export const isManifestAction = function (oAction: any) {
242
249
  const aActions = [
@@ -260,11 +267,11 @@ export const isManifestAction = function (oAction: any) {
260
267
  * @static
261
268
  * @name sap.fe.templates.ObjectPage.ObjectPageTemplating.buildEmphasizedButtonExpression
262
269
  * @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
270
+ * @param aIdentification Array of all the DataFields in Identification
271
+ * @returns An expression to deduce if button type is Default or Emphasized
265
272
  * @private
266
273
  * @ui5-restricted
267
- **/
274
+ */
268
275
  export const buildEmphasizedButtonExpression = function (aIdentification?: any[]) {
269
276
  if (!aIdentification) {
270
277
  return ButtonType.Emphasized;
@@ -351,8 +358,8 @@ export const getElementBinding = function (sPath: any) {
351
358
  /**
352
359
  * Function to check if draft pattern is supported.
353
360
  *
354
- * @param {object} oAnnotations Annotations of the current entity set.
355
- * @returns {string} Returns the Boolean value based on draft state
361
+ * @param oAnnotations Annotations of the current entity set.
362
+ * @returns Returns the Boolean value based on draft state
356
363
  */
357
364
  export const checkDraftState = function (oAnnotations: any) {
358
365
  if (
@@ -368,8 +375,8 @@ export const checkDraftState = function (oAnnotations: any) {
368
375
  /**
369
376
  * Function to get the visibility for the SwitchToActive button in the object page or subobject page.
370
377
  *
371
- * @param {object} oAnnotations Annotations of the current entity set.
372
- * @returns {string} Returns expression binding or Boolean value based on the draft state
378
+ * @param oAnnotations Annotations of the current entity set.
379
+ * @returns Returns expression binding or Boolean value based on the draft state
373
380
  */
374
381
  export const getSwitchToActiveVisibility = function (oAnnotations: any): any {
375
382
  if (checkDraftState(oAnnotations)) {
@@ -382,8 +389,8 @@ export const getSwitchToActiveVisibility = function (oAnnotations: any): any {
382
389
  /**
383
390
  * Function to get the visibility for the SwitchToDraft button in the object page or subobject page.
384
391
  *
385
- * @param {object} oAnnotations Annotations of the current entity set.
386
- * @returns {string} Returns expression binding or Boolean value based on the draft state
392
+ * @param oAnnotations Annotations of the current entity set.
393
+ * @returns Returns expression binding or Boolean value based on the draft state
387
394
  */
388
395
  export const getSwitchToDraftVisibility = function (oAnnotations: any): any {
389
396
  if (checkDraftState(oAnnotations)) {
@@ -396,8 +403,8 @@ export const getSwitchToDraftVisibility = function (oAnnotations: any): any {
396
403
  /**
397
404
  * Function to get the visibility for the SwitchDraftAndActive button in the object page or subobject page.
398
405
  *
399
- * @param {object} oAnnotations Annotations of the current entity set.
400
- * @returns {string} Returns expression binding or Boolean value based on the draft state
406
+ * @param oAnnotations Annotations of the current entity set.
407
+ * @returns Returns expression binding or Boolean value based on the draft state
401
408
  */
402
409
  export const getSwitchDraftAndActiveVisibility = function (oAnnotations: any): any {
403
410
  if (checkDraftState(oAnnotations)) {
@@ -410,9 +417,9 @@ export const getSwitchDraftAndActiveVisibility = function (oAnnotations: any): a
410
417
  /**
411
418
  * Function to find an action from the array of header actions in the converter context.
412
419
  *
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
420
+ * @param aConverterContextHeaderActions Array of 'header' actions on the object page.
421
+ * @param sActionType The action type
422
+ * @returns The action with the matching action type
416
423
  * @private
417
424
  */
418
425
  export const _findAction = function (aConverterContextHeaderActions: any[], sActionType: string) {
@@ -428,8 +435,8 @@ export const _findAction = function (aConverterContextHeaderActions: any[], sAct
428
435
  /**
429
436
  * Function to format the 'enabled' property for the Delete button on the object page or subobject page in case of a Command Execution.
430
437
  *
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
438
+ * @param aConverterContextHeaderActions Array of header actions on the object page
439
+ * @returns Returns expression binding or Boolean value from the converter output
433
440
  */
434
441
  export const getDeleteCommandExecutionEnabled = function (aConverterContextHeaderActions: any[]) {
435
442
  const oDeleteAction = _findAction(aConverterContextHeaderActions, "Secondary");
@@ -439,8 +446,8 @@ export const getDeleteCommandExecutionEnabled = function (aConverterContextHeade
439
446
  /**
440
447
  * Function to format the 'visible' property for the Delete button on the object page or subobject page in case of a Command Execution.
441
448
  *
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
449
+ * @param aConverterContextHeaderActions Array of header actions on the object page
450
+ * @returns Returns expression binding or Boolean value from the converter output
444
451
  */
445
452
  export const getDeleteCommandExecutionVisible = function (aConverterContextHeaderActions: any[]) {
446
453
  const oDeleteAction = _findAction(aConverterContextHeaderActions, "Secondary");
@@ -450,8 +457,8 @@ export const getDeleteCommandExecutionVisible = function (aConverterContextHeade
450
457
  /**
451
458
  * Function to format the 'visible' property for the Edit button on the object page or subobject page in case of a Command Execution.
452
459
  *
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
460
+ * @param aConverterContextHeaderActions Array of header actions on the object page
461
+ * @returns Returns expression binding or Boolean value from the converter output
455
462
  */
456
463
  export const getEditCommandExecutionVisible = function (aConverterContextHeaderActions: any[]) {
457
464
  const oEditAction = _findAction(aConverterContextHeaderActions, "Primary");
@@ -461,8 +468,8 @@ export const getEditCommandExecutionVisible = function (aConverterContextHeaderA
461
468
  /**
462
469
  * Function to format the 'enabled' property for the Edit button on the object page or subobject page in case of a Command Execution.
463
470
  *
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
471
+ * @param aConverterContextHeaderActions Array of header actions on the object page
472
+ * @returns Returns expression binding or Boolean value from the converter output
466
473
  */
467
474
  export const getEditCommandExecutionEnabled = function (aConverterContextHeaderActions: any[]) {
468
475
  const oEditAction = _findAction(aConverterContextHeaderActions, "Primary");
@@ -472,21 +479,21 @@ export const getEditCommandExecutionEnabled = function (aConverterContextHeaderA
472
479
  /**
473
480
  * Function to get the EditAction from the Entityset based on Draft or sticky based application.
474
481
  *
475
- * @param {object} [oEntitySet] The value from the expression.
476
- * @returns {string} Returns expression binding or boolean value based on vRawValue & oDraftNode
482
+ * @param [oEntitySet] The value from the expression.
483
+ * @returns Returns expression binding or boolean value based on vRawValue & oDraftNode
477
484
  */
478
485
  export const getEditAction = function (oEntitySet: Context) {
479
486
  const sPath = oEntitySet.getPath(),
480
- oAnnotations = oEntitySet.getObject(sPath + "@");
487
+ oAnnotations = oEntitySet.getObject(`${sPath}@`);
481
488
  const bDraftRoot = oAnnotations.hasOwnProperty("@com.sap.vocabularies.Common.v1.DraftRoot");
482
489
  const bStickySession = oAnnotations.hasOwnProperty("@com.sap.vocabularies.Session.v1.StickySessionSupported");
483
490
  let sActionName;
484
491
  if (bDraftRoot) {
485
- sActionName = oEntitySet.getObject(sPath + "@com.sap.vocabularies.Common.v1.DraftRoot/EditAction");
492
+ sActionName = oEntitySet.getObject(`${sPath}@com.sap.vocabularies.Common.v1.DraftRoot/EditAction`);
486
493
  } else if (bStickySession) {
487
- sActionName = oEntitySet.getObject(sPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction");
494
+ sActionName = oEntitySet.getObject(`${sPath}@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction`);
488
495
  }
489
- return !sActionName ? sActionName : sPath + "/" + sActionName;
496
+ return !sActionName ? sActionName : `${sPath}/${sActionName}`;
490
497
  };
491
498
 
492
499
  export const isReadOnlyFromStaticAnnotations = function (oAnnotations: any, oFieldControl: any) {
@@ -519,14 +526,14 @@ export const readOnlyExpressionFromDynamicAnnotations = function (oFieldControl:
519
526
  if (sIsFieldControlPathReadOnly) {
520
527
  return "{= " + sIsFieldControlPathReadOnly + "? false : true }";
521
528
  } else {
522
- return;
529
+ return undefined;
523
530
  }
524
531
  };
525
532
 
526
533
  /*
527
534
  * Function to get the expression for chart Title Press
528
535
  *
529
- * @function
536
+ * @functionw
530
537
  * @param {oConfiguration} [oConfigurations] control configuration from manifest
531
538
  * @param {oManifest} [oManifest] Outbounds from manifest
532
539
  * returns {String} [sCollectionName] Collection Name of the Micro Chart
@@ -623,8 +630,8 @@ export const getBindingWithGroupIdFromConfig = function (oConfigurations: any, s
623
630
  /**
624
631
  * Method to check whether a FieldGroup consists of only 1 DataField with MultiLine Text annotation.
625
632
  *
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.
633
+ * @param aFormElements A collection of form elements used in the current field group
634
+ * @returns Returns true if only 1 data field with Multiline Text annotation exists.
628
635
  */
629
636
  export const doesFieldGroupContainOnlyOneMultiLineDataField = function (aFormElements: any[]) {
630
637
  return aFormElements && aFormElements.length === 1 && !!aFormElements[0].isValueMultilineText;
@@ -743,9 +750,7 @@ export const getPressExpressionForEdit = function (oDataField: any, sEntitySetNa
743
750
  label: CommonHelper.addSingleQuotes(oDataField && oDataField.Label, true),
744
751
  isNavigable: oHeaderAction && oHeaderAction.isNavigable,
745
752
  defaultValuesExtensionFunction:
746
- oHeaderAction && oHeaderAction.defaultValuesExtensionFunction
747
- ? "'" + oHeaderAction.defaultValuesExtensionFunction + "'"
748
- : undefined
753
+ oHeaderAction && oHeaderAction.defaultValuesExtensionFunction ? `'${oHeaderAction.defaultValuesExtensionFunction}'` : undefined
749
754
  };
750
755
  return CommonHelper.generateFunction(".handlers.onCallAction", "${$view>/}", sEditableContexts, CommonHelper.objectToString(oParams));
751
756
  };
@@ -771,9 +776,7 @@ export const getPressExpressionForFooterAnnotationAction = function (oDataField:
771
776
  label: CommonHelper.addSingleQuotes(oDataField && oDataField.Label, true),
772
777
  isNavigable: oHeaderAction && oHeaderAction.isNavigable,
773
778
  defaultValuesExtensionFunction:
774
- oHeaderAction && oHeaderAction.defaultValuesExtensionFunction
775
- ? "'" + oHeaderAction.defaultValuesExtensionFunction + "'"
776
- : undefined
779
+ oHeaderAction && oHeaderAction.defaultValuesExtensionFunction ? `'${oHeaderAction.defaultValuesExtensionFunction}'` : undefined
777
780
  };
778
781
  return CommonHelper.generateFunction(".handlers.onCallAction", "${$view>/}", sActionContexts, CommonHelper.objectToString(oParams));
779
782
  };
@@ -817,21 +820,3 @@ export const getPressExpressionForLink = function (oConfiguration: any, oManifes
817
820
  }
818
821
  }
819
822
  };
820
-
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");
836
- }
837
- };
@@ -81,8 +81,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/uxap/BlockBase", "sap/ux
81
81
  ;
82
82
 
83
83
  _proto._getSelectedViewContent = function _getSelectedViewContent() {
84
- var oContent = this.getAggregation("content");
85
- return oContent;
84
+ return this.getAggregation("content");
86
85
  };
87
86
 
88
87
  return SubSectionBlock;
@@ -99,4 +98,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/uxap/BlockBase", "sap/ux
99
98
  })), _class2)) || _class);
100
99
  return SubSectionBlock;
101
100
  }, false);
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN1YlNlY3Rpb25CbG9jay50cyJdLCJuYW1lcyI6WyJCbG9ja0Jhc2VGb3JtQWRqdXN0bWVudCIsInV4YXBMaWIiLCJTdWJTZWN0aW9uQmxvY2siLCJkZWZpbmVVSTVDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsImdyb3VwIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImluaXQiLCJfYkNvbm5lY3RlZCIsIl9hcHBseUZvcm1BZGp1c3RtZW50Iiwic0Zvcm1BZGp1c3RtZW50IiwiZ2V0Rm9ybUFkanVzdG1lbnQiLCJvVmlldyIsIl9nZXRTZWxlY3RlZFZpZXdDb250ZW50Iiwib1BhcmVudCIsIl9vUGFyZW50T2JqZWN0UGFnZVN1YlNlY3Rpb24iLCJvRm9ybUFkanVzdG1lbnRGaWVsZHMiLCJOb25lIiwiX2NvbXB1dGVGb3JtQWRqdXN0bWVudEZpZWxkcyIsIl9vTGF5b3V0Q29uZmlnIiwiX2FkanVzdEZvcm0iLCJzZXRNb2RlIiwic01vZGUiLCJzZXRQcm9wZXJ0eSIsImNvbm5lY3RUb01vZGVscyIsIm9Db250ZW50IiwiZ2V0QWdncmVnYXRpb24iLCJCbG9ja0Jhc2UiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSx1QkFBdUIsR0FBR0MsT0FBTyxDQUFDRCx1QkFBeEM7TUFFTUUsZSxXQURMQyxjQUFjLENBQUMsc0RBQUQsQyxVQUViQyxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLGdDQUFSO0FBQTBDQyxJQUFBQSxLQUFLLEVBQUUsVUFBakQ7QUFBNkRDLElBQUFBLFlBQVksRUFBRTtBQUEzRSxHQUFELEMsVUFHUkMsV0FBVyxDQUFDO0FBQUVILElBQUFBLElBQUksRUFBRSxxQkFBUjtBQUErQkksSUFBQUEsUUFBUSxFQUFFO0FBQXpDLEdBQUQsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBR1pDLEksR0FBQSxnQkFBTztBQUNOLDJCQUFNQSxJQUFOOztBQUNDLFVBQUQsQ0FBY0MsV0FBZCxHQUE0QixJQUE1QjtBQUNBLEs7O1dBQ0RDLG9CLEdBQUEsZ0NBQXVCO0FBQ3RCLFVBQU1DLGVBQWUsR0FBRyxLQUFLQyxpQkFBTCxFQUF4QjtBQUFBLFVBQ0NDLEtBQUssR0FBRyxLQUFLQyx1QkFBTCxFQURUO0FBQUEsVUFFQ0MsT0FBTyxHQUFHLEtBQUtDLDRCQUZoQjs7QUFHQSxVQUFJQyxxQkFBSjs7QUFFQSxVQUFJTixlQUFlLEtBQUtiLHVCQUF1QixDQUFDb0IsSUFBNUMsSUFBb0RMLEtBQXBELElBQTZERSxPQUFqRSxFQUEwRTtBQUN6RUUsUUFBQUEscUJBQXFCLEdBQUcsS0FBS0UsNEJBQUwsQ0FBa0NSLGVBQWxDLEVBQW1ESSxPQUFPLENBQUNLLGNBQTNELENBQXhCOztBQUVBLGFBQUtDLFdBQUwsQ0FBaUJSLEtBQWpCLEVBQXdCSSxxQkFBeEI7QUFDQTtBQUNELEs7O1dBQ0RLLE8sR0FBQSxpQkFBUUMsS0FBUixFQUFvQjtBQUNuQixXQUFLQyxXQUFMLENBQWlCLE1BQWpCLEVBQXlCRCxLQUF6QixFQURtQixDQUVuQjtBQUNBLEs7O1dBRURFLGUsR0FBQSwyQkFBa0IsQ0FDakI7QUFDQSxLLENBQ0Q7OztXQUNBWCx1QixHQUFBLG1DQUEwQjtBQUN6QixVQUFNWSxRQUFRLEdBQUcsS0FBS0MsY0FBTCxDQUFvQixTQUFwQixDQUFqQjtBQUNBLGFBQU9ELFFBQVA7QUFDQSxLOzs7SUFuQzRCRSxTOzs7Ozs7Ozs7OztTQTJDZjVCLGUiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQmxvY2tCYXNlIGZyb20gXCJzYXAvdXhhcC9CbG9ja0Jhc2VcIjtcbmltcG9ydCB1eGFwTGliLCB7IEJsb2NrQmFzZUNvbHVtbkxheW91dCB9IGZyb20gXCJzYXAvdXhhcC9saWJyYXJ5XCI7XG5jb25zdCBCbG9ja0Jhc2VGb3JtQWRqdXN0bWVudCA9IHV4YXBMaWIuQmxvY2tCYXNlRm9ybUFkanVzdG1lbnQ7XG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpXG5jbGFzcyBTdWJTZWN0aW9uQmxvY2sgZXh0ZW5kcyBCbG9ja0Jhc2Uge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInNhcC51eGFwLkJsb2NrQmFzZUNvbHVtbkxheW91dFwiLCBncm91cDogXCJCZWhhdmlvclwiLCBkZWZhdWx0VmFsdWU6IDQgfSlcblx0Y29sdW1uTGF5b3V0ITogQmxvY2tCYXNlQ29sdW1uTGF5b3V0O1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cdHByaXZhdGUgX29QYXJlbnRPYmplY3RQYWdlU3ViU2VjdGlvbiE6IGFueTtcblx0aW5pdCgpIHtcblx0XHRzdXBlci5pbml0KCk7XG5cdFx0KHRoaXMgYXMgYW55KS5fYkNvbm5lY3RlZCA9IHRydWU7XG5cdH1cblx0X2FwcGx5Rm9ybUFkanVzdG1lbnQoKSB7XG5cdFx0Y29uc3Qgc0Zvcm1BZGp1c3RtZW50ID0gdGhpcy5nZXRGb3JtQWRqdXN0bWVudCgpLFxuXHRcdFx0b1ZpZXcgPSB0aGlzLl9nZXRTZWxlY3RlZFZpZXdDb250ZW50KCksXG5cdFx0XHRvUGFyZW50ID0gdGhpcy5fb1BhcmVudE9iamVjdFBhZ2VTdWJTZWN0aW9uO1xuXHRcdGxldCBvRm9ybUFkanVzdG1lbnRGaWVsZHM7XG5cblx0XHRpZiAoc0Zvcm1BZGp1c3RtZW50ICE9PSBCbG9ja0Jhc2VGb3JtQWRqdXN0bWVudC5Ob25lICYmIG9WaWV3ICYmIG9QYXJlbnQpIHtcblx0XHRcdG9Gb3JtQWRqdXN0bWVudEZpZWxkcyA9IHRoaXMuX2NvbXB1dGVGb3JtQWRqdXN0bWVudEZpZWxkcyhzRm9ybUFkanVzdG1lbnQsIG9QYXJlbnQuX29MYXlvdXRDb25maWcpO1xuXG5cdFx0XHR0aGlzLl9hZGp1c3RGb3JtKG9WaWV3LCBvRm9ybUFkanVzdG1lbnRGaWVsZHMpO1xuXHRcdH1cblx0fVxuXHRzZXRNb2RlKHNNb2RlOiBhbnkpIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwibW9kZVwiLCBzTW9kZSk7XG5cdFx0Ly8gT1BUSU9OQUw6IHRoaXMuaW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShcIi9tb2RlXCIsIHNNb2RlKTtcblx0fVxuXG5cdGNvbm5lY3RUb01vZGVscygpIHtcblx0XHQvLyBWaWV3IGlzIGFscmVhZHkgY29ubmVjdGVkIHRvIHRoZSBVSTUgbW9kZWwgdHJlZSwgaGVuY2Ugbm8gZXh0cmEgbG9naWMgcmVxdWlyZWQgaGVyZVxuXHR9XG5cdC8vLyBTdWJTZWN0aW9uQmxvY2sgdXNlIGFnZ3JlZ2F0aW9uIGluc3RlYWQgb2YgYSB2aWV3LCBpLmUuIHJldHVybiB0aGF0IGFzIHRoZSB2aWV3IGNvbnRlbnRcblx0X2dldFNlbGVjdGVkVmlld0NvbnRlbnQoKSB7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKTtcblx0XHRyZXR1cm4gb0NvbnRlbnQ7XG5cdH1cbn1cblxuaW50ZXJmYWNlIFN1YlNlY3Rpb25CbG9jayB7XG5cdF9hZGp1c3RGb3JtKHZpZXc6IGFueSwgZm9ybUZpZWxkczogYW55KTogdm9pZDtcblx0X2NvbXB1dGVGb3JtQWRqdXN0bWVudEZpZWxkcyhzRm9ybUFkanVzdG1lbnQ6IGFueSwgX29MYXlvdXRDb25maWc6IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ViU2VjdGlvbkJsb2NrO1xuIl19
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN1YlNlY3Rpb25CbG9jay50cyJdLCJuYW1lcyI6WyJCbG9ja0Jhc2VGb3JtQWRqdXN0bWVudCIsInV4YXBMaWIiLCJTdWJTZWN0aW9uQmxvY2siLCJkZWZpbmVVSTVDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsImdyb3VwIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImluaXQiLCJfYkNvbm5lY3RlZCIsIl9hcHBseUZvcm1BZGp1c3RtZW50Iiwic0Zvcm1BZGp1c3RtZW50IiwiZ2V0Rm9ybUFkanVzdG1lbnQiLCJvVmlldyIsIl9nZXRTZWxlY3RlZFZpZXdDb250ZW50Iiwib1BhcmVudCIsIl9vUGFyZW50T2JqZWN0UGFnZVN1YlNlY3Rpb24iLCJvRm9ybUFkanVzdG1lbnRGaWVsZHMiLCJOb25lIiwiX2NvbXB1dGVGb3JtQWRqdXN0bWVudEZpZWxkcyIsIl9vTGF5b3V0Q29uZmlnIiwiX2FkanVzdEZvcm0iLCJzZXRNb2RlIiwic01vZGUiLCJzZXRQcm9wZXJ0eSIsImNvbm5lY3RUb01vZGVscyIsImdldEFnZ3JlZ2F0aW9uIiwiQmxvY2tCYXNlIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsTUFBTUEsdUJBQXVCLEdBQUdDLE9BQU8sQ0FBQ0QsdUJBQXhDO01BRU1FLGUsV0FETEMsY0FBYyxDQUFDLHNEQUFELEMsVUFFYkMsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRSxnQ0FBUjtBQUEwQ0MsSUFBQUEsS0FBSyxFQUFFLFVBQWpEO0FBQTZEQyxJQUFBQSxZQUFZLEVBQUU7QUFBM0UsR0FBRCxDLFVBR1JDLFdBQVcsQ0FBQztBQUFFSCxJQUFBQSxJQUFJLEVBQUUscUJBQVI7QUFBK0JJLElBQUFBLFFBQVEsRUFBRTtBQUF6QyxHQUFELEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdaQyxJLEdBQUEsZ0JBQU87QUFDTiwyQkFBTUEsSUFBTjs7QUFDQyxVQUFELENBQWNDLFdBQWQsR0FBNEIsSUFBNUI7QUFDQSxLOztXQUNEQyxvQixHQUFBLGdDQUF1QjtBQUN0QixVQUFNQyxlQUFlLEdBQUcsS0FBS0MsaUJBQUwsRUFBeEI7QUFBQSxVQUNDQyxLQUFLLEdBQUcsS0FBS0MsdUJBQUwsRUFEVDtBQUFBLFVBRUNDLE9BQU8sR0FBRyxLQUFLQyw0QkFGaEI7O0FBR0EsVUFBSUMscUJBQUo7O0FBRUEsVUFBSU4sZUFBZSxLQUFLYix1QkFBdUIsQ0FBQ29CLElBQTVDLElBQW9ETCxLQUFwRCxJQUE2REUsT0FBakUsRUFBMEU7QUFDekVFLFFBQUFBLHFCQUFxQixHQUFHLEtBQUtFLDRCQUFMLENBQWtDUixlQUFsQyxFQUFtREksT0FBTyxDQUFDSyxjQUEzRCxDQUF4Qjs7QUFFQSxhQUFLQyxXQUFMLENBQWlCUixLQUFqQixFQUF3QkkscUJBQXhCO0FBQ0E7QUFDRCxLOztXQUNESyxPLEdBQUEsaUJBQVFDLEtBQVIsRUFBb0I7QUFDbkIsV0FBS0MsV0FBTCxDQUFpQixNQUFqQixFQUF5QkQsS0FBekIsRUFEbUIsQ0FFbkI7QUFDQSxLOztXQUVERSxlLEdBQUEsMkJBQWtCLENBQ2pCO0FBQ0EsSyxDQUNEOzs7V0FDQVgsdUIsR0FBQSxtQ0FBMEI7QUFDekIsYUFBTyxLQUFLWSxjQUFMLENBQW9CLFNBQXBCLENBQVA7QUFDQSxLOzs7SUFsQzRCQyxTOzs7Ozs7Ozs7OztTQTBDZjNCLGUiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBCbG9ja0Jhc2UgZnJvbSBcInNhcC91eGFwL0Jsb2NrQmFzZVwiO1xuaW1wb3J0IHR5cGUgeyBCbG9ja0Jhc2VDb2x1bW5MYXlvdXQgfSBmcm9tIFwic2FwL3V4YXAvbGlicmFyeVwiO1xuaW1wb3J0IHV4YXBMaWIgZnJvbSBcInNhcC91eGFwL2xpYnJhcnlcIjtcbmNvbnN0IEJsb2NrQmFzZUZvcm1BZGp1c3RtZW50ID0gdXhhcExpYi5CbG9ja0Jhc2VGb3JtQWRqdXN0bWVudDtcbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdWJTZWN0aW9uQmxvY2tcIilcbmNsYXNzIFN1YlNlY3Rpb25CbG9jayBleHRlbmRzIEJsb2NrQmFzZSB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic2FwLnV4YXAuQmxvY2tCYXNlQ29sdW1uTGF5b3V0XCIsIGdyb3VwOiBcIkJlaGF2aW9yXCIsIGRlZmF1bHRWYWx1ZTogNCB9KVxuXHRjb2x1bW5MYXlvdXQhOiBCbG9ja0Jhc2VDb2x1bW5MYXlvdXQ7XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRjb250ZW50ITogQ29udHJvbDtcblx0cHJpdmF0ZSBfb1BhcmVudE9iamVjdFBhZ2VTdWJTZWN0aW9uITogYW55O1xuXHRpbml0KCkge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHQodGhpcyBhcyBhbnkpLl9iQ29ubmVjdGVkID0gdHJ1ZTtcblx0fVxuXHRfYXBwbHlGb3JtQWRqdXN0bWVudCgpIHtcblx0XHRjb25zdCBzRm9ybUFkanVzdG1lbnQgPSB0aGlzLmdldEZvcm1BZGp1c3RtZW50KCksXG5cdFx0XHRvVmlldyA9IHRoaXMuX2dldFNlbGVjdGVkVmlld0NvbnRlbnQoKSxcblx0XHRcdG9QYXJlbnQgPSB0aGlzLl9vUGFyZW50T2JqZWN0UGFnZVN1YlNlY3Rpb247XG5cdFx0bGV0IG9Gb3JtQWRqdXN0bWVudEZpZWxkcztcblxuXHRcdGlmIChzRm9ybUFkanVzdG1lbnQgIT09IEJsb2NrQmFzZUZvcm1BZGp1c3RtZW50Lk5vbmUgJiYgb1ZpZXcgJiYgb1BhcmVudCkge1xuXHRcdFx0b0Zvcm1BZGp1c3RtZW50RmllbGRzID0gdGhpcy5fY29tcHV0ZUZvcm1BZGp1c3RtZW50RmllbGRzKHNGb3JtQWRqdXN0bWVudCwgb1BhcmVudC5fb0xheW91dENvbmZpZyk7XG5cblx0XHRcdHRoaXMuX2FkanVzdEZvcm0ob1ZpZXcsIG9Gb3JtQWRqdXN0bWVudEZpZWxkcyk7XG5cdFx0fVxuXHR9XG5cdHNldE1vZGUoc01vZGU6IGFueSkge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJtb2RlXCIsIHNNb2RlKTtcblx0XHQvLyBPUFRJT05BTDogdGhpcy5pbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KFwiL21vZGVcIiwgc01vZGUpO1xuXHR9XG5cblx0Y29ubmVjdFRvTW9kZWxzKCkge1xuXHRcdC8vIFZpZXcgaXMgYWxyZWFkeSBjb25uZWN0ZWQgdG8gdGhlIFVJNSBtb2RlbCB0cmVlLCBoZW5jZSBubyBleHRyYSBsb2dpYyByZXF1aXJlZCBoZXJlXG5cdH1cblx0Ly8vIFN1YlNlY3Rpb25CbG9jayB1c2UgYWdncmVnYXRpb24gaW5zdGVhZCBvZiBhIHZpZXcsIGkuZS4gcmV0dXJuIHRoYXQgYXMgdGhlIHZpZXcgY29udGVudFxuXHRfZ2V0U2VsZWN0ZWRWaWV3Q29udGVudCgpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRBZ2dyZWdhdGlvbihcImNvbnRlbnRcIik7XG5cdH1cbn1cblxuaW50ZXJmYWNlIFN1YlNlY3Rpb25CbG9jayB7XG5cdF9hZGp1c3RGb3JtKHZpZXc6IGFueSwgZm9ybUZpZWxkczogYW55KTogdm9pZDtcblx0X2NvbXB1dGVGb3JtQWRqdXN0bWVudEZpZWxkcyhzRm9ybUFkanVzdG1lbnQ6IGFueSwgX29MYXlvdXRDb25maWc6IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ViU2VjdGlvbkJsb2NrO1xuIl19
@@ -1,7 +1,8 @@
1
1
  import { aggregation, defineUI5Class, property } from "sap/fe/core/helpers/ClassSupport";
2
- import Control from "sap/ui/core/Control";
2
+ import type Control from "sap/ui/core/Control";
3
3
  import BlockBase from "sap/uxap/BlockBase";
4
- import uxapLib, { BlockBaseColumnLayout } from "sap/uxap/library";
4
+ import type { BlockBaseColumnLayout } from "sap/uxap/library";
5
+ import uxapLib from "sap/uxap/library";
5
6
  const BlockBaseFormAdjustment = uxapLib.BlockBaseFormAdjustment;
6
7
  @defineUI5Class("sap.fe.templates.ObjectPage.controls.SubSectionBlock")
7
8
  class SubSectionBlock extends BlockBase {
@@ -37,8 +38,7 @@ class SubSectionBlock extends BlockBase {
37
38
  }
38
39
  /// SubSectionBlock use aggregation instead of a view, i.e. return that as the view content
39
40
  _getSelectedViewContent() {
40
- const oContent = this.getAggregation("content");
41
- return oContent;
41
+ return this.getAggregation("content");
42
42
  }
43
43
  }
44
44
 
@@ -51,4 +51,4 @@ sap.ui.define(["sap/ui/core/Core"], function (Core) {
51
51
  };
52
52
  return StashableHBoxDesignTime;
53
53
  }, false);
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN0YXNoYWJsZUhCb3guZGVzaWdudGltZS50cyJdLCJuYW1lcyI6WyJvUmVzb3VyY2VCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiU3Rhc2hhYmxlSEJveERlc2lnblRpbWUiLCJhY3Rpb25zIiwicmVtb3ZlIiwiY2hhbmdlVHlwZSIsInJldmVhbCIsInJlbmFtZSIsImRvbVJlZiIsIm9Db250cm9sIiwib1RpdGxlQ29udHJvbCIsImdldFRpdGxlQ29udHJvbCIsImdldERvbVJlZiIsIm5hbWUiLCJzaW5ndWxhciIsImdldFRleHQiLCJwbHVyYWwiLCJwYWxldHRlIiwiZ3JvdXAiLCJpY29ucyIsInN2ZyIsInRlbXBsYXRlcyIsImNyZWF0ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUNBLE1BQU1BLGVBQWUsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGtCQUExQyxDQUF4QjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHO0FBQy9CQyxJQUFBQSxPQUFPLEVBQUU7QUFDUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BDLFFBQUFBLFVBQVUsRUFBRTtBQURMLE9BREE7QUFJUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BELFFBQUFBLFVBQVUsRUFBRTtBQURMLE9BSkE7QUFPUkUsTUFBQUEsTUFBTSxFQUFFO0FBQVU7QUFBVixTQUFpQztBQUN4QyxlQUFPO0FBQ05GLFVBQUFBLFVBQVUsRUFBRSxtQkFETjtBQUVORyxVQUFBQSxNQUFNLEVBQUUsVUFBVUMsUUFBVixFQUF5QjtBQUNoQyxnQkFBTUMsYUFBYSxHQUFHRCxRQUFRLENBQUNFLGVBQVQsRUFBdEI7O0FBQ0EsZ0JBQUlELGFBQUosRUFBbUI7QUFDbEIscUJBQU9BLGFBQWEsQ0FBQ0UsU0FBZCxFQUFQO0FBQ0EsYUFGRCxNQUVPO0FBQ04scUJBQU8sSUFBUDtBQUNBO0FBQ0Q7QUFUSyxTQUFQO0FBV0E7QUFuQk8sS0FEc0I7QUFzQi9CQyxJQUFBQSxJQUFJLEVBQUU7QUFDTEMsTUFBQUEsUUFBUSxFQUFFLFlBQVk7QUFDckIsZUFBT2YsZUFBZSxDQUFDZ0IsT0FBaEIsQ0FBd0IsMkNBQXhCLENBQVA7QUFDQSxPQUhJO0FBSUxDLE1BQUFBLE1BQU0sRUFBRSxZQUFZO0FBQ25CLGVBQU9qQixlQUFlLENBQUNnQixPQUFoQixDQUF3QixrREFBeEIsQ0FBUDtBQUNBO0FBTkksS0F0QnlCO0FBOEIvQkUsSUFBQUEsT0FBTyxFQUFFO0FBQ1JDLE1BQUFBLEtBQUssRUFBRSxRQURDO0FBRVJDLE1BQUFBLEtBQUssRUFBRTtBQUNOQyxRQUFBQSxHQUFHLEVBQUU7QUFEQztBQUZDLEtBOUJzQjtBQW9DL0JDLElBQUFBLFNBQVMsRUFBRTtBQUNWQyxNQUFBQSxNQUFNLEVBQUU7QUFERTtBQXBDb0IsR0FBaEM7U0F5Q2VwQix1QiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB7IENvcmVFeCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuY29uc3Qgb1Jlc291cmNlQnVuZGxlID0gKENvcmUgYXMgQ29yZUV4KS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUudGVtcGxhdGVzXCIpO1xuXG5jb25zdCBTdGFzaGFibGVIQm94RGVzaWduVGltZSA9IHtcblx0YWN0aW9uczoge1xuXHRcdHJlbW92ZToge1xuXHRcdFx0Y2hhbmdlVHlwZTogXCJzdGFzaENvbnRyb2xcIlxuXHRcdH0sXG5cdFx0cmV2ZWFsOiB7XG5cdFx0XHRjaGFuZ2VUeXBlOiBcInVuc3Rhc2hDb250cm9sXCJcblx0XHR9LFxuXHRcdHJlbmFtZTogZnVuY3Rpb24gKC8qb0hlYWRlckZhY2V0OiBhbnkqLykge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y2hhbmdlVHlwZTogXCJyZW5hbWVIZWFkZXJGYWNldFwiLFxuXHRcdFx0XHRkb21SZWY6IGZ1bmN0aW9uIChvQ29udHJvbDogYW55KSB7XG5cdFx0XHRcdFx0Y29uc3Qgb1RpdGxlQ29udHJvbCA9IG9Db250cm9sLmdldFRpdGxlQ29udHJvbCgpO1xuXHRcdFx0XHRcdGlmIChvVGl0bGVDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb1RpdGxlQ29udHJvbC5nZXREb21SZWYoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblx0fSxcblx0bmFtZToge1xuXHRcdHNpbmd1bGFyOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX1NUQVNIQUJMRV9IQk9YX1JUQV9IRUFERVJGQUNFVF9NRU5VX0FERFwiKTtcblx0XHR9LFxuXHRcdHBsdXJhbDogZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiVF9TVEFTSEFCTEVfSEJPWF9SVEFfSEVBREVSRkFDRVRfTUVOVV9BRERfUExVUkFMXCIpO1xuXHRcdH1cblx0fSxcblx0cGFsZXR0ZToge1xuXHRcdGdyb3VwOiBcIkxBWU9VVFwiLFxuXHRcdGljb25zOiB7XG5cdFx0XHRzdmc6IFwic2FwL20vZGVzaWdudGltZS9IQm94Lmljb24uc3ZnXCJcblx0XHR9XG5cdH0sXG5cdHRlbXBsYXRlczoge1xuXHRcdGNyZWF0ZTogXCJzYXAvbS9kZXNpZ250aW1lL0hCb3guY3JlYXRlLmZyYWdtZW50LnhtbFwiXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXNoYWJsZUhCb3hEZXNpZ25UaW1lO1xuIl19
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN0YXNoYWJsZUhCb3guZGVzaWdudGltZS50cyJdLCJuYW1lcyI6WyJvUmVzb3VyY2VCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiU3Rhc2hhYmxlSEJveERlc2lnblRpbWUiLCJhY3Rpb25zIiwicmVtb3ZlIiwiY2hhbmdlVHlwZSIsInJldmVhbCIsInJlbmFtZSIsImRvbVJlZiIsIm9Db250cm9sIiwib1RpdGxlQ29udHJvbCIsImdldFRpdGxlQ29udHJvbCIsImdldERvbVJlZiIsIm5hbWUiLCJzaW5ndWxhciIsImdldFRleHQiLCJwbHVyYWwiLCJwYWxldHRlIiwiZ3JvdXAiLCJpY29ucyIsInN2ZyIsInRlbXBsYXRlcyIsImNyZWF0ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUNBLE1BQU1BLGVBQWUsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGtCQUExQyxDQUF4QjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHO0FBQy9CQyxJQUFBQSxPQUFPLEVBQUU7QUFDUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BDLFFBQUFBLFVBQVUsRUFBRTtBQURMLE9BREE7QUFJUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BELFFBQUFBLFVBQVUsRUFBRTtBQURMLE9BSkE7QUFPUkUsTUFBQUEsTUFBTSxFQUFFO0FBQVU7QUFBVixTQUFpQztBQUN4QyxlQUFPO0FBQ05GLFVBQUFBLFVBQVUsRUFBRSxtQkFETjtBQUVORyxVQUFBQSxNQUFNLEVBQUUsVUFBVUMsUUFBVixFQUF5QjtBQUNoQyxnQkFBTUMsYUFBYSxHQUFHRCxRQUFRLENBQUNFLGVBQVQsRUFBdEI7O0FBQ0EsZ0JBQUlELGFBQUosRUFBbUI7QUFDbEIscUJBQU9BLGFBQWEsQ0FBQ0UsU0FBZCxFQUFQO0FBQ0EsYUFGRCxNQUVPO0FBQ04scUJBQU8sSUFBUDtBQUNBO0FBQ0Q7QUFUSyxTQUFQO0FBV0E7QUFuQk8sS0FEc0I7QUFzQi9CQyxJQUFBQSxJQUFJLEVBQUU7QUFDTEMsTUFBQUEsUUFBUSxFQUFFLFlBQVk7QUFDckIsZUFBT2YsZUFBZSxDQUFDZ0IsT0FBaEIsQ0FBd0IsMkNBQXhCLENBQVA7QUFDQSxPQUhJO0FBSUxDLE1BQUFBLE1BQU0sRUFBRSxZQUFZO0FBQ25CLGVBQU9qQixlQUFlLENBQUNnQixPQUFoQixDQUF3QixrREFBeEIsQ0FBUDtBQUNBO0FBTkksS0F0QnlCO0FBOEIvQkUsSUFBQUEsT0FBTyxFQUFFO0FBQ1JDLE1BQUFBLEtBQUssRUFBRSxRQURDO0FBRVJDLE1BQUFBLEtBQUssRUFBRTtBQUNOQyxRQUFBQSxHQUFHLEVBQUU7QUFEQztBQUZDLEtBOUJzQjtBQW9DL0JDLElBQUFBLFNBQVMsRUFBRTtBQUNWQyxNQUFBQSxNQUFNLEVBQUU7QUFERTtBQXBDb0IsR0FBaEM7U0F5Q2VwQix1QiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB0eXBlIHsgQ29yZUV4IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG5jb25zdCBvUmVzb3VyY2VCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS50ZW1wbGF0ZXNcIik7XG5cbmNvbnN0IFN0YXNoYWJsZUhCb3hEZXNpZ25UaW1lID0ge1xuXHRhY3Rpb25zOiB7XG5cdFx0cmVtb3ZlOiB7XG5cdFx0XHRjaGFuZ2VUeXBlOiBcInN0YXNoQ29udHJvbFwiXG5cdFx0fSxcblx0XHRyZXZlYWw6IHtcblx0XHRcdGNoYW5nZVR5cGU6IFwidW5zdGFzaENvbnRyb2xcIlxuXHRcdH0sXG5cdFx0cmVuYW1lOiBmdW5jdGlvbiAoLypvSGVhZGVyRmFjZXQ6IGFueSovKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRjaGFuZ2VUeXBlOiBcInJlbmFtZUhlYWRlckZhY2V0XCIsXG5cdFx0XHRcdGRvbVJlZjogZnVuY3Rpb24gKG9Db250cm9sOiBhbnkpIHtcblx0XHRcdFx0XHRjb25zdCBvVGl0bGVDb250cm9sID0gb0NvbnRyb2wuZ2V0VGl0bGVDb250cm9sKCk7XG5cdFx0XHRcdFx0aWYgKG9UaXRsZUNvbnRyb2wpIHtcblx0XHRcdFx0XHRcdHJldHVybiBvVGl0bGVDb250cm9sLmdldERvbVJlZigpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHR9LFxuXHRuYW1lOiB7XG5cdFx0c2luZ3VsYXI6IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfU1RBU0hBQkxFX0hCT1hfUlRBX0hFQURFUkZBQ0VUX01FTlVfQUREXCIpO1xuXHRcdH0sXG5cdFx0cGx1cmFsOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX1NUQVNIQUJMRV9IQk9YX1JUQV9IRUFERVJGQUNFVF9NRU5VX0FERF9QTFVSQUxcIik7XG5cdFx0fVxuXHR9LFxuXHRwYWxldHRlOiB7XG5cdFx0Z3JvdXA6IFwiTEFZT1VUXCIsXG5cdFx0aWNvbnM6IHtcblx0XHRcdHN2ZzogXCJzYXAvbS9kZXNpZ250aW1lL0hCb3guaWNvbi5zdmdcIlxuXHRcdH1cblx0fSxcblx0dGVtcGxhdGVzOiB7XG5cdFx0Y3JlYXRlOiBcInNhcC9tL2Rlc2lnbnRpbWUvSEJveC5jcmVhdGUuZnJhZ21lbnQueG1sXCJcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3Rhc2hhYmxlSEJveERlc2lnblRpbWU7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import Core from "sap/ui/core/Core";
2
- import { CoreEx } from "types/extension_types";
2
+ import type { CoreEx } from "types/extension_types";
3
3
 
4
4
  const oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.templates");
5
5
 
@@ -35,4 +35,4 @@ sap.ui.define(["sap/ui/core/Core"], function (Core) {
35
35
  };
36
36
  return StashableVBoxDesignTime;
37
37
  }, false);
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN0YXNoYWJsZVZCb3guZGVzaWdudGltZS50cyJdLCJuYW1lcyI6WyJvUmVzb3VyY2VCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiU3Rhc2hhYmxlVkJveERlc2lnblRpbWUiLCJhY3Rpb25zIiwicmVtb3ZlIiwiY2hhbmdlVHlwZSIsInJldmVhbCIsIm5hbWUiLCJzaW5ndWxhciIsImdldFRleHQiLCJwbHVyYWwiLCJwYWxldHRlIiwiZ3JvdXAiLCJpY29ucyIsInN2ZyIsInRlbXBsYXRlcyIsImNyZWF0ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUNBLE1BQU1BLGVBQWUsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGtCQUExQyxDQUF4QjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHO0FBQy9CQyxJQUFBQSxPQUFPLEVBQUU7QUFDUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BDLFFBQUFBLFVBQVUsRUFBRTtBQURMLE9BREE7QUFJUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BELFFBQUFBLFVBQVUsRUFBRTtBQURMO0FBSkEsS0FEc0I7QUFTL0JFLElBQUFBLElBQUksRUFBRTtBQUNMQyxNQUFBQSxRQUFRLEVBQUUsWUFBWTtBQUNyQixlQUFPVCxlQUFlLENBQUNVLE9BQWhCLENBQXdCLHFEQUF4QixDQUFQO0FBQ0EsT0FISTtBQUlMQyxNQUFBQSxNQUFNLEVBQUUsWUFBWTtBQUNuQixlQUFPWCxlQUFlLENBQUNVLE9BQWhCLENBQXdCLDREQUF4QixDQUFQO0FBQ0E7QUFOSSxLQVR5QjtBQWlCL0JFLElBQUFBLE9BQU8sRUFBRTtBQUNSQyxNQUFBQSxLQUFLLEVBQUUsUUFEQztBQUVSQyxNQUFBQSxLQUFLLEVBQUU7QUFDTkMsUUFBQUEsR0FBRyxFQUFFO0FBREM7QUFGQyxLQWpCc0I7QUF1Qi9CQyxJQUFBQSxTQUFTLEVBQUU7QUFDVkMsTUFBQUEsTUFBTSxFQUFFO0FBREU7QUF2Qm9CLEdBQWhDO1NBNEJlZCx1QiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB7IENvcmVFeCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuY29uc3Qgb1Jlc291cmNlQnVuZGxlID0gKENvcmUgYXMgQ29yZUV4KS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUudGVtcGxhdGVzXCIpO1xuXG5jb25zdCBTdGFzaGFibGVWQm94RGVzaWduVGltZSA9IHtcblx0YWN0aW9uczoge1xuXHRcdHJlbW92ZToge1xuXHRcdFx0Y2hhbmdlVHlwZTogXCJzdGFzaENvbnRyb2xcIlxuXHRcdH0sXG5cdFx0cmV2ZWFsOiB7XG5cdFx0XHRjaGFuZ2VUeXBlOiBcInVuc3Rhc2hDb250cm9sXCJcblx0XHR9XG5cdH0sXG5cdG5hbWU6IHtcblx0XHRzaW5ndWxhcjogZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiVF9TVEFTSEFCTEVfVkJPWF9SVEFfSEVBREVSQ09MTEVDVElPTkZBQ0VUX01FTlVfQUREXCIpO1xuXHRcdH0sXG5cdFx0cGx1cmFsOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX1NUQVNIQUJMRV9WQk9YX1JUQV9IRUFERVJDT0xMRUNUSU9ORkFDRVRfTUVOVV9BRERfUExVUkFMXCIpO1xuXHRcdH1cblx0fSxcblx0cGFsZXR0ZToge1xuXHRcdGdyb3VwOiBcIkxBWU9VVFwiLFxuXHRcdGljb25zOiB7XG5cdFx0XHRzdmc6IFwic2FwL20vZGVzaWdudGltZS9WQm94Lmljb24uc3ZnXCJcblx0XHR9XG5cdH0sXG5cdHRlbXBsYXRlczoge1xuXHRcdGNyZWF0ZTogXCJzYXAvbS9kZXNpZ250aW1lL1ZCb3guY3JlYXRlLmZyYWdtZW50LnhtbFwiXG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXNoYWJsZVZCb3hEZXNpZ25UaW1lO1xuIl19
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN0YXNoYWJsZVZCb3guZGVzaWdudGltZS50cyJdLCJuYW1lcyI6WyJvUmVzb3VyY2VCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiU3Rhc2hhYmxlVkJveERlc2lnblRpbWUiLCJhY3Rpb25zIiwicmVtb3ZlIiwiY2hhbmdlVHlwZSIsInJldmVhbCIsIm5hbWUiLCJzaW5ndWxhciIsImdldFRleHQiLCJwbHVyYWwiLCJwYWxldHRlIiwiZ3JvdXAiLCJpY29ucyIsInN2ZyIsInRlbXBsYXRlcyIsImNyZWF0ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUNBLE1BQU1BLGVBQWUsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGtCQUExQyxDQUF4QjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHO0FBQy9CQyxJQUFBQSxPQUFPLEVBQUU7QUFDUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BDLFFBQUFBLFVBQVUsRUFBRTtBQURMLE9BREE7QUFJUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ1BELFFBQUFBLFVBQVUsRUFBRTtBQURMO0FBSkEsS0FEc0I7QUFTL0JFLElBQUFBLElBQUksRUFBRTtBQUNMQyxNQUFBQSxRQUFRLEVBQUUsWUFBWTtBQUNyQixlQUFPVCxlQUFlLENBQUNVLE9BQWhCLENBQXdCLHFEQUF4QixDQUFQO0FBQ0EsT0FISTtBQUlMQyxNQUFBQSxNQUFNLEVBQUUsWUFBWTtBQUNuQixlQUFPWCxlQUFlLENBQUNVLE9BQWhCLENBQXdCLDREQUF4QixDQUFQO0FBQ0E7QUFOSSxLQVR5QjtBQWlCL0JFLElBQUFBLE9BQU8sRUFBRTtBQUNSQyxNQUFBQSxLQUFLLEVBQUUsUUFEQztBQUVSQyxNQUFBQSxLQUFLLEVBQUU7QUFDTkMsUUFBQUEsR0FBRyxFQUFFO0FBREM7QUFGQyxLQWpCc0I7QUF1Qi9CQyxJQUFBQSxTQUFTLEVBQUU7QUFDVkMsTUFBQUEsTUFBTSxFQUFFO0FBREU7QUF2Qm9CLEdBQWhDO1NBNEJlZCx1QiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB0eXBlIHsgQ29yZUV4IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG5jb25zdCBvUmVzb3VyY2VCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS50ZW1wbGF0ZXNcIik7XG5cbmNvbnN0IFN0YXNoYWJsZVZCb3hEZXNpZ25UaW1lID0ge1xuXHRhY3Rpb25zOiB7XG5cdFx0cmVtb3ZlOiB7XG5cdFx0XHRjaGFuZ2VUeXBlOiBcInN0YXNoQ29udHJvbFwiXG5cdFx0fSxcblx0XHRyZXZlYWw6IHtcblx0XHRcdGNoYW5nZVR5cGU6IFwidW5zdGFzaENvbnRyb2xcIlxuXHRcdH1cblx0fSxcblx0bmFtZToge1xuXHRcdHNpbmd1bGFyOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX1NUQVNIQUJMRV9WQk9YX1JUQV9IRUFERVJDT0xMRUNUSU9ORkFDRVRfTUVOVV9BRERcIik7XG5cdFx0fSxcblx0XHRwbHVyYWw6IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfU1RBU0hBQkxFX1ZCT1hfUlRBX0hFQURFUkNPTExFQ1RJT05GQUNFVF9NRU5VX0FERF9QTFVSQUxcIik7XG5cdFx0fVxuXHR9LFxuXHRwYWxldHRlOiB7XG5cdFx0Z3JvdXA6IFwiTEFZT1VUXCIsXG5cdFx0aWNvbnM6IHtcblx0XHRcdHN2ZzogXCJzYXAvbS9kZXNpZ250aW1lL1ZCb3guaWNvbi5zdmdcIlxuXHRcdH1cblx0fSxcblx0dGVtcGxhdGVzOiB7XG5cdFx0Y3JlYXRlOiBcInNhcC9tL2Rlc2lnbnRpbWUvVkJveC5jcmVhdGUuZnJhZ21lbnQueG1sXCJcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3Rhc2hhYmxlVkJveERlc2lnblRpbWU7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import Core from "sap/ui/core/Core";
2
- import { CoreEx } from "types/extension_types";
2
+ import type { CoreEx } from "types/extension_types";
3
3
 
4
4
  const oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.templates");
5
5
 
@@ -0,0 +1,103 @@
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/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPreprocessor", "sap/ui/core/XMLTemplateProcessor", "sap/ui/model/json/JSONModel"], function (Log, Fragment, XMLPreprocessor, XMLTemplateProcessor, JSONModel) {
6
+ "use strict";
7
+
8
+ var oSwitchDraftAndActivePopOver;
9
+ /**
10
+ * Generic handler collection for several events in the draft topic area
11
+ */
12
+
13
+ var DraftHandler = {
14
+ /**
15
+ * The method with the behaviour on the switch draft mode button.
16
+ *
17
+ * @param this The type of the this refered to PageController.
18
+ * @param event The event with the bound source control.
19
+ */
20
+ showSwitchDraftAndActivePopover: function (event) {
21
+ var _this = this;
22
+
23
+ var view = this.getView(),
24
+ source = event.getSource(),
25
+ fragmentName = "sap.fe.templates.ObjectPage.view.fragments.SwitchDraftAndActiveObjectPopOver";
26
+
27
+ if (oSwitchDraftAndActivePopOver) {
28
+ oSwitchDraftAndActivePopOver.openBy(source, false);
29
+ } else {
30
+ var localThisModel = new JSONModel({}),
31
+ preprocessorSettings = {
32
+ bindingContexts: {
33
+ "this": localThisModel.createBindingContext("/")
34
+ },
35
+ models: {
36
+ "this": localThisModel
37
+ }
38
+ };
39
+ var popoverFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
40
+ Promise.resolve(XMLPreprocessor.process(popoverFragment, {
41
+ name: fragmentName
42
+ }, preprocessorSettings)).then(function (fragment) {
43
+ return Fragment.load({
44
+ definition: fragment,
45
+ controller: _this
46
+ });
47
+ }).then(function (popover) {
48
+ view.addDependent(popover);
49
+ popover.setModel(view.getModel("sap.fe.i18n"), "i18n");
50
+ popover.setPlacement("Bottom");
51
+ oSwitchDraftAndActivePopOver = popover;
52
+ popover.attachAfterOpen(function () {
53
+ // While the list entry corresponding to the currently displayed document version is emphasized with a blue
54
+ // background, we need to pre-focus the other entry
55
+ var context = _this.getView().getBindingContext(),
56
+ isActiveEntity = context.getObject().IsActiveEntity;
57
+
58
+ var switchDraftAndActiveOptionsList = popover.getContent().find(function (element) {
59
+ return element.data("listIdentifier") === "switchDraftAndActivePopoverList";
60
+ });
61
+ var listItemToFocus = isActiveEntity ? switchDraftAndActiveOptionsList.getItems().find(function (element) {
62
+ return element.getKey() === "switchToDraft";
63
+ }) : switchDraftAndActiveOptionsList.getItems().find(function (element) {
64
+ return element.getKey() === "switchToActive";
65
+ });
66
+ listItemToFocus.focus();
67
+ });
68
+ popover.openBy(source); // ensure to remove the reference to the draft popover as it would be destroyed on exit
69
+
70
+ view.attachEventOnce("beforeExit", function () {
71
+ oSwitchDraftAndActivePopOver.destroy();
72
+ });
73
+ }).catch(function (Error) {
74
+ Log.error("Error while opening the draft switch popup", Error);
75
+ });
76
+ }
77
+ },
78
+
79
+ /**
80
+ * The method with the behaviour on the switch draft mode button popover when an entry is selected.
81
+ *
82
+ * @param this The type of the this refered to PageController.
83
+ * @param event The event with the bound source control.
84
+ */
85
+ switchDraftAndActivePopoverListSelect: function (event) {
86
+ var context = this.getView().getBindingContext(),
87
+ selectedItemKey = event.getParameter("item").getProperty("key"),
88
+ isActiveEntity = context.getObject().IsActiveEntity; // It was decided that we should NOT set the entry in the list corresponding to the currently displayed document version to
89
+ // disabled, hence the user can click entries which to not cause an action (clicking "Draft" when you already display the
90
+ // draft version of the document)
91
+ // Hence we check here which entry in the list was clicked and which document version we currently display and only do
92
+ // the switch between draft / active version if it makes sense.
93
+
94
+ if (isActiveEntity && selectedItemKey === "switchToDraft" || !isActiveEntity && selectedItemKey === "switchToActive") {
95
+ this.editFlow.toggleDraftActive(context);
96
+ }
97
+
98
+ event.getSource().getParent().close();
99
+ }
100
+ };
101
+ return DraftHandler;
102
+ }, false);
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyYWZ0SGFuZGxlci50cyJdLCJuYW1lcyI6WyJvU3dpdGNoRHJhZnRBbmRBY3RpdmVQb3BPdmVyIiwiRHJhZnRIYW5kbGVyIiwic2hvd1N3aXRjaERyYWZ0QW5kQWN0aXZlUG9wb3ZlciIsImV2ZW50IiwidmlldyIsImdldFZpZXciLCJzb3VyY2UiLCJnZXRTb3VyY2UiLCJmcmFnbWVudE5hbWUiLCJvcGVuQnkiLCJsb2NhbFRoaXNNb2RlbCIsIkpTT05Nb2RlbCIsInByZXByb2Nlc3NvclNldHRpbmdzIiwiYmluZGluZ0NvbnRleHRzIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJtb2RlbHMiLCJwb3BvdmVyRnJhZ21lbnQiLCJYTUxUZW1wbGF0ZVByb2Nlc3NvciIsImxvYWRUZW1wbGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsIm5hbWUiLCJ0aGVuIiwiZnJhZ21lbnQiLCJGcmFnbWVudCIsImxvYWQiLCJkZWZpbml0aW9uIiwiY29udHJvbGxlciIsInBvcG92ZXIiLCJhZGREZXBlbmRlbnQiLCJzZXRNb2RlbCIsImdldE1vZGVsIiwic2V0UGxhY2VtZW50IiwiYXR0YWNoQWZ0ZXJPcGVuIiwiY29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiaXNBY3RpdmVFbnRpdHkiLCJnZXRPYmplY3QiLCJJc0FjdGl2ZUVudGl0eSIsInN3aXRjaERyYWZ0QW5kQWN0aXZlT3B0aW9uc0xpc3QiLCJnZXRDb250ZW50IiwiZmluZCIsImVsZW1lbnQiLCJkYXRhIiwibGlzdEl0ZW1Ub0ZvY3VzIiwiZ2V0SXRlbXMiLCJnZXRLZXkiLCJmb2N1cyIsImF0dGFjaEV2ZW50T25jZSIsImRlc3Ryb3kiLCJjYXRjaCIsIkVycm9yIiwiTG9nIiwiZXJyb3IiLCJzd2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcG92ZXJMaXN0U2VsZWN0Iiwic2VsZWN0ZWRJdGVtS2V5IiwiZ2V0UGFyYW1ldGVyIiwiZ2V0UHJvcGVydHkiLCJlZGl0RmxvdyIsInRvZ2dsZURyYWZ0QWN0aXZlIiwiZ2V0UGFyZW50IiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFVQSxNQUFJQSw0QkFBSjtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxZQUFZLEdBQUc7QUFDcEI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0NDLElBQUFBLCtCQVBvQixZQU9rQ0MsS0FQbEMsRUFPZ0Q7QUFBQTs7QUFDbkUsVUFBTUMsSUFBSSxHQUFHLEtBQUtDLE9BQUwsRUFBYjtBQUFBLFVBQ0NDLE1BQU0sR0FBR0gsS0FBSyxDQUFDSSxTQUFOLEVBRFY7QUFBQSxVQUVDQyxZQUFZLEdBQUcsOEVBRmhCOztBQUlBLFVBQUlSLDRCQUFKLEVBQWtDO0FBQ2pDQSxRQUFBQSw0QkFBNEIsQ0FBQ1MsTUFBN0IsQ0FBb0NILE1BQXBDLEVBQTRDLEtBQTVDO0FBQ0EsT0FGRCxNQUVPO0FBQ04sWUFBTUksY0FBYyxHQUFHLElBQUlDLFNBQUosQ0FBYyxFQUFkLENBQXZCO0FBQUEsWUFDQ0Msb0JBQW9CLEdBQUc7QUFDdEJDLFVBQUFBLGVBQWUsRUFBRTtBQUNoQixvQkFBUUgsY0FBYyxDQUFDSSxvQkFBZixDQUFvQyxHQUFwQztBQURRLFdBREs7QUFJdEJDLFVBQUFBLE1BQU0sRUFBRTtBQUNQLG9CQUFRTDtBQUREO0FBSmMsU0FEeEI7QUFTQSxZQUFNTSxlQUFlLEdBQUdDLG9CQUFvQixDQUFDQyxZQUFyQixDQUFrQ1YsWUFBbEMsRUFBZ0QsVUFBaEQsQ0FBeEI7QUFDQVcsUUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWdCQyxlQUFlLENBQUNDLE9BQWhCLENBQXdCTixlQUF4QixFQUF5QztBQUFFTyxVQUFBQSxJQUFJLEVBQUVmO0FBQVIsU0FBekMsRUFBaUVJLG9CQUFqRSxDQUFoQixFQUNFWSxJQURGLENBQ08sVUFBQ0MsUUFBRCxFQUFjO0FBQ25CLGlCQUFPQyxRQUFRLENBQUNDLElBQVQsQ0FBYztBQUFFQyxZQUFBQSxVQUFVLEVBQUVILFFBQWQ7QUFBd0JJLFlBQUFBLFVBQVUsRUFBRTtBQUFwQyxXQUFkLENBQVA7QUFDQSxTQUhGLEVBSUVMLElBSkYsQ0FJTyxVQUFDTSxPQUFELEVBQWtCO0FBQ3ZCMUIsVUFBQUEsSUFBSSxDQUFDMkIsWUFBTCxDQUFrQkQsT0FBbEI7QUFDQUEsVUFBQUEsT0FBTyxDQUFDRSxRQUFSLENBQWlCNUIsSUFBSSxDQUFDNkIsUUFBTCxDQUFjLGFBQWQsQ0FBakIsRUFBK0MsTUFBL0M7QUFDQUgsVUFBQUEsT0FBTyxDQUFDSSxZQUFSLENBQXFCLFFBQXJCO0FBQ0FsQyxVQUFBQSw0QkFBNEIsR0FBRzhCLE9BQS9CO0FBQ0FBLFVBQUFBLE9BQU8sQ0FBQ0ssZUFBUixDQUF3QixZQUFNO0FBQzdCO0FBQ0E7QUFDQSxnQkFBTUMsT0FBWSxHQUFHLEtBQUksQ0FBQy9CLE9BQUwsR0FBZWdDLGlCQUFmLEVBQXJCO0FBQUEsZ0JBQ0NDLGNBQWMsR0FBR0YsT0FBTyxDQUFDRyxTQUFSLEdBQW9CQyxjQUR0Qzs7QUFFQSxnQkFBTUMsK0JBQTJDLEdBQUlYLE9BQU8sQ0FBQ1ksVUFBUixFQUFELENBQStDQyxJQUEvQyxDQUNuRCxVQUFDQyxPQUFEO0FBQUEscUJBQWFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLGdCQUFiLE1BQW1DLGlDQUFoRDtBQUFBLGFBRG1ELENBQXBEO0FBR0EsZ0JBQU1DLGVBQXFCLEdBQUdSLGNBQWMsR0FDeENHLCtCQUErQixDQUFDTSxRQUFoQyxHQUEyQ0osSUFBM0MsQ0FBZ0QsVUFBQ0MsT0FBRDtBQUFBLHFCQUFhQSxPQUFPLENBQUNJLE1BQVIsT0FBcUIsZUFBbEM7QUFBQSxhQUFoRCxDQUR3QyxHQUV4Q1AsK0JBQStCLENBQUNNLFFBQWhDLEdBQTJDSixJQUEzQyxDQUFnRCxVQUFDQyxPQUFEO0FBQUEscUJBQWFBLE9BQU8sQ0FBQ0ksTUFBUixPQUFxQixnQkFBbEM7QUFBQSxhQUFoRCxDQUZKO0FBR0FGLFlBQUFBLGVBQWUsQ0FBQ0csS0FBaEI7QUFDQSxXQVpEO0FBYUFuQixVQUFBQSxPQUFPLENBQUNyQixNQUFSLENBQWVILE1BQWYsRUFsQnVCLENBbUJ2Qjs7QUFDQUYsVUFBQUEsSUFBSSxDQUFDOEMsZUFBTCxDQUFxQixZQUFyQixFQUFtQyxZQUFNO0FBQ3hDbEQsWUFBQUEsNEJBQTRCLENBQUNtRCxPQUE3QjtBQUNBLFdBRkQ7QUFHQSxTQTNCRixFQTRCRUMsS0E1QkYsQ0E0QlEsVUFBVUMsS0FBVixFQUFpQjtBQUN2QkMsVUFBQUEsR0FBRyxDQUFDQyxLQUFKLENBQVUsNENBQVYsRUFBd0RGLEtBQXhEO0FBQ0EsU0E5QkY7QUErQkE7QUFDRCxLQXpEbUI7O0FBMERwQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQ0csSUFBQUEscUNBaEVvQixZQWdFd0NyRCxLQWhFeEMsRUFnRXNEO0FBQ3pFLFVBQU1pQyxPQUFZLEdBQUcsS0FBSy9CLE9BQUwsR0FBZWdDLGlCQUFmLEVBQXJCO0FBQUEsVUFDQ29CLGVBQWUsR0FBR3RELEtBQUssQ0FBQ3VELFlBQU4sQ0FBbUIsTUFBbkIsRUFBMkJDLFdBQTNCLENBQXVDLEtBQXZDLENBRG5CO0FBQUEsVUFFQ3JCLGNBQWMsR0FBR0YsT0FBTyxDQUFDRyxTQUFSLEdBQW9CQyxjQUZ0QyxDQUR5RSxDQUl6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLFVBQUtGLGNBQWMsSUFBSW1CLGVBQWUsS0FBSyxlQUF2QyxJQUE0RCxDQUFDbkIsY0FBRCxJQUFtQm1CLGVBQWUsS0FBSyxnQkFBdkcsRUFBMEg7QUFDekgsYUFBS0csUUFBTCxDQUFjQyxpQkFBZCxDQUFnQ3pCLE9BQWhDO0FBQ0E7O0FBQ0NqQyxNQUFBQSxLQUFLLENBQUNJLFNBQU4sRUFBRCxDQUErQnVELFNBQS9CLEVBQUQsQ0FBd0RDLEtBQXhEO0FBQ0E7QUE3RW1CLEdBQXJCO1NBZ0ZlOUQsWSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIFBvcG92ZXIgZnJvbSBcInNhcC9tL1BvcG92ZXJcIjtcbmltcG9ydCB0eXBlIFNlbGVjdExpc3QgZnJvbSBcInNhcC9tL1NlbGVjdExpc3RcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IHR5cGUgSXRlbSBmcm9tIFwic2FwL3VpL2NvcmUvSXRlbVwiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcbmltcG9ydCBYTUxUZW1wbGF0ZVByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvWE1MVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5sZXQgb1N3aXRjaERyYWZ0QW5kQWN0aXZlUG9wT3ZlcjogUG9wb3Zlcjtcbi8qKlxuICogR2VuZXJpYyBoYW5kbGVyIGNvbGxlY3Rpb24gZm9yIHNldmVyYWwgZXZlbnRzIGluIHRoZSBkcmFmdCB0b3BpYyBhcmVhXG4gKi9cbmNvbnN0IERyYWZ0SGFuZGxlciA9IHtcblx0LyoqXG5cdCAqIFRoZSBtZXRob2Qgd2l0aCB0aGUgYmVoYXZpb3VyIG9uIHRoZSBzd2l0Y2ggZHJhZnQgbW9kZSBidXR0b24uXG5cdCAqXG5cdCAqIEBwYXJhbSB0aGlzIFRoZSB0eXBlIG9mIHRoZSB0aGlzIHJlZmVyZWQgdG8gUGFnZUNvbnRyb2xsZXIuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgd2l0aCB0aGUgYm91bmQgc291cmNlIGNvbnRyb2wuXG5cdCAqL1xuXHRzaG93U3dpdGNoRHJhZnRBbmRBY3RpdmVQb3BvdmVyKHRoaXM6IFBhZ2VDb250cm9sbGVyLCBldmVudDogRXZlbnQpIHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKSxcblx0XHRcdGZyYWdtZW50TmFtZSA9IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLnZpZXcuZnJhZ21lbnRzLlN3aXRjaERyYWZ0QW5kQWN0aXZlT2JqZWN0UG9wT3ZlclwiO1xuXG5cdFx0aWYgKG9Td2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcE92ZXIpIHtcblx0XHRcdG9Td2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcE92ZXIub3BlbkJ5KHNvdXJjZSwgZmFsc2UpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBsb2NhbFRoaXNNb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pLFxuXHRcdFx0XHRwcmVwcm9jZXNzb3JTZXR0aW5ncyA9IHtcblx0XHRcdFx0XHRiaW5kaW5nQ29udGV4dHM6IHtcblx0XHRcdFx0XHRcdFwidGhpc1wiOiBsb2NhbFRoaXNNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIilcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG1vZGVsczoge1xuXHRcdFx0XHRcdFx0XCJ0aGlzXCI6IGxvY2FsVGhpc01vZGVsXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0Y29uc3QgcG9wb3ZlckZyYWdtZW50ID0gWE1MVGVtcGxhdGVQcm9jZXNzb3IubG9hZFRlbXBsYXRlKGZyYWdtZW50TmFtZSwgXCJmcmFnbWVudFwiKTtcblx0XHRcdFByb21pc2UucmVzb2x2ZShYTUxQcmVwcm9jZXNzb3IucHJvY2Vzcyhwb3BvdmVyRnJhZ21lbnQsIHsgbmFtZTogZnJhZ21lbnROYW1lIH0sIHByZXByb2Nlc3NvclNldHRpbmdzKSlcblx0XHRcdFx0LnRoZW4oKGZyYWdtZW50KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIEZyYWdtZW50LmxvYWQoeyBkZWZpbml0aW9uOiBmcmFnbWVudCwgY29udHJvbGxlcjogdGhpcyB9KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oKHBvcG92ZXI6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdFx0XHRcdHBvcG92ZXIuc2V0TW9kZWwodmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpLCBcImkxOG5cIik7XG5cdFx0XHRcdFx0cG9wb3Zlci5zZXRQbGFjZW1lbnQoXCJCb3R0b21cIik7XG5cdFx0XHRcdFx0b1N3aXRjaERyYWZ0QW5kQWN0aXZlUG9wT3ZlciA9IHBvcG92ZXI7XG5cdFx0XHRcdFx0cG9wb3Zlci5hdHRhY2hBZnRlck9wZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0Ly8gV2hpbGUgdGhlIGxpc3QgZW50cnkgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBkb2N1bWVudCB2ZXJzaW9uIGlzIGVtcGhhc2l6ZWQgd2l0aCBhIGJsdWVcblx0XHRcdFx0XHRcdC8vIGJhY2tncm91bmQsIHdlIG5lZWQgdG8gcHJlLWZvY3VzIHRoZSBvdGhlciBlbnRyeVxuXHRcdFx0XHRcdFx0Y29uc3QgY29udGV4dDogYW55ID0gdGhpcy5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKSxcblx0XHRcdFx0XHRcdFx0aXNBY3RpdmVFbnRpdHkgPSBjb250ZXh0LmdldE9iamVjdCgpLklzQWN0aXZlRW50aXR5O1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3dpdGNoRHJhZnRBbmRBY3RpdmVPcHRpb25zTGlzdDogU2VsZWN0TGlzdCA9IChwb3BvdmVyLmdldENvbnRlbnQoKSBhcyB1bmtub3duIGFzIENvbnRyb2xbXSkuZmluZChcblx0XHRcdFx0XHRcdFx0KGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcInN3aXRjaERyYWZ0QW5kQWN0aXZlUG9wb3Zlckxpc3RcIlxuXHRcdFx0XHRcdFx0KSBhcyBTZWxlY3RMaXN0O1xuXHRcdFx0XHRcdFx0Y29uc3QgbGlzdEl0ZW1Ub0ZvY3VzOiBJdGVtID0gaXNBY3RpdmVFbnRpdHlcblx0XHRcdFx0XHRcdFx0PyAoc3dpdGNoRHJhZnRBbmRBY3RpdmVPcHRpb25zTGlzdC5nZXRJdGVtcygpLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZ2V0S2V5KCkgPT09IFwic3dpdGNoVG9EcmFmdFwiKSBhcyBJdGVtKVxuXHRcdFx0XHRcdFx0XHQ6IChzd2l0Y2hEcmFmdEFuZEFjdGl2ZU9wdGlvbnNMaXN0LmdldEl0ZW1zKCkuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5nZXRLZXkoKSA9PT0gXCJzd2l0Y2hUb0FjdGl2ZVwiKSBhcyBJdGVtKTtcblx0XHRcdFx0XHRcdGxpc3RJdGVtVG9Gb2N1cy5mb2N1cygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHBvcG92ZXIub3BlbkJ5KHNvdXJjZSk7XG5cdFx0XHRcdFx0Ly8gZW5zdXJlIHRvIHJlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkcmFmdCBwb3BvdmVyIGFzIGl0IHdvdWxkIGJlIGRlc3Ryb3llZCBvbiBleGl0XG5cdFx0XHRcdFx0dmlldy5hdHRhY2hFdmVudE9uY2UoXCJiZWZvcmVFeGl0XCIsICgpID0+IHtcblx0XHRcdFx0XHRcdG9Td2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcE92ZXIuZGVzdHJveSgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKEVycm9yKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgb3BlbmluZyB0aGUgZHJhZnQgc3dpdGNoIHBvcHVwXCIsIEVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXHQvKipcblx0ICogVGhlIG1ldGhvZCB3aXRoIHRoZSBiZWhhdmlvdXIgb24gdGhlIHN3aXRjaCBkcmFmdCBtb2RlIGJ1dHRvbiBwb3BvdmVyIHdoZW4gYW4gZW50cnkgaXMgc2VsZWN0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB0aGlzIFRoZSB0eXBlIG9mIHRoZSB0aGlzIHJlZmVyZWQgdG8gUGFnZUNvbnRyb2xsZXIuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgd2l0aCB0aGUgYm91bmQgc291cmNlIGNvbnRyb2wuXG5cdCAqL1xuXHRzd2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcG92ZXJMaXN0U2VsZWN0KHRoaXM6IFBhZ2VDb250cm9sbGVyLCBldmVudDogRXZlbnQpIHtcblx0XHRjb25zdCBjb250ZXh0OiBhbnkgPSB0aGlzLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpLFxuXHRcdFx0c2VsZWN0ZWRJdGVtS2V5ID0gZXZlbnQuZ2V0UGFyYW1ldGVyKFwiaXRlbVwiKS5nZXRQcm9wZXJ0eShcImtleVwiKSxcblx0XHRcdGlzQWN0aXZlRW50aXR5ID0gY29udGV4dC5nZXRPYmplY3QoKS5Jc0FjdGl2ZUVudGl0eTtcblx0XHQvLyBJdCB3YXMgZGVjaWRlZCB0aGF0IHdlIHNob3VsZCBOT1Qgc2V0IHRoZSBlbnRyeSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGRvY3VtZW50IHZlcnNpb24gdG9cblx0XHQvLyBkaXNhYmxlZCwgaGVuY2UgdGhlIHVzZXIgY2FuIGNsaWNrIGVudHJpZXMgd2hpY2ggdG8gbm90IGNhdXNlIGFuIGFjdGlvbiAoY2xpY2tpbmcgXCJEcmFmdFwiIHdoZW4geW91IGFscmVhZHkgZGlzcGxheSB0aGVcblx0XHQvLyBkcmFmdCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudClcblx0XHQvLyBIZW5jZSB3ZSBjaGVjayBoZXJlIHdoaWNoIGVudHJ5IGluIHRoZSBsaXN0IHdhcyBjbGlja2VkIGFuZCB3aGljaCBkb2N1bWVudCB2ZXJzaW9uIHdlIGN1cnJlbnRseSBkaXNwbGF5IGFuZCBvbmx5IGRvXG5cdFx0Ly8gdGhlIHN3aXRjaCBiZXR3ZWVuIGRyYWZ0IC8gYWN0aXZlIHZlcnNpb24gaWYgaXQgbWFrZXMgc2Vuc2UuXG5cdFx0aWYgKChpc0FjdGl2ZUVudGl0eSAmJiBzZWxlY3RlZEl0ZW1LZXkgPT09IFwic3dpdGNoVG9EcmFmdFwiKSB8fCAoIWlzQWN0aXZlRW50aXR5ICYmIHNlbGVjdGVkSXRlbUtleSA9PT0gXCJzd2l0Y2hUb0FjdGl2ZVwiKSkge1xuXHRcdFx0dGhpcy5lZGl0Rmxvdy50b2dnbGVEcmFmdEFjdGl2ZShjb250ZXh0KTtcblx0XHR9XG5cdFx0KChldmVudC5nZXRTb3VyY2UoKSBhcyBDb250cm9sKS5nZXRQYXJlbnQoKSBhcyBQb3BvdmVyKS5jbG9zZSgpO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEcmFmdEhhbmRsZXI7XG4iXX0=