@sapui5/sap.fe.core 1.131.0 → 1.133.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/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +17 -23
- package/src/sap/fe/core/AppComponent.js +74 -36
- package/src/sap/fe/core/AppComponent.ts +70 -3
- package/src/sap/fe/core/AppStateHandler.js +44 -13
- package/src/sap/fe/core/AppStateHandler.ts +38 -0
- package/src/sap/fe/core/BaseController.js +3 -3
- package/src/sap/fe/core/CommonUtils.js +30 -37
- package/src/sap/fe/core/CommonUtils.ts +15 -13
- package/src/sap/fe/core/ExtensionAPI.js +29 -34
- package/src/sap/fe/core/ExtensionAPI.ts +3 -0
- package/src/sap/fe/core/InsightsFormattersExtension.js +2 -2
- package/src/sap/fe/core/PageController.js +40 -31
- package/src/sap/fe/core/PageController.ts +14 -1
- package/src/sap/fe/core/ResourceModel.js +4 -4
- package/src/sap/fe/core/ReuseComponent.js +27 -13
- package/src/sap/fe/core/ReuseComponent.ts +18 -0
- package/src/sap/fe/core/TemplateComponent.js +102 -89
- package/src/sap/fe/core/TemplateComponent.ts +20 -1
- package/src/sap/fe/core/TemplateModel.js +6 -7
- package/src/sap/fe/core/UIProvider.js +1 -1
- package/src/sap/fe/core/UIProvider.ts +2 -9
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +63 -48
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +56 -27
- package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.js +9 -0
- package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.ts +48 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +4 -6
- package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +2 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +32 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +30 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +9 -13
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +2 -1
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +19 -25
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +3 -4
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +20 -24
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +10 -15
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +3 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.js +296 -246
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +253 -175
- package/src/sap/fe/core/controllerextensions/Feedback.js +10 -11
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +6 -6
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +27 -36
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +57 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +42 -50
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +12 -19
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +23 -17
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -7
- package/src/sap/fe/core/controllerextensions/PageReady.js +15 -21
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
- package/src/sap/fe/core/controllerextensions/Recommendations.js +23 -36
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +1 -1
- package/src/sap/fe/core/controllerextensions/Routing.js +3 -3
- package/src/sap/fe/core/controllerextensions/Share.js +19 -28
- package/src/sap/fe/core/controllerextensions/SideEffects.js +68 -32
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +58 -6
- package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -5
- package/src/sap/fe/core/controllerextensions/ViewState.js +23 -24
- package/src/sap/fe/core/controllerextensions/ViewState.ts +6 -1
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +13 -10
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +13 -8
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +15 -16
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +3 -4
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.js +288 -0
- package/src/sap/fe/core/controllerextensions/dialog/{OperationsDialog.block.tsx → OperationsDialog.tsx} +27 -29
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +41 -5
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +61 -8
- package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.js +404 -0
- package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.ts +502 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +35 -43
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +34 -14
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +37 -27
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +27 -15
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +51 -39
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +75 -34
- package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +4 -4
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +88 -427
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +82 -620
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +9 -5
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +6 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +116 -79
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +87 -13
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +4 -6
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +5 -7
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +6 -7
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +4 -4
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +58 -20
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -4
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.js +9 -12
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/ComponentLoader.js +20 -21
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +250 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/{DraftDataLossDialog.block.tsx → DraftDataLossDialog.tsx} +31 -19
- package/src/sap/fe/core/controls/FormElementWrapper.js +19 -21
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +114 -0
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +115 -0
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +454 -0
- package/src/sap/fe/core/controls/Recommendations/{ConfirmRecommendationDialog.block.tsx → ConfirmRecommendationDialog.tsx} +5 -9
- package/src/sap/fe/core/converters/ConverterContext.js +17 -18
- package/src/sap/fe/core/converters/ConverterContext.ts +10 -15
- package/src/sap/fe/core/converters/ManifestSettings.js +29 -28
- package/src/sap/fe/core/converters/ManifestSettings.ts +22 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +26 -48
- package/src/sap/fe/core/converters/MetaModelConverter.js +21 -28
- package/src/sap/fe/core/converters/MetaModelConverter.ts +2 -0
- package/src/sap/fe/core/converters/TemplateConverter.js +17 -21
- package/src/sap/fe/core/converters/TemplateConverter.ts +5 -3
- package/src/sap/fe/core/converters/annotations/DataField.js +69 -66
- package/src/sap/fe/core/converters/annotations/DataField.ts +30 -0
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +20 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +178 -43
- package/src/sap/fe/core/converters/controls/Common/Action.ts +202 -19
- package/src/sap/fe/core/converters/controls/Common/Chart.js +47 -22
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +50 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +16 -23
- package/src/sap/fe/core/converters/controls/Common/Form.js +25 -38
- package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -0
- package/src/sap/fe/core/converters/controls/Common/KPI.js +32 -47
- package/src/sap/fe/core/converters/controls/Common/Table.js +464 -506
- package/src/sap/fe/core/converters/controls/Common/Table.ts +335 -219
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +17 -28
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +1 -2
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +66 -90
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +10 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +49 -73
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +6 -10
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +35 -50
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +110 -60
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +137 -41
- package/src/sap/fe/core/converters/helpers/Aggregation.js +19 -30
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +5 -5
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +11 -14
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +14 -21
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +4 -6
- package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -7
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -3
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +18 -52
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -34
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +103 -74
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +111 -39
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +28 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -9
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +61 -52
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +60 -21
- package/src/sap/fe/core/definition/FEDefinition.js +104 -44
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +37 -7
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +42 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -5
- package/src/sap/fe/core/formatters/FiscalFormat.js +24 -24
- package/src/sap/fe/core/formatters/ValueFormatter.js +4 -23
- package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -18
- package/src/sap/fe/core/fpm/Component.js +12 -14
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +20 -15
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +22 -13
- package/src/sap/fe/core/helpers/BindingHelper.js +3 -3
- package/src/sap/fe/core/helpers/BindingHelper.ts +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +55 -62
- package/src/sap/fe/core/helpers/DeleteHelper.ts +48 -51
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +4 -7
- package/src/sap/fe/core/helpers/FPMHelper.js +4 -7
- package/src/sap/fe/core/helpers/HTTP503Handler.js +2 -1
- package/src/sap/fe/core/helpers/HTTP503Handler.ts +4 -3
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -5
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +6 -6
- package/src/sap/fe/core/helpers/LoaderUtils.js +8 -3
- package/src/sap/fe/core/helpers/LoaderUtils.ts +15 -4
- package/src/sap/fe/core/helpers/MessageStrip.js +3 -4
- package/src/sap/fe/core/helpers/MetaModelFunction.js +26 -40
- package/src/sap/fe/core/helpers/MetaPath.js +9 -7
- package/src/sap/fe/core/helpers/MetaPath.ts +9 -3
- package/src/sap/fe/core/helpers/ModelHelper.js +33 -57
- package/src/sap/fe/core/helpers/ModelHelper.ts +3 -3
- package/src/sap/fe/core/helpers/PasteHelper.js +11 -19
- package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -1
- package/src/sap/fe/core/helpers/RecommendationHelper.js +3 -4
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +3 -5
- package/src/sap/fe/core/helpers/SizeHelper.js +3 -5
- package/src/sap/fe/core/helpers/StableIdHelper.js +13 -11
- package/src/sap/fe/core/helpers/StableIdHelper.ts +5 -1
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +28 -38
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.js +19 -40
- package/src/sap/fe/core/helpers/TitleHelper.ts +5 -25
- package/src/sap/fe/core/helpers/TypeGuards.js +25 -18
- package/src/sap/fe/core/helpers/TypeGuards.ts +7 -0
- package/src/sap/fe/core/helpers/WebSocket.js +4 -4
- package/src/sap/fe/core/library.js +8 -7
- package/src/sap/fe/core/library.ts +2 -0
- package/src/sap/fe/core/manifestMerger/AddNewPage.js +9 -11
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +14 -25
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +15 -17
- package/src/sap/fe/core/messagebundle.properties +21 -0
- package/src/sap/fe/core/messagebundle_ar.properties +5 -1
- package/src/sap/fe/core/messagebundle_bg.properties +4 -0
- package/src/sap/fe/core/messagebundle_ca.properties +4 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +4 -0
- package/src/sap/fe/core/messagebundle_cs.properties +8 -4
- package/src/sap/fe/core/messagebundle_cy.properties +4 -0
- package/src/sap/fe/core/messagebundle_da.properties +4 -0
- package/src/sap/fe/core/messagebundle_de.properties +4 -0
- package/src/sap/fe/core/messagebundle_el.properties +4 -0
- package/src/sap/fe/core/messagebundle_en.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +249 -231
- package/src/sap/fe/core/messagebundle_es.properties +5 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +4 -0
- package/src/sap/fe/core/messagebundle_et.properties +4 -0
- package/src/sap/fe/core/messagebundle_fi.properties +4 -0
- package/src/sap/fe/core/messagebundle_fr.properties +6 -2
- package/src/sap/fe/core/messagebundle_fr_CA.properties +4 -0
- package/src/sap/fe/core/messagebundle_hi.properties +4 -0
- package/src/sap/fe/core/messagebundle_hr.properties +4 -0
- package/src/sap/fe/core/messagebundle_hu.properties +4 -0
- package/src/sap/fe/core/messagebundle_id.properties +4 -0
- package/src/sap/fe/core/messagebundle_it.properties +4 -0
- package/src/sap/fe/core/messagebundle_iw.properties +4 -0
- package/src/sap/fe/core/messagebundle_ja.properties +4 -0
- package/src/sap/fe/core/messagebundle_kk.properties +4 -0
- package/src/sap/fe/core/messagebundle_ko.properties +4 -0
- package/src/sap/fe/core/messagebundle_lt.properties +4 -0
- package/src/sap/fe/core/messagebundle_lv.properties +4 -0
- package/src/sap/fe/core/messagebundle_mk.properties +4 -0
- package/src/sap/fe/core/messagebundle_ms.properties +4 -0
- package/src/sap/fe/core/messagebundle_nl.properties +4 -0
- package/src/sap/fe/core/messagebundle_no.properties +4 -0
- package/src/sap/fe/core/messagebundle_pl.properties +4 -0
- package/src/sap/fe/core/messagebundle_pt.properties +4 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +4 -0
- package/src/sap/fe/core/messagebundle_ro.properties +4 -0
- package/src/sap/fe/core/messagebundle_ru.properties +4 -0
- package/src/sap/fe/core/messagebundle_sh.properties +4 -0
- package/src/sap/fe/core/messagebundle_sk.properties +4 -0
- package/src/sap/fe/core/messagebundle_sl.properties +4 -0
- package/src/sap/fe/core/messagebundle_sr.properties +4 -0
- package/src/sap/fe/core/messagebundle_sv.properties +4 -0
- package/src/sap/fe/core/messagebundle_th.properties +4 -0
- package/src/sap/fe/core/messagebundle_tr.properties +5 -1
- package/src/sap/fe/core/messagebundle_uk.properties +4 -0
- package/src/sap/fe/core/messagebundle_vi.properties +4 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +4 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +4 -0
- package/src/sap/fe/core/operationsHelper.js +23 -27
- package/src/sap/fe/core/operationsHelper.ts +6 -7
- package/src/sap/fe/core/rootView/Fcl.controller.js +53 -40
- package/src/sap/fe/core/rootView/Fcl.controller.ts +42 -7
- package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -10
- package/src/sap/fe/core/rootView/RootViewBaseController.js +22 -21
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +10 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +4 -3
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -0
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +12 -10
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +6 -2
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +8 -13
- package/src/sap/fe/core/services/ContextSharingServiceFactory.js +5 -7
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +31 -8
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +31 -5
- package/src/sap/fe/core/services/InlineEditServiceFactory.js +190 -0
- package/src/sap/fe/core/services/InlineEditServiceFactory.ts +226 -0
- package/src/sap/fe/core/services/NavigationServiceFactory.js +10 -15
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +76 -56
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +47 -14
- package/src/sap/fe/core/services/ShellServicesFactory.js +32 -34
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +75 -60
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +58 -12
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -9
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +13 -18
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +3 -0
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +7 -9
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +12 -16
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +4 -7
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +5 -6
- package/src/sap/fe/core/support/CommonHelper.js +2 -3
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +3 -4
- package/src/sap/fe/core/templating/CommonFormatters.js +6 -8
- package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.js +53 -5
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +129 -7
- package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -11
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +33 -56
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +4 -5
- package/src/sap/fe/core/templating/EntitySetHelper.js +11 -19
- package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
- package/src/sap/fe/core/templating/FieldControlHelper.js +13 -20
- package/src/sap/fe/core/templating/FilterTemplating.js +6 -9
- package/src/sap/fe/core/templating/PropertyHelper.js +33 -63
- package/src/sap/fe/core/templating/PropertyHelper.ts +0 -1
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +13 -21
- package/src/sap/fe/core/templating/UIFormatters.js +57 -78
- package/src/sap/fe/core/templating/UIFormatters.ts +2 -1
- package/src/sap/fe/core/type/Date.js +2 -2
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
- package/src/sap/fe/core/type/EDM.js +3 -5
- package/src/sap/fe/core/type/Email.js +17 -6
- package/src/sap/fe/core/type/Email.ts +23 -4
- package/src/sap/fe/core/type/FiscalDate.js +8 -9
- package/src/sap/fe/core/type/InputMask.js +3 -4
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +0 -299
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +0 -87
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +0 -43
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +0 -251
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +0 -471
|
@@ -20,4 +20,4 @@ sap.ui.define([], function () {
|
|
|
20
20
|
_exports.setCoreUIFactory = setCoreUIFactory;
|
|
21
21
|
return _exports;
|
|
22
22
|
}, false);
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW50RmFjdG9yeSIsImdldENvcmVVSUZhY3RvcnkiLCJ1bmRlZmluZWQiLCJFcnJvciIsIl9leHBvcnRzIiwic2V0Q29yZVVJRmFjdG9yeSIsInByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJVSVByb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgQ29udGV4dCwgZGVmYXVsdCBhcyBPRGF0YVY0Q29udGV4dCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBGRVZpZXcgfSBmcm9tIFwiLi9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZUhhbmRsZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uUmVzdWx0IH0gZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvZWRpdEZsb3cvT0RhdGFPcGVyYXRpb25cIjtcbmltcG9ydCB0eXBlIHsgU2hvd0FjdGlvbkRpYWxvZ1BhcmFtZXRlcnMgfSBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9lZGl0Rmxvdy9vcGVyYXRpb25zL2ZhY2FkZVwiO1xuaW1wb3J0IHR5cGUgeyBTaG93TWVzc2FnZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9tZXNzYWdlSGFuZGxlci9tZXNzYWdlSGFuZGxpbmdcIjtcbmltcG9ydCB0eXBlIHsgU3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMgfSBmcm9tIFwiLi9vcGVyYXRpb25zSGVscGVyXCI7XG5cbmV4cG9ydCB0eXBlIEV4aXREaWFsb2dFdmVudCA9IEV2ZW50PHtcblx0YWNjZXB0OiBib29sZWFuO1xufT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmREaWFsb2cge1xuXHRvcGVuRGlhbG9nKCk6IHZvaWQ7XG5cdGNsb3NlRGlhbG9nKCk6IHZvaWQ7XG5cdHNldEJ1c3koYnVzeTogYm9vbGVhbik6IHZvaWQ7XG5cdGF0dGFjaEV4aXREaWFsb2coZGF0YTogb2JqZWN0LCBoYW5kbGVyOiAoZTogRXhpdERpYWxvZ0V2ZW50KSA9PiB2b2lkLCBsaXN0ZW5lcj86IG9iamVjdCk6IHZvaWQ7XG5cdGlzT3BlbigpOiBib29sZWFuO1xuXHRkaXNwbGF5RXJyb3JNZXNzYWdlcyhtZXNzYWdlczogTWVzc2FnZVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFBhcmFtZXRlckRpYWxvZyB7XG5cdGNyZWF0ZURpYWxvZygpOiBQcm9taXNlPERpYWxvZz47XG5cdG9wZW5EaWFsb2cob3duZXI6IENvbnRyb2wpOiBQcm9taXNlPFByb21pc2VTZXR0bGVkUmVzdWx0PE9wZXJhdGlvblJlc3VsdD5bXT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29yZVVJRmFjdG9yeSB7XG5cdG5ld0NyZWF0ZURpYWxvZyhcblx0XHRjb250ZXh0VG9VcGRhdGU6IE9EYXRhVjRDb250ZXh0LFxuXHRcdGZpZWxkTmFtZXM6IHN0cmluZ1tdLFxuXHRcdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdG1vZGU6IFwiU3RhbmRhbG9uZVwiIHwgXCJXaXRoTmF2aWdhdGlvblwiLFxuXHRcdHBhcmVudENvbnRyb2w/OiBDb250cm9sXG5cdCk6IFN0YW5kYXJkRGlhbG9nO1xuXHRuZXdQYXJhbWV0ZXJEaWFsb2coXG5cdFx0YWN0aW9uOiBBY3Rpb24sXG5cdFx0YWN0aW9uQ29udGV4dDogQ29udGV4dCxcblx0XHRwYXJhbWV0ZXJzOiBTaG93QWN0aW9uRGlhbG9nUGFyYW1ldGVycyxcblx0XHRwYXJhbWV0ZXJWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gfCB1bmRlZmluZWQsXG5cblx0XHRlbnRpdHlTZXROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0dmlldzogRkVWaWV3IHwgbnVsbCxcblx0XHRtZXNzYWdlSGFuZGxlcjogTWVzc2FnZUhhbmRsZXIsXG5cdFx0c3RyaWN0SGFuZGxpbmdVdGlsaXRpZXM6IFN0cmljdEhhbmRsaW5nVXRpbGl0aWVzLFxuXHRcdGNhbGxiYWNrczoge1xuXHRcdFx0YmVmb3JlU2hvd2luZ01lc3NhZ2U6IChcblx0XHRcdFx0bVBhcmFtZXRlcnM6IFNob3dBY3Rpb25EaWFsb2dQYXJhbWV0ZXJzLFxuXHRcdFx0XHRhQ29udGV4dHM6IE9EYXRhVjRDb250ZXh0W10sXG5cdFx0XHRcdG9EaWFsb2c6IERpYWxvZyB8IHVuZGVmaW5lZCxcblx0XHRcdFx0bWVzc2FnZXM6IE1lc3NhZ2VbXSxcblx0XHRcdFx0c2hvd01lc3NhZ2VQYXJhbWV0ZXJzSW46IFNob3dNZXNzYWdlUGFyYW1ldGVycyxcblx0XHRcdFx0c2hvd0dlbmVyaWNFcnJvck1lc3NhZ2VGb3JDaGFuZ2VTZXQ6IGJvb2xlYW5cblx0XHRcdCkgPT4gU2hvd01lc3NhZ2VQYXJhbWV0ZXJzO1xuXHRcdH0sXG5cdFx0aWdub3JlRVRhZz86IGJvb2xlYW5cblx0KTogU3RhbmRhcmRQYXJhbWV0ZXJEaWFsb2c7XG59XG5cbmxldCBjdXJyZW50RmFjdG9yeTogQ29yZVVJRmFjdG9yeSB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvcmVVSUZhY3RvcnkoKTogQ29yZVVJRmFjdG9yeSB7XG5cdGlmIChjdXJyZW50RmFjdG9yeSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwic2FwLmZlLmNvcmUgVUkgcHJvdmlkZXIgbm90IGRlZmluZWRcIik7XG5cdH1cblxuXHRyZXR1cm4gY3VycmVudEZhY3Rvcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb3JlVUlGYWN0b3J5KHByb3ZpZGVyPzogQ29yZVVJRmFjdG9yeSk6IHZvaWQge1xuXHRjdXJyZW50RmFjdG9yeSA9IHByb3ZpZGVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztFQWdFQSxJQUFJQSxjQUF5QztFQUV0QyxTQUFTQyxnQkFBZ0JBLENBQUEsRUFBa0I7SUFDakQsSUFBSUQsY0FBYyxLQUFLRSxTQUFTLEVBQUU7TUFDakMsTUFBTSxJQUFJQyxLQUFLLENBQUMscUNBQXFDLENBQUM7SUFDdkQ7SUFFQSxPQUFPSCxjQUFjO0VBQ3RCO0VBQUNJLFFBQUEsQ0FBQUgsZ0JBQUEsR0FBQUEsZ0JBQUE7RUFFTSxTQUFTSSxnQkFBZ0JBLENBQUNDLFFBQXdCLEVBQVE7SUFDaEVOLGNBQWMsR0FBR00sUUFBUTtFQUMxQjtFQUFDRixRQUFBLENBQUFDLGdCQUFBLEdBQUFBLGdCQUFBO0VBQUEsT0FBQUQsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -7,6 +7,7 @@ import type Message from "sap/ui/core/message/Message";
|
|
|
7
7
|
import type { default as Context, default as ODataV4Context } from "sap/ui/model/odata/v4/Context";
|
|
8
8
|
import type { FEView } from "./BaseController";
|
|
9
9
|
import type MessageHandler from "./controllerextensions/MessageHandler";
|
|
10
|
+
import type { OperationResult } from "./controllerextensions/editFlow/ODataOperation";
|
|
10
11
|
import type { ShowActionDialogParameters } from "./controllerextensions/editFlow/operations/facade";
|
|
11
12
|
import type { ShowMessageParameters } from "./controllerextensions/messageHandler/messageHandling";
|
|
12
13
|
import type { StrictHandlingUtilities } from "./operationsHelper";
|
|
@@ -26,7 +27,7 @@ export interface StandardDialog {
|
|
|
26
27
|
|
|
27
28
|
export interface StandardParameterDialog {
|
|
28
29
|
createDialog(): Promise<Dialog>;
|
|
29
|
-
openDialog(owner: Control): Promise<
|
|
30
|
+
openDialog(owner: Control): Promise<PromiseSettledResult<OperationResult>[]>;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
export interface CoreUIFactory {
|
|
@@ -48,14 +49,6 @@ export interface CoreUIFactory {
|
|
|
48
49
|
messageHandler: MessageHandler,
|
|
49
50
|
strictHandlingUtilities: StrictHandlingUtilities,
|
|
50
51
|
callbacks: {
|
|
51
|
-
actionToBeExecuted: (
|
|
52
|
-
appComponent: AppComponent,
|
|
53
|
-
parameters: ShowActionDialogParameters,
|
|
54
|
-
parentControl: Control,
|
|
55
|
-
messageHandler: MessageHandler,
|
|
56
|
-
strictHandlingUtilities: StrictHandlingUtilities,
|
|
57
|
-
ignoreETag?: boolean
|
|
58
|
-
) => Promise<ODataV4Context | PromiseSettledResult<ODataV4Context | undefined>[]>;
|
|
59
52
|
beforeShowingMessage: (
|
|
60
53
|
mParameters: ShowActionDialogParameters,
|
|
61
54
|
aContexts: ODataV4Context[],
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/MetaPath", "sap/fe/core/helpers/StableIdHelper", "sap/ui/core/Component", "sap/ui/core/ElementRegistry"], function (Log, BuildingBlockBase, ClassSupport, MetaModelConverter, MetaPath, StableIdHelper, Component, ElementRegistry) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupport", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/MetaPath", "sap/fe/core/helpers/StableIdHelper", "sap/ui/core/Component", "sap/ui/core/ElementRegistry"], function (Log, BuildingBlockBase, ClassSupport, HookSupport, MetaModelConverter, MetaPath, StableIdHelper, Component, ElementRegistry) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
var _dec, _dec2, _class, _class2, _descriptor,
|
|
8
|
+
var _dec, _dec2, _class, _class2, _descriptor, _BuildingBlock;
|
|
9
9
|
var generate = StableIdHelper.generate;
|
|
10
10
|
var getInvolvedDataModelObjectsForTargetPath = MetaModelConverter.getInvolvedDataModelObjectsForTargetPath;
|
|
11
11
|
var convertTypes = MetaModelConverter.convertTypes;
|
|
12
|
+
var removeControllerExtensionHookHandlers = HookSupport.removeControllerExtensionHookHandlers;
|
|
13
|
+
var initControllerExtensionHookHandlers = HookSupport.initControllerExtensionHookHandlers;
|
|
12
14
|
var property = ClassSupport.property;
|
|
13
15
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
14
16
|
function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
|
|
15
|
-
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
16
17
|
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
17
18
|
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
18
19
|
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
@@ -26,20 +27,19 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
26
27
|
*/
|
|
27
28
|
let BuildingBlock = (_dec = defineUI5Class("sap.fe.core.buildingBlocks.BuildingBlock"), _dec2 = property({
|
|
28
29
|
type: "string"
|
|
29
|
-
}), _dec(_class = (_class2 = (
|
|
30
|
-
_inheritsLoose(BuildingBlock, _BuildingBlockBase);
|
|
31
|
-
/**
|
|
32
|
-
* The metamodel name or id to be used for this building block
|
|
33
|
-
*/
|
|
34
|
-
|
|
30
|
+
}), _dec(_class = (_class2 = (_BuildingBlock = /*#__PURE__*/function (_BuildingBlockBase) {
|
|
35
31
|
function BuildingBlock(settings, others) {
|
|
36
32
|
var _this;
|
|
37
33
|
_this = _BuildingBlockBase.call(this, settings, others) || this;
|
|
38
|
-
|
|
34
|
+
/**
|
|
35
|
+
* The metamodel name or id to be used for this building block
|
|
36
|
+
*/
|
|
37
|
+
_initializerDefineProperty(_this, "metaModel", _descriptor, _this);
|
|
39
38
|
_this._applyingSettings = false;
|
|
40
39
|
_this.notifyBBObservers();
|
|
41
40
|
return _this;
|
|
42
41
|
}
|
|
42
|
+
_inheritsLoose(BuildingBlock, _BuildingBlockBase);
|
|
43
43
|
var _proto = BuildingBlock.prototype;
|
|
44
44
|
_proto.applySettings = function applySettings(mSettings, oScope) {
|
|
45
45
|
this._applyingSettings = true;
|
|
@@ -98,7 +98,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
98
98
|
* for example becuase of lazy loading, then it is recommended not to await on the promise and instead use Promise.then().
|
|
99
99
|
*/;
|
|
100
100
|
_proto._getOwner = function _getOwner() {
|
|
101
|
-
var _owner;
|
|
102
101
|
//eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
103
102
|
let control = this;
|
|
104
103
|
let owner = Component.getOwnerComponentFor(control);
|
|
@@ -108,18 +107,34 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
108
107
|
owner = Component.getOwnerComponentFor(control);
|
|
109
108
|
}
|
|
110
109
|
}
|
|
111
|
-
if (
|
|
110
|
+
if (owner?.isA("sap.fe.core.TemplateComponent")) {
|
|
112
111
|
return owner;
|
|
113
112
|
}
|
|
114
|
-
|
|
113
|
+
if (owner?.isA("sap.fe.core.buildingBlocks.IBuildingBlockOwnerComponent")) {
|
|
114
|
+
return owner;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/*
|
|
119
|
+
* Get the page controller instance
|
|
120
|
+
* @returns The page controller instance
|
|
121
|
+
*/;
|
|
115
122
|
_proto.getPageController = function getPageController() {
|
|
116
|
-
|
|
117
|
-
|
|
123
|
+
const pageController = this._getOwner()?.getRootController?.();
|
|
124
|
+
if (!pageController) {
|
|
125
|
+
Log.error("No sap.fe.core.PageController found");
|
|
126
|
+
}
|
|
127
|
+
return pageController;
|
|
128
|
+
};
|
|
129
|
+
_proto.getMetaModel = function getMetaModel() {
|
|
130
|
+
return this._getOwner()?.getMetaModel(this.metaModel);
|
|
118
131
|
};
|
|
119
132
|
_proto.destroy = function destroy(suppressInvalidate) {
|
|
120
133
|
if (this.isA("sap.fe.core.controllerextensions.viewState.IViewStateContributor")) {
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
this.getPageController()?.viewState?.deregisterStateContributor(this);
|
|
135
|
+
}
|
|
136
|
+
if (this.getPageController()) {
|
|
137
|
+
removeControllerExtensionHookHandlers(this, this.getPageController());
|
|
123
138
|
}
|
|
124
139
|
this.notifyBBObservers(true);
|
|
125
140
|
_BuildingBlockBase.prototype.destroy.call(this, suppressInvalidate);
|
|
@@ -130,23 +145,29 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
130
145
|
if (owner) {
|
|
131
146
|
this.onMetadataAvailable(owner);
|
|
132
147
|
if (this.isA("sap.fe.core.controllerextensions.viewState.IViewStateContributor")) {
|
|
133
|
-
|
|
134
|
-
(_this$getPageControll3 = this.getPageController()) === null || _this$getPageControll3 === void 0 ? void 0 : _this$getPageControll3.viewState.registerStateContributor(this);
|
|
148
|
+
this.getPageController()?.viewState.registerStateContributor(this);
|
|
135
149
|
}
|
|
136
|
-
if (this.
|
|
137
|
-
this
|
|
150
|
+
if (this.getPageController()) {
|
|
151
|
+
initControllerExtensionHookHandlers(this, this.getPageController());
|
|
138
152
|
}
|
|
139
153
|
} else {
|
|
140
154
|
if (!fromApplySettings && !this.content) {
|
|
141
155
|
// In case couldn't create the content during the applySettings, try again
|
|
142
156
|
Log.warning("The building block was not created within an ExtensionAPI.runWithFPMContext call, for performance reason it's recommended to do so.", this);
|
|
143
157
|
}
|
|
144
|
-
|
|
145
|
-
this.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
158
|
+
this.attachEventOnce("modelContextChange", function () {
|
|
159
|
+
this._checkIfMetadataReady();
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
_proto.clone = function clone(sIdSuffix, aLocalIds) {
|
|
164
|
+
const owner = this._getOwner();
|
|
165
|
+
if (owner) {
|
|
166
|
+
return owner.runAsOwner(() => {
|
|
167
|
+
return _BuildingBlockBase.prototype.clone.call(this, sIdSuffix, aLocalIds);
|
|
168
|
+
});
|
|
169
|
+
} else {
|
|
170
|
+
return _BuildingBlockBase.prototype.clone.call(this, sIdSuffix, aLocalIds);
|
|
150
171
|
}
|
|
151
172
|
};
|
|
152
173
|
_proto.onMetadataAvailable = function onMetadataAvailable(_ownerComponent) {
|
|
@@ -154,17 +175,12 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
154
175
|
};
|
|
155
176
|
_proto.getAppComponent = function getAppComponent() {
|
|
156
177
|
const owner = this._getOwner();
|
|
157
|
-
|
|
158
|
-
var _owner$getPreprocesso;
|
|
159
|
-
return (_owner$getPreprocesso = owner.getPreprocessorContext()) === null || _owner$getPreprocesso === void 0 ? void 0 : _owner$getPreprocesso.appComponent;
|
|
160
|
-
} else {
|
|
161
|
-
return undefined;
|
|
162
|
-
}
|
|
178
|
+
return owner?.getAppComponent();
|
|
163
179
|
};
|
|
164
180
|
_proto.getDataModelObjectPath = function getDataModelObjectPath(targetPath) {
|
|
165
181
|
const owner = this._getOwner();
|
|
166
182
|
const metaModel = owner.getMetaModel(this.metaModel);
|
|
167
|
-
const targetPathToUse = targetPath ??
|
|
183
|
+
const targetPathToUse = targetPath ?? this.getOwnerContextPath();
|
|
168
184
|
return getInvolvedDataModelObjectsForTargetPath(targetPathToUse, metaModel);
|
|
169
185
|
}
|
|
170
186
|
|
|
@@ -173,9 +189,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
173
189
|
* @returns The context path
|
|
174
190
|
*/;
|
|
175
191
|
_proto.getOwnerContextPath = function getOwnerContextPath() {
|
|
176
|
-
var _owner$preprocessorCo;
|
|
177
192
|
const owner = this._getOwner();
|
|
178
|
-
return
|
|
193
|
+
return owner.getFullContextPath(this.metaModel);
|
|
179
194
|
}
|
|
180
195
|
|
|
181
196
|
/**
|
|
@@ -185,11 +200,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
185
200
|
* @returns The data model object path
|
|
186
201
|
*/;
|
|
187
202
|
_proto.getDataModelObjectForMetaPath = function getDataModelObjectForMetaPath(metapath, contextPath) {
|
|
188
|
-
var _contextPathToUse;
|
|
189
203
|
const owner = this._getOwner();
|
|
190
204
|
const metaModel = owner.getMetaModel(this.metaModel);
|
|
191
|
-
let contextPathToUse = contextPath ??
|
|
192
|
-
contextPathToUse =
|
|
205
|
+
let contextPathToUse = contextPath ?? this.getOwnerContextPath();
|
|
206
|
+
contextPathToUse = contextPathToUse?.startsWith("/") ? contextPathToUse : undefined;
|
|
193
207
|
if (!metaModel || !(contextPathToUse || metapath.charAt(0) === "/")) {
|
|
194
208
|
throw new Error("No metamodel or metapath is not reachable with contextPath");
|
|
195
209
|
}
|
|
@@ -206,12 +220,11 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
206
220
|
* @returns A MetaPath pointing to the target {metaPath, contextPath}
|
|
207
221
|
*/;
|
|
208
222
|
_proto.getMetaPathObject = function getMetaPathObject(metaPath, contextPath) {
|
|
209
|
-
var _contextPathToUse2;
|
|
210
223
|
const owner = this._getOwner();
|
|
211
224
|
const metaModel = owner.getMetaModel(this.metaModel);
|
|
212
|
-
let contextPathToUse = contextPath ??
|
|
213
|
-
contextPathToUse =
|
|
214
|
-
if (!
|
|
225
|
+
let contextPathToUse = contextPath ?? this.getOwnerContextPath();
|
|
226
|
+
contextPathToUse = contextPathToUse?.startsWith("/") ? contextPathToUse : undefined;
|
|
227
|
+
if (!metaModel || !(contextPathToUse || metaPath.charAt(0) === "/")) {
|
|
215
228
|
Log.warning(`No metamodel or metaPath is not reachable with ${contextPath}:${metaPath}`);
|
|
216
229
|
return null;
|
|
217
230
|
}
|
|
@@ -233,16 +246,18 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BuildingBlockBase", "sap/fe/base/Cla
|
|
|
233
246
|
return undefined;
|
|
234
247
|
};
|
|
235
248
|
_proto.getTranslatedText = function getTranslatedText(textID, parameters, metaPath) {
|
|
236
|
-
|
|
237
|
-
|
|
249
|
+
return (this.getModel("sap.fe.i18n") ?? this._getOwner()?.getModel("sap.fe.i18n"))?.getText(textID, parameters, metaPath) || textID;
|
|
250
|
+
};
|
|
251
|
+
_proto.getManifestWrapper = function getManifestWrapper() {
|
|
252
|
+
return this._getOwner()?.getManifestWrapper();
|
|
238
253
|
};
|
|
239
254
|
return BuildingBlock;
|
|
240
|
-
}(BuildingBlockBase),
|
|
255
|
+
}(BuildingBlockBase), _BuildingBlock._bbobserverMap = new Map(), _BuildingBlock), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "metaModel", [_dec2], {
|
|
241
256
|
configurable: true,
|
|
242
257
|
enumerable: true,
|
|
243
258
|
writable: true,
|
|
244
259
|
initializer: null
|
|
245
|
-
})
|
|
260
|
+
}), _class2)) || _class);
|
|
246
261
|
return BuildingBlock;
|
|
247
262
|
}, false);
|
|
248
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX2NsYXNzMyIsIl9CdWlsZGluZ0Jsb2NrQmFzZSIsIl9pbmhlcml0c0xvb3NlIiwic2V0dGluZ3MiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9hcHBseWluZ1NldHRpbmdzIiwibm90aWZ5QkJPYnNlcnZlcnMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseVNldHRpbmdzIiwibVNldHRpbmdzIiwib1Njb3BlIiwiX2NoZWNrSWZNZXRhZGF0YVJlYWR5IiwiZGVzdHJveSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImJib2JzZXJ2ZXJNYXAiLCJfYmJvYnNlcnZlck1hcCIsImdldCIsImdldElkIiwib2JzZXJ2ZUJCIiwib25EZXN0cm95Iiwib25BdmFpbGFibGUiLCJvYnNlcnZlQnVpbGRpbmdCbG9jayIsImlkIiwicGFyYW1ldGVycyIsImVsZW1lbnQiLCJFbGVtZW50UmVnaXN0cnkiLCJwdXNoIiwic2V0IiwiX2dldE93bmVyIiwiX293bmVyIiwiY29udHJvbCIsIm93bmVyIiwiQ29tcG9uZW50IiwiZ2V0T3duZXJDb21wb25lbnRGb3IiLCJpc0EiLCJnZXRQYXJlbnQiLCJnZXRQYWdlQ29udHJvbGxlciIsIl90aGlzJF9nZXRPd25lciIsImdldFJvb3RDb250cm9sbGVyIiwic3VwcHJlc3NJbnZhbGlkYXRlIiwiX3RoaXMkZ2V0UGFnZUNvbnRyb2xsIiwiX3RoaXMkZ2V0UGFnZUNvbnRyb2xsMiIsInZpZXdTdGF0ZSIsImRlcmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yIiwiZnJvbUFwcGx5U2V0dGluZ3MiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiX3RoaXMkZ2V0UGFnZUNvbnRyb2xsMyIsInJlZ2lzdGVyU3RhdGVDb250cmlidXRvciIsIl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIiLCJkZXRhY2hFdmVudCIsImNvbnRlbnQiLCJMb2ciLCJ3YXJuaW5nIiwiYXR0YWNoRXZlbnQiLCJfb3duZXJDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJfb3duZXIkZ2V0UHJlcHJvY2Vzc28iLCJnZXRQcmVwcm9jZXNzb3JDb250ZXh0IiwiYXBwQ29tcG9uZW50IiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldFBhdGgiLCJtZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJ0YXJnZXRQYXRoVG9Vc2UiLCJnZXRGdWxsQ29udGV4dFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHNGb3JUYXJnZXRQYXRoIiwiZ2V0T3duZXJDb250ZXh0UGF0aCIsIl9vd25lciRwcmVwcm9jZXNzb3JDbyIsInByZXByb2Nlc3NvckNvbnRleHQiLCJmdWxsQ29udGV4dFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCIsIm1ldGFwYXRoIiwiY29udGV4dFBhdGgiLCJfY29udGV4dFBhdGhUb1VzZSIsImNvbnRleHRQYXRoVG9Vc2UiLCJzdGFydHNXaXRoIiwiY2hhckF0IiwiRXJyb3IiLCJtZXRhQ29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwibWV0YVBhdGhDb250ZXh0IiwiTWV0YU1vZGVsQ29udmVydGVyIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiZ2V0TWV0YVBhdGhPYmplY3QiLCJtZXRhUGF0aCIsIl9jb250ZXh0UGF0aFRvVXNlMiIsIk1ldGFQYXRoIiwiY29udmVydFR5cGVzIiwiZSIsImNyZWF0ZUlkIiwiX2xlbiIsInN0cmluZ1BhcnRzIiwiQXJyYXkiLCJfa2V5IiwiZ2VuZXJhdGUiLCJnZXRUcmFuc2xhdGVkVGV4dCIsInRleHRJRCIsIl9yZWYiLCJfdGhpcyRfZ2V0T3duZXIyIiwiX3RoaXMkX2dldE93bmVyMiRwcmVwIiwiZ2V0TW9kZWwiLCJtb2RlbHMiLCJnZXRUZXh0IiwiQnVpbGRpbmdCbG9ja0Jhc2UiLCJNYXAiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkJ1aWxkaW5nQmxvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgdHlwZSB7IEVuaGFuY2VXaXRoVUk1LCBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIElWaWV3U3RhdGVDb250cmlidXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvdmlld1N0YXRlL0lWaWV3U3RhdGVDb250cmlidXRvclwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzLCBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHNGb3JUYXJnZXRQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgTWV0YVBhdGggZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YVBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQXV0aG9yaXplZElkQW5ub3RhdGlvbnNUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgJE1hbmFnZWRPYmplY3RTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCBFbGVtZW50UmVnaXN0cnkgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRSZWdpc3RyeVwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCIuLi9BcHBDb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgT2JzZXJ2ZUJ1aWxkaW5nQmxvY2sgPSB7XG5cdG9uQXZhaWxhYmxlPzogKGJiOiBVSTVFbGVtZW50KSA9PiB2b2lkO1xuXHRvbkRlc3Ryb3k/OiAoYmI6IFVJNUVsZW1lbnQpID0+IHZvaWQ7XG59O1xuLyoqXG4gKiBEZWZpbmVzIGEgY29udHJvbCB0aGF0IHdpbGwgbm90IGV4aXN0IGluIHRoZSBET00uXG4gKiBJbnN0ZWFkLCBvbmx5IGl0cyBjaGlsZCB3aWxsIGJlIHRoZXJlIGFuZCB0aGlzIGNvbnRyb2wgd2lsbCBmb3J3YXJkIGFsbCBET00gcmVsYXRlZCBpbnN0cnVjdGlvbiB0byBpdC5cbiAqIEBleHBlcmltZW50YWxcbiAqIEBzaW5jZSAxLjEyMS4wXG4gKiBAcHVibGljXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmJ1aWxkaW5nQmxvY2tzLkJ1aWxkaW5nQmxvY2tcIilcbmNsYXNzIEJ1aWxkaW5nQmxvY2s8VCBleHRlbmRzIFVJNUVsZW1lbnQgPSBDb250cm9sPiBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlPFQ+IHtcblx0LyoqXG5cdCAqIFRoZSBtZXRhbW9kZWwgbmFtZSBvciBpZCB0byBiZSB1c2VkIGZvciB0aGlzIGJ1aWxkaW5nIGJsb2NrXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdG1ldGFNb2RlbD86IHN0cmluZztcblxuXHRwcm90ZWN0ZWQgX2FwcGx5aW5nU2V0dGluZ3MgPSBmYWxzZTtcblxuXHRwcml2YXRlIF9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXI/OiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIHN0YXRpYyBfYmJvYnNlcnZlck1hcDogTWFwPHN0cmluZywgT2JzZXJ2ZUJ1aWxkaW5nQmxvY2tbXT4gPSBuZXcgTWFwKCk7XG5cblx0Y29uc3RydWN0b3Ioc2V0dGluZ3M/OiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8QnVpbGRpbmdCbG9ja0Jhc2U8VD4+LCBvdGhlcnM/OiBQcm9wZXJ0aWVzT2Y8QnVpbGRpbmdCbG9ja0Jhc2U8VD4+KSB7XG5cdFx0c3VwZXIoc2V0dGluZ3MsIG90aGVycyk7XG5cdFx0dGhpcy5ub3RpZnlCQk9ic2VydmVycygpO1xuXHR9XG5cblx0b3ZlcnJpZGUgYXBwbHlTZXR0aW5ncyhtU2V0dGluZ3M6ICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3MsIG9TY29wZT86IG9iamVjdCk6IHRoaXMge1xuXHRcdHRoaXMuX2FwcGx5aW5nU2V0dGluZ3MgPSB0cnVlO1xuXHRcdHN1cGVyLmFwcGx5U2V0dGluZ3MobVNldHRpbmdzLCBvU2NvcGUpO1xuXHRcdHRoaXMuX2FwcGx5aW5nU2V0dGluZ3MgPSBmYWxzZTtcblx0XHR0aGlzLl9jaGVja0lmTWV0YWRhdGFSZWFkeSh0cnVlKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdG5vdGlmeUJCT2JzZXJ2ZXJzKGRlc3Ryb3kgPSBmYWxzZSk6IHZvaWQge1xuXHRcdGNvbnN0IGJib2JzZXJ2ZXJNYXAgPSBCdWlsZGluZ0Jsb2NrLl9iYm9ic2VydmVyTWFwLmdldCh0aGlzLmdldElkKCkpO1xuXHRcdGlmIChiYm9ic2VydmVyTWFwICYmIGJib2JzZXJ2ZXJNYXAubGVuZ3RoID4gMCkge1xuXHRcdFx0Zm9yIChjb25zdCBvYnNlcnZlQkIgb2YgYmJvYnNlcnZlck1hcCkge1xuXHRcdFx0XHRpZiAoZGVzdHJveSkge1xuXHRcdFx0XHRcdGlmIChvYnNlcnZlQkIub25EZXN0cm95KSB7XG5cdFx0XHRcdFx0XHRvYnNlcnZlQkIub25EZXN0cm95KHRoaXMpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChvYnNlcnZlQkIub25BdmFpbGFibGUpIHtcblx0XHRcdFx0XHRvYnNlcnZlQkIub25BdmFpbGFibGUodGhpcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQWxsb3dzIHRvIG9ic2VydmUgYnVpbGRpbmcgYmxvY2sgb25jZSBpdCBpcyBjcmVhdGVkLlxuXHQgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBidWlsZGluZyBibG9jayB3aGljaCB3aWxsIGJlIG9ic2VydmVkXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIFRoZSBpZCBvZiB0aGUgYnVpbGRpbmcgYmxvY2sgd2hpY2ggaXMgYmVpbmcgcmVxdXN0ZWRcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMub25BdmFpbGFibGUgQ2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdpdGggdGhlIGluc3RhbmNlIG9mIHRoZSBCQiB3aGVuIGl0IGlzIGF2YWlsYWJsZVxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycy5vbkRlc3Ryb3kgQ2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdpdGggdGhlIGluc3RhbmNlIG9mIHRoZSBCQiB3aGVuIGl0IGlzIGRlc3Ryb3llZFxuXHQgKi9cblx0c3RhdGljIG9ic2VydmVCdWlsZGluZ0Jsb2NrKGlkOiBzdHJpbmcsIHBhcmFtZXRlcnM6IE9ic2VydmVCdWlsZGluZ0Jsb2NrKTogdm9pZCB7XG5cdFx0Ly9pZiAocGFyYW1ldGVycylcblx0XHRjb25zdCBlbGVtZW50ID0gRWxlbWVudFJlZ2lzdHJ5LmdldChpZCk7XG5cdFx0Ly8gaWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSByZWdpc3RlcmVkXG5cdFx0aWYgKGVsZW1lbnQpIHtcblx0XHRcdGlmIChwYXJhbWV0ZXJzLm9uQXZhaWxhYmxlKSB7XG5cdFx0XHRcdHBhcmFtZXRlcnMub25BdmFpbGFibGUoZWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGJib2JzZXJ2ZXJNYXAgPSBCdWlsZGluZ0Jsb2NrLl9iYm9ic2VydmVyTWFwLmdldChpZCk7XG5cdFx0XHRpZiAoYmJvYnNlcnZlck1hcCkge1xuXHRcdFx0XHRiYm9ic2VydmVyTWFwLnB1c2gocGFyYW1ldGVycyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRCdWlsZGluZ0Jsb2NrLl9iYm9ic2VydmVyTWFwLnNldChpZCwgW3BhcmFtZXRlcnNdKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBpbnN0YW5jZSBvZiBhIGJ1aWxkaW5nIGJsb2NrIGJhc2VkIG9uY2UgaXQgaXMgcmVnaXN0ZXJlZC5cblx0ICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgYnVpbGRpbmcgYmxvY2sgd2hpY2ggaXMgYmVpbmcgcmVxdXN0ZWRcblx0ICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZlZCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBidWlsZGluZyBibG9jayBvbmNlIGl0IGlzIHJlZ2lzdGVyZWQvaW5zdGFudGllZC5cblx0ICogXHQgVGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgYnVpbGRpbmcgYmxvY2sgaXMgaW50YW50aWVkIGhlbmNlIGl0IHJlY29tbWVuZGVkIHRvIG9ubHkgYXdhaXQgb24gdGhlIHByb21pc2Vcblx0ICogXHQgd2hlbiBpdCBpcyBrbm93biB0aGF0IHRoZSBidWlsZGluZyBibG9jayB3aWxsIGJlIGF2YWlsYWJsZS4gSW4gY2FzZXMgaGVyZSB0aGUgYnVpbGRpbmcgYmxvY2sgbWlnaHQgbm90IGJlIGF2YWlsYWJsZSxcblx0ICogXHQgZm9yIGV4YW1wbGUgYmVjdWFzZSBvZiBsYXp5IGxvYWRpbmcsIHRoZW4gaXQgaXMgcmVjb21tZW5kZWQgbm90IHRvIGF3YWl0IG9uIHRoZSBwcm9taXNlIGFuZCBpbnN0ZWFkIHVzZSBQcm9taXNlLnRoZW4oKS5cblx0ICovXG5cblx0X2dldE93bmVyKCk6IFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcblx0XHQvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRcdGxldCBjb250cm9sOiBDb250cm9sIHwgdW5kZWZpbmVkID0gdGhpcztcblx0XHRsZXQgb3duZXIgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IoY29udHJvbCk7XG5cdFx0d2hpbGUgKCFvd25lciAmJiBjb250cm9sICYmICFjb250cm9sLmlzQTxGRVZpZXc+KFwic2FwLnVpLmNvcmUubXZjLlZpZXdcIikpIHtcblx0XHRcdGNvbnRyb2wgPSBjb250cm9sLmdldFBhcmVudCgpIGFzIENvbnRyb2wgfCB1bmRlZmluZWQ7XG5cdFx0XHRpZiAoY29udHJvbCkge1xuXHRcdFx0XHRvd25lciA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihjb250cm9sKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG93bmVyPy5pc0E8VGVtcGxhdGVDb21wb25lbnQ+KFwic2FwLmZlLmNvcmUuVGVtcGxhdGVDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lcjtcblx0XHR9XG5cdH1cblxuXHRnZXRQYWdlQ29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCk7XG5cdH1cblxuXHRvdmVycmlkZSBkZXN0cm95KHN1cHByZXNzSW52YWxpZGF0ZT86IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5pc0E8SVZpZXdTdGF0ZUNvbnRyaWJ1dG9yPHVua25vd24+ICYgTWFuYWdlZE9iamVjdD4oXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy52aWV3U3RhdGUuSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yXCIpKSB7XG5cdFx0XHR0aGlzLmdldFBhZ2VDb250cm9sbGVyKCk/LnZpZXdTdGF0ZT8uZGVyZWdpc3RlclN0YXRlQ29udHJpYnV0b3IodGhpcyk7XG5cdFx0fVxuXHRcdHRoaXMubm90aWZ5QkJPYnNlcnZlcnModHJ1ZSk7XG5cdFx0c3VwZXIuZGVzdHJveShzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHR9XG5cblx0X2NoZWNrSWZNZXRhZGF0YVJlYWR5KGZyb21BcHBseVNldHRpbmdzID0gZmFsc2UpOiB2b2lkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCk7XG5cdFx0aWYgKG93bmVyKSB7XG5cdFx0XHR0aGlzLm9uTWV0YWRhdGFBdmFpbGFibGUob3duZXIpO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmlzQTxJVmlld1N0YXRlQ29udHJpYnV0b3I8dW5rbm93bj4gJiBNYW5hZ2VkT2JqZWN0PihcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLnZpZXdTdGF0ZS5JVmlld1N0YXRlQ29udHJpYnV0b3JcIilcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmdldFBhZ2VDb250cm9sbGVyKCk/LnZpZXdTdGF0ZS5yZWdpc3RlclN0YXRlQ29udHJpYnV0b3IodGhpcyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5fbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRXZlbnQoXCJtb2RlbENvbnRleHRDaGFuZ2VcIiwgdGhpcy5fbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCFmcm9tQXBwbHlTZXR0aW5ncyAmJiAhdGhpcy5jb250ZW50KSB7XG5cdFx0XHRcdC8vIEluIGNhc2UgY291bGRuJ3QgY3JlYXRlIHRoZSBjb250ZW50IGR1cmluZyB0aGUgYXBwbHlTZXR0aW5ncywgdHJ5IGFnYWluXG5cdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFwiVGhlIGJ1aWxkaW5nIGJsb2NrIHdhcyBub3QgY3JlYXRlZCB3aXRoaW4gYW4gRXh0ZW5zaW9uQVBJLnJ1bldpdGhGUE1Db250ZXh0IGNhbGwsIGZvciBwZXJmb3JtYW5jZSByZWFzb24gaXQncyByZWNvbW1lbmRlZCB0byBkbyBzby5cIixcblx0XHRcdFx0XHR0aGlzIGFzIHVua25vd24gYXMgc3RyaW5nXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMuX21vZGVsQ29udGV4dENoYW5nZUV2ZW50SGFuZGxlcikge1xuXHRcdFx0XHR0aGlzLl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG5cdFx0XHRcdFx0dGhpcy5fY2hlY2tJZk1ldGFkYXRhUmVhZHkoKTtcblx0XHRcdFx0fTtcblx0XHRcdFx0dGhpcy5hdHRhY2hFdmVudChcIm1vZGVsQ29udGV4dENoYW5nZVwiLCB0aGlzLl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdC8vIFRvIGJlIG92ZXJyaWRlbiBieSB0aGUgY2hpbGQgY2xhc3Ncblx0fVxuXG5cdGdldEFwcENvbXBvbmVudCgpOiBBcHBDb21wb25lbnQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHRpZiAob3duZXI/LmlzQTxFbmhhbmNlV2l0aFVJNTxUZW1wbGF0ZUNvbXBvbmVudD4+KFwic2FwLmZlLmNvcmUuVGVtcGxhdGVDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lci5nZXRQcmVwcm9jZXNzb3JDb250ZXh0KCk/LmFwcENvbXBvbmVudDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXREYXRhTW9kZWxPYmplY3RQYXRoPE4+KHRhcmdldFBhdGg6IHN0cmluZyk6IERhdGFNb2RlbE9iamVjdFBhdGg8Tj4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRjb25zdCB0YXJnZXRQYXRoVG9Vc2UgPSB0YXJnZXRQYXRoID8/IG93bmVyLmdldEZ1bGxDb250ZXh0UGF0aCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0cmV0dXJuIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0c0ZvclRhcmdldFBhdGgodGFyZ2V0UGF0aFRvVXNlLCBtZXRhTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29udGV4dCBwYXRoIGZyb20gdGhlIG93bmVyIGNvbXBvbmVudC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgcGF0aFxuXHQgKi9cblx0Z2V0T3duZXJDb250ZXh0UGF0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0cmV0dXJuIG93bmVyLnByZXByb2Nlc3NvckNvbnRleHQ/LmZ1bGxDb250ZXh0UGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGRhdGEgbW9kZWwgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbWV0YXBhdGggYW5kIG9wdGlvbmFsIGNvbnRleHRQYXRoLlxuXHQgKiBAcGFyYW0gbWV0YXBhdGhcblx0ICogQHBhcmFtIGNvbnRleHRQYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBkYXRhIG1vZGVsIG9iamVjdCBwYXRoXG5cdCAqL1xuXHRnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KFxuXHRcdG1ldGFwYXRoOiBzdHJpbmcsXG5cdFx0Y29udGV4dFBhdGg/OiBzdHJpbmdcblx0KTogRGF0YU1vZGVsT2JqZWN0UGF0aDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCkhO1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IG93bmVyLmdldE1ldGFNb2RlbCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0bGV0IGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aCA/PyBvd25lci5nZXRGdWxsQ29udGV4dFBhdGgodGhpcy5tZXRhTW9kZWwpO1xuXHRcdGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aFRvVXNlPy5zdGFydHNXaXRoKFwiL1wiKSA/IGNvbnRleHRQYXRoVG9Vc2UgOiB1bmRlZmluZWQ7XG5cdFx0aWYgKCFtZXRhTW9kZWwgfHwgIShjb250ZXh0UGF0aFRvVXNlIHx8IG1ldGFwYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBtZXRhbW9kZWwgb3IgbWV0YXBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoIGNvbnRleHRQYXRoXCIpO1xuXHRcdH1cblx0XHRsZXQgbWV0YUNvbnRleHQgPSBjb250ZXh0UGF0aFRvVXNlID8gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGNvbnRleHRQYXRoVG9Vc2UpIDogdW5kZWZpbmVkO1xuXHRcdG1ldGFDb250ZXh0ID0gbWV0YUNvbnRleHQgPyBtZXRhQ29udGV4dCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBtZXRhUGF0aENvbnRleHQgPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQobWV0YXBhdGgsIG1ldGFDb250ZXh0KTtcblx0XHRyZXR1cm4gbWV0YVBhdGhDb250ZXh0XG5cdFx0XHQ/IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPihtZXRhUGF0aENvbnRleHQsIG1ldGFDb250ZXh0KVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBNZXRhUGF0aCBvYmplY3QgZm9yIHRoZSBnaXZlbiBtZXRhUGF0aCBhbmQgb3B0aW9uYWwgY29udGV4dFBhdGguXG5cdCAqIEBwYXJhbSBtZXRhUGF0aFxuXHQgKiBAcGFyYW0gY29udGV4dFBhdGhcblx0ICogQHJldHVybnMgQSBNZXRhUGF0aCBwb2ludGluZyB0byB0aGUgdGFyZ2V0IHttZXRhUGF0aCwgY29udGV4dFBhdGh9XG5cdCAqL1xuXHRnZXRNZXRhUGF0aE9iamVjdDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KG1ldGFQYXRoOiBzdHJpbmcsIGNvbnRleHRQYXRoPzogc3RyaW5nKTogTWV0YVBhdGg8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPiB8IG51bGwge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRsZXQgY29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoID8/IG93bmVyLmdldEZ1bGxDb250ZXh0UGF0aCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0Y29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoVG9Vc2U/LnN0YXJ0c1dpdGgoXCIvXCIpID8gY29udGV4dFBhdGhUb1VzZSA6IHVuZGVmaW5lZDtcblx0XHRpZiAoIW93bmVyLnByZXByb2Nlc3NvckNvbnRleHQgfHwgIW1ldGFNb2RlbCB8fCAhKGNvbnRleHRQYXRoVG9Vc2UgfHwgbWV0YVBhdGguY2hhckF0KDApID09PSBcIi9cIikpIHtcblx0XHRcdExvZy53YXJuaW5nKGBObyBtZXRhbW9kZWwgb3IgbWV0YVBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoICR7Y29udGV4dFBhdGh9OiR7bWV0YVBhdGh9YCk7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBuZXcgTWV0YVBhdGgoY29udmVydFR5cGVzKG1ldGFNb2RlbCksIG1ldGFQYXRoLCBjb250ZXh0UGF0aFRvVXNlISk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLndhcm5pbmcoYE5vIG1ldGFtb2RlbCBvciBtZXRhUGF0aCBpcyBub3QgcmVhY2hhYmxlIHdpdGggJHtjb250ZXh0UGF0aH06JHttZXRhUGF0aH1gKTtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBjcmVhdGVJZCguLi5zdHJpbmdQYXJ0czogKHN0cmluZyB8IHVuZGVmaW5lZCB8IERhdGFNb2RlbE9iamVjdFBhdGg8QXV0aG9yaXplZElkQW5ub3RhdGlvbnNUeXBlPilbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gSWYgdGhlIGNoaWxkIGluc3RhbmNlIGhhcyBhbiBJRCBwcm9wZXJ0eSB1c2UgaXQgb3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWRcblx0XHRpZiAodGhpcy5nZXRJZCgpKSB7XG5cdFx0XHRyZXR1cm4gZ2VuZXJhdGUoW3RoaXMuZ2V0SWQoKSwgLi4uc3RyaW5nUGFydHNdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGdldFRyYW5zbGF0ZWRUZXh0KHRleHRJRDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogdW5rbm93bltdLCBtZXRhUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIChcblx0XHRcdCgodGhpcy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpID8/IHRoaXMuX2dldE93bmVyKCk/LnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVsc1tcInNhcC5mZS5pMThuXCJdKSBhcyBSZXNvdXJjZU1vZGVsKT8uZ2V0VGV4dChcblx0XHRcdFx0dGV4dElELFxuXHRcdFx0XHRwYXJhbWV0ZXJzLFxuXHRcdFx0XHRtZXRhUGF0aFxuXHRcdFx0KSB8fCB0ZXh0SURcblx0XHQpO1xuXHR9XG59XG5cbmludGVyZmFjZSBCdWlsZGluZ0Jsb2NrPFQgZXh0ZW5kcyBVSTVFbGVtZW50PiB7XG5cdGdldENvbnRlbnQoKTogVCB8IHVuZGVmaW5lZDtcblx0Z2V0QXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1aWxkaW5nQmxvY2s7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFOQSxJQVFNQSxhQUFhLElBQUFDLElBQUEsR0FEbEJDLGNBQWMsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFBQyxLQUFBLEdBS3pEQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFKLElBQUEsQ0FBQUssTUFBQSxJQUFBQyxPQUFBLElBQUFDLE9BQUEsMEJBQUFDLGtCQUFBO0lBQUFDLGNBQUEsQ0FBQVYsYUFBQSxFQUFBUyxrQkFBQTtJQUg3QjtBQUNEO0FBQ0E7O0lBVUMsU0FBQVQsY0FBWVcsUUFBc0QsRUFBRUMsTUFBMkMsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDaEhBLEtBQUEsR0FBQUosa0JBQUEsQ0FBQUssSUFBQSxPQUFNSCxRQUFRLEVBQUVDLE1BQU0sQ0FBQztNQUFDRywwQkFBQSxDQUFBRixLQUFBLGVBQUFHLFdBQUEsRUFBQUMsc0JBQUEsQ0FBQUosS0FBQTtNQUFBQSxLQUFBLENBUGZLLGlCQUFpQixHQUFHLEtBQUs7TUFRbENMLEtBQUEsQ0FBS00saUJBQWlCLENBQUMsQ0FBQztNQUFDLE9BQUFOLEtBQUE7SUFDMUI7SUFBQyxJQUFBTyxNQUFBLEdBQUFwQixhQUFBLENBQUFxQixTQUFBO0lBQUFELE1BQUEsQ0FFUUUsYUFBYSxHQUF0QixTQUFBQSxjQUF1QkMsU0FBaUMsRUFBRUMsTUFBZSxFQUFRO01BQ2hGLElBQUksQ0FBQ04saUJBQWlCLEdBQUcsSUFBSTtNQUM3QlQsa0JBQUEsQ0FBQVksU0FBQSxDQUFNQyxhQUFhLENBQUFSLElBQUEsT0FBQ1MsU0FBUyxFQUFFQyxNQUFNO01BQ3JDLElBQUksQ0FBQ04saUJBQWlCLEdBQUcsS0FBSztNQUM5QixJQUFJLENBQUNPLHFCQUFxQixDQUFDLElBQUksQ0FBQztNQUNoQyxPQUFPLElBQUk7SUFDWixDQUFDO0lBQUFMLE1BQUEsQ0FFREQsaUJBQWlCLEdBQWpCLFNBQUFBLGtCQUFBLEVBQXlDO01BQUEsSUFBdkJPLE9BQU8sR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUNoQyxNQUFNRyxhQUFhLEdBQUc5QixhQUFhLENBQUMrQixjQUFjLENBQUNDLEdBQUcsQ0FBQyxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDcEUsSUFBSUgsYUFBYSxJQUFJQSxhQUFhLENBQUNGLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDOUMsS0FBSyxNQUFNTSxTQUFTLElBQUlKLGFBQWEsRUFBRTtVQUN0QyxJQUFJSixPQUFPLEVBQUU7WUFDWixJQUFJUSxTQUFTLENBQUNDLFNBQVMsRUFBRTtjQUN4QkQsU0FBUyxDQUFDQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQzFCO1VBQ0QsQ0FBQyxNQUFNLElBQUlELFNBQVMsQ0FBQ0UsV0FBVyxFQUFFO1lBQ2pDRixTQUFTLENBQUNFLFdBQVcsQ0FBQyxJQUFJLENBQUM7VUFDNUI7UUFDRDtNQUNEO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FOQztJQUFBcEMsYUFBQSxDQU9PcUMsb0JBQW9CLEdBQTNCLFNBQUFBLHFCQUE0QkMsRUFBVSxFQUFFQyxVQUFnQyxFQUFRO01BQy9FO01BQ0EsTUFBTUMsT0FBTyxHQUFHQyxlQUFlLENBQUNULEdBQUcsQ0FBQ00sRUFBRSxDQUFDO01BQ3ZDO01BQ0EsSUFBSUUsT0FBTyxFQUFFO1FBQ1osSUFBSUQsVUFBVSxDQUFDSCxXQUFXLEVBQUU7VUFDM0JHLFVBQVUsQ0FBQ0gsV0FBVyxDQUFDSSxPQUFPLENBQUM7UUFDaEM7TUFDRCxDQUFDLE1BQU07UUFDTixNQUFNVixhQUFhLEdBQUc5QixhQUFhLENBQUMrQixjQUFjLENBQUNDLEdBQUcsQ0FBQ00sRUFBRSxDQUFDO1FBQzFELElBQUlSLGFBQWEsRUFBRTtVQUNsQkEsYUFBYSxDQUFDWSxJQUFJLENBQUNILFVBQVUsQ0FBQztRQUMvQixDQUFDLE1BQU07VUFDTnZDLGFBQWEsQ0FBQytCLGNBQWMsQ0FBQ1ksR0FBRyxDQUFDTCxFQUFFLEVBQUUsQ0FBQ0MsVUFBVSxDQUFDLENBQUM7UUFDbkQ7TUFDRDtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FQQztJQUFBbkIsTUFBQSxDQVNBd0IsU0FBUyxHQUFULFNBQUFBLFVBQUEsRUFBMkM7TUFBQSxJQUFBQyxNQUFBO01BQzFDO01BQ0EsSUFBSUMsT0FBNEIsR0FBRyxJQUFJO01BQ3ZDLElBQUlDLEtBQUssR0FBR0MsU0FBUyxDQUFDQyxvQkFBb0IsQ0FBQ0gsT0FBTyxDQUFDO01BQ25ELE9BQU8sQ0FBQ0MsS0FBSyxJQUFJRCxPQUFPLElBQUksQ0FBQ0EsT0FBTyxDQUFDSSxHQUFHLENBQVMsc0JBQXNCLENBQUMsRUFBRTtRQUN6RUosT0FBTyxHQUFHQSxPQUFPLENBQUNLLFNBQVMsQ0FBQyxDQUF3QjtRQUNwRCxJQUFJTCxPQUFPLEVBQUU7VUFDWkMsS0FBSyxHQUFHQyxTQUFTLENBQUNDLG9CQUFvQixDQUFDSCxPQUFPLENBQUM7UUFDaEQ7TUFDRDtNQUNBLEtBQUFELE1BQUEsR0FBSUUsS0FBSyxjQUFBRixNQUFBLGVBQUxBLE1BQUEsQ0FBT0ssR0FBRyxDQUFvQiwrQkFBK0IsQ0FBQyxFQUFFO1FBQ25FLE9BQU9ILEtBQUs7TUFDYjtJQUNELENBQUM7SUFBQTNCLE1BQUEsQ0FFRGdDLGlCQUFpQixHQUFqQixTQUFBQSxrQkFBQSxFQUFnRDtNQUFBLElBQUFDLGVBQUE7TUFDL0MsUUFBQUEsZUFBQSxHQUFPLElBQUksQ0FBQ1QsU0FBUyxDQUFDLENBQUMsY0FBQVMsZUFBQSx1QkFBaEJBLGVBQUEsQ0FBa0JDLGlCQUFpQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFBbEMsTUFBQSxDQUVRTSxPQUFPLEdBQWhCLFNBQUFBLFFBQWlCNkIsa0JBQTRCLEVBQVE7TUFDcEQsSUFBSSxJQUFJLENBQUNMLEdBQUcsQ0FBaUQsa0VBQWtFLENBQUMsRUFBRTtRQUFBLElBQUFNLHFCQUFBLEVBQUFDLHNCQUFBO1FBQ2pJLENBQUFELHFCQUFBLE9BQUksQ0FBQ0osaUJBQWlCLENBQUMsQ0FBQyxjQUFBSSxxQkFBQSx3QkFBQUMsc0JBQUEsR0FBeEJELHFCQUFBLENBQTBCRSxTQUFTLGNBQUFELHNCQUFBLHVCQUFuQ0Esc0JBQUEsQ0FBcUNFLDBCQUEwQixDQUFDLElBQUksQ0FBQztNQUN0RTtNQUNBLElBQUksQ0FBQ3hDLGlCQUFpQixDQUFDLElBQUksQ0FBQztNQUM1QlYsa0JBQUEsQ0FBQVksU0FBQSxDQUFNSyxPQUFPLENBQUFaLElBQUEsT0FBQ3lDLGtCQUFrQjtJQUNqQyxDQUFDO0lBQUFuQyxNQUFBLENBRURLLHFCQUFxQixHQUFyQixTQUFBQSxzQkFBQSxFQUF1RDtNQUFBLElBQWpDbUMsaUJBQWlCLEdBQUFqQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO01BQzlDLE1BQU1vQixLQUFLLEdBQUcsSUFBSSxDQUFDSCxTQUFTLENBQUMsQ0FBQztNQUM5QixJQUFJRyxLQUFLLEVBQUU7UUFDVixJQUFJLENBQUNjLG1CQUFtQixDQUFDZCxLQUFLLENBQUM7UUFDL0IsSUFDQyxJQUFJLENBQUNHLEdBQUcsQ0FBaUQsa0VBQWtFLENBQUMsRUFDM0g7VUFBQSxJQUFBWSxzQkFBQTtVQUNELENBQUFBLHNCQUFBLE9BQUksQ0FBQ1YsaUJBQWlCLENBQUMsQ0FBQyxjQUFBVSxzQkFBQSx1QkFBeEJBLHNCQUFBLENBQTBCSixTQUFTLENBQUNLLHdCQUF3QixDQUFDLElBQUksQ0FBQztRQUNuRTtRQUNBLElBQUksSUFBSSxDQUFDQywrQkFBK0IsRUFBRTtVQUN6QyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUNELCtCQUErQixDQUFDO1FBQzdFO01BQ0QsQ0FBQyxNQUFNO1FBQ04sSUFBSSxDQUFDSixpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQ00sT0FBTyxFQUFFO1VBQ3hDO1VBQ0FDLEdBQUcsQ0FBQ0MsT0FBTyxDQUNWLHFJQUFxSSxFQUNySSxJQUNELENBQUM7UUFDRjtRQUNBLElBQUksQ0FBQyxJQUFJLENBQUNKLCtCQUErQixFQUFFO1VBQzFDLElBQUksQ0FBQ0EsK0JBQStCLEdBQUcsWUFBa0I7WUFDeEQsSUFBSSxDQUFDdkMscUJBQXFCLENBQUMsQ0FBQztVQUM3QixDQUFDO1VBQ0QsSUFBSSxDQUFDNEMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQ0wsK0JBQStCLENBQUM7UUFDN0U7TUFDRDtJQUNELENBQUM7SUFBQTVDLE1BQUEsQ0FFRHlDLG1CQUFtQixHQUFuQixTQUFBQSxvQkFBb0JTLGVBQWtDLEVBQVE7TUFDN0Q7SUFBQSxDQUNBO0lBQUFsRCxNQUFBLENBRURtRCxlQUFlLEdBQWYsU0FBQUEsZ0JBQUEsRUFBNEM7TUFDM0MsTUFBTXhCLEtBQUssR0FBRyxJQUFJLENBQUNILFNBQVMsQ0FBQyxDQUFDO01BQzlCLElBQUlHLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVHLEdBQUcsQ0FBb0MsK0JBQStCLENBQUMsRUFBRTtRQUFBLElBQUFzQixxQkFBQTtRQUNuRixRQUFBQSxxQkFBQSxHQUFPekIsS0FBSyxDQUFDMEIsc0JBQXNCLENBQUMsQ0FBQyxjQUFBRCxxQkFBQSx1QkFBOUJBLHFCQUFBLENBQWdDRSxZQUFZO01BQ3BELENBQUMsTUFBTTtRQUNOLE9BQU83QyxTQUFTO01BQ2pCO0lBQ0QsQ0FBQztJQUFBVCxNQUFBLENBRUR1RCxzQkFBc0IsR0FBdEIsU0FBQUEsdUJBQTBCQyxVQUFrQixFQUFzQztNQUNqRixNQUFNN0IsS0FBSyxHQUFHLElBQUksQ0FBQ0gsU0FBUyxDQUFDLENBQUU7TUFDL0IsTUFBTWlDLFNBQVMsR0FBRzlCLEtBQUssQ0FBQytCLFlBQVksQ0FBQyxJQUFJLENBQUNELFNBQVMsQ0FBQztNQUNwRCxNQUFNRSxlQUFlLEdBQUdILFVBQVUsSUFBSTdCLEtBQUssQ0FBQ2lDLGtCQUFrQixDQUFDLElBQUksQ0FBQ0gsU0FBUyxDQUFDO01BQzlFLE9BQU9JLHdDQUF3QyxDQUFDRixlQUFlLEVBQUVGLFNBQVMsQ0FBQztJQUM1RTs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUF6RCxNQUFBLENBSUE4RCxtQkFBbUIsR0FBbkIsU0FBQUEsb0JBQUEsRUFBMEM7TUFBQSxJQUFBQyxxQkFBQTtNQUN6QyxNQUFNcEMsS0FBSyxHQUFHLElBQUksQ0FBQ0gsU0FBUyxDQUFDLENBQUU7TUFDL0IsUUFBQXVDLHFCQUFBLEdBQU9wQyxLQUFLLENBQUNxQyxtQkFBbUIsY0FBQUQscUJBQUEsdUJBQXpCQSxxQkFBQSxDQUEyQkUsZUFBZTtJQUNsRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBakUsTUFBQSxDQU1Ba0UsNkJBQTZCLEdBQTdCLFNBQUFBLDhCQUNDQyxRQUFnQixFQUNoQkMsV0FBb0IsRUFDcUM7TUFBQSxJQUFBQyxpQkFBQTtNQUN6RCxNQUFNMUMsS0FBSyxHQUFHLElBQUksQ0FBQ0gsU0FBUyxDQUFDLENBQUU7TUFDL0IsTUFBTWlDLFNBQVMsR0FBRzlCLEtBQUssQ0FBQytCLFlBQVksQ0FBQyxJQUFJLENBQUNELFNBQVMsQ0FBQztNQUNwRCxJQUFJYSxnQkFBZ0IsR0FBR0YsV0FBVyxJQUFJekMsS0FBSyxDQUFDaUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDSCxTQUFTLENBQUM7TUFDOUVhLGdCQUFnQixHQUFHLENBQUFELGlCQUFBLEdBQUFDLGdCQUFnQixjQUFBRCxpQkFBQSxlQUFoQkEsaUJBQUEsQ0FBa0JFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBR0QsZ0JBQWdCLEdBQUc3RCxTQUFTO01BQ25GLElBQUksQ0FBQ2dELFNBQVMsSUFBSSxFQUFFYSxnQkFBZ0IsSUFBSUgsUUFBUSxDQUFDSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDcEUsTUFBTSxJQUFJQyxLQUFLLENBQUMsNERBQTRELENBQUM7TUFDOUU7TUFDQSxJQUFJQyxXQUFXLEdBQUdKLGdCQUFnQixHQUFHYixTQUFTLENBQUNrQixvQkFBb0IsQ0FBQ0wsZ0JBQWdCLENBQUMsR0FBRzdELFNBQVM7TUFDakdpRSxXQUFXLEdBQUdBLFdBQVcsR0FBR0EsV0FBVyxHQUFHakUsU0FBUztNQUNuRCxNQUFNbUUsZUFBZSxHQUFHbkIsU0FBUyxDQUFDa0Isb0JBQW9CLENBQUNSLFFBQVEsRUFBRU8sV0FBVyxDQUFDO01BQzdFLE9BQU9FLGVBQWUsR0FDbkJDLGtCQUFrQixDQUFDQywyQkFBMkIsQ0FBd0JGLGVBQWUsRUFBRUYsV0FBVyxDQUFDLEdBQ25HakUsU0FBUztJQUNiOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxDO0lBQUFULE1BQUEsQ0FNQStFLGlCQUFpQixHQUFqQixTQUFBQSxrQkFBeUNDLFFBQWdCLEVBQUVaLFdBQW9CLEVBQTBDO01BQUEsSUFBQWEsa0JBQUE7TUFDeEgsTUFBTXRELEtBQUssR0FBRyxJQUFJLENBQUNILFNBQVMsQ0FBQyxDQUFFO01BQy9CLE1BQU1pQyxTQUFTLEdBQUc5QixLQUFLLENBQUMrQixZQUFZLENBQUMsSUFBSSxDQUFDRCxTQUFTLENBQUM7TUFDcEQsSUFBSWEsZ0JBQWdCLEdBQUdGLFdBQVcsSUFBSXpDLEtBQUssQ0FBQ2lDLGtCQUFrQixDQUFDLElBQUksQ0FBQ0gsU0FBUyxDQUFDO01BQzlFYSxnQkFBZ0IsR0FBRyxDQUFBVyxrQkFBQSxHQUFBWCxnQkFBZ0IsY0FBQVcsa0JBQUEsZUFBaEJBLGtCQUFBLENBQWtCVixVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUdELGdCQUFnQixHQUFHN0QsU0FBUztNQUNuRixJQUFJLENBQUNrQixLQUFLLENBQUNxQyxtQkFBbUIsSUFBSSxDQUFDUCxTQUFTLElBQUksRUFBRWEsZ0JBQWdCLElBQUlVLFFBQVEsQ0FBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1FBQ2xHekIsR0FBRyxDQUFDQyxPQUFPLENBQUMsa0RBQWtEb0IsV0FBVyxJQUFJWSxRQUFRLEVBQUUsQ0FBQztRQUN4RixPQUFPLElBQUk7TUFDWjtNQUNBLElBQUk7UUFDSCxPQUFPLElBQUlFLFFBQVEsQ0FBQ0MsWUFBWSxDQUFDMUIsU0FBUyxDQUFDLEVBQUV1QixRQUFRLEVBQUVWLGdCQUFpQixDQUFDO01BQzFFLENBQUMsQ0FBQyxPQUFPYyxDQUFDLEVBQUU7UUFDWHJDLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLGtEQUFrRG9CLFdBQVcsSUFBSVksUUFBUSxFQUFFLENBQUM7UUFDeEYsT0FBTyxJQUFJO01BQ1o7SUFDRCxDQUFDO0lBQUFoRixNQUFBLENBRVNxRixRQUFRLEdBQWxCLFNBQUFBLFNBQUEsRUFBa0k7TUFDakk7TUFDQSxJQUFJLElBQUksQ0FBQ3hFLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFBQSxTQUFBeUUsSUFBQSxHQUFBL0UsU0FBQSxDQUFBQyxNQUFBLEVBRkcrRSxXQUFXLE9BQUFDLEtBQUEsQ0FBQUYsSUFBQSxHQUFBRyxJQUFBLE1BQUFBLElBQUEsR0FBQUgsSUFBQSxFQUFBRyxJQUFBO1VBQVhGLFdBQVcsQ0FBQUUsSUFBQSxJQUFBbEYsU0FBQSxDQUFBa0YsSUFBQTtRQUFBO1FBRy9CLE9BQU9DLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQzdFLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRzBFLFdBQVcsQ0FBQyxDQUFDO01BQ2hEO01BQ0EsT0FBTzlFLFNBQVM7SUFDakIsQ0FBQztJQUFBVCxNQUFBLENBRUQyRixpQkFBaUIsR0FBakIsU0FBQUEsa0JBQWtCQyxNQUFjLEVBQUV6RSxVQUFzQixFQUFFNkQsUUFBaUIsRUFBVTtNQUFBLElBQUFhLElBQUEsRUFBQUMsZ0JBQUEsRUFBQUMscUJBQUE7TUFDcEYsT0FDQyxFQUFBRixJQUFBLEdBQUUsSUFBSSxDQUFDRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQUFGLGdCQUFBLEdBQUksSUFBSSxDQUFDdEUsU0FBUyxDQUFDLENBQUMsY0FBQXNFLGdCQUFBLHdCQUFBQyxxQkFBQSxHQUFoQkQsZ0JBQUEsQ0FBa0I5QixtQkFBbUIsY0FBQStCLHFCQUFBLHVCQUFyQ0EscUJBQUEsQ0FBdUNFLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBQUosSUFBQSx1QkFBOUZBLElBQUEsQ0FBbUhLLE9BQU8sQ0FDekhOLE1BQU0sRUFDTnpFLFVBQVUsRUFDVjZELFFBQ0QsQ0FBQyxLQUFJWSxNQUFNO0lBRWIsQ0FBQztJQUFBLE9BQUFoSCxhQUFBO0VBQUEsRUFoTzBEdUgsaUJBQWlCLEdBQUEvRyxPQUFBLENBVzdEdUIsY0FBYyxHQUF3QyxJQUFJeUYsR0FBRyxDQUFDLENBQUMsRUFBQWhILE9BQUEsSUFBQVEsV0FBQSxHQUFBeUcseUJBQUEsQ0FBQWxILE9BQUEsQ0FBQWMsU0FBQSxnQkFBQWxCLEtBQUE7SUFBQXVILFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxLQUFBdEgsT0FBQSxNQUFBRCxNQUFBO0VBQUEsT0E2TmhFTixhQUFhO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
263
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJzZXR0aW5ncyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfYXBwbHlpbmdTZXR0aW5ncyIsIm5vdGlmeUJCT2JzZXJ2ZXJzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseVNldHRpbmdzIiwibVNldHRpbmdzIiwib1Njb3BlIiwiX2NoZWNrSWZNZXRhZGF0YVJlYWR5IiwiZGVzdHJveSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImJib2JzZXJ2ZXJNYXAiLCJfYmJvYnNlcnZlck1hcCIsImdldCIsImdldElkIiwib2JzZXJ2ZUJCIiwib25EZXN0cm95Iiwib25BdmFpbGFibGUiLCJvYnNlcnZlQnVpbGRpbmdCbG9jayIsImlkIiwicGFyYW1ldGVycyIsImVsZW1lbnQiLCJFbGVtZW50UmVnaXN0cnkiLCJwdXNoIiwic2V0IiwiX2dldE93bmVyIiwiY29udHJvbCIsIm93bmVyIiwiQ29tcG9uZW50IiwiZ2V0T3duZXJDb21wb25lbnRGb3IiLCJpc0EiLCJnZXRQYXJlbnQiLCJnZXRQYWdlQ29udHJvbGxlciIsInBhZ2VDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2xsZXIiLCJMb2ciLCJlcnJvciIsImdldE1ldGFNb2RlbCIsIm1ldGFNb2RlbCIsInN1cHByZXNzSW52YWxpZGF0ZSIsInZpZXdTdGF0ZSIsImRlcmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yIiwicmVtb3ZlQ29udHJvbGxlckV4dGVuc2lvbkhvb2tIYW5kbGVycyIsImZyb21BcHBseVNldHRpbmdzIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsInJlZ2lzdGVyU3RhdGVDb250cmlidXRvciIsImluaXRDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzIiwiY29udGVudCIsIndhcm5pbmciLCJhdHRhY2hFdmVudE9uY2UiLCJjbG9uZSIsInNJZFN1ZmZpeCIsImFMb2NhbElkcyIsInJ1bkFzT3duZXIiLCJfb3duZXJDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0UGF0aCIsInRhcmdldFBhdGhUb1VzZSIsImdldE93bmVyQ29udGV4dFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHNGb3JUYXJnZXRQYXRoIiwiZ2V0RnVsbENvbnRleHRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0Rm9yTWV0YVBhdGgiLCJtZXRhcGF0aCIsImNvbnRleHRQYXRoIiwiY29udGV4dFBhdGhUb1VzZSIsInN0YXJ0c1dpdGgiLCJjaGFyQXQiLCJFcnJvciIsIm1ldGFDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJtZXRhUGF0aENvbnRleHQiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRNZXRhUGF0aE9iamVjdCIsIm1ldGFQYXRoIiwiTWV0YVBhdGgiLCJjb252ZXJ0VHlwZXMiLCJlIiwiY3JlYXRlSWQiLCJfbGVuIiwic3RyaW5nUGFydHMiLCJBcnJheSIsIl9rZXkiLCJnZW5lcmF0ZSIsImdldFRyYW5zbGF0ZWRUZXh0IiwidGV4dElEIiwiZ2V0TW9kZWwiLCJnZXRUZXh0IiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiQnVpbGRpbmdCbG9ja0Jhc2UiLCJNYXAiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkJ1aWxkaW5nQmxvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGluaXRDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzLCByZW1vdmVDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0hvb2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIElWaWV3U3RhdGVDb250cmlidXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvdmlld1N0YXRlL0lWaWV3U3RhdGVDb250cmlidXRvclwiO1xuaW1wb3J0IHR5cGUgTWFuaWZlc3RXcmFwcGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0V3JhcHBlclwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzLCBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHNGb3JUYXJnZXRQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgTWV0YVBhdGggZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YVBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQXV0aG9yaXplZElkQW5ub3RhdGlvbnNUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgJE1hbmFnZWRPYmplY3RTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCBFbGVtZW50UmVnaXN0cnkgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRSZWdpc3RyeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCIuLi9BcHBDb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgT2JzZXJ2ZUJ1aWxkaW5nQmxvY2sgPSB7XG5cdG9uQXZhaWxhYmxlPzogKGJiOiBVSTVFbGVtZW50KSA9PiB2b2lkO1xuXHRvbkRlc3Ryb3k/OiAoYmI6IFVJNUVsZW1lbnQpID0+IHZvaWQ7XG59O1xuLyoqXG4gKiBEZWZpbmVzIGEgY29udHJvbCB0aGF0IHdpbGwgbm90IGV4aXN0IGluIHRoZSBET00uXG4gKiBJbnN0ZWFkLCBvbmx5IGl0cyBjaGlsZCB3aWxsIGJlIHRoZXJlIGFuZCB0aGlzIGNvbnRyb2wgd2lsbCBmb3J3YXJkIGFsbCBET00gcmVsYXRlZCBpbnN0cnVjdGlvbiB0byBpdC5cbiAqIEBleHBlcmltZW50YWxcbiAqIEBzaW5jZSAxLjEyMS4wXG4gKiBAcHVibGljXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmJ1aWxkaW5nQmxvY2tzLkJ1aWxkaW5nQmxvY2tcIilcbmNsYXNzIEJ1aWxkaW5nQmxvY2s8VCBleHRlbmRzIFVJNUVsZW1lbnQgPSBDb250cm9sLCBLIGV4dGVuZHMgb2JqZWN0ID0ge30+IGV4dGVuZHMgQnVpbGRpbmdCbG9ja0Jhc2U8VCwgSz4ge1xuXHQvKipcblx0ICogVGhlIG1ldGFtb2RlbCBuYW1lIG9yIGlkIHRvIGJlIHVzZWQgZm9yIHRoaXMgYnVpbGRpbmcgYmxvY2tcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0bWV0YU1vZGVsPzogc3RyaW5nO1xuXG5cdHByb3RlY3RlZCBfYXBwbHlpbmdTZXR0aW5ncyA9IGZhbHNlO1xuXG5cdHByaXZhdGUgc3RhdGljIF9iYm9ic2VydmVyTWFwOiBNYXA8c3RyaW5nLCBPYnNlcnZlQnVpbGRpbmdCbG9ja1tdPiA9IG5ldyBNYXAoKTtcblxuXHRjb25zdHJ1Y3RvcihzZXR0aW5ncz86IHN0cmluZyB8IFByb3BlcnRpZXNPZjxCdWlsZGluZ0Jsb2NrQmFzZTxUPj4sIG90aGVycz86IFByb3BlcnRpZXNPZjxCdWlsZGluZ0Jsb2NrQmFzZTxUPj4pIHtcblx0XHRzdXBlcihzZXR0aW5ncywgb3RoZXJzKTtcblx0XHR0aGlzLm5vdGlmeUJCT2JzZXJ2ZXJzKCk7XG5cdH1cblxuXHRvdmVycmlkZSBhcHBseVNldHRpbmdzKG1TZXR0aW5nczogJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgb1Njb3BlPzogb2JqZWN0KTogdGhpcyB7XG5cdFx0dGhpcy5fYXBwbHlpbmdTZXR0aW5ncyA9IHRydWU7XG5cdFx0c3VwZXIuYXBwbHlTZXR0aW5ncyhtU2V0dGluZ3MsIG9TY29wZSk7XG5cdFx0dGhpcy5fYXBwbHlpbmdTZXR0aW5ncyA9IGZhbHNlO1xuXHRcdHRoaXMuX2NoZWNrSWZNZXRhZGF0YVJlYWR5KHRydWUpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRub3RpZnlCQk9ic2VydmVycyhkZXN0cm95ID0gZmFsc2UpOiB2b2lkIHtcblx0XHRjb25zdCBiYm9ic2VydmVyTWFwID0gQnVpbGRpbmdCbG9jay5fYmJvYnNlcnZlck1hcC5nZXQodGhpcy5nZXRJZCgpKTtcblx0XHRpZiAoYmJvYnNlcnZlck1hcCAmJiBiYm9ic2VydmVyTWFwLmxlbmd0aCA+IDApIHtcblx0XHRcdGZvciAoY29uc3Qgb2JzZXJ2ZUJCIG9mIGJib2JzZXJ2ZXJNYXApIHtcblx0XHRcdFx0aWYgKGRlc3Ryb3kpIHtcblx0XHRcdFx0XHRpZiAob2JzZXJ2ZUJCLm9uRGVzdHJveSkge1xuXHRcdFx0XHRcdFx0b2JzZXJ2ZUJCLm9uRGVzdHJveSh0aGlzKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAob2JzZXJ2ZUJCLm9uQXZhaWxhYmxlKSB7XG5cdFx0XHRcdFx0b2JzZXJ2ZUJCLm9uQXZhaWxhYmxlKHRoaXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEFsbG93cyB0byBvYnNlcnZlIGJ1aWxkaW5nIGJsb2NrIG9uY2UgaXQgaXMgY3JlYXRlZC5cblx0ICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgYnVpbGRpbmcgYmxvY2sgd2hpY2ggd2lsbCBiZSBvYnNlcnZlZFxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycyBUaGUgaWQgb2YgdGhlIGJ1aWxkaW5nIGJsb2NrIHdoaWNoIGlzIGJlaW5nIHJlcXVzdGVkXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLm9uQXZhaWxhYmxlIENhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aXRoIHRoZSBpbnN0YW5jZSBvZiB0aGUgQkIgd2hlbiBpdCBpcyBhdmFpbGFibGVcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMub25EZXN0cm95IENhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aXRoIHRoZSBpbnN0YW5jZSBvZiB0aGUgQkIgd2hlbiBpdCBpcyBkZXN0cm95ZWRcblx0ICovXG5cdHN0YXRpYyBvYnNlcnZlQnVpbGRpbmdCbG9jayhpZDogc3RyaW5nLCBwYXJhbWV0ZXJzOiBPYnNlcnZlQnVpbGRpbmdCbG9jayk6IHZvaWQge1xuXHRcdC8vaWYgKHBhcmFtZXRlcnMpXG5cdFx0Y29uc3QgZWxlbWVudCA9IEVsZW1lbnRSZWdpc3RyeS5nZXQoaWQpO1xuXHRcdC8vIGlmIHRoZSBlbGVtZW50IGlzIGFscmVhZHkgcmVnaXN0ZXJlZFxuXHRcdGlmIChlbGVtZW50KSB7XG5cdFx0XHRpZiAocGFyYW1ldGVycy5vbkF2YWlsYWJsZSkge1xuXHRcdFx0XHRwYXJhbWV0ZXJzLm9uQXZhaWxhYmxlKGVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBiYm9ic2VydmVyTWFwID0gQnVpbGRpbmdCbG9jay5fYmJvYnNlcnZlck1hcC5nZXQoaWQpO1xuXHRcdFx0aWYgKGJib2JzZXJ2ZXJNYXApIHtcblx0XHRcdFx0YmJvYnNlcnZlck1hcC5wdXNoKHBhcmFtZXRlcnMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0QnVpbGRpbmdCbG9jay5fYmJvYnNlcnZlck1hcC5zZXQoaWQsIFtwYXJhbWV0ZXJzXSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgaW5zdGFuY2Ugb2YgYSBidWlsZGluZyBibG9jayBiYXNlZCBvbmNlIGl0IGlzIHJlZ2lzdGVyZWQuXG5cdCAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIGJ1aWxkaW5nIGJsb2NrIHdoaWNoIGlzIGJlaW5nIHJlcXVzdGVkXG5cdCAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2ZWQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgYnVpbGRpbmcgYmxvY2sgb25jZSBpdCBpcyByZWdpc3RlcmVkL2luc3RhbnRpZWQuXG5cdCAqIFx0IFRoZSBwcm9taXNlIGlzIHJlc29sdmVkIHdoZW4gdGhlIGJ1aWxkaW5nIGJsb2NrIGlzIGludGFudGllZCBoZW5jZSBpdCByZWNvbW1lbmRlZCB0byBvbmx5IGF3YWl0IG9uIHRoZSBwcm9taXNlXG5cdCAqIFx0IHdoZW4gaXQgaXMga25vd24gdGhhdCB0aGUgYnVpbGRpbmcgYmxvY2sgd2lsbCBiZSBhdmFpbGFibGUuIEluIGNhc2VzIGhlcmUgdGhlIGJ1aWxkaW5nIGJsb2NrIG1pZ2h0IG5vdCBiZSBhdmFpbGFibGUsXG5cdCAqIFx0IGZvciBleGFtcGxlIGJlY3Vhc2Ugb2YgbGF6eSBsb2FkaW5nLCB0aGVuIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBhd2FpdCBvbiB0aGUgcHJvbWlzZSBhbmQgaW5zdGVhZCB1c2UgUHJvbWlzZS50aGVuKCkuXG5cdCAqL1xuXG5cdF9nZXRPd25lcigpOiBUZW1wbGF0ZUNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG5cdFx0Ly9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0XHRsZXQgY29udHJvbDogQ29udHJvbCB8IHVuZGVmaW5lZCA9IHRoaXM7XG5cdFx0bGV0IG93bmVyID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKGNvbnRyb2wpO1xuXHRcdHdoaWxlICghb3duZXIgJiYgY29udHJvbCAmJiAhY29udHJvbC5pc0E8RkVWaWV3PihcInNhcC51aS5jb3JlLm12Yy5WaWV3XCIpKSB7XG5cdFx0XHRjb250cm9sID0gY29udHJvbC5nZXRQYXJlbnQoKSBhcyBDb250cm9sIHwgdW5kZWZpbmVkO1xuXHRcdFx0aWYgKGNvbnRyb2wpIHtcblx0XHRcdFx0b3duZXIgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IoY29udHJvbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChvd25lcj8uaXNBPFRlbXBsYXRlQ29tcG9uZW50PihcInNhcC5mZS5jb3JlLlRlbXBsYXRlQ29tcG9uZW50XCIpKSB7XG5cdFx0XHRyZXR1cm4gb3duZXI7XG5cdFx0fVxuXHRcdGlmIChvd25lcj8uaXNBPFRlbXBsYXRlQ29tcG9uZW50PihcInNhcC5mZS5jb3JlLmJ1aWxkaW5nQmxvY2tzLklCdWlsZGluZ0Jsb2NrT3duZXJDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lcjtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBHZXQgdGhlIHBhZ2UgY29udHJvbGxlciBpbnN0YW5jZVxuXHQgKiBAcmV0dXJucyBUaGUgcGFnZSBjb250cm9sbGVyIGluc3RhbmNlXG5cdCAqL1xuXHRnZXRQYWdlQ29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB7XG5cdFx0Y29uc3QgcGFnZUNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcj8uKCk7XG5cdFx0aWYgKCFwYWdlQ29udHJvbGxlcikge1xuXHRcdFx0TG9nLmVycm9yKFwiTm8gc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIgZm91bmRcIik7XG5cdFx0fVxuXHRcdHJldHVybiBwYWdlQ29udHJvbGxlciE7XG5cdH1cblxuXHRnZXRNZXRhTW9kZWwoKTogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9nZXRPd25lcigpPy5nZXRNZXRhTW9kZWwodGhpcy5tZXRhTW9kZWwpO1xuXHR9XG5cblx0b3ZlcnJpZGUgZGVzdHJveShzdXBwcmVzc0ludmFsaWRhdGU/OiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaXNBPElWaWV3U3RhdGVDb250cmlidXRvcjx1bmtub3duPiAmIE1hbmFnZWRPYmplY3Q+KFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMudmlld1N0YXRlLklWaWV3U3RhdGVDb250cmlidXRvclwiKSkge1xuXHRcdFx0dGhpcy5nZXRQYWdlQ29udHJvbGxlcigpPy52aWV3U3RhdGU/LmRlcmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yKHRoaXMpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpKSB7XG5cdFx0XHRyZW1vdmVDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzKHRoaXMsIHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKSEpO1xuXHRcdH1cblx0XHR0aGlzLm5vdGlmeUJCT2JzZXJ2ZXJzKHRydWUpO1xuXHRcdHN1cGVyLmRlc3Ryb3koc3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0fVxuXG5cdF9jaGVja0lmTWV0YWRhdGFSZWFkeShmcm9tQXBwbHlTZXR0aW5ncyA9IGZhbHNlKTogdm9pZCB7XG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLl9nZXRPd25lcigpO1xuXHRcdGlmIChvd25lcikge1xuXHRcdFx0dGhpcy5vbk1ldGFkYXRhQXZhaWxhYmxlKG93bmVyKTtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5pc0E8SVZpZXdTdGF0ZUNvbnRyaWJ1dG9yPHVua25vd24+ICYgTWFuYWdlZE9iamVjdD4oXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy52aWV3U3RhdGUuSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yXCIpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5nZXRQYWdlQ29udHJvbGxlcigpPy52aWV3U3RhdGUucmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yKHRoaXMpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKSkge1xuXHRcdFx0XHRpbml0Q29udHJvbGxlckV4dGVuc2lvbkhvb2tIYW5kbGVycyh0aGlzLCB0aGlzLmdldFBhZ2VDb250cm9sbGVyKCkhKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCFmcm9tQXBwbHlTZXR0aW5ncyAmJiAhdGhpcy5jb250ZW50KSB7XG5cdFx0XHRcdC8vIEluIGNhc2UgY291bGRuJ3QgY3JlYXRlIHRoZSBjb250ZW50IGR1cmluZyB0aGUgYXBwbHlTZXR0aW5ncywgdHJ5IGFnYWluXG5cdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFwiVGhlIGJ1aWxkaW5nIGJsb2NrIHdhcyBub3QgY3JlYXRlZCB3aXRoaW4gYW4gRXh0ZW5zaW9uQVBJLnJ1bldpdGhGUE1Db250ZXh0IGNhbGwsIGZvciBwZXJmb3JtYW5jZSByZWFzb24gaXQncyByZWNvbW1lbmRlZCB0byBkbyBzby5cIixcblx0XHRcdFx0XHR0aGlzIGFzIHVua25vd24gYXMgc3RyaW5nXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuYXR0YWNoRXZlbnRPbmNlKFwibW9kZWxDb250ZXh0Q2hhbmdlXCIsIGZ1bmN0aW9uICh0aGlzOiBCdWlsZGluZ0Jsb2NrKTogdm9pZCB7XG5cdFx0XHRcdHRoaXMuX2NoZWNrSWZNZXRhZGF0YVJlYWR5KCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRjbG9uZShzSWRTdWZmaXg6IHN0cmluZywgYUxvY2FsSWRzOiBzdHJpbmdbXSk6IHRoaXMge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHRpZiAob3duZXIpIHtcblx0XHRcdHJldHVybiBvd25lci5ydW5Bc093bmVyKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHN1cGVyLmNsb25lKHNJZFN1ZmZpeCwgYUxvY2FsSWRzKTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gc3VwZXIuY2xvbmUoc0lkU3VmZml4LCBhTG9jYWxJZHMpO1xuXHRcdH1cblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdC8vIFRvIGJlIG92ZXJyaWRlbiBieSB0aGUgY2hpbGQgY2xhc3Ncblx0fVxuXG5cdGdldEFwcENvbXBvbmVudCgpOiBBcHBDb21wb25lbnQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHRyZXR1cm4gb3duZXI/LmdldEFwcENvbXBvbmVudCgpO1xuXHR9XG5cblx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aDxOPih0YXJnZXRQYXRoPzogc3RyaW5nKTogRGF0YU1vZGVsT2JqZWN0UGF0aDxOPiB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLl9nZXRPd25lcigpITtcblx0XHRjb25zdCBtZXRhTW9kZWwgPSBvd25lci5nZXRNZXRhTW9kZWwodGhpcy5tZXRhTW9kZWwpO1xuXHRcdGNvbnN0IHRhcmdldFBhdGhUb1VzZSA9IHRhcmdldFBhdGggPz8gdGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCk7XG5cdFx0cmV0dXJuIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0c0ZvclRhcmdldFBhdGgodGFyZ2V0UGF0aFRvVXNlISwgbWV0YU1vZGVsKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbnRleHQgcGF0aCBmcm9tIHRoZSBvd25lciBjb21wb25lbnQuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250ZXh0IHBhdGhcblx0ICovXG5cdGdldE93bmVyQ29udGV4dFBhdGgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCkhO1xuXHRcdHJldHVybiBvd25lci5nZXRGdWxsQ29udGV4dFBhdGgodGhpcy5tZXRhTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgZGF0YSBtb2RlbCBvYmplY3QgZm9yIHRoZSBnaXZlbiBtZXRhcGF0aCBhbmQgb3B0aW9uYWwgY29udGV4dFBhdGguXG5cdCAqIEBwYXJhbSBtZXRhcGF0aFxuXHQgKiBAcGFyYW0gY29udGV4dFBhdGhcblx0ICogQHJldHVybnMgVGhlIGRhdGEgbW9kZWwgb2JqZWN0IHBhdGhcblx0ICovXG5cdGdldERhdGFNb2RlbE9iamVjdEZvck1ldGFQYXRoPEV4cGVjdGVkRGF0YU1vZGVsVHlwZT4oXG5cdFx0bWV0YXBhdGg6IHN0cmluZyxcblx0XHRjb250ZXh0UGF0aD86IHN0cmluZ1xuXHQpOiBEYXRhTW9kZWxPYmplY3RQYXRoPEV4cGVjdGVkRGF0YU1vZGVsVHlwZT4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRsZXQgY29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoID8/IHRoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpO1xuXHRcdGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aFRvVXNlPy5zdGFydHNXaXRoKFwiL1wiKSA/IGNvbnRleHRQYXRoVG9Vc2UgOiB1bmRlZmluZWQ7XG5cdFx0aWYgKCFtZXRhTW9kZWwgfHwgIShjb250ZXh0UGF0aFRvVXNlIHx8IG1ldGFwYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBtZXRhbW9kZWwgb3IgbWV0YXBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoIGNvbnRleHRQYXRoXCIpO1xuXHRcdH1cblx0XHRsZXQgbWV0YUNvbnRleHQgPSBjb250ZXh0UGF0aFRvVXNlID8gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGNvbnRleHRQYXRoVG9Vc2UpIDogdW5kZWZpbmVkO1xuXHRcdG1ldGFDb250ZXh0ID0gbWV0YUNvbnRleHQgPyBtZXRhQ29udGV4dCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBtZXRhUGF0aENvbnRleHQgPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQobWV0YXBhdGgsIG1ldGFDb250ZXh0KTtcblx0XHRyZXR1cm4gbWV0YVBhdGhDb250ZXh0XG5cdFx0XHQ/IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPihtZXRhUGF0aENvbnRleHQsIG1ldGFDb250ZXh0KVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBNZXRhUGF0aCBvYmplY3QgZm9yIHRoZSBnaXZlbiBtZXRhUGF0aCBhbmQgb3B0aW9uYWwgY29udGV4dFBhdGguXG5cdCAqIEBwYXJhbSBtZXRhUGF0aFxuXHQgKiBAcGFyYW0gY29udGV4dFBhdGhcblx0ICogQHJldHVybnMgQSBNZXRhUGF0aCBwb2ludGluZyB0byB0aGUgdGFyZ2V0IHttZXRhUGF0aCwgY29udGV4dFBhdGh9XG5cdCAqL1xuXHRnZXRNZXRhUGF0aE9iamVjdDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KG1ldGFQYXRoOiBzdHJpbmcsIGNvbnRleHRQYXRoPzogc3RyaW5nKTogTWV0YVBhdGg8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPiB8IG51bGwge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRsZXQgY29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoID8/IHRoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpO1xuXHRcdGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aFRvVXNlPy5zdGFydHNXaXRoKFwiL1wiKSA/IGNvbnRleHRQYXRoVG9Vc2UgOiB1bmRlZmluZWQ7XG5cdFx0aWYgKCFtZXRhTW9kZWwgfHwgIShjb250ZXh0UGF0aFRvVXNlIHx8IG1ldGFQYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpKSB7XG5cdFx0XHRMb2cud2FybmluZyhgTm8gbWV0YW1vZGVsIG9yIG1ldGFQYXRoIGlzIG5vdCByZWFjaGFibGUgd2l0aCAke2NvbnRleHRQYXRofToke21ldGFQYXRofWApO1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gbmV3IE1ldGFQYXRoKGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpLCBtZXRhUGF0aCwgY29udGV4dFBhdGhUb1VzZSEpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdExvZy53YXJuaW5nKGBObyBtZXRhbW9kZWwgb3IgbWV0YVBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoICR7Y29udGV4dFBhdGh9OiR7bWV0YVBhdGh9YCk7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgY3JlYXRlSWQoLi4uc3RyaW5nUGFydHM6IChzdHJpbmcgfCB1bmRlZmluZWQgfCBEYXRhTW9kZWxPYmplY3RQYXRoPEF1dGhvcml6ZWRJZEFubm90YXRpb25zVHlwZT4pW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdC8vIElmIHRoZSBjaGlsZCBpbnN0YW5jZSBoYXMgYW4gSUQgcHJvcGVydHkgdXNlIGl0IG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG5cdFx0aWYgKHRoaXMuZ2V0SWQoKSkge1xuXHRcdFx0cmV0dXJuIGdlbmVyYXRlKFt0aGlzLmdldElkKCksIC4uLnN0cmluZ1BhcnRzXSk7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXRUcmFuc2xhdGVkVGV4dCh0ZXh0SUQ6IHN0cmluZywgcGFyYW1ldGVycz86IHVua25vd25bXSwgbWV0YVBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoKHRoaXMuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSA/PyB0aGlzLl9nZXRPd25lcigpPy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpKSBhcyBSZXNvdXJjZU1vZGVsKT8uZ2V0VGV4dChcblx0XHRcdFx0dGV4dElELFxuXHRcdFx0XHRwYXJhbWV0ZXJzLFxuXHRcdFx0XHRtZXRhUGF0aFxuXHRcdFx0KSB8fCB0ZXh0SURcblx0XHQpO1xuXHR9XG5cblx0Z2V0TWFuaWZlc3RXcmFwcGVyKCk6IE1hbmlmZXN0V3JhcHBlciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldE93bmVyKCk/LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHR9XG59XG5cbmludGVyZmFjZSBCdWlsZGluZ0Jsb2NrPFQgZXh0ZW5kcyBVSTVFbGVtZW50PiB7XG5cdGdldENvbnRlbnQoKTogVCB8IHVuZGVmaW5lZDtcblx0Z2V0QXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1aWxkaW5nQmxvY2s7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBOEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTkEsSUFRTUEsYUFBYSxJQUFBQyxJQUFBLEdBRGxCQyxjQUFjLENBQUMsMENBQTBDLENBQUMsRUFBQUMsS0FBQSxHQUt6REMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBSixJQUFBLENBQUFLLE1BQUEsSUFBQUMsT0FBQSxJQUFBQyxjQUFBLDBCQUFBQyxrQkFBQTtJQU83QixTQUFBVCxjQUFZVSxRQUFzRCxFQUFFQyxNQUEyQyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNoSEEsS0FBQSxHQUFBSCxrQkFBQSxDQUFBSSxJQUFBLE9BQU1ILFFBQVEsRUFBRUMsTUFBTSxDQUFDO01BWHhCO0FBQ0Q7QUFDQTtNQUZDRywwQkFBQSxDQUFBRixLQUFBLGVBQUFHLFdBQUEsRUFBQUgsS0FBQTtNQUFBQSxLQUFBLENBTVVJLGlCQUFpQixHQUFHLEtBQUs7TUFNbENKLEtBQUEsQ0FBS0ssaUJBQWlC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
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
2
|
import BuildingBlockBase from "sap/fe/base/BuildingBlockBase";
|
|
3
|
-
import type {
|
|
3
|
+
import type { PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
4
4
|
import { defineUI5Class, property } from "sap/fe/base/ClassSupport";
|
|
5
|
+
import { initControllerExtensionHookHandlers, removeControllerExtensionHookHandlers } from "sap/fe/base/HookSupport";
|
|
5
6
|
import type { FEView } from "sap/fe/core/BaseController";
|
|
6
7
|
import type PageController from "sap/fe/core/PageController";
|
|
7
8
|
import type ResourceModel from "sap/fe/core/ResourceModel";
|
|
8
9
|
import type TemplateComponent from "sap/fe/core/TemplateComponent";
|
|
9
10
|
import type IViewStateContributor from "sap/fe/core/controllerextensions/viewState/IViewStateContributor";
|
|
11
|
+
import type ManifestWrapper from "sap/fe/core/converters/ManifestWrapper";
|
|
10
12
|
import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
|
|
11
13
|
import { convertTypes, getInvolvedDataModelObjectsForTargetPath } from "sap/fe/core/converters/MetaModelConverter";
|
|
12
14
|
import MetaPath from "sap/fe/core/helpers/MetaPath";
|
|
@@ -19,6 +21,7 @@ import Component from "sap/ui/core/Component";
|
|
|
19
21
|
import type Control from "sap/ui/core/Control";
|
|
20
22
|
import type UI5Element from "sap/ui/core/Element";
|
|
21
23
|
import ElementRegistry from "sap/ui/core/ElementRegistry";
|
|
24
|
+
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
22
25
|
import type AppComponent from "../AppComponent";
|
|
23
26
|
|
|
24
27
|
export type ObserveBuildingBlock = {
|
|
@@ -33,7 +36,7 @@ export type ObserveBuildingBlock = {
|
|
|
33
36
|
* @public
|
|
34
37
|
*/
|
|
35
38
|
@defineUI5Class("sap.fe.core.buildingBlocks.BuildingBlock")
|
|
36
|
-
class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T> {
|
|
39
|
+
class BuildingBlock<T extends UI5Element = Control, K extends object = {}> extends BuildingBlockBase<T, K> {
|
|
37
40
|
/**
|
|
38
41
|
* The metamodel name or id to be used for this building block
|
|
39
42
|
*/
|
|
@@ -42,8 +45,6 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
42
45
|
|
|
43
46
|
protected _applyingSettings = false;
|
|
44
47
|
|
|
45
|
-
private _modelContextChangeEventHandler?: Function;
|
|
46
|
-
|
|
47
48
|
private static _bbobserverMap: Map<string, ObserveBuildingBlock[]> = new Map();
|
|
48
49
|
|
|
49
50
|
constructor(settings?: string | PropertiesOf<BuildingBlockBase<T>>, others?: PropertiesOf<BuildingBlockBase<T>>) {
|
|
@@ -56,6 +57,7 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
56
57
|
super.applySettings(mSettings, oScope);
|
|
57
58
|
this._applyingSettings = false;
|
|
58
59
|
this._checkIfMetadataReady(true);
|
|
60
|
+
|
|
59
61
|
return this;
|
|
60
62
|
}
|
|
61
63
|
|
|
@@ -121,16 +123,34 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
121
123
|
if (owner?.isA<TemplateComponent>("sap.fe.core.TemplateComponent")) {
|
|
122
124
|
return owner;
|
|
123
125
|
}
|
|
126
|
+
if (owner?.isA<TemplateComponent>("sap.fe.core.buildingBlocks.IBuildingBlockOwnerComponent")) {
|
|
127
|
+
return owner;
|
|
128
|
+
}
|
|
124
129
|
}
|
|
125
130
|
|
|
126
|
-
|
|
127
|
-
|
|
131
|
+
/*
|
|
132
|
+
* Get the page controller instance
|
|
133
|
+
* @returns The page controller instance
|
|
134
|
+
*/
|
|
135
|
+
getPageController(): PageController {
|
|
136
|
+
const pageController = this._getOwner()?.getRootController?.();
|
|
137
|
+
if (!pageController) {
|
|
138
|
+
Log.error("No sap.fe.core.PageController found");
|
|
139
|
+
}
|
|
140
|
+
return pageController!;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
getMetaModel(): ODataMetaModel | undefined {
|
|
144
|
+
return this._getOwner()?.getMetaModel(this.metaModel);
|
|
128
145
|
}
|
|
129
146
|
|
|
130
147
|
override destroy(suppressInvalidate?: boolean): void {
|
|
131
148
|
if (this.isA<IViewStateContributor<unknown> & ManagedObject>("sap.fe.core.controllerextensions.viewState.IViewStateContributor")) {
|
|
132
149
|
this.getPageController()?.viewState?.deregisterStateContributor(this);
|
|
133
150
|
}
|
|
151
|
+
if (this.getPageController()) {
|
|
152
|
+
removeControllerExtensionHookHandlers(this, this.getPageController()!);
|
|
153
|
+
}
|
|
134
154
|
this.notifyBBObservers(true);
|
|
135
155
|
super.destroy(suppressInvalidate);
|
|
136
156
|
}
|
|
@@ -144,8 +164,8 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
144
164
|
) {
|
|
145
165
|
this.getPageController()?.viewState.registerStateContributor(this);
|
|
146
166
|
}
|
|
147
|
-
if (this.
|
|
148
|
-
this
|
|
167
|
+
if (this.getPageController()) {
|
|
168
|
+
initControllerExtensionHookHandlers(this, this.getPageController()!);
|
|
149
169
|
}
|
|
150
170
|
} else {
|
|
151
171
|
if (!fromApplySettings && !this.content) {
|
|
@@ -155,12 +175,21 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
155
175
|
this as unknown as string
|
|
156
176
|
);
|
|
157
177
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
178
|
+
|
|
179
|
+
this.attachEventOnce("modelContextChange", function (this: BuildingBlock): void {
|
|
180
|
+
this._checkIfMetadataReady();
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
clone(sIdSuffix: string, aLocalIds: string[]): this {
|
|
186
|
+
const owner = this._getOwner();
|
|
187
|
+
if (owner) {
|
|
188
|
+
return owner.runAsOwner(() => {
|
|
189
|
+
return super.clone(sIdSuffix, aLocalIds);
|
|
190
|
+
});
|
|
191
|
+
} else {
|
|
192
|
+
return super.clone(sIdSuffix, aLocalIds);
|
|
164
193
|
}
|
|
165
194
|
}
|
|
166
195
|
|
|
@@ -170,18 +199,14 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
170
199
|
|
|
171
200
|
getAppComponent(): AppComponent | undefined {
|
|
172
201
|
const owner = this._getOwner();
|
|
173
|
-
|
|
174
|
-
return owner.getPreprocessorContext()?.appComponent;
|
|
175
|
-
} else {
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
202
|
+
return owner?.getAppComponent();
|
|
178
203
|
}
|
|
179
204
|
|
|
180
|
-
getDataModelObjectPath<N>(targetPath
|
|
205
|
+
getDataModelObjectPath<N>(targetPath?: string): DataModelObjectPath<N> | undefined {
|
|
181
206
|
const owner = this._getOwner()!;
|
|
182
207
|
const metaModel = owner.getMetaModel(this.metaModel);
|
|
183
|
-
const targetPathToUse = targetPath ??
|
|
184
|
-
return getInvolvedDataModelObjectsForTargetPath(targetPathToUse
|
|
208
|
+
const targetPathToUse = targetPath ?? this.getOwnerContextPath();
|
|
209
|
+
return getInvolvedDataModelObjectsForTargetPath(targetPathToUse!, metaModel);
|
|
185
210
|
}
|
|
186
211
|
|
|
187
212
|
/**
|
|
@@ -190,7 +215,7 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
190
215
|
*/
|
|
191
216
|
getOwnerContextPath(): string | undefined {
|
|
192
217
|
const owner = this._getOwner()!;
|
|
193
|
-
return owner.
|
|
218
|
+
return owner.getFullContextPath(this.metaModel);
|
|
194
219
|
}
|
|
195
220
|
|
|
196
221
|
/**
|
|
@@ -205,7 +230,7 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
205
230
|
): DataModelObjectPath<ExpectedDataModelType> | undefined {
|
|
206
231
|
const owner = this._getOwner()!;
|
|
207
232
|
const metaModel = owner.getMetaModel(this.metaModel);
|
|
208
|
-
let contextPathToUse = contextPath ??
|
|
233
|
+
let contextPathToUse = contextPath ?? this.getOwnerContextPath();
|
|
209
234
|
contextPathToUse = contextPathToUse?.startsWith("/") ? contextPathToUse : undefined;
|
|
210
235
|
if (!metaModel || !(contextPathToUse || metapath.charAt(0) === "/")) {
|
|
211
236
|
throw new Error("No metamodel or metapath is not reachable with contextPath");
|
|
@@ -227,9 +252,9 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
227
252
|
getMetaPathObject<ExpectedDataModelType>(metaPath: string, contextPath?: string): MetaPath<ExpectedDataModelType> | null {
|
|
228
253
|
const owner = this._getOwner()!;
|
|
229
254
|
const metaModel = owner.getMetaModel(this.metaModel);
|
|
230
|
-
let contextPathToUse = contextPath ??
|
|
255
|
+
let contextPathToUse = contextPath ?? this.getOwnerContextPath();
|
|
231
256
|
contextPathToUse = contextPathToUse?.startsWith("/") ? contextPathToUse : undefined;
|
|
232
|
-
if (!
|
|
257
|
+
if (!metaModel || !(contextPathToUse || metaPath.charAt(0) === "/")) {
|
|
233
258
|
Log.warning(`No metamodel or metaPath is not reachable with ${contextPath}:${metaPath}`);
|
|
234
259
|
return null;
|
|
235
260
|
}
|
|
@@ -251,13 +276,17 @@ class BuildingBlock<T extends UI5Element = Control> extends BuildingBlockBase<T>
|
|
|
251
276
|
|
|
252
277
|
getTranslatedText(textID: string, parameters?: unknown[], metaPath?: string): string {
|
|
253
278
|
return (
|
|
254
|
-
((this.getModel("sap.fe.i18n") ?? this._getOwner()?.
|
|
279
|
+
((this.getModel("sap.fe.i18n") ?? this._getOwner()?.getModel("sap.fe.i18n")) as ResourceModel)?.getText(
|
|
255
280
|
textID,
|
|
256
281
|
parameters,
|
|
257
282
|
metaPath
|
|
258
283
|
) || textID
|
|
259
284
|
);
|
|
260
285
|
}
|
|
286
|
+
|
|
287
|
+
getManifestWrapper(): ManifestWrapper | undefined {
|
|
288
|
+
return this._getOwner()?.getManifestWrapper();
|
|
289
|
+
}
|
|
261
290
|
}
|
|
262
291
|
|
|
263
292
|
interface BuildingBlock<T extends UI5Element> {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define([], function () {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
}, false);
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJJQnVpbGRpbmdCbG9ja093bmVyQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQnVpbGRpbmdCbG9ja093bmVyQ29tcG9uZW50IHtcblx0X19pbXBsZW1lbnRzX19zYXBfZmVfY29yZV9idWlsZGluZ0Jsb2Nrc19JQnVpbGRpbmdCbG9ja093bmVyQ29tcG9uZW50OiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBTdGFuZGFyZCBVSTUgbWV0aG9kIHRvIGNoZWNrIGlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuXHQgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSB0byBjaGVjayBmb3Jcblx0ICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHR5cGVcblx0ICovXG5cdGlzQSh0eXBlOiBzdHJpbmcpOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbnRyb2xsZXIgZm9yIHRoZSBjdXJyZW50IHBhZ2Ugb3IgdW5kZWZpbmVkIGlmIG5vbmUgZXhpc3RzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbGxlciBmb3IgdGhlIGN1cnJlbnQgcGFnZSBvciB1bmRlZmluZWQgaWYgbm9uZSBleGlzdHMuXG5cdCAqL1xuXHRnZXRSb290Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBBcHBDb21wb25lbnQgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uXG5cdCAqIEByZXR1cm5zIFRoZSBBcHBDb21wb25lbnQgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uXG5cdCAqL1xuXHRnZXRBcHBDb21wb25lbnQoKTogQXBwQ29tcG9uZW50O1xuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGZ1bGwgY29udGV4dCBwYXRoIGZvciB0aGUgZ2l2ZW4gbWV0YU1vZGVsTmFtZS5cblx0ICogVGhpcyBzaG91bGQgcmVwcmVzZW50IHRoZSBmdWxsIHBhdGggdG8gdGhlIGN1cnJlbnQgb2JqZWN0IGRpc3BsYXllZCBpbiB0aGUgVUksIG9yIHVuZGVmaW5lZCBpZiBub25lIGV4aXN0cy5cblx0ICogQHBhcmFtIG1ldGFNb2RlbE5hbWUgVGhlIG5hbWUgb2YgdGhlIG1ldGFNb2RlbCB0byByZXRyaWV2ZSB0aGUgY29udGV4dCBwYXRoIGZvclxuXHQgKiBAcmV0dXJucyBUaGUgZnVsbCBjb250ZXh0IHBhdGggZm9yIHRoZSBnaXZlbiBtZXRhTW9kZWxOYW1lXG5cdCAqL1xuXHRnZXRGdWxsQ29udGV4dFBhdGgobWV0YU1vZGVsTmFtZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBtb2RlbCBmb3IgdGhlIGdpdmVuIG1vZGVsTmFtZSBvciB0aGUgZGVmYXVsdCBtb2RlbCBpZiBub25lIGlzIHByb3ZpZGVkLlxuXHQgKiBAcGFyYW0gbW9kZWxOYW1lIFRoZSBuYW1lIG9mIHRoZSBtb2RlbCB0byByZXRyaWV2ZVxuXHQgKiBAcmV0dXJucyBUaGUgbW9kZWwgZm9yIHRoZSBnaXZlbiBtb2RlbE5hbWUgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUgb2YgdGhhdCBuYW1lXG5cdCAqL1xuXHRnZXRNb2RlbChtb2RlbE5hbWU/OiBzdHJpbmcpOiBNb2RlbCB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBPRGF0YU1ldGFNb2RlbCBmb3IgdGhlIGdpdmVuIG1ldGFNb2RlbE5hbWVcblx0ICogQHBhcmFtIG1ldGFNb2RlbE5hbWVcblx0ICovXG5cdGdldE1ldGFNb2RlbChtZXRhTW9kZWxOYW1lPzogc3RyaW5nKTogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|