@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterBar.js","names":["sap","ui","define","Table","VisualFilters","ConfigurableObject","IssueManager","Key","BindingToolkit","ModelHelper","ManifestSettings","DataVisualization","_exports","getSelectionVariant","AvailabilityType","getExpressionFromAnnotation","compileExpression","KeyHelper","IssueType","IssueSeverity","IssueCategory","Placement","OverrideType","insertCustomElements","getVisualFilters","isFilteringCaseSensitive","getTypeConfig","getSelectionVariantConfiguration","filterFieldType","sEdmString","sStringDataType","getFieldGroupFilterGroups","fieldGroup","filterFacetMap","Data","forEach","dataField","$Type","_fieldGroup$annotatio","_fieldGroup$annotatio2","Value","path","group","fullyQualifiedName","groupLabel","Label","annotations","Common","qualifier","getExcludedFilterProperties","selectionVariants","reduce","previousValue","selectionVariant","propertyNames","propertyName","checkAllTableForEntitySetAreAnalytical","listReportTables","contextPath","length","every","visualization","enableAnalytics","annotation","collection","getSelectionVariants","lrTableVisualizations","converterContext","selectionVariantPaths","map","tableFilters","control","filters","tableSVConfigs","key","Array","isArray","paths","annotationPath","indexOf","push","selectionVariantConfig","svConfigs","concat","_getConditionPath","entityType","propertyPath","parts","split","partialPath","part","shift","property","resolvePath","_type","isCollection","_createFilterSelectionField","fullPropertyPath","includeHidden","_property$annotations","_property$annotations2","_property$annotations3","undefined","targetType","UI","Hidden","valueOf","_property$annotations4","_property$annotations5","_property$annotations6","_property$annotations7","_property$annotations8","_targetEntityType$ann","_targetEntityType$ann2","_targetEntityType$ann3","targetEntityType","getAnnotationEntityType","getSelectionFieldKeyFromPath","getAbsoluteAnnotationPath","conditionPath","availability","HiddenFilter","Adaptation","label","name","_getSelectionFields","navigationPath","properties","selectionFieldMap","fullPath","selectionField","_getSelectionFieldsByPath","propertyPaths","selectionFields","localSelectionFields","entityProperties","includes","splice","join","_getFilterField","filterFields","filterField","_converterContext$get","getDiagnostics","addIssue","Annotation","High","MISSING_SELECTIONFIELD","_entityType$annotatio","_entityType$annotatio2","Default","isParameter","ResultContext","_getDefaultFilterFields","aSelectOptions","excludedFilterProperties","annotatedSelectionFields","UISelectionFields","SelectionField","value","selectOption","PropertyName","sPropertyPath","currentSelectionFields","FilterField","getFilterField","_property$annotations9","_property$annotations10","defaultFilterValue","FilterDefaultValue","_getParameterFields","_parameterEntityType$","_parameterEntityType$2","dataModelObjectPath","getDataModelObjectPath","parameterEntityType","startingEntitySet","isParameterized","targetEntitySet","parameterConverterContext","getConverterContextFor","getFilterBarhideBasicSearch","charts","noSearchInCharts","chart","applySupported","enableSearch","noSearchInTables","table","enableAnalyticsSearch","getContextPath","getManifestFilterFields","fbConfig","getManifestWrapper","getFilterConfiguration","definedFilterFields","Object","keys","getPathFromSelectionFieldKey","sKey","type","Slot","visualFilter","slotName","template","position","placement","After","settings","required","getFilterRestrictions","oFilterRestrictionsAnnotation","sRestriction","aProps","oProperty","$PropertyPath","mAllowedExpressions","FilterExpressionRestrictions","Property","AllowedExpressions","getSearchFilterPropertyInfo","dataType","maxConditions","getEditStateFilterPropertyInfo","hiddenFilter","getSearchRestrictions","searchRestrictions","isSingleton","getEntitySet","_converterContext$get2","_converterContext$get3","capabilites","Capabilities","SearchRestrictions","getNavigationRestrictions","sNavigationPath","_converterContext$get4","_converterContext$get5","_converterContext$get6","oNavigationRestrictions","NavigationRestrictions","aRestrictedProperties","RestrictedProperties","find","oRestrictedProperty","NavigationProperty","$NavigationPropertyPath","_fetchBasicPropertyInfo","oFilterFieldInfo","display","caseSensitive","menu","getSpecificAllowedExpression","aExpressions","aAllowedExpressionsPriority","sort","a","b","displayMode","oPropertyAnnotations","oCollectionAnnotations","_oPropertyAnnotations","_oPropertyAnnotations2","_oPropertyAnnotations3","_oPropertyAnnotations4","_oPropertyAnnotations5","_oCollectionAnnotatio","oTextAnnotation","Text","oTextArrangmentAnnotation","TextArrangement","fetchPropertyInfo","oTypeConfig","_converterContext$get7","oPropertyInfo","sAnnotationPath","targetPropertyObject","targetObject","oFormatOptions","formatOptions","oConstraints","constraints","assign","isMultiValue","bIsMultiValue","filterExpression","_isFilterableNavigationProperty","entry","getAnnotatedSelectionFieldData","_converterContext$get8","_entityType$annotatio3","_entityType$annotatio4","lrTables","arguments","lineItemTerm","getEntityType","getEntityTypeAnnotation","SelectionFields","navProperties","_converterContext$get9","entityPath","slice","lastIndexOf","navigationProperties","SelectOptions","propertyInfoFields","startsWith","filterPropertyPath","defaultFilterFields","fetchTypeConfig","nullable","parseKeepsEmptyString","assignDataTypeToPropertyInfo","propertyInfoField","aRequiredProps","aTypeConfig","replace","processSelectionFields","defaultValuePropertyFields","selectionFieldTypes","parameterField","propertyConvertyContext","propertyTargetObject","_oFilterrestrictions","_converterContext$get10","_converterContext$get11","_converterContext$get12","FilterRestrictions","oFilterRestrictions","oRet","sEntitySetPath","aPathParts","oNavigationFilterRestrictions","RequiredProperties","NonFilterableProperties","FilterAllowedExpressions","aNonFilterableProps","aFetchedProperties","isObjectPathDraftSupported","hideBasicSearch","Boolean","Searchable","insertCustomManifestElements","overwrite","getSelectionFields","_entityType$annotatio5","_entityType$annotatio6","oAnnotatedSelectionFieldData","parameterFields","JSON","parse","stringify","localeCompare","sFetchProperties","sPropertyInfo","propSelectionFields","filterFacets","FilterFacets","aFieldGroups","getAnnotationsByTerm","i","filterFacet","_filterFacet$Target","Target","_filterFacet$Target$$","$target","_filterFacet$Target$$2","_filterFacet$Target2","_filterFacet$Target2$","_filterFacet$Target2$2","_filterFacet$Target2$3","_filterFacet$ID","_filterFacet$Label","ID","toString","allFilters","filter","sContextPath","aggregates","aggregatableProperties","aggregateKey","relativePath","isCaseSensitive","getExpandFilterFields","filterRestrictionsAnnotation","valueListAnnotation","requiredProperties","valueList","getObject","FetchValues"],"sources":["FilterBar-dbg.js"],"mappings":"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"}
|
|
@@ -193,70 +193,6 @@ const _createFilterSelectionField = function (
|
|
|
193
193
|
return undefined;
|
|
194
194
|
};
|
|
195
195
|
|
|
196
|
-
export function getModelType(sType: any) {
|
|
197
|
-
type defaultModelType = {
|
|
198
|
-
[key: string]: {
|
|
199
|
-
[key: string]: string;
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
const mDefaultTypeForEdmType: defaultModelType = {
|
|
203
|
-
"Edm.Boolean": {
|
|
204
|
-
modelType: "Bool"
|
|
205
|
-
},
|
|
206
|
-
"Edm.Byte": {
|
|
207
|
-
modelType: "Int"
|
|
208
|
-
},
|
|
209
|
-
"Edm.Date": {
|
|
210
|
-
modelType: "Date"
|
|
211
|
-
},
|
|
212
|
-
"Edm.DateTime": {
|
|
213
|
-
modelType: "Date"
|
|
214
|
-
},
|
|
215
|
-
"Edm.DateTimeOffset": {
|
|
216
|
-
modelType: "DateTimeOffset"
|
|
217
|
-
},
|
|
218
|
-
"Edm.Decimal": {
|
|
219
|
-
modelType: "Decimal"
|
|
220
|
-
},
|
|
221
|
-
"Edm.Double": {
|
|
222
|
-
modelType: "Float"
|
|
223
|
-
},
|
|
224
|
-
"Edm.Float": {
|
|
225
|
-
modelType: "Float"
|
|
226
|
-
},
|
|
227
|
-
"Edm.Guid": {
|
|
228
|
-
modelType: "Guid"
|
|
229
|
-
},
|
|
230
|
-
"Edm.Int16": {
|
|
231
|
-
modelType: "Int"
|
|
232
|
-
},
|
|
233
|
-
"Edm.Int32": {
|
|
234
|
-
modelType: "Int"
|
|
235
|
-
},
|
|
236
|
-
"Edm.Int64": {
|
|
237
|
-
modelType: "Int"
|
|
238
|
-
},
|
|
239
|
-
"Edm.SByte": {
|
|
240
|
-
modelType: "Int"
|
|
241
|
-
},
|
|
242
|
-
"Edm.Single": {
|
|
243
|
-
modelType: "Float"
|
|
244
|
-
},
|
|
245
|
-
"Edm.String": {
|
|
246
|
-
modelType: "String"
|
|
247
|
-
},
|
|
248
|
-
"Edm.Time": {
|
|
249
|
-
modelType: "TimeOfDay"
|
|
250
|
-
},
|
|
251
|
-
"Edm.TimeOfDay": {
|
|
252
|
-
modelType: "TimeOfDay"
|
|
253
|
-
},
|
|
254
|
-
"Edm.Stream": {
|
|
255
|
-
//no corresponding modelType - ignore for filtering
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
return sType && sType in mDefaultTypeForEdmType && mDefaultTypeForEdmType[sType].modelType;
|
|
259
|
-
}
|
|
260
196
|
const _getSelectionFields = function (
|
|
261
197
|
entityType: EntityType,
|
|
262
198
|
navigationPath: string,
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/templating/FilterTemplating"], function (Aggregation, IssueManager, BindingToolkit, ModelHelper, DataModelPathHelper, FilterTemplating) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var isPropertyFilterable = FilterTemplating.isPropertyFilterable;
|
|
10
|
+
var getIsRequired = FilterTemplating.getIsRequired;
|
|
11
|
+
var checkFilterExpressionRestrictions = DataModelPathHelper.checkFilterExpressionRestrictions;
|
|
12
|
+
var compileExpression = BindingToolkit.compileExpression;
|
|
13
|
+
var IssueType = IssueManager.IssueType;
|
|
14
|
+
var IssueSeverity = IssueManager.IssueSeverity;
|
|
15
|
+
var IssueCategory = IssueManager.IssueCategory;
|
|
16
|
+
var AggregationHelper = Aggregation.AggregationHelper;
|
|
17
|
+
/**
|
|
18
|
+
* Checks that measures and dimensions of the visual filter chart can be aggregated and grouped.
|
|
19
|
+
*
|
|
20
|
+
* @param converterContext The converter context
|
|
21
|
+
* @param chartAnnotation The chart annotation
|
|
22
|
+
* @param aggregationHelper The aggregation helper
|
|
23
|
+
* @returns `true` if the measure can be grouped and aggregated
|
|
24
|
+
*/
|
|
25
|
+
const _checkVFAggregation = function (converterContext, chartAnnotation, aggregationHelper) {
|
|
26
|
+
var _chartAnnotation$$tar, _chartAnnotation$$tar8, _chartAnnotation$$tar11, _chartAnnotation$$tar12;
|
|
27
|
+
let sMeasurePath, bGroupable, bAggregatable;
|
|
28
|
+
let sMeasure;
|
|
29
|
+
const customAggregates = aggregationHelper.getCustomAggregateDefinitions();
|
|
30
|
+
let aTransAggregations = aggregationHelper.getTransAggregations();
|
|
31
|
+
let aCustAggMeasure = [];
|
|
32
|
+
// if the chart definition has custom aggregates, then consider them, else fall back to the measures with transformation aggregates
|
|
33
|
+
if (chartAnnotation !== null && chartAnnotation !== void 0 && (_chartAnnotation$$tar = chartAnnotation.$target) !== null && _chartAnnotation$$tar !== void 0 && _chartAnnotation$$tar.Measures) {
|
|
34
|
+
var _chartAnnotation$$tar5, _chartAnnotation$$tar6, _chartAnnotation$$tar7;
|
|
35
|
+
aCustAggMeasure = customAggregates.filter(function (custAgg) {
|
|
36
|
+
var _chartAnnotation$$tar2, _chartAnnotation$$tar3, _chartAnnotation$$tar4;
|
|
37
|
+
return custAgg.qualifier === (chartAnnotation === null || chartAnnotation === void 0 ? void 0 : (_chartAnnotation$$tar2 = chartAnnotation.$target) === null || _chartAnnotation$$tar2 === void 0 ? void 0 : (_chartAnnotation$$tar3 = _chartAnnotation$$tar2.Measures) === null || _chartAnnotation$$tar3 === void 0 ? void 0 : (_chartAnnotation$$tar4 = _chartAnnotation$$tar3[0]) === null || _chartAnnotation$$tar4 === void 0 ? void 0 : _chartAnnotation$$tar4.value);
|
|
38
|
+
});
|
|
39
|
+
sMeasure = aCustAggMeasure.length > 0 ? aCustAggMeasure[0].qualifier : chartAnnotation === null || chartAnnotation === void 0 ? void 0 : (_chartAnnotation$$tar5 = chartAnnotation.$target) === null || _chartAnnotation$$tar5 === void 0 ? void 0 : (_chartAnnotation$$tar6 = _chartAnnotation$$tar5.Measures) === null || _chartAnnotation$$tar6 === void 0 ? void 0 : (_chartAnnotation$$tar7 = _chartAnnotation$$tar6[0]) === null || _chartAnnotation$$tar7 === void 0 ? void 0 : _chartAnnotation$$tar7.value;
|
|
40
|
+
}
|
|
41
|
+
// consider dynamic measures only if there are no measures with custom aggregates
|
|
42
|
+
if (!aCustAggMeasure[0] && chartAnnotation !== null && chartAnnotation !== void 0 && (_chartAnnotation$$tar8 = chartAnnotation.$target) !== null && _chartAnnotation$$tar8 !== void 0 && _chartAnnotation$$tar8.DynamicMeasures) {
|
|
43
|
+
var _chartAnnotation$$tar9, _chartAnnotation$$tar10;
|
|
44
|
+
sMeasure = converterContext.getConverterContextFor(converterContext.getAbsoluteAnnotationPath((_chartAnnotation$$tar9 = chartAnnotation.$target.DynamicMeasures) === null || _chartAnnotation$$tar9 === void 0 ? void 0 : (_chartAnnotation$$tar10 = _chartAnnotation$$tar9[0]) === null || _chartAnnotation$$tar10 === void 0 ? void 0 : _chartAnnotation$$tar10.value)).getDataModelObjectPath().targetObject.Name;
|
|
45
|
+
aTransAggregations = aggregationHelper.getAggregatedProperties("AggregatedProperty");
|
|
46
|
+
} else {
|
|
47
|
+
aTransAggregations = aggregationHelper.getAggregatedProperties("AggregatedProperties")[0];
|
|
48
|
+
}
|
|
49
|
+
const sDimension = chartAnnotation === null || chartAnnotation === void 0 ? void 0 : (_chartAnnotation$$tar11 = chartAnnotation.$target) === null || _chartAnnotation$$tar11 === void 0 ? void 0 : (_chartAnnotation$$tar12 = _chartAnnotation$$tar11.Dimensions[0]) === null || _chartAnnotation$$tar12 === void 0 ? void 0 : _chartAnnotation$$tar12.value;
|
|
50
|
+
if (customAggregates.some(function (custAgg) {
|
|
51
|
+
return custAgg.qualifier === sMeasure;
|
|
52
|
+
})) {
|
|
53
|
+
sMeasurePath = sMeasure;
|
|
54
|
+
} else if (aTransAggregations && aTransAggregations[0]) {
|
|
55
|
+
aTransAggregations.some(function (oAggregate) {
|
|
56
|
+
if (oAggregate.Name === sMeasure) {
|
|
57
|
+
sMeasurePath = oAggregate === null || oAggregate === void 0 ? void 0 : oAggregate.AggregatableProperty.value;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const aAggregatablePropsFromContainer = aggregationHelper.getAggregatableProperties();
|
|
62
|
+
const aGroupablePropsFromContainer = aggregationHelper.getGroupableProperties();
|
|
63
|
+
if (aAggregatablePropsFromContainer && aAggregatablePropsFromContainer.length) {
|
|
64
|
+
for (const aggregatableProp of aAggregatablePropsFromContainer) {
|
|
65
|
+
var _aggregatableProp$Pro;
|
|
66
|
+
if ((aggregatableProp === null || aggregatableProp === void 0 ? void 0 : (_aggregatableProp$Pro = aggregatableProp.Property) === null || _aggregatableProp$Pro === void 0 ? void 0 : _aggregatableProp$Pro.value) === sMeasurePath) {
|
|
67
|
+
bAggregatable = true;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (aGroupablePropsFromContainer && aGroupablePropsFromContainer.length) {
|
|
72
|
+
for (const groupableProp of aGroupablePropsFromContainer) {
|
|
73
|
+
if ((groupableProp === null || groupableProp === void 0 ? void 0 : groupableProp.value) === sDimension) {
|
|
74
|
+
bGroupable = true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return bAggregatable && bGroupable;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Method to get the visual filters object for a property.
|
|
83
|
+
*
|
|
84
|
+
* @param entityType The converter context
|
|
85
|
+
* @param converterContext The chart annotation
|
|
86
|
+
* @param sPropertyPath The aggregation helper
|
|
87
|
+
* @param FilterFields The aggregation helper
|
|
88
|
+
* @returns { VisualFilters | undefined} The visual filters
|
|
89
|
+
*/
|
|
90
|
+
function getVisualFilters(entityType, converterContext, sPropertyPath, FilterFields) {
|
|
91
|
+
var _oVisualFilter$visual;
|
|
92
|
+
let visualFilter;
|
|
93
|
+
const oVisualFilter = FilterFields[sPropertyPath];
|
|
94
|
+
if (oVisualFilter !== null && oVisualFilter !== void 0 && (_oVisualFilter$visual = oVisualFilter.visualFilter) !== null && _oVisualFilter$visual !== void 0 && _oVisualFilter$visual.valueList) {
|
|
95
|
+
var _oVisualFilter$visual2, _property$annotations;
|
|
96
|
+
const oVFPath = oVisualFilter === null || oVisualFilter === void 0 ? void 0 : (_oVisualFilter$visual2 = oVisualFilter.visualFilter) === null || _oVisualFilter$visual2 === void 0 ? void 0 : _oVisualFilter$visual2.valueList;
|
|
97
|
+
const annotationQualifierSplit = oVFPath.split("#");
|
|
98
|
+
const qualifierVL = annotationQualifierSplit.length > 1 ? `ValueList#${annotationQualifierSplit[1]}` : annotationQualifierSplit[0];
|
|
99
|
+
const property = entityType.resolvePath(sPropertyPath);
|
|
100
|
+
const valueList = property === null || property === void 0 ? void 0 : (_property$annotations = property.annotations) === null || _property$annotations === void 0 ? void 0 : _property$annotations.Common[qualifierVL];
|
|
101
|
+
if (valueList) {
|
|
102
|
+
var _converterContext$get, _collectionPathConver;
|
|
103
|
+
const collectionPath = valueList === null || valueList === void 0 ? void 0 : valueList.CollectionPath;
|
|
104
|
+
const collectionPathConverterContext = converterContext.getConverterContextFor(`/${collectionPath || ((_converterContext$get = converterContext.getEntitySet()) === null || _converterContext$get === void 0 ? void 0 : _converterContext$get.name)}`);
|
|
105
|
+
const valueListParams = valueList === null || valueList === void 0 ? void 0 : valueList.Parameters;
|
|
106
|
+
let outParameter;
|
|
107
|
+
const inParameters = [];
|
|
108
|
+
let aParameters = [];
|
|
109
|
+
const parameterEntityType = collectionPathConverterContext.getParameterEntityType();
|
|
110
|
+
aParameters = parameterEntityType ? parameterEntityType.keys.map(function (key) {
|
|
111
|
+
return key.name;
|
|
112
|
+
}) : [];
|
|
113
|
+
if (converterContext.getContextPath() === collectionPathConverterContext.getContextPath()) {
|
|
114
|
+
aParameters.forEach(function (parameter) {
|
|
115
|
+
inParameters.push({
|
|
116
|
+
localDataProperty: parameter,
|
|
117
|
+
valueListProperty: parameter
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if (valueListParams) {
|
|
122
|
+
for (const valueListParam of valueListParams) {
|
|
123
|
+
var _valueListParam$Local;
|
|
124
|
+
const localDataProperty = (_valueListParam$Local = valueListParam.LocalDataProperty) === null || _valueListParam$Local === void 0 ? void 0 : _valueListParam$Local.value;
|
|
125
|
+
const valueListProperty = valueListParam.ValueListProperty;
|
|
126
|
+
if (((valueListParam === null || valueListParam === void 0 ? void 0 : valueListParam.$Type) === "com.sap.vocabularies.Common.v1.ValueListParameterInOut" || (valueListParam === null || valueListParam === void 0 ? void 0 : valueListParam.$Type) === "com.sap.vocabularies.Common.v1.ValueListParameterOut") && sPropertyPath === localDataProperty) {
|
|
127
|
+
outParameter = valueListParam;
|
|
128
|
+
}
|
|
129
|
+
if (((valueListParam === null || valueListParam === void 0 ? void 0 : valueListParam.$Type) === "com.sap.vocabularies.Common.v1.ValueListParameterInOut" || (valueListParam === null || valueListParam === void 0 ? void 0 : valueListParam.$Type) === "com.sap.vocabularies.Common.v1.ValueListParameterIn") && sPropertyPath !== localDataProperty) {
|
|
130
|
+
const bNotFilterable = isPropertyFilterable(collectionPathConverterContext, valueListProperty);
|
|
131
|
+
if (!bNotFilterable) {
|
|
132
|
+
inParameters.push({
|
|
133
|
+
localDataProperty: localDataProperty,
|
|
134
|
+
valueListProperty: valueListProperty
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (inParameters && inParameters.length) {
|
|
141
|
+
inParameters.forEach(function (oInParameter) {
|
|
142
|
+
const mainEntitySetInMappingAllowedExpression = compileExpression(checkFilterExpressionRestrictions(converterContext.getConverterContextFor(converterContext.getAbsoluteAnnotationPath(oInParameter === null || oInParameter === void 0 ? void 0 : oInParameter.localDataProperty)).getDataModelObjectPath(), ["SingleValue"]));
|
|
143
|
+
const valueListEntitySetInMappingAllowedExpression = compileExpression(checkFilterExpressionRestrictions(collectionPathConverterContext.getConverterContextFor(collectionPathConverterContext.getAbsoluteAnnotationPath(oInParameter === null || oInParameter === void 0 ? void 0 : oInParameter.valueListProperty)).getDataModelObjectPath(), ["SingleValue"]));
|
|
144
|
+
if (valueListEntitySetInMappingAllowedExpression === "true" && mainEntitySetInMappingAllowedExpression === "false") {
|
|
145
|
+
throw new Error(`FilterRestrictions of ${sPropertyPath} in MainEntitySet and ValueListEntitySet are different`);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
const pvQualifier = valueList === null || valueList === void 0 ? void 0 : valueList.PresentationVariantQualifier;
|
|
150
|
+
const svQualifier = valueList === null || valueList === void 0 ? void 0 : valueList.SelectionVariantQualifier;
|
|
151
|
+
const pvAnnotation = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver = collectionPathConverterContext.getEntityTypeAnnotation(`@UI.PresentationVariant#${pvQualifier}`)) === null || _collectionPathConver === void 0 ? void 0 : _collectionPathConver.annotation;
|
|
152
|
+
const aggregationHelper = new AggregationHelper(collectionPathConverterContext.getEntityType(), collectionPathConverterContext);
|
|
153
|
+
if (!aggregationHelper.isAnalyticsSupported()) {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
if (pvAnnotation) {
|
|
157
|
+
var _collectionPathConver2;
|
|
158
|
+
const aVisualizations = pvAnnotation === null || pvAnnotation === void 0 ? void 0 : pvAnnotation.Visualizations;
|
|
159
|
+
const contextPath = `/${valueList === null || valueList === void 0 ? void 0 : valueList.CollectionPath}` || `/${collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver2 = collectionPathConverterContext.getEntitySet()) === null || _collectionPathConver2 === void 0 ? void 0 : _collectionPathConver2.name}`;
|
|
160
|
+
visualFilter = {};
|
|
161
|
+
visualFilter.contextPath = contextPath;
|
|
162
|
+
let chartAnnotation;
|
|
163
|
+
for (const visualization of aVisualizations) {
|
|
164
|
+
var _visualization$$targe;
|
|
165
|
+
if (((_visualization$$targe = visualization.$target) === null || _visualization$$targe === void 0 ? void 0 : _visualization$$targe.term) === "com.sap.vocabularies.UI.v1.Chart") {
|
|
166
|
+
chartAnnotation = visualization;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (chartAnnotation) {
|
|
171
|
+
var _chartAnnotation, _chartAnnotation$$tar13, _chartAnnotation$$tar14, _chartAnnotation$$tar15, _chartAnnotation$$tar16, _chartAnnotation$$tar17, _chartAnnotation$$tar18, _chartAnnotation2, _chartAnnotation2$$ta, _chartAnnotation2$$ta2, _chartAnnotation2$$ta3, _chartAnnotation2$$ta4, _chartAnnotation2$$ta5, _chartAnnotation2$$ta6;
|
|
172
|
+
const _bgetVFAggregation = _checkVFAggregation(collectionPathConverterContext, chartAnnotation, aggregationHelper);
|
|
173
|
+
if (!_bgetVFAggregation) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const bDimensionHidden = (_chartAnnotation = chartAnnotation) === null || _chartAnnotation === void 0 ? void 0 : (_chartAnnotation$$tar13 = _chartAnnotation.$target) === null || _chartAnnotation$$tar13 === void 0 ? void 0 : (_chartAnnotation$$tar14 = _chartAnnotation$$tar13.Dimensions[0]) === null || _chartAnnotation$$tar14 === void 0 ? void 0 : (_chartAnnotation$$tar15 = _chartAnnotation$$tar14.$target) === null || _chartAnnotation$$tar15 === void 0 ? void 0 : (_chartAnnotation$$tar16 = _chartAnnotation$$tar15.annotations) === null || _chartAnnotation$$tar16 === void 0 ? void 0 : (_chartAnnotation$$tar17 = _chartAnnotation$$tar16.UI) === null || _chartAnnotation$$tar17 === void 0 ? void 0 : (_chartAnnotation$$tar18 = _chartAnnotation$$tar17.Hidden) === null || _chartAnnotation$$tar18 === void 0 ? void 0 : _chartAnnotation$$tar18.valueOf();
|
|
177
|
+
const bDimensionHiddenFilter = (_chartAnnotation2 = chartAnnotation) === null || _chartAnnotation2 === void 0 ? void 0 : (_chartAnnotation2$$ta = _chartAnnotation2.$target) === null || _chartAnnotation2$$ta === void 0 ? void 0 : (_chartAnnotation2$$ta2 = _chartAnnotation2$$ta.Dimensions[0]) === null || _chartAnnotation2$$ta2 === void 0 ? void 0 : (_chartAnnotation2$$ta3 = _chartAnnotation2$$ta2.$target) === null || _chartAnnotation2$$ta3 === void 0 ? void 0 : (_chartAnnotation2$$ta4 = _chartAnnotation2$$ta3.annotations) === null || _chartAnnotation2$$ta4 === void 0 ? void 0 : (_chartAnnotation2$$ta5 = _chartAnnotation2$$ta4.UI) === null || _chartAnnotation2$$ta5 === void 0 ? void 0 : (_chartAnnotation2$$ta6 = _chartAnnotation2$$ta5.HiddenFilter) === null || _chartAnnotation2$$ta6 === void 0 ? void 0 : _chartAnnotation2$$ta6.valueOf();
|
|
178
|
+
if (bDimensionHidden === true || bDimensionHiddenFilter === true) {
|
|
179
|
+
return;
|
|
180
|
+
} else if (aVisualizations && aVisualizations.length) {
|
|
181
|
+
var _outParameter, _outParameter$LocalDa, _outParameter2, _requiredProperties, _visualFilter$require, _chartAnnotation3, _chartAnnotation3$$ta, _chartAnnotation3$$ta2, _chartAnnotation3$$ta3;
|
|
182
|
+
visualFilter.chartAnnotation = chartAnnotation ? collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getAbsoluteAnnotationPath(`${chartAnnotation.fullyQualifiedName}/$AnnotationPath/`) : undefined;
|
|
183
|
+
// This needs to be done to avoid repetitive entity type in case of non-parameterized entity set e.g /SalesOrderManage/com.c_salesordermanage_sd_aggregate.SalesOrderManage
|
|
184
|
+
const entityTypeName = collectionPathConverterContext.getEntityType().name;
|
|
185
|
+
let presentationAnnotation;
|
|
186
|
+
const relativeAnnotationPath = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getRelativeAnnotationPath(`${pvAnnotation.fullyQualifiedName}/`, collectionPathConverterContext.getEntityType());
|
|
187
|
+
if (parameterEntityType) {
|
|
188
|
+
presentationAnnotation = collectionPathConverterContext.getContextPath() + "/" + relativeAnnotationPath;
|
|
189
|
+
} else {
|
|
190
|
+
presentationAnnotation = "/" + entityTypeName + "/" + relativeAnnotationPath;
|
|
191
|
+
}
|
|
192
|
+
visualFilter.presentationAnnotation = pvAnnotation ? presentationAnnotation : undefined;
|
|
193
|
+
visualFilter.outParameter = (_outParameter = outParameter) === null || _outParameter === void 0 ? void 0 : (_outParameter$LocalDa = _outParameter.LocalDataProperty) === null || _outParameter$LocalDa === void 0 ? void 0 : _outParameter$LocalDa.value;
|
|
194
|
+
visualFilter.inParameters = inParameters;
|
|
195
|
+
visualFilter.valuelistProperty = (_outParameter2 = outParameter) === null || _outParameter2 === void 0 ? void 0 : _outParameter2.ValueListProperty;
|
|
196
|
+
const bIsRange = checkFilterExpressionRestrictions(converterContext.getConverterContextFor(converterContext.getAbsoluteAnnotationPath(sPropertyPath)).getDataModelObjectPath(), ["SingleRange", "MultiRange"]);
|
|
197
|
+
if (compileExpression(bIsRange) === "true") {
|
|
198
|
+
throw new Error("Range AllowedExpression is not supported for visual filters");
|
|
199
|
+
}
|
|
200
|
+
const bIsMainEntitySetSingleSelection = checkFilterExpressionRestrictions(converterContext.getConverterContextFor(converterContext.getAbsoluteAnnotationPath(sPropertyPath)).getDataModelObjectPath(), ["SingleValue"]);
|
|
201
|
+
visualFilter.multipleSelectionAllowed = compileExpression(!bIsMainEntitySetSingleSelection.value);
|
|
202
|
+
visualFilter.required = getIsRequired(converterContext, sPropertyPath);
|
|
203
|
+
let svAnnotation;
|
|
204
|
+
if (svQualifier) {
|
|
205
|
+
var _collectionPathConver3;
|
|
206
|
+
svAnnotation = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver3 = collectionPathConverterContext.getEntityTypeAnnotation(`@UI.SelectionVariant#${svQualifier}`)) === null || _collectionPathConver3 === void 0 ? void 0 : _collectionPathConver3.annotation;
|
|
207
|
+
let selectionVariantAnnotation;
|
|
208
|
+
const relativeSelectionVariantPath = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getRelativeAnnotationPath(`${svAnnotation.fullyQualifiedName}/`, collectionPathConverterContext.getEntityType());
|
|
209
|
+
if (parameterEntityType) {
|
|
210
|
+
selectionVariantAnnotation = collectionPathConverterContext.getContextPath() + "/" + relativeSelectionVariantPath;
|
|
211
|
+
} else {
|
|
212
|
+
selectionVariantAnnotation = "/" + entityTypeName + "/" + relativeSelectionVariantPath;
|
|
213
|
+
}
|
|
214
|
+
visualFilter.selectionVariantAnnotation = svAnnotation ? selectionVariantAnnotation : undefined;
|
|
215
|
+
}
|
|
216
|
+
let requiredProperties = [];
|
|
217
|
+
if (parameterEntityType) {
|
|
218
|
+
var _oEntitySetConverterC, _oEntitySetConverterC2, _oEntitySetConverterC3, _oEntitySetConverterC4, _oRestrictedProperty$;
|
|
219
|
+
const sEntitySet = collectionPath.split("/")[0];
|
|
220
|
+
const sNavigationProperty = collectionPath.split("/")[1];
|
|
221
|
+
const oEntitySetConverterContext = converterContext.getConverterContextFor(`/${sEntitySet}`);
|
|
222
|
+
const aRestrictedProperties = oEntitySetConverterContext === null || oEntitySetConverterContext === void 0 ? void 0 : (_oEntitySetConverterC = oEntitySetConverterContext.getDataModelObjectPath().startingEntitySet) === null || _oEntitySetConverterC === void 0 ? void 0 : (_oEntitySetConverterC2 = _oEntitySetConverterC.annotations) === null || _oEntitySetConverterC2 === void 0 ? void 0 : (_oEntitySetConverterC3 = _oEntitySetConverterC2.Capabilities) === null || _oEntitySetConverterC3 === void 0 ? void 0 : (_oEntitySetConverterC4 = _oEntitySetConverterC3.NavigationRestrictions) === null || _oEntitySetConverterC4 === void 0 ? void 0 : _oEntitySetConverterC4.RestrictedProperties;
|
|
223
|
+
const oRestrictedProperty = aRestrictedProperties === null || aRestrictedProperties === void 0 ? void 0 : aRestrictedProperties.find(restrictedNavProp => {
|
|
224
|
+
var _restrictedNavProp$Na;
|
|
225
|
+
if (((_restrictedNavProp$Na = restrictedNavProp.NavigationProperty) === null || _restrictedNavProp$Na === void 0 ? void 0 : _restrictedNavProp$Na.type) === "NavigationPropertyPath") {
|
|
226
|
+
return restrictedNavProp.NavigationProperty.value === sNavigationProperty;
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
requiredProperties = oRestrictedProperty === null || oRestrictedProperty === void 0 ? void 0 : (_oRestrictedProperty$ = oRestrictedProperty.FilterRestrictions) === null || _oRestrictedProperty$ === void 0 ? void 0 : _oRestrictedProperty$.RequiredProperties;
|
|
230
|
+
} else {
|
|
231
|
+
var _collectionPathConver4;
|
|
232
|
+
const entitySetAnnotations = (_collectionPathConver4 = collectionPathConverterContext.getEntitySet()) === null || _collectionPathConver4 === void 0 ? void 0 : _collectionPathConver4.annotations;
|
|
233
|
+
if (!ModelHelper.isSingleton(collectionPathConverterContext.getEntitySet())) {
|
|
234
|
+
var _entitySetAnnotations, _entitySetAnnotations2;
|
|
235
|
+
requiredProperties = entitySetAnnotations === null || entitySetAnnotations === void 0 ? void 0 : (_entitySetAnnotations = entitySetAnnotations.Capabilities) === null || _entitySetAnnotations === void 0 ? void 0 : (_entitySetAnnotations2 = _entitySetAnnotations.FilterRestrictions) === null || _entitySetAnnotations2 === void 0 ? void 0 : _entitySetAnnotations2.RequiredProperties;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
let requiredPropertyPaths = [];
|
|
239
|
+
if ((_requiredProperties = requiredProperties) !== null && _requiredProperties !== void 0 && _requiredProperties.length) {
|
|
240
|
+
requiredProperties.forEach(function (oRequireProperty) {
|
|
241
|
+
requiredPropertyPaths.push(oRequireProperty.value);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
requiredPropertyPaths = requiredPropertyPaths.concat(aParameters);
|
|
245
|
+
visualFilter.requiredProperties = requiredPropertyPaths;
|
|
246
|
+
if ((_visualFilter$require = visualFilter.requiredProperties) !== null && _visualFilter$require !== void 0 && _visualFilter$require.length) {
|
|
247
|
+
if (!visualFilter.inParameters || !visualFilter.inParameters.length) {
|
|
248
|
+
if (!visualFilter.selectionVariantAnnotation) {
|
|
249
|
+
visualFilter.showOverlayInitially = true;
|
|
250
|
+
} else {
|
|
251
|
+
var _svAnnotation, _svAnnotation$SelectO, _svAnnotation2, _svAnnotation2$Parame;
|
|
252
|
+
let selectOptions = ((_svAnnotation = svAnnotation) === null || _svAnnotation === void 0 ? void 0 : (_svAnnotation$SelectO = _svAnnotation.SelectOptions) === null || _svAnnotation$SelectO === void 0 ? void 0 : _svAnnotation$SelectO.map(oSelectOption => oSelectOption.PropertyName.value)) || [];
|
|
253
|
+
const parameterOptions = ((_svAnnotation2 = svAnnotation) === null || _svAnnotation2 === void 0 ? void 0 : (_svAnnotation2$Parame = _svAnnotation2.Parameters) === null || _svAnnotation2$Parame === void 0 ? void 0 : _svAnnotation2$Parame.map(oParameterOption => oParameterOption.PropertyName.value)) || [];
|
|
254
|
+
selectOptions = selectOptions.concat(parameterOptions);
|
|
255
|
+
requiredPropertyPaths = requiredPropertyPaths.sort();
|
|
256
|
+
selectOptions = selectOptions.sort();
|
|
257
|
+
visualFilter.showOverlayInitially = requiredPropertyPaths.some(function (sPath) {
|
|
258
|
+
return selectOptions.indexOf(sPath) === -1;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
} else {
|
|
262
|
+
visualFilter.showOverlayInitially = false;
|
|
263
|
+
}
|
|
264
|
+
} else {
|
|
265
|
+
visualFilter.showOverlayInitially = false;
|
|
266
|
+
}
|
|
267
|
+
const sDimensionType = (_chartAnnotation3 = chartAnnotation) === null || _chartAnnotation3 === void 0 ? void 0 : (_chartAnnotation3$$ta = _chartAnnotation3.$target) === null || _chartAnnotation3$$ta === void 0 ? void 0 : (_chartAnnotation3$$ta2 = _chartAnnotation3$$ta.Dimensions[0]) === null || _chartAnnotation3$$ta2 === void 0 ? void 0 : (_chartAnnotation3$$ta3 = _chartAnnotation3$$ta2.$target) === null || _chartAnnotation3$$ta3 === void 0 ? void 0 : _chartAnnotation3$$ta3.type;
|
|
268
|
+
if (!(sDimensionType === "Edm.DateTimeOffset" || sDimensionType === "Edm.Date" || sDimensionType === "Edm.TimeOfDay") && chartAnnotation.$target.ChartType === "UI.ChartType/Line") {
|
|
269
|
+
visualFilter.renderLineChart = false;
|
|
270
|
+
} else {
|
|
271
|
+
visualFilter.renderLineChart = true;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
} else {
|
|
275
|
+
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.High, IssueType.MALFORMED_VISUALFILTERS.CHART);
|
|
276
|
+
}
|
|
277
|
+
} else {
|
|
278
|
+
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.High, IssueType.MALFORMED_VISUALFILTERS.PRESENTATIONVARIANT);
|
|
279
|
+
}
|
|
280
|
+
} else {
|
|
281
|
+
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.High, IssueType.MALFORMED_VISUALFILTERS.VALUELIST);
|
|
282
|
+
}
|
|
283
|
+
} else {
|
|
284
|
+
converterContext.getDiagnostics().addIssue(IssueCategory.Manifest, IssueSeverity.High, IssueType.MALFORMED_VISUALFILTERS.VALUELIST);
|
|
285
|
+
}
|
|
286
|
+
return visualFilter;
|
|
287
|
+
}
|
|
288
|
+
_exports.getVisualFilters = getVisualFilters;
|
|
289
|
+
return _exports;
|
|
290
|
+
}, false);
|
|
291
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hlY2tWRkFnZ3JlZ2F0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QW5ub3RhdGlvbiIsImFnZ3JlZ2F0aW9uSGVscGVyIiwic01lYXN1cmVQYXRoIiwiYkdyb3VwYWJsZSIsImJBZ2dyZWdhdGFibGUiLCJzTWVhc3VyZSIsImN1c3RvbUFnZ3JlZ2F0ZXMiLCJnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucyIsImFUcmFuc0FnZ3JlZ2F0aW9ucyIsImdldFRyYW5zQWdncmVnYXRpb25zIiwiYUN1c3RBZ2dNZWFzdXJlIiwiJHRhcmdldCIsIk1lYXN1cmVzIiwiZmlsdGVyIiwiY3VzdEFnZyIsInF1YWxpZmllciIsInZhbHVlIiwibGVuZ3RoIiwiRHluYW1pY01lYXN1cmVzIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0T2JqZWN0IiwiTmFtZSIsImdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwic0RpbWVuc2lvbiIsIkRpbWVuc2lvbnMiLCJzb21lIiwib0FnZ3JlZ2F0ZSIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lciIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyIiwiZ2V0R3JvdXBhYmxlUHJvcGVydGllcyIsImFnZ3JlZ2F0YWJsZVByb3AiLCJQcm9wZXJ0eSIsImdyb3VwYWJsZVByb3AiLCJnZXRWaXN1YWxGaWx0ZXJzIiwiZW50aXR5VHlwZSIsInNQcm9wZXJ0eVBhdGgiLCJGaWx0ZXJGaWVsZHMiLCJ2aXN1YWxGaWx0ZXIiLCJvVmlzdWFsRmlsdGVyIiwidmFsdWVMaXN0Iiwib1ZGUGF0aCIsImFubm90YXRpb25RdWFsaWZpZXJTcGxpdCIsInNwbGl0IiwicXVhbGlmaWVyVkwiLCJwcm9wZXJ0eSIsInJlc29sdmVQYXRoIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJjb2xsZWN0aW9uUGF0aCIsIkNvbGxlY3Rpb25QYXRoIiwiY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0IiwiZ2V0RW50aXR5U2V0IiwibmFtZSIsInZhbHVlTGlzdFBhcmFtcyIsIlBhcmFtZXRlcnMiLCJvdXRQYXJhbWV0ZXIiLCJpblBhcmFtZXRlcnMiLCJhUGFyYW1ldGVycyIsInBhcmFtZXRlckVudGl0eVR5cGUiLCJnZXRQYXJhbWV0ZXJFbnRpdHlUeXBlIiwia2V5cyIsIm1hcCIsImtleSIsImdldENvbnRleHRQYXRoIiwiZm9yRWFjaCIsInBhcmFtZXRlciIsInB1c2giLCJsb2NhbERhdGFQcm9wZXJ0eSIsInZhbHVlTGlzdFByb3BlcnR5IiwidmFsdWVMaXN0UGFyYW0iLCJMb2NhbERhdGFQcm9wZXJ0eSIsIlZhbHVlTGlzdFByb3BlcnR5IiwiJFR5cGUiLCJiTm90RmlsdGVyYWJsZSIsImlzUHJvcGVydHlGaWx0ZXJhYmxlIiwib0luUGFyYW1ldGVyIiwibWFpbkVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMiLCJ2YWx1ZUxpc3RFbnRpdHlTZXRJbk1hcHBpbmdBbGxvd2VkRXhwcmVzc2lvbiIsIkVycm9yIiwicHZRdWFsaWZpZXIiLCJQcmVzZW50YXRpb25WYXJpYW50UXVhbGlmaWVyIiwic3ZRdWFsaWZpZXIiLCJTZWxlY3Rpb25WYXJpYW50UXVhbGlmaWVyIiwicHZBbm5vdGF0aW9uIiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJhbm5vdGF0aW9uIiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiLCJhVmlzdWFsaXphdGlvbnMiLCJWaXN1YWxpemF0aW9ucyIsImNvbnRleHRQYXRoIiwidmlzdWFsaXphdGlvbiIsInRlcm0iLCJfYmdldFZGQWdncmVnYXRpb24iLCJiRGltZW5zaW9uSGlkZGVuIiwiVUkiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwiYkRpbWVuc2lvbkhpZGRlbkZpbHRlciIsIkhpZGRlbkZpbHRlciIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImVudGl0eVR5cGVOYW1lIiwicHJlc2VudGF0aW9uQW5ub3RhdGlvbiIsInJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwidmFsdWVsaXN0UHJvcGVydHkiLCJiSXNSYW5nZSIsImJJc01haW5FbnRpdHlTZXRTaW5nbGVTZWxlY3Rpb24iLCJtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQiLCJyZXF1aXJlZCIsImdldElzUmVxdWlyZWQiLCJzdkFubm90YXRpb24iLCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsInJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGgiLCJyZXF1aXJlZFByb3BlcnRpZXMiLCJzRW50aXR5U2V0Iiwic05hdmlnYXRpb25Qcm9wZXJ0eSIsIm9FbnRpdHlTZXRDb252ZXJ0ZXJDb250ZXh0IiwiYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJDYXBhYmlsaXRpZXMiLCJOYXZpZ2F0aW9uUmVzdHJpY3Rpb25zIiwiUmVzdHJpY3RlZFByb3BlcnRpZXMiLCJvUmVzdHJpY3RlZFByb3BlcnR5IiwiZmluZCIsInJlc3RyaWN0ZWROYXZQcm9wIiwiTmF2aWdhdGlvblByb3BlcnR5IiwidHlwZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIlJlcXVpcmVkUHJvcGVydGllcyIsImVudGl0eVNldEFubm90YXRpb25zIiwiTW9kZWxIZWxwZXIiLCJpc1NpbmdsZXRvbiIsInJlcXVpcmVkUHJvcGVydHlQYXRocyIsIm9SZXF1aXJlUHJvcGVydHkiLCJjb25jYXQiLCJzaG93T3ZlcmxheUluaXRpYWxseSIsInNlbGVjdE9wdGlvbnMiLCJTZWxlY3RPcHRpb25zIiwib1NlbGVjdE9wdGlvbiIsIlByb3BlcnR5TmFtZSIsInBhcmFtZXRlck9wdGlvbnMiLCJvUGFyYW1ldGVyT3B0aW9uIiwic29ydCIsInNQYXRoIiwiaW5kZXhPZiIsInNEaW1lbnNpb25UeXBlIiwiQ2hhcnRUeXBlIiwicmVuZGVyTGluZUNoYXJ0IiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIkhpZ2giLCJJc3N1ZVR5cGUiLCJNQUxGT1JNRURfVklTVUFMRklMVEVSUyIsIkNIQVJUIiwiUFJFU0VOVEFUSU9OVkFSSUFOVCIsIlZBTFVFTElTVCIsIk1hbmlmZXN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BZ2dyZWdhdGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NhcGFiaWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NhcGFiaWxpdGllc19FZG1cIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJGaWVsZE1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgY2hlY2tGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0SXNSZXF1aXJlZCwgaXNQcm9wZXJ0eUZpbHRlcmFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9GaWx0ZXJUZW1wbGF0aW5nXCI7XG5cbmV4cG9ydCB0eXBlIFZpc3VhbEZpbHRlcnMgPSB7XG5cdGRpbWVuc2lvblBhdGg/OiBzdHJpbmc7XG5cdG1lYXN1cmVQYXRoPzogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0Y2hhcnRBbm5vdGF0aW9uPzogc3RyaW5nO1xuXHRwcmVzZW50YXRpb25Bbm5vdGF0aW9uPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogYm9vbGVhbjtcblx0b3V0UGFyYW1ldGVyPzogc3RyaW5nO1xuXHRpblBhcmFtZXRlcnM/OiBvYmplY3RbXTtcblx0dmFsdWVsaXN0UHJvcGVydHk/OiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xuXHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbj86IHN0cmluZztcblx0bXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHRzaG93T3ZlcmxheUluaXRpYWxseT86IGJvb2xlYW47XG5cdHJlbmRlckxpbmVDaGFydD86IGJvb2xlYW47XG5cdHJlcXVpcmVkUHJvcGVydGllcz86IG9iamVjdFtdO1xufTtcblxuLyoqXG4gKiBDaGVja3MgdGhhdCBtZWFzdXJlcyBhbmQgZGltZW5zaW9ucyBvZiB0aGUgdmlzdWFsIGZpbHRlciBjaGFydCBjYW4gYmUgYWdncmVnYXRlZCBhbmQgZ3JvdXBlZC5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSBjaGFydEFubm90YXRpb24gVGhlIGNoYXJ0IGFubm90YXRpb25cbiAqIEBwYXJhbSBhZ2dyZWdhdGlvbkhlbHBlciBUaGUgYWdncmVnYXRpb24gaGVscGVyXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG1lYXN1cmUgY2FuIGJlIGdyb3VwZWQgYW5kIGFnZ3JlZ2F0ZWRcbiAqL1xuY29uc3QgX2NoZWNrVkZBZ2dyZWdhdGlvbiA9IGZ1bmN0aW9uIChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0Y2hhcnRBbm5vdGF0aW9uOiBhbnksXG5cdGFnZ3JlZ2F0aW9uSGVscGVyOiBhbnlcbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRsZXQgc01lYXN1cmVQYXRoLCBiR3JvdXBhYmxlLCBiQWdncmVnYXRhYmxlO1xuXHRsZXQgc01lYXN1cmU6IGFueTtcblx0Y29uc3QgY3VzdG9tQWdncmVnYXRlcyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zKCk7XG5cdGxldCBhVHJhbnNBZ2dyZWdhdGlvbnMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRUcmFuc0FnZ3JlZ2F0aW9ucygpO1xuXHRsZXQgYUN1c3RBZ2dNZWFzdXJlID0gW10gYXMgQXJyYXk8Q3VzdG9tQWdncmVnYXRlPjtcblx0Ly8gaWYgdGhlIGNoYXJ0IGRlZmluaXRpb24gaGFzIGN1c3RvbSBhZ2dyZWdhdGVzLCB0aGVuIGNvbnNpZGVyIHRoZW0sIGVsc2UgZmFsbCBiYWNrIHRvIHRoZSBtZWFzdXJlcyB3aXRoIHRyYW5zZm9ybWF0aW9uIGFnZ3JlZ2F0ZXNcblx0aWYgKGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uTWVhc3VyZXMpIHtcblx0XHRhQ3VzdEFnZ01lYXN1cmUgPSBjdXN0b21BZ2dyZWdhdGVzLmZpbHRlcihmdW5jdGlvbiAoY3VzdEFnZzogQ3VzdG9tQWdncmVnYXRlKSB7XG5cdFx0XHRyZXR1cm4gY3VzdEFnZy5xdWFsaWZpZXIgPT09IGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uTWVhc3VyZXM/LlswXT8udmFsdWU7XG5cdFx0fSk7XG5cdFx0c01lYXN1cmUgPSBhQ3VzdEFnZ01lYXN1cmUubGVuZ3RoID4gMCA/IGFDdXN0QWdnTWVhc3VyZVswXS5xdWFsaWZpZXIgOiBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/Lk1lYXN1cmVzPy5bMF0/LnZhbHVlO1xuXHR9XG5cdC8vIGNvbnNpZGVyIGR5bmFtaWMgbWVhc3VyZXMgb25seSBpZiB0aGVyZSBhcmUgbm8gbWVhc3VyZXMgd2l0aCBjdXN0b20gYWdncmVnYXRlc1xuXHRpZiAoIWFDdXN0QWdnTWVhc3VyZVswXSAmJiBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/LkR5bmFtaWNNZWFzdXJlcykge1xuXHRcdHNNZWFzdXJlID0gY29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldENvbnZlcnRlckNvbnRleHRGb3IoY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKGNoYXJ0QW5ub3RhdGlvbi4kdGFyZ2V0LkR5bmFtaWNNZWFzdXJlcz8uWzBdPy52YWx1ZSkpXG5cdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldE9iamVjdC5OYW1lO1xuXHRcdGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzKFwiQWdncmVnYXRlZFByb3BlcnR5XCIpO1xuXHR9IGVsc2Uge1xuXHRcdGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzKFwiQWdncmVnYXRlZFByb3BlcnRpZXNcIilbMF07XG5cdH1cblxuXHRjb25zdCBzRGltZW5zaW9uOiBzdHJpbmcgPSBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/LkRpbWVuc2lvbnNbMF0/LnZhbHVlO1xuXG5cdGlmIChcblx0XHRjdXN0b21BZ2dyZWdhdGVzLnNvbWUoZnVuY3Rpb24gKGN1c3RBZ2c6IEN1c3RvbUFnZ3JlZ2F0ZSkge1xuXHRcdFx0cmV0dXJuIGN1c3RBZ2cucXVhbGlmaWVyID09PSBzTWVhc3VyZTtcblx0XHR9KVxuXHQpIHtcblx0XHRzTWVhc3VyZVBhdGggPSBzTWVhc3VyZTtcblx0fSBlbHNlIGlmIChhVHJhbnNBZ2dyZWdhdGlvbnMgJiYgYVRyYW5zQWdncmVnYXRpb25zWzBdKSB7XG5cdFx0YVRyYW5zQWdncmVnYXRpb25zLnNvbWUoZnVuY3Rpb24gKG9BZ2dyZWdhdGU6IGFueSkge1xuXHRcdFx0aWYgKG9BZ2dyZWdhdGUuTmFtZSA9PT0gc01lYXN1cmUpIHtcblx0XHRcdFx0c01lYXN1cmVQYXRoID0gb0FnZ3JlZ2F0ZT8uQWdncmVnYXRhYmxlUHJvcGVydHkudmFsdWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0Y29uc3QgYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lciA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMoKTtcblx0Y29uc3QgYUdyb3VwYWJsZVByb3BzRnJvbUNvbnRhaW5lciA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEdyb3VwYWJsZVByb3BlcnRpZXMoKTtcblx0aWYgKGFBZ2dyZWdhdGFibGVQcm9wc0Zyb21Db250YWluZXIgJiYgYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lci5sZW5ndGgpIHtcblx0XHRmb3IgKGNvbnN0IGFnZ3JlZ2F0YWJsZVByb3Agb2YgYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lcikge1xuXHRcdFx0aWYgKGFnZ3JlZ2F0YWJsZVByb3A/LlByb3BlcnR5Py52YWx1ZSA9PT0gc01lYXN1cmVQYXRoKSB7XG5cdFx0XHRcdGJBZ2dyZWdhdGFibGUgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRpZiAoYUdyb3VwYWJsZVByb3BzRnJvbUNvbnRhaW5lciAmJiBhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyLmxlbmd0aCkge1xuXHRcdGZvciAoY29uc3QgZ3JvdXBhYmxlUHJvcCBvZiBhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyKSB7XG5cdFx0XHRpZiAoZ3JvdXBhYmxlUHJvcD8udmFsdWUgPT09IHNEaW1lbnNpb24pIHtcblx0XHRcdFx0Ykdyb3VwYWJsZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBiQWdncmVnYXRhYmxlICYmIGJHcm91cGFibGU7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB0byBnZXQgdGhlIHZpc3VhbCBmaWx0ZXJzIG9iamVjdCBmb3IgYSBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjaGFydCBhbm5vdGF0aW9uXG4gKiBAcGFyYW0gc1Byb3BlcnR5UGF0aCBUaGUgYWdncmVnYXRpb24gaGVscGVyXG4gKiBAcGFyYW0gRmlsdGVyRmllbGRzIFRoZSBhZ2dyZWdhdGlvbiBoZWxwZXJcbiAqIEByZXR1cm5zIHsgVmlzdWFsRmlsdGVycyB8IHVuZGVmaW5lZH0gVGhlIHZpc3VhbCBmaWx0ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXN1YWxGaWx0ZXJzKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzUHJvcGVydHlQYXRoOiBzdHJpbmcsXG5cdEZpbHRlckZpZWxkczogUmVjb3JkPHN0cmluZywgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24+XG4pOiBWaXN1YWxGaWx0ZXJzIHwgdW5kZWZpbmVkIHtcblx0bGV0IHZpc3VhbEZpbHRlcjogVmlzdWFsRmlsdGVycyB8IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1Zpc3VhbEZpbHRlcjogRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBGaWx0ZXJGaWVsZHNbc1Byb3BlcnR5UGF0aF07XG5cdGlmIChvVmlzdWFsRmlsdGVyPy52aXN1YWxGaWx0ZXI/LnZhbHVlTGlzdCkge1xuXHRcdGNvbnN0IG9WRlBhdGggPSBvVmlzdWFsRmlsdGVyPy52aXN1YWxGaWx0ZXI/LnZhbHVlTGlzdDtcblx0XHRjb25zdCBhbm5vdGF0aW9uUXVhbGlmaWVyU3BsaXQgPSBvVkZQYXRoLnNwbGl0KFwiI1wiKTtcblx0XHRjb25zdCBxdWFsaWZpZXJWTCA9IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdC5sZW5ndGggPiAxID8gYFZhbHVlTGlzdCMke2Fubm90YXRpb25RdWFsaWZpZXJTcGxpdFsxXX1gIDogYW5ub3RhdGlvblF1YWxpZmllclNwbGl0WzBdO1xuXHRcdGNvbnN0IHByb3BlcnR5ID0gZW50aXR5VHlwZS5yZXNvbHZlUGF0aChzUHJvcGVydHlQYXRoKTtcblx0XHRjb25zdCB2YWx1ZUxpc3Q6IGFueSA9IHByb3BlcnR5Py5hbm5vdGF0aW9ucz8uQ29tbW9uW3F1YWxpZmllclZMXTtcblx0XHRpZiAodmFsdWVMaXN0KSB7XG5cdFx0XHRjb25zdCBjb2xsZWN0aW9uUGF0aCA9IHZhbHVlTGlzdD8uQ29sbGVjdGlvblBhdGg7XG5cdFx0XHRjb25zdCBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXG5cdFx0XHRcdGAvJHtjb2xsZWN0aW9uUGF0aCB8fCBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpPy5uYW1lfWBcblx0XHRcdCk7XG5cdFx0XHRjb25zdCB2YWx1ZUxpc3RQYXJhbXMgPSB2YWx1ZUxpc3Q/LlBhcmFtZXRlcnM7XG5cdFx0XHRsZXQgb3V0UGFyYW1ldGVyOiBhbnk7XG5cdFx0XHRjb25zdCBpblBhcmFtZXRlcnM6IEFycmF5PG9iamVjdD4gPSBbXTtcblx0XHRcdGxldCBhUGFyYW1ldGVyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRcdFx0Y29uc3QgcGFyYW1ldGVyRW50aXR5VHlwZSA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRQYXJhbWV0ZXJFbnRpdHlUeXBlKCk7XG5cdFx0XHRhUGFyYW1ldGVycyA9IHBhcmFtZXRlckVudGl0eVR5cGVcblx0XHRcdFx0PyBwYXJhbWV0ZXJFbnRpdHlUeXBlLmtleXMubWFwKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBrZXkubmFtZTtcblx0XHRcdFx0ICB9KVxuXHRcdFx0XHQ6IFtdO1xuXHRcdFx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSA9PT0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCkpIHtcblx0XHRcdFx0YVBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAocGFyYW1ldGVyOiBhbnkpIHtcblx0XHRcdFx0XHRpblBhcmFtZXRlcnMucHVzaCh7XG5cdFx0XHRcdFx0XHRsb2NhbERhdGFQcm9wZXJ0eTogcGFyYW1ldGVyLFxuXHRcdFx0XHRcdFx0dmFsdWVMaXN0UHJvcGVydHk6IHBhcmFtZXRlclxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGlmICh2YWx1ZUxpc3RQYXJhbXMpIHtcblx0XHRcdFx0Zm9yIChjb25zdCB2YWx1ZUxpc3RQYXJhbSBvZiB2YWx1ZUxpc3RQYXJhbXMpIHtcblx0XHRcdFx0XHRjb25zdCBsb2NhbERhdGFQcm9wZXJ0eSA9IHZhbHVlTGlzdFBhcmFtLkxvY2FsRGF0YVByb3BlcnR5Py52YWx1ZTtcblx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3RQcm9wZXJ0eSA9IHZhbHVlTGlzdFBhcmFtLlZhbHVlTGlzdFByb3BlcnR5O1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdCh2YWx1ZUxpc3RQYXJhbT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluT3V0XCIgfHxcblx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0UGFyYW0/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RQYXJhbWV0ZXJPdXRcIikgJiZcblx0XHRcdFx0XHRcdHNQcm9wZXJ0eVBhdGggPT09IGxvY2FsRGF0YVByb3BlcnR5XG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvdXRQYXJhbWV0ZXIgPSB2YWx1ZUxpc3RQYXJhbTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0KHZhbHVlTGlzdFBhcmFtPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0UGFyYW1ldGVySW5PdXRcIiB8fFxuXHRcdFx0XHRcdFx0XHR2YWx1ZUxpc3RQYXJhbT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluXCIpICYmXG5cdFx0XHRcdFx0XHRzUHJvcGVydHlQYXRoICE9PSBsb2NhbERhdGFQcm9wZXJ0eVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgYk5vdEZpbHRlcmFibGUgPSBpc1Byb3BlcnR5RmlsdGVyYWJsZShjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQsIHZhbHVlTGlzdFByb3BlcnR5KTtcblx0XHRcdFx0XHRcdGlmICghYk5vdEZpbHRlcmFibGUpIHtcblx0XHRcdFx0XHRcdFx0aW5QYXJhbWV0ZXJzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdGxvY2FsRGF0YVByb3BlcnR5OiBsb2NhbERhdGFQcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZUxpc3RQcm9wZXJ0eTogdmFsdWVMaXN0UHJvcGVydHlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoaW5QYXJhbWV0ZXJzICYmIGluUGFyYW1ldGVycy5sZW5ndGgpIHtcblx0XHRcdFx0aW5QYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24gKG9JblBhcmFtZXRlcjogYW55KSB7XG5cdFx0XHRcdFx0Y29uc3QgbWFpbkVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0XHRjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgob0luUGFyYW1ldGVyPy5sb2NhbERhdGFQcm9wZXJ0eSkpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlVmFsdWVcIl1cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGNvbnN0IHZhbHVlTGlzdEVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0XHRjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgob0luUGFyYW1ldGVyPy52YWx1ZUxpc3RQcm9wZXJ0eSlcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlVmFsdWVcIl1cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmICh2YWx1ZUxpc3RFbnRpdHlTZXRJbk1hcHBpbmdBbGxvd2VkRXhwcmVzc2lvbiA9PT0gXCJ0cnVlXCIgJiYgbWFpbkVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID09PSBcImZhbHNlXCIpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgRmlsdGVyUmVzdHJpY3Rpb25zIG9mICR7c1Byb3BlcnR5UGF0aH0gaW4gTWFpbkVudGl0eVNldCBhbmQgVmFsdWVMaXN0RW50aXR5U2V0IGFyZSBkaWZmZXJlbnRgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcHZRdWFsaWZpZXIgPSB2YWx1ZUxpc3Q/LlByZXNlbnRhdGlvblZhcmlhbnRRdWFsaWZpZXI7XG5cdFx0XHRjb25zdCBzdlF1YWxpZmllciA9IHZhbHVlTGlzdD8uU2VsZWN0aW9uVmFyaWFudFF1YWxpZmllcjtcblx0XHRcdGNvbnN0IHB2QW5ub3RhdGlvbjogYW55ID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihcblx0XHRcdFx0YEBVSS5QcmVzZW50YXRpb25WYXJpYW50IyR7cHZRdWFsaWZpZXJ9YFxuXHRcdFx0KT8uYW5ub3RhdGlvbjtcblx0XHRcdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dCk7XG5cdFx0XHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGlmIChwdkFubm90YXRpb24pIHtcblx0XHRcdFx0Y29uc3QgYVZpc3VhbGl6YXRpb25zID0gcHZBbm5vdGF0aW9uPy5WaXN1YWxpemF0aW9ucztcblx0XHRcdFx0Y29uc3QgY29udGV4dFBhdGggPSBgLyR7dmFsdWVMaXN0Py5Db2xsZWN0aW9uUGF0aH1gIHx8IGAvJHtjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQ/LmdldEVudGl0eVNldCgpPy5uYW1lfWA7XG5cdFx0XHRcdHZpc3VhbEZpbHRlciA9IHt9O1xuXHRcdFx0XHR2aXN1YWxGaWx0ZXIuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aDtcblx0XHRcdFx0bGV0IGNoYXJ0QW5ub3RhdGlvbjtcblx0XHRcdFx0Zm9yIChjb25zdCB2aXN1YWxpemF0aW9uIG9mIGFWaXN1YWxpemF0aW9ucykge1xuXHRcdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIikge1xuXHRcdFx0XHRcdFx0Y2hhcnRBbm5vdGF0aW9uID0gdmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0Y29uc3QgX2JnZXRWRkFnZ3JlZ2F0aW9uOiBib29sZWFuIHwgdW5kZWZpbmVkID0gX2NoZWNrVkZBZ2dyZWdhdGlvbihcblx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGNoYXJ0QW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uSGVscGVyXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoIV9iZ2V0VkZBZ2dyZWdhdGlvbikge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBiRGltZW5zaW9uSGlkZGVuOiBib29sZWFuID0gY2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpO1xuXHRcdFx0XHRcdGNvbnN0IGJEaW1lbnNpb25IaWRkZW5GaWx0ZXI6IGJvb2xlYW4gPVxuXHRcdFx0XHRcdFx0Y2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpO1xuXHRcdFx0XHRcdGlmIChiRGltZW5zaW9uSGlkZGVuID09PSB0cnVlIHx8IGJEaW1lbnNpb25IaWRkZW5GaWx0ZXIgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFWaXN1YWxpemF0aW9ucyAmJiBhVmlzdWFsaXphdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuY2hhcnRBbm5vdGF0aW9uID0gY2hhcnRBbm5vdGF0aW9uXG5cdFx0XHRcdFx0XHRcdD8gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdFx0XHRcdFx0YCR7Y2hhcnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX0vJEFubm90YXRpb25QYXRoL2Bcblx0XHRcdFx0XHRcdFx0ICApXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0Ly8gVGhpcyBuZWVkcyB0byBiZSBkb25lIHRvIGF2b2lkIHJlcGV0aXRpdmUgZW50aXR5IHR5cGUgaW4gY2FzZSBvZiBub24tcGFyYW1ldGVyaXplZCBlbnRpdHkgc2V0IGUuZyAvU2FsZXNPcmRlck1hbmFnZS9jb20uY19zYWxlc29yZGVybWFuYWdlX3NkX2FnZ3JlZ2F0ZS5TYWxlc09yZGVyTWFuYWdlXG5cdFx0XHRcdFx0XHRjb25zdCBlbnRpdHlUeXBlTmFtZSA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkubmFtZTtcblx0XHRcdFx0XHRcdGxldCBwcmVzZW50YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVsYXRpdmVBbm5vdGF0aW9uUGF0aCA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dD8uZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0YCR7cHZBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX0vYCxcblx0XHRcdFx0XHRcdFx0Y29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGlmIChwYXJhbWV0ZXJFbnRpdHlUeXBlKSB7XG5cdFx0XHRcdFx0XHRcdHByZXNlbnRhdGlvbkFubm90YXRpb24gPSBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSArIFwiL1wiICsgcmVsYXRpdmVBbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHByZXNlbnRhdGlvbkFubm90YXRpb24gPSBcIi9cIiArIGVudGl0eVR5cGVOYW1lICsgXCIvXCIgKyByZWxhdGl2ZUFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnByZXNlbnRhdGlvbkFubm90YXRpb24gPSBwdkFubm90YXRpb24gPyBwcmVzZW50YXRpb25Bbm5vdGF0aW9uIDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLm91dFBhcmFtZXRlciA9IG91dFBhcmFtZXRlcj8uTG9jYWxEYXRhUHJvcGVydHk/LnZhbHVlO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLmluUGFyYW1ldGVycyA9IGluUGFyYW1ldGVycztcblx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci52YWx1ZWxpc3RQcm9wZXJ0eSA9IG91dFBhcmFtZXRlcj8uVmFsdWVMaXN0UHJvcGVydHk7XG5cdFx0XHRcdFx0XHRjb25zdCBiSXNSYW5nZSA9IGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyhcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChzUHJvcGVydHlQYXRoKSlcblx0XHRcdFx0XHRcdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdFx0XHRcdFx0XHRbXCJTaW5nbGVSYW5nZVwiLCBcIk11bHRpUmFuZ2VcIl1cblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdGlmIChjb21waWxlRXhwcmVzc2lvbihiSXNSYW5nZSkgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlJhbmdlIEFsbG93ZWRFeHByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpc3VhbCBmaWx0ZXJzXCIpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjb25zdCBiSXNNYWluRW50aXR5U2V0U2luZ2xlU2VsZWN0aW9uOiBhbnkgPSBjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgoc1Byb3BlcnR5UGF0aCkpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlVmFsdWVcIl1cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIubXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkID0gY29tcGlsZUV4cHJlc3Npb24oIWJJc01haW5FbnRpdHlTZXRTaW5nbGVTZWxlY3Rpb24udmFsdWUpIGFzIGFueTtcblx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZXF1aXJlZCA9IGdldElzUmVxdWlyZWQoY29udmVydGVyQ29udGV4dCwgc1Byb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0XHRsZXQgc3ZBbm5vdGF0aW9uOiBhbnk7XG5cdFx0XHRcdFx0XHRpZiAoc3ZRdWFsaWZpZXIpIHtcblx0XHRcdFx0XHRcdFx0c3ZBbm5vdGF0aW9uID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihcblx0XHRcdFx0XHRcdFx0XHRgQFVJLlNlbGVjdGlvblZhcmlhbnQjJHtzdlF1YWxpZmllcn1gXG5cdFx0XHRcdFx0XHRcdCk/LmFubm90YXRpb247XG5cdFx0XHRcdFx0XHRcdGxldCBzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbjtcblx0XHRcdFx0XHRcdFx0Y29uc3QgcmVsYXRpdmVTZWxlY3Rpb25WYXJpYW50UGF0aCA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dD8uZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRgJHtzdkFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lfS9gLFxuXHRcdFx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0aWYgKHBhcmFtZXRlckVudGl0eVR5cGUpIHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiA9XG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSArIFwiL1wiICsgcmVsYXRpdmVTZWxlY3Rpb25WYXJpYW50UGF0aDtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiA9IFwiL1wiICsgZW50aXR5VHlwZU5hbWUgKyBcIi9cIiArIHJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGg7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gc3ZBbm5vdGF0aW9uID8gc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgcmVxdWlyZWRQcm9wZXJ0aWVzID0gW107XG5cdFx0XHRcdFx0XHRpZiAocGFyYW1ldGVyRW50aXR5VHlwZSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzRW50aXR5U2V0ID0gY29sbGVjdGlvblBhdGguc3BsaXQoXCIvXCIpWzBdO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzTmF2aWdhdGlvblByb3BlcnR5ID0gY29sbGVjdGlvblBhdGguc3BsaXQoXCIvXCIpWzFdO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBvRW50aXR5U2V0Q29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihgLyR7c0VudGl0eVNldH1gKTtcblx0XHRcdFx0XHRcdFx0Y29uc3QgYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzID1cblx0XHRcdFx0XHRcdFx0XHRvRW50aXR5U2V0Q29udmVydGVyQ29udGV4dD8uZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnN0YXJ0aW5nRW50aXR5U2V0Py5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0XHRcdFx0XHQ/Lk5hdmlnYXRpb25SZXN0cmljdGlvbnM/LlJlc3RyaWN0ZWRQcm9wZXJ0aWVzO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBvUmVzdHJpY3RlZFByb3BlcnR5ID0gYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzPy5maW5kKFxuXHRcdFx0XHRcdFx0XHRcdChyZXN0cmljdGVkTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlcykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eT8udHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eS52YWx1ZSA9PT0gc05hdmlnYXRpb25Qcm9wZXJ0eTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydGllcyA9IG9SZXN0cmljdGVkUHJvcGVydHk/LkZpbHRlclJlc3RyaWN0aW9ucz8uUmVxdWlyZWRQcm9wZXJ0aWVzIGFzIGFueVtdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgZW50aXR5U2V0QW5ub3RhdGlvbnMgPSBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk/LmFubm90YXRpb25zO1xuXHRcdFx0XHRcdFx0XHRpZiAoIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnRpZXMgPSAoZW50aXR5U2V0QW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcyBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpXG5cdFx0XHRcdFx0XHRcdFx0XHQ/LkZpbHRlclJlc3RyaWN0aW9ucz8uUmVxdWlyZWRQcm9wZXJ0aWVzIGFzIGFueVtdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgcmVxdWlyZWRQcm9wZXJ0eVBhdGhzOiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0XHRcdFx0XHRpZiAocmVxdWlyZWRQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0cmVxdWlyZWRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKG9SZXF1aXJlUHJvcGVydHk6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydHlQYXRocy5wdXNoKG9SZXF1aXJlUHJvcGVydHkudmFsdWUpO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydHlQYXRocyA9IHJlcXVpcmVkUHJvcGVydHlQYXRocy5jb25jYXQoYVBhcmFtZXRlcnMpO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnJlcXVpcmVkUHJvcGVydGllcyA9IHJlcXVpcmVkUHJvcGVydHlQYXRocztcblx0XHRcdFx0XHRcdGlmICh2aXN1YWxGaWx0ZXIucmVxdWlyZWRQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCF2aXN1YWxGaWx0ZXIuaW5QYXJhbWV0ZXJzIHx8ICF2aXN1YWxGaWx0ZXIuaW5QYXJhbWV0ZXJzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICghdmlzdWFsRmlsdGVyLnNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuc2hvd092ZXJsYXlJbml0aWFsbHkgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgc2VsZWN0T3B0aW9ucyA9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN2QW5ub3RhdGlvbj8uU2VsZWN0T3B0aW9ucz8ubWFwKChvU2VsZWN0T3B0aW9uOiBhbnkpID0+IG9TZWxlY3RPcHRpb24uUHJvcGVydHlOYW1lLnZhbHVlKSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHBhcmFtZXRlck9wdGlvbnMgPVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdkFubm90YXRpb24/LlBhcmFtZXRlcnM/Lm1hcCgob1BhcmFtZXRlck9wdGlvbjogYW55KSA9PiBvUGFyYW1ldGVyT3B0aW9uLlByb3BlcnR5TmFtZS52YWx1ZSkgfHwgW107XG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RPcHRpb25zID0gc2VsZWN0T3B0aW9ucy5jb25jYXQocGFyYW1ldGVyT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnR5UGF0aHMgPSByZXF1aXJlZFByb3BlcnR5UGF0aHMuc29ydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0T3B0aW9ucyA9IHNlbGVjdE9wdGlvbnMuc29ydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNob3dPdmVybGF5SW5pdGlhbGx5ID0gcmVxdWlyZWRQcm9wZXJ0eVBhdGhzLnNvbWUoZnVuY3Rpb24gKHNQYXRoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzZWxlY3RPcHRpb25zLmluZGV4T2Yoc1BhdGgpID09PSAtMTtcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuc2hvd092ZXJsYXlJbml0aWFsbHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNob3dPdmVybGF5SW5pdGlhbGx5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25zdCBzRGltZW5zaW9uVHlwZSA9IGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uRGltZW5zaW9uc1swXT8uJHRhcmdldD8udHlwZTtcblx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0IShcblx0XHRcdFx0XHRcdFx0XHRzRGltZW5zaW9uVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdHNEaW1lbnNpb25UeXBlID09PSBcIkVkbS5EYXRlXCIgfHxcblx0XHRcdFx0XHRcdFx0XHRzRGltZW5zaW9uVHlwZSA9PT0gXCJFZG0uVGltZU9mRGF5XCJcblx0XHRcdFx0XHRcdFx0KSAmJlxuXHRcdFx0XHRcdFx0XHRjaGFydEFubm90YXRpb24uJHRhcmdldC5DaGFydFR5cGUgPT09IFwiVUkuQ2hhcnRUeXBlL0xpbmVcIlxuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZW5kZXJMaW5lQ2hhcnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZW5kZXJMaW5lQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0XHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuQ0hBUlQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5LkhpZ2gsIElzc3VlVHlwZS5NQUxGT1JNRURfVklTVUFMRklMVEVSUy5QUkVTRU5UQVRJT05WQVJJQU5UKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5LkhpZ2gsIElzc3VlVHlwZS5NQUxGT1JNRURfVklTVUFMRklMVEVSUy5WQUxVRUxJU1QpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldERpYWdub3N0aWNzKCkuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5NYW5pZmVzdCwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuVkFMVUVMSVNUKTtcblx0fVxuXHRyZXR1cm4gdmlzdWFsRmlsdGVyO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0VBZ0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxtQkFBbUIsR0FBRyxVQUMzQkMsZ0JBQWtDLEVBQ2xDQyxlQUFvQixFQUNwQkMsaUJBQXNCLEVBQ0E7SUFBQTtJQUN0QixJQUFJQyxZQUFZLEVBQUVDLFVBQVUsRUFBRUMsYUFBYTtJQUMzQyxJQUFJQyxRQUFhO0lBQ2pCLE1BQU1DLGdCQUFnQixHQUFHTCxpQkFBaUIsQ0FBQ00sNkJBQTZCLEVBQUU7SUFDMUUsSUFBSUMsa0JBQWtCLEdBQUdQLGlCQUFpQixDQUFDUSxvQkFBb0IsRUFBRTtJQUNqRSxJQUFJQyxlQUFlLEdBQUcsRUFBNEI7SUFDbEQ7SUFDQSxJQUFJVixlQUFlLGFBQWZBLGVBQWUsd0NBQWZBLGVBQWUsQ0FBRVcsT0FBTyxrREFBeEIsc0JBQTBCQyxRQUFRLEVBQUU7TUFBQTtNQUN2Q0YsZUFBZSxHQUFHSixn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
|