@sapui5/sap.fe.core 1.110.0 → 1.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/package.json +2 -23
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +182 -0
- package/src/sap/fe/core/ActionRuntime.js +3 -181
- package/src/sap/fe/core/ActionRuntime.js.map +1 -0
- package/src/sap/fe/core/ActionRuntime.ts +3 -5
- package/src/sap/fe/core/AppComponent-dbg.js +435 -0
- package/src/sap/fe/core/AppComponent.js +3 -439
- package/src/sap/fe/core/AppComponent.js.map +1 -0
- package/src/sap/fe/core/AppComponent.ts +0 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +200 -0
- package/src/sap/fe/core/AppStateHandler.js +3 -227
- package/src/sap/fe/core/AppStateHandler.js.map +1 -0
- package/src/sap/fe/core/BaseController-dbg.js +76 -0
- package/src/sap/fe/core/BaseController.js +3 -73
- package/src/sap/fe/core/BaseController.js.map +1 -0
- package/src/sap/fe/core/CommonUtils-dbg.js +2135 -0
- package/src/sap/fe/core/CommonUtils.js +3 -2296
- package/src/sap/fe/core/CommonUtils.js.map +1 -0
- package/src/sap/fe/core/CommonUtils.ts +34 -28
- package/src/sap/fe/core/ExtensionAPI-dbg.js +273 -0
- package/src/sap/fe/core/ExtensionAPI.js +3 -280
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -0
- package/src/sap/fe/core/PageController-dbg.js +203 -0
- package/src/sap/fe/core/PageController.js +3 -200
- package/src/sap/fe/core/PageController.js.map +1 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +218 -0
- package/src/sap/fe/core/TemplateComponent.js +3 -216
- package/src/sap/fe/core/TemplateComponent.js.map +1 -0
- package/src/sap/fe/core/TemplateModel-dbg.js +75 -0
- package/src/sap/fe/core/TemplateModel.js +3 -72
- package/src/sap/fe/core/TemplateModel.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +57 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +3 -54
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +410 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +11 -355
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +118 -52
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter-dbg.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +3 -11
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +44 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +3 -40
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +3 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +932 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +16 -1292
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +40 -42
- package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +434 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +3 -481
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -5
- package/src/sap/fe/core/controllerextensions/BusyLocker-dbg.js +92 -0
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +3 -89
- package/src/sap/fe/core/controllerextensions/BusyLocker.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1659 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +3 -1868
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +180 -125
- package/src/sap/fe/core/controllerextensions/Feedback-dbg.js +70 -0
- package/src/sap/fe/core/controllerextensions/Feedback.js +3 -67
- package/src/sap/fe/core/controllerextensions/Feedback.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +83 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -84
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -8
- package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +711 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +3 -707
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +79 -48
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +791 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +3 -696
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +107 -7
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +984 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +3 -996
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +43 -23
- package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1013 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +3 -1011
- package/src/sap/fe/core/controllerextensions/KPIManagement.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -10
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +135 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -133
- package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +221 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +3 -224
- package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +254 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -279
- package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -2
- package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +169 -0
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -174
- package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Paginator.ts +4 -5
- package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +132 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -130
- package/src/sap/fe/core/controllerextensions/Placeholder.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Routing-dbg.js +138 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +3 -135
- package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +10 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -7
- package/src/sap/fe/core/controllerextensions/RoutingListener.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +317 -0
- package/src/sap/fe/core/controllerextensions/Share.js +3 -356
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -1
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +553 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -651
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +411 -553
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +903 -0
- package/src/sap/fe/core/controllerextensions/ViewState.js +3 -967
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/ViewState.ts +90 -41
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +99 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +3 -96
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +314 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +3 -336
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +152 -0
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +3 -161
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +243 -0
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +3 -302
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +252 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +6 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +188 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +1196 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +3 -1479
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +239 -289
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +689 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -785
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +134 -142
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +236 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -287
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +1422 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +3 -1598
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +40 -24
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +185 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +3 -214
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +4 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +1219 -0
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -1213
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +304 -0
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +3 -339
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason-dbg.js +15 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +6 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.ts +6 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +798 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +3 -799
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -0
- package/src/sap/fe/core/controls/Any-dbg.js +32 -0
- package/src/sap/fe/core/controls/Any.js +3 -29
- package/src/sap/fe/core/controls/Any.js.map +1 -0
- package/src/sap/fe/core/controls/AnyElement-dbg.js +29 -0
- package/src/sap/fe/core/controls/AnyElement.js +3 -26
- package/src/sap/fe/core/controls/AnyElement.js.map +1 -0
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +72 -0
- package/src/sap/fe/core/controls/CommandExecution.js +3 -69
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -0
- package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +151 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -148
- package/src/sap/fe/core/controls/ConditionalWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +330 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +3 -328
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +126 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -124
- package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +1 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +170 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -171
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -0
- package/src/sap/fe/core/controls/FieldWrapper-dbg.js +194 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +3 -191
- package/src/sap/fe/core/controls/FieldWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/FileWrapper-dbg.js +280 -0
- package/src/sap/fe/core/controls/FileWrapper.js +3 -277
- package/src/sap/fe/core/controls/FileWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/FilterBar-dbg.js +167 -0
- package/src/sap/fe/core/controls/FilterBar.js +3 -166
- package/src/sap/fe/core/controls/FilterBar.js.map +1 -0
- package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +92 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +3 -89
- package/src/sap/fe/core/controls/FormElementWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/MassEditSelect-dbg.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.js +3 -30
- package/src/sap/fe/core/controls/MassEditSelect.js.map +1 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -34
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +119 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -121
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +267 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +3 -264
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -150
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +310 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -307
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +491 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -504
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +2 -2
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +403 -0
- package/src/sap/fe/core/converters/ConverterContext.js +3 -406
- package/src/sap/fe/core/converters/ConverterContext.js.map +1 -0
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +88 -0
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -84
- package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -0
- package/src/sap/fe/core/converters/ManifestSettings.ts +3 -1
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +402 -0
- package/src/sap/fe/core/converters/ManifestWrapper.js +3 -406
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -0
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1161 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +3 -1225
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -0
- package/src/sap/fe/core/converters/MetaModelConverter.ts +193 -199
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +89 -0
- package/src/sap/fe/core/converters/TemplateConverter.js +3 -86
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -0
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +396 -0
- package/src/sap/fe/core/converters/annotations/DataField.js +3 -394
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -0
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -5
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1948 -0
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +3 -1868
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +424 -0
- package/src/sap/fe/core/converters/controls/Common/Action.js +3 -446
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Action.ts +31 -14
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +276 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.js +3 -260
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +52 -7
- package/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +42 -0
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -39
- package/src/sap/fe/core/converters/controls/Common/Criticality.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +247 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -242
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +229 -0
- package/src/sap/fe/core/converters/controls/Common/Form.js +3 -234
- package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +374 -0
- package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -371
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2596 -0
- package/src/sap/fe/core/converters/controls/Common/Table.js +3 -2527
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Table.ts +214 -77
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +522 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +3 -527
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +51 -50
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +786 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +3 -845
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +0 -64
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +291 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +3 -316
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +30 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +56 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +3 -53
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +438 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -431
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +597 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +3 -630
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
- package/src/sap/fe/core/converters/helpers/Aggregation.js +3 -204
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +100 -0
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -99
- package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +199 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +3 -199
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +143 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +3 -140
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +2 -1
- package/src/sap/fe/core/converters/helpers/ID-dbg.js +92 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -89
- package/src/sap/fe/core/converters/helpers/ID.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +62 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -59
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/Key-dbg.js +62 -0
- package/src/sap/fe/core/converters/helpers/Key.js +3 -59
- package/src/sap/fe/core/converters/helpers/Key.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +80 -0
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +3 -77
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +142 -0
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +3 -139
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +406 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +3 -422
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +132 -111
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +557 -0
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +3 -589
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -0
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +474 -0
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +3 -477
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -0
- package/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +103 -0
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -100
- package/src/sap/fe/core/designtime/AppComponent.designtime.js.map +1 -0
- package/src/sap/fe/core/designtime/library-preload.designtime.js +7 -0
- package/src/sap/fe/core/designtime/library-preload.designtime.js.map +1 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +95 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +3 -92
- package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +46 -0
- package/src/sap/fe/core/formatters/FPMFormatter.js +3 -44
- package/src/sap/fe/core/formatters/FPMFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/FPMFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +343 -0
- package/src/sap/fe/core/formatters/FiscalFormat.js +6 -0
- package/src/sap/fe/core/formatters/FiscalFormat.js.map +1 -0
- package/src/sap/fe/core/formatters/FiscalFormat.ts +319 -0
- package/src/sap/fe/core/formatters/KPIFormatter-dbg.js +86 -0
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -83
- package/src/sap/fe/core/formatters/KPIFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +80 -0
- package/src/sap/fe/core/formatters/StandardFormatter.js +3 -78
- package/src/sap/fe/core/formatters/StandardFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +276 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +3 -275
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +20 -0
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +3 -17
- package/src/sap/fe/core/formatters/TableFormatterTypes.js.map +1 -0
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +172 -0
- package/src/sap/fe/core/formatters/ValueFormatter.js +3 -161
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -8
- package/src/sap/fe/core/fpm/Component-dbg.js +94 -0
- package/src/sap/fe/core/fpm/Component.js +3 -91
- package/src/sap/fe/core/fpm/Component.js.map +1 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +30 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -36
- package/src/sap/fe/core/helpers/AnnotationEnum.js.map +1 -0
- package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +334 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +3 -335
- package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +1739 -0
- package/src/sap/fe/core/helpers/BindingToolkit.js +3 -1611
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -0
- package/src/sap/fe/core/helpers/BindingToolkit.ts +277 -97
- package/src/sap/fe/core/helpers/ClassSupport-dbg.js +421 -0
- package/src/sap/fe/core/helpers/ClassSupport.js +3 -420
- package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -0
- package/src/sap/fe/core/helpers/ClassSupport.ts +13 -15
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +526 -0
- package/src/sap/fe/core/helpers/DeleteHelper.js +3 -618
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/DeleteHelper.ts +116 -134
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +3 -52
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/EditState-dbg.js +80 -0
- package/src/sap/fe/core/helpers/EditState.js +3 -77
- package/src/sap/fe/core/helpers/EditState.js.map +1 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +3 -52
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/FPMHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -52
- package/src/sap/fe/core/helpers/FPMHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +180 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -177
- package/src/sap/fe/core/helpers/KeepAliveHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +28 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +3 -25
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js.map +1 -0
- package/src/sap/fe/core/helpers/LoaderUtils-dbg.js +29 -0
- package/src/sap/fe/core/helpers/LoaderUtils.js +3 -30
- package/src/sap/fe/core/helpers/LoaderUtils.js.map +1 -0
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +1229 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +3 -1309
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/MassEditHelper.ts +6 -6
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +65 -0
- package/src/sap/fe/core/helpers/MessageStrip.js +3 -62
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +489 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +3 -503
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/ModelHelper.ts +13 -36
- package/src/sap/fe/core/helpers/PasteHelper-dbg.js +174 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -185
- package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +371 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -368
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +70 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +141 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +3 -137
- package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +3 -2
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +204 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +3 -208
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/Synchronization-dbg.js +35 -0
- package/src/sap/fe/core/helpers/Synchronization.js +3 -33
- package/src/sap/fe/core/helpers/Synchronization.js.map +1 -0
- package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +29 -0
- package/src/sap/fe/core/helpers/ToES6Promise.js +3 -26
- package/src/sap/fe/core/helpers/ToES6Promise.js.map +1 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +20 -0
- package/src/sap/fe/core/helpers/TypeGuards.js +3 -19
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -0
- package/src/sap/fe/core/helpers/TypeGuards.ts +5 -1
- package/src/sap/fe/core/jsx-runtime/Fragment-dbg.js +14 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +3 -11
- package/src/sap/fe/core/jsx-runtime/Fragment.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +76 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -86
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +124 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -98
- package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +43 -17
- package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +41 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml-dbg.js +94 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +3 -90
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +3 -28
- package/src/sap/fe/core/jsx-runtime/jsx.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx.ts +19 -1
- package/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
- package/src/sap/fe/core/jsx-runtime/jsxs.js +3 -7
- package/src/sap/fe/core/jsx-runtime/jsxs.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +154 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +3 -153
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -0
- package/src/sap/fe/core/library-dbg.js +437 -0
- package/src/sap/fe/core/library-preload.js +900 -0
- package/src/sap/fe/core/library-preload.js.map +1 -0
- package/src/sap/fe/core/library-preload.support.js +177 -0
- package/src/sap/fe/core/library-preload.support.js.map +1 -0
- package/src/sap/fe/core/library.js +3 -461
- package/src/sap/fe/core/library.js.map +1 -0
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/library.ts +12 -25
- package/src/sap/fe/core/manifest.json +100 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +99 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -96
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -0
- package/src/sap/fe/core/messagebundle.properties +6 -0
- package/src/sap/fe/core/messagebundle_ar.properties +22 -0
- package/src/sap/fe/core/messagebundle_bg.properties +22 -0
- package/src/sap/fe/core/messagebundle_ca.properties +22 -0
- package/src/sap/fe/core/messagebundle_cs.properties +22 -0
- package/src/sap/fe/core/messagebundle_cy.properties +22 -0
- package/src/sap/fe/core/messagebundle_da.properties +22 -0
- package/src/sap/fe/core/messagebundle_de.properties +22 -0
- package/src/sap/fe/core/messagebundle_el.properties +22 -0
- package/src/sap/fe/core/messagebundle_en.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +4 -0
- package/src/sap/fe/core/messagebundle_es.properties +22 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -0
- package/src/sap/fe/core/messagebundle_et.properties +22 -0
- package/src/sap/fe/core/messagebundle_fi.properties +22 -0
- package/src/sap/fe/core/messagebundle_fr.properties +22 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -0
- package/src/sap/fe/core/messagebundle_hi.properties +22 -0
- package/src/sap/fe/core/messagebundle_hr.properties +23 -1
- package/src/sap/fe/core/messagebundle_hu.properties +22 -0
- package/src/sap/fe/core/messagebundle_id.properties +22 -0
- package/src/sap/fe/core/messagebundle_it.properties +22 -0
- package/src/sap/fe/core/messagebundle_iw.properties +22 -0
- package/src/sap/fe/core/messagebundle_ja.properties +22 -0
- package/src/sap/fe/core/messagebundle_kk.properties +22 -0
- package/src/sap/fe/core/messagebundle_ko.properties +22 -0
- package/src/sap/fe/core/messagebundle_lt.properties +22 -0
- package/src/sap/fe/core/messagebundle_lv.properties +22 -0
- package/src/sap/fe/core/messagebundle_ms.properties +22 -0
- package/src/sap/fe/core/messagebundle_nl.properties +22 -0
- package/src/sap/fe/core/messagebundle_no.properties +22 -0
- package/src/sap/fe/core/messagebundle_pl.properties +22 -0
- package/src/sap/fe/core/messagebundle_pt.properties +22 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -0
- package/src/sap/fe/core/messagebundle_ro.properties +22 -0
- package/src/sap/fe/core/messagebundle_ru.properties +22 -0
- package/src/sap/fe/core/messagebundle_sh.properties +22 -0
- package/src/sap/fe/core/messagebundle_sk.properties +22 -0
- package/src/sap/fe/core/messagebundle_sl.properties +22 -0
- package/src/sap/fe/core/messagebundle_sv.properties +22 -0
- package/src/sap/fe/core/messagebundle_th.properties +22 -0
- package/src/sap/fe/core/messagebundle_tr.properties +22 -0
- package/src/sap/fe/core/messagebundle_uk.properties +22 -0
- package/src/sap/fe/core/messagebundle_vi.properties +22 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -0
- package/src/sap/fe/core/operationsHelper-dbg.js +155 -0
- package/src/sap/fe/core/operationsHelper.js +3 -205
- package/src/sap/fe/core/operationsHelper.js.map +1 -0
- package/src/sap/fe/core/operationsHelper.ts +14 -68
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +837 -0
- package/src/sap/fe/core/rootView/Fcl.controller.js +3 -855
- package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -0
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +190 -0
- package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -190
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -0
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +506 -0
- package/src/sap/fe/core/rootView/RootViewBaseController.js +3 -538
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -0
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +60 -0
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -60
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +196 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -219
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +80 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -82
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +320 -0
- package/src/sap/fe/core/services/NavigationServiceFactory.js +3 -320
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +91 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -89
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +817 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -847
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +732 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +3 -752
- package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +569 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +3 -599
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +355 -0
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +3 -387
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +37 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +3 -34
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js.map +1 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +4 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +3 -3
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +3 -3
- package/src/sap/fe/core/support/CommonHelper-dbg.js +63 -0
- package/src/sap/fe/core/support/CommonHelper.js +3 -60
- package/src/sap/fe/core/support/CommonHelper.js.map +1 -0
- package/src/sap/fe/core/support/Diagnostics-dbg.js +44 -0
- package/src/sap/fe/core/support/Diagnostics.js +3 -49
- package/src/sap/fe/core/support/Diagnostics.js.map +1 -0
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +3 -3
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +70 -0
- package/src/sap/fe/core/templating/CommonFormatters.js +3 -66
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +9 -3
- package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +136 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +3 -133
- package/src/sap/fe/core/templating/CriticalityFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +58 -0
- package/src/sap/fe/core/templating/DataFieldFormatters.js +3 -55
- package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +363 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -372
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +17 -8
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +56 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +3 -124
- package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +0 -47
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +68 -0
- package/src/sap/fe/core/templating/EntitySetHelper.js +3 -81
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +77 -0
- package/src/sap/fe/core/templating/FieldControlHelper.js +3 -74
- package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +346 -0
- package/src/sap/fe/core/templating/FilterHelper.js +3 -339
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FilterHelper.ts +2 -21
- package/src/sap/fe/core/templating/FilterTemplating-dbg.js +62 -0
- package/src/sap/fe/core/templating/FilterTemplating.js +3 -59
- package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -0
- package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +93 -0
- package/src/sap/fe/core/templating/PropertyFormatters.js +3 -90
- package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +340 -0
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -337
- package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper-dbg.js +91 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +3 -43
- package/src/sap/fe/core/templating/SemanticObjectHelper.js.map +1 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +45 -1
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +498 -0
- package/src/sap/fe/core/templating/UIFormatters.js +3 -544
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/UIFormatters.ts +60 -110
- package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +35 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -33
- package/src/sap/fe/core/type/DateTimeWithTimezone.js.map +1 -0
- package/src/sap/fe/core/type/EDM-dbg.js +84 -0
- package/src/sap/fe/core/type/EDM.js +6 -0
- package/src/sap/fe/core/type/EDM.js.map +1 -0
- package/src/sap/fe/core/type/EDM.ts +70 -0
- package/src/sap/fe/core/type/Email-dbg.js +29 -0
- package/src/sap/fe/core/type/Email.js +3 -26
- package/src/sap/fe/core/type/Email.js.map +1 -0
- package/src/sap/fe/core/type/FiscalDate-dbg.js +174 -0
- package/src/sap/fe/core/type/FiscalDate.js +6 -0
- package/src/sap/fe/core/type/FiscalDate.js.map +1 -0
- package/src/sap/fe/core/type/FiscalDate.ts +179 -0
- package/src/sap/fe/core/type/TypeUtil-dbg.js +58 -0
- package/src/sap/fe/core/type/TypeUtil.js +3 -55
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -0
- package/src/sap/fe/core/type/TypeUtil.ts +1 -0
- package/src/.eslintrc +0 -7
|
@@ -1,374 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/helpers/IssueManager",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _exports = {};
|
|
9
|
-
var getMessageTypeFromCriticalityType = Criticality.getMessageTypeFromCriticalityType;
|
|
10
|
-
var getKPIID = ID.getKPIID;
|
|
11
|
-
var AggregationHelper = Aggregation.AggregationHelper;
|
|
12
|
-
var isPathExpression = PropertyHelper.isPathExpression;
|
|
13
|
-
var MessageType = TableFormatterTypes.MessageType;
|
|
14
|
-
var getFilterDefinitionsFromSelectionVariant = SelectionVariantHelper.getFilterDefinitionsFromSelectionVariant;
|
|
15
|
-
var IssueType = IssueManager.IssueType;
|
|
16
|
-
var IssueSeverity = IssueManager.IssueSeverity;
|
|
17
|
-
var IssueCategory = IssueManager.IssueCategory;
|
|
18
|
-
var DeviationIndicatorFromTrendType = {
|
|
19
|
-
"UI.TrendType/StrongUp": "Up",
|
|
20
|
-
"UI.TrendType/Up": "Up",
|
|
21
|
-
"UI.TrendType/StrongDown": "Down",
|
|
22
|
-
"UI.TrendType/Down": "Down",
|
|
23
|
-
"UI.TrendType/Sideways": "None"
|
|
24
|
-
};
|
|
25
|
-
var KPIChartTypeFromUI = {
|
|
26
|
-
"UI.ChartType/ColumnStacked": "StackedColumn",
|
|
27
|
-
"UI.ChartType/BarStacked": "StackedBar",
|
|
28
|
-
"UI.ChartType/Donut": "Donut",
|
|
29
|
-
"UI.ChartType/Line": "Line",
|
|
30
|
-
"UI.ChartType/Bubble": "bubble",
|
|
31
|
-
"UI.ChartType/Column": "column",
|
|
32
|
-
"UI.ChartType/Bar": "bar",
|
|
33
|
-
"UI.ChartType/VerticalBullet": "vertical_bullet",
|
|
34
|
-
"UI.ChartType/Combination": "combination",
|
|
35
|
-
"UI.ChartType/Scatter": "scatter"
|
|
36
|
-
};
|
|
37
|
-
function convertKPIChart(chartAnnotation, presentationVariantAnnotation) {
|
|
38
|
-
var _presentationVariantA, _presentationVariantA2;
|
|
39
|
-
if (chartAnnotation.Measures === undefined) {
|
|
40
|
-
// We need at least 1 measure (but no dimension is allowed, e.g. for bubble chart)
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
var charDimensions = chartAnnotation.Dimensions ? chartAnnotation.Dimensions.map(function (propertyPath) {
|
|
44
|
-
var _chartAnnotation$Dime, _propertyPath$$target, _propertyPath$$target2, _dimAttribute$Role;
|
|
45
|
-
var dimAttribute = (_chartAnnotation$Dime = chartAnnotation.DimensionAttributes) === null || _chartAnnotation$Dime === void 0 ? void 0 : _chartAnnotation$Dime.find(function (attribute) {
|
|
46
|
-
var _attribute$Dimension;
|
|
47
|
-
return ((_attribute$Dimension = attribute.Dimension) === null || _attribute$Dimension === void 0 ? void 0 : _attribute$Dimension.value) === propertyPath.value;
|
|
48
|
-
});
|
|
49
|
-
return {
|
|
50
|
-
name: propertyPath.value,
|
|
51
|
-
label: ((_propertyPath$$target = propertyPath.$target.annotations.Common) === null || _propertyPath$$target === void 0 ? void 0 : (_propertyPath$$target2 = _propertyPath$$target.Label) === null || _propertyPath$$target2 === void 0 ? void 0 : _propertyPath$$target2.toString()) || propertyPath.value,
|
|
52
|
-
role: dimAttribute === null || dimAttribute === void 0 ? void 0 : (_dimAttribute$Role = dimAttribute.Role) === null || _dimAttribute$Role === void 0 ? void 0 : _dimAttribute$Role.replace("UI.ChartDimensionRoleType/", "")
|
|
53
|
-
};
|
|
54
|
-
}) : [];
|
|
55
|
-
var chartMeasures = chartAnnotation.Measures.map(function (propertyPath) {
|
|
56
|
-
var _chartAnnotation$Meas, _propertyPath$$target3, _propertyPath$$target4, _measureAttribute$Rol;
|
|
57
|
-
var measureAttribute = (_chartAnnotation$Meas = chartAnnotation.MeasureAttributes) === null || _chartAnnotation$Meas === void 0 ? void 0 : _chartAnnotation$Meas.find(function (attribute) {
|
|
58
|
-
var _attribute$Measure;
|
|
59
|
-
return ((_attribute$Measure = attribute.Measure) === null || _attribute$Measure === void 0 ? void 0 : _attribute$Measure.value) === propertyPath.value;
|
|
60
|
-
});
|
|
61
|
-
return {
|
|
62
|
-
name: propertyPath.value,
|
|
63
|
-
label: ((_propertyPath$$target3 = propertyPath.$target.annotations.Common) === null || _propertyPath$$target3 === void 0 ? void 0 : (_propertyPath$$target4 = _propertyPath$$target3.Label) === null || _propertyPath$$target4 === void 0 ? void 0 : _propertyPath$$target4.toString()) || propertyPath.value,
|
|
64
|
-
role: measureAttribute === null || measureAttribute === void 0 ? void 0 : (_measureAttribute$Rol = measureAttribute.Role) === null || _measureAttribute$Rol === void 0 ? void 0 : _measureAttribute$Rol.replace("UI.ChartMeasureRoleType/", "")
|
|
65
|
-
};
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
chartType: KPIChartTypeFromUI[chartAnnotation.ChartType] || "Line",
|
|
69
|
-
dimensions: charDimensions,
|
|
70
|
-
measures: chartMeasures,
|
|
71
|
-
sortOrder: presentationVariantAnnotation === null || presentationVariantAnnotation === void 0 ? void 0 : (_presentationVariantA = presentationVariantAnnotation.SortOrder) === null || _presentationVariantA === void 0 ? void 0 : _presentationVariantA.map(function (sortOrder) {
|
|
72
|
-
var _sortOrder$Property;
|
|
73
|
-
return {
|
|
74
|
-
name: ((_sortOrder$Property = sortOrder.Property) === null || _sortOrder$Property === void 0 ? void 0 : _sortOrder$Property.value) || "",
|
|
75
|
-
descending: !!sortOrder.Descending
|
|
76
|
-
};
|
|
77
|
-
}),
|
|
78
|
-
maxItems: presentationVariantAnnotation === null || presentationVariantAnnotation === void 0 ? void 0 : (_presentationVariantA2 = presentationVariantAnnotation.MaxItems) === null || _presentationVariantA2 === void 0 ? void 0 : _presentationVariantA2.valueOf()
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
function updateCurrency(datapointAnnotation, kpiDef) {
|
|
82
|
-
var _targetValueProperty$, _targetValueProperty$3;
|
|
83
|
-
var targetValueProperty = datapointAnnotation.Value.$target;
|
|
84
|
-
if ((_targetValueProperty$ = targetValueProperty.annotations.Measures) !== null && _targetValueProperty$ !== void 0 && _targetValueProperty$.ISOCurrency) {
|
|
85
|
-
var _targetValueProperty$2;
|
|
86
|
-
var currency = (_targetValueProperty$2 = targetValueProperty.annotations.Measures) === null || _targetValueProperty$2 === void 0 ? void 0 : _targetValueProperty$2.ISOCurrency;
|
|
87
|
-
if (isPathExpression(currency)) {
|
|
88
|
-
kpiDef.datapoint.unit = {
|
|
89
|
-
value: currency.$target.name,
|
|
90
|
-
isCurrency: true,
|
|
91
|
-
isPath: true
|
|
92
|
-
};
|
|
93
|
-
} else {
|
|
94
|
-
kpiDef.datapoint.unit = {
|
|
95
|
-
value: currency.toString(),
|
|
96
|
-
isCurrency: true,
|
|
97
|
-
isPath: false
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
} else if ((_targetValueProperty$3 = targetValueProperty.annotations.Measures) !== null && _targetValueProperty$3 !== void 0 && _targetValueProperty$3.Unit) {
|
|
101
|
-
var _targetValueProperty$4;
|
|
102
|
-
var unit = (_targetValueProperty$4 = targetValueProperty.annotations.Measures) === null || _targetValueProperty$4 === void 0 ? void 0 : _targetValueProperty$4.Unit;
|
|
103
|
-
if (isPathExpression(unit)) {
|
|
104
|
-
kpiDef.datapoint.unit = {
|
|
105
|
-
value: unit.$target.name,
|
|
106
|
-
isCurrency: false,
|
|
107
|
-
isPath: true
|
|
108
|
-
};
|
|
109
|
-
} else {
|
|
110
|
-
kpiDef.datapoint.unit = {
|
|
111
|
-
value: unit.toString(),
|
|
112
|
-
isCurrency: false,
|
|
113
|
-
isPath: false
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function updateCriticality(datapointAnnotation, aggregationHelper, kpiDef) {
|
|
119
|
-
if (datapointAnnotation.Criticality) {
|
|
120
|
-
if (typeof datapointAnnotation.Criticality === "object") {
|
|
121
|
-
// Criticality is a path --> check if the corresponding property is aggregatable
|
|
122
|
-
var criticalityProperty = datapointAnnotation.Criticality.$target;
|
|
123
|
-
if (aggregationHelper.isPropertyAggregatable(criticalityProperty)) {
|
|
124
|
-
kpiDef.datapoint.criticalityPath = datapointAnnotation.Criticality.path;
|
|
125
|
-
} else {
|
|
126
|
-
// The property isn't aggregatable --> we ignore it
|
|
127
|
-
kpiDef.datapoint.criticalityValue = MessageType.None;
|
|
128
|
-
}
|
|
129
|
-
} else {
|
|
130
|
-
// Criticality is an enum Value --> get the corresponding static value
|
|
131
|
-
kpiDef.datapoint.criticalityValue = getMessageTypeFromCriticalityType(datapointAnnotation.Criticality);
|
|
132
|
-
}
|
|
133
|
-
} else if (datapointAnnotation.CriticalityCalculation) {
|
|
134
|
-
kpiDef.datapoint.criticalityCalculationMode = datapointAnnotation.CriticalityCalculation.ImprovementDirection;
|
|
135
|
-
kpiDef.datapoint.criticalityCalculationThresholds = [];
|
|
136
|
-
switch (kpiDef.datapoint.criticalityCalculationMode) {
|
|
137
|
-
case "UI.ImprovementDirectionType/Target":
|
|
138
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.DeviationRangeLowValue);
|
|
139
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.ToleranceRangeLowValue);
|
|
140
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.AcceptanceRangeLowValue);
|
|
141
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.AcceptanceRangeHighValue);
|
|
142
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.ToleranceRangeHighValue);
|
|
143
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.DeviationRangeHighValue);
|
|
144
|
-
break;
|
|
145
|
-
case "UI.ImprovementDirectionType/Minimize":
|
|
146
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.AcceptanceRangeHighValue);
|
|
147
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.ToleranceRangeHighValue);
|
|
148
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.DeviationRangeHighValue);
|
|
149
|
-
break;
|
|
150
|
-
case "UI.ImprovementDirectionType/Maximize":
|
|
151
|
-
default:
|
|
152
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.DeviationRangeLowValue);
|
|
153
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.ToleranceRangeLowValue);
|
|
154
|
-
kpiDef.datapoint.criticalityCalculationThresholds.push(datapointAnnotation.CriticalityCalculation.AcceptanceRangeLowValue);
|
|
155
|
-
}
|
|
156
|
-
} else {
|
|
157
|
-
kpiDef.datapoint.criticalityValue = MessageType.None;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
function updateTrend(datapointAnnotation, aggregationHelper, kpiDef) {
|
|
161
|
-
if (datapointAnnotation.Trend) {
|
|
162
|
-
if (typeof datapointAnnotation.Trend === "object") {
|
|
163
|
-
// Trend is a path --> check if the corresponding property is aggregatable
|
|
164
|
-
var trendProperty = datapointAnnotation.Trend.$target;
|
|
165
|
-
if (aggregationHelper.isPropertyAggregatable(trendProperty)) {
|
|
166
|
-
kpiDef.datapoint.trendPath = datapointAnnotation.Trend.path;
|
|
167
|
-
} else {
|
|
168
|
-
// The property isn't aggregatable --> we ignore it
|
|
169
|
-
kpiDef.datapoint.trendValue = "None";
|
|
170
|
-
}
|
|
171
|
-
} else {
|
|
172
|
-
// Trend is an enum Value --> get the corresponding static value
|
|
173
|
-
kpiDef.datapoint.trendValue = DeviationIndicatorFromTrendType[datapointAnnotation.Trend] || "None";
|
|
174
|
-
}
|
|
175
|
-
} else if (datapointAnnotation.TrendCalculation) {
|
|
176
|
-
kpiDef.datapoint.trendCalculationIsRelative = datapointAnnotation.TrendCalculation.IsRelativeDifference ? true : false;
|
|
177
|
-
if (datapointAnnotation.TrendCalculation.ReferenceValue.$target) {
|
|
178
|
-
// Reference value is a path --> check if the corresponding property is aggregatable
|
|
179
|
-
var referenceProperty = datapointAnnotation.TrendCalculation.ReferenceValue.$target;
|
|
180
|
-
if (aggregationHelper.isPropertyAggregatable(referenceProperty)) {
|
|
181
|
-
kpiDef.datapoint.trendCalculationReferencePath = datapointAnnotation.TrendCalculation.ReferenceValue.path;
|
|
182
|
-
} else {
|
|
183
|
-
// The property isn't aggregatable --> we ignore it and switch back to trend 'None'
|
|
184
|
-
kpiDef.datapoint.trendValue = "None";
|
|
185
|
-
}
|
|
186
|
-
} else {
|
|
187
|
-
// Reference value is a static value
|
|
188
|
-
kpiDef.datapoint.trendCalculationReferenceValue = datapointAnnotation.TrendCalculation.ReferenceValue;
|
|
189
|
-
}
|
|
190
|
-
if (kpiDef.datapoint.trendCalculationReferencePath !== undefined || kpiDef.datapoint.trendCalculationReferenceValue !== undefined) {
|
|
191
|
-
kpiDef.datapoint.trendCalculationTresholds = [datapointAnnotation.TrendCalculation.StrongDownDifference.valueOf(), datapointAnnotation.TrendCalculation.DownDifference.valueOf(), datapointAnnotation.TrendCalculation.UpDifference.valueOf(), datapointAnnotation.TrendCalculation.StrongUpDifference.valueOf()];
|
|
192
|
-
}
|
|
193
|
-
} else {
|
|
194
|
-
kpiDef.datapoint.trendValue = "None";
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
function updateTarget(datapointAnnotation, aggregationHelper, kpiDef) {
|
|
198
|
-
if (datapointAnnotation.TargetValue) {
|
|
199
|
-
if (datapointAnnotation.TargetValue.$target) {
|
|
200
|
-
// Target value is a path --> check if the corresponding property is aggregatable (otherwise ignore)
|
|
201
|
-
var targetProperty = datapointAnnotation.TargetValue.$target;
|
|
202
|
-
if (aggregationHelper.isPropertyAggregatable(targetProperty)) {
|
|
203
|
-
kpiDef.datapoint.targetPath = datapointAnnotation.TargetValue.path;
|
|
204
|
-
}
|
|
205
|
-
} else {
|
|
206
|
-
// Target value is a static value
|
|
207
|
-
kpiDef.datapoint.targetValue = datapointAnnotation.TargetValue;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
function getNavigationInfoFromProperty(property) {
|
|
212
|
-
var annotations = property.annotations["Common"] || {};
|
|
213
|
-
|
|
214
|
-
// Look for the semanticObject annotation (if any)
|
|
215
|
-
var semanticObjectAnnotation;
|
|
216
|
-
Object.keys(annotations).forEach(function (annotationKey) {
|
|
217
|
-
var annotation = annotations[annotationKey];
|
|
218
|
-
if (annotation.term === "com.sap.vocabularies.Common.v1.SemanticObject") {
|
|
219
|
-
if (!annotation.qualifier || !semanticObjectAnnotation) {
|
|
220
|
-
// We always take the annotation without qualifier if there's one, otherwise we take the first one
|
|
221
|
-
semanticObjectAnnotation = annotation;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
if (semanticObjectAnnotation) {
|
|
226
|
-
var result = {
|
|
227
|
-
semanticObject: semanticObjectAnnotation.toString(),
|
|
228
|
-
unavailableActions: []
|
|
229
|
-
};
|
|
230
|
-
|
|
231
|
-
// Look for the unavailable actions (if any)
|
|
232
|
-
var annotationKey = Object.keys(annotations).find(function (key) {
|
|
233
|
-
var _semanticObjectAnnota;
|
|
234
|
-
return annotations[key].term === "com.sap.vocabularies.Common.v1.SemanticObjectUnavailableActions" && annotations[key].qualifier === ((_semanticObjectAnnota = semanticObjectAnnotation) === null || _semanticObjectAnnota === void 0 ? void 0 : _semanticObjectAnnota.qualifier);
|
|
235
|
-
});
|
|
236
|
-
if (annotationKey) {
|
|
237
|
-
result.unavailableActions = annotations[annotationKey];
|
|
238
|
-
}
|
|
239
|
-
return result;
|
|
240
|
-
} else {
|
|
241
|
-
return undefined;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
function createKPIDefinition(kpiName, kpiConfig, converterContext) {
|
|
245
|
-
var _datapointAnnotation$, _datapointAnnotation$2;
|
|
246
|
-
var kpiConverterContext = converterContext.getConverterContextFor("/".concat(kpiConfig.entitySet));
|
|
247
|
-
var aggregationHelper = new AggregationHelper(kpiConverterContext.getEntityType(), kpiConverterContext);
|
|
248
|
-
if (!aggregationHelper.isAnalyticsSupported()) {
|
|
249
|
-
// The entity doesn't support analytical queries
|
|
250
|
-
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.KPI_ISSUES.NO_ANALYTICS + kpiConfig.entitySet);
|
|
251
|
-
return undefined;
|
|
252
|
-
}
|
|
253
|
-
var selectionVariantAnnotation;
|
|
254
|
-
var datapointAnnotation;
|
|
255
|
-
var presentationVariantAnnotation;
|
|
256
|
-
var chartAnnotation;
|
|
257
|
-
var navigationInfo;
|
|
258
|
-
|
|
259
|
-
// Search for a KPI with the qualifier frmo the manifest
|
|
260
|
-
var aKPIAnnotations = kpiConverterContext.getAnnotationsByTerm("UI", "com.sap.vocabularies.UI.v1.KPI");
|
|
261
|
-
var targetKPI = aKPIAnnotations.find(function (kpi) {
|
|
262
|
-
return kpi.qualifier === kpiConfig.qualifier;
|
|
263
|
-
});
|
|
264
|
-
if (targetKPI) {
|
|
265
|
-
var _targetKPI$Detail, _presentationVariantA3, _presentationVariantA4, _presentationVariantA5, _targetKPI$Detail2;
|
|
266
|
-
datapointAnnotation = targetKPI.DataPoint;
|
|
267
|
-
selectionVariantAnnotation = targetKPI.SelectionVariant;
|
|
268
|
-
presentationVariantAnnotation = (_targetKPI$Detail = targetKPI.Detail) === null || _targetKPI$Detail === void 0 ? void 0 : _targetKPI$Detail.DefaultPresentationVariant;
|
|
269
|
-
chartAnnotation = (_presentationVariantA3 = presentationVariantAnnotation) === null || _presentationVariantA3 === void 0 ? void 0 : (_presentationVariantA4 = _presentationVariantA3.Visualizations) === null || _presentationVariantA4 === void 0 ? void 0 : (_presentationVariantA5 = _presentationVariantA4.find(function (viz) {
|
|
270
|
-
return viz.$target.$Type === "com.sap.vocabularies.UI.v1.ChartDefinitionType";
|
|
271
|
-
})) === null || _presentationVariantA5 === void 0 ? void 0 : _presentationVariantA5.$target;
|
|
272
|
-
if ((_targetKPI$Detail2 = targetKPI.Detail) !== null && _targetKPI$Detail2 !== void 0 && _targetKPI$Detail2.SemanticObject) {
|
|
273
|
-
var _targetKPI$Detail$Act;
|
|
274
|
-
navigationInfo = {
|
|
275
|
-
semanticObject: targetKPI.Detail.SemanticObject.toString(),
|
|
276
|
-
action: (_targetKPI$Detail$Act = targetKPI.Detail.Action) === null || _targetKPI$Detail$Act === void 0 ? void 0 : _targetKPI$Detail$Act.toString(),
|
|
277
|
-
unavailableActions: []
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
} else {
|
|
281
|
-
// Fallback: try to find a SPV with the same qualifier
|
|
282
|
-
var aSPVAnnotations = kpiConverterContext.getAnnotationsByTerm("UI", "com.sap.vocabularies.UI.v1.SelectionPresentationVariant");
|
|
283
|
-
var targetSPV = aSPVAnnotations.find(function (spv) {
|
|
284
|
-
return spv.qualifier === kpiConfig.qualifier;
|
|
285
|
-
});
|
|
286
|
-
if (targetSPV) {
|
|
287
|
-
var _presentationVariantA6, _presentationVariantA7, _presentationVariantA8, _presentationVariantA9, _presentationVariantA10, _presentationVariantA11;
|
|
288
|
-
selectionVariantAnnotation = targetSPV.SelectionVariant;
|
|
289
|
-
presentationVariantAnnotation = targetSPV.PresentationVariant;
|
|
290
|
-
datapointAnnotation = (_presentationVariantA6 = presentationVariantAnnotation) === null || _presentationVariantA6 === void 0 ? void 0 : (_presentationVariantA7 = _presentationVariantA6.Visualizations) === null || _presentationVariantA7 === void 0 ? void 0 : (_presentationVariantA8 = _presentationVariantA7.find(function (viz) {
|
|
291
|
-
return viz.$target.$Type === "com.sap.vocabularies.UI.v1.DataPointType";
|
|
292
|
-
})) === null || _presentationVariantA8 === void 0 ? void 0 : _presentationVariantA8.$target;
|
|
293
|
-
chartAnnotation = (_presentationVariantA9 = presentationVariantAnnotation) === null || _presentationVariantA9 === void 0 ? void 0 : (_presentationVariantA10 = _presentationVariantA9.Visualizations) === null || _presentationVariantA10 === void 0 ? void 0 : (_presentationVariantA11 = _presentationVariantA10.find(function (viz) {
|
|
294
|
-
return viz.$target.$Type === "com.sap.vocabularies.UI.v1.ChartDefinitionType";
|
|
295
|
-
})) === null || _presentationVariantA11 === void 0 ? void 0 : _presentationVariantA11.$target;
|
|
296
|
-
} else {
|
|
297
|
-
// Couldn't find a KPI or a SPV annotation with the qualifier from the manifest
|
|
298
|
-
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.KPI_ISSUES.KPI_NOT_FOUND + kpiConfig.qualifier);
|
|
299
|
-
return undefined;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
if (!presentationVariantAnnotation || !datapointAnnotation || !chartAnnotation) {
|
|
303
|
-
// Couldn't find a chart or datapoint definition
|
|
304
|
-
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.KPI_ISSUES.KPI_DETAIL_NOT_FOUND + kpiConfig.qualifier);
|
|
305
|
-
return undefined;
|
|
306
|
-
}
|
|
307
|
-
var datapointProperty = datapointAnnotation.Value.$target;
|
|
308
|
-
if (!aggregationHelper.isPropertyAggregatable(datapointProperty)) {
|
|
309
|
-
// The main property of the KPI is not aggregatable --> We can't calculate its value so we ignore the KPI
|
|
310
|
-
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.KPI_ISSUES.MAIN_PROPERTY_NOT_AGGREGATABLE + kpiConfig.qualifier);
|
|
311
|
-
return undefined;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// Chart definition
|
|
315
|
-
var chartDef = convertKPIChart(chartAnnotation, presentationVariantAnnotation);
|
|
316
|
-
if (!chartDef) {
|
|
317
|
-
return undefined;
|
|
318
|
-
}
|
|
319
|
-
var kpiDef = {
|
|
320
|
-
id: getKPIID(kpiName),
|
|
321
|
-
entitySet: kpiConfig.entitySet,
|
|
322
|
-
datapoint: {
|
|
323
|
-
propertyPath: datapointAnnotation.Value.path,
|
|
324
|
-
annotationPath: kpiConverterContext.getEntitySetBasedAnnotationPath(datapointAnnotation.fullyQualifiedName),
|
|
325
|
-
title: (_datapointAnnotation$ = datapointAnnotation.Title) === null || _datapointAnnotation$ === void 0 ? void 0 : _datapointAnnotation$.toString(),
|
|
326
|
-
description: (_datapointAnnotation$2 = datapointAnnotation.Description) === null || _datapointAnnotation$2 === void 0 ? void 0 : _datapointAnnotation$2.toString()
|
|
327
|
-
},
|
|
328
|
-
selectionVariantFilterDefinitions: selectionVariantAnnotation ? getFilterDefinitionsFromSelectionVariant(selectionVariantAnnotation) : undefined,
|
|
329
|
-
chart: chartDef
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
// Navigation
|
|
333
|
-
if (!navigationInfo) {
|
|
334
|
-
// No navigationInfo was found in the KPI annotation --> try the outbound navigation from the manifest
|
|
335
|
-
if (kpiConfig.detailNavigation) {
|
|
336
|
-
navigationInfo = {
|
|
337
|
-
outboundNavigation: kpiConfig.detailNavigation
|
|
338
|
-
};
|
|
339
|
-
} else {
|
|
340
|
-
// No outbound navigation in the manifest --> try the semantic object on the Datapoint value
|
|
341
|
-
navigationInfo = getNavigationInfoFromProperty(datapointProperty);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
if (navigationInfo) {
|
|
345
|
-
kpiDef.navigation = navigationInfo;
|
|
346
|
-
}
|
|
347
|
-
updateCurrency(datapointAnnotation, kpiDef);
|
|
348
|
-
updateCriticality(datapointAnnotation, aggregationHelper, kpiDef);
|
|
349
|
-
updateTrend(datapointAnnotation, aggregationHelper, kpiDef);
|
|
350
|
-
updateTarget(datapointAnnotation, aggregationHelper, kpiDef);
|
|
351
|
-
return kpiDef;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* Creates the KPI definitions from the manifest and the annotations.
|
|
356
|
-
*
|
|
357
|
-
* @param converterContext The converter context for the page
|
|
358
|
-
* @returns Returns an array of KPI definitions
|
|
359
|
-
*/
|
|
360
|
-
function getKPIDefinitions(converterContext) {
|
|
361
|
-
var kpiConfigs = converterContext.getManifestWrapper().getKPIConfiguration(),
|
|
362
|
-
kpiDefs = [];
|
|
363
|
-
Object.keys(kpiConfigs).forEach(function (kpiName) {
|
|
364
|
-
var oDef = createKPIDefinition(kpiName, kpiConfigs[kpiName], converterContext);
|
|
365
|
-
if (oDef) {
|
|
366
|
-
kpiDefs.push(oDef);
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
return kpiDefs;
|
|
370
|
-
}
|
|
371
|
-
_exports.getKPIDefinitions = getKPIDefinitions;
|
|
372
|
-
return _exports;
|
|
373
|
-
}, false);
|
|
374
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlIiwiS1BJQ2hhcnRUeXBlRnJvbVVJIiwiY29udmVydEtQSUNoYXJ0IiwiY2hhcnRBbm5vdGF0aW9uIiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJNZWFzdXJlcyIsInVuZGVmaW5lZCIsImNoYXJEaW1lbnNpb25zIiwiRGltZW5zaW9ucyIsIm1hcCIsInByb3BlcnR5UGF0aCIsImRpbUF0dHJpYnV0ZSIsIkRpbWVuc2lvbkF0dHJpYnV0ZXMiLCJmaW5kIiwiYXR0cmlidXRlIiwiRGltZW5zaW9uIiwidmFsdWUiLCJuYW1lIiwibGFiZWwiLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJMYWJlbCIsInRvU3RyaW5nIiwicm9sZSIsIlJvbGUiLCJyZXBsYWNlIiwiY2hhcnRNZWFzdXJlcyIsIm1lYXN1cmVBdHRyaWJ1dGUiLCJNZWFzdXJlQXR0cmlidXRlcyIsIk1lYXN1cmUiLCJjaGFydFR5cGUiLCJDaGFydFR5cGUiLCJkaW1lbnNpb25zIiwibWVhc3VyZXMiLCJzb3J0T3JkZXIiLCJTb3J0T3JkZXIiLCJQcm9wZXJ0eSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwibWF4SXRlbXMiLCJNYXhJdGVtcyIsInZhbHVlT2YiLCJ1cGRhdGVDdXJyZW5jeSIsImRhdGFwb2ludEFubm90YXRpb24iLCJrcGlEZWYiLCJ0YXJnZXRWYWx1ZVByb3BlcnR5IiwiVmFsdWUiLCJJU09DdXJyZW5jeSIsImN1cnJlbmN5IiwiaXNQYXRoRXhwcmVzc2lvbiIsImRhdGFwb2ludCIsInVuaXQiLCJpc0N1cnJlbmN5IiwiaXNQYXRoIiwiVW5pdCIsInVwZGF0ZUNyaXRpY2FsaXR5IiwiYWdncmVnYXRpb25IZWxwZXIiLCJDcml0aWNhbGl0eSIsImNyaXRpY2FsaXR5UHJvcGVydHkiLCJpc1Byb3BlcnR5QWdncmVnYXRhYmxlIiwiY3JpdGljYWxpdHlQYXRoIiwicGF0aCIsImNyaXRpY2FsaXR5VmFsdWUiLCJNZXNzYWdlVHlwZSIsIk5vbmUiLCJnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUiLCJDcml0aWNhbGl0eUNhbGN1bGF0aW9uIiwiY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUiLCJJbXByb3ZlbWVudERpcmVjdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzIiwicHVzaCIsIkRldmlhdGlvblJhbmdlTG93VmFsdWUiLCJUb2xlcmFuY2VSYW5nZUxvd1ZhbHVlIiwiQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUiLCJBY2NlcHRhbmNlUmFuZ2VIaWdoVmFsdWUiLCJUb2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSIsIkRldmlhdGlvblJhbmdlSGlnaFZhbHVlIiwidXBkYXRlVHJlbmQiLCJUcmVuZCIsInRyZW5kUHJvcGVydHkiLCJ0cmVuZFBhdGgiLCJ0cmVuZFZhbHVlIiwiVHJlbmRDYWxjdWxhdGlvbiIsInRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlIiwiSXNSZWxhdGl2ZURpZmZlcmVuY2UiLCJSZWZlcmVuY2VWYWx1ZSIsInJlZmVyZW5jZVByb3BlcnR5IiwidHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGgiLCJ0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlVmFsdWUiLCJ0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzIiwiU3Ryb25nRG93bkRpZmZlcmVuY2UiLCJEb3duRGlmZmVyZW5jZSIsIlVwRGlmZmVyZW5jZSIsIlN0cm9uZ1VwRGlmZmVyZW5jZSIsInVwZGF0ZVRhcmdldCIsIlRhcmdldFZhbHVlIiwidGFyZ2V0UHJvcGVydHkiLCJ0YXJnZXRQYXRoIiwidGFyZ2V0VmFsdWUiLCJnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eSIsInByb3BlcnR5Iiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJhbm5vdGF0aW9uS2V5IiwiYW5ub3RhdGlvbiIsInRlcm0iLCJxdWFsaWZpZXIiLCJyZXN1bHQiLCJzZW1hbnRpY09iamVjdCIsInVuYXZhaWxhYmxlQWN0aW9ucyIsImtleSIsImNyZWF0ZUtQSURlZmluaXRpb24iLCJrcGlOYW1lIiwia3BpQ29uZmlnIiwiY29udmVydGVyQ29udGV4dCIsImtwaUNvbnZlcnRlckNvbnRleHQiLCJnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yIiwiZW50aXR5U2V0IiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiS1BJX0lTU1VFUyIsIk5PX0FOQUxZVElDUyIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibmF2aWdhdGlvbkluZm8iLCJhS1BJQW5ub3RhdGlvbnMiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInRhcmdldEtQSSIsImtwaSIsIkRhdGFQb2ludCIsIlNlbGVjdGlvblZhcmlhbnQiLCJEZXRhaWwiLCJEZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsIlZpc3VhbGl6YXRpb25zIiwidml6IiwiJFR5cGUiLCJTZW1hbnRpY09iamVjdCIsImFjdGlvbiIsIkFjdGlvbiIsImFTUFZBbm5vdGF0aW9ucyIsInRhcmdldFNQViIsInNwdiIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJLUElfTk9UX0ZPVU5EIiwiS1BJX0RFVEFJTF9OT1RfRk9VTkQiLCJkYXRhcG9pbnRQcm9wZXJ0eSIsIk1BSU5fUFJPUEVSVFlfTk9UX0FHR1JFR0FUQUJMRSIsImNoYXJ0RGVmIiwiaWQiLCJnZXRLUElJRCIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRpdGxlIiwiVGl0bGUiLCJkZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uIiwic2VsZWN0aW9uVmFyaWFudEZpbHRlckRlZmluaXRpb25zIiwiZ2V0RmlsdGVyRGVmaW5pdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCIsImNoYXJ0IiwiZGV0YWlsTmF2aWdhdGlvbiIsIm91dGJvdW5kTmF2aWdhdGlvbiIsIm5hdmlnYXRpb24iLCJnZXRLUElEZWZpbml0aW9ucyIsImtwaUNvbmZpZ3MiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJnZXRLUElDb25maWd1cmF0aW9uIiwia3BpRGVmcyIsIm9EZWYiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIktQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFubm90YXRpb25UZXJtLCBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIFByb3BlcnR5LCBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgU2VtYW50aWNPYmplY3QgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENyaXRpY2FsaXR5VHlwZSxcblx0RGF0YVBvaW50LFxuXHREYXRhUG9pbnRUeXBlLFxuXHRJbXByb3ZlbWVudERpcmVjdGlvblR5cGUsXG5cdEtQSSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsXG5cdFNlbGVjdGlvblZhcmlhbnRUeXBlLFxuXHRUcmVuZFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMsIFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9TZWxlY3Rpb25WYXJpYW50SGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGaWx0ZXJEZWZpbml0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9TZWxlY3Rpb25WYXJpYW50SGVscGVyXCI7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1RhYmxlRm9ybWF0dGVyVHlwZXNcIjtcbmltcG9ydCB7IGlzUGF0aEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IHsgZ2V0S1BJSUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHR5cGUgeyBLUElDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldE1lc3NhZ2VUeXBlRnJvbUNyaXRpY2FsaXR5VHlwZSB9IGZyb20gXCIuL0NyaXRpY2FsaXR5XCI7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25JbmZvID0ge1xuXHRzZW1hbnRpY09iamVjdD86IHN0cmluZztcblx0YWN0aW9uPzogc3RyaW5nO1xuXHR1bmF2YWlsYWJsZUFjdGlvbnM/OiBzdHJpbmdbXTtcblx0b3V0Ym91bmROYXZpZ2F0aW9uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgS1BJQ2hhcnREZWZpbml0aW9uID0ge1xuXHRjaGFydFR5cGU6IHN0cmluZztcblx0ZGltZW5zaW9uczogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfVtdO1xuXHRtZWFzdXJlczogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfVtdO1xuXHRzb3J0T3JkZXI/OiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdG1heEl0ZW1zPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgS1BJRGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG5cdGRhdGFwb2ludDoge1xuXHRcdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdFx0cHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdFx0dW5pdD86IHtcblx0XHRcdHZhbHVlOiBzdHJpbmc7XG5cdFx0XHRpc1BhdGg6IGJvb2xlYW47XG5cdFx0XHRpc0N1cnJlbmN5OiBib29sZWFuO1xuXHRcdH07XG5cdFx0Y3JpdGljYWxpdHlQYXRoPzogc3RyaW5nO1xuXHRcdGNyaXRpY2FsaXR5VmFsdWU/OiBNZXNzYWdlVHlwZTtcblx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZT86IEltcHJvdmVtZW50RGlyZWN0aW9uVHlwZTtcblx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcz86IChudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKVtdO1xuXHRcdHRpdGxlPzogc3RyaW5nO1xuXHRcdGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXHRcdHRyZW5kUGF0aD86IHN0cmluZztcblx0XHR0cmVuZFZhbHVlPzogc3RyaW5nO1xuXHRcdHRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VWYWx1ZT86IG51bWJlcjtcblx0XHR0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aD86IHN0cmluZztcblx0XHR0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzPzogKG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpW107XG5cdFx0dHJlbmRDYWxjdWxhdGlvbklzUmVsYXRpdmU/OiBib29sZWFuO1xuXHRcdHRhcmdldFZhbHVlPzogbnVtYmVyO1xuXHRcdHRhcmdldFBhdGg/OiBzdHJpbmc7XG5cdH07XG5cdGNoYXJ0OiBLUElDaGFydERlZmluaXRpb247XG5cdHNlbGVjdGlvblZhcmlhbnRGaWx0ZXJEZWZpbml0aW9ucz86IEZpbHRlckRlZmluaXRpb25bXTtcblx0bmF2aWdhdGlvbj86IE5hdmlnYXRpb25JbmZvO1xufTtcblxuY29uc3QgRGV2aWF0aW9uSW5kaWNhdG9yRnJvbVRyZW5kVHlwZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcblx0XCJVSS5UcmVuZFR5cGUvU3Ryb25nVXBcIjogXCJVcFwiLFxuXHRcIlVJLlRyZW5kVHlwZS9VcFwiOiBcIlVwXCIsXG5cdFwiVUkuVHJlbmRUeXBlL1N0cm9uZ0Rvd25cIjogXCJEb3duXCIsXG5cdFwiVUkuVHJlbmRUeXBlL0Rvd25cIjogXCJEb3duXCIsXG5cdFwiVUkuVHJlbmRUeXBlL1NpZGV3YXlzXCI6IFwiTm9uZVwiXG59O1xuXG5jb25zdCBLUElDaGFydFR5cGVGcm9tVUk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG5cdFwiVUkuQ2hhcnRUeXBlL0NvbHVtblN0YWNrZWRcIjogXCJTdGFja2VkQ29sdW1uXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0JhclN0YWNrZWRcIjogXCJTdGFja2VkQmFyXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0RvbnV0XCI6IFwiRG9udXRcIixcblx0XCJVSS5DaGFydFR5cGUvTGluZVwiOiBcIkxpbmVcIixcblx0XCJVSS5DaGFydFR5cGUvQnViYmxlXCI6IFwiYnViYmxlXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0NvbHVtblwiOiBcImNvbHVtblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9CYXJcIjogXCJiYXJcIixcblx0XCJVSS5DaGFydFR5cGUvVmVydGljYWxCdWxsZXRcIjogXCJ2ZXJ0aWNhbF9idWxsZXRcIixcblx0XCJVSS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9TY2F0dGVyXCI6IFwic2NhdHRlclwiXG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0S1BJQ2hhcnQoY2hhcnRBbm5vdGF0aW9uOiBDaGFydCwgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlKTogS1BJQ2hhcnREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcblx0aWYgKGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gV2UgbmVlZCBhdCBsZWFzdCAxIG1lYXN1cmUgKGJ1dCBubyBkaW1lbnNpb24gaXMgYWxsb3dlZCwgZS5nLiBmb3IgYnViYmxlIGNoYXJ0KVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBjaGFyRGltZW5zaW9ucyA9IGNoYXJ0QW5ub3RhdGlvbi5EaW1lbnNpb25zXG5cdFx0PyBjaGFydEFubm90YXRpb24uRGltZW5zaW9ucy5tYXAoKHByb3BlcnR5UGF0aCkgPT4ge1xuXHRcdFx0XHRjb25zdCBkaW1BdHRyaWJ1dGUgPSBjaGFydEFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcz8uZmluZCgoYXR0cmlidXRlKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGF0dHJpYnV0ZS5EaW1lbnNpb24/LnZhbHVlID09PSBwcm9wZXJ0eVBhdGgudmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdG5hbWU6IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdFx0XHRsYWJlbDogcHJvcGVydHlQYXRoLiR0YXJnZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5MYWJlbD8udG9TdHJpbmcoKSB8fCBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRcdFx0cm9sZTogZGltQXR0cmlidXRlPy5Sb2xlPy5yZXBsYWNlKFwiVUkuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9cIiwgXCJcIilcblx0XHRcdFx0fTtcblx0XHQgIH0pXG5cdFx0OiBbXTtcblxuXHRjb25zdCBjaGFydE1lYXN1cmVzID0gY2hhcnRBbm5vdGF0aW9uLk1lYXN1cmVzLm1hcCgocHJvcGVydHlQYXRoKSA9PiB7XG5cdFx0Y29uc3QgbWVhc3VyZUF0dHJpYnV0ZSA9IGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlQXR0cmlidXRlcz8uZmluZCgoYXR0cmlidXRlKSA9PiB7XG5cdFx0XHRyZXR1cm4gYXR0cmlidXRlLk1lYXN1cmU/LnZhbHVlID09PSBwcm9wZXJ0eVBhdGgudmFsdWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5hbWU6IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdGxhYmVsOiBwcm9wZXJ0eVBhdGguJHRhcmdldC5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpIHx8IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdHJvbGU6IG1lYXN1cmVBdHRyaWJ1dGU/LlJvbGU/LnJlcGxhY2UoXCJVSS5DaGFydE1lYXN1cmVSb2xlVHlwZS9cIiwgXCJcIilcblx0XHR9O1xuXHR9KTtcblxuXHRyZXR1cm4ge1xuXHRcdGNoYXJ0VHlwZTogS1BJQ2hhcnRUeXBlRnJvbVVJW2NoYXJ0QW5ub3RhdGlvbi5DaGFydFR5cGVdIHx8IFwiTGluZVwiLFxuXHRcdGRpbWVuc2lvbnM6IGNoYXJEaW1lbnNpb25zLFxuXHRcdG1lYXN1cmVzOiBjaGFydE1lYXN1cmVzLFxuXHRcdHNvcnRPcmRlcjogcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlNvcnRPcmRlcj8ubWFwKChzb3J0T3JkZXIpID0+IHtcblx0XHRcdHJldHVybiB7IG5hbWU6IHNvcnRPcmRlci5Qcm9wZXJ0eT8udmFsdWUgfHwgXCJcIiwgZGVzY2VuZGluZzogISFzb3J0T3JkZXIuRGVzY2VuZGluZyB9O1xuXHRcdH0pLFxuXHRcdG1heEl0ZW1zOiBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uTWF4SXRlbXM/LnZhbHVlT2YoKSBhcyBudW1iZXJcblx0fTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVuY3koZGF0YXBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50VHlwZSwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGNvbnN0IHRhcmdldFZhbHVlUHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdGlmICh0YXJnZXRWYWx1ZVByb3BlcnR5LmFubm90YXRpb25zLk1lYXN1cmVzPy5JU09DdXJyZW5jeSkge1xuXHRcdGNvbnN0IGN1cnJlbmN5ID0gdGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uSVNPQ3VycmVuY3k7XG5cdFx0aWYgKGlzUGF0aEV4cHJlc3Npb24oY3VycmVuY3kpKSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiAoY3VycmVuY3kuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiB0cnVlLFxuXHRcdFx0XHRpc1BhdGg6IHRydWVcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudW5pdCA9IHtcblx0XHRcdFx0dmFsdWU6IGN1cnJlbmN5LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IHRydWUsXG5cdFx0XHRcdGlzUGF0aDogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHRhcmdldFZhbHVlUHJvcGVydHkuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LlVuaXQpIHtcblx0XHRjb25zdCB1bml0ID0gdGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uVW5pdDtcblx0XHRpZiAoaXNQYXRoRXhwcmVzc2lvbih1bml0KSkge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogKHVuaXQuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiBmYWxzZSxcblx0XHRcdFx0aXNQYXRoOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiB1bml0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IGZhbHNlLFxuXHRcdFx0XHRpc1BhdGg6IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlLCBhZ2dyZWdhdGlvbkhlbHBlcjogQWdncmVnYXRpb25IZWxwZXIsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0Ly8gQ3JpdGljYWxpdHkgaXMgYSBwYXRoIC0tPiBjaGVjayBpZiB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGFibGVcblx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5UHJvcGVydHkgPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBhbnkgYXMgUHJvcGVydHlQYXRoKS4kdGFyZ2V0O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoY3JpdGljYWxpdHlQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVBhdGggPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248Q3JpdGljYWxpdHlUeXBlPikucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdFxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDcml0aWNhbGl0eSBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbikge1xuXHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uSW1wcm92ZW1lbnREaXJlY3Rpb247XG5cdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcyA9IFtdO1xuXHRcdHN3aXRjaCAoa3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZSkge1xuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9UYXJnZXRcIjpcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9NaW5pbWl6ZVwiOlxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkRldmlhdGlvblJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgXCJVSS5JbXByb3ZlbWVudERpcmVjdGlvblR5cGUvTWF4aW1pemVcIjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRyZW5kKGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kKSB7XG5cdFx0aWYgKHR5cGVvZiBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhIHBhdGggLS0+IGNoZWNrIGlmIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIGFnZ3JlZ2F0YWJsZVxuXHRcdFx0Y29uc3QgdHJlbmRQcm9wZXJ0eSA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIGFueSBhcyBQcm9wZXJ0eVBhdGgpLiR0YXJnZXQ7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0cmVuZFByb3BlcnR5KSkge1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kUGF0aCA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUcmVuZFR5cGU+KS5wYXRoO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gVGhlIHByb3BlcnR5IGlzbid0IGFnZ3JlZ2F0YWJsZSAtLT4gd2UgaWdub3JlIGl0XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kVmFsdWUgPSBEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlW2RhdGFwb2ludEFubm90YXRpb24uVHJlbmRdIHx8IFwiTm9uZVwiO1xuXHRcdH1cblx0fSBlbHNlIGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24pIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLklzUmVsYXRpdmVEaWZmZXJlbmNlID8gdHJ1ZSA6IGZhbHNlO1xuXHRcdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gUmVmZXJlbmNlIHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlXG5cdFx0XHRjb25zdCByZWZlcmVuY2VQcm9wZXJ0eSA9IGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5SZWZlcmVuY2VWYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUocmVmZXJlbmNlUHJvcGVydHkpKSB7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGggPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdCBhbmQgc3dpdGNoIGJhY2sgdG8gdHJlbmQgJ05vbmUnXG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBSZWZlcmVuY2UgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlJlZmVyZW5jZVZhbHVlO1xuXHRcdH1cblx0XHRpZiAoa3BpRGVmLmRhdGFwb2ludC50cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aCAhPT0gdW5kZWZpbmVkIHx8IGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcyA9IFtcblx0XHRcdFx0ZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlN0cm9uZ0Rvd25EaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5Eb3duRGlmZmVyZW5jZS52YWx1ZU9mKCkgYXMgbnVtYmVyLFxuXHRcdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uVXBEaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5TdHJvbmdVcERpZmZlcmVuY2UudmFsdWVPZigpIGFzIG51bWJlclxuXHRcdFx0XTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZFZhbHVlID0gXCJOb25lXCI7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlVGFyZ2V0KGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlKSB7XG5cdFx0aWYgKGRhdGFwb2ludEFubm90YXRpb24uVGFyZ2V0VmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gVGFyZ2V0IHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlIChvdGhlcndpc2UgaWdub3JlKVxuXHRcdFx0Y29uc3QgdGFyZ2V0UHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0YXJnZXRQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC50YXJnZXRQYXRoID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZS5wYXRoO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUYXJnZXQgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudGFyZ2V0VmFsdWUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eTogUHJvcGVydHkpOiBOYXZpZ2F0aW9uSW5mbyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBbm5vdGF0aW9uVGVybTxhbnk+PiA9IHByb3BlcnR5LmFubm90YXRpb25zW1wiQ29tbW9uXCJdIHx8IHt9O1xuXG5cdC8vIExvb2sgZm9yIHRoZSBzZW1hbnRpY09iamVjdCBhbm5vdGF0aW9uIChpZiBhbnkpXG5cdGxldCBzZW1hbnRpY09iamVjdEFubm90YXRpb246IFNlbWFudGljT2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykuZm9yRWFjaCgoYW5ub3RhdGlvbktleSkgPT4ge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uc1thbm5vdGF0aW9uS2V5XTtcblx0XHRpZiAoYW5ub3RhdGlvbi50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3QpIHtcblx0XHRcdGlmICghYW5ub3RhdGlvbi5xdWFsaWZpZXIgfHwgIXNlbWFudGljT2JqZWN0QW5ub3RhdGlvbikge1xuXHRcdFx0XHQvLyBXZSBhbHdheXMgdGFrZSB0aGUgYW5ub3RhdGlvbiB3aXRob3V0IHF1YWxpZmllciBpZiB0aGVyZSdzIG9uZSwgb3RoZXJ3aXNlIHdlIHRha2UgdGhlIGZpcnN0IG9uZVxuXHRcdFx0XHRzZW1hbnRpY09iamVjdEFubm90YXRpb24gPSBhbm5vdGF0aW9uO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cblx0aWYgKHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IHtcblx0XHRcdHNlbWFudGljT2JqZWN0OiBzZW1hbnRpY09iamVjdEFubm90YXRpb24udG9TdHJpbmcoKSxcblx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHR9O1xuXG5cdFx0Ly8gTG9vayBmb3IgdGhlIHVuYXZhaWxhYmxlIGFjdGlvbnMgKGlmIGFueSlcblx0XHRjb25zdCBhbm5vdGF0aW9uS2V5ID0gT2JqZWN0LmtleXMoYW5ub3RhdGlvbnMpLmZpbmQoKGtleSkgPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5XS50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3RVbmF2YWlsYWJsZUFjdGlvbnMgJiZcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5XS5xdWFsaWZpZXIgPT09IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbj8ucXVhbGlmaWVyXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHRcdGlmIChhbm5vdGF0aW9uS2V5KSB7XG5cdFx0XHRyZXN1bHQudW5hdmFpbGFibGVBY3Rpb25zID0gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbktleV07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtQSURlZmluaXRpb24oa3BpTmFtZTogc3RyaW5nLCBrcGlDb25maWc6IEtQSUNvbmZpZ3VyYXRpb24sIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBLUElEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcblx0Y29uc3Qga3BpQ29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihgLyR7a3BpQ29uZmlnLmVudGl0eVNldH1gKTtcblx0Y29uc3QgYWdncmVnYXRpb25IZWxwZXIgPSBuZXcgQWdncmVnYXRpb25IZWxwZXIoa3BpQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGtwaUNvbnZlcnRlckNvbnRleHQpO1xuXG5cdGlmICghYWdncmVnYXRpb25IZWxwZXIuaXNBbmFseXRpY3NTdXBwb3J0ZWQoKSkge1xuXHRcdC8vIFRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllc1xuXHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5Lk1lZGl1bSwgSXNzdWVUeXBlLktQSV9JU1NVRVMuTk9fQU5BTFlUSUNTICsga3BpQ29uZmlnLmVudGl0eVNldCk7XG5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0bGV0IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBTZWxlY3Rpb25WYXJpYW50VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBjaGFydEFubm90YXRpb246IENoYXJ0IHwgdW5kZWZpbmVkO1xuXHRsZXQgbmF2aWdhdGlvbkluZm86IE5hdmlnYXRpb25JbmZvIHwgdW5kZWZpbmVkO1xuXG5cdC8vIFNlYXJjaCBmb3IgYSBLUEkgd2l0aCB0aGUgcXVhbGlmaWVyIGZybW8gdGhlIG1hbmlmZXN0XG5cdGNvbnN0IGFLUElBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJVSVwiLCBVSUFubm90YXRpb25UZXJtcy5LUEkpIGFzIEtQSVtdO1xuXHRjb25zdCB0YXJnZXRLUEkgPSBhS1BJQW5ub3RhdGlvbnMuZmluZCgoa3BpKSA9PiB7XG5cdFx0cmV0dXJuIGtwaS5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdH0pO1xuXHRpZiAodGFyZ2V0S1BJKSB7XG5cdFx0ZGF0YXBvaW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5EYXRhUG9pbnQ7XG5cdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRLUEkuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5EZXRhaWw/LkRlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdGNoYXJ0QW5ub3RhdGlvbiA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uPy5WaXN1YWxpemF0aW9ucz8uZmluZCgodml6OiBhbnkpID0+IHtcblx0XHRcdHJldHVybiB2aXouJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ2hhcnREZWZpbml0aW9uVHlwZTtcblx0XHR9KT8uJHRhcmdldCBhcyBDaGFydDtcblxuXHRcdGlmICh0YXJnZXRLUEkuRGV0YWlsPy5TZW1hbnRpY09iamVjdCkge1xuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0OiB0YXJnZXRLUEkuRGV0YWlsLlNlbWFudGljT2JqZWN0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGFjdGlvbjogdGFyZ2V0S1BJLkRldGFpbC5BY3Rpb24/LnRvU3RyaW5nKCksXG5cdFx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIEZhbGxiYWNrOiB0cnkgdG8gZmluZCBhIFNQViB3aXRoIHRoZSBzYW1lIHF1YWxpZmllclxuXHRcdGNvbnN0IGFTUFZBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIlVJXCIsXG5cdFx0XHRVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0KSBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50W107XG5cdFx0Y29uc3QgdGFyZ2V0U1BWID0gYVNQVkFubm90YXRpb25zLmZpbmQoKHNwdikgPT4ge1xuXHRcdFx0cmV0dXJuIHNwdi5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdFx0fSk7XG5cdFx0aWYgKHRhcmdldFNQVikge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRTUFYuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdGFyZ2V0U1BWLlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zPy5maW5kKCh2aXo6IGFueSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdml6LiR0YXJnZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGU7XG5cdFx0XHR9KT8uJHRhcmdldCBhcyBEYXRhUG9pbnQ7XG5cdFx0XHRjaGFydEFubm90YXRpb24gPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uVmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpejogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiB2aXouJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ2hhcnREZWZpbml0aW9uVHlwZTtcblx0XHRcdH0pPy4kdGFyZ2V0IGFzIENoYXJ0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDb3VsZG4ndCBmaW5kIGEgS1BJIG9yIGEgU1BWIGFubm90YXRpb24gd2l0aCB0aGUgcXVhbGlmaWVyIGZyb20gdGhlIG1hbmlmZXN0XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfTk9UX0ZPVU5EICsga3BpQ29uZmlnLnF1YWxpZmllcik7XG5cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiB8fCAhZGF0YXBvaW50QW5ub3RhdGlvbiB8fCAhY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Ly8gQ291bGRuJ3QgZmluZCBhIGNoYXJ0IG9yIGRhdGFwb2ludCBkZWZpbml0aW9uXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfREVUQUlMX05PVF9GT1VORCArIGtwaUNvbmZpZy5xdWFsaWZpZXIpO1xuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IGRhdGFwb2ludFByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoZGF0YXBvaW50UHJvcGVydHkpKSB7XG5cdFx0Ly8gVGhlIG1haW4gcHJvcGVydHkgb2YgdGhlIEtQSSBpcyBub3QgYWdncmVnYXRhYmxlIC0tPiBXZSBjYW4ndCBjYWxjdWxhdGUgaXRzIHZhbHVlIHNvIHdlIGlnbm9yZSB0aGUgS1BJXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShcblx0XHRcdFx0SXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRJc3N1ZVNldmVyaXR5Lk1lZGl1bSxcblx0XHRcdFx0SXNzdWVUeXBlLktQSV9JU1NVRVMuTUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFICsga3BpQ29uZmlnLnF1YWxpZmllclxuXHRcdFx0KTtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Ly8gQ2hhcnQgZGVmaW5pdGlvblxuXHRjb25zdCBjaGFydERlZiA9IGNvbnZlcnRLUElDaGFydChjaGFydEFubm90YXRpb24sIHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uKTtcblx0aWYgKCFjaGFydERlZikge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBrcGlEZWY6IEtQSURlZmluaXRpb24gPSB7XG5cdFx0aWQ6IGdldEtQSUlEKGtwaU5hbWUpLFxuXHRcdGVudGl0eVNldDoga3BpQ29uZmlnLmVudGl0eVNldCxcblx0XHRkYXRhcG9pbnQ6IHtcblx0XHRcdHByb3BlcnR5UGF0aDogZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS5wYXRoLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhcG9pbnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHR0aXRsZTogZGF0YXBvaW50QW5ub3RhdGlvbi5UaXRsZT8udG9TdHJpbmcoKSxcblx0XHRcdGRlc2NyaXB0aW9uOiBkYXRhcG9pbnRBbm5vdGF0aW9uLkRlc2NyaXB0aW9uPy50b1N0cmluZygpXG5cdFx0fSxcblx0XHRzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnM6IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXG5cdFx0XHQ/IGdldEZpbHRlckRlZmluaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pXG5cdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRjaGFydDogY2hhcnREZWZcblx0fTtcblxuXHQvLyBOYXZpZ2F0aW9uXG5cdGlmICghbmF2aWdhdGlvbkluZm8pIHtcblx0XHQvLyBObyBuYXZpZ2F0aW9uSW5mbyB3YXMgZm91bmQgaW4gdGhlIEtQSSBhbm5vdGF0aW9uIC0tPiB0cnkgdGhlIG91dGJvdW5kIG5hdmlnYXRpb24gZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRpZiAoa3BpQ29uZmlnLmRldGFpbE5hdmlnYXRpb24pIHtcblx0XHRcdG5hdmlnYXRpb25JbmZvID0ge1xuXHRcdFx0XHRvdXRib3VuZE5hdmlnYXRpb246IGtwaUNvbmZpZy5kZXRhaWxOYXZpZ2F0aW9uXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBObyBvdXRib3VuZCBuYXZpZ2F0aW9uIGluIHRoZSBtYW5pZmVzdCAtLT4gdHJ5IHRoZSBzZW1hbnRpYyBvYmplY3Qgb24gdGhlIERhdGFwb2ludCB2YWx1ZVxuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShkYXRhcG9pbnRQcm9wZXJ0eSk7XG5cdFx0fVxuXHR9XG5cdGlmIChuYXZpZ2F0aW9uSW5mbykge1xuXHRcdGtwaURlZi5uYXZpZ2F0aW9uID0gbmF2aWdhdGlvbkluZm87XG5cdH1cblxuXHR1cGRhdGVDdXJyZW5jeShkYXRhcG9pbnRBbm5vdGF0aW9uLCBrcGlEZWYpO1xuXHR1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblx0dXBkYXRlVHJlbmQoZGF0YXBvaW50QW5ub3RhdGlvbiwgYWdncmVnYXRpb25IZWxwZXIsIGtwaURlZik7XG5cdHVwZGF0ZVRhcmdldChkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblxuXHRyZXR1cm4ga3BpRGVmO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIEtQSSBkZWZpbml0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdCBhbmQgdGhlIGFubm90YXRpb25zLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dCBmb3IgdGhlIHBhZ2VcbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgS1BJIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLUElEZWZpbml0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogS1BJRGVmaW5pdGlvbltdIHtcblx0Y29uc3Qga3BpQ29uZmlncyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0S1BJQ29uZmlndXJhdGlvbigpLFxuXHRcdGtwaURlZnM6IEtQSURlZmluaXRpb25bXSA9IFtdO1xuXG5cdE9iamVjdC5rZXlzKGtwaUNvbmZpZ3MpLmZvckVhY2goKGtwaU5hbWUpID0+IHtcblx0XHRjb25zdCBvRGVmID0gY3JlYXRlS1BJRGVmaW5pdGlvbihrcGlOYW1lLCBrcGlDb25maWdzW2twaU5hbWVdLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRpZiAob0RlZikge1xuXHRcdFx0a3BpRGVmcy5wdXNoKG9EZWYpO1xuXHRcdH1cblx0fSk7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
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/core/converters/helpers/SelectionVariantHelper","sap/fe/core/formatters/TableFormatterTypes","sap/fe/core/templating/PropertyHelper","../../helpers/Aggregation","../../helpers/ID","./Criticality"],function(e,t,a,i,n,o,l){"use strict";var r={};var u=l.getMessageTypeFromCriticalityType;var c=o.getKPIID;var s=n.AggregationHelper;var d=i.isPathExpression;var v=a.MessageType;var p=t.getFilterDefinitionsFromSelectionVariant;var f=e.IssueType;var g=e.IssueSeverity;var y=e.IssueCategory;const C={"UI.TrendType/StrongUp":"Up","UI.TrendType/Up":"Up","UI.TrendType/StrongDown":"Down","UI.TrendType/Down":"Down","UI.TrendType/Sideways":"None"};const T={"UI.ChartType/ColumnStacked":"StackedColumn","UI.ChartType/BarStacked":"StackedBar","UI.ChartType/Donut":"Donut","UI.ChartType/Line":"Line","UI.ChartType/Bubble":"bubble","UI.ChartType/Column":"column","UI.ChartType/Bar":"bar","UI.ChartType/VerticalBullet":"vertical_bullet","UI.ChartType/Combination":"combination","UI.ChartType/Scatter":"scatter"};function h(e,t){var a,i;if(e.Measures===undefined){return undefined}const n=e.Dimensions?e.Dimensions.map(t=>{var a,i,n,o;const l=(a=e.DimensionAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Dimension)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartDimensionRoleType/","")}}):[];const o=e.Measures.map(t=>{var a,i,n,o;const l=(a=e.MeasureAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Measure)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartMeasureRoleType/","")}});return{chartType:T[e.ChartType]||"Line",dimensions:n,measures:o,sortOrder:t===null||t===void 0?void 0:(a=t.SortOrder)===null||a===void 0?void 0:a.map(e=>{var t;return{name:((t=e.Property)===null||t===void 0?void 0:t.value)||"",descending:!!e.Descending}}),maxItems:t===null||t===void 0?void 0:(i=t.MaxItems)===null||i===void 0?void 0:i.valueOf()}}function m(e,t){var a,i;const n=e.Value.$target;if((a=n.annotations.Measures)!==null&&a!==void 0&&a.ISOCurrency){var o;const e=(o=n.annotations.Measures)===null||o===void 0?void 0:o.ISOCurrency;if(d(e)){t.datapoint.unit={value:e.$target.name,isCurrency:true,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:true,isPath:false}}}else if((i=n.annotations.Measures)!==null&&i!==void 0&&i.Unit){var l;const e=(l=n.annotations.Measures)===null||l===void 0?void 0:l.Unit;if(d(e)){t.datapoint.unit={value:e.$target.name,isCurrency:false,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:false,isPath:false}}}}function I(e,t,a){if(e.Criticality){if(typeof e.Criticality==="object"){const i=e.Criticality.$target;if(t.isPropertyAggregatable(i)){a.datapoint.criticalityPath=e.Criticality.path}else{a.datapoint.criticalityValue=v.None}}else{a.datapoint.criticalityValue=u(e.Criticality)}}else if(e.CriticalityCalculation){a.datapoint.criticalityCalculationMode=e.CriticalityCalculation.ImprovementDirection;a.datapoint.criticalityCalculationThresholds=[];switch(a.datapoint.criticalityCalculationMode){case"UI.ImprovementDirectionType/Target":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Minimize":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Maximize":default:a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue)}}else{a.datapoint.criticalityValue=v.None}}function S(e,t,a){if(e.Trend){if(typeof e.Trend==="object"){const i=e.Trend.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendPath=e.Trend.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendValue=C[e.Trend]||"None"}}else if(e.TrendCalculation){a.datapoint.trendCalculationIsRelative=e.TrendCalculation.IsRelativeDifference?true:false;if(e.TrendCalculation.ReferenceValue.$target){const i=e.TrendCalculation.ReferenceValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendCalculationReferencePath=e.TrendCalculation.ReferenceValue.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendCalculationReferenceValue=e.TrendCalculation.ReferenceValue}if(a.datapoint.trendCalculationReferencePath!==undefined||a.datapoint.trendCalculationReferenceValue!==undefined){a.datapoint.trendCalculationTresholds=[e.TrendCalculation.StrongDownDifference.valueOf(),e.TrendCalculation.DownDifference.valueOf(),e.TrendCalculation.UpDifference.valueOf(),e.TrendCalculation.StrongUpDifference.valueOf()]}}else{a.datapoint.trendValue="None"}}function D(e,t,a){if(e.TargetValue){if(e.TargetValue.$target){const i=e.TargetValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.targetPath=e.TargetValue.path}}else{a.datapoint.targetValue=e.TargetValue}}}function b(e){const t=e.annotations["Common"]||{};let a;Object.keys(t).forEach(e=>{const i=t[e];if(i.term==="com.sap.vocabularies.Common.v1.SemanticObject"){if(!i.qualifier||!a){a=i}}});if(a){const e={semanticObject:a.toString(),unavailableActions:[]};const i=Object.keys(t).find(e=>{var i;return t[e].term==="com.sap.vocabularies.Common.v1.SemanticObjectUnavailableActions"&&t[e].qualifier===((i=a)===null||i===void 0?void 0:i.qualifier)});if(i){e.unavailableActions=t[i]}return e}else{return undefined}}function V(e,t,a){var i,n;const o=a.getConverterContextFor(`/${t.entitySet}`);const l=new s(o.getEntityType(),o);if(!l.isAnalyticsSupported()){a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.NO_ANALYTICS+t.entitySet);return undefined}let r;let u;let d;let v;let C;const T=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.KPI");const V=T.find(e=>e.qualifier===t.qualifier);if(V){var U,P,A,R,O;u=V.DataPoint;r=V.SelectionVariant;d=(U=V.Detail)===null||U===void 0?void 0:U.DefaultPresentationVariant;v=(P=d)===null||P===void 0?void 0:(A=P.Visualizations)===null||A===void 0?void 0:(R=A.find(e=>e.$target.$Type==="com.sap.vocabularies.UI.v1.ChartDefinitionType"))===null||R===void 0?void 0:R.$target;if((O=V.Detail)!==null&&O!==void 0&&O.SemanticObject){var M;C={semanticObject:V.Detail.SemanticObject.toString(),action:(M=V.Detail.Action)===null||M===void 0?void 0:M.toString(),unavailableActions:[]}}}else{const e=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.SelectionPresentationVariant");const i=e.find(e=>e.qualifier===t.qualifier);if(i){var $,N,w,L,_,E;r=i.SelectionVariant;d=i.PresentationVariant;u=($=d)===null||$===void 0?void 0:(N=$.Visualizations)===null||N===void 0?void 0:(w=N.find(e=>e.$target.$Type==="com.sap.vocabularies.UI.v1.DataPointType"))===null||w===void 0?void 0:w.$target;v=(L=d)===null||L===void 0?void 0:(_=L.Visualizations)===null||_===void 0?void 0:(E=_.find(e=>e.$target.$Type==="com.sap.vocabularies.UI.v1.ChartDefinitionType"))===null||E===void 0?void 0:E.$target}else{a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.KPI_NOT_FOUND+t.qualifier);return undefined}}if(!d||!u||!v){a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.KPI_DETAIL_NOT_FOUND+t.qualifier);return undefined}const j=u.Value.$target;if(!l.isPropertyAggregatable(j)){a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.MAIN_PROPERTY_NOT_AGGREGATABLE+t.qualifier);return undefined}const q=h(v,d);if(!q){return undefined}const K={id:c(e),entitySet:t.entitySet,datapoint:{propertyPath:u.Value.path,annotationPath:o.getEntitySetBasedAnnotationPath(u.fullyQualifiedName),title:(i=u.Title)===null||i===void 0?void 0:i.toString(),description:(n=u.Description)===null||n===void 0?void 0:n.toString()},selectionVariantFilterDefinitions:r?p(r):undefined,chart:q};if(!C){if(t.detailNavigation){C={outboundNavigation:t.detailNavigation}}else{C=b(j)}}if(C){K.navigation=C}m(u,K);I(u,l,K);S(u,l,K);D(u,l,K);return K}function U(e){const t=e.getManifestWrapper().getKPIConfiguration(),a=[];Object.keys(t).forEach(i=>{const n=V(i,t[i],e);if(n){a.push(n)}});return a}r.getKPIDefinitions=U;return r},false);
|
|
6
|
+
//# sourceMappingURL=KPI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KPI.js","names":["sap","ui","define","IssueManager","SelectionVariantHelper","TableFormatterTypes","PropertyHelper","Aggregation","ID","Criticality","_exports","getMessageTypeFromCriticalityType","getKPIID","AggregationHelper","isPathExpression","MessageType","getFilterDefinitionsFromSelectionVariant","IssueType","IssueSeverity","IssueCategory","DeviationIndicatorFromTrendType","KPIChartTypeFromUI","convertKPIChart","chartAnnotation","presentationVariantAnnotation","_presentationVariantA","_presentationVariantA2","Measures","undefined","charDimensions","Dimensions","map","propertyPath","_chartAnnotation$Dime","_propertyPath$$target","_propertyPath$$target2","_dimAttribute$Role","dimAttribute","DimensionAttributes","find","attribute","_attribute$Dimension","Dimension","value","name","label","$target","annotations","Common","Label","toString","role","Role","replace","chartMeasures","_chartAnnotation$Meas","_propertyPath$$target3","_propertyPath$$target4","_measureAttribute$Rol","measureAttribute","MeasureAttributes","_attribute$Measure","Measure","chartType","ChartType","dimensions","measures","sortOrder","SortOrder","_sortOrder$Property","Property","descending","Descending","maxItems","MaxItems","valueOf","updateCurrency","datapointAnnotation","kpiDef","_targetValueProperty$","_targetValueProperty$3","targetValueProperty","Value","ISOCurrency","_targetValueProperty$2","currency","datapoint","unit","isCurrency","isPath","Unit","_targetValueProperty$4","updateCriticality","aggregationHelper","criticalityProperty","isPropertyAggregatable","criticalityPath","path","criticalityValue","None","CriticalityCalculation","criticalityCalculationMode","ImprovementDirection","criticalityCalculationThresholds","push","DeviationRangeLowValue","ToleranceRangeLowValue","AcceptanceRangeLowValue","AcceptanceRangeHighValue","ToleranceRangeHighValue","DeviationRangeHighValue","updateTrend","Trend","trendProperty","trendPath","trendValue","TrendCalculation","trendCalculationIsRelative","IsRelativeDifference","ReferenceValue","referenceProperty","trendCalculationReferencePath","trendCalculationReferenceValue","trendCalculationTresholds","StrongDownDifference","DownDifference","UpDifference","StrongUpDifference","updateTarget","TargetValue","targetProperty","targetPath","targetValue","getNavigationInfoFromProperty","property","semanticObjectAnnotation","Object","keys","forEach","annotationKey","annotation","term","qualifier","result","semanticObject","unavailableActions","key","_semanticObjectAnnota","createKPIDefinition","kpiName","kpiConfig","converterContext","_datapointAnnotation$","_datapointAnnotation$2","kpiConverterContext","getConverterContextFor","entitySet","getEntityType","isAnalyticsSupported","getDiagnostics","addIssue","Annotation","Medium","KPI_ISSUES","NO_ANALYTICS","selectionVariantAnnotation","navigationInfo","aKPIAnnotations","getAnnotationsByTerm","targetKPI","kpi","_targetKPI$Detail","_presentationVariantA3","_presentationVariantA4","_presentationVariantA5","_targetKPI$Detail2","DataPoint","SelectionVariant","Detail","DefaultPresentationVariant","Visualizations","viz","$Type","SemanticObject","_targetKPI$Detail$Act","action","Action","aSPVAnnotations","targetSPV","spv","_presentationVariantA6","_presentationVariantA7","_presentationVariantA8","_presentationVariantA9","_presentationVariantA10","_presentationVariantA11","PresentationVariant","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","datapointProperty","MAIN_PROPERTY_NOT_AGGREGATABLE","chartDef","id","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","title","Title","description","Description","selectionVariantFilterDefinitions","chart","detailNavigation","outboundNavigation","navigation","getKPIDefinitions","kpiConfigs","getManifestWrapper","getKPIConfiguration","kpiDefs","oDef"],"sources":["KPI-dbg.js"],"mappings":"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"}
|