@sapui5/sap.fe.core 1.121.2 → 1.123.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 (241) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +2 -2
  4. package/src/sap/fe/core/ActionRuntime.ts +1 -2
  5. package/src/sap/fe/core/CommonUtils.js +14 -171
  6. package/src/sap/fe/core/CommonUtils.ts +15 -221
  7. package/src/sap/fe/core/PageController.js +13 -1
  8. package/src/sap/fe/core/PageController.ts +16 -0
  9. package/src/sap/fe/core/TemplateComponent.js +6 -1
  10. package/src/sap/fe/core/TemplateComponent.ts +8 -0
  11. package/src/sap/fe/core/UIProvider.js +23 -0
  12. package/src/sap/fe/core/UIProvider.ts +38 -0
  13. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +97 -43
  14. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +120 -50
  15. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +6 -3
  16. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +12 -18
  17. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +2 -2
  18. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +1 -1
  19. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
  20. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +4 -3
  21. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +1 -1
  22. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -0
  23. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +42 -1
  24. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +40 -0
  25. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +5 -2
  26. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +5 -3
  27. package/src/sap/fe/core/controllerextensions/EditFlow.js +151 -60
  28. package/src/sap/fe/core/controllerextensions/EditFlow.ts +165 -68
  29. package/src/sap/fe/core/controllerextensions/HookSupport.js +32 -14
  30. package/src/sap/fe/core/controllerextensions/HookSupport.ts +35 -14
  31. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +5 -17
  32. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -12
  33. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -6
  34. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +15 -10
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +108 -287
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +117 -309
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -2
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +6 -2
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +1 -1
  41. package/src/sap/fe/core/controllerextensions/PageReady.js +6 -6
  42. package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -4
  43. package/src/sap/fe/core/controllerextensions/Paginator.js +17 -110
  44. package/src/sap/fe/core/controllerextensions/Paginator.ts +13 -130
  45. package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
  46. package/src/sap/fe/core/controllerextensions/Placeholder.ts +1 -2
  47. package/src/sap/fe/core/controllerextensions/Recommendations.js +36 -31
  48. package/src/sap/fe/core/controllerextensions/Recommendations.ts +32 -37
  49. package/src/sap/fe/core/controllerextensions/Share.js +7 -7
  50. package/src/sap/fe/core/controllerextensions/Share.ts +6 -6
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +52 -6
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -4
  53. package/src/sap/fe/core/controllerextensions/ViewState.js +32 -46
  54. package/src/sap/fe/core/controllerextensions/ViewState.ts +24 -31
  55. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +42 -31
  56. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +6 -0
  57. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +168 -276
  58. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +182 -310
  59. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -3
  60. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +2 -2
  61. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +4 -3
  62. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +3 -2
  63. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +74 -52
  64. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +95 -55
  65. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -17
  66. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +10 -23
  67. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +3 -3
  68. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +2 -2
  69. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +225 -0
  70. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +241 -0
  71. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +69 -48
  72. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +56 -33
  73. package/src/sap/fe/core/controls/FormElementWrapper.js +8 -11
  74. package/src/sap/fe/core/controls/FormElementWrapper.ts +9 -0
  75. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +6 -14
  76. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +12 -23
  77. package/src/sap/fe/core/converters/ConverterContext.js +17 -9
  78. package/src/sap/fe/core/converters/ConverterContext.ts +55 -41
  79. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  80. package/src/sap/fe/core/converters/ManifestSettings.ts +19 -5
  81. package/src/sap/fe/core/converters/ManifestWrapper.js +14 -4
  82. package/src/sap/fe/core/converters/ManifestWrapper.ts +21 -10
  83. package/src/sap/fe/core/converters/MetaModelConverter.js +402 -383
  84. package/src/sap/fe/core/converters/MetaModelConverter.ts +538 -338
  85. package/src/sap/fe/core/converters/TemplateConverter.js +4 -2
  86. package/src/sap/fe/core/converters/TemplateConverter.ts +18 -13
  87. package/src/sap/fe/core/converters/annotations/DataField.js +30 -28
  88. package/src/sap/fe/core/converters/annotations/DataField.ts +58 -35
  89. package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -23
  90. package/src/sap/fe/core/converters/controls/Common/Action.js +5 -4
  91. package/src/sap/fe/core/converters/controls/Common/Action.ts +34 -28
  92. package/src/sap/fe/core/converters/controls/Common/Chart.js +37 -33
  93. package/src/sap/fe/core/converters/controls/Common/Chart.ts +64 -46
  94. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -4
  95. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +31 -15
  96. package/src/sap/fe/core/converters/controls/Common/Form.js +6 -4
  97. package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -11
  98. package/src/sap/fe/core/converters/controls/Common/KPI.js +5 -3
  99. package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -11
  100. package/src/sap/fe/core/converters/controls/Common/Table.js +197 -101
  101. package/src/sap/fe/core/converters/controls/Common/Table.ts +393 -182
  102. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +4 -5
  103. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +38 -27
  104. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +41 -11
  105. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +112 -45
  106. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +7 -7
  107. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +18 -12
  108. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  109. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +5 -4
  110. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  111. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +19 -9
  112. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +64 -63
  113. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +109 -100
  114. package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -11
  115. package/src/sap/fe/core/converters/helpers/Aggregation.ts +35 -30
  116. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -1
  117. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +12 -9
  118. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
  119. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +1 -1
  120. package/src/sap/fe/core/converters/helpers/ID.js +1 -1
  121. package/src/sap/fe/core/converters/helpers/ID.ts +6 -6
  122. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +3 -3
  123. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +11 -6
  124. package/src/sap/fe/core/converters/helpers/Key.js +2 -2
  125. package/src/sap/fe/core/converters/helpers/Key.ts +4 -4
  126. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  127. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -2
  128. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +21 -19
  129. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +43 -31
  130. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  131. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +16 -12
  132. package/src/sap/fe/core/converters/templates/ListReportConverter.js +8 -3
  133. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +41 -21
  134. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -3
  135. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +24 -19
  136. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
  137. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +2 -1
  138. package/src/sap/fe/core/filter/DraftEditState.fragment.xml +1 -1
  139. package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -6
  140. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +5 -4
  141. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -13
  142. package/src/sap/fe/core/formatters/FPMFormatter.ts +11 -10
  143. package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
  144. package/src/sap/fe/core/formatters/FiscalFormat.ts +1 -1
  145. package/src/sap/fe/core/formatters/KPIFormatter.js +4 -7
  146. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -3
  147. package/src/sap/fe/core/formatters/StandardFormatter.js +4 -7
  148. package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
  149. package/src/sap/fe/core/formatters/ValueFormatter.js +35 -6
  150. package/src/sap/fe/core/formatters/ValueFormatter.ts +31 -3
  151. package/src/sap/fe/core/fpm/manifest.json +1 -1
  152. package/src/sap/fe/core/helpers/AppStartupHelper.js +54 -33
  153. package/src/sap/fe/core/helpers/AppStartupHelper.ts +62 -41
  154. package/src/sap/fe/core/helpers/BindingToolkit.js +17 -3
  155. package/src/sap/fe/core/helpers/BindingToolkit.ts +28 -6
  156. package/src/sap/fe/core/helpers/ClassSupport.js +32 -13
  157. package/src/sap/fe/core/helpers/ClassSupport.ts +35 -15
  158. package/src/sap/fe/core/helpers/DeleteHelper.js +71 -61
  159. package/src/sap/fe/core/helpers/DeleteHelper.ts +125 -103
  160. package/src/sap/fe/core/helpers/DraftEditState.js +5 -3
  161. package/src/sap/fe/core/helpers/DraftEditState.ts +3 -1
  162. package/src/sap/fe/core/helpers/FPMHelper.js +43 -46
  163. package/src/sap/fe/core/helpers/FPMHelper.ts +50 -56
  164. package/src/sap/fe/core/helpers/MetaModelFunction.js +77 -53
  165. package/src/sap/fe/core/helpers/MetaModelFunction.ts +78 -57
  166. package/src/sap/fe/core/helpers/ModelHelper.js +10 -4
  167. package/src/sap/fe/core/helpers/ModelHelper.ts +12 -6
  168. package/src/sap/fe/core/helpers/PasteHelper.js +194 -7
  169. package/src/sap/fe/core/helpers/PasteHelper.ts +265 -13
  170. package/src/sap/fe/core/helpers/PromiseKeeper.js +66 -0
  171. package/src/sap/fe/core/helpers/PromiseKeeper.ts +56 -0
  172. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +30 -19
  173. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +34 -22
  174. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  175. package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -2
  176. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +26 -52
  177. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +37 -63
  178. package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
  179. package/src/sap/fe/core/helpers/TitleHelper.ts +17 -14
  180. package/src/sap/fe/core/helpers/TypeGuards.js +27 -3
  181. package/src/sap/fe/core/helpers/TypeGuards.ts +37 -7
  182. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +48 -8
  183. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +40 -9
  184. package/src/sap/fe/core/library.js +1 -1
  185. package/src/sap/fe/core/messagebundle.properties +5 -2
  186. package/src/sap/fe/core/messagebundle_da.properties +1 -1
  187. package/src/sap/fe/core/messagebundle_en.properties +267 -2
  188. package/src/sap/fe/core/messagebundle_sl.properties +1 -1
  189. package/src/sap/fe/core/operationsHelper.js +2 -1
  190. package/src/sap/fe/core/operationsHelper.ts +1 -0
  191. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -3
  192. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +2 -2
  193. package/src/sap/fe/core/services/NavigationServiceFactory.js +2 -2
  194. package/src/sap/fe/core/services/NavigationServiceFactory.ts +3 -2
  195. package/src/sap/fe/core/services/RoutingServiceFactory.js +27 -14
  196. package/src/sap/fe/core/services/RoutingServiceFactory.ts +27 -14
  197. package/src/sap/fe/core/services/ShellServicesFactory.js +49 -12
  198. package/src/sap/fe/core/services/ShellServicesFactory.ts +62 -13
  199. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +156 -82
  200. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +218 -100
  201. package/src/sap/fe/core/services/TelemetryServiceFactory.js +3 -3
  202. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +6 -6
  203. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +3 -2
  204. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
  205. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
  206. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +2 -2
  207. package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
  208. package/src/sap/fe/core/templating/CommonFormatters.js +6 -3
  209. package/src/sap/fe/core/templating/CommonFormatters.ts +13 -12
  210. package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
  211. package/src/sap/fe/core/templating/CriticalityFormatters.ts +37 -14
  212. package/src/sap/fe/core/templating/DataFieldFormatters.js +12 -11
  213. package/src/sap/fe/core/templating/DataFieldFormatters.ts +35 -24
  214. package/src/sap/fe/core/templating/DataModelPathHelper.js +22 -18
  215. package/src/sap/fe/core/templating/DataModelPathHelper.ts +61 -51
  216. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  217. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +8 -3
  218. package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
  219. package/src/sap/fe/core/templating/EntityTypeHelper.ts +1 -1
  220. package/src/sap/fe/core/templating/FieldControlHelper.js +3 -3
  221. package/src/sap/fe/core/templating/FieldControlHelper.ts +27 -8
  222. package/src/sap/fe/core/templating/FilterHelper.js +13 -10
  223. package/src/sap/fe/core/templating/FilterHelper.ts +80 -46
  224. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  225. package/src/sap/fe/core/templating/FilterTemplating.ts +2 -2
  226. package/src/sap/fe/core/templating/PropertyFormatters.js +6 -8
  227. package/src/sap/fe/core/templating/PropertyFormatters.ts +11 -11
  228. package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
  229. package/src/sap/fe/core/templating/PropertyHelper.ts +4 -4
  230. package/src/sap/fe/core/templating/SemanticObjectHelper.js +157 -13
  231. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +182 -16
  232. package/src/sap/fe/core/templating/UIFormatters.js +23 -22
  233. package/src/sap/fe/core/templating/UIFormatters.ts +94 -66
  234. package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
  235. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -2
  236. package/src/sap/fe/core/type/EDM.js +1 -1
  237. package/src/sap/fe/core/type/EDM.ts +2 -2
  238. package/src/sap/fe/core/type/Email.js +1 -1
  239. package/src/sap/fe/core/type/Email.ts +1 -1
  240. package/src/sap/fe/core/type/FiscalDate.js +2 -2
  241. package/src/sap/fe/core/type/FiscalDate.ts +2 -2
@@ -12,9 +12,9 @@ import type { BindingToolkitExpression, CompiledBindingToolkitExpression } from
12
12
  import { compileExpression, constant, equal, getExpressionFromAnnotation, ifElse, not } from "sap/fe/core/helpers/BindingToolkit";
13
13
  import { UI, singletonPathVisitor } from "../../helpers/BindingHelper";
14
14
  import type ConverterContext from "../ConverterContext";
15
- import type { ManifestSection, ManifestSubSection } from "../ManifestSettings";
15
+ import type { ManifestSection, ManifestSubSection, TransportSelectionDefinition } from "../ManifestSettings";
16
16
  import { TemplateType, VisualizationType } from "../ManifestSettings";
17
- import type { PageDefinition } from "../TemplateConverter";
17
+ import type { PageContextPathTarget, PageDefinition } from "../TemplateConverter";
18
18
  import type { Avatar } from "../controls/ObjectPage/Avatar";
19
19
  import { getAvatar } from "../controls/ObjectPage/Avatar";
20
20
  import type { ObjectPageHeaderFacet } from "../controls/ObjectPage/HeaderFacet";
@@ -55,6 +55,7 @@ export type ObjectPageDefinition = PageDefinition & {
55
55
  footerCommandActions: Record<string, CustomAction>;
56
56
  showAnchorBar: boolean;
57
57
  useIconTabBar: boolean;
58
+ transportSelection?: TransportSelectionDefinition;
58
59
  };
59
60
 
60
61
  const getSectionKey = (facetDefinition: FacetTypes, fallback: string): string => {
@@ -69,7 +70,7 @@ const getSectionKey = (facetDefinition: FacetTypes, fallback: string): string =>
69
70
  * @returns The section representing the editable header parts
70
71
  */
71
72
  export function createEditableHeaderSection(
72
- converterContext: ConverterContext,
73
+ converterContext: ConverterContext<PageContextPathTarget>,
73
74
  allHeaderFacets: ObjectPageHeaderFacet[]
74
75
  ): ObjectPageSection {
75
76
  const editableHeaderSectionID = getEditableHeaderSectionID();
@@ -122,7 +123,7 @@ export function createEditableHeaderSection(
122
123
  * @param converterContext The converter context
123
124
  * @returns All sections
124
125
  */
125
- function getSectionsFromAnnotation(converterContext: ConverterContext): ObjectPageSection[] {
126
+ function getSectionsFromAnnotation(converterContext: ConverterContext<PageContextPathTarget>): ObjectPageSection[] {
126
127
  const entityType = converterContext.getEntityType();
127
128
  const objectPageSections: ObjectPageSection[] =
128
129
  entityType.annotations?.UI?.Facets?.map((facetDefinition: FacetTypes) =>
@@ -166,7 +167,7 @@ function updateSingleSectionData(subsections: ObjectPageSubSection[], replaceTit
166
167
  * @param converterContext
167
168
  * @returns The current section
168
169
  */
169
- function getSectionFromAnnotation(facet: FacetTypes, converterContext: ConverterContext): ObjectPageSection {
170
+ function getSectionFromAnnotation(facet: FacetTypes, converterContext: ConverterContext<PageContextPathTarget>): ObjectPageSection {
170
171
  const sectionID = getSectionID(facet);
171
172
  // Set absolute binding path for Singleton references, otherwise the configured annotation path itself.
172
173
  const hiddenExpression = getExpressionFromAnnotation(facet.annotations?.UI?.Hidden, [], false, (path: string) =>
@@ -175,12 +176,13 @@ function getSectionFromAnnotation(facet: FacetTypes, converterContext: Converter
175
176
  const subsections = createSubSections([facet], converterContext);
176
177
  const useIconTabBar = converterContext.getManifestWrapper().useIconTabBar();
177
178
  const replaceControlTitle = !useIconTabBar || subsections.length > 1;
179
+ const sectionInPageMode = !useIconTabBar && subsections.length === 1;
178
180
  updateSingleSectionData(subsections, replaceControlTitle);
179
181
  const section: ObjectPageSection = {
180
182
  id: sectionID,
181
183
  key: getSectionKey(facet, sectionID),
182
184
  title: facet.Label ? compileExpression(getExpressionFromAnnotation(facet.Label)) : undefined,
183
- showTitle: getTitleMergeClass(subsections) ? false : true,
185
+ showTitle: !(sectionInPageMode && getTitleMergeClass(subsections)),
184
186
  visible: compileExpression(not(equal(hiddenExpression, true))),
185
187
  subSections: subsections
186
188
  };
@@ -210,7 +212,7 @@ export const getTitleMergeClass = function (subSections: ObjectPageSubSection[])
210
212
  */
211
213
  function getSectionsFromManifest(
212
214
  manifestSections: ConfigurableRecord<ManifestSection>,
213
- converterContext: ConverterContext
215
+ converterContext: ConverterContext<PageContextPathTarget>
214
216
  ): Record<string, CustomObjectPageSection> {
215
217
  const sections: Record<string, CustomObjectPageSection> = {};
216
218
  Object.keys(manifestSections).forEach((manifestSectionKey) => {
@@ -230,7 +232,7 @@ function getSectionsFromManifest(
230
232
  function getSectionFromManifest(
231
233
  customSectionDefinition: ManifestSection,
232
234
  sectionKey: string,
233
- converterContext: ConverterContext
235
+ converterContext: ConverterContext<PageContextPathTarget>
234
236
  ): CustomObjectPageSection {
235
237
  const customSectionID = customSectionDefinition.id || getCustomSectionID(sectionKey);
236
238
  let position: Position | undefined = customSectionDefinition.position;
@@ -262,7 +264,7 @@ function getSectionFromManifest(
262
264
  showTitle: !!customSectionDefinition.title,
263
265
  visible: customSectionDefinition.visible !== undefined ? customSectionDefinition.visible : "true",
264
266
  position: position,
265
- subSections: subSections as any
267
+ subSections: subSections
266
268
  };
267
269
  return customSection;
268
270
  }
@@ -273,7 +275,7 @@ function getSectionFromManifest(
273
275
  * @param converterContext The converter context
274
276
  * @returns An array containing all the actions for this ObjectPage header
275
277
  */
276
- export const getHeaderActions = function (converterContext: ConverterContext): CombinedAction {
278
+ export const getHeaderActions = function (converterContext: ConverterContext<PageContextPathTarget>): CombinedAction {
277
279
  const aAnnotationHeaderActions: BaseAction[] = getHeaderDefaultActions(converterContext);
278
280
  const manifestWrapper = converterContext.getManifestWrapper();
279
281
  const manifestActions = getActionsFromManifest(
@@ -305,7 +307,7 @@ export const getHeaderActions = function (converterContext: ConverterContext): C
305
307
  * @param converterContext The converter context
306
308
  * @returns An array containing all the actions for this ObjectPage footer
307
309
  */
308
- export const getFooterActions = function (converterContext: ConverterContext): CombinedAction {
310
+ export const getFooterActions = function (converterContext: ConverterContext<PageContextPathTarget>): CombinedAction {
309
311
  const manifestWrapper = converterContext.getManifestWrapper();
310
312
  const aAnnotationFooterActions: BaseAction[] = getFooterDefaultActions(manifestWrapper.getViewLevel(), converterContext);
311
313
  const manifestActions = getActionsFromManifest(manifestWrapper.getFooterActions(), converterContext, aAnnotationFooterActions);
@@ -414,7 +416,7 @@ function _setNonResponsiveTableSubSectionControlConfiguration(
414
416
  *
415
417
  * @param subSections The subSections where we need to remove the condensed layout
416
418
  */
417
- function _removeCondensedFromSubSections(subSections: ObjectPageSubSection[]) {
419
+ function _removeCondensedFromSubSections(subSections: ObjectPageSubSection[]): void {
418
420
  let dataVisualizationSubSection: DataVisualizationSubSection;
419
421
  // We check in each subsection if there is visualizations
420
422
  subSections.forEach((subSection) => {
@@ -445,7 +447,7 @@ function _removeCondensedFromSubSections(subSections: ObjectPageSubSection[]) {
445
447
  * @returns An array of sections.
446
448
  */
447
449
 
448
- export const getSections = function (converterContext: ConverterContext): ObjectPageSection[] {
450
+ export const getSections = function (converterContext: ConverterContext<PageContextPathTarget>): ObjectPageSection[] {
449
451
  const manifestWrapper = converterContext.getManifestWrapper();
450
452
  const sections = insertCustomElements(
451
453
  getSectionsFromAnnotation(converterContext),
@@ -514,7 +516,7 @@ export const getSections = function (converterContext: ConverterContext): Object
514
516
  * @param converterContext The instance of the converter context
515
517
  * @returns `true` if there is at least on header facet
516
518
  */
517
- function hasHeaderContent(converterContext: ConverterContext): boolean {
519
+ function hasHeaderContent(converterContext: ConverterContext<PageContextPathTarget>): boolean {
518
520
  const manifestWrapper = converterContext.getManifestWrapper();
519
521
  return (
520
522
  (converterContext.getEntityType().annotations?.UI?.HeaderFacets || []).length > 0 ||
@@ -528,7 +530,7 @@ function hasHeaderContent(converterContext: ConverterContext): boolean {
528
530
  * @param converterContext The instance of the converter context
529
531
  * @returns The binding expression for the Delete button
530
532
  */
531
- function getShowHeaderContentExpression(converterContext: ConverterContext): BindingToolkitExpression<any> {
533
+ function getShowHeaderContentExpression(converterContext: ConverterContext<PageContextPathTarget>): BindingToolkitExpression<boolean> {
532
534
  const manifestWrapper = converterContext.getManifestWrapper();
533
535
  return ifElse(
534
536
  !hasHeaderContent(converterContext),
@@ -543,7 +545,7 @@ function getShowHeaderContentExpression(converterContext: ConverterContext): Bin
543
545
  * @param converterContext The instance of the converter context
544
546
  * @returns The binding expression for the Delete button
545
547
  */
546
- export const getShowHeaderContent = function (converterContext: ConverterContext): CompiledBindingToolkitExpression {
548
+ export const getShowHeaderContent = function (converterContext: ConverterContext<PageContextPathTarget>): CompiledBindingToolkitExpression {
547
549
  return compileExpression(getShowHeaderContentExpression(converterContext));
548
550
  };
549
551
 
@@ -553,11 +555,13 @@ export const getShowHeaderContent = function (converterContext: ConverterContext
553
555
  * @param converterContext The instance of the converter context
554
556
  * @returns The binding expression for the Delete button
555
557
  */
556
- export const getExpandedImageVisible = function (converterContext: ConverterContext): CompiledBindingToolkitExpression {
558
+ export const getExpandedImageVisible = function (
559
+ converterContext: ConverterContext<PageContextPathTarget>
560
+ ): CompiledBindingToolkitExpression {
557
561
  return compileExpression(not(getShowHeaderContentExpression(converterContext)));
558
562
  };
559
563
 
560
- export const convertPage = function (converterContext: ConverterContext): ObjectPageDefinition {
564
+ export const convertPage = function (converterContext: ConverterContext<PageContextPathTarget>): ObjectPageDefinition {
561
565
  const manifestWrapper = converterContext.getManifestWrapper();
562
566
  let headerSection: ObjectPageSection | undefined;
563
567
  const entityType: EntityType = converterContext.getEntityType();
@@ -599,6 +603,7 @@ export const convertPage = function (converterContext: ConverterContext): Object
599
603
  headerCommandActions: headerActions.commandActions,
600
604
  footerCommandActions: footerActions.commandActions,
601
605
  showAnchorBar: manifestWrapper.getShowAnchorBar(),
602
- useIconTabBar: manifestWrapper.useIconTabBar()
606
+ useIconTabBar: manifestWrapper.useIconTabBar(),
607
+ transportSelection: manifestWrapper.getTransportSelection()
603
608
  };
604
609
  };
@@ -41,7 +41,8 @@ sap.ui.define([], function () {
41
41
  "sap.uxap.AnchorBar": true,
42
42
  "sap.uxap.ObjectPageLayout": true,
43
43
  "sap.uxap.ObjectPageSection": true,
44
- "sap.uxap.ObjectPageSubSection": true
44
+ "sap.uxap.ObjectPageSubSection": true,
45
+ "sap.f.DynamicPage": true
45
46
  };
46
47
  // currently we support the adaptation of MenuButtons only for the AnchorBar on Object Page (adaptation of sections and subsections)
47
48
  if (elementName === "sap.m.MenuButton" && ((_element$getParent = element.getParent()) === null || _element$getParent === void 0 ? void 0 : _element$getParent.getMetadata().getName()) === "sap.uxap.AnchorBar") {
@@ -90,4 +91,4 @@ sap.ui.define([], function () {
90
91
  };
91
92
  return AppComponentDesignTime;
92
93
  }, false);
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1cmxQYXJzZXJNb2NrIiwicGFyc2VQYXJhbWV0ZXJzIiwidXJsUGFyc2VyIiwic2FwIiwidXNoZWxsIiwiQ29udGFpbmVyIiwiZ2V0U2VydmljZSIsInVybFBhcmFtcyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZmlvcmlUb29sc1J0YU1vZGUiLCJ0b0xvd2VyQ2FzZSIsImdldEFsbG93TGlzdCIsImVsZW1lbnQiLCJhbGxvd0xpc3QiLCJlbGVtZW50TmFtZSIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsImdldFBhcmVudCIsImdldElkIiwiaW5jbHVkZXMiLCJBcHBDb21wb25lbnREZXNpZ25UaW1lIiwiYWN0aW9ucyIsImFnZ3JlZ2F0aW9ucyIsInJvb3RDb250cm9sIiwicHJvcGFnYXRlTWV0YWRhdGEiLCJ0b29sIiwic3RhcnQiLCJhcHBDb21wb25lbnQiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsInNldENhcGFiaWxpdHkiLCJzdG9wIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBDb21wb25lbnQuZGVzaWdudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuXG50eXBlIFVybFBhcnNlciA9IHtcblx0cGFyc2VQYXJhbWV0ZXJzKHVybDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xufTtcblxuY29uc3QgdXJsUGFyc2VyTW9jazogVXJsUGFyc2VyID0ge1xuXHRwYXJzZVBhcmFtZXRlcnM6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4ge307XG5cdH1cbn07XG5jb25zdCB1cmxQYXJzZXI6IFVybFBhcnNlciA9IHNhcC51c2hlbGw/LkNvbnRhaW5lciA/IHNhcC51c2hlbGwuQ29udGFpbmVyLmdldFNlcnZpY2UoXCJVUkxQYXJzaW5nXCIpIDogdXJsUGFyc2VyTW9jaztcbmNvbnN0IHVybFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0gdXJsUGFyc2VyLnBhcnNlUGFyYW1ldGVycyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbmNvbnN0IGZpb3JpVG9vbHNSdGFNb2RlOiBib29sZWFuID0gdXJsUGFyYW1zW1wiZmlvcmktdG9vbHMtcnRhLW1vZGVcIl0/LlswXT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCI7XG5cbmNvbnN0IGdldEFsbG93TGlzdCA9IGZ1bmN0aW9uIChlbGVtZW50OiBNYW5hZ2VkT2JqZWN0KTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuXHRsZXQgYWxsb3dMaXN0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXHRjb25zdCBlbGVtZW50TmFtZSA9IGVsZW1lbnQuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCk7XG5cdGlmIChmaW9yaVRvb2xzUnRhTW9kZSkge1xuXHRcdC8vIGJ1aWxkIHRoZSBhbGxvdyBsaXN0IGZvciBGaW9yaSB0b29scyAoZGV2ZWxvcGVycylcblx0XHRhbGxvd0xpc3QgPSB7XG5cdFx0XHRcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkuZmwudmFyaWFudHMuVmFyaWFudE1hbmFnZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnVpLm1kYy5UYWJsZVwiOiB0cnVlXG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHQvLyBidWlsZCB0aGUgYWxsb3cgbGlzdCBmb3IgVUkgQWRhcHRhdGlvbiAoa2V5IHVzZXJzKVxuXHRcdGFsbG93TGlzdCA9IHtcblx0XHRcdFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCI6IHRydWUsXG5cdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVIQm94XCI6IHRydWUsXG5cdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVWQm94XCI6IHRydWUsXG5cdFx0XHRcInNhcC5tLkljb25UYWJCYXJcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnVpLmZsLnV0aWwuSUZyYW1lXCI6IHRydWUsXG5cdFx0XHRcInNhcC51aS5mbC52YXJpYW50cy5WYXJpYW50TWFuYWdlbWVudFwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybVwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybUNvbnRhaW5lclwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybUVsZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnVpLm1kYy5UYWJsZVwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudXhhcC5BbmNob3JCYXJcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnV4YXAuT2JqZWN0UGFnZUxheW91dFwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudXhhcC5PYmplY3RQYWdlU2VjdGlvblwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudXhhcC5PYmplY3RQYWdlU3ViU2VjdGlvblwiOiB0cnVlXG5cdFx0fTtcblx0XHQvLyBjdXJyZW50bHkgd2Ugc3VwcG9ydCB0aGUgYWRhcHRhdGlvbiBvZiBNZW51QnV0dG9ucyBvbmx5IGZvciB0aGUgQW5jaG9yQmFyIG9uIE9iamVjdCBQYWdlIChhZGFwdGF0aW9uIG9mIHNlY3Rpb25zIGFuZCBzdWJzZWN0aW9ucylcblx0XHRpZiAoZWxlbWVudE5hbWUgPT09IFwic2FwLm0uTWVudUJ1dHRvblwiICYmIGVsZW1lbnQuZ2V0UGFyZW50KCk/LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpID09PSBcInNhcC51eGFwLkFuY2hvckJhclwiKSB7XG5cdFx0XHRhbGxvd0xpc3RbXCJzYXAubS5NZW51QnV0dG9uXCJdID0gdHJ1ZTtcblx0XHR9XG5cdFx0Ly8gY3VycmVudGx5IHdlIHN1cHBvcnQgdGhlIGFkYXB0YXRpb24gb2YgQnV0dG9ucyBvbmx5IGZvciB0aGUgQW5jaG9yQmFyIG9uIE9iamVjdCBQYWdlIChhZGFwdGF0aW9uIG9mIHNlY3Rpb25zIGFuZCBzdWJzZWN0aW9ucylcblx0XHRpZiAoZWxlbWVudE5hbWUgPT09IFwic2FwLm0uQnV0dG9uXCIgJiYgZWxlbWVudC5nZXRQYXJlbnQoKT8uZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkgPT09IFwic2FwLnV4YXAuQW5jaG9yQmFyXCIpIHtcblx0XHRcdGFsbG93TGlzdFtcInNhcC5tLkJ1dHRvblwiXSA9IHRydWU7XG5cdFx0fVxuXHRcdC8vIHRoZSBhZGFwdGF0aW9uIG9mIEZsZXhCb3hlcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgdGhlIEhlYWRlckNvbnRhaW5lciBvbiBPYmplY3QgUGFnZVxuXHRcdGlmIChlbGVtZW50TmFtZSA9PT0gXCJzYXAubS5GbGV4Qm94XCIgJiYgZWxlbWVudC5nZXRJZCgpLmluY2x1ZGVzKFwiLS1mZTo6SGVhZGVyQ29udGVudENvbnRhaW5lclwiKSkge1xuXHRcdFx0YWxsb3dMaXN0W1wic2FwLm0uRmxleEJveFwiXSA9IHRydWU7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhbGxvd0xpc3Q7XG59O1xuXG4vLyBUbyBlbmFibGUgYWxsIGFjdGlvbnMsIHJlbW92ZSB0aGUgcHJvcGFnYXRlTWV0YWRhdGEgZnVuY3Rpb24uIE9yLCByZW1vdmUgdGhpcyBmaWxlIGFuZCBpdHMgZW50cnkgaW4gQXBwQ29tcG9uZW50LmpzIHJlZmVycmluZyAnZGVzaWduVGltZScuXG5jb25zdCBBcHBDb21wb25lbnREZXNpZ25UaW1lID0ge1xuXHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIixcblx0YWdncmVnYXRpb25zOiB7XG5cdFx0cm9vdENvbnRyb2w6IHtcblx0XHRcdGFjdGlvbnM6IFwibm90LWFkYXB0YWJsZVwiLFxuXHRcdFx0cHJvcGFnYXRlTWV0YWRhdGE6IGZ1bmN0aW9uIChlbGVtZW50OiBNYW5hZ2VkT2JqZWN0KSB7XG5cdFx0XHRcdGNvbnN0IGFsbG93TGlzdCA9IGdldEFsbG93TGlzdChlbGVtZW50KTtcblx0XHRcdFx0aWYgKGFsbG93TGlzdFtlbGVtZW50LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpXSkge1xuXHRcdFx0XHRcdC8vIGJ5IHJldHVybmluZyB0aGUgZW1wdHkgb2JqZWN0LCB0aGUgc2FtZSB3aWxsIGJlIG1lcmdlZCB3aXRoIGVsZW1lbnQncyBuYXRpdmUgZGVzaWdudGltZSBkZWZpbml0aW9uLCBpLmUuIGFsbCBhY3Rpb25zIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGhpcyBlbGVtZW50XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIG5vdC1hZGFwdGFibGUgd2lsbCBiZSBpbnRlcnByZXRlZCBieSBmbGV4IHRvIGRpc2FibGUgYWxsIGFjdGlvbnMgZm9yIHRoaXMgZWxlbWVudFxuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHRvb2w6IHtcblx0XHRzdGFydDogZnVuY3Rpb24gKGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0XHRhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5zZXRDYXBhYmlsaXR5KFwiQXBwU3RhdGVcIiwgZmFsc2UpO1xuXHRcdH0sXG5cdFx0c3RvcDogZnVuY3Rpb24gKGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0XHRhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5zZXRDYXBhYmlsaXR5KFwiQXBwU3RhdGVcIiwgdHJ1ZSk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBDb21wb25lbnREZXNpZ25UaW1lO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7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
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1cmxQYXJzZXJNb2NrIiwicGFyc2VQYXJhbWV0ZXJzIiwidXJsUGFyc2VyIiwic2FwIiwidXNoZWxsIiwiQ29udGFpbmVyIiwiZ2V0U2VydmljZSIsInVybFBhcmFtcyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZmlvcmlUb29sc1J0YU1vZGUiLCJ0b0xvd2VyQ2FzZSIsImdldEFsbG93TGlzdCIsImVsZW1lbnQiLCJhbGxvd0xpc3QiLCJlbGVtZW50TmFtZSIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsImdldFBhcmVudCIsImdldElkIiwiaW5jbHVkZXMiLCJBcHBDb21wb25lbnREZXNpZ25UaW1lIiwiYWN0aW9ucyIsImFnZ3JlZ2F0aW9ucyIsInJvb3RDb250cm9sIiwicHJvcGFnYXRlTWV0YWRhdGEiLCJ0b29sIiwic3RhcnQiLCJhcHBDb21wb25lbnQiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsInNldENhcGFiaWxpdHkiLCJzdG9wIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBDb21wb25lbnQuZGVzaWdudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuXG50eXBlIFVybFBhcnNlciA9IHtcblx0cGFyc2VQYXJhbWV0ZXJzKHVybDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xufTtcblxuY29uc3QgdXJsUGFyc2VyTW9jazogVXJsUGFyc2VyID0ge1xuXHRwYXJzZVBhcmFtZXRlcnM6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4ge307XG5cdH1cbn07XG5jb25zdCB1cmxQYXJzZXI6IFVybFBhcnNlciA9IHNhcC51c2hlbGw/LkNvbnRhaW5lciA/IHNhcC51c2hlbGwuQ29udGFpbmVyLmdldFNlcnZpY2UoXCJVUkxQYXJzaW5nXCIpIDogdXJsUGFyc2VyTW9jaztcbmNvbnN0IHVybFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0gdXJsUGFyc2VyLnBhcnNlUGFyYW1ldGVycyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbmNvbnN0IGZpb3JpVG9vbHNSdGFNb2RlOiBib29sZWFuID0gdXJsUGFyYW1zW1wiZmlvcmktdG9vbHMtcnRhLW1vZGVcIl0/LlswXT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCI7XG5cbmNvbnN0IGdldEFsbG93TGlzdCA9IGZ1bmN0aW9uIChlbGVtZW50OiBNYW5hZ2VkT2JqZWN0KTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuXHRsZXQgYWxsb3dMaXN0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXHRjb25zdCBlbGVtZW50TmFtZSA9IGVsZW1lbnQuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCk7XG5cdGlmIChmaW9yaVRvb2xzUnRhTW9kZSkge1xuXHRcdC8vIGJ1aWxkIHRoZSBhbGxvdyBsaXN0IGZvciBGaW9yaSB0b29scyAoZGV2ZWxvcGVycylcblx0XHRhbGxvd0xpc3QgPSB7XG5cdFx0XHRcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkuZmwudmFyaWFudHMuVmFyaWFudE1hbmFnZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnVpLm1kYy5UYWJsZVwiOiB0cnVlXG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHQvLyBidWlsZCB0aGUgYWxsb3cgbGlzdCBmb3IgVUkgQWRhcHRhdGlvbiAoa2V5IHVzZXJzKVxuXHRcdGFsbG93TGlzdCA9IHtcblx0XHRcdFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCI6IHRydWUsXG5cdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVIQm94XCI6IHRydWUsXG5cdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVWQm94XCI6IHRydWUsXG5cdFx0XHRcInNhcC5tLkljb25UYWJCYXJcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnVpLmZsLnV0aWwuSUZyYW1lXCI6IHRydWUsXG5cdFx0XHRcInNhcC51aS5mbC52YXJpYW50cy5WYXJpYW50TWFuYWdlbWVudFwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybVwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybUNvbnRhaW5lclwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybUVsZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnVpLm1kYy5UYWJsZVwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudXhhcC5BbmNob3JCYXJcIjogdHJ1ZSxcblx0XHRcdFwic2FwLnV4YXAuT2JqZWN0UGFnZUxheW91dFwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudXhhcC5PYmplY3RQYWdlU2VjdGlvblwiOiB0cnVlLFxuXHRcdFx0XCJzYXAudXhhcC5PYmplY3RQYWdlU3ViU2VjdGlvblwiOiB0cnVlLFxuXHRcdFx0XCJzYXAuZi5EeW5hbWljUGFnZVwiOiB0cnVlXG5cdFx0fTtcblx0XHQvLyBjdXJyZW50bHkgd2Ugc3VwcG9ydCB0aGUgYWRhcHRhdGlvbiBvZiBNZW51QnV0dG9ucyBvbmx5IGZvciB0aGUgQW5jaG9yQmFyIG9uIE9iamVjdCBQYWdlIChhZGFwdGF0aW9uIG9mIHNlY3Rpb25zIGFuZCBzdWJzZWN0aW9ucylcblx0XHRpZiAoZWxlbWVudE5hbWUgPT09IFwic2FwLm0uTWVudUJ1dHRvblwiICYmIGVsZW1lbnQuZ2V0UGFyZW50KCk/LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpID09PSBcInNhcC51eGFwLkFuY2hvckJhclwiKSB7XG5cdFx0XHRhbGxvd0xpc3RbXCJzYXAubS5NZW51QnV0dG9uXCJdID0gdHJ1ZTtcblx0XHR9XG5cdFx0Ly8gY3VycmVudGx5IHdlIHN1cHBvcnQgdGhlIGFkYXB0YXRpb24gb2YgQnV0dG9ucyBvbmx5IGZvciB0aGUgQW5jaG9yQmFyIG9uIE9iamVjdCBQYWdlIChhZGFwdGF0aW9uIG9mIHNlY3Rpb25zIGFuZCBzdWJzZWN0aW9ucylcblx0XHRpZiAoZWxlbWVudE5hbWUgPT09IFwic2FwLm0uQnV0dG9uXCIgJiYgZWxlbWVudC5nZXRQYXJlbnQoKT8uZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkgPT09IFwic2FwLnV4YXAuQW5jaG9yQmFyXCIpIHtcblx0XHRcdGFsbG93TGlzdFtcInNhcC5tLkJ1dHRvblwiXSA9IHRydWU7XG5cdFx0fVxuXHRcdC8vIHRoZSBhZGFwdGF0aW9uIG9mIEZsZXhCb3hlcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgdGhlIEhlYWRlckNvbnRhaW5lciBvbiBPYmplY3QgUGFnZVxuXHRcdGlmIChlbGVtZW50TmFtZSA9PT0gXCJzYXAubS5GbGV4Qm94XCIgJiYgZWxlbWVudC5nZXRJZCgpLmluY2x1ZGVzKFwiLS1mZTo6SGVhZGVyQ29udGVudENvbnRhaW5lclwiKSkge1xuXHRcdFx0YWxsb3dMaXN0W1wic2FwLm0uRmxleEJveFwiXSA9IHRydWU7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhbGxvd0xpc3Q7XG59O1xuXG4vLyBUbyBlbmFibGUgYWxsIGFjdGlvbnMsIHJlbW92ZSB0aGUgcHJvcGFnYXRlTWV0YWRhdGEgZnVuY3Rpb24uIE9yLCByZW1vdmUgdGhpcyBmaWxlIGFuZCBpdHMgZW50cnkgaW4gQXBwQ29tcG9uZW50LmpzIHJlZmVycmluZyAnZGVzaWduVGltZScuXG5jb25zdCBBcHBDb21wb25lbnREZXNpZ25UaW1lID0ge1xuXHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIixcblx0YWdncmVnYXRpb25zOiB7XG5cdFx0cm9vdENvbnRyb2w6IHtcblx0XHRcdGFjdGlvbnM6IFwibm90LWFkYXB0YWJsZVwiLFxuXHRcdFx0cHJvcGFnYXRlTWV0YWRhdGE6IGZ1bmN0aW9uIChlbGVtZW50OiBNYW5hZ2VkT2JqZWN0KSB7XG5cdFx0XHRcdGNvbnN0IGFsbG93TGlzdCA9IGdldEFsbG93TGlzdChlbGVtZW50KTtcblx0XHRcdFx0aWYgKGFsbG93TGlzdFtlbGVtZW50LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpXSkge1xuXHRcdFx0XHRcdC8vIGJ5IHJldHVybmluZyB0aGUgZW1wdHkgb2JqZWN0LCB0aGUgc2FtZSB3aWxsIGJlIG1lcmdlZCB3aXRoIGVsZW1lbnQncyBuYXRpdmUgZGVzaWdudGltZSBkZWZpbml0aW9uLCBpLmUuIGFsbCBhY3Rpb25zIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGhpcyBlbGVtZW50XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIG5vdC1hZGFwdGFibGUgd2lsbCBiZSBpbnRlcnByZXRlZCBieSBmbGV4IHRvIGRpc2FibGUgYWxsIGFjdGlvbnMgZm9yIHRoaXMgZWxlbWVudFxuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHRvb2w6IHtcblx0XHRzdGFydDogZnVuY3Rpb24gKGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0XHRhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5zZXRDYXBhYmlsaXR5KFwiQXBwU3RhdGVcIiwgZmFsc2UpO1xuXHRcdH0sXG5cdFx0c3RvcDogZnVuY3Rpb24gKGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0XHRhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5zZXRDYXBhYmlsaXR5KFwiQXBwU3RhdGVcIiwgdHJ1ZSk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBDb21wb25l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
@@ -40,7 +40,8 @@ const getAllowList = function (element: ManagedObject): Record<string, boolean>
40
40
  "sap.uxap.AnchorBar": true,
41
41
  "sap.uxap.ObjectPageLayout": true,
42
42
  "sap.uxap.ObjectPageSection": true,
43
- "sap.uxap.ObjectPageSubSection": true
43
+ "sap.uxap.ObjectPageSubSection": true,
44
+ "sap.f.DynamicPage": true
44
45
  };
45
46
  // currently we support the adaptation of MenuButtons only for the AnchorBar on Object Page (adaptation of sections and subsections)
46
47
  if (elementName === "sap.m.MenuButton" && element.getParent()?.getMetadata().getName() === "sap.uxap.AnchorBar") {
@@ -28,7 +28,7 @@
28
28
  <mdcvc:FixedList useFirstMatch="true">
29
29
  <template:with path="this>" helper="EDITSTATE.getEditStatesContext" var="states">
30
30
  <template:repeat list="{states>}" var="state">
31
- <mdcf:ListFieldHelpItem key="{state>id}" text="{state>display}" />
31
+ <mdcvc:FixedListItem key="{state>id}" text="{state>display}" />
32
32
  </template:repeat>
33
33
  </template:with>
34
34
  </mdcvc:FixedList>
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationCommon", "sap/ui/core/Lib"], function (CollaborationCommon, Library) {
5
+ sap.ui.define(["sap/base/util/ObjectPath", "sap/fe/core/controllerextensions/collaboration/CollaborationCommon", "sap/ui/core/Lib"], function (ObjectPath, CollaborationCommon, Library) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
@@ -71,9 +71,7 @@ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationComm
71
71
  collaborationFormatters.getCollaborationActivityInitials = getCollaborationActivityInitials;
72
72
  collaborationFormatters.getCollaborationActivityColor = getCollaborationActivityColor;
73
73
  collaborationFormatters.getFormattedText = getFormattedText;
74
- /**
75
- * @global
76
- */
74
+ ObjectPath.set("sap.fe.core.formatters.CollaborationFormatter", collaborationFormatters);
77
75
  return collaborationFormatters;
78
- }, true);
79
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb2xsYWJvcmF0aW9uRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5IiwiaGFzQ29sbGFib3JhdGlvbkFjdGl2aXR5IiwiYWN0aXZpdGllcyIsImdldENvbGxhYm9yYXRpb25BY3Rpdml0eSIsIl9fZnVuY3Rpb25OYW1lIiwiZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMiLCJhY3Rpdml0eSIsImluaXRpYWxzIiwiZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IiLCJjb2xvciIsImNvbnRyb2wiLCJwYXRoIiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRQYXRoIiwidW5kZWZpbmVkIiwiYWN0aXZpdHlLZXkiLCJnZXRBY3Rpdml0eUtleUZyb21QYXRoIiwibGVuZ3RoIiwiZmluZCIsImtleSIsImdldEZvcm1hdHRlZFRleHQiLCJ0ZXh0SWQiLCJyZXNvdXJjZUJ1bmRsZSIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsInBhcmFtcyIsImkiLCJwdXNoIiwiZ2V0VGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGlvbkZvcm1hdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbGxlY3Rpb24gb2YgZm9ybWF0dGVycyBuZWVkZWQgZm9yIHRoZSBjb2xsYWJvcmF0aW9uIGRyYWZ0LlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gc05hbWUgVGhlIGlubmVyIGZ1bmN0aW9uIG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0W119IG9BcmdzIFRoZSBpbm5lciBmdW5jdGlvbiBwYXJhbWV0ZXJzXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgdmFsdWUgZnJvbSB0aGUgaW5uZXIgZnVuY3Rpb25cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFVzZXJBY3Rpdml0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB7IGdldEFjdGl2aXR5S2V5RnJvbVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5cbmNvbnN0IGNvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKGNvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmhhc093blByb3BlcnR5KHNOYW1lKSkge1xuXHRcdHJldHVybiAoY29sbGFib3JhdGlvbkZvcm1hdHRlcnMgYXMgYW55KVtzTmFtZV0uYXBwbHkodGhpcywgb0FyZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG59O1xuZXhwb3J0IGNvbnN0IGhhc0NvbGxhYm9yYXRpb25BY3Rpdml0eSA9IGZ1bmN0aW9uICh0aGlzOiBNYW5hZ2VkT2JqZWN0LCBhY3Rpdml0aWVzOiBVc2VyQWN0aXZpdHlbXSwgLi4uX2tleXM6IGFueVtdKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiAhIWdldENvbGxhYm9yYXRpb25BY3Rpdml0eShhY3Rpdml0aWVzLCB0aGlzKTtcbn07XG5oYXNDb2xsYWJvcmF0aW9uQWN0aXZpdHkuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuQ29sbGFib3JhdGlvbkZvcm1hdHRlciNoYXNDb2xsYWJvcmF0aW9uQWN0aXZpdHlcIjtcblxuZXhwb3J0IGNvbnN0IGdldENvbGxhYm9yYXRpb25BY3Rpdml0eUluaXRpYWxzID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBNYW5hZ2VkT2JqZWN0LFxuXHRhY3Rpdml0aWVzOiBVc2VyQWN0aXZpdHlbXSxcblx0Li4uX2tleXM6IFByb3BlcnR5W11cbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFjdGl2aXR5ID0gZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5KGFjdGl2aXRpZXMsIHRoaXMpO1xuXHRyZXR1cm4gYWN0aXZpdHk/LmluaXRpYWxzO1xufTtcbmdldENvbGxhYm9yYXRpb25BY3Rpdml0eUluaXRpYWxzLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLkNvbGxhYm9yYXRpb25Gb3JtYXR0ZXIjZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHNcIjtcblxuZXhwb3J0IGNvbnN0IGdldENvbGxhYm9yYXRpb25BY3Rpdml0eUNvbG9yID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBNYW5hZ2VkT2JqZWN0LFxuXHRhY3Rpdml0aWVzOiBVc2VyQWN0aXZpdHlbXSxcblx0Li4uX2tleXM6IFByb3BlcnR5W11cbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFjdGl2aXR5ID0gZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5KGFjdGl2aXRpZXMsIHRoaXMpO1xuXHRyZXR1cm4gYWN0aXZpdHk/LmNvbG9yO1xufTtcbmdldENvbGxhYm9yYXRpb25BY3Rpdml0eUNvbG9yLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLkNvbGxhYm9yYXRpb25Gb3JtYXR0ZXIjZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3JcIjtcblxuZnVuY3Rpb24gZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5KGFjdGl2aXRpZXM/OiBVc2VyQWN0aXZpdHlbXSwgY29udHJvbD86IE1hbmFnZWRPYmplY3QpIHtcblx0Y29uc3QgcGF0aCA9IGNvbnRyb2w/LmdldEJpbmRpbmdDb250ZXh0KCk/LmdldFBhdGgoKTtcblx0aWYgKCFwYXRoKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRjb25zdCBhY3Rpdml0eUtleSA9IGdldEFjdGl2aXR5S2V5RnJvbVBhdGgocGF0aCk7XG5cdGlmIChhY3Rpdml0aWVzICYmIGFjdGl2aXRpZXMubGVuZ3RoID4gMCkge1xuXHRcdHJldHVybiBhY3Rpdml0aWVzLmZpbmQoKGFjdGl2aXR5KSA9PiB7XG5cdFx0XHRyZXR1cm4gYWN0aXZpdHkua2V5ID09PSBhY3Rpdml0eUtleTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgSW52aXRhdGlvbiBkaWFsb2cgdGl0bGUgYmFzZWQgb24gdGhlIHVuZGVybHlpbmcgcmVzb3VyY2UgYnVuZGxlLlxuICpcbiAqIEBwYXJhbSBhcmdzIFRoZSBpbm5lciBmdW5jdGlvbiBwYXJhbWV0ZXJzXG4gKiBAcmV0dXJucyBUaGUgZGlhbG9nIHRpdGxlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGb3JtYXR0ZWRUZXh0ID0gKC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcblx0Y29uc3QgdGV4dElkID0gYXJnc1swXTtcblx0Y29uc3QgcmVzb3VyY2VCdW5kbGUgPSBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmVcIikhO1xuXHRjb25zdCBwYXJhbXMgPSBbXTtcblx0Zm9yIChsZXQgaSA9IDE7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0cGFyYW1zLnB1c2goYXJnc1tpXSk7XG5cdH1cblx0cmV0dXJuIHJlc291cmNlQnVuZGxlLmdldFRleHQodGV4dElkLCBwYXJhbXMpO1xufTtcblxuZ2V0Rm9ybWF0dGVkVGV4dC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5Db2xsYWJvcmF0aW9uRm9ybWF0dGVyI2dldEZvcm1hdHRlZFRleHRcIjtcblxuY29sbGFib3JhdGlvbkZvcm1hdHRlcnMuaGFzQ29sbGFib3JhdGlvbkFjdGl2aXR5ID0gaGFzQ29sbGFib3JhdGlvbkFjdGl2aXR5O1xuY29sbGFib3JhdGlvbkZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMgPSBnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHlJbml0aWFscztcbmNvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25BY3Rpdml0eUNvbG9yID0gZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3I7XG5jb2xsYWJvcmF0aW9uRm9ybWF0dGVycy5nZXRGb3JtYXR0ZWRUZXh0ID0gZ2V0Rm9ybWF0dGVkVGV4dDtcbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBjb2xsYWJvcmF0aW9uRm9ybWF0dGVycztcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7O0VBZUEsTUFBTUEsdUJBQXVCLEdBQUcsVUFBd0JDLEtBQWEsRUFBd0I7SUFDNUYsSUFBSUQsdUJBQXVCLENBQUNFLGNBQWMsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFBQSxrQ0FEc0JFLEtBQUs7UUFBTEEsS0FBSztNQUFBO01BRTdFLE9BQVFILHVCQUF1QixDQUFTQyxLQUFLLENBQUMsQ0FBQ0csS0FBSyxDQUFDLElBQUksRUFBRUQsS0FBSyxDQUFDO0lBQ2xFLENBQUMsTUFBTTtNQUNOLE9BQU8sRUFBRTtJQUNWO0VBQ0QsQ0FBQztFQUNNLE1BQU1FLHdCQUF3QixHQUFHLFVBQStCQyxVQUEwQixFQUF3QztJQUN4SSxPQUFPLENBQUMsQ0FBQ0Msd0JBQXdCLENBQUNELFVBQVUsRUFBRSxJQUFJLENBQUM7RUFDcEQsQ0FBQztFQUNERCx3QkFBd0IsQ0FBQ0csY0FBYyxHQUFHLHdFQUF3RTtFQUFDO0VBRTVHLE1BQU1DLGdDQUFnQyxHQUFHLFVBRS9DSCxVQUEwQixFQUVMO0lBQ3JCLE1BQU1JLFFBQVEsR0FBR0gsd0JBQXdCLENBQUNELFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDM0QsT0FBT0ksUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVDLFFBQVE7RUFDMUIsQ0FBQztFQUNERixnQ0FBZ0MsQ0FBQ0QsY0FBYyxHQUFHLGdGQUFnRjtFQUFDO0VBRTVILE1BQU1JLDZCQUE2QixHQUFHLFVBRTVDTixVQUEwQixFQUVMO0lBQ3JCLE1BQU1JLFFBQVEsR0FBR0gsd0JBQXdCLENBQUNELFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDM0QsT0FBT0ksUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVHLEtBQUs7RUFDdkIsQ0FBQztFQUNERCw2QkFBNkIsQ0FBQ0osY0FBYyxHQUFHLDZFQUE2RTtFQUFDO0VBRTdILFNBQVNELHdCQUF3QixDQUFDRCxVQUEyQixFQUFFUSxPQUF1QixFQUFFO0lBQUE7SUFDdkYsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLGFBQVBBLE9BQU8sZ0RBQVBBLE9BQU8sQ0FBRUUsaUJBQWlCLEVBQUUsMERBQTVCLHNCQUE4QkMsT0FBTyxFQUFFO0lBQ3BELElBQUksQ0FBQ0YsSUFBSSxFQUFFO01BQ1YsT0FBT0csU0FBUztJQUNqQjtJQUNBLE1BQU1DLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNMLElBQUksQ0FBQztJQUNoRCxJQUFJVCxVQUFVLElBQUlBLFVBQVUsQ0FBQ2UsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUN4QyxPQUFPZixVQUFVLENBQUNnQixJQUFJLENBQUVaLFFBQVEsSUFBSztRQUNwQyxPQUFPQSxRQUFRLENBQUNhLEdBQUcsS0FBS0osV0FBVztNQUNwQyxDQUFDLENBQUM7SUFDSCxDQUFDLE1BQU07TUFDTixPQUFPRCxTQUFTO0lBQ2pCO0VBQ0Q7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sTUFBTU0sZ0JBQWdCLEdBQUcsWUFBK0I7SUFDOUQsTUFBTUMsTUFBTSxtREFBVTtJQUN0QixNQUFNQyxjQUFjLEdBQUdDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUMsYUFBYSxDQUFFO0lBQ25FLE1BQU1DLE1BQU0sR0FBRyxFQUFFO0lBQ2pCLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHLFVBQUtULE1BQU0sRUFBRVMsQ0FBQyxFQUFFLEVBQUU7TUFDckNELE1BQU0sQ0FBQ0UsSUFBSSxDQUFNRCxDQUFDLDRCQUFEQSxDQUFDLHlCQUFEQSxDQUFDLEVBQUU7SUFDckI7SUFDQSxPQUFPSixjQUFjLENBQUNNLE9BQU8sQ0FBQ1AsTUFBTSxFQUFFSSxNQUFNLENBQUM7RUFDOUMsQ0FBQztFQUVETCxnQkFBZ0IsQ0FBQ2hCLGNBQWMsR0FBRyxnRUFBZ0U7RUFBQztFQUVuR1IsdUJBQXVCLENBQUNLLHdCQUF3QixHQUFHQSx3QkFBd0I7RUFDM0VMLHVCQUF1QixDQUFDUyxnQ0FBZ0MsR0FBR0EsZ0NBQWdDO0VBQzNGVCx1QkFBdUIsQ0FBQ1ksNkJBQTZCLEdBQUdBLDZCQUE2QjtFQUNyRlosdUJBQXVCLENBQUN3QixnQkFBZ0IsR0FBR0EsZ0JBQWdCO0VBQzNEO0FBQ0E7QUFDQTtFQUZBLE9BR2V4Qix1QkFBdUI7QUFBQSJ9
76
+ }, false);
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb2xsYWJvcmF0aW9uRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5IiwiaGFzQ29sbGFib3JhdGlvbkFjdGl2aXR5IiwiYWN0aXZpdGllcyIsImdldENvbGxhYm9yYXRpb25BY3Rpdml0eSIsIl9fZnVuY3Rpb25OYW1lIiwiZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMiLCJhY3Rpdml0eSIsImluaXRpYWxzIiwiZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IiLCJjb2xvciIsImNvbnRyb2wiLCJwYXRoIiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRQYXRoIiwidW5kZWZpbmVkIiwiYWN0aXZpdHlLZXkiLCJnZXRBY3Rpdml0eUtleUZyb21QYXRoIiwibGVuZ3RoIiwiZmluZCIsImtleSIsImdldEZvcm1hdHRlZFRleHQiLCJ0ZXh0SWQiLCJyZXNvdXJjZUJ1bmRsZSIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsInBhcmFtcyIsImkiLCJwdXNoIiwiZ2V0VGV4dCIsIk9iamVjdFBhdGgiLCJzZXQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25Gb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGZvcm1hdHRlcnMgbmVlZGVkIGZvciB0aGUgY29sbGFib3JhdGlvbiBkcmFmdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IE9iamVjdFBhdGggZnJvbSBcInNhcC9iYXNlL3V0aWwvT2JqZWN0UGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBVc2VyQWN0aXZpdHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgeyBnZXRBY3Rpdml0eUtleUZyb21QYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuXG5jb25zdCBjb2xsYWJvcmF0aW9uRm9ybWF0dGVycyA9IGZ1bmN0aW9uICh0aGlzOiBvYmplY3QsIHNOYW1lOiBzdHJpbmcsIC4uLm9BcmdzOiBhbnlbXSk6IGFueSB7XG5cdGlmIChjb2xsYWJvcmF0aW9uRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKGNvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzIGFzIGFueSlbc05hbWVdLmFwcGx5KHRoaXMsIG9BcmdzKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxufTtcbmV4cG9ydCBjb25zdCBoYXNDb2xsYWJvcmF0aW9uQWN0aXZpdHkgPSBmdW5jdGlvbiAodGhpczogTWFuYWdlZE9iamVjdCwgYWN0aXZpdGllczogVXNlckFjdGl2aXR5W10sIC4uLl9rZXlzOiB1bmtub3duW10pOiBib29sZWFuIHtcblx0cmV0dXJuICEhZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5KGFjdGl2aXRpZXMsIHRoaXMpO1xufTtcbmhhc0NvbGxhYm9yYXRpb25BY3Rpdml0eS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5Db2xsYWJvcmF0aW9uRm9ybWF0dGVyI2hhc0NvbGxhYm9yYXRpb25BY3Rpdml0eVwiO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IE1hbmFnZWRPYmplY3QsXG5cdGFjdGl2aXRpZXM6IFVzZXJBY3Rpdml0eVtdLFxuXHQuLi5fa2V5czogUHJvcGVydHlbXVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgYWN0aXZpdHkgPSBnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHkoYWN0aXZpdGllcywgdGhpcyk7XG5cdHJldHVybiBhY3Rpdml0eT8uaW5pdGlhbHM7XG59O1xuZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuQ29sbGFib3JhdGlvbkZvcm1hdHRlciNnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHlJbml0aWFsc1wiO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IE1hbmFnZWRPYmplY3QsXG5cdGFjdGl2aXRpZXM6IFVzZXJBY3Rpdml0eVtdLFxuXHQuLi5fa2V5czogUHJvcGVydHlbXVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgYWN0aXZpdHkgPSBnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHkoYWN0aXZpdGllcywgdGhpcyk7XG5cdHJldHVybiBhY3Rpdml0eT8uY29sb3I7XG59O1xuZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuQ29sbGFib3JhdGlvbkZvcm1hdHRlciNnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHlDb2xvclwiO1xuXG5mdW5jdGlvbiBnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHkoYWN0aXZpdGllcz86IFVzZXJBY3Rpdml0eVtdLCBjb250cm9sPzogTWFuYWdlZE9iamVjdCkge1xuXHRjb25zdCBwYXRoID0gY29udHJvbD8uZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpO1xuXHRpZiAoIXBhdGgpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdGNvbnN0IGFjdGl2aXR5S2V5ID0gZ2V0QWN0aXZpdHlLZXlGcm9tUGF0aChwYXRoKTtcblx0aWYgKGFjdGl2aXRpZXMgJiYgYWN0aXZpdGllcy5sZW5ndGggPiAwKSB7XG5cdFx0cmV0dXJuIGFjdGl2aXRpZXMuZmluZCgoYWN0aXZpdHkpID0+IHtcblx0XHRcdHJldHVybiBhY3Rpdml0eS5rZXkgPT09IGFjdGl2aXR5S2V5O1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cblxuLyoqXG4gKiBDb21wdXRlIHRoZSBJbnZpdGF0aW9uIGRpYWxvZyB0aXRsZSBiYXNlZCBvbiB0aGUgdW5kZXJseWluZyByZXNvdXJjZSBidW5kbGUuXG4gKlxuICogQHBhcmFtIGFyZ3MgVGhlIGlubmVyIGZ1bmN0aW9uIHBhcmFtZXRlcnNcbiAqIEByZXR1cm5zIFRoZSBkaWFsb2cgdGl0bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZvcm1hdHRlZFRleHQgPSAoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmcgPT4ge1xuXHRjb25zdCB0ZXh0SWQgPSBhcmdzWzBdO1xuXHRjb25zdCByZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSE7XG5cdGNvbnN0IHBhcmFtcyA9IFtdO1xuXHRmb3IgKGxldCBpID0gMTsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcblx0XHRwYXJhbXMucHVzaChhcmdzW2ldKTtcblx0fVxuXHRyZXR1cm4gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dCh0ZXh0SWQsIHBhcmFtcyk7XG59O1xuXG5nZXRGb3JtYXR0ZWRUZXh0Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLkNvbGxhYm9yYXRpb25Gb3JtYXR0ZXIjZ2V0Rm9ybWF0dGVkVGV4dFwiO1xuXG5jb2xsYWJvcmF0aW9uRm9ybWF0dGVycy5oYXNDb2xsYWJvcmF0aW9uQWN0aXZpdHkgPSBoYXNDb2xsYWJvcmF0aW9uQWN0aXZpdHk7XG5jb2xsYWJvcmF0aW9uRm9ybWF0dGVycy5nZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHlJbml0aWFscyA9IGdldENvbGxhYm9yYXRpb25BY3Rpdml0eUluaXRpYWxzO1xuY29sbGFib3JhdGlvbkZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IgPSBnZXRDb2xsYWJvcmF0aW9uQWN0aXZpdHlDb2xvcjtcbmNvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmdldEZvcm1hdHRlZFRleHQgPSBnZXRGb3JtYXR0ZWRUZXh0O1xuXG5PYmplY3RQYXRoLnNldChcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuQ29sbGFib3JhdGlvbkZvcm1hdHRlclwiLCBjb2xsYWJvcmF0aW9uRm9ybWF0dGVycyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFnQkEsTUFBTUEsdUJBQXVCLEdBQUcsVUFBd0JDLEtBQWEsRUFBd0I7SUFDNUYsSUFBSUQsdUJBQXVCLENBQUNFLGNBQWMsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFBQSxrQ0FEc0JFLEtBQUs7UUFBTEEsS0FBSztNQUFBO01BRTdFLE9BQVFILHVCQUF1QixDQUFTQyxLQUFLLENBQUMsQ0FBQ0csS0FBSyxDQUFDLElBQUksRUFBRUQsS0FBSyxDQUFDO0lBQ2xFLENBQUMsTUFBTTtNQUNOLE9BQU8sRUFBRTtJQUNWO0VBQ0QsQ0FBQztFQUNNLE1BQU1FLHdCQUF3QixHQUFHLFVBQStCQyxVQUEwQixFQUFnQztJQUNoSSxP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
@@ -8,6 +8,7 @@
8
8
  */
9
9
 
10
10
  import type { Property } from "@sap-ux/vocabularies-types";
11
+ import ObjectPath from "sap/base/util/ObjectPath";
11
12
  import type { UserActivity } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
12
13
  import { getActivityKeyFromPath } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
13
14
  import type ManagedObject from "sap/ui/base/ManagedObject";
@@ -20,7 +21,7 @@ const collaborationFormatters = function (this: object, sName: string, ...oArgs:
20
21
  return "";
21
22
  }
22
23
  };
23
- export const hasCollaborationActivity = function (this: ManagedObject, activities: UserActivity[], ..._keys: any[]): boolean | undefined {
24
+ export const hasCollaborationActivity = function (this: ManagedObject, activities: UserActivity[], ..._keys: unknown[]): boolean {
24
25
  return !!getCollaborationActivity(activities, this);
25
26
  };
26
27
  hasCollaborationActivity.__functionName = "sap.fe.core.formatters.CollaborationFormatter#hasCollaborationActivity";
@@ -82,7 +83,7 @@ collaborationFormatters.hasCollaborationActivity = hasCollaborationActivity;
82
83
  collaborationFormatters.getCollaborationActivityInitials = getCollaborationActivityInitials;
83
84
  collaborationFormatters.getCollaborationActivityColor = getCollaborationActivityColor;
84
85
  collaborationFormatters.getFormattedText = getFormattedText;
85
- /**
86
- * @global
87
- */
86
+
87
+ ObjectPath.set("sap.fe.core.formatters.CollaborationFormatter", collaborationFormatters);
88
+
88
89
  export default collaborationFormatters;
@@ -2,19 +2,14 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define([], function () {
5
+ sap.ui.define(["sap/base/util/ObjectPath", "sap/fe/core/helpers/FPMHelper"], function (ObjectPath, FPMHelper) {
6
6
  "use strict";
7
7
 
8
8
  const customBooleanPropertyCheck = async function (oView, modulePath, aSelectedContexts) {
9
- const oExtensionAPI = oView.getController().getExtensionAPI();
10
9
  const parts = modulePath.split(".");
11
10
  const methodName = parts.pop();
12
11
  const moduleName = parts.join("/");
13
- return new Promise(resolve => {
14
- sap.ui.require([moduleName], module => {
15
- resolve(module[methodName].bind(oExtensionAPI)(this.getBindingContext(), aSelectedContexts || []));
16
- });
17
- });
12
+ return FPMHelper.loadModuleAndCallMethod(moduleName, methodName, oView, this.getBindingContext(), aSelectedContexts || []);
18
13
  };
19
14
  customBooleanPropertyCheck.__functionName = "sap.fe.core.formatters.FPMFormatter#customBooleanPropertyCheck";
20
15
 
@@ -37,10 +32,7 @@ sap.ui.define([], function () {
37
32
  }
38
33
  };
39
34
  fpmFormatter.customBooleanPropertyCheck = customBooleanPropertyCheck;
40
-
41
- /**
42
- * @global
43
- */
35
+ ObjectPath.set("sap.fe.core.formatters.FPMFormatter", fpmFormatter);
44
36
  return fpmFormatter;
45
- }, true);
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXN0b21Cb29sZWFuUHJvcGVydHlDaGVjayIsIm9WaWV3IiwibW9kdWxlUGF0aCIsImFTZWxlY3RlZENvbnRleHRzIiwib0V4dGVuc2lvbkFQSSIsImdldENvbnRyb2xsZXIiLCJnZXRFeHRlbnNpb25BUEkiLCJwYXJ0cyIsInNwbGl0IiwibWV0aG9kTmFtZSIsInBvcCIsIm1vZHVsZU5hbWUiLCJqb2luIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJtb2R1bGUiLCJiaW5kIiwiZ2V0QmluZGluZ0NvbnRleHQiLCJfX2Z1bmN0aW9uTmFtZSIsImZwbUZvcm1hdHRlciIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGUE1Gb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuY29uc3QgY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2sgPSBhc3luYyBmdW5jdGlvbiAoXG5cdHRoaXM6IE1hbmFnZWRPYmplY3QsXG5cdG9WaWV3OiBWaWV3LFxuXHRtb2R1bGVQYXRoOiBzdHJpbmcsXG5cdGFTZWxlY3RlZENvbnRleHRzOiBDb250ZXh0W11cbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRjb25zdCBvRXh0ZW5zaW9uQVBJID0gKG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBQYWdlQ29udHJvbGxlcikuZ2V0RXh0ZW5zaW9uQVBJKCk7XG5cdGNvbnN0IHBhcnRzID0gbW9kdWxlUGF0aC5zcGxpdChcIi5cIik7XG5cdGNvbnN0IG1ldGhvZE5hbWUgPSBwYXJ0cy5wb3AoKSBhcyBzdHJpbmc7XG5cdGNvbnN0IG1vZHVsZU5hbWUgPSBwYXJ0cy5qb2luKFwiL1wiKTtcblxuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRzYXAudWkucmVxdWlyZShbbW9kdWxlTmFtZV0sIChtb2R1bGU6IGFueSkgPT4ge1xuXHRcdFx0cmVzb2x2ZShtb2R1bGVbbWV0aG9kTmFtZV0uYmluZChvRXh0ZW5zaW9uQVBJKSh0aGlzLmdldEJpbmRpbmdDb250ZXh0KCksIGFTZWxlY3RlZENvbnRleHRzIHx8IFtdKSk7XG5cdFx0fSk7XG5cdH0pO1xufTtcbmN1c3RvbUJvb2xlYW5Qcm9wZXJ0eUNoZWNrLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLkZQTUZvcm1hdHRlciNjdXN0b21Cb29sZWFuUHJvcGVydHlDaGVja1wiO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0gb0FyZ3MgVGhlIGlubmVyIGZ1bmN0aW9uIHBhcmFtZXRlcnNcbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5jb25zdCBmcG1Gb3JtYXR0ZXIgPSBmdW5jdGlvbiAodGhpczogb2JqZWN0LCBzTmFtZTogc3RyaW5nLCAuLi5vQXJnczogYW55W10pOiBhbnkge1xuXHRpZiAoZnBtRm9ybWF0dGVyLmhhc093blByb3BlcnR5KHNOYW1lKSkge1xuXHRcdHJldHVybiAoZnBtRm9ybWF0dGVyIGFzIGFueSlbc05hbWVdLmFwcGx5KHRoaXMsIG9BcmdzKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxufTtcblxuZnBtRm9ybWF0dGVyLmN1c3RvbUJvb2xlYW5Qcm9wZXJ0eUNoZWNrID0gY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2s7XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBmcG1Gb3JtYXR0ZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFLQSxNQUFNQSwwQkFBMEIsR0FBRyxnQkFFbENDLEtBQVcsRUFDWEMsVUFBa0IsRUFDbEJDLGlCQUE0QixFQUNUO0lBQ25CLE1BQU1DLGFBQWEsR0FBSUgsS0FBSyxDQUFDSSxhQUFhLEVBQUUsQ0FBb0JDLGVBQWUsRUFBRTtJQUNqRixNQUFNQyxLQUFLLEdBQUdMLFVBQVUsQ0FBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNuQyxNQUFNQyxVQUFVLEdBQUdGLEtBQUssQ0FBQ0csR0FBRyxFQUFZO0lBQ3hDLE1BQU1DLFVBQVUsR0FBR0osS0FBSyxDQUFDSyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBRWxDLE9BQU8sSUFBSUMsT0FBTyxDQUFFQyxPQUFPLElBQUs7TUFDL0JDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxPQUFPLENBQUMsQ0FBQ04sVUFBVSxDQUFDLEVBQUdPLE1BQVcsSUFBSztRQUM3Q0osT0FBTyxDQUFDSSxNQUFNLENBQUNULFVBQVUsQ0FBQyxDQUFDVSxJQUFJLENBQUNmLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQ2dCLGlCQUFpQixFQUFFLEVBQUVqQixpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztNQUNuRyxDQUFDLENBQUM7SUFDSCxDQUFDLENBQUM7RUFDSCxDQUFDO0VBQ0RILDBCQUEwQixDQUFDcUIsY0FBYyxHQUFHLGdFQUFnRTs7RUFFNUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLE1BQU1DLFlBQVksR0FBRyxVQUF3QkMsS0FBYSxFQUF3QjtJQUNqRixJQUFJRCxZQUFZLENBQUNFLGNBQWMsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFBQSxrQ0FEc0JFLEtBQUs7UUFBTEEsS0FBSztNQUFBO01BRWxFLE9BQVFILFlBQVksQ0FBU0MsS0FBSyxDQUFDLENBQUNHLEtBQUssQ0FBQyxJQUFJLEVBQUVELEtBQUssQ0FBQztJQUN2RCxDQUFDLE1BQU07TUFDTixPQUFPLEVBQUU7SUFDVjtFQUNELENBQUM7RUFFREgsWUFBWSxDQUFDdEIsMEJBQTBCLEdBQUdBLDBCQUEwQjs7RUFFcEU7QUFDQTtBQUNBO0VBRkEsT0FHZXNCLFlBQVk7QUFBQSJ9
37
+ }, false);
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXN0b21Cb29sZWFuUHJvcGVydHlDaGVjayIsIm9WaWV3IiwibW9kdWxlUGF0aCIsImFTZWxlY3RlZENvbnRleHRzIiwicGFydHMiLCJzcGxpdCIsIm1ldGhvZE5hbWUiLCJwb3AiLCJtb2R1bGVOYW1lIiwiam9pbiIsIkZQTUhlbHBlciIsImxvYWRNb2R1bGVBbmRDYWxsTWV0aG9kIiwiZ2V0QmluZGluZ0NvbnRleHQiLCJfX2Z1bmN0aW9uTmFtZSIsImZwbUZvcm1hdHRlciIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5IiwiT2JqZWN0UGF0aCIsInNldCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRlBNRm9ybWF0dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RQYXRoIGZyb20gXCJzYXAvYmFzZS91dGlsL09iamVjdFBhdGhcIjtcbmltcG9ydCBGUE1IZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvRlBNSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuY29uc3QgY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2sgPSBhc3luYyBmdW5jdGlvbiAoXG5cdHRoaXM6IE1hbmFnZWRPYmplY3QsXG5cdG9WaWV3OiBWaWV3LFxuXHRtb2R1bGVQYXRoOiBzdHJpbmcsXG5cdGFTZWxlY3RlZENvbnRleHRzOiBDb250ZXh0W11cbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRjb25zdCBwYXJ0cyA9IG1vZHVsZVBhdGguc3BsaXQoXCIuXCIpO1xuXHRjb25zdCBtZXRob2ROYW1lID0gcGFydHMucG9wKCkgYXMgc3RyaW5nO1xuXHRjb25zdCBtb2R1bGVOYW1lID0gcGFydHMuam9pbihcIi9cIik7XG5cblx0cmV0dXJuIEZQTUhlbHBlci5sb2FkTW9kdWxlQW5kQ2FsbE1ldGhvZChcblx0XHRtb2R1bGVOYW1lLFxuXHRcdG1ldGhvZE5hbWUsXG5cdFx0b1ZpZXcsXG5cdFx0dGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpLFxuXHRcdGFTZWxlY3RlZENvbnRleHRzIHx8IFtdXG5cdCkgYXMgUHJvbWlzZTxib29sZWFuPjtcbn07XG5jdXN0b21Cb29sZWFuUHJvcGVydHlDaGVjay5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5GUE1Gb3JtYXR0ZXIjY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2tcIjtcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIHRhYmxlIGZvcm1hdHRlcnMuXG4gKlxuICogQHBhcmFtIHRoaXMgVGhlIGNvbnRleHRcbiAqIEBwYXJhbSBzTmFtZSBUaGUgaW5uZXIgZnVuY3Rpb24gbmFtZVxuICogQHBhcmFtIG9BcmdzIFRoZSBpbm5lciBmdW5jdGlvbiBwYXJhbWV0ZXJzXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgZnJvbSB0aGUgaW5uZXIgZnVuY3Rpb25cbiAqL1xuY29uc3QgZnBtRm9ybWF0dGVyID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKGZwbUZvcm1hdHRlci5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKGZwbUZvcm1hdHRlciBhcyBhbnkpW3NOYW1lXS5hcHBseSh0aGlzLCBvQXJncyk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cbn07XG5cbmZwbUZvcm1hdHRlci5jdXN0b21Cb29sZWFuUHJvcGVydHlDaGVjayA9IGN1c3RvbUJvb2xlYW5Qcm9wZXJ0eUNoZWNrO1xuXG5PYmplY3RQYXRoLnNldChcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuRlBNRm9ybWF0dGVyXCIsIGZwbUZvcm1hdHRlcik7XG5cbmV4cG9ydCBkZWZhdWx0IGZwbUZvcm1hdHRlcjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQU1BLE1BQU1BLDBCQUEwQixHQUFHLGdCQUVsQ0MsS0FBVyxFQUNYQyxVQUFrQixFQUNsQkMsaUJBQTRCLEVBQ1Q7SUFDbkIsTUFBTUMsS0FBSyxHQUFHRixVQUFVLENBQUNHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDbkMsTUFBTUMsVUFBVSxHQUFHRixLQUFLLENBQUNHLEdBQUcsRUFBWTtJQUN4QyxNQUFNQyxVQUFVLEdBQUdKLEtBQUssQ0FBQ0ssSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUVsQyxPQUFPQyxTQUFTLENBQUNDLHVCQUF1QixDQUN2Q0gsVUFBVSxFQUNWRixVQUFVLEVBQ1ZMLEtBQUssRUFDTCxJQUFJLENBQUNXLGlCQUFpQixFQUFFLEVBQ3hCVCxpQkFBaUIsSUFBSSxFQUFFLENBQ3ZCO0VBQ0YsQ0FBQztFQUNESCwwQkFBMEIsQ0FBQ2EsY0FBYyxHQUFHLGdFQUFnRTs7RUFFNUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLE1BQU1DLFlBQVksR0FBRyxVQUF3QkMsS0FBYSxFQUF3QjtJQUNqRixJQUFJRCxZQUFZLENBQUNFLGNBQWMsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFBQSxrQ0FEc0JFLEtBQUs7UUFBTEEsS0FBSztNQUFBO01BRWxFLE9BQVFILFlBQVksQ0FBU0MsS0FBSyxDQUFDLENBQUNHLEtBQUssQ0FBQyxJQUFJLEVBQUVELEtBQUssQ0FBQztJQUN2RCxDQUFDLE1BQU07TUFDTixPQUFPLEVBQUU7SUFDVjtFQUNELENBQUM7RUFFREgsWUFBWSxDQUFDZCwwQkFBMEIsR0FBR0EsMEJBQTBCO0VBRXBFbUIsVUFBVSxDQUFDQyxHQUFHLENBQUMscUNBQXFDLEVBQUVOLFlBQVksQ0FBQztFQUFDLE9BRXJEQSxZQUFZO0FBQUEifQ==
@@ -1,4 +1,5 @@
1
- import type PageController from "sap/fe/core/PageController";
1
+ import ObjectPath from "sap/base/util/ObjectPath";
2
+ import FPMHelper from "sap/fe/core/helpers/FPMHelper";
2
3
  import type ManagedObject from "sap/ui/base/ManagedObject";
3
4
  import type View from "sap/ui/core/mvc/View";
4
5
  import type Context from "sap/ui/model/odata/v4/Context";
@@ -9,16 +10,17 @@ const customBooleanPropertyCheck = async function (
9
10
  modulePath: string,
10
11
  aSelectedContexts: Context[]
11
12
  ): Promise<boolean> {
12
- const oExtensionAPI = (oView.getController() as PageController).getExtensionAPI();
13
13
  const parts = modulePath.split(".");
14
14
  const methodName = parts.pop() as string;
15
15
  const moduleName = parts.join("/");
16
16
 
17
- return new Promise((resolve) => {
18
- sap.ui.require([moduleName], (module: any) => {
19
- resolve(module[methodName].bind(oExtensionAPI)(this.getBindingContext(), aSelectedContexts || []));
20
- });
21
- });
17
+ return FPMHelper.loadModuleAndCallMethod(
18
+ moduleName,
19
+ methodName,
20
+ oView,
21
+ this.getBindingContext(),
22
+ aSelectedContexts || []
23
+ ) as Promise<boolean>;
22
24
  };
23
25
  customBooleanPropertyCheck.__functionName = "sap.fe.core.formatters.FPMFormatter#customBooleanPropertyCheck";
24
26
 
@@ -40,7 +42,6 @@ const fpmFormatter = function (this: object, sName: string, ...oArgs: any[]): an
40
42
 
41
43
  fpmFormatter.customBooleanPropertyCheck = customBooleanPropertyCheck;
42
44
 
43
- /**
44
- * @global
45
- */
45
+ ObjectPath.set("sap.fe.core.formatters.FPMFormatter", fpmFormatter);
46
+
46
47
  export default fpmFormatter;
@@ -339,4 +339,4 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/ui/core/Locale", "sap/ui/core/
339
339
  }
340
340
  return _exports;
341
341
  }, false);
342
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaXNjYWxGb3JtYXQiLCJmb3JtYXRPcHRpb25zIiwibG9jYWxlIiwiTG9jYWxlIiwiTG9jYWxpemF0aW9uIiwiZ2V0TGFuZ3VhZ2UiLCJsb2NhbGVEYXRhIiwiTG9jYWxlRGF0YSIsImZvcm1hdCIsImxlbmd0aCIsInBhdHRlcm4iLCJnZXRDdXN0b21EYXRlVGltZVBhdHRlcm4iLCJjYWxlbmRhclR5cGUiLCJyZXBsYWNlIiwic2xpY2UiLCJsYXN0SW5kZXhPZiIsImZvcm1hdEFycmF5IiwicGFyc2VDYWxlbmRhckRhdGVQYXR0ZXJuIiwidW5kZWZpbmVkIiwiX3NldEZvcm1hdFJlZ2V4IiwiX3NldFBhcnNlUmVnZXgiLCJfc2V0VmFsaWRhdGlvblJlZ2V4IiwiZ2V0RGF0ZUluc3RhbmNlIiwiZ2V0UGF0dGVybiIsInZhbHVlIiwiZm9ybWF0UmVnRXhQYXR0ZXJuIiwiZm9ybWF0UmVnRXhHcm91cHMiLCJwYXJzZSIsInBhcnNlUmVnRXhQYXR0ZXJuIiwicGFyc2VSZWdFeFJlcGxhY2VyIiwidmFsaWRhdGUiLCJ2YWxpZGF0aW9uUmVnRXhQYXR0ZXJuIiwidGVzdCIsImNoYXIiLCJjdXJyZW50T2JqZWN0IiwiZGlnaXRzIiwic3ltYm9sIiwiY3VyQ2hhciIsInN5bWJvbHMiLCJwdXNoIiwicmVnRXhQYXR0ZXJuIiwicmVnRXhHcm91cHMiLCJwYXJ0IiwicmVnZXgiLCJ5ZWFyIiwiaSIsInRvTG9jYWxlTG93ZXJDYXNlIiwidW5zaGlmdCIsInNvdXJjZSIsInNvbWUiLCJwYXJ0RW50cnkiLCJ0b0xvd2VyQ2FzZSIsIlJlZ0V4cCIsImpvaW4iLCJmaWx0ZXJlZEZvcm1hdCIsImN1cnJHcm91cCIsImdyb3VwIiwiZ2V0UmVnRXhSZXBsYWNlciIsInJlc3VsdCIsInZhbHVlUGFydCIsInN0cmluZ0dyb3VwIiwiYXJncyIsImtleSIsInBhcnNlSW50IiwicGFyc2VZZWFyIiwicGFkU3RhcnQiLCJyZWdleEZvcm1hdFBhdHRlcm5zIiwicGVyaW9kIiwicXVhcnRlciIsIndlZWsiLCJkYXkiLCJyZWdleFBhcnNlUGF0dGVybnMiLCJ5IiwiWSIsIlAiLCJXIiwiZCIsIlEiLCJxIiwicGFyc2VkWWVhciIsIk51bWJlciIsImN1cnJlbnRZZWFyIiwiRGF0ZSIsImdldFVUQ0Z1bGxZZWFyIiwiY3VycmVudENlbnR1cnkiLCJNYXRoIiwiZmxvb3IiLCJ5ZWFyRGlmZiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlzY2FsRm9ybWF0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2NhbGl6YXRpb24gZnJvbSBcInNhcC9iYXNlL2kxOG4vTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgdHlwZSBDYWxlbmRhclR5cGUgZnJvbSBcInNhcC91aS9jb3JlL0NhbGVuZGFyVHlwZVwiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwic2FwL3VpL2NvcmUvTG9jYWxlXCI7XG5pbXBvcnQgTG9jYWxlRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvTG9jYWxlRGF0YVwiO1xuXG4vKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBGaXNjYWxGb3JtYXRcbiAqXG4gKiBAcGFyYW0gZm9ybWF0T3B0aW9ucyBPYmplY3QgdGhhdCBkZWZpbmVzIGZvcm1hdCBvcHRpb25zXG4gKiBAcGFyYW0gZm9ybWF0T3B0aW9ucy5mb3JtYXQgU3RyaW5nIHdpdGggZmlzY2FsIGZvcm1hdFxuICogQHBhcmFtIGZvcm1hdE9wdGlvbnMuY2FsZW5kYXJUeXBlIFN0cmluZyB3aXRoIGNhbGVuZGFyIHR5cGVcbiAqIDxoMz5PdmVydmlldzwvaDM+XG4gKlxuICogRm9ybWF0dGluZywgVmFsaWRhdGluZyBhbmQgUGFyc2luZyBGaXNjYWwgRGF0ZXNcbiAqIEBhdXRob3IgU0FQIFNFXG4gKiBAc2luY2UgMS4xMTAuMFxuICogQGV4cGVyaW1lbnRhbCBUaGlzIG1vZHVsZSBpcyBvbmx5IGZvciBpbnRlcm5hbC9leHBlcmltZW50YWwgdXNlIVxuICogQGhpZGVjb25zdHJ1Y3RvclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaXNjYWxGb3JtYXQge1xuXHRwcml2YXRlIHBhdHRlcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIGZvcm1hdFJlZ0V4UGF0dGVybiE6IFJlZ0V4cDtcblxuXHRwcml2YXRlIGZvcm1hdFJlZ0V4R3JvdXBzITogc3RyaW5nO1xuXG5cdHByaXZhdGUgcGFyc2VSZWdFeFBhdHRlcm4hOiBSZWdFeHA7XG5cblx0cHJpdmF0ZSB2YWxpZGF0aW9uUmVnRXhQYXR0ZXJuITogUmVnRXhwO1xuXG5cdHByaXZhdGUgcGFyc2VSZWdFeFJlcGxhY2VyITogKHN1YnN0cmluZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4gc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKGZvcm1hdE9wdGlvbnM6IHsgZm9ybWF0OiBzdHJpbmc7IGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlIH0pIHtcblx0XHRjb25zdCBsb2NhbGUgPSBuZXcgTG9jYWxlKExvY2FsaXphdGlvbi5nZXRMYW5ndWFnZSgpKSxcblx0XHRcdGxvY2FsZURhdGEgPSBuZXcgTG9jYWxlRGF0YShsb2NhbGUpO1xuXG5cdFx0bGV0IGZvcm1hdCA9IGZvcm1hdE9wdGlvbnMuZm9ybWF0O1xuXHRcdGlmIChmb3JtYXRPcHRpb25zLmZvcm1hdC5sZW5ndGggPiA0KSB7XG5cdFx0XHRmb3JtYXQgPSBcInlNXCI7XG5cdFx0fSBlbHNlIGlmIChmb3JtYXRPcHRpb25zLmZvcm1hdCA9PT0gXCJQUFBcIikge1xuXHRcdFx0Zm9ybWF0ID0gXCJNXCI7XG5cdFx0fVxuXG5cdFx0bGV0IHBhdHRlcm4gPSBsb2NhbGVEYXRhLmdldEN1c3RvbURhdGVUaW1lUGF0dGVybihmb3JtYXQsIGZvcm1hdE9wdGlvbnMuY2FsZW5kYXJUeXBlKTtcblx0XHRwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC8oW1xcdTRlMDAtXFx1OWZhZlxcdTMwMDAtXFx1MzAzZlxcdTMwNDAtXFx1MzA5ZlxcdTMwYTAtXFx1MzBmZlxcdWZmMDAtXFx1ZmZlZl0pKy9naSwgXCJcIik7XG5cdFx0Ly8gUGFyc2luZyB0aGUgXCJ5TVwiIGZvcm1hdCBwYXR0ZXJuIHRvIHRoZSBwYXR0ZXJuIHRoYXQgd291bGQgbWF0Y2ggdGhlIHBhc3NlZCBmb3JtYXRcblx0XHRpZiAoZm9ybWF0T3B0aW9ucy5mb3JtYXQubGVuZ3RoID4gNCkge1xuXHRcdFx0cGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgveSsvaSwgZm9ybWF0T3B0aW9ucy5mb3JtYXQuc2xpY2UoMCwgZm9ybWF0T3B0aW9ucy5mb3JtYXQubGFzdEluZGV4T2YoXCJZXCIpICsgMSkpO1xuXHRcdFx0cGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvbSsvaSwgZm9ybWF0T3B0aW9ucy5mb3JtYXQuc2xpY2UoZm9ybWF0T3B0aW9ucy5mb3JtYXQubGFzdEluZGV4T2YoXCJZXCIpICsgMSkpO1xuXHRcdH0gZWxzZSBpZiAoZm9ybWF0T3B0aW9ucy5mb3JtYXQgPT09IFwiUFBQXCIpIHtcblx0XHRcdHBhdHRlcm4gPSBcIlBQUFwiO1xuXHRcdH1cblxuXHRcdGNvbnN0IGZvcm1hdEFycmF5ID0gdGhpcy5wYXJzZUNhbGVuZGFyRGF0ZVBhdHRlcm4ocGF0dGVybik7XG5cdFx0dGhpcy5wYXR0ZXJuID0gZm9ybWF0QXJyYXkubGVuZ3RoID4gMSA/IHBhdHRlcm4gOiB1bmRlZmluZWQ7XG5cdFx0dGhpcy5fc2V0Rm9ybWF0UmVnZXgoZm9ybWF0QXJyYXkpO1xuXHRcdHRoaXMuX3NldFBhcnNlUmVnZXgoZm9ybWF0QXJyYXkpO1xuXHRcdHRoaXMuX3NldFZhbGlkYXRpb25SZWdleChmb3JtYXRBcnJheSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGEgZGF0ZSBpbnN0YW5jZSBvZiB0aGUgPGNvZGU+RmlzY2FsRm9ybWF0PC9jb2RlPiBjbGFzcywgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGZvcm1hdHRpbmcuXG5cdCAqXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zIE9iamVjdCB0aGF0IGRlZmluZXMgZm9ybWF0IG9wdGlvbnNcblx0ICogQHBhcmFtIGZvcm1hdE9wdGlvbnMuZm9ybWF0IEZpc2NhbCBmb3JtYXRcblx0ICogQHBhcmFtIGZvcm1hdE9wdGlvbnMuY2FsZW5kYXJUeXBlIENhbGVuZGFyIHR5cGVcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2YgdGhlIEZpc2NhbEZvcm1hdFxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXREYXRlSW5zdGFuY2UoZm9ybWF0T3B0aW9uczogeyBmb3JtYXQ6IHN0cmluZzsgY2FsZW5kYXJUeXBlOiBDYWxlbmRhclR5cGUgfSk6IEZpc2NhbEZvcm1hdCB7XG5cdFx0cmV0dXJuIG5ldyBGaXNjYWxGb3JtYXQoZm9ybWF0T3B0aW9ucyk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0UGF0dGVybigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnBhdHRlcm47XG5cdH1cblxuXHQvKipcblx0ICogRm9ybWF0IHRoZSByYXcgZmlzY2FsIGRhdGEgdG8gYSBsb2NhbGUtZGVwZW5kZW50IGZvcm1hdC5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIFRoZSBwYXJhbWV0ZXIgY29udGFpbmluZyBhIHJhdyBmaXNjYWwgdmFsdWVcblx0ICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB2YWx1ZVxuXHQgKi9cblx0cHVibGljIGZvcm1hdCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4ge1xuXHRcdGlmICh2YWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9XG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMuZm9ybWF0UmVnRXhQYXR0ZXJuLCB0aGlzLmZvcm1hdFJlZ0V4R3JvdXBzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZSBmcm9tIGEgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXQgdG8gYSByYXcgdmFsdWUuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIGNvbnRhaW5pbmcgYSBwYXJzZWQgZmlzY2FsIGRhdGEgdmFsdWVcblx0ICogQHJldHVybnMgVGhlIHJhdyB2YWx1ZVxuXHQgKi9cblx0cHVibGljIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICghdmFsdWUpIHtcblx0XHRcdHJldHVybiBcIlwiO1xuXHRcdH1cblx0XHRyZXR1cm4gdmFsdWUucmVwbGFjZSh0aGlzLnBhcnNlUmVnRXhQYXR0ZXJuLCB0aGlzLnBhcnNlUmVnRXhSZXBsYWNlcik7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHRoZSBkYXRhIGlucHV0LlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHJhdyBmaXNjYWwgZGF0YVxuXHQgKiBAcmV0dXJucyBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGUgdmFsaWRhdGlvbiBwYXNzZXMsIG90aGVyd2lzZSA8Y29kZT5mYWxzZTwvY29kZT5cblx0ICovXG5cdHB1YmxpYyB2YWxpZGF0ZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdGlvblJlZ0V4UGF0dGVybi50ZXN0KHZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZSB0aGUgZGF0ZSBwYXR0ZXJuIHN0cmluZyBhbmQgY3JlYXRlIGEgZm9ybWF0IGFycmF5IGZyb20gaXQuXG5cdCAqIEFycmF5IGlzIHVzZWQgZm9yIGRhdGEgcGFyc2luZyBhbmQgZm9ybWF0dGluZy5cblx0ICpcblx0ICogQHBhcmFtIHBhdHRlcm4gVGhlIGNhbGVuZGFyIGRhdGUgcGF0dGVybiBzdHJpbmdcblx0ICogQHJldHVybnMgRm9ybWF0IGFycmF5XG5cdCAqL1xuXHRwcml2YXRlIHBhcnNlQ2FsZW5kYXJEYXRlUGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpOiB7IGRpZ2l0czogbnVtYmVyOyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9W10ge1xuXHRcdGNvbnN0IGZvcm1hdEFycmF5ID0gW107XG5cdFx0bGV0IGNoYXIsXG5cdFx0XHRjdXJyZW50T2JqZWN0ID0geyBkaWdpdHM6IDAsIHZhbHVlOiBcIlwiLCBzeW1ib2w6IFwiXCIgfTtcblxuXHRcdGZvciAoY29uc3QgY3VyQ2hhciBvZiBwYXR0ZXJuKSB7XG5cdFx0XHRpZiAoY2hhciAhPT0gY3VyQ2hhcikge1xuXHRcdFx0XHRjdXJyZW50T2JqZWN0ID0geyBkaWdpdHM6IDAsIHZhbHVlOiBcIlwiLCBzeW1ib2w6IFwiXCIgfTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRPYmplY3QuZGlnaXRzICs9IDE7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodHlwZW9mIEZpc2NhbEZvcm1hdC5zeW1ib2xzW2N1ckNoYXIgYXMga2V5b2YgdHlwZW9mIEZpc2NhbEZvcm1hdC5zeW1ib2xzXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdFx0XHRjdXJyZW50T2JqZWN0LnZhbHVlID0gY3VyQ2hhcjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRPYmplY3Quc3ltYm9sID0gY3VyQ2hhcjtcblx0XHRcdFx0Y3VycmVudE9iamVjdC5kaWdpdHMgPSAxO1xuXHRcdFx0fVxuXHRcdFx0Y2hhciA9IGN1ckNoYXI7XG5cdFx0XHRmb3JtYXRBcnJheS5wdXNoKGN1cnJlbnRPYmplY3QpO1xuXHRcdH1cblxuXHRcdHJldHVybiBmb3JtYXRBcnJheTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIHRoZSBmb3JtYXR0aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBvbiB0aGUgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXQuXG5cdCAqXG5cdCAqIEBwYXJhbSBmb3JtYXRBcnJheSBBbiBhcnJheSB3aXRoIHRoZSBsb2NhbGUtZGVwZW5kZW50IGZvcm1hdFxuXHQgKi9cblx0cHJpdmF0ZSBfc2V0Rm9ybWF0UmVnZXgoZm9ybWF0QXJyYXk6IHsgZGlnaXRzOiBudW1iZXI7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1bXSk6IHZvaWQge1xuXHRcdGNvbnN0IHJlZ0V4UGF0dGVybiA9IFtdLFxuXHRcdFx0cmVnRXhHcm91cHMgPSBbXTtcblx0XHRsZXQgcGFydCwgc3ltYm9sLCByZWdleCwgeWVhcjtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdEFycmF5Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRwYXJ0ID0gZm9ybWF0QXJyYXlbaV07XG5cdFx0XHRzeW1ib2wgPSBwYXJ0LnN5bWJvbDtcblx0XHRcdHJlZ2V4ID0gRmlzY2FsRm9ybWF0LnN5bWJvbHNbc3ltYm9sIGFzIGtleW9mIHR5cGVvZiBGaXNjYWxGb3JtYXQuc3ltYm9sc10uZm9ybWF0O1xuXG5cdFx0XHRpZiAoc3ltYm9sID09PSBcIlwiKSB7XG5cdFx0XHRcdHJlZ0V4R3JvdXBzW2ldID0gcGFydC52YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAoc3ltYm9sLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwieVwiKSB7XG5cdFx0XHRcdHJlZ0V4UGF0dGVybi51bnNoaWZ0KFwiKFwiICsgcmVnZXguc291cmNlICsgXCIpXCIpO1xuXHRcdFx0XHRyZWdFeEdyb3Vwc1tpXSA9IFwiJFwiICsgMTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlZ0V4UGF0dGVybi5wdXNoKFwiKFwiICsgcmVnZXguc291cmNlICsgXCIpXCIpO1xuXHRcdFx0XHR5ZWFyID0gZm9ybWF0QXJyYXkuc29tZShmdW5jdGlvbiAocGFydEVudHJ5KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhcnRFbnRyeS5zeW1ib2wudG9Mb3dlckNhc2UoKSA9PT0gXCJ5XCI7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZWdFeEdyb3Vwc1tpXSA9IHllYXIgPyBcIiRcIiArIDIgOiBcIiRcIiArIDE7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5mb3JtYXRSZWdFeFBhdHRlcm4gPSBuZXcgUmVnRXhwKHJlZ0V4UGF0dGVybi5qb2luKFwiXCIpKTtcblx0XHR0aGlzLmZvcm1hdFJlZ0V4R3JvdXBzID0gcmVnRXhHcm91cHMuam9pbihcIlwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIHRoZSBwYXJzaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBvbiB0aGUgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXQuXG5cdCAqXG5cdCAqIEBwYXJhbSBmb3JtYXRBcnJheSBBbiBhcnJheSB3aXRoIHRoZSBsb2NhbGUtZGVwZW5kZW50IGZvcm1hdFxuXHQgKi9cblx0cHJpdmF0ZSBfc2V0UGFyc2VSZWdleChmb3JtYXRBcnJheTogeyBkaWdpdHM6IG51bWJlcjsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfVtdKTogdm9pZCB7XG5cdFx0Y29uc3QgcmVnRXhQYXR0ZXJuID0gW10sXG5cdFx0XHRmaWx0ZXJlZEZvcm1hdDogeyBbaW5kZXg6IHN0cmluZ106IHsgZGlnaXRzOiBudW1iZXI7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH0gfSA9IHt9O1xuXHRcdGxldCBzeW1ib2wsXG5cdFx0XHRyZWdleCxcblx0XHRcdGN1cnJHcm91cDogbnVtYmVyLFxuXHRcdFx0Z3JvdXAgPSAwO1xuXHRcdGZvciAoY29uc3QgcGFydCBvZiBmb3JtYXRBcnJheSkge1xuXHRcdFx0c3ltYm9sID0gcGFydC5zeW1ib2w7XG5cblx0XHRcdGlmIChzeW1ib2wgPT09IFwiXCIpIHtcblx0XHRcdFx0cmVnRXhQYXR0ZXJuLnB1c2goXCJcXFxcRCs/XCIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVnZXggPSBGaXNjYWxGb3JtYXQuc3ltYm9sc1tzeW1ib2wgYXMga2V5b2YgdHlwZW9mIEZpc2NhbEZvcm1hdC5zeW1ib2xzXS5wYXJzZTtcblx0XHRcdFx0cmVnRXhQYXR0ZXJuLnB1c2goXCIoXCIgKyByZWdleC5zb3VyY2UgKyBcIilcIik7XG5cdFx0XHRcdGN1cnJHcm91cCA9ICsrZ3JvdXA7XG5cdFx0XHRcdGZpbHRlcmVkRm9ybWF0W2N1cnJHcm91cF0gPSBwYXJ0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLnBhcnNlUmVnRXhQYXR0ZXJuID0gbmV3IFJlZ0V4cChcIl5cIiArIHJlZ0V4UGF0dGVybi5qb2luKFwiXCIpICsgXCIkXCIpO1xuXHRcdHRoaXMucGFyc2VSZWdFeFJlcGxhY2VyID0gdGhpcy5nZXRSZWdFeFJlcGxhY2VyKGZpbHRlcmVkRm9ybWF0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIHJlcGxhY2Ugc3RyaW5ncyBhbmQgdGhlbiBwZXJmb3JtcyByYXcgc3RyaW5nIHBhcnNpbmcuXG5cdCAqXG5cdCAqIEBwYXJhbSBmaWx0ZXJlZEZvcm1hdCBBbiBhcnJheSB3aXRoIHRoZSBsb2NhbGUtZGVwZW5kZW50IGZvcm1hdFxuXHQgKiBAcmV0dXJucyBGdW5jdGlvbiB0aGF0IGNhbiBiZSBwYXNzZWQgaW50byB0aGUgc3RyaW5nLnJlcGxhY2UgZnVuY3Rpb25cblx0ICovXG5cdHByaXZhdGUgZ2V0UmVnRXhSZXBsYWNlcihmaWx0ZXJlZEZvcm1hdDoge1xuXHRcdFtpbmRleDogc3RyaW5nXTogeyBkaWdpdHM6IG51bWJlcjsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfTtcblx0fSk6IChzdWJzdHJpbmc6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHN0cmluZyB7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gW107XG5cdFx0XHRsZXQgdmFsdWVQYXJ0LCBzdHJpbmdHcm91cDtcblx0XHRcdGZvciAoY29uc3Qga2V5IGluIGZpbHRlcmVkRm9ybWF0KSB7XG5cdFx0XHRcdHZhbHVlUGFydCA9IGZpbHRlcmVkRm9ybWF0W2tleV07XG5cdFx0XHRcdHN0cmluZ0dyb3VwID0gYXJnc1twYXJzZUludChrZXksIDEwKV07XG5cdFx0XHRcdGlmIChzdHJpbmdHcm91cC5sZW5ndGggPCB2YWx1ZVBhcnQuZGlnaXRzKSB7XG5cdFx0XHRcdFx0aWYgKHZhbHVlUGFydC5zeW1ib2wudG9Mb3dlckNhc2UoKSA9PT0gXCJ5XCIpIHtcblx0XHRcdFx0XHRcdHN0cmluZ0dyb3VwID0gcGFyc2VZZWFyKHN0cmluZ0dyb3VwKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c3RyaW5nR3JvdXAgPSBzdHJpbmdHcm91cC5wYWRTdGFydCh2YWx1ZVBhcnQuZGlnaXRzLCBcIjBcIik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh2YWx1ZVBhcnQuc3ltYm9sLnRvTG93ZXJDYXNlKCkgPT09IFwieVwiKSB7XG5cdFx0XHRcdFx0cmVzdWx0LnVuc2hpZnQoc3RyaW5nR3JvdXApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJlc3VsdC5wdXNoKHN0cmluZ0dyb3VwKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcmVzdWx0LmpvaW4oXCJcIik7XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIHRoZSB2YWxpZGF0aW9uIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBvbiB0aGUgZm9ybWF0LlxuXHQgKlxuXHQgKiBAcGFyYW0gZm9ybWF0QXJyYXkgQW4gYXJyYXkgd2l0aCB0aGUgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXRcblx0ICovXG5cdHByaXZhdGUgX3NldFZhbGlkYXRpb25SZWdleChmb3JtYXRBcnJheTogeyBkaWdpdHM6IG51bWJlcjsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfVtdKTogdm9pZCB7XG5cdFx0Y29uc3QgcmVnRXhQYXR0ZXJuID0gW107XG5cdFx0bGV0IHN5bWJvbCwgcmVnZXg7XG5cdFx0Zm9yIChjb25zdCBwYXJ0IG9mIGZvcm1hdEFycmF5KSB7XG5cdFx0XHRzeW1ib2wgPSBwYXJ0LnN5bWJvbDtcblx0XHRcdHJlZ2V4ID0gRmlzY2FsRm9ybWF0LnN5bWJvbHNbc3ltYm9sIGFzIGtleW9mIHR5cGVvZiBGaXNjYWxGb3JtYXQuc3ltYm9sc10uZm9ybWF0O1xuXHRcdFx0aWYgKHN5bWJvbCA9PT0gXCJcIikge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH0gZWxzZSBpZiAoc3ltYm9sLnRvTG93ZXJDYXNlKCkgPT09IFwieVwiKSB7XG5cdFx0XHRcdHJlZ0V4UGF0dGVybi51bnNoaWZ0KHJlZ2V4LnNvdXJjZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZWdFeFBhdHRlcm4ucHVzaChyZWdleC5zb3VyY2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLnZhbGlkYXRpb25SZWdFeFBhdHRlcm4gPSBuZXcgUmVnRXhwKFwiXihcIiArIHJlZ0V4UGF0dGVybi5qb2luKFwiKShcIikgKyBcIikkXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJucyB1c2VkIHRvIGZvcm1hdCBmaXNjYWwgZGF0ZSBzdHJpbmdzXG5cdCAqL1xuXHRwcml2YXRlIHN0YXRpYyByZWdleEZvcm1hdFBhdHRlcm5zID0ge1xuXHRcdHllYXI6IC9bMS05XVxcZHszfS8sXG5cdFx0cGVyaW9kOiAvXFxkezN9Lyxcblx0XHRxdWFydGVyOiAvWzEtNF0vLFxuXHRcdHdlZWs6IC8wWzEtOV18WzEtNF1cXGR8NVswLTNdLyxcblx0XHRkYXk6IC8zNzF8MzcwfDNbMC02XVxcZHxbMS0yXVxcZHsyfXxbMS05XVxcZHxbMS05XS9cblx0fTtcblxuXHQvKipcblx0ICogUmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5zIHVzZWQgZm9yIHJhdyBkYXRhIHBhcnNpbmcgYW5kIHZhbGlkYXRpb25cblx0ICovXG5cdHByaXZhdGUgc3RhdGljIHJlZ2V4UGFyc2VQYXR0ZXJucyA9IHtcblx0XHR5ZWFyOiAvXFxkezEsNH0vLFxuXHRcdHBlcmlvZDogL1xcZHsxLDN9Lyxcblx0XHRxdWFydGVyOiAvWzEtNF0vLFxuXHRcdHdlZWs6IC9cXGR7MSwyfS8sXG5cdFx0ZGF5OiAvWzEtOV0vXG5cdH07XG5cblx0LyoqXG5cdCAqIE1hcHBpbmcgZnJvbSBzcGVjaWZpYyBjYWxlbmRhciB0eXBlIHRvIGNvcnJlc3BvbmRpbmcgZm9ybWF0dGluZy9wYXJzaW5nIGV4cHJlc3Npb25cblx0ICovXG5cdHByaXZhdGUgc3RhdGljIHN5bWJvbHMgPSB7XG5cdFx0XCJcIjogeyBmb3JtYXQ6IC8gLywgcGFyc2U6IC8gLyB9LCAvLyBcInRleHRcIlxuXHRcdHk6IHsgZm9ybWF0OiBGaXNjYWxGb3JtYXQucmVnZXhGb3JtYXRQYXR0ZXJucy55ZWFyLCBwYXJzZTogRmlzY2FsRm9ybWF0LnJlZ2V4UGFyc2VQYXR0ZXJucy55ZWFyIH0sIC8vIFwieWVhclwiXG5cdFx0WTogeyBmb3JtYXQ6IEZpc2NhbEZvcm1hdC5yZWdleEZvcm1hdFBhdHRlcm5zLnllYXIsIHBhcnNlOiBGaXNjYWxGb3JtYXQucmVnZXhQYXJzZVBhdHRlcm5zLnllYXIgfSwgLy8gXCJ3ZWVrWWVhclwiXG5cdFx0UDogeyBmb3JtYXQ6IEZpc2NhbEZvcm1hdC5yZWdleEZvcm1hdFBhdHRlcm5zLnBlcmlvZCwgcGFyc2U6IEZpc2NhbEZvcm1hdC5yZWdleFBhcnNlUGF0dGVybnMucGVyaW9kIH0sIC8vIFwicGVyaW9kXCJcblx0XHRXOiB7IGZvcm1hdDogRmlzY2FsRm9ybWF0LnJlZ2V4Rm9ybWF0UGF0dGVybnMud2VlaywgcGFyc2U6IEZpc2NhbEZvcm1hdC5yZWdleFBhcnNlUGF0dGVybnMud2VlayB9LCAvLyBcIndlZWtJblllYXJcIlxuXHRcdGQ6IHsgZm9ybWF0OiBGaXNjYWxGb3JtYXQucmVnZXhGb3JtYXRQYXR0ZXJucy5kYXksIHBhcnNlOiBGaXNjYWxGb3JtYXQucmVnZXhQYXJzZVBhdHRlcm5zLmRheSB9LCAvLyBcImRheUluWWVhclwiXG5cdFx0UTogeyBmb3JtYXQ6IEZpc2NhbEZvcm1hdC5yZWdleEZvcm1hdFBhdHRlcm5zLnF1YXJ0ZXIsIHBhcnNlOiBGaXNjYWxGb3JtYXQucmVnZXhQYXJzZVBhdHRlcm5zLnF1YXJ0ZXIgfSwgLy8gXCJxdWFydGVyXCJcblx0XHRxOiB7IGZvcm1hdDogRmlzY2FsRm9ybWF0LnJlZ2V4Rm9ybWF0UGF0dGVybnMucXVhcnRlciwgcGFyc2U6IEZpc2NhbEZvcm1hdC5yZWdleFBhcnNlUGF0dGVybnMucXVhcnRlciB9IC8vXCJxdWFydGVyU3RhbmRhbG9uZVwiXG5cdH07XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBZZWFyIGZvcm1hdC4gVGhpcyBpcyBob3cgdGhlIERhdGVGb3JtYXQgcGFyc2VzIHllYXJzLCBleGNlcHQgdGhvc2UgeWVhcnMgY29uc2lzdGluZyBvZiAzIGRpZ2l0cywgc2luY2UgY3VycmVuY3kgZmlzY2FsIGRhdGVzIHN1cHBvcnQgb25seSB5ZWFycyBjb25zaXN0aW5nIG9mIDQgZGlnaXRzLlxuICpcbiAqIEBwYXJhbSB5ZWFyIFllYXIgc3RyaW5nXG4gKiBAcmV0dXJucyBZZWFyIG51bWJlclxuICovXG5mdW5jdGlvbiBwYXJzZVllYXIoeWVhcjogc3RyaW5nKTogbnVtYmVyIHtcblx0bGV0IHBhcnNlZFllYXIgPSBOdW1iZXIucGFyc2VJbnQoeWVhciwgMTApO1xuXHRjb25zdCBjdXJyZW50WWVhciA9IG5ldyBEYXRlKCkuZ2V0VVRDRnVsbFllYXIoKSxcblx0XHRjdXJyZW50Q2VudHVyeSA9IE1hdGguZmxvb3IoY3VycmVudFllYXIgLyAxMDApLFxuXHRcdHllYXJEaWZmID0gY3VycmVudENlbnR1cnkgKiAxMDAgKyBwYXJzZWRZZWFyIC0gY3VycmVudFllYXI7XG5cblx0aWYgKHllYXIubGVuZ3RoID09PSAzKSB7XG5cdFx0cGFyc2VkWWVhciArPSBNYXRoLmZsb29yKChjdXJyZW50Q2VudHVyeSAtIDEpIC8gMTApICogMTAwMDtcblx0fSBlbHNlIGlmICh5ZWFyRGlmZiA8IC03MCkge1xuXHRcdHBhcnNlZFllYXIgKz0gKGN1cnJlbnRDZW50dXJ5ICsgMSkgKiAxMDA7IC8vIFRha2UgbmV4dCBjZW50dXJ5IGlmIFwieWVhclwiIGlzIDMwIHllYXJzIGluIHRoZSBmdXR1cmUuIEN1cnJlbnQgeWVhciAxOTk5IGFuZCB3ZSBlbnRlciAyOCBpdCB3aWxsIHdlIDIwMjhcblx0fSBlbHNlIGlmICh5ZWFyRGlmZiA8IDMwKSB7XG5cdFx0cGFyc2VkWWVhciArPSBjdXJyZW50Q2VudHVyeSAqIDEwMDsgLy8gVGFrZSBuZXh0IGNlbnR1cnkgaWYgXCJ5ZWFyXCIgaXMgMzAgeWVhcnMgaW4gdGhlIGZ1dHVyZS4gQ3VycmVudCB5ZWFyIDIwMDAgYW5kIHdlIGVudGVyIDI5IGl0IHdpbGwgd2UgMjAyOVxuXHR9IGVsc2Uge1xuXHRcdHBhcnNlZFllYXIgKz0gKGN1cnJlbnRDZW50dXJ5IC0gMSkgKiAxMDA7IC8vIEFueSBlbnRlcmVkIFwieWVhclwiIHRoYXQgaXMgbW9yZSB0aGFuIDMwIHllYXJzIGluIHRoZSBmdXR1cmUgd2lsbCBiZSB0cmVhdGVkIGFzIGZyb20gcHJldmlvdXMgY2VudHVyeVxuXHR9XG5cdHJldHVybiBwYXJzZWRZZWFyO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7OztFQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFiQSxJQWNxQkEsWUFBWTtJQWFoQyxzQkFBWUMsYUFBNkQsRUFBRTtNQUMxRSxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxZQUFZLENBQUNDLFdBQVcsRUFBRSxDQUFDO1FBQ3BEQyxVQUFVLEdBQUcsSUFBSUMsVUFBVSxDQUFDTCxNQUFNLENBQUM7TUFFcEMsSUFBSU0sTUFBTSxHQUFHUCxhQUFhLENBQUNPLE1BQU07TUFDakMsSUFBSVAsYUFBYSxDQUFDTyxNQUFNLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDcENELE1BQU0sR0FBRyxJQUFJO01BQ2QsQ0FBQyxNQUFNLElBQUlQLGFBQWEsQ0FBQ08sTUFBTSxLQUFLLEtBQUssRUFBRTtRQUMx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
342
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaXNjYWxGb3JtYXQiLCJmb3JtYXRPcHRpb25zIiwibG9jYWxlIiwiTG9jYWxlIiwiTG9jYWxpemF0aW9uIiwiZ2V0TGFuZ3VhZ2UiLCJsb2NhbGVEYXRhIiwiTG9jYWxlRGF0YSIsImZvcm1hdCIsImxlbmd0aCIsInBhdHRlcm4iLCJnZXRDdXN0b21EYXRlVGltZVBhdHRlcm4iLCJjYWxlbmRhclR5cGUiLCJyZXBsYWNlIiwic2xpY2UiLCJsYXN0SW5kZXhPZiIsImZvcm1hdEFycmF5IiwicGFyc2VDYWxlbmRhckRhdGVQYXR0ZXJuIiwidW5kZWZpbmVkIiwiX3NldEZvcm1hdFJlZ2V4IiwiX3NldFBhcnNlUmVnZXgiLCJfc2V0VmFsaWRhdGlvblJlZ2V4IiwiZ2V0RGF0ZUluc3RhbmNlIiwiZ2V0UGF0dGVybiIsInZhbHVlIiwiZm9ybWF0UmVnRXhQYXR0ZXJuIiwiZm9ybWF0UmVnRXhHcm91cHMiLCJwYXJzZSIsInBhcnNlUmVnRXhQYXR0ZXJuIiwicGFyc2VSZWdFeFJlcGxhY2VyIiwidmFsaWRhdGUiLCJ2YWxpZGF0aW9uUmVnRXhQYXR0ZXJuIiwidGVzdCIsImNoYXIiLCJjdXJyZW50T2JqZWN0IiwiZGlnaXRzIiwic3ltYm9sIiwiY3VyQ2hhciIsInN5bWJvbHMiLCJwdXNoIiwicmVnRXhQYXR0ZXJuIiwicmVnRXhHcm91cHMiLCJwYXJ0IiwicmVnZXgiLCJ5ZWFyIiwiaSIsInRvTG9jYWxlTG93ZXJDYXNlIiwidW5zaGlmdCIsInNvdXJjZSIsInNvbWUiLCJwYXJ0RW50cnkiLCJ0b0xvd2VyQ2FzZSIsIlJlZ0V4cCIsImpvaW4iLCJmaWx0ZXJlZEZvcm1hdCIsImN1cnJHcm91cCIsImdyb3VwIiwiZ2V0UmVnRXhSZXBsYWNlciIsInJlc3VsdCIsInZhbHVlUGFydCIsInN0cmluZ0dyb3VwIiwiYXJncyIsImtleSIsInBhcnNlSW50IiwicGFyc2VZZWFyIiwicGFkU3RhcnQiLCJyZWdleEZvcm1hdFBhdHRlcm5zIiwicGVyaW9kIiwicXVhcnRlciIsIndlZWsiLCJkYXkiLCJyZWdleFBhcnNlUGF0dGVybnMiLCJ5IiwiWSIsIlAiLCJXIiwiZCIsIlEiLCJxIiwicGFyc2VkWWVhciIsIk51bWJlciIsImN1cnJlbnRZZWFyIiwiRGF0ZSIsImdldFVUQ0Z1bGxZZWFyIiwiY3VycmVudENlbnR1cnkiLCJNYXRoIiwiZmxvb3IiLCJ5ZWFyRGlmZiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlzY2FsRm9ybWF0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2NhbGl6YXRpb24gZnJvbSBcInNhcC9iYXNlL2kxOG4vTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgdHlwZSBDYWxlbmRhclR5cGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vZGF0ZS9DYWxlbmRhclR5cGVcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcInNhcC91aS9jb3JlL0xvY2FsZVwiO1xuaW1wb3J0IExvY2FsZURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0xvY2FsZURhdGFcIjtcblxuLyoqXG4gKiBDb25zdHJ1Y3RvciBmb3IgYSBuZXcgRmlzY2FsRm9ybWF0XG4gKlxuICogQHBhcmFtIGZvcm1hdE9wdGlvbnMgT2JqZWN0IHRoYXQgZGVmaW5lcyBmb3JtYXQgb3B0aW9uc1xuICogQHBhcmFtIGZvcm1hdE9wdGlvbnMuZm9ybWF0IFN0cmluZyB3aXRoIGZpc2NhbCBmb3JtYXRcbiAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLmNhbGVuZGFyVHlwZSBTdHJpbmcgd2l0aCBjYWxlbmRhciB0eXBlXG4gKiA8aDM+T3ZlcnZpZXc8L2gzPlxuICpcbiAqIEZvcm1hdHRpbmcsIFZhbGlkYXRpbmcgYW5kIFBhcnNpbmcgRmlzY2FsIERhdGVzXG4gKiBAYXV0aG9yIFNBUCBTRVxuICogQHNpbmNlIDEuMTEwLjBcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgaW50ZXJuYWwvZXhwZXJpbWVudGFsIHVzZSFcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlzY2FsRm9ybWF0IHtcblx0cHJpdmF0ZSBwYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBmb3JtYXRSZWdFeFBhdHRlcm4hOiBSZWdFeHA7XG5cblx0cHJpdmF0ZSBmb3JtYXRSZWdFeEdyb3VwcyE6IHN0cmluZztcblxuXHRwcml2YXRlIHBhcnNlUmVnRXhQYXR0ZXJuITogUmVnRXhwO1xuXG5cdHByaXZhdGUgdmFsaWRhdGlvblJlZ0V4UGF0dGVybiE6IFJlZ0V4cDtcblxuXHRwcml2YXRlIHBhcnNlUmVnRXhSZXBsYWNlciE6IChzdWJzdHJpbmc6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihmb3JtYXRPcHRpb25zOiB7IGZvcm1hdDogc3RyaW5nOyBjYWxlbmRhclR5cGU6IENhbGVuZGFyVHlwZSB9KSB7XG5cdFx0Y29uc3QgbG9jYWxlID0gbmV3IExvY2FsZShMb2NhbGl6YXRpb24uZ2V0TGFuZ3VhZ2UoKSksXG5cdFx0XHRsb2NhbGVEYXRhID0gbmV3IExvY2FsZURhdGEobG9jYWxlKTtcblxuXHRcdGxldCBmb3JtYXQgPSBmb3JtYXRPcHRpb25zLmZvcm1hdDtcblx0XHRpZiAoZm9ybWF0T3B0aW9ucy5mb3JtYXQubGVuZ3RoID4gNCkge1xuXHRcdFx0Zm9ybWF0ID0gXCJ5TVwiO1xuXHRcdH0gZWxzZSBpZiAoZm9ybWF0T3B0aW9ucy5mb3JtYXQgPT09IFwiUFBQXCIpIHtcblx0XHRcdGZvcm1hdCA9IFwiTVwiO1xuXHRcdH1cblxuXHRcdGxldCBwYXR0ZXJuID0gbG9jYWxlRGF0YS5nZXRDdXN0b21EYXRlVGltZVBhdHRlcm4oZm9ybWF0LCBmb3JtYXRPcHRpb25zLmNhbGVuZGFyVHlwZSk7XG5cdFx0cGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvKFtcXHU0ZTAwLVxcdTlmYWZcXHUzMDAwLVxcdTMwM2ZcXHUzMDQwLVxcdTMwOWZcXHUzMGEwLVxcdTMwZmZcXHVmZjAwLVxcdWZmZWZdKSsvZ2ksIFwiXCIpO1xuXHRcdC8vIFBhcnNpbmcgdGhlIFwieU1cIiBmb3JtYXQgcGF0dGVybiB0byB0aGUgcGF0dGVybiB0aGF0IHdvdWxkIG1hdGNoIHRoZSBwYXNzZWQgZm9ybWF0XG5cdFx0aWYgKGZvcm1hdE9wdGlvbnMuZm9ybWF0Lmxlbmd0aCA+IDQpIHtcblx0XHRcdHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL3krL2ksIGZvcm1hdE9wdGlvbnMuZm9ybWF0LnNsaWNlKDAsIGZvcm1hdE9wdGlvbnMuZm9ybWF0Lmxhc3RJbmRleE9mKFwiWVwiKSArIDEpKTtcblx0XHRcdHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL20rL2ksIGZvcm1hdE9wdGlvbnMuZm9ybWF0LnNsaWNlKGZvcm1hdE9wdGlvbnMuZm9ybWF0Lmxhc3RJbmRleE9mKFwiWVwiKSArIDEpKTtcblx0XHR9IGVsc2UgaWYgKGZvcm1hdE9wdGlvbnMuZm9ybWF0ID09PSBcIlBQUFwiKSB7XG5cdFx0XHRwYXR0ZXJuID0gXCJQUFBcIjtcblx0XHR9XG5cblx0XHRjb25zdCBmb3JtYXRBcnJheSA9IHRoaXMucGFyc2VDYWxlbmRhckRhdGVQYXR0ZXJuKHBhdHRlcm4pO1xuXHRcdHRoaXMucGF0dGVybiA9IGZvcm1hdEFycmF5Lmxlbmd0aCA+IDEgPyBwYXR0ZXJuIDogdW5kZWZpbmVkO1xuXHRcdHRoaXMuX3NldEZvcm1hdFJlZ2V4KGZvcm1hdEFycmF5KTtcblx0XHR0aGlzLl9zZXRQYXJzZVJlZ2V4KGZvcm1hdEFycmF5KTtcblx0XHR0aGlzLl9zZXRWYWxpZGF0aW9uUmVnZXgoZm9ybWF0QXJyYXkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhIGRhdGUgaW5zdGFuY2Ugb2YgdGhlIDxjb2RlPkZpc2NhbEZvcm1hdDwvY29kZT4gY2xhc3MsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBmb3JtYXR0aW5nLlxuXHQgKlxuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucyBPYmplY3QgdGhhdCBkZWZpbmVzIGZvcm1hdCBvcHRpb25zXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLmZvcm1hdCBGaXNjYWwgZm9ybWF0XG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLmNhbGVuZGFyVHlwZSBDYWxlbmRhciB0eXBlXG5cdCAqIEByZXR1cm5zIEluc3RhbmNlIG9mIHRoZSBGaXNjYWxGb3JtYXRcblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZUluc3RhbmNlKGZvcm1hdE9wdGlvbnM6IHsgZm9ybWF0OiBzdHJpbmc7IGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlIH0pOiBGaXNjYWxGb3JtYXQge1xuXHRcdHJldHVybiBuZXcgRmlzY2FsRm9ybWF0KGZvcm1hdE9wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIGdldFBhdHRlcm4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5wYXR0ZXJuO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZvcm1hdCB0aGUgcmF3IGZpc2NhbCBkYXRhIHRvIGEgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXQuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgcGFyYW1ldGVyIGNvbnRhaW5pbmcgYSByYXcgZmlzY2FsIHZhbHVlXG5cdCAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgdmFsdWVcblx0ICovXG5cdHB1YmxpYyBmb3JtYXQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHtcblx0XHRpZiAodmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWUucmVwbGFjZSh0aGlzLmZvcm1hdFJlZ0V4UGF0dGVybiwgdGhpcy5mb3JtYXRSZWdFeEdyb3Vwcyk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2UgZnJvbSBhIGxvY2FsZS1kZXBlbmRlbnQgZm9ybWF0IHRvIGEgcmF3IHZhbHVlLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyBjb250YWluaW5nIGEgcGFyc2VkIGZpc2NhbCBkYXRhIHZhbHVlXG5cdCAqIEByZXR1cm5zIFRoZSByYXcgdmFsdWVcblx0ICovXG5cdHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbHVlLnJlcGxhY2UodGhpcy5wYXJzZVJlZ0V4UGF0dGVybiwgdGhpcy5wYXJzZVJlZ0V4UmVwbGFjZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB0aGUgZGF0YSBpbnB1dC5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIFRoZSByYXcgZmlzY2FsIGRhdGFcblx0ICogQHJldHVybnMgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlIHZhbGlkYXRpb24gcGFzc2VzLCBvdGhlcndpc2UgPGNvZGU+ZmFsc2U8L2NvZGU+XG5cdCAqL1xuXHRwdWJsaWMgdmFsaWRhdGUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRpb25SZWdFeFBhdHRlcm4udGVzdCh2YWx1ZSk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2UgdGhlIGRhdGUgcGF0dGVybiBzdHJpbmcgYW5kIGNyZWF0ZSBhIGZvcm1hdCBhcnJheSBmcm9tIGl0LlxuXHQgKiBBcnJheSBpcyB1c2VkIGZvciBkYXRhIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcuXG5cdCAqXG5cdCAqIEBwYXJhbSBwYXR0ZXJuIFRoZSBjYWxlbmRhciBkYXRlIHBhdHRlcm4gc3RyaW5nXG5cdCAqIEByZXR1cm5zIEZvcm1hdCBhcnJheVxuXHQgKi9cblx0cHJpdmF0ZSBwYXJzZUNhbGVuZGFyRGF0ZVBhdHRlcm4ocGF0dGVybjogc3RyaW5nKTogeyBkaWdpdHM6IG51bWJlcjsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfVtdIHtcblx0XHRjb25zdCBmb3JtYXRBcnJheSA9IFtdO1xuXHRcdGxldCBjaGFyLFxuXHRcdFx0Y3VycmVudE9iamVjdCA9IHsgZGlnaXRzOiAwLCB2YWx1ZTogXCJcIiwgc3ltYm9sOiBcIlwiIH07XG5cblx0XHRmb3IgKGNvbnN0IGN1ckNoYXIgb2YgcGF0dGVybikge1xuXHRcdFx0aWYgKGNoYXIgIT09IGN1ckNoYXIpIHtcblx0XHRcdFx0Y3VycmVudE9iamVjdCA9IHsgZGlnaXRzOiAwLCB2YWx1ZTogXCJcIiwgc3ltYm9sOiBcIlwiIH07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjdXJyZW50T2JqZWN0LmRpZ2l0cyArPSAxO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHR5cGVvZiBGaXNjYWxGb3JtYXQuc3ltYm9sc1tjdXJDaGFyIGFzIGtleW9mIHR5cGVvZiBGaXNjYWxGb3JtYXQuc3ltYm9sc10gPT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRcdFx0Y3VycmVudE9iamVjdC52YWx1ZSA9IGN1ckNoYXI7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjdXJyZW50T2JqZWN0LnN5bWJvbCA9IGN1ckNoYXI7XG5cdFx0XHRcdGN1cnJlbnRPYmplY3QuZGlnaXRzID0gMTtcblx0XHRcdH1cblx0XHRcdGNoYXIgPSBjdXJDaGFyO1xuXHRcdFx0Zm9ybWF0QXJyYXkucHVzaChjdXJyZW50T2JqZWN0KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZm9ybWF0QXJyYXk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgZm9ybWF0dGluZyByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgb24gdGhlIGxvY2FsZS1kZXBlbmRlbnQgZm9ybWF0LlxuXHQgKlxuXHQgKiBAcGFyYW0gZm9ybWF0QXJyYXkgQW4gYXJyYXkgd2l0aCB0aGUgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXRcblx0ICovXG5cdHByaXZhdGUgX3NldEZvcm1hdFJlZ2V4KGZvcm1hdEFycmF5OiB7IGRpZ2l0czogbnVtYmVyOyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9W10pOiB2b2lkIHtcblx0XHRjb25zdCByZWdFeFBhdHRlcm4gPSBbXSxcblx0XHRcdHJlZ0V4R3JvdXBzID0gW107XG5cdFx0bGV0IHBhcnQsIHN5bWJvbCwgcmVnZXgsIHllYXI7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXRBcnJheS5sZW5ndGg7IGkrKykge1xuXHRcdFx0cGFydCA9IGZvcm1hdEFycmF5W2ldO1xuXHRcdFx0c3ltYm9sID0gcGFydC5zeW1ib2w7XG5cdFx0XHRyZWdleCA9IEZpc2NhbEZvcm1hdC5zeW1ib2xzW3N5bWJvbCBhcyBrZXlvZiB0eXBlb2YgRmlzY2FsRm9ybWF0LnN5bWJvbHNdLmZvcm1hdDtcblxuXHRcdFx0aWYgKHN5bWJvbCA9PT0gXCJcIikge1xuXHRcdFx0XHRyZWdFeEdyb3Vwc1tpXSA9IHBhcnQudmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKHN5bWJvbC50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcInlcIikge1xuXHRcdFx0XHRyZWdFeFBhdHRlcm4udW5zaGlmdChcIihcIiArIHJlZ2V4LnNvdXJjZSArIFwiKVwiKTtcblx0XHRcdFx0cmVnRXhHcm91cHNbaV0gPSBcIiRcIiArIDE7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZWdFeFBhdHRlcm4ucHVzaChcIihcIiArIHJlZ2V4LnNvdXJjZSArIFwiKVwiKTtcblx0XHRcdFx0eWVhciA9IGZvcm1hdEFycmF5LnNvbWUoZnVuY3Rpb24gKHBhcnRFbnRyeSkge1xuXHRcdFx0XHRcdHJldHVybiBwYXJ0RW50cnkuc3ltYm9sLnRvTG93ZXJDYXNlKCkgPT09IFwieVwiO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmVnRXhHcm91cHNbaV0gPSB5ZWFyID8gXCIkXCIgKyAyIDogXCIkXCIgKyAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuZm9ybWF0UmVnRXhQYXR0ZXJuID0gbmV3IFJlZ0V4cChyZWdFeFBhdHRlcm4uam9pbihcIlwiKSk7XG5cdFx0dGhpcy5mb3JtYXRSZWdFeEdyb3VwcyA9IHJlZ0V4R3JvdXBzLmpvaW4oXCJcIik7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgcGFyc2luZyByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgb24gdGhlIGxvY2FsZS1kZXBlbmRlbnQgZm9ybWF0LlxuXHQgKlxuXHQgKiBAcGFyYW0gZm9ybWF0QXJyYXkgQW4gYXJyYXkgd2l0aCB0aGUgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXRcblx0ICovXG5cdHByaXZhdGUgX3NldFBhcnNlUmVnZXgoZm9ybWF0QXJyYXk6IHsgZGlnaXRzOiBudW1iZXI7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1bXSk6IHZvaWQge1xuXHRcdGNvbnN0IHJlZ0V4UGF0dGVybiA9IFtdLFxuXHRcdFx0ZmlsdGVyZWRGb3JtYXQ6IHsgW2luZGV4OiBzdHJpbmddOiB7IGRpZ2l0czogbnVtYmVyOyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9IH0gPSB7fTtcblx0XHRsZXQgc3ltYm9sLFxuXHRcdFx0cmVnZXgsXG5cdFx0XHRjdXJyR3JvdXA6IG51bWJlcixcblx0XHRcdGdyb3VwID0gMDtcblx0XHRmb3IgKGNvbnN0IHBhcnQgb2YgZm9ybWF0QXJyYXkpIHtcblx0XHRcdHN5bWJvbCA9IHBhcnQuc3ltYm9sO1xuXG5cdFx0XHRpZiAoc3ltYm9sID09PSBcIlwiKSB7XG5cdFx0XHRcdHJlZ0V4UGF0dGVybi5wdXNoKFwiXFxcXEQrP1wiKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlZ2V4ID0gRmlzY2FsRm9ybWF0LnN5bWJvbHNbc3ltYm9sIGFzIGtleW9mIHR5cGVvZiBGaXNjYWxGb3JtYXQuc3ltYm9sc10ucGFyc2U7XG5cdFx0XHRcdHJlZ0V4UGF0dGVybi5wdXNoKFwiKFwiICsgcmVnZXguc291cmNlICsgXCIpXCIpO1xuXHRcdFx0XHRjdXJyR3JvdXAgPSArK2dyb3VwO1xuXHRcdFx0XHRmaWx0ZXJlZEZvcm1hdFtjdXJyR3JvdXBdID0gcGFydDtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5wYXJzZVJlZ0V4UGF0dGVybiA9IG5ldyBSZWdFeHAoXCJeXCIgKyByZWdFeFBhdHRlcm4uam9pbihcIlwiKSArIFwiJFwiKTtcblx0XHR0aGlzLnBhcnNlUmVnRXhSZXBsYWNlciA9IHRoaXMuZ2V0UmVnRXhSZXBsYWNlcihmaWx0ZXJlZEZvcm1hdCk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byByZXBsYWNlIHN0cmluZ3MgYW5kIHRoZW4gcGVyZm9ybXMgcmF3IHN0cmluZyBwYXJzaW5nLlxuXHQgKlxuXHQgKiBAcGFyYW0gZmlsdGVyZWRGb3JtYXQgQW4gYXJyYXkgd2l0aCB0aGUgbG9jYWxlLWRlcGVuZGVudCBmb3JtYXRcblx0ICogQHJldHVybnMgRnVuY3Rpb24gdGhhdCBjYW4gYmUgcGFzc2VkIGludG8gdGhlIHN0cmluZy5yZXBsYWNlIGZ1bmN0aW9uXG5cdCAqL1xuXHRwcml2YXRlIGdldFJlZ0V4UmVwbGFjZXIoZmlsdGVyZWRGb3JtYXQ6IHtcblx0XHRbaW5kZXg6IHN0cmluZ106IHsgZGlnaXRzOiBudW1iZXI7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH07XG5cdH0pOiAoc3Vic3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmcge1xuXHRcdHJldHVybiBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IFtdO1xuXHRcdFx0bGV0IHZhbHVlUGFydCwgc3RyaW5nR3JvdXA7XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBpbiBmaWx0ZXJlZEZvcm1hdCkge1xuXHRcdFx0XHR2YWx1ZVBhcnQgPSBmaWx0ZXJlZEZvcm1hdFtrZXldO1xuXHRcdFx0XHRzdHJpbmdHcm91cCA9IGFyZ3NbcGFyc2VJbnQoa2V5LCAxMCldO1xuXHRcdFx0XHRpZiAoc3RyaW5nR3JvdXAubGVuZ3RoIDwgdmFsdWVQYXJ0LmRpZ2l0cykge1xuXHRcdFx0XHRcdGlmICh2YWx1ZVBhcnQuc3ltYm9sLnRvTG93ZXJDYXNlKCkgPT09IFwieVwiKSB7XG5cdFx0XHRcdFx0XHRzdHJpbmdHcm91cCA9IHBhcnNlWWVhcihzdHJpbmdHcm91cCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHN0cmluZ0dyb3VwID0gc3RyaW5nR3JvdXAucGFkU3RhcnQodmFsdWVQYXJ0LmRpZ2l0cywgXCIwXCIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodmFsdWVQYXJ0LnN5bWJvbC50b0xvd2VyQ2FzZSgpID09PSBcInlcIikge1xuXHRcdFx0XHRcdHJlc3VsdC51bnNoaWZ0KHN0cmluZ0dyb3VwKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXN1bHQucHVzaChzdHJpbmdHcm91cCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHJlc3VsdC5qb2luKFwiXCIpO1xuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgdmFsaWRhdGlvbiByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgb24gdGhlIGZvcm1hdC5cblx0ICpcblx0ICogQHBhcmFtIGZvcm1hdEFycmF5IEFuIGFycmF5IHdpdGggdGhlIGxvY2FsZS1kZXBlbmRlbnQgZm9ybWF0XG5cdCAqL1xuXHRwcml2YXRlIF9zZXRWYWxpZGF0aW9uUmVnZXgoZm9ybWF0QXJyYXk6IHsgZGlnaXRzOiBudW1iZXI7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1bXSk6IHZvaWQge1xuXHRcdGNvbnN0IHJlZ0V4UGF0dGVybiA9IFtdO1xuXHRcdGxldCBzeW1ib2wsIHJlZ2V4O1xuXHRcdGZvciAoY29uc3QgcGFydCBvZiBmb3JtYXRBcnJheSkge1xuXHRcdFx0c3ltYm9sID0gcGFydC5zeW1ib2w7XG5cdFx0XHRyZWdleCA9IEZpc2NhbEZvcm1hdC5zeW1ib2xzW3N5bWJvbCBhcyBrZXlvZiB0eXBlb2YgRmlzY2FsRm9ybWF0LnN5bWJvbHNdLmZvcm1hdDtcblx0XHRcdGlmIChzeW1ib2wgPT09IFwiXCIpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9IGVsc2UgaWYgKHN5bWJvbC50b0xvd2VyQ2FzZSgpID09PSBcInlcIikge1xuXHRcdFx0XHRyZWdFeFBhdHRlcm4udW5zaGlmdChyZWdleC5zb3VyY2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVnRXhQYXR0ZXJuLnB1c2gocmVnZXguc291cmNlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy52YWxpZGF0aW9uUmVnRXhQYXR0ZXJuID0gbmV3IFJlZ0V4cChcIl4oXCIgKyByZWdFeFBhdHRlcm4uam9pbihcIikoXCIpICsgXCIpJFwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybnMgdXNlZCB0byBmb3JtYXQgZmlzY2FsIGRhdGUgc3RyaW5nc1xuXHQgKi9cblx0cHJpdmF0ZSBzdGF0aWMgcmVnZXhGb3JtYXRQYXR0ZXJucyA9IHtcblx0XHR5ZWFyOiAvWzEtOV1cXGR7M30vLFxuXHRcdHBlcmlvZDogL1xcZHszfS8sXG5cdFx0cXVhcnRlcjogL1sxLTRdLyxcblx0XHR3ZWVrOiAvMFsxLTldfFsxLTRdXFxkfDVbMC0zXS8sXG5cdFx0ZGF5OiAvMzcxfDM3MHwzWzAtNl1cXGR8WzEtMl1cXGR7Mn18WzEtOV1cXGR8WzEtOV0vXG5cdH07XG5cblx0LyoqXG5cdCAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJucyB1c2VkIGZvciByYXcgZGF0YSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uXG5cdCAqL1xuXHRwcml2YXRlIHN0YXRpYyByZWdleFBhcnNlUGF0dGVybnMgPSB7XG5cdFx0eWVhcjogL1xcZHsxLDR9Lyxcblx0XHRwZXJpb2Q6IC9cXGR7MSwzfS8sXG5cdFx0cXVhcnRlcjogL1sxLTRdLyxcblx0XHR3ZWVrOiAvXFxkezEsMn0vLFxuXHRcdGRheTogL1sxLTldL1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBNYXBwaW5nIGZyb20gc3BlY2lmaWMgY2FsZW5kYXIgdHlwZSB0byBjb3JyZXNwb25kaW5nIGZvcm1hdHRpbmcvcGFyc2luZyBleHByZXNzaW9uXG5cdCAqL1xuXHRwcml2YXRlIHN0YXRpYyBzeW1ib2xzID0ge1xuXHRcdFwiXCI6IHsgZm9ybWF0OiAvIC8sIHBhcnNlOiAvIC8gfSwgLy8gXCJ0ZXh0XCJcblx0XHR5OiB7IGZvcm1hdDogRmlzY2FsRm9ybWF0LnJlZ2V4Rm9ybWF0UGF0dGVybnMueWVhciwgcGFyc2U6IEZpc2NhbEZvcm1hdC5yZWdleFBhcnNlUGF0dGVybnMueWVhciB9LCAvLyBcInllYXJcIlxuXHRcdFk6IHsgZm9ybWF0OiBGaXNjYWxGb3JtYXQucmVnZXhGb3JtYXRQYXR0ZXJucy55ZWFyLCBwYXJzZTogRmlzY2FsRm9ybWF0LnJlZ2V4UGFyc2VQYXR0ZXJucy55ZWFyIH0sIC8vIFwid2Vla1llYXJcIlxuXHRcdFA6IHsgZm9ybWF0OiBGaXNjYWxGb3JtYXQucmVnZXhGb3JtYXRQYXR0ZXJucy5wZXJpb2QsIHBhcnNlOiBGaXNjYWxGb3JtYXQucmVnZXhQYXJzZVBhdHRlcm5zLnBlcmlvZCB9LCAvLyBcInBlcmlvZFwiXG5cdFx0VzogeyBmb3JtYXQ6IEZpc2NhbEZvcm1hdC5yZWdleEZvcm1hdFBhdHRlcm5zLndlZWssIHBhcnNlOiBGaXNjYWxGb3JtYXQucmVnZXhQYXJzZVBhdHRlcm5zLndlZWsgfSwgLy8gXCJ3ZWVrSW5ZZWFyXCJcblx0XHRkOiB7IGZvcm1hdDogRmlzY2FsRm9ybWF0LnJlZ2V4Rm9ybWF0UGF0dGVybnMuZGF5LCBwYXJzZTogRmlzY2FsRm9ybWF0LnJlZ2V4UGFyc2VQYXR0ZXJucy5kYXkgfSwgLy8gXCJkYXlJblllYXJcIlxuXHRcdFE6IHsgZm9ybWF0OiBGaXNjYWxGb3JtYXQucmVnZXhGb3JtYXRQYXR0ZXJucy5xdWFydGVyLCBwYXJzZTogRmlzY2FsRm9ybWF0LnJlZ2V4UGFyc2VQYXR0ZXJucy5xdWFydGVyIH0sIC8vIFwicXVhcnRlclwiXG5cdFx0cTogeyBmb3JtYXQ6IEZpc2NhbEZvcm1hdC5yZWdleEZvcm1hdFBhdHRlcm5zLnF1YXJ0ZXIsIHBhcnNlOiBGaXNjYWxGb3JtYXQucmVnZXhQYXJzZVBhdHRlcm5zLnF1YXJ0ZXIgfSAvL1wicXVhcnRlclN0YW5kYWxvbmVcIlxuXHR9O1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgWWVhciBmb3JtYXQuIFRoaXMgaXMgaG93IHRoZSBEYXRlRm9ybWF0IHBhcnNlcyB5ZWFycywgZXhjZXB0IHRob3NlIHllYXJzIGNvbnNpc3Rpbmcgb2YgMyBkaWdpdHMsIHNpbmNlIGN1cnJlbmN5IGZpc2NhbCBkYXRlcyBzdXBwb3J0IG9ubHkgeWVhcnMgY29uc2lzdGluZyBvZiA0IGRpZ2l0cy5cbiAqXG4gKiBAcGFyYW0geWVhciBZZWFyIHN0cmluZ1xuICogQHJldHVybnMgWWVhciBudW1iZXJcbiAqL1xuZnVuY3Rpb24gcGFyc2VZZWFyKHllYXI6IHN0cmluZyk6IG51bWJlciB7XG5cdGxldCBwYXJzZWRZZWFyID0gTnVtYmVyLnBhcnNlSW50KHllYXIsIDEwKTtcblx0Y29uc3QgY3VycmVudFllYXIgPSBuZXcgRGF0ZSgpLmdldFVUQ0Z1bGxZZWFyKCksXG5cdFx0Y3VycmVudENlbnR1cnkgPSBNYXRoLmZsb29yKGN1cnJlbnRZZWFyIC8gMTAwKSxcblx0XHR5ZWFyRGlmZiA9IGN1cnJlbnRDZW50dXJ5ICogMTAwICsgcGFyc2VkWWVhciAtIGN1cnJlbnRZZWFyO1xuXG5cdGlmICh5ZWFyLmxlbmd0aCA9PT0gMykge1xuXHRcdHBhcnNlZFllYXIgKz0gTWF0aC5mbG9vcigoY3VycmVudENlbnR1cnkgLSAxKSAvIDEwKSAqIDEwMDA7XG5cdH0gZWxzZSBpZiAoeWVhckRpZmYgPCAtNzApIHtcblx0XHRwYXJzZWRZZWFyICs9IChjdXJyZW50Q2VudHVyeSArIDEpICogMTAwOyAvLyBUYWtlIG5leHQgY2VudHVyeSBpZiBcInllYXJcIiBpcyAzMCB5ZWFycyBpbiB0aGUgZnV0dXJlLiBDdXJyZW50IHllYXIgMTk5OSBhbmQgd2UgZW50ZXIgMjggaXQgd2lsbCB3ZSAyMDI4XG5cdH0gZWxzZSBpZiAoeWVhckRpZmYgPCAzMCkge1xuXHRcdHBhcnNlZFllYXIgKz0gY3VycmVudENlbnR1cnkgKiAxMDA7IC8vIFRha2UgbmV4dCBjZW50dXJ5IGlmIFwieWVhclwiIGlzIDMwIHllYXJzIGluIHRoZSBmdXR1cmUuIEN1cnJlbnQgeWVhciAyMDAwIGFuZCB3ZSBlbnRlciAyOSBpdCB3aWxsIHdlIDIwMjlcblx0fSBlbHNlIHtcblx0XHRwYXJzZWRZZWFyICs9IChjdXJyZW50Q2VudHVyeSAtIDEpICogMTAwOyAvLyBBbnkgZW50ZXJlZCBcInllYXJcIiB0aGF0IGlzIG1vcmUgdGhhbiAzMCB5ZWFycyBpbiB0aGUgZnV0dXJlIHdpbGwgYmUgdHJlYXRlZCBhcyBmcm9tIHByZXZpb3VzIGNlbnR1cnlcblx0fVxuXHRyZXR1cm4gcGFyc2VkWWVhcjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7RUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBYkEsSUFjcUJBLFlBQVk7SUFhaEMsc0JBQVlDLGFBQTZELEVBQUU7TUFDMUUsTUFBTUMsTUFBTSxHQUFHLElBQUlDLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDQyxXQUFXLEVBQUUsQ0FBQztRQUNwREMsVUFBVSxHQUFHLElBQUlDLFVBQVUsQ0FBQ0wsTUFBTSxDQUFDO01BRXBDLElBQUlNLE1BQU0sR0FBR1AsYUFBYSxDQUFDTyxNQUFNO01BQ2pDLElBQUlQLGFBQWEsQ0FBQ08sTUFBTSxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3BDRCxNQUFNLEdBQUcsSUFBSTtNQUNkLENBQUMsTUFBTSxJQUFJUCxhQUFhLENBQUNPLE1BQU0sS0FBSyxLQUFLLEVB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
@@ -1,5 +1,5 @@
1
1
  import Localization from "sap/base/i18n/Localization";
2
- import type CalendarType from "sap/ui/core/CalendarType";
2
+ import type CalendarType from "sap/base/i18n/date/CalendarType";
3
3
  import Locale from "sap/ui/core/Locale";
4
4
  import LocaleData from "sap/ui/core/LocaleData";
5
5