@sapui5/sap.fe.core 1.134.0 → 1.136.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 +6 -62
- package/src/sap/fe/core/ActionRuntime.ts +14 -65
- package/src/sap/fe/core/AppComponent.js +10 -2
- package/src/sap/fe/core/AppComponent.ts +6 -0
- package/src/sap/fe/core/AppStateHandler.js +9 -7
- package/src/sap/fe/core/AppStateHandler.ts +7 -5
- package/src/sap/fe/core/BaseController.js +1 -1
- package/src/sap/fe/core/CommonUtils.js +8 -4
- package/src/sap/fe/core/CommonUtils.ts +19 -4
- package/src/sap/fe/core/ExtensionAPI.js +7 -5
- package/src/sap/fe/core/ExtensionAPI.ts +5 -3
- package/src/sap/fe/core/IRowBindingInterface.js +1 -1
- package/src/sap/fe/core/InsightsFormattersExtension.js +1 -1
- package/src/sap/fe/core/PageController.js +36 -6
- package/src/sap/fe/core/PageController.ts +30 -0
- package/src/sap/fe/core/ResourceModel.js +1 -1
- package/src/sap/fe/core/ReuseComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/UIProvider.js +2 -2
- package/src/sap/fe/core/UIProvider.ts +3 -32
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +34 -16
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +39 -18
- package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.js +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -0
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +7 -7
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +9 -9
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -3
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +3 -1
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +15 -15
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +19 -19
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +74 -93
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +89 -108
- package/src/sap/fe/core/controllerextensions/Feedback.js +1 -1
- package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +355 -0
- package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +387 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +36 -11
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +36 -10
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +36 -6
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +41 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +5 -2
- package/src/sap/fe/core/controllerextensions/PageReady.ts +3 -0
- package/src/sap/fe/core/controllerextensions/Paginator.js +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.js +1 -1
- package/src/sap/fe/core/controllerextensions/Recommendations.js +1 -1
- package/src/sap/fe/core/controllerextensions/Routing.js +9 -9
- package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js +13 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -6
- package/src/sap/fe/core/controllerextensions/Telemetry.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +14 -11
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +20 -14
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +4 -12
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +2 -10
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +12 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +12 -0
- package/src/sap/fe/core/controllerextensions/dialog/ODataStrictDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +111 -89
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +140 -105
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +137 -79
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +133 -120
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +4 -1
- package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +26 -17
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +32 -23
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +3 -3
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +103 -23
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +144 -53
- package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.js +29 -11
- package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.ts +39 -15
- package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.js +24 -22
- package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.ts +28 -26
- package/src/sap/fe/core/controllerextensions/editFlow/operations/actionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -572
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +25 -873
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +98 -56
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -80
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +5 -3
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +7 -4
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +1 -1
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.js +1 -1
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/AnyElement.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/ComponentLoader.js +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.tsx +8 -1
- package/src/sap/fe/core/controls/DataWatcher.js +4 -3
- package/src/sap/fe/core/controls/DataWatcher.tsx +4 -1
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +10 -4
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +13 -2
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +1 -1
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.js +68 -0
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.tsx +52 -0
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.js +144 -0
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.tsx +128 -0
- package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.js +53 -0
- package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.tsx +39 -0
- package/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -2
- package/src/sap/fe/core/converters/ManifestSettings.ts +42 -20
- package/src/sap/fe/core/converters/ManifestWrapper.js +8 -2
- package/src/sap/fe/core/converters/ManifestWrapper.ts +8 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +2 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +2 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js +55 -6
- package/src/sap/fe/core/converters/controls/Common/Action.ts +59 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.js +45 -6
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +60 -9
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.js +21 -5
- package/src/sap/fe/core/converters/controls/Common/Form.ts +25 -5
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js +89 -1686
- package/src/sap/fe/core/converters/controls/Common/Table.ts +254 -2513
- package/src/sap/fe/core/converters/controls/Common/table/Columns.js +1701 -0
- package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +2377 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +64 -15
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +76 -14
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +7 -36
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +8 -46
- package/src/sap/fe/core/converters/controls/ListReport/FilterField.js +106 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterField.ts +129 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +10 -5
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +8 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +5 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +11 -4
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +7 -2
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +30 -8
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +40 -16
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +5 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +5 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/designtime/AnnotationBasedChanges.js +184 -0
- package/src/sap/fe/core/designtime/AnnotationBasedChanges.ts +240 -0
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/designtime/messagebundle.properties +11 -0
- package/src/sap/fe/core/designtime/messagebundle_ar.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_bg.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ca.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_cnr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_cs.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_cy.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_da.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_de.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_el.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_en.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_en_GB.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_es.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_es_MX.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_et.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_fi.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_fr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_fr_CA.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_hi.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_hr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_hu.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_id.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_it.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_iw.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ja.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_kk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ko.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_lt.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_lv.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_mk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ms.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_nl.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_no.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_pl.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_pt.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_pt_PT.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ro.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_ru.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sh.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sl.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_sv.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_th.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_tr.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_uk.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_vi.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_zh_CN.properties +7 -0
- package/src/sap/fe/core/designtime/messagebundle_zh_TW.properties +7 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/StandardFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +27 -12
- package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -11
- package/src/sap/fe/core/fpm/Component.js +1 -1
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +25 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +28 -2
- package/src/sap/fe/core/helpers/BindingHelper.js +4 -3
- package/src/sap/fe/core/helpers/BindingHelper.ts +2 -1
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +6 -12
- package/src/sap/fe/core/helpers/DeleteHelper.ts +4 -9
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +9 -3
- package/src/sap/fe/core/helpers/FPMHelper.ts +13 -1
- package/src/sap/fe/core/helpers/HTTP503Handler.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
- package/src/sap/fe/core/helpers/ManifestHelper.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
- package/src/sap/fe/core/helpers/MetaPath.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js +15 -5
- package/src/sap/fe/core/helpers/ModelHelper.ts +15 -4
- package/src/sap/fe/core/helpers/PasteHelper.js +39 -40
- package/src/sap/fe/core/helpers/PasteHelper.ts +49 -51
- package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -1
- package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SizeHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
- package/src/sap/fe/core/helpers/ToES6Promise.js +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
- package/src/sap/fe/core/helpers/WebSocket.js +11 -2
- package/src/sap/fe/core/helpers/WebSocket.ts +8 -0
- package/src/sap/fe/core/library.js +16 -4
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/library.ts +1 -0
- package/src/sap/fe/core/manifestMerger/AddNewPage.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +41 -2
- package/src/sap/fe/core/messagebundle_ar.properties +25 -4
- package/src/sap/fe/core/messagebundle_bg.properties +25 -4
- package/src/sap/fe/core/messagebundle_ca.properties +24 -3
- package/src/sap/fe/core/messagebundle_cnr.properties +25 -4
- package/src/sap/fe/core/messagebundle_cs.properties +23 -2
- package/src/sap/fe/core/messagebundle_cy.properties +24 -3
- package/src/sap/fe/core/messagebundle_da.properties +25 -4
- package/src/sap/fe/core/messagebundle_de.properties +28 -7
- package/src/sap/fe/core/messagebundle_el.properties +23 -2
- package/src/sap/fe/core/messagebundle_en.properties +25 -4
- package/src/sap/fe/core/messagebundle_en_GB.properties +25 -4
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +26 -5
- package/src/sap/fe/core/messagebundle_es.properties +23 -2
- package/src/sap/fe/core/messagebundle_es_MX.properties +23 -2
- package/src/sap/fe/core/messagebundle_et.properties +23 -2
- package/src/sap/fe/core/messagebundle_fi.properties +23 -2
- package/src/sap/fe/core/messagebundle_fr.properties +26 -5
- package/src/sap/fe/core/messagebundle_fr_CA.properties +23 -2
- package/src/sap/fe/core/messagebundle_hi.properties +24 -3
- package/src/sap/fe/core/messagebundle_hr.properties +27 -6
- package/src/sap/fe/core/messagebundle_hu.properties +23 -2
- package/src/sap/fe/core/messagebundle_id.properties +23 -2
- package/src/sap/fe/core/messagebundle_it.properties +25 -4
- package/src/sap/fe/core/messagebundle_iw.properties +24 -3
- package/src/sap/fe/core/messagebundle_ja.properties +24 -3
- package/src/sap/fe/core/messagebundle_kk.properties +23 -2
- package/src/sap/fe/core/messagebundle_ko.properties +25 -4
- package/src/sap/fe/core/messagebundle_lt.properties +23 -2
- package/src/sap/fe/core/messagebundle_lv.properties +25 -4
- package/src/sap/fe/core/messagebundle_mk.properties +23 -2
- package/src/sap/fe/core/messagebundle_ms.properties +24 -3
- package/src/sap/fe/core/messagebundle_nl.properties +23 -2
- package/src/sap/fe/core/messagebundle_no.properties +23 -2
- package/src/sap/fe/core/messagebundle_pl.properties +25 -4
- package/src/sap/fe/core/messagebundle_pt.properties +25 -4
- package/src/sap/fe/core/messagebundle_pt_PT.properties +24 -3
- package/src/sap/fe/core/messagebundle_ro.properties +25 -4
- package/src/sap/fe/core/messagebundle_ru.properties +24 -3
- package/src/sap/fe/core/messagebundle_sh.properties +25 -4
- package/src/sap/fe/core/messagebundle_sk.properties +24 -3
- package/src/sap/fe/core/messagebundle_sl.properties +28 -7
- package/src/sap/fe/core/messagebundle_sr.properties +25 -4
- package/src/sap/fe/core/messagebundle_sv.properties +23 -2
- package/src/sap/fe/core/messagebundle_th.properties +25 -4
- package/src/sap/fe/core/messagebundle_tr.properties +23 -2
- package/src/sap/fe/core/messagebundle_uk.properties +25 -4
- package/src/sap/fe/core/messagebundle_vi.properties +25 -4
- package/src/sap/fe/core/messagebundle_zh_CN.properties +26 -5
- package/src/sap/fe/core/messagebundle_zh_TW.properties +24 -3
- package/src/sap/fe/core/rootView/Fcl.controller.js +11 -7
- package/src/sap/fe/core/rootView/Fcl.controller.ts +16 -7
- package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -3
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js +87 -35
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +113 -57
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +29 -13
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +27 -13
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ContextSharingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +8 -2
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +6 -0
- package/src/sap/fe/core/services/InlineEditServiceFactory.js +11 -5
- package/src/sap/fe/core/services/InlineEditServiceFactory.ts +9 -3
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +14 -7
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +11 -5
- package/src/sap/fe/core/services/ShellServicesFactory.js +5 -4
- package/src/sap/fe/core/services/ShellServicesFactory.ts +5 -3
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +28 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +32 -3
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +199 -59
- package/src/sap/fe/core/templating/EntitySetHelper.ts +221 -61
- package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +8 -10
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +11 -10
- package/src/sap/fe/core/templating/UIFormatters.js +5 -2
- package/src/sap/fe/core/templating/UIFormatters.ts +3 -0
- package/src/sap/fe/core/type/Date.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/fe/core/type/EDM.js +1 -1
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +1 -1
- package/src/sap/fe/core/type/InputMask.js +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.js +0 -288
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.tsx +0 -208
- package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.js +0 -404
- package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.ts +0 -502
- package/src/sap/fe/core/designtime/TextArrangementChangeAction.js +0 -100
- package/src/sap/fe/core/designtime/TextArrangementChangeAction.ts +0 -134
- package/src/sap/fe/core/operationsHelper.js +0 -192
- package/src/sap/fe/core/operationsHelper.ts +0 -277
|
@@ -55,6 +55,7 @@ export type TemplateProcessorSettings = {
|
|
|
55
55
|
models: Record<string, Model> & {
|
|
56
56
|
converterContext: JSONModel;
|
|
57
57
|
viewData: JSONModel;
|
|
58
|
+
internal: JSONModel;
|
|
58
59
|
metaModel: ODataMetaModel;
|
|
59
60
|
"sap.fe.i18n"?: ResourceModel;
|
|
60
61
|
};
|
|
@@ -515,7 +516,7 @@ export type BuildingBlockAggregation = {
|
|
|
515
516
|
async function parseAggregation(
|
|
516
517
|
oVisitor: IVisitorCallback,
|
|
517
518
|
oAggregation?: Element,
|
|
518
|
-
|
|
519
|
+
definition?: BuildingBlockAggregationDefinition
|
|
519
520
|
): Promise<Record<string, BuildingBlockAggregation>> {
|
|
520
521
|
const oOutObjects: Record<string, BuildingBlockAggregation> = {};
|
|
521
522
|
if (oAggregation && oAggregation.children.length > 0) {
|
|
@@ -530,7 +531,10 @@ async function parseAggregation(
|
|
|
530
531
|
const children = oAggregation.children;
|
|
531
532
|
for (let childIdx = 0; childIdx < children.length; childIdx++) {
|
|
532
533
|
const childDefinition = children[childIdx];
|
|
533
|
-
let childKey =
|
|
534
|
+
let childKey =
|
|
535
|
+
childDefinition.getAttribute("key") ||
|
|
536
|
+
childDefinition.getAttribute("id") ||
|
|
537
|
+
(definition?.skipKey && definition.multiple === false && uid());
|
|
534
538
|
if (childKey) {
|
|
535
539
|
childKey = `InlineXML_${childKey}`;
|
|
536
540
|
childDefinition.setAttribute("key", childKey);
|
|
@@ -542,8 +546,8 @@ async function parseAggregation(
|
|
|
542
546
|
},
|
|
543
547
|
type: "Slot"
|
|
544
548
|
};
|
|
545
|
-
if (processAggregations) {
|
|
546
|
-
aggregationObject = processAggregations(childDefinition, aggregationObject);
|
|
549
|
+
if (definition?.processAggregations) {
|
|
550
|
+
aggregationObject = definition.processAggregations(childDefinition, aggregationObject);
|
|
547
551
|
}
|
|
548
552
|
oOutObjects[aggregationObject.key] = aggregationObject;
|
|
549
553
|
} else if (childDefinition.tagName !== "slot") {
|
|
@@ -624,11 +628,7 @@ async function processChildren(
|
|
|
624
628
|
}
|
|
625
629
|
const aggregationDefinition = oMetadata.aggregations[sAggregationName];
|
|
626
630
|
if (aggregationDefinition !== undefined && !aggregationDefinition.slot) {
|
|
627
|
-
const parsedAggregation = await parseAggregation(
|
|
628
|
-
oVisitor,
|
|
629
|
-
oFirstElementChild,
|
|
630
|
-
aggregationDefinition.processAggregations
|
|
631
|
-
);
|
|
631
|
+
const parsedAggregation = await parseAggregation(oVisitor, oFirstElementChild, aggregationDefinition);
|
|
632
632
|
propertyValues[sAggregationName] = parsedAggregation;
|
|
633
633
|
for (const parsedAggregationKey in parsedAggregation) {
|
|
634
634
|
oMetadata.aggregations[parsedAggregationKey] = parsedAggregation[parsedAggregationKey];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor", "sap/fe/core/converters/ConverterContext", "sap/fe/core/converters/ManifestWrapper", "sap/fe/core/helpers/StableIdHelper", "sap/fe/core/templating/DataModelPathHelper"], function (deepClone, merge, BuildingBlockTemplateProcessor, ConverterContext, ManifestWrapper, StableIdHelper, DataModelPathHelper) {
|
|
6
6
|
"use strict";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"], function (ClassSupport, ControllerExtension) {
|
|
6
6
|
"use strict";
|
|
@@ -52,12 +52,14 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
|
|
|
52
52
|
if (method.overrideExecution === "BeforeAsync") {
|
|
53
53
|
methodArrays.reverse();
|
|
54
54
|
}
|
|
55
|
+
let result;
|
|
55
56
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
56
57
|
args[_key] = arguments[_key];
|
|
57
58
|
}
|
|
58
59
|
for (const arg of methodArrays) {
|
|
59
|
-
await arg.apply(_this2, args);
|
|
60
|
+
result = await arg.apply(_this2, args);
|
|
60
61
|
}
|
|
62
|
+
return result;
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
65
|
});
|
|
@@ -70,4 +72,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
|
|
|
70
72
|
_exports = BaseControllerExtension;
|
|
71
73
|
return _exports;
|
|
72
74
|
}, false);
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9Db250cm9sbGVyRXh0ZW5zaW9uIiwiX3RoaXMiLCJjYWxsIiwiaW5pdCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRJbnRlcmZhY2UiLCJfdGhpczIiLCJpbnRlcmZhY2VPYmoiLCJtZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiYWxsTWV0aG9kcyIsImdldEFsbE1ldGhvZHMiLCJtZXRob2RIb2xkZXIiLCJtZXRob2ROYW1lIiwibWV0aG9kIiwib3ZlcnJpZGVFeGVjdXRpb24iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJwdXNoIiwiZ2V0IiwibWV0aG9kQXJyYXlzIiwicmV2ZXJzZSIsInJlc3VsdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiYXJnIiwiYXBwbHkiLCJDb250cm9sbGVyRXh0ZW5zaW9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyTWV0YWRhdGEgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyTWV0YWRhdGFcIjtcbi8qKlxuICogQSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciBjb250cm9sbGVyIGV4dGVuc2lvbiB1c2VkIGludGVybmFsbHkgaW4gc2FwLmZlIGZvciBjZW50cmFsIGZ1bmN0aW9uYWxpdGllcy5cbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjExOC4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkJhc2VDb250cm9sbGVyRXh0ZW5zaW9uXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdCh0aGlzIGFzIHVua25vd24gYXMgeyBpbml0OiBGdW5jdGlvbiB9KS5pbml0KCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGlzIGluc3RhbnRpYXRlZC5cblx0ICogV2UgbmVlZCB0byBvdmVycmlkZSBpdCBmb3IgdGhlIHNwZWNpZmljIGhhbmRsaW5nIGZvciBCZWZvcmVBc3luYyBhbmQgQWZ0ZXJBc3luYyBtZXRob2RzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgb2YgZXh0ZW5zaW9uIGp1c3QgcmVwbGFjZSBvdXIgaW1wbGVtZW50YXRpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBpbnRlcmZhY2UgZm9yIHRoaXMgY29udHJvbGxlciBleHRlbnNpb25cblx0ICovXG5cdGdldEludGVyZmFjZSgpOiBCYXNlT2JqZWN0IHtcblx0XHRjb25zdCBpbnRlcmZhY2VPYmogPSBzdXBlci5nZXRJbnRlcmZhY2UoKTtcblx0XHRjb25zdCBtZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKSBhcyBDb250cm9sbGVyTWV0YWRhdGE7XG5cdFx0Y29uc3QgYWxsTWV0aG9kcyA9IG1ldGFkYXRhLmdldEFsbE1ldGhvZHMoKTtcblx0XHRjb25zdCBtZXRob2RIb2xkZXI6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uW10+ID0ge307XG5cblx0XHRmb3IgKGNvbnN0IG1ldGhvZE5hbWUgaW4gYWxsTWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWV0aG9kID0gYWxsTWV0aG9kc1ttZXRob2ROYW1lXTtcblx0XHRcdGlmIChtZXRob2Qub3ZlcnJpZGVFeGVjdXRpb24gJiYgKG1ldGhvZC5vdmVycmlkZUV4ZWN1dGlvbiA9PT0gXCJBZnRlckFzeW5jXCIgfHwgbWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpKSB7XG5cdFx0XHRcdG1ldGhvZEhvbGRlclttZXRob2ROYW1lXSA9IFsoaW50ZXJmYWNlT2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+KVttZXRob2ROYW1lXV07XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnRlcmZhY2VPYmosIG1ldGhvZE5hbWUsIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogRnVuY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtZXRob2RIb2xkZXJbbWV0aG9kTmFtZV0ucHVzaCh2KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGFzeW5jICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWV0aG9kQXJyYXlzID0gbWV0aG9kSG9sZGVyW21ldGhvZE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRpZiAobWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRtZXRob2RBcnJheXMucmV2ZXJzZSgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGxldCByZXN1bHQ7XG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mIG1ldGhvZEFycmF5cykge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdCA9IGF3YWl0IGFyZy5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBpbnRlcmZhY2VPYmo7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTXFCQSx1QkFBdUIsSUFBQUMsSUFBQSxHQUQzQ0MsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSwwQkFBQUMsb0JBQUE7SUFFMUUsU0FBQUosd0JBQUEsRUFBYztNQUFBLElBQUFLLEtBQUE7TUFDYkEsS0FBQSxHQUFBRCxvQkFBQSxDQUFBRSxJQUFBLEtBQU0sQ0FBQztNQUNQRCxLQUFBLENBQXdDRSxJQUFJLENBQUMsQ0FBQztNQUFDLE9BQUFGLEtBQUE7SUFDaEQ7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQUpDRyxRQUFBLEdBQUFSLHVCQUFBO0lBQUFTLGNBQUEsQ0FBQVQsdUJBQUEsRUFBQUksb0JBQUE7SUFBQSxJQUFBTSxNQUFBLEdBQUFWLHVCQUFBLENBQUFXLFNBQUE7SUFBQUQsTUFBQSxDQUtBRSxZQUFZLEdBQVosU0FBQUEsWUFBWUEsQ0FBQSxFQUFlO01BQUEsSUFBQUMsTUFBQTtNQUMxQixNQUFNQyxZQUFZLEdBQUFWLG9CQUFBLENBQUFPLFNBQUEsQ0FBU0MsWUFBWSxDQUFBTixJQUFBLE1BQUU7TUFDekMsTUFBTVMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQXVCO01BQ3pELE1BQU1DLFVBQVUsR0FBR0YsUUFBUSxDQUFDRyxhQUFhLENBQUMsQ0FBQztNQUMzQyxNQUFNQyxZQUF3QyxHQUFHLENBQUMsQ0FBQztNQUVuRCxLQUFLLE1BQU1DLFVBQVUsSUFBSUgsVUFBVSxFQUFFO1FBQ3BDLE1BQU1JLE1BQU0sR0FBR0osVUFBVSxDQUFDRyxVQUFVLENBQUM7UUFDckMsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBS0QsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxZQUFZLElBQUlELE1BQU0sQ0FBQ0MsaUJBQWlCLEtBQUssYUFBYSxDQUFDLEVBQUU7VUFDMUhILFlBQVksQ0FBQ0MsVUFBVSxDQUFDLEdBQUcsQ0FBRU4sWUFBWSxDQUF5Q00sVUFBVSxDQUFDLENBQUM7VUFDOUZHLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDVixZQUFZLEVBQUVNLFVBQVUsRUFBRTtZQUMvQ0ssWUFBWSxFQUFFLElBQUk7WUFDbEJDLEdBQUcsRUFBR0MsQ0FBVyxJQUFLO2NBQ3JCLE9BQU9SLFlBQVksQ0FBQ0MsVUFBVSxDQUFDLENBQUNRLElBQUksQ0FBQ0QsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFDREUsR0FBRyxFQUFFQSxDQUFBLEtBQU07Y0FDVixPQUFPLGtCQUE4QjtnQkFDcEMsTUFBTUMsWUFBWSxHQUFHWCxZQUFZLENBQUNDLFVBQVUsQ0FBQztnQkFDN0MsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxhQUFhLEVBQUU7a0JBQy9DUSxZQUFZLENBQUNDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QjtnQkFDQSxJQUFJQyxNQUFNO2dCQUFDLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBTEtDLElBQUksT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7a0JBQUpGLElBQUksQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7Z0JBQUE7Z0JBTXBCLEtBQUssTUFBTUMsR0FBRyxJQUFJVCxZQUFZLEVBQUU7a0JBQy9CRSxNQUFNLEdBQUcsTUFBTU8sR0FBRyxDQUFDQyxLQUFLLENBQUMzQixNQUFJLEVBQUV1QixJQUFJLENBQUM7Z0JBQ3JDO2dCQUNBLE9BQU9KLE1BQU07Y0FDZCxDQUFDO1lBQ0Y7VUFDRCxDQUFDLENBQUM7UUFDSDtNQUNEO01BRUEsT0FBT2xCLFlBQVk7SUFDcEIsQ0FBQztJQUFBLE9BQUFkLHVCQUFBO0VBQUEsRUE1Q21EeUMsbUJBQW1CLE1BQUF0QyxNQUFBO0VBQUFLLFFBQUEsR0FBQVIsdUJBQUE7RUFBQSxPQUFBUSxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -40,9 +40,11 @@ export default class BaseControllerExtension extends ControllerExtension {
|
|
|
40
40
|
if (method.overrideExecution === "BeforeAsync") {
|
|
41
41
|
methodArrays.reverse();
|
|
42
42
|
}
|
|
43
|
+
let result;
|
|
43
44
|
for (const arg of methodArrays) {
|
|
44
|
-
await arg.apply(this, args);
|
|
45
|
+
result = await arg.apply(this, args);
|
|
45
46
|
}
|
|
47
|
+
return result;
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating/UIFormatters", "./BaseControllerExtension", "./collaboration/CollaborationCommon"], function (ClassSupport, Element, UIFormatters, BaseControllerExtension, CollaborationCommon) {
|
|
6
6
|
"use strict";
|
|
@@ -26,12 +26,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
* Callback when the focus is set in the
|
|
29
|
+
* Callback when the focus is set in the Field or one of its children.
|
|
30
30
|
* @param source
|
|
31
31
|
* @param focusEvent
|
|
32
32
|
*/;
|
|
33
33
|
_proto.handleContentFocusIn = function handleContentFocusIn(source, focusEvent) {
|
|
34
|
-
// We send the event only if the focus was previously out of the
|
|
34
|
+
// We send the event only if the focus was previously out of the Field
|
|
35
35
|
if (source.isA("sap.m.Tokenizer")) {
|
|
36
36
|
source = source.getParent()?.getParent();
|
|
37
37
|
}
|
|
@@ -40,7 +40,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
40
40
|
targetOutsideOfControlDomRef = !source.getDomRef()?.contains(focusEvent.relatedTarget);
|
|
41
41
|
}
|
|
42
42
|
if (source.isA("sap.ui.mdc.MultiValueField") || targetOutsideOfControlDomRef) {
|
|
43
|
-
// We need to handle the case where the newly focused
|
|
43
|
+
// We need to handle the case where the newly focused Field is different from the previous one, but they share the same fieldGroupIDs
|
|
44
44
|
// (e.g. fields in different rows in the same column of a table)
|
|
45
45
|
// In such case, the focusOut handler was not called (because we stay in the same fieldGroupID), so we need to send a focusOut event manually
|
|
46
46
|
const lastFocusId = this.getLastFocusId();
|
|
@@ -54,7 +54,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* Callback when the focus is removed from the
|
|
57
|
+
* Callback when the focus is removed from the Field or one of its children.
|
|
58
58
|
* @param fieldGroupEvent
|
|
59
59
|
*/;
|
|
60
60
|
_proto.handleContentFocusOut = function handleContentFocusOut(fieldGroupEvent) {
|
|
@@ -63,7 +63,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
63
63
|
control = control.getParent()?.getParent();
|
|
64
64
|
}
|
|
65
65
|
if (!control.isA("sap.ui.mdc.MultiValueField")) {
|
|
66
|
-
while (control && !control?.isA("sap.fe.macros.
|
|
66
|
+
while (control && !control?.isA("sap.fe.macros.Field")) {
|
|
67
67
|
control = control?.getParent();
|
|
68
68
|
}
|
|
69
69
|
if (!control) return;
|
|
@@ -93,7 +93,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
|
-
* Gets the id of the last focused
|
|
96
|
+
* Gets the id of the last focused Field (if any).
|
|
97
97
|
* @returns ID
|
|
98
98
|
*/;
|
|
99
99
|
_proto.getLastFocusId = function getLastFocusId() {
|
|
@@ -101,7 +101,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
* Gets the fieldgroups of the last focused
|
|
104
|
+
* Gets the fieldgroups of the last focused Field (if any).
|
|
105
105
|
* @returns A string containing the fieldgroups separated by ','
|
|
106
106
|
*/;
|
|
107
107
|
_proto.getLastFocusFieldGroups = function getLastFocusFieldGroups() {
|
|
@@ -109,12 +109,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
/**
|
|
112
|
-
* Stores information about the last focused
|
|
113
|
-
* @param
|
|
112
|
+
* Stores information about the last focused Field (id and fieldgroups).
|
|
113
|
+
* @param focusedField
|
|
114
114
|
*/;
|
|
115
|
-
_proto.setLastFocusInformation = function setLastFocusInformation(
|
|
116
|
-
this.lastFocusId =
|
|
117
|
-
this.lastFocusFieldGroups =
|
|
115
|
+
_proto.setLastFocusInformation = function setLastFocusInformation(focusedField) {
|
|
116
|
+
this.lastFocusId = focusedField?.getId();
|
|
117
|
+
this.lastFocusFieldGroups = focusedField?.getFieldGroupIds().join(",");
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
/**
|
|
@@ -160,7 +160,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
160
160
|
if (!bindingContext) {
|
|
161
161
|
return;
|
|
162
162
|
}
|
|
163
|
-
if (field.isA("sap.fe.macros.
|
|
163
|
+
if (field.isA("sap.fe.macros.Field")) {
|
|
164
164
|
if (!field.getMainPropertyRelativePath()) {
|
|
165
165
|
return undefined;
|
|
166
166
|
}
|
|
@@ -204,4 +204,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
|
|
|
204
204
|
_exports = CollaborationDraft;
|
|
205
205
|
return _exports;
|
|
206
206
|
}, false);
|
|
207
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uRHJhZnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfQmFzZUNvbnRyb2xsZXJFeHRlbnMiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlIiwiY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSIsImJhc2UiLCJnZXRBcHBDb21wb25lbnQiLCJoYW5kbGVDb250ZW50Rm9jdXNJbiIsInNvdXJjZSIsImZvY3VzRXZlbnQiLCJpc0EiLCJnZXRQYXJlbnQiLCJ0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmIiwiZ2V0RG9tUmVmIiwiY29udGFpbnMiLCJyZWxhdGVkVGFyZ2V0IiwibGFzdEZvY3VzSWQiLCJnZXRMYXN0Rm9jdXNJZCIsImdldElkIiwiZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMiLCJnZXRGaWVsZEdyb3VwSWRzIiwiam9pbiIsImxhc3RGb2N1c2VkIiwiRWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwic2VuZEZvY3VzT3V0TWVzc2FnZSIsInNldExhc3RGb2N1c0luZm9ybWF0aW9uIiwic2VuZEZvY3VzSW5NZXNzYWdlIiwiaGFuZGxlQ29udGVudEZvY3VzT3V0IiwiZmllbGRHcm91cEV2ZW50IiwiY29udHJvbCIsImdldFNvdXJjZSIsImZpZWxkR3JvdXBJZHMiLCJnZXRQYXJhbWV0ZXIiLCJzb21lIiwiZ3JvdXBJZCIsInN0YXJ0c1dpdGgiLCJDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCIsInNvdXJjZUNvbnRyb2wiLCJjdXJyZW50Rm9jdXNlZENvbnRyb2wiLCJnZXRBY3RpdmVFbGVtZW50IiwidW5kZWZpbmVkIiwibGFzdEZvY3VzRmllbGRHcm91cHMiLCJmb2N1c2VkRmllbGRBUEkiLCJmaWVsZHBBUEkiLCJjb2xsYWJvcmF0aW9uUGF0aCIsImdldENvbGxhYm9yYXRpb25QYXRoIiwic2VuZCIsImFjdGlvbiIsIkFjdGl2aXR5IiwiTG9jayIsImNvbnRlbnQiLCJVbmxvY2siLCJmaWVsZCIsImJpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgiLCJmaWVsZFdyYXBwZXIiLCJGaWVsZEVkaXRNb2RlIiwiRWRpdGFibGUiLCJFZGl0YWJsZURpc3BsYXkiLCJFZGl0YWJsZVJlYWRPbmx5IiwiaW5jbHVkZXMiLCJnZXRQcm9wZXJ0eSIsImdldFBhdGgiLCJrZXlwYXRoIiwiZ2V0QmluZGluZ0luZm8iLCJ0ZW1wbGF0ZSIsImdldEJpbmRpbmdQYXRoIiwicGF0aCIsIm1lc3NhZ2UiLCJnZXRWaWV3IiwiaXNDb25uZWN0ZWQiLCJjb25uZWN0IiwiZGlzY29ubmVjdCIsImlzQ29sbGFib3JhdGlvbkVuYWJsZWQiLCJyZXRhaW5Bc3luY01lc3NhZ2VzIiwiYWN0aXZpdHlQYXRocyIsInJlbGVhc2VBc3luY01lc3NhZ2VzIiwidXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aCIsIm9sZENvbnRleHRQYXRoIiwibmV3Q29udGV4dFBhdGgiLCJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZURyYWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgRmllbGRXcmFwcGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0ZpZWxkV3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgRmllbGRBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRBUElcIjtcbmltcG9ydCB0eXBlIFRva2VuaXplciBmcm9tIFwic2FwL20vVG9rZW5pemVyXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2wkVmFsaWRhdGVGaWVsZEdyb3VwRXZlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9NdWx0aVZhbHVlRmllbGRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCIuLi9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IEZpZWxkRWRpdE1vZGUgfSBmcm9tIFwiLi4vdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwiLi9CYXNlQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQWN0aXZpdHksIENvbGxhYm9yYXRpb25GaWVsZEdyb3VwUHJlZml4IH0gZnJvbSBcIi4vY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkNvbGxhYm9yYXRpb25EcmFmdFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGFib3JhdGlvbkRyYWZ0IGV4dGVuZHMgQmFzZUNvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHRwcml2YXRlIGxhc3RGb2N1c0lkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBsYXN0Rm9jdXNGaWVsZEdyb3Vwczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSE6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cblx0cHJpdmF0ZSBnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCk6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2Uge1xuXHRcdHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA9IHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA/PyB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpO1xuXHRcdHJldHVybiB0aGlzLmNvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgc2V0IGluIHRoZSBGaWVsZEFQSSBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gc291cmNlXG5cdCAqIEBwYXJhbSBmb2N1c0V2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzSW4oc291cmNlOiBGaWVsZEFQSSB8IE11bHRpVmFsdWVGaWVsZCwgZm9jdXNFdmVudD86IEZvY3VzRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSBmb2N1cyB3YXMgcHJldmlvdXNseSBvdXQgb2YgdGhlIEZpZWxkQVBJXG5cdFx0aWYgKHNvdXJjZS5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0c291cmNlID0gc291cmNlLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBNdWx0aVZhbHVlRmllbGQ7XG5cdFx0fVxuXHRcdGxldCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmID0gZmFsc2U7XG5cdFx0aWYgKGZvY3VzRXZlbnQpIHtcblx0XHRcdHRhcmdldE91dHNpZGVPZkNvbnRyb2xEb21SZWYgPSAhc291cmNlLmdldERvbVJlZigpPy5jb250YWlucyhmb2N1c0V2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSk7XG5cdFx0fVxuXHRcdGlmIChzb3VyY2UuaXNBPE11bHRpVmFsdWVGaWVsZD4oXCJzYXAudWkubWRjLk11bHRpVmFsdWVGaWVsZFwiKSB8fCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmKSB7XG5cdFx0XHQvLyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgbmV3bHkgZm9jdXNlZCBGaWVsZEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgb25lLCBidXQgdGhleSBzaGFyZSB0aGUgc2FtZSBmaWVsZEdyb3VwSURzXG5cdFx0XHQvLyAoZS5nLiBmaWVsZHMgaW4gZGlmZmVyZW50IHJvd3MgaW4gdGhlIHNhbWUgY29sdW1uIG9mIGEgdGFibGUpXG5cdFx0XHQvLyBJbiBzdWNoIGNhc2UsIHRoZSBmb2N1c091dCBoYW5kbGVyIHdhcyBub3QgY2FsbGVkIChiZWNhdXNlIHdlIHN0YXkgaW4gdGhlIHNhbWUgZmllbGRHcm91cElEKSwgc28gd2UgbmVlZCB0byBzZW5kIGEgZm9jdXNPdXQgZXZlbnQgbWFudWFsbHlcblx0XHRcdGNvbnN0IGxhc3RGb2N1c0lkID0gdGhpcy5nZXRMYXN0Rm9jdXNJZCgpO1xuXHRcdFx0aWYgKGxhc3RGb2N1c0lkICYmIGxhc3RGb2N1c0lkICE9PSBzb3VyY2UuZ2V0SWQoKSAmJiB0aGlzLmdldExhc3RGb2N1c0ZpZWxkR3JvdXBzKCkgPT09IHNvdXJjZS5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIikpIHtcblx0XHRcdFx0Y29uc3QgbGFzdEZvY3VzZWQgPSBFbGVtZW50LmdldEVsZW1lbnRCeUlkKGxhc3RGb2N1c0lkKSBhcyBGaWVsZEFQSTtcblx0XHRcdFx0dGhpcz8uc2VuZEZvY3VzT3V0TWVzc2FnZShsYXN0Rm9jdXNlZCk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24oc291cmNlKTtcblxuXHRcdFx0dGhpcy5zZW5kRm9jdXNJbk1lc3NhZ2Uoc291cmNlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgcmVtb3ZlZCBmcm9tIHRoZSBGaWVsZEFQSSBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gZmllbGRHcm91cEV2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzT3V0KGZpZWxkR3JvdXBFdmVudDogQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCk6IHZvaWQge1xuXHRcdGxldCBjb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblx0XHRpZiAoY29udHJvbC5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0Y29udHJvbCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIE11bHRpVmFsdWVGaWVsZDtcblx0XHR9XG5cdFx0aWYgKCFjb250cm9sLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdHdoaWxlIChjb250cm9sICYmICFjb250cm9sPy5pc0E8RmllbGRBUEk+KFwic2FwLmZlLm1hY3Jvcy5maWVsZC5GaWVsZEFQSVwiKSkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWNvbnRyb2wpIHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gZmllbGRHcm91cEV2ZW50LmdldFBhcmFtZXRlcihcImZpZWxkR3JvdXBJZHNcIikgYXMgc3RyaW5nW107XG5cblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSB2YWxpZGF0ZWQgZmllbGRDcm91cCBjb3JyZXNwb25kcyB0byBhIGNvbGxhYm9yYXRpb24gZ3JvdXBcblx0XHRpZiAoXG5cdFx0XHRmaWVsZEdyb3VwSWRzLnNvbWUoKGdyb3VwSWQpID0+IHtcblx0XHRcdFx0cmV0dXJuIGdyb3VwSWQuc3RhcnRzV2l0aChDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCk7XG5cdFx0XHR9KVxuXHRcdCkge1xuXHRcdFx0Y29uc3Qgc291cmNlQ29udHJvbDogQ29udHJvbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblxuXHRcdFx0Ly8gRGV0ZXJtaW5lIGlmIHRoZSBjb250cm9sIHRoYXQgc2VudCB0aGUgZXZlbnQgc3RpbGwgaGFzIHRoZSBmb2N1cyAob3Igb25lIG9mIGl0cyBjaGlsZHJlbikuXG5cdFx0XHQvLyBUaGlzIGNvdWxkIGhhcHBlbiBlLmcuIGlmIHRoZSB1c2VyIHByZXNzZWQgPEVudGVyPiB0byB2YWxpZGF0ZSB0aGUgaW5wdXQuXG5cdFx0XHRsZXQgY3VycmVudEZvY3VzZWRDb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZCA9IEVsZW1lbnQuZ2V0QWN0aXZlRWxlbWVudCgpO1xuXHRcdFx0d2hpbGUgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAmJiBjdXJyZW50Rm9jdXNlZENvbnRyb2wgIT09IHNvdXJjZUNvbnRyb2wpIHtcblx0XHRcdFx0Y3VycmVudEZvY3VzZWRDb250cm9sID0gY3VycmVudEZvY3VzZWRDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAhPT0gc291cmNlQ29udHJvbCkge1xuXHRcdFx0XHQvLyBUaGUgY29udHJvbCB0aGF0IHNlbnQgdGhlIGV2ZW50IGlzbid0IGZvY3VzZWQgYW55bW9yZVxuXHRcdFx0XHR0aGlzLnNlbmRGb2N1c091dE1lc3NhZ2UoY29udHJvbCk7XG5cdFx0XHRcdGlmICh0aGlzLmdldExhc3RGb2N1c0lkKCkgPT09IGNvbnRyb2wuZ2V0SWQoKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24odW5kZWZpbmVkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpZCBvZiB0aGUgbGFzdCBmb2N1c2VkIEZpZWxkQVBJIChpZiBhbnkpLlxuXHQgKiBAcmV0dXJucyBJRFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRMYXN0Rm9jdXNJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmxhc3RGb2N1c0lkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGZpZWxkZ3JvdXBzIG9mIHRoZSBsYXN0IGZvY3VzZWQgRmllbGRBUEkgKGlmIGFueSkuXG5cdCAqIEByZXR1cm5zIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGZpZWxkZ3JvdXBzIHNlcGFyYXRlZCBieSAnLCdcblx0ICovXG5cdHByaXZhdGUgZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5sYXN0Rm9jdXNGaWVsZEdyb3Vwcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhc3QgZm9jdXNlZCBGaWVsZEFQSSAoaWQgYW5kIGZpZWxkZ3JvdXBzKS5cblx0ICogQHBhcmFtIGZvY3VzZWRGaWVsZEFQSVxuXHQgKi9cblx0cHJpdmF0ZSBzZXRMYXN0Rm9jdXNJbmZvcm1hdGlvbihmb2N1c2VkRmllbGRBUEk6IEZpZWxkQVBJIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0dGhpcy5sYXN0Rm9jdXNJZCA9IGZvY3VzZWRGaWVsZEFQST8uZ2V0SWQoKTtcblx0XHR0aGlzLmxhc3RGb2N1c0ZpZWxkR3JvdXBzID0gZm9jdXNlZEZpZWxkQVBJPy5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIik7XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGEgTG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzSW5NZXNzYWdlKGZpZWxkcEFQSTogRmllbGRBUEkgfCBNdWx0aVZhbHVlRmllbGQpOiB2b2lkIHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uUGF0aCA9IHRoaXMuZ2V0Q29sbGFib3JhdGlvblBhdGgoZmllbGRwQVBJKTtcblxuXHRcdGlmIChjb2xsYWJvcmF0aW9uUGF0aCkge1xuXHRcdFx0dGhpcy5zZW5kKHsgYWN0aW9uOiBBY3Rpdml0eS5Mb2NrLCBjb250ZW50OiBjb2xsYWJvcmF0aW9uUGF0aCB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGFuIFVubG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzT3V0TWVzc2FnZShmaWVsZHBBUEk6IEZpZWxkQVBJIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0aWYgKCFmaWVsZHBBUEkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvblBhdGggPSB0aGlzLmdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkcEFQSSk7XG5cdFx0aWYgKGNvbGxhYm9yYXRpb25QYXRoKSB7XG5cdFx0XHR0aGlzLnNlbmQoeyBhY3Rpb246IEFjdGl2aXR5LlVubG9jaywgY29udGVudDogY29sbGFib3JhdGlvblBhdGggfSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHBhdGggdXNlZCB0byBzZW5kIGNvbGxhYm9yYXRpb24gbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgcGF0aCAob3IgdW5kZWZpbmVkIGlzIG5vIHZhbGlkIHBhdGggY291bGQgYmUgZm91bmQpXG5cdCAqL1xuXHRwcml2YXRlIGdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkOiBGaWVsZEFQSSB8IE11bHRpVmFsdWVGaWVsZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gTm90ZTogd2Ugc2VuZCBtZXNzYWdlcyBldmVuIGlmIHRoZSBjb250ZXh0IGlzIGluYWN0aXZlIChlbXB0eSBjcmVhdGlvbiByb3dzKSxcblx0XHQvLyBvdGhlcndpc2Ugd2UgY2FuJ3QgdXBkYXRlIHRoZSBjb3JyZXNwb25kaW5nIGxvY2tzIHdoZW4gdGhlIGNvbnRleHQgaXMgYWN0aXZhdGVkLlxuXHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gZmllbGQ/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoIWJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChmaWVsZC5pc0E8RmllbGRBUEk+KFwic2FwLmZlLm1hY3Jvcy5maWVsZC5GaWVsZEFQSVwiKSkge1xuXHRcdFx0aWYgKCFmaWVsZC5nZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgoKSkge1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaWVsZFdyYXBwZXIgPSBmaWVsZC5jb250ZW50IGFzIEZpZWxkV3JhcHBlciB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0IVtGaWVsZEVkaXRNb2RlLkVkaXRhYmxlLCBGaWVsZEVkaXRNb2RlLkVkaXRhYmxlRGlzcGxheSwgRmllbGRFZGl0TW9kZS5FZGl0YWJsZVJlYWRPbmx5XS5pbmNsdWRlcyhcblx0XHRcdFx0XHRmaWVsZFdyYXBwZXI/LmdldFByb3BlcnR5KFwiZWRpdE1vZGVcIilcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdC8vIFRoZSBmaWVsZCBpcyBub3QgaW4gZWRpdCBtb2RlIC0tPiBubyBjb2xsYWJvcmF0aW9uIG1lc3NhZ2VzXG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBgJHtiaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7ZmllbGQuZ2V0TWFpblByb3BlcnR5UmVsYXRpdmVQYXRoKCl9YDtcblx0XHR9IGVsc2UgaWYgKGZpZWxkLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdGNvbnN0IGtleXBhdGggPSBmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnRlbXBsYXRlLmdldEJpbmRpbmdQYXRoKFwia2V5XCIpO1xuXHRcdFx0cmV0dXJuIGAke2JpbmRpbmdDb250ZXh0LmdldFBhdGgoKX0vJHtmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnBhdGh9LyR7a2V5cGF0aH1gO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZW5kKG1lc3NhZ2U6IHtcblx0XHRhY3Rpb246IEFjdGl2aXR5O1xuXHRcdGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXHRcdHRyaWdnZXJlZEFjdGlvbk5hbWU/OiBzdHJpbmc7XG5cdFx0cmVmcmVzaExpc3RCaW5kaW5nPzogYm9vbGVhbjtcblx0XHRhY3Rpb25SZXF1ZXN0ZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cdH0pOiB2b2lkIHtcblx0XHR0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5zZW5kKHRoaXMuZ2V0VmlldygpLCBtZXNzYWdlKTtcblx0fVxuXG5cdHB1YmxpYyBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb25uZWN0ZWQodGhpcy5nZXRWaWV3KCkpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLmNvbm5lY3QodGhpcy5nZXRWaWV3KCkgYXMgRkVWaWV3KTtcblx0fVxuXG5cdHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5kaXNjb25uZWN0KHRoaXMuZ2V0VmlldygpIGFzIEZFVmlldyk7XG5cdH1cblxuXHRwdWJsaWMgaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCh0aGlzLmdldFZpZXcoKSk7XG5cdH1cblxuXHRwdWJsaWMgcmV0YWluQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZXRhaW5Bc3luY01lc3NhZ2VzKHRoaXMuZ2V0VmlldygpLCBhY3Rpdml0eVBhdGhzKTtcblx0fVxuXG5cdHB1YmxpYyByZWxlYXNlQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZWxlYXNlQXN5bmNNZXNzYWdlcyh0aGlzLmdldFZpZXcoKSwgYWN0aXZpdHlQYXRocyk7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aChvbGRDb250ZXh0UGF0aDogc3RyaW5nLCBuZXdDb250ZXh0UGF0aDogc3RyaW5nKTogdm9pZCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLnVwZGF0ZUxvY2tzRm9yQ29udGV4dFBhdGgodGhpcy5nZXRWaWV3KCksIG9sZENvbnRleHRQYXRoLCBuZXdDb250ZXh0UGF0aCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O01Ba0JxQkEsa0JBQWtCLElBQUFDLElBQUEsR0FEdENDLGNBQWMsQ0FBQyxxREFBcUQsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLHFCQUFBO0lBQUEsU0FBQUosbUJBQUE7TUFBQSxPQUFBSSxxQkFBQSxDQUFBQyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtJQUFBQyxRQUFBLEdBQUFQLGtCQUFBO0lBQUFRLGNBQUEsQ0FBQVIsa0JBQUEsRUFBQUkscUJBQUE7SUFBQSxJQUFBSyxNQUFBLEdBQUFULGtCQUFBLENBQUFVLFNBQUE7SUFBQUQsTUFBQSxDQVU3REUsNEJBQTRCLEdBQXBDLFNBQVFBLDRCQUE0QkEsQ0FBQSxFQUE4QjtNQUNqRSxJQUFJLENBQUNDLHlCQUF5QixHQUFHLElBQUksQ0FBQ0EseUJBQXlCLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDLENBQUNILDRCQUE0QixDQUFDLENBQUM7TUFDN0gsT0FBTyxJQUFJLENBQUNDLHlCQUF5QjtJQUN0Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQUgsTUFBQSxDQUtPTSxvQkFBb0IsR0FBM0IsU0FBT0Esb0JBQW9CQSxDQUFDQyxNQUFrQyxFQUFFQyxVQUF1QixFQUFRO01BQzlGO01BQ0EsSUFBSUQsTUFBTSxDQUFDRSxHQUFHLENBQVksaUJBQWlCLENBQUMsRUFBRTtRQUM3Q0YsTUFBTSxHQUFHQSxNQUFNLENBQUNHLFNBQVMsQ0FBQyxDQUFDLEVBQUVBLFNBQVMsQ0FBQyxDQUFvQjtNQUM1RDtNQUNBLElBQUlDLDRCQUE0QixHQUFHLEtBQUs7TUFDeEMsSUFBSUgsVUFBVSxFQUFF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
|
|
207
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uRHJhZnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfQmFzZUNvbnRyb2xsZXJFeHRlbnMiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlIiwiY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSIsImJhc2UiLCJnZXRBcHBDb21wb25lbnQiLCJoYW5kbGVDb250ZW50Rm9jdXNJbiIsInNvdXJjZSIsImZvY3VzRXZlbnQiLCJpc0EiLCJnZXRQYXJlbnQiLCJ0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmIiwiZ2V0RG9tUmVmIiwiY29udGFpbnMiLCJyZWxhdGVkVGFyZ2V0IiwibGFzdEZvY3VzSWQiLCJnZXRMYXN0Rm9jdXNJZCIsImdldElkIiwiZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMiLCJnZXRGaWVsZEdyb3VwSWRzIiwiam9pbiIsImxhc3RGb2N1c2VkIiwiRWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwic2VuZEZvY3VzT3V0TWVzc2FnZSIsInNldExhc3RGb2N1c0luZm9ybWF0aW9uIiwic2VuZEZvY3VzSW5NZXNzYWdlIiwiaGFuZGxlQ29udGVudEZvY3VzT3V0IiwiZmllbGRHcm91cEV2ZW50IiwiY29udHJvbCIsImdldFNvdXJjZSIsImZpZWxkR3JvdXBJZHMiLCJnZXRQYXJhbWV0ZXIiLCJzb21lIiwiZ3JvdXBJZCIsInN0YXJ0c1dpdGgiLCJDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCIsInNvdXJjZUNvbnRyb2wiLCJjdXJyZW50Rm9jdXNlZENvbnRyb2wiLCJnZXRBY3RpdmVFbGVtZW50IiwidW5kZWZpbmVkIiwibGFzdEZvY3VzRmllbGRHcm91cHMiLCJmb2N1c2VkRmllbGQiLCJmaWVsZHBBUEkiLCJjb2xsYWJvcmF0aW9uUGF0aCIsImdldENvbGxhYm9yYXRpb25QYXRoIiwic2VuZCIsImFjdGlvbiIsIkFjdGl2aXR5IiwiTG9jayIsImNvbnRlbnQiLCJVbmxvY2siLCJmaWVsZCIsImJpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgiLCJmaWVsZFdyYXBwZXIiLCJGaWVsZEVkaXRNb2RlIiwiRWRpdGFibGUiLCJFZGl0YWJsZURpc3BsYXkiLCJFZGl0YWJsZVJlYWRPbmx5IiwiaW5jbHVkZXMiLCJnZXRQcm9wZXJ0eSIsImdldFBhdGgiLCJrZXlwYXRoIiwiZ2V0QmluZGluZ0luZm8iLCJ0ZW1wbGF0ZSIsImdldEJpbmRpbmdQYXRoIiwicGF0aCIsIm1lc3NhZ2UiLCJnZXRWaWV3IiwiaXNDb25uZWN0ZWQiLCJjb25uZWN0IiwiZGlzY29ubmVjdCIsImlzQ29sbGFib3JhdGlvbkVuYWJsZWQiLCJyZXRhaW5Bc3luY01lc3NhZ2VzIiwiYWN0aXZpdHlQYXRocyIsInJlbGVhc2VBc3luY01lc3NhZ2VzIiwidXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aCIsIm9sZENvbnRleHRQYXRoIiwibmV3Q29udGV4dFBhdGgiLCJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZURyYWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcInNhcC9mZS9tYWNyb3MvRmllbGRcIjtcbmltcG9ydCB0eXBlIEZpZWxkV3JhcHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9GaWVsZFdyYXBwZXJcIjtcbmltcG9ydCB0eXBlIFRva2VuaXplciBmcm9tIFwic2FwL20vVG9rZW5pemVyXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2wkVmFsaWRhdGVGaWVsZEdyb3VwRXZlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9NdWx0aVZhbHVlRmllbGRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCIuLi9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IEZpZWxkRWRpdE1vZGUgfSBmcm9tIFwiLi4vdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwiLi9CYXNlQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQWN0aXZpdHksIENvbGxhYm9yYXRpb25GaWVsZEdyb3VwUHJlZml4IH0gZnJvbSBcIi4vY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkNvbGxhYm9yYXRpb25EcmFmdFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGFib3JhdGlvbkRyYWZ0IGV4dGVuZHMgQmFzZUNvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHRwcml2YXRlIGxhc3RGb2N1c0lkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBsYXN0Rm9jdXNGaWVsZEdyb3Vwczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSE6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cblx0cHJpdmF0ZSBnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCk6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2Uge1xuXHRcdHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA9IHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA/PyB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpO1xuXHRcdHJldHVybiB0aGlzLmNvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgc2V0IGluIHRoZSBGaWVsZCBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gc291cmNlXG5cdCAqIEBwYXJhbSBmb2N1c0V2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzSW4oc291cmNlOiBGaWVsZCB8IE11bHRpVmFsdWVGaWVsZCwgZm9jdXNFdmVudD86IEZvY3VzRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSBmb2N1cyB3YXMgcHJldmlvdXNseSBvdXQgb2YgdGhlIEZpZWxkXG5cdFx0aWYgKHNvdXJjZS5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0c291cmNlID0gc291cmNlLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBNdWx0aVZhbHVlRmllbGQ7XG5cdFx0fVxuXHRcdGxldCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmID0gZmFsc2U7XG5cdFx0aWYgKGZvY3VzRXZlbnQpIHtcblx0XHRcdHRhcmdldE91dHNpZGVPZkNvbnRyb2xEb21SZWYgPSAhc291cmNlLmdldERvbVJlZigpPy5jb250YWlucyhmb2N1c0V2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSk7XG5cdFx0fVxuXHRcdGlmIChzb3VyY2UuaXNBPE11bHRpVmFsdWVGaWVsZD4oXCJzYXAudWkubWRjLk11bHRpVmFsdWVGaWVsZFwiKSB8fCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmKSB7XG5cdFx0XHQvLyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgbmV3bHkgZm9jdXNlZCBGaWVsZCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgb25lLCBidXQgdGhleSBzaGFyZSB0aGUgc2FtZSBmaWVsZEdyb3VwSURzXG5cdFx0XHQvLyAoZS5nLiBmaWVsZHMgaW4gZGlmZmVyZW50IHJvd3MgaW4gdGhlIHNhbWUgY29sdW1uIG9mIGEgdGFibGUpXG5cdFx0XHQvLyBJbiBzdWNoIGNhc2UsIHRoZSBmb2N1c091dCBoYW5kbGVyIHdhcyBub3QgY2FsbGVkIChiZWNhdXNlIHdlIHN0YXkgaW4gdGhlIHNhbWUgZmllbGRHcm91cElEKSwgc28gd2UgbmVlZCB0byBzZW5kIGEgZm9jdXNPdXQgZXZlbnQgbWFudWFsbHlcblx0XHRcdGNvbnN0IGxhc3RGb2N1c0lkID0gdGhpcy5nZXRMYXN0Rm9jdXNJZCgpO1xuXHRcdFx0aWYgKGxhc3RGb2N1c0lkICYmIGxhc3RGb2N1c0lkICE9PSBzb3VyY2UuZ2V0SWQoKSAmJiB0aGlzLmdldExhc3RGb2N1c0ZpZWxkR3JvdXBzKCkgPT09IHNvdXJjZS5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIikpIHtcblx0XHRcdFx0Y29uc3QgbGFzdEZvY3VzZWQgPSBFbGVtZW50LmdldEVsZW1lbnRCeUlkKGxhc3RGb2N1c0lkKSBhcyBGaWVsZDtcblx0XHRcdFx0dGhpcz8uc2VuZEZvY3VzT3V0TWVzc2FnZShsYXN0Rm9jdXNlZCk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24oc291cmNlKTtcblxuXHRcdFx0dGhpcy5zZW5kRm9jdXNJbk1lc3NhZ2Uoc291cmNlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgcmVtb3ZlZCBmcm9tIHRoZSBGaWVsZCBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gZmllbGRHcm91cEV2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzT3V0KGZpZWxkR3JvdXBFdmVudDogQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCk6IHZvaWQge1xuXHRcdGxldCBjb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblx0XHRpZiAoY29udHJvbC5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0Y29udHJvbCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIE11bHRpVmFsdWVGaWVsZDtcblx0XHR9XG5cdFx0aWYgKCFjb250cm9sLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdHdoaWxlIChjb250cm9sICYmICFjb250cm9sPy5pc0E8RmllbGQ+KFwic2FwLmZlLm1hY3Jvcy5GaWVsZFwiKSkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWNvbnRyb2wpIHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gZmllbGRHcm91cEV2ZW50LmdldFBhcmFtZXRlcihcImZpZWxkR3JvdXBJZHNcIikgYXMgc3RyaW5nW107XG5cblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSB2YWxpZGF0ZWQgZmllbGRDcm91cCBjb3JyZXNwb25kcyB0byBhIGNvbGxhYm9yYXRpb24gZ3JvdXBcblx0XHRpZiAoXG5cdFx0XHRmaWVsZEdyb3VwSWRzLnNvbWUoKGdyb3VwSWQpID0+IHtcblx0XHRcdFx0cmV0dXJuIGdyb3VwSWQuc3RhcnRzV2l0aChDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCk7XG5cdFx0XHR9KVxuXHRcdCkge1xuXHRcdFx0Y29uc3Qgc291cmNlQ29udHJvbDogQ29udHJvbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblxuXHRcdFx0Ly8gRGV0ZXJtaW5lIGlmIHRoZSBjb250cm9sIHRoYXQgc2VudCB0aGUgZXZlbnQgc3RpbGwgaGFzIHRoZSBmb2N1cyAob3Igb25lIG9mIGl0cyBjaGlsZHJlbikuXG5cdFx0XHQvLyBUaGlzIGNvdWxkIGhhcHBlbiBlLmcuIGlmIHRoZSB1c2VyIHByZXNzZWQgPEVudGVyPiB0byB2YWxpZGF0ZSB0aGUgaW5wdXQuXG5cdFx0XHRsZXQgY3VycmVudEZvY3VzZWRDb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZCA9IEVsZW1lbnQuZ2V0QWN0aXZlRWxlbWVudCgpO1xuXHRcdFx0d2hpbGUgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAmJiBjdXJyZW50Rm9jdXNlZENvbnRyb2wgIT09IHNvdXJjZUNvbnRyb2wpIHtcblx0XHRcdFx0Y3VycmVudEZvY3VzZWRDb250cm9sID0gY3VycmVudEZvY3VzZWRDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAhPT0gc291cmNlQ29udHJvbCkge1xuXHRcdFx0XHQvLyBUaGUgY29udHJvbCB0aGF0IHNlbnQgdGhlIGV2ZW50IGlzbid0IGZvY3VzZWQgYW55bW9yZVxuXHRcdFx0XHR0aGlzLnNlbmRGb2N1c091dE1lc3NhZ2UoY29udHJvbCk7XG5cdFx0XHRcdGlmICh0aGlzLmdldExhc3RGb2N1c0lkKCkgPT09IGNvbnRyb2wuZ2V0SWQoKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24odW5kZWZpbmVkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpZCBvZiB0aGUgbGFzdCBmb2N1c2VkIEZpZWxkIChpZiBhbnkpLlxuXHQgKiBAcmV0dXJucyBJRFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRMYXN0Rm9jdXNJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmxhc3RGb2N1c0lkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGZpZWxkZ3JvdXBzIG9mIHRoZSBsYXN0IGZvY3VzZWQgRmllbGQgKGlmIGFueSkuXG5cdCAqIEByZXR1cm5zIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGZpZWxkZ3JvdXBzIHNlcGFyYXRlZCBieSAnLCdcblx0ICovXG5cdHByaXZhdGUgZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5sYXN0Rm9jdXNGaWVsZEdyb3Vwcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhc3QgZm9jdXNlZCBGaWVsZCAoaWQgYW5kIGZpZWxkZ3JvdXBzKS5cblx0ICogQHBhcmFtIGZvY3VzZWRGaWVsZFxuXHQgKi9cblx0cHJpdmF0ZSBzZXRMYXN0Rm9jdXNJbmZvcm1hdGlvbihmb2N1c2VkRmllbGQ6IEZpZWxkIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0dGhpcy5sYXN0Rm9jdXNJZCA9IGZvY3VzZWRGaWVsZD8uZ2V0SWQoKTtcblx0XHR0aGlzLmxhc3RGb2N1c0ZpZWxkR3JvdXBzID0gZm9jdXNlZEZpZWxkPy5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIik7XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGEgTG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzSW5NZXNzYWdlKGZpZWxkcEFQSTogRmllbGQgfCBNdWx0aVZhbHVlRmllbGQpOiB2b2lkIHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uUGF0aCA9IHRoaXMuZ2V0Q29sbGFib3JhdGlvblBhdGgoZmllbGRwQVBJKTtcblxuXHRcdGlmIChjb2xsYWJvcmF0aW9uUGF0aCkge1xuXHRcdFx0dGhpcy5zZW5kKHsgYWN0aW9uOiBBY3Rpdml0eS5Mb2NrLCBjb250ZW50OiBjb2xsYWJvcmF0aW9uUGF0aCB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGFuIFVubG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzT3V0TWVzc2FnZShmaWVsZHBBUEk6IEZpZWxkIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0aWYgKCFmaWVsZHBBUEkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvblBhdGggPSB0aGlzLmdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkcEFQSSk7XG5cdFx0aWYgKGNvbGxhYm9yYXRpb25QYXRoKSB7XG5cdFx0XHR0aGlzLnNlbmQoeyBhY3Rpb246IEFjdGl2aXR5LlVubG9jaywgY29udGVudDogY29sbGFib3JhdGlvblBhdGggfSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHBhdGggdXNlZCB0byBzZW5kIGNvbGxhYm9yYXRpb24gbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgcGF0aCAob3IgdW5kZWZpbmVkIGlzIG5vIHZhbGlkIHBhdGggY291bGQgYmUgZm91bmQpXG5cdCAqL1xuXHRwcml2YXRlIGdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkOiBGaWVsZCB8IE11bHRpVmFsdWVGaWVsZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gTm90ZTogd2Ugc2VuZCBtZXNzYWdlcyBldmVuIGlmIHRoZSBjb250ZXh0IGlzIGluYWN0aXZlIChlbXB0eSBjcmVhdGlvbiByb3dzKSxcblx0XHQvLyBvdGhlcndpc2Ugd2UgY2FuJ3QgdXBkYXRlIHRoZSBjb3JyZXNwb25kaW5nIGxvY2tzIHdoZW4gdGhlIGNvbnRleHQgaXMgYWN0aXZhdGVkLlxuXHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gZmllbGQ/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoIWJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChmaWVsZC5pc0E8RmllbGQ+KFwic2FwLmZlLm1hY3Jvcy5GaWVsZFwiKSkge1xuXHRcdFx0aWYgKCFmaWVsZC5nZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgoKSkge1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaWVsZFdyYXBwZXIgPSBmaWVsZC5jb250ZW50IGFzIEZpZWxkV3JhcHBlciB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0IVtGaWVsZEVkaXRNb2RlLkVkaXRhYmxlLCBGaWVsZEVkaXRNb2RlLkVkaXRhYmxlRGlzcGxheSwgRmllbGRFZGl0TW9kZS5FZGl0YWJsZVJlYWRPbmx5XS5pbmNsdWRlcyhcblx0XHRcdFx0XHRmaWVsZFdyYXBwZXI/LmdldFByb3BlcnR5KFwiZWRpdE1vZGVcIilcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdC8vIFRoZSBmaWVsZCBpcyBub3QgaW4gZWRpdCBtb2RlIC0tPiBubyBjb2xsYWJvcmF0aW9uIG1lc3NhZ2VzXG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBgJHtiaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7ZmllbGQuZ2V0TWFpblByb3BlcnR5UmVsYXRpdmVQYXRoKCl9YDtcblx0XHR9IGVsc2UgaWYgKGZpZWxkLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdGNvbnN0IGtleXBhdGggPSBmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnRlbXBsYXRlLmdldEJpbmRpbmdQYXRoKFwia2V5XCIpO1xuXHRcdFx0cmV0dXJuIGAke2JpbmRpbmdDb250ZXh0LmdldFBhdGgoKX0vJHtmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnBhdGh9LyR7a2V5cGF0aH1gO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZW5kKG1lc3NhZ2U6IHtcblx0XHRhY3Rpb246IEFjdGl2aXR5O1xuXHRcdGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXHRcdHRyaWdnZXJlZEFjdGlvbk5hbWU/OiBzdHJpbmc7XG5cdFx0cmVmcmVzaExpc3RCaW5kaW5nPzogYm9vbGVhbjtcblx0XHRhY3Rpb25SZXF1ZXN0ZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cdH0pOiB2b2lkIHtcblx0XHR0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5zZW5kKHRoaXMuZ2V0VmlldygpLCBtZXNzYWdlKTtcblx0fVxuXG5cdHB1YmxpYyBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb25uZWN0ZWQodGhpcy5nZXRWaWV3KCkpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLmNvbm5lY3QodGhpcy5nZXRWaWV3KCkgYXMgRkVWaWV3KTtcblx0fVxuXG5cdHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5kaXNjb25uZWN0KHRoaXMuZ2V0VmlldygpIGFzIEZFVmlldyk7XG5cdH1cblxuXHRwdWJsaWMgaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCh0aGlzLmdldFZpZXcoKSk7XG5cdH1cblxuXHRwdWJsaWMgcmV0YWluQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZXRhaW5Bc3luY01lc3NhZ2VzKHRoaXMuZ2V0VmlldygpLCBhY3Rpdml0eVBhdGhzKTtcblx0fVxuXG5cdHB1YmxpYyByZWxlYXNlQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZWxlYXNlQXN5bmNNZXNzYWdlcyh0aGlzLmdldFZpZXcoKSwgYWN0aXZpdHlQYXRocyk7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aChvbGRDb250ZXh0UGF0aDogc3RyaW5nLCBuZXdDb250ZXh0UGF0aDogc3RyaW5nKTogdm9pZCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLnVwZGF0ZUxvY2tzRm9yQ29udGV4dFBhdGgodGhpcy5nZXRW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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineUI5Class } from "sap/fe/base/ClassSupport";
|
|
2
|
+
import type Field from "sap/fe/macros/Field";
|
|
2
3
|
import type FieldWrapper from "sap/fe/macros/controls/FieldWrapper";
|
|
3
|
-
import type FieldAPI from "sap/fe/macros/field/FieldAPI";
|
|
4
4
|
import type Tokenizer from "sap/m/Tokenizer";
|
|
5
5
|
import type ManagedObject from "sap/ui/base/ManagedObject";
|
|
6
6
|
import type Control from "sap/ui/core/Control";
|
|
@@ -31,12 +31,12 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* Callback when the focus is set in the
|
|
34
|
+
* Callback when the focus is set in the Field or one of its children.
|
|
35
35
|
* @param source
|
|
36
36
|
* @param focusEvent
|
|
37
37
|
*/
|
|
38
|
-
public handleContentFocusIn(source:
|
|
39
|
-
// We send the event only if the focus was previously out of the
|
|
38
|
+
public handleContentFocusIn(source: Field | MultiValueField, focusEvent?: FocusEvent): void {
|
|
39
|
+
// We send the event only if the focus was previously out of the Field
|
|
40
40
|
if (source.isA<Tokenizer>("sap.m.Tokenizer")) {
|
|
41
41
|
source = source.getParent()?.getParent() as MultiValueField;
|
|
42
42
|
}
|
|
@@ -45,12 +45,12 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
45
45
|
targetOutsideOfControlDomRef = !source.getDomRef()?.contains(focusEvent.relatedTarget as Node);
|
|
46
46
|
}
|
|
47
47
|
if (source.isA<MultiValueField>("sap.ui.mdc.MultiValueField") || targetOutsideOfControlDomRef) {
|
|
48
|
-
// We need to handle the case where the newly focused
|
|
48
|
+
// We need to handle the case where the newly focused Field is different from the previous one, but they share the same fieldGroupIDs
|
|
49
49
|
// (e.g. fields in different rows in the same column of a table)
|
|
50
50
|
// In such case, the focusOut handler was not called (because we stay in the same fieldGroupID), so we need to send a focusOut event manually
|
|
51
51
|
const lastFocusId = this.getLastFocusId();
|
|
52
52
|
if (lastFocusId && lastFocusId !== source.getId() && this.getLastFocusFieldGroups() === source.getFieldGroupIds().join(",")) {
|
|
53
|
-
const lastFocused = Element.getElementById(lastFocusId) as
|
|
53
|
+
const lastFocused = Element.getElementById(lastFocusId) as Field;
|
|
54
54
|
this?.sendFocusOutMessage(lastFocused);
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -61,7 +61,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
|
-
* Callback when the focus is removed from the
|
|
64
|
+
* Callback when the focus is removed from the Field or one of its children.
|
|
65
65
|
* @param fieldGroupEvent
|
|
66
66
|
*/
|
|
67
67
|
public handleContentFocusOut(fieldGroupEvent: Control$ValidateFieldGroupEvent): void {
|
|
@@ -70,7 +70,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
70
70
|
control = control.getParent()?.getParent() as MultiValueField;
|
|
71
71
|
}
|
|
72
72
|
if (!control.isA<MultiValueField>("sap.ui.mdc.MultiValueField")) {
|
|
73
|
-
while (control && !control?.isA<
|
|
73
|
+
while (control && !control?.isA<Field>("sap.fe.macros.Field")) {
|
|
74
74
|
control = control?.getParent();
|
|
75
75
|
}
|
|
76
76
|
if (!control) return;
|
|
@@ -103,7 +103,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
/**
|
|
106
|
-
* Gets the id of the last focused
|
|
106
|
+
* Gets the id of the last focused Field (if any).
|
|
107
107
|
* @returns ID
|
|
108
108
|
*/
|
|
109
109
|
private getLastFocusId(): string | undefined {
|
|
@@ -111,7 +111,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
/**
|
|
114
|
-
* Gets the fieldgroups of the last focused
|
|
114
|
+
* Gets the fieldgroups of the last focused Field (if any).
|
|
115
115
|
* @returns A string containing the fieldgroups separated by ','
|
|
116
116
|
*/
|
|
117
117
|
private getLastFocusFieldGroups(): string | undefined {
|
|
@@ -119,19 +119,19 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
* Stores information about the last focused
|
|
123
|
-
* @param
|
|
122
|
+
* Stores information about the last focused Field (id and fieldgroups).
|
|
123
|
+
* @param focusedField
|
|
124
124
|
*/
|
|
125
|
-
private setLastFocusInformation(
|
|
126
|
-
this.lastFocusId =
|
|
127
|
-
this.lastFocusFieldGroups =
|
|
125
|
+
private setLastFocusInformation(focusedField: Field | MultiValueField | undefined): void {
|
|
126
|
+
this.lastFocusId = focusedField?.getId();
|
|
127
|
+
this.lastFocusFieldGroups = focusedField?.getFieldGroupIds().join(",");
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
131
|
* If collaboration is enabled, send a Lock collaboration message.
|
|
132
132
|
* @param fieldpAPI
|
|
133
133
|
*/
|
|
134
|
-
private sendFocusInMessage(fieldpAPI:
|
|
134
|
+
private sendFocusInMessage(fieldpAPI: Field | MultiValueField): void {
|
|
135
135
|
const collaborationPath = this.getCollaborationPath(fieldpAPI);
|
|
136
136
|
|
|
137
137
|
if (collaborationPath) {
|
|
@@ -143,7 +143,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
143
143
|
* If collaboration is enabled, send an Unlock collaboration message.
|
|
144
144
|
* @param fieldpAPI
|
|
145
145
|
*/
|
|
146
|
-
private sendFocusOutMessage(fieldpAPI:
|
|
146
|
+
private sendFocusOutMessage(fieldpAPI: Field | MultiValueField | undefined): void {
|
|
147
147
|
if (!fieldpAPI) {
|
|
148
148
|
return;
|
|
149
149
|
}
|
|
@@ -158,14 +158,14 @@ export default class CollaborationDraft extends BaseControllerExtension {
|
|
|
158
158
|
* @param field
|
|
159
159
|
* @returns The path (or undefined is no valid path could be found)
|
|
160
160
|
*/
|
|
161
|
-
private getCollaborationPath(field:
|
|
161
|
+
private getCollaborationPath(field: Field | MultiValueField): string | undefined {
|
|
162
162
|
// Note: we send messages even if the context is inactive (empty creation rows),
|
|
163
163
|
// otherwise we can't update the corresponding locks when the context is activated.
|
|
164
164
|
const bindingContext = field?.getBindingContext() as Context | undefined;
|
|
165
165
|
if (!bindingContext) {
|
|
166
166
|
return;
|
|
167
167
|
}
|
|
168
|
-
if (field.isA<
|
|
168
|
+
if (field.isA<Field>("sap.fe.macros.Field")) {
|
|
169
169
|
if (!field.getMainPropertyRelativePath()) {
|
|
170
170
|
return undefined;
|
|
171
171
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution"], function (ClassSupport, ControllerExtension, OverrideExecution) {
|
|
6
6
|
"use strict";
|