@sapui5/sap.fe.core 1.102.2 → 1.104.1
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 +6 -6
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +73 -30
- package/src/sap/fe/core/AppComponent.ts +65 -43
- package/src/sap/fe/core/AppStateHandler.js +82 -70
- package/src/sap/fe/core/AppStateHandler.ts +32 -37
- package/src/sap/fe/core/BaseController.js +11 -9
- package/src/sap/fe/core/BaseController.ts +15 -13
- package/src/sap/fe/core/CommonUtils.js +227 -126
- package/src/sap/fe/core/CommonUtils.ts +240 -163
- package/src/sap/fe/core/ExtensionAPI.js +24 -27
- package/src/sap/fe/core/ExtensionAPI.ts +36 -38
- package/src/sap/fe/core/PageController.js +4 -4
- package/src/sap/fe/core/PageController.ts +4 -5
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +6 -6
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +181 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +150 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +585 -210
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +246 -96
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +30 -30
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +32 -29
- package/src/sap/fe/core/controllerextensions/EditFlow.js +379 -330
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +253 -245
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +101 -74
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +69 -79
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +67 -67
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +76 -76
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +85 -77
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +103 -99
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
- package/src/sap/fe/core/controllerextensions/MassEdit.js +9 -9
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +20 -27
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
- package/src/sap/fe/core/controllerextensions/PageReady.ts +98 -34
- package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
- package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
- package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +170 -139
- package/src/sap/fe/core/controllerextensions/Share.ts +117 -118
- package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
- package/src/sap/fe/core/controllerextensions/ViewState.js +200 -131
- package/src/sap/fe/core/controllerextensions/ViewState.ts +141 -148
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +11 -10
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +17 -20
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +190 -141
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +258 -210
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +183 -125
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +213 -156
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +164 -140
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +180 -150
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +71 -41
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +102 -82
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +61 -71
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +56 -64
- package/src/sap/fe/core/controls/Any.js +9 -5
- package/src/sap/fe/core/controls/Any.ts +10 -4
- package/src/sap/fe/core/controls/CommandExecution.js +11 -25
- package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
- package/src/sap/fe/core/controls/FileWrapper.js +7 -2
- package/src/sap/fe/core/controls/FileWrapper.ts +15 -11
- package/src/sap/fe/core/controls/FilterBar.js +6 -2
- package/src/sap/fe/core/controls/FilterBar.ts +13 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +49 -49
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +54 -54
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
- package/src/sap/fe/core/converters/ConverterContext.js +26 -33
- package/src/sap/fe/core/converters/ConverterContext.ts +52 -61
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +17 -15
- package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
- package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
- package/src/sap/fe/core/converters/MetaModelConverter.js +64 -35
- package/src/sap/fe/core/converters/MetaModelConverter.ts +154 -129
- package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
- package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
- package/src/sap/fe/core/converters/annotations/DataField.js +58 -35
- package/src/sap/fe/core/converters/annotations/DataField.ts +102 -76
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
- package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
- package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
- package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -33
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +30 -28
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -61
- package/src/sap/fe/core/converters/controls/Common/Form.js +27 -28
- package/src/sap/fe/core/converters/controls/Common/Form.ts +44 -57
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +49 -52
- package/src/sap/fe/core/converters/controls/Common/Table.js +181 -197
- package/src/sap/fe/core/converters/controls/Common/Table.ts +251 -280
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +65 -59
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +77 -73
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +101 -97
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +12 -15
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
- package/src/sap/fe/core/converters/helpers/ID.js +48 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +26 -25
- package/src/sap/fe/core/converters/helpers/Key.js +7 -7
- package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +55 -42
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +81 -66
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
- package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/StandardFormatter.js +96 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +70 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
- package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
- package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
- package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
- package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
- package/src/sap/fe/core/helpers/BindingToolkit.js +1832 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +396 -269
- package/src/sap/fe/core/helpers/ClassSupport.js +49 -12
- package/src/sap/fe/core/helpers/ClassSupport.ts +37 -10
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -6
- package/src/sap/fe/core/helpers/EditState.ts +5 -10
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
- package/src/sap/fe/core/helpers/MassEditHelper.js +306 -280
- package/src/sap/fe/core/helpers/MassEditHelper.ts +380 -360
- package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
- package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
- package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
- package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
- package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
- package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
- package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
- package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +99 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +82 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
- package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
- package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
- package/src/sap/fe/core/library.js +42 -3
- package/src/sap/fe/core/library.ts +38 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
- package/src/sap/fe/core/messagebundle.properties +39 -63
- package/src/sap/fe/core/messagebundle_ar.properties +25 -39
- package/src/sap/fe/core/messagebundle_bg.properties +25 -39
- package/src/sap/fe/core/messagebundle_ca.properties +25 -39
- package/src/sap/fe/core/messagebundle_cs.properties +25 -39
- package/src/sap/fe/core/messagebundle_cy.properties +25 -39
- package/src/sap/fe/core/messagebundle_da.properties +25 -39
- package/src/sap/fe/core/messagebundle_de.properties +25 -39
- package/src/sap/fe/core/messagebundle_el.properties +26 -40
- package/src/sap/fe/core/messagebundle_en.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_GB.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +26 -18
- package/src/sap/fe/core/messagebundle_es.properties +27 -41
- package/src/sap/fe/core/messagebundle_es_MX.properties +25 -39
- package/src/sap/fe/core/messagebundle_et.properties +25 -39
- package/src/sap/fe/core/messagebundle_fi.properties +25 -39
- package/src/sap/fe/core/messagebundle_fr.properties +26 -40
- package/src/sap/fe/core/messagebundle_fr_CA.properties +25 -39
- package/src/sap/fe/core/messagebundle_hi.properties +25 -39
- package/src/sap/fe/core/messagebundle_hr.properties +25 -39
- package/src/sap/fe/core/messagebundle_hu.properties +25 -39
- package/src/sap/fe/core/messagebundle_id.properties +25 -39
- package/src/sap/fe/core/messagebundle_it.properties +41 -55
- package/src/sap/fe/core/messagebundle_iw.properties +25 -39
- package/src/sap/fe/core/messagebundle_ja.properties +25 -39
- package/src/sap/fe/core/messagebundle_kk.properties +25 -39
- package/src/sap/fe/core/messagebundle_ko.properties +30 -44
- package/src/sap/fe/core/messagebundle_lt.properties +25 -39
- package/src/sap/fe/core/messagebundle_lv.properties +25 -39
- package/src/sap/fe/core/messagebundle_ms.properties +25 -39
- package/src/sap/fe/core/messagebundle_nl.properties +27 -41
- package/src/sap/fe/core/messagebundle_no.properties +25 -39
- package/src/sap/fe/core/messagebundle_pl.properties +26 -40
- package/src/sap/fe/core/messagebundle_pt.properties +26 -40
- package/src/sap/fe/core/messagebundle_pt_PT.properties +25 -39
- package/src/sap/fe/core/messagebundle_ro.properties +25 -39
- package/src/sap/fe/core/messagebundle_ru.properties +25 -39
- package/src/sap/fe/core/messagebundle_sh.properties +25 -39
- package/src/sap/fe/core/messagebundle_sk.properties +25 -39
- package/src/sap/fe/core/messagebundle_sl.properties +25 -39
- package/src/sap/fe/core/messagebundle_sv.properties +25 -39
- package/src/sap/fe/core/messagebundle_th.properties +25 -39
- package/src/sap/fe/core/messagebundle_tr.properties +25 -39
- package/src/sap/fe/core/messagebundle_uk.properties +25 -39
- package/src/sap/fe/core/messagebundle_vi.properties +25 -39
- package/src/sap/fe/core/messagebundle_zh_CN.properties +25 -39
- package/src/sap/fe/core/messagebundle_zh_TW.properties +25 -39
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +97 -69
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +68 -69
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +61 -49
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +63 -52
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
- package/src/sap/fe/core/services/ShellServicesFactory.js +92 -76
- package/src/sap/fe/core/services/ShellServicesFactory.ts +95 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +224 -198
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +138 -139
- package/src/sap/fe/core/support/CommonHelper.js +3 -2
- package/src/sap/fe/core/support/CommonHelper.ts +9 -13
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -5
- package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
- package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
- package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
- package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
- package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
- package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
- package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
- package/src/sap/fe/core/templating/FilterHelper.js +16 -15
- package/src/sap/fe/core/templating/FilterHelper.ts +18 -18
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
- package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
- package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
- package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
- package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
- package/src/sap/fe/core/templating/UIFormatters.js +152 -95
- package/src/sap/fe/core/templating/UIFormatters.ts +202 -128
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
|
@@ -2,35 +2,32 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/ClassSupport", "sap/fe/navigation/library", "sap/ui/base/Object", "./controllerextensions/BusyLocker", "./helpers/ModelHelper"], function (Log, deepEqual, ClassSupport, library, BaseObject, BusyLocker, ModelHelper) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/ToES6Promise", "sap/fe/navigation/library", "sap/ui/base/Object", "./controllerextensions/BusyLocker", "./helpers/ModelHelper"], function (Log, deepEqual, ClassSupport, toES6Promise, library, BaseObject, BusyLocker, ModelHelper) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _class;
|
|
9
9
|
|
|
10
10
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
11
11
|
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
function _catch(body, recover) {
|
|
13
|
+
try {
|
|
14
|
+
var result = body();
|
|
15
|
+
} catch (e) {
|
|
16
|
+
return recover(e);
|
|
17
|
+
}
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
if (result && result.then) {
|
|
20
|
+
return result.then(void 0, recover);
|
|
21
|
+
}
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
21
|
-
args[_key] = arguments[_key];
|
|
22
|
-
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
}).catch(function () {
|
|
26
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
27
|
-
args[_key2] = arguments[_key2];
|
|
28
|
-
}
|
|
26
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
28
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
33
29
|
|
|
30
|
+
var NavType = library.NavType;
|
|
34
31
|
var AppStateHandler = (_dec = defineUI5Class("sap.fe.core.AppStateHandler"), _dec(_class = /*#__PURE__*/function (_BaseObject) {
|
|
35
32
|
_inheritsLoose(AppStateHandler, _BaseObject);
|
|
36
33
|
|
|
@@ -41,7 +38,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
41
38
|
_this = _BaseObject.call(this) || this;
|
|
42
39
|
_this._mCurrentAppState = {};
|
|
43
40
|
_this.oAppComponent = oAppComponent;
|
|
44
|
-
_this.sId = oAppComponent.getId()
|
|
41
|
+
_this.sId = "".concat(oAppComponent.getId(), "/AppStateHandler");
|
|
45
42
|
_this.bNoRouteChange = false;
|
|
46
43
|
Log.info("APPSTATE : Appstate handler initialized");
|
|
47
44
|
return _this;
|
|
@@ -55,50 +52,65 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
55
52
|
/**
|
|
56
53
|
* Creates/updates the appstate.
|
|
57
54
|
*
|
|
58
|
-
* @returns
|
|
55
|
+
* @returns A promise resolving the stored data
|
|
59
56
|
* @ui5-restricted
|
|
60
57
|
*/
|
|
61
58
|
;
|
|
62
59
|
|
|
63
60
|
_proto.createAppState = function createAppState() {
|
|
64
|
-
|
|
61
|
+
try {
|
|
62
|
+
var _this3 = this;
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var oNavigationService = this.oAppComponent.getNavigationService(),
|
|
71
|
-
oRouterProxy = this.oAppComponent.getRouterProxy(),
|
|
72
|
-
sHash = oRouterProxy.getHash(),
|
|
73
|
-
oController = this.oAppComponent.getRootControl().getController(),
|
|
74
|
-
bIsStickyMode = ModelHelper.isStickySessionSupported(this.oAppComponent.getMetaModel());
|
|
75
|
-
|
|
76
|
-
if (!oController.viewState) {
|
|
77
|
-
return Promise.reject("viewState controller extension not available for controller: " + oController.getMetadata().getName());
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return oController.viewState.retrieveViewState().then(function (mInnerAppState) {
|
|
81
|
-
var oStoreData = {
|
|
82
|
-
appState: mInnerAppState
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
if (mInnerAppState && !deepEqual(_this2._mCurrentAppState, mInnerAppState)) {
|
|
86
|
-
_this2._mCurrentAppState = mInnerAppState;
|
|
87
|
-
var oAppState = oNavigationService.storeInnerAppStateWithImmediateReturn(oStoreData, true);
|
|
88
|
-
Log.info("APPSTATE: Appstate stored");
|
|
89
|
-
var sAppStateKey = oAppState.appStateKey;
|
|
90
|
-
var sNewHash = oNavigationService.replaceInnerAppStateKey(sHash, sAppStateKey);
|
|
64
|
+
if (!_this3.oAppComponent.getEnvironmentCapabilities().getCapabilities().AppState || BusyLocker.isLocked(_this3)) {
|
|
65
|
+
return Promise.resolve();
|
|
66
|
+
}
|
|
91
67
|
|
|
92
|
-
|
|
93
|
-
oRouterProxy.
|
|
94
|
-
|
|
95
|
-
|
|
68
|
+
var oNavigationService = _this3.oAppComponent.getNavigationService(),
|
|
69
|
+
oRouterProxy = _this3.oAppComponent.getRouterProxy(),
|
|
70
|
+
sHash = oRouterProxy.getHash(),
|
|
71
|
+
oController = _this3.oAppComponent.getRootControl().getController(),
|
|
72
|
+
bIsStickyMode = ModelHelper.isStickySessionSupported(_this3.oAppComponent.getMetaModel());
|
|
96
73
|
|
|
97
|
-
|
|
74
|
+
if (!oController.viewState) {
|
|
75
|
+
throw new Error("viewState controller extension not available for controller: ".concat(oController.getMetadata().getName()));
|
|
98
76
|
}
|
|
99
77
|
|
|
100
|
-
return
|
|
101
|
-
|
|
78
|
+
return Promise.resolve(oController.viewState.retrieveViewState()).then(function (mInnerAppState) {
|
|
79
|
+
var oStoreData = {
|
|
80
|
+
appState: mInnerAppState
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var _temp2 = function () {
|
|
84
|
+
if (mInnerAppState && !deepEqual(_this3._mCurrentAppState, mInnerAppState)) {
|
|
85
|
+
_this3._mCurrentAppState = mInnerAppState;
|
|
86
|
+
|
|
87
|
+
var _temp3 = _catch(function () {
|
|
88
|
+
return Promise.resolve(oNavigationService.storeInnerAppState(oStoreData, true, true)).then(function (sAppStateKey) {
|
|
89
|
+
Log.info("APPSTATE: Appstate stored");
|
|
90
|
+
var sNewHash = oNavigationService.replaceInnerAppStateKey(sHash, sAppStateKey);
|
|
91
|
+
|
|
92
|
+
if (sNewHash !== sHash) {
|
|
93
|
+
oRouterProxy.navToHash(sNewHash, null, null, null, !bIsStickyMode);
|
|
94
|
+
_this3.bNoRouteChange = true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
Log.info("APPSTATE: navToHash");
|
|
98
|
+
});
|
|
99
|
+
}, function (oError) {
|
|
100
|
+
Log.error(oError);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
if (_temp3 && _temp3.then) return _temp3.then(function () {});
|
|
104
|
+
}
|
|
105
|
+
}();
|
|
106
|
+
|
|
107
|
+
return _temp2 && _temp2.then ? _temp2.then(function () {
|
|
108
|
+
return oStoreData;
|
|
109
|
+
}) : oStoreData;
|
|
110
|
+
});
|
|
111
|
+
} catch (e) {
|
|
112
|
+
return Promise.reject(e);
|
|
113
|
+
}
|
|
102
114
|
};
|
|
103
115
|
|
|
104
116
|
_proto._createNavigationParameters = function _createNavigationParameters(oAppData, sNavType) {
|
|
@@ -115,14 +127,14 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
115
127
|
* @function
|
|
116
128
|
* @static
|
|
117
129
|
* @memberof sap.fe.core.AppStateHandler
|
|
118
|
-
* @returns
|
|
130
|
+
* @returns A promise for async handling
|
|
119
131
|
* @private
|
|
120
132
|
* @ui5-restricted
|
|
121
|
-
|
|
133
|
+
*/
|
|
122
134
|
;
|
|
123
135
|
|
|
124
136
|
_proto.applyAppState = function applyAppState() {
|
|
125
|
-
var
|
|
137
|
+
var _this4 = this;
|
|
126
138
|
|
|
127
139
|
if (!this.oAppComponent.getEnvironmentCapabilities().getCapabilities().AppState || BusyLocker.isLocked(this)) {
|
|
128
140
|
return Promise.resolve();
|
|
@@ -133,7 +145,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
133
145
|
BusyLocker.lock(this.oAppComponent.getRootControl());
|
|
134
146
|
var oNavigationService = this.oAppComponent.getNavigationService(); // TODO oNavigationService.parseNavigation() should return ES6 promise instead jQuery.promise
|
|
135
147
|
|
|
136
|
-
return
|
|
148
|
+
return toES6Promise(oNavigationService.parseNavigation()).catch(function (aErrorData) {
|
|
137
149
|
if (!aErrorData) {
|
|
138
150
|
aErrorData = [];
|
|
139
151
|
}
|
|
@@ -147,28 +159,28 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
147
159
|
|
|
148
160
|
var oAppData = aResults[0] || {},
|
|
149
161
|
sNavType = aResults[2] || NavType.initial,
|
|
150
|
-
oRootController =
|
|
162
|
+
oRootController = _this4.oAppComponent.getRootControl().getController();
|
|
151
163
|
|
|
152
|
-
|
|
164
|
+
_this4._mCurrentAppState = sNavType === NavType.iAppState ? oAppData && oAppData.appState : undefined;
|
|
153
165
|
|
|
154
166
|
if (!oRootController.viewState) {
|
|
155
|
-
throw new Error("viewState extension required for controller "
|
|
167
|
+
throw new Error("viewState extension required for controller ".concat(oRootController.getMetadata().getName()));
|
|
156
168
|
}
|
|
157
169
|
|
|
158
|
-
return oRootController.viewState.applyViewState(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
170
|
+
return oRootController.viewState.applyViewState(_this4._mCurrentAppState, _this4._createNavigationParameters(oAppData, sNavType));
|
|
171
|
+
}).catch(function (oError) {
|
|
172
|
+
Log.error("appState could not be applied", oError);
|
|
173
|
+
throw oError;
|
|
162
174
|
}).finally(function () {
|
|
163
|
-
BusyLocker.unlock(
|
|
164
|
-
BusyLocker.unlock(
|
|
175
|
+
BusyLocker.unlock(_this4);
|
|
176
|
+
BusyLocker.unlock(_this4.oAppComponent.getRootControl());
|
|
165
177
|
});
|
|
166
178
|
}
|
|
167
179
|
/**
|
|
168
180
|
* To check is route is changed by change in the iAPPState.
|
|
169
181
|
*
|
|
170
|
-
* @returns
|
|
171
|
-
|
|
182
|
+
* @returns `true` if the route has chnaged
|
|
183
|
+
*/
|
|
172
184
|
;
|
|
173
185
|
|
|
174
186
|
_proto.checkIfRouteChangedByIApp = function checkIfRouteChangedByIApp() {
|
|
@@ -176,7 +188,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
176
188
|
}
|
|
177
189
|
/**
|
|
178
190
|
* Reset the route changed by iAPPState.
|
|
179
|
-
|
|
191
|
+
*/
|
|
180
192
|
;
|
|
181
193
|
|
|
182
194
|
_proto.resetRouteChangedByIApp = function resetRouteChangedByIApp() {
|
|
@@ -197,4 +209,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
197
209
|
|
|
198
210
|
return AppStateHandler;
|
|
199
211
|
}, true);
|
|
200
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIl90b0VTNlByb21pc2UiLCJvVGhlbmFibGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJhcmdzIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJjYXRjaCIsIkFwcFN0YXRlSGFuZGxlciIsImRlZmluZVVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJjcmVhdGVBcHBTdGF0ZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsIm9Sb3V0ZXJQcm94eSIsImdldFJvdXRlclByb3h5Iiwic0hhc2giLCJnZXRIYXNoIiwib0NvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJiSXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3U3RhdGUiLCJyZWplY3QiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJyZXRyaWV2ZVZpZXdTdGF0ZSIsIm1Jbm5lckFwcFN0YXRlIiwib1N0b3JlRGF0YSIsImFwcFN0YXRlIiwiZGVlcEVxdWFsIiwib0FwcFN0YXRlIiwic3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsInNBcHBTdGF0ZUtleSIsImFwcFN0YXRlS2V5Iiwic05ld0hhc2giLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsIm5hdlRvSGFzaCIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiYXBwbHlBcHBTdGF0ZSIsImxvY2siLCJwYXJzZU5hdmlnYXRpb24iLCJhRXJyb3JEYXRhIiwid2FybmluZyIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImlBcHBTdGF0ZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXBwbHlWaWV3U3RhdGUiLCJvRXJyb3IiLCJlcnJvciIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJfaXNMaXN0QmFzZWRDb21wb25lbnQiLCJvQ29tcG9uZW50IiwiaXNBIiwiQmFzZU9iamVjdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQXhCOztBQUNBLFdBQVNFLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQXVDO0FBQ3RDLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUNORixTQUFTLENBQ1BHLElBREYsQ0FDTyxZQUEwQjtBQUFBLHdDQUFiQyxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDL0IsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQUhGLEVBSUVLLEtBSkYsQ0FJUSxZQUEwQjtBQUFBLHlDQUFiTCxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDaEMsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFB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QUFDMEQsTUFBWCxDQUFrQixNQUFsQjtBQUNBMUQsUUFBQUEsVUFBVSxDQUFDMEQsTUFBWCxDQUFrQixNQUFJLENBQUNyRSxhQUFMLENBQW1Cb0IsY0FBbkIsRUFBbEI7QUFDQSxPQXRDSyxDQUFQO0FBdUNBO0FBQ0Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NrRCx5QixHQUFBLHFDQUE0QjtBQUMzQixhQUFPLEtBQUtsRSxjQUFaO0FBQ0E7QUFDRDtBQUNEO0FBQ0E7OztXQUNDbUUsdUIsR0FBQSxtQ0FBMEI7QUFDekIsVUFBSSxLQUFLbkUsY0FBVCxFQUF5QjtBQUN4QixhQUFLQSxjQUFMLEdBQXNCLEtBQXRCO0FBQ0E7QUFDRCxLOztXQUNEb0UscUIsR0FBQSwrQkFBc0JDLFVBQXRCLEVBQXVDO0FBQ3RDLGFBQU9BLFVBQVUsQ0FBQ0MsR0FBWCxDQUFlLGdDQUFmLENBQVA7QUFDQSxLOzs7SUE5STRCQyxVO0FBaUo5QjtBQUNBO0FBQ0E7O1NBQ2U3RSxlIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGxpYnJhcnkgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCIuL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwiLi9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5cbmNvbnN0IE5hdlR5cGUgPSBsaWJyYXJ5Lk5hdlR5cGU7XG5mdW5jdGlvbiBfdG9FUzZQcm9taXNlKG9UaGVuYWJsZTogYW55KSB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoXG5cdFx0b1RoZW5hYmxlXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHRcdFx0fSlcblx0KTtcbn1cblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXHRwdWJsaWMgb0FwcENvbXBvbmVudDogYW55OyAvLyBBcHBDb21wb25lbnRcblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXHRwcml2YXRlIF9tQ3VycmVudEFwcFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IGFueSkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IG9BcHBDb21wb25lbnQuZ2V0SWQoKSArIFwiL0FwcFN0YXRlSGFuZGxlclwiO1xuXG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cdGdldElkKCkge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcy91cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0Y3JlYXRlQXBwU3RhdGUoKSB7XG5cdFx0aWYgKCF0aGlzLm9BcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5BcHBTdGF0ZSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb05hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCksXG5cdFx0XHRvUm91dGVyUHJveHkgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKSxcblx0XHRcdHNIYXNoID0gb1JvdXRlclByb3h5LmdldEhhc2goKSxcblx0XHRcdG9Db250cm9sbGVyID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpLFxuXHRcdFx0YklzU3RpY2t5TW9kZSA9IE1vZGVsSGVscGVyLmlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCh0aGlzLm9BcHBDb21wb25lbnQuZ2V0TWV0YU1vZGVsKCkpO1xuXG5cdFx0aWYgKCFvQ29udHJvbGxlci52aWV3U3RhdGUpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChcInZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyOiBcIiArIG9Db250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gb0NvbnRyb2xsZXIudmlld1N0YXRlLnJldHJpZXZlVmlld1N0YXRlKCkudGhlbigobUlubmVyQXBwU3RhdGU6IGFueSkgPT4ge1xuXHRcdFx0Y29uc3Qgb1N0b3JlRGF0YSA9IHsgYXBwU3RhdGU6IG1Jbm5lckFwcFN0YXRlIH07XG5cdFx0XHRpZiAobUlubmVyQXBwU3RhdGUgJiYgIWRlZXBFcXVhbCh0aGlzLl9tQ3VycmVudEFwcFN0YXRlLCBtSW5uZXJBcHBTdGF0ZSkpIHtcblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IG1Jbm5lckFwcFN0YXRlO1xuXHRcdFx0XHRjb25zdCBvQXBwU3RhdGUgPSBvTmF2aWdhdGlvblNlcnZpY2Uuc3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvU3RvcmVEYXRhLCB0cnVlKTtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogQXBwc3RhdGUgc3RvcmVkXCIpO1xuXHRcdFx0XHRjb25zdCBzQXBwU3RhdGVLZXkgPSBvQXBwU3RhdGUuYXBwU3RhdGVLZXk7XG5cdFx0XHRcdGNvbnN0IHNOZXdIYXNoID0gb05hdmlnYXRpb25TZXJ2aWNlLnJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNIYXNoLCBzQXBwU3RhdGVLZXkpO1xuXHRcdFx0XHRpZiAoc05ld0hhc2ggIT09IHNIYXNoKSB7XG5cdFx0XHRcdFx0b1JvdXRlclByb3h5Lm5hdlRvSGFzaChzTmV3SGFzaCwgbnVsbCwgbnVsbCwgbnVsbCwgIWJJc1N0aWNreU1vZGUpO1xuXHRcdFx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IG5hdlRvSGFzaFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBvU3RvcmVEYXRhO1xuXHRcdH0pO1xuXHR9XG5cblx0X2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhOiBhbnksIHNOYXZUeXBlOiBhbnkpIHtcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgb0FwcERhdGEsIHtcblx0XHRcdHNlbGVjdGlvblZhcmlhbnREZWZhdWx0czogb0FwcERhdGEub0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvQXBwRGF0YS5vU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHJlcXVpcmVzU3RhbmRhcmRWYXJpYW50OiAhb0FwcERhdGEuYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSxcblx0XHRcdG5hdmlnYXRpb25UeXBlOiBzTmF2VHlwZVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFwcGxpZXMgYW4gYXBwc3RhdGUgYnkgZmV0Y2hpbmcgYXBwZGF0YSBhbmQgcGFzc2luZyBpdCB0byBfYXBwbHlBcHBzdGF0ZVRvUGFnZS5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBzdGF0aWNcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkFwcFN0YXRlSGFuZGxlclxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gQSBwcm9taXNlIGZvciBhc3luYyBoYW5kbGluZ1xuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICoqL1xuXHRhcHBseUFwcFN0YXRlKCkge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcyk7XG5cdFx0Ly8gRG9uZSBmb3IgYnVzeSBpbmRpY2F0b3Jcblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXG5cdFx0Y29uc3Qgb05hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCk7XG5cdFx0Ly8gVE9ETyBvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkgc2hvdWxkIHJldHVybiBFUzYgcHJvbWlzZSBpbnN0ZWFkIGpRdWVyeS5wcm9taXNlXG5cdFx0cmV0dXJuIF90b0VTNlByb21pc2Uob05hdmlnYXRpb25TZXJ2aWNlLnBhcnNlTmF2aWdhdGlvbigpKVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChhRXJyb3JEYXRhOiBhbnkpIHtcblx0XHRcdFx0aWYgKCFhRXJyb3JEYXRhKSB7XG5cdFx0XHRcdFx0YUVycm9yRGF0YSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdExvZy53YXJuaW5nKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZmFpbGVkXCIsIGFFcnJvckRhdGFbMF0pO1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdC8qIGFwcCBkYXRhICovXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzFdLFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMl1cblx0XHRcdFx0XTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYVJlc3VsdHM6IGFueSkgPT4ge1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGRvbmVcIik7XG5cblx0XHRcdFx0Ly8gYVJlc3VsdHNbMV0gPT4gb1N0YXJ0dXBQYXJhbWV0ZXJzIChub3QgZXZhbHVhdGVkKVxuXHRcdFx0XHRjb25zdCBvQXBwRGF0YSA9IGFSZXN1bHRzWzBdIHx8IHt9LFxuXHRcdFx0XHRcdHNOYXZUeXBlID0gYVJlc3VsdHNbMl0gfHwgTmF2VHlwZS5pbml0aWFsLFxuXHRcdFx0XHRcdG9Sb290Q29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblxuXHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gc05hdlR5cGUgPT09IE5hdlR5cGUuaUFwcFN0YXRlID8gb0FwcERhdGEgJiYgb0FwcERhdGEuYXBwU3RhdGUgOiB1bmRlZmluZWQ7XG5cblx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidmlld1N0YXRlIGV4dGVuc2lvbiByZXF1aXJlZCBmb3IgY29udHJvbGxlciBcIiArIG9Sb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZVxuXHRcdFx0XHRcdC5hcHBseVZpZXdTdGF0ZSh0aGlzLl9tQ3VycmVudEFwcFN0YXRlLCB0aGlzLl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YSwgc05hdlR5cGUpKVxuXHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcImFwcFN0YXRlIGNvdWxkIG5vdCBiZSBhcHBsaWVkXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR0aHJvdyBvRXJyb3I7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzKTtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdFx0fSk7XG5cdH1cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKiovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblx0LyoqXG5cdCAqIFJlc2V0IHRoZSByb3V0ZSBjaGFuZ2VkIGJ5IGlBUFBTdGF0ZS5cblx0ICoqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXHRfaXNMaXN0QmFzZWRDb21wb25lbnQob0NvbXBvbmVudDogYW55KSB7XG5cdFx0cmV0dXJuIG9Db21wb25lbnQuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0Q29tcG9uZW50XCIpO1xuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXX0=
|
|
212
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiTmF2VHlwZSIsImxpYnJhcnkiLCJBcHBTdGF0ZUhhbmRsZXIiLCJkZWZpbmVVSTVDbGFzcyIsIm9BcHBDb21wb25lbnQiLCJfbUN1cnJlbnRBcHBTdGF0ZSIsInNJZCIsImdldElkIiwiYk5vUm91dGVDaGFuZ2UiLCJMb2ciLCJpbmZvIiwiY3JlYXRlQXBwU3RhdGUiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsImdldENhcGFiaWxpdGllcyIsIkFwcFN0YXRlIiwiQnVzeUxvY2tlciIsImlzTG9ja2VkIiwib05hdmlnYXRpb25TZXJ2aWNlIiwiZ2V0TmF2aWdhdGlvblNlcnZpY2UiLCJvUm91dGVyUHJveHkiLCJnZXRSb3V0ZXJQcm94eSIsInNIYXNoIiwiZ2V0SGFzaCIsIm9Db250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiYklzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZ2V0TWV0YU1vZGVsIiwidmlld1N0YXRlIiwiRXJyb3IiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJyZXRyaWV2ZVZpZXdTdGF0ZSIsIm1Jbm5lckFwcFN0YXRlIiwib1N0b3JlRGF0YSIsImFwcFN0YXRlIiwiZGVlcEVxdWFsIiwic3RvcmVJbm5lckFwcFN0YXRlIiwic0FwcFN0YXRlS2V5Iiwic05ld0hhc2giLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsIm5hdlRvSGFzaCIsIm9FcnJvciIsImVycm9yIiwiX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwib0FwcERhdGEiLCJzTmF2VHlwZSIsIk9iamVjdCIsImFzc2lnbiIsInNlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsIm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50IiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5IiwibmF2aWdhdGlvblR5cGUiLCJhcHBseUFwcFN0YXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJsb2NrIiwidG9FUzZQcm9taXNlIiwicGFyc2VOYXZpZ2F0aW9uIiwiY2F0Y2giLCJhRXJyb3JEYXRhIiwid2FybmluZyIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImlBcHBTdGF0ZSIsInVuZGVmaW5lZCIsImFwcGx5Vmlld1N0YXRlIiwiZmluYWxseSIsInVubG9jayIsImNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAiLCJyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCIsIl9pc0xpc3RCYXNlZENvbXBvbmVudCIsIm9Db21wb25lbnQiLCJpc0EiLCJCYXNlT2JqZWN0Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7OztBQWdqQk8sa0JBQWdCQSxJQUFoQixFQUFzQkMsT0FBdEIsRUFBK0I7QUFDckMsUUFBSTtBQUNILFVBQUlDLE1BQU0sR0FBR0YsSUFBSSxFQUFqQjtBQUNBLEtBRkQsQ0FFRSxPQUFNRyxDQUFOLEVBQVM7QUFDVixhQUFPRixPQUFPLENBQUNFLENBQUQsQ0FBZDtBQUNBOztBQUNELFFBQUlELE1BQU0sSUFBSUEsTUFBTSxDQUFDRSxJQUFyQixFQUEyQjtBQUMxQixhQUFPRixNQUFNLENBQUNFLElBQVAsQ0FBWSxLQUFLLENBQWpCLEVBQW9CSCxPQUFwQixDQUFQO0FBQ0E7O0FBQ0QsV0FBT0MsTUFBUDtBQUNBOzs7Ozs7QUFuakJELE1BQU1HLE9BQU8sR0FBR0MsT0FBTyxDQUFDRCxPQUF4QjtNQUdNRSxlLFdBRExDLGNBQWMsQ0FBQyw2QkFBRCxDOzs7QUFHYTtBQUczQiw2QkFBWUMsYUFBWixFQUFnQztBQUFBOztBQUMvQjtBQUQrQixZQUR4QkMsaUJBQ3dCLEdBRGlCLEVBQ2pCO0FBRS9CLFlBQUtELGFB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O0FBQ0E7QUFDQTs7O1dBQ0NtRCx5QixHQUFBLHFDQUE0QjtBQUMzQixhQUFPLEtBQUtuRSxjQUFaO0FBQ0E7QUFDRDtBQUNEO0FBQ0E7OztXQUNDb0UsdUIsR0FBQSxtQ0FBMEI7QUFDekIsVUFBSSxLQUFLcEUsY0FBVCxFQUF5QjtBQUN4QixhQUFLQSxjQUFMLEdBQXNCLEtBQXRCO0FBQ0E7QUFDRCxLOztXQUNEcUUscUIsR0FBQSwrQkFBc0JDLFVBQXRCLEVBQXVDO0FBQ3RDLGFBQU9BLFVBQVUsQ0FBQ0MsR0FBWCxDQUFlLGdDQUFmLENBQVA7QUFDQSxLOzs7SUFuSjRCQyxVO0FBc0o5QjtBQUNBO0FBQ0E7O1NBQ2U5RSxlIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHRvRVM2UHJvbWlzZSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Ub0VTNlByb21pc2VcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgQnVzeUxvY2tlciBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcIi4vaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuXG5jb25zdCBOYXZUeXBlID0gbGlicmFyeS5OYXZUeXBlO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcIilcbmNsYXNzIEFwcFN0YXRlSGFuZGxlciBleHRlbmRzIEJhc2VPYmplY3Qge1xuXHRwdWJsaWMgc0lkOiBzdHJpbmc7XG5cdHB1YmxpYyBvQXBwQ29tcG9uZW50OiBhbnk7IC8vIEFwcENvbXBvbmVudFxuXHRwdWJsaWMgYk5vUm91dGVDaGFuZ2U6IGJvb2xlYW47XG5cdHByaXZhdGUgX21DdXJyZW50QXBwU3RhdGU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblx0Y29uc3RydWN0b3Iob0FwcENvbXBvbmVudDogYW55KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBvQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuc0lkID0gYCR7b0FwcENvbXBvbmVudC5nZXRJZCgpfS9BcHBTdGF0ZUhhbmRsZXJgO1xuXG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cdGdldElkKCkge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcy91cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGFcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRhc3luYyBjcmVhdGVBcHBTdGF0ZSgpOiBQcm9taXNlPHZvaWQgfCBhbnk+IHtcblx0XHRpZiAoIXRoaXMub0FwcENvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkFwcFN0YXRlIHx8IEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdG9Sb3V0ZXJQcm94eSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0c0hhc2ggPSBvUm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCksXG5cdFx0XHRiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIW9Db250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGB2aWV3U3RhdGUgY29udHJvbGxlciBleHRlbnNpb24gbm90IGF2YWlsYWJsZSBmb3IgY29udHJvbGxlcjogJHtvQ29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHR9XG5cblx0XHRjb25zdCBtSW5uZXJBcHBTdGF0ZSA9IGF3YWl0IG9Db250cm9sbGVyLnZpZXdTdGF0ZS5yZXRyaWV2ZVZpZXdTdGF0ZSgpO1xuXHRcdGNvbnN0IG9TdG9yZURhdGEgPSB7IGFwcFN0YXRlOiBtSW5uZXJBcHBTdGF0ZSB9O1xuXHRcdGlmIChtSW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIG1Jbm5lckFwcFN0YXRlKSkge1xuXHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IG1Jbm5lckFwcFN0YXRlO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc0FwcFN0YXRlS2V5ID0gYXdhaXQgb05hdmlnYXRpb25TZXJ2aWNlLnN0b3JlSW5uZXJBcHBTdGF0ZShvU3RvcmVEYXRhLCB0cnVlLCB0cnVlKTtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogQXBwc3RhdGUgc3RvcmVkXCIpO1xuXHRcdFx0XHRjb25zdCBzTmV3SGFzaCA9IG9OYXZpZ2F0aW9uU2VydmljZS5yZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzSGFzaCwgc0FwcFN0YXRlS2V5KTtcblx0XHRcdFx0aWYgKHNOZXdIYXNoICE9PSBzSGFzaCkge1xuXHRcdFx0XHRcdG9Sb3V0ZXJQcm94eS5uYXZUb0hhc2goc05ld0hhc2gsIG51bGwsIG51bGwsIG51bGwsICFiSXNTdGlja3lNb2RlKTtcblx0XHRcdFx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBuYXZUb0hhc2hcIik7XG5cdFx0XHR9IGNhdGNoIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3Iob0Vycm9yKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb1N0b3JlRGF0YTtcblx0fVxuXG5cdF9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YTogYW55LCBzTmF2VHlwZTogYW55KSB7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9BcHBEYXRhLCB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHM6IG9BcHBEYXRhLm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogb0FwcERhdGEub1NlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRyZXF1aXJlc1N0YW5kYXJkVmFyaWFudDogIW9BcHBEYXRhLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHksXG5cdFx0XHRuYXZpZ2F0aW9uVHlwZTogc05hdlR5cGVcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIGFuIGFwcHN0YXRlIGJ5IGZldGNoaW5nIGFwcGRhdGEgYW5kIHBhc3NpbmcgaXQgdG8gX2FwcGx5QXBwc3RhdGVUb1BhZ2UuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAc3RhdGljXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcblx0ICogQHJldHVybnMgQSBwcm9taXNlIGZvciBhc3luYyBoYW5kbGluZ1xuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGFwcGx5QXBwU3RhdGUoKSB7XG5cdFx0aWYgKCF0aGlzLm9BcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5BcHBTdGF0ZSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gdG9FUzZQcm9taXNlKG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoYUVycm9yRGF0YTogYW55KSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdKTtcblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQvKiBhcHAgZGF0YSAqL1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsxXSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzJdXG5cdFx0XHRcdF07XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGFSZXN1bHRzOiBhbnkpID0+IHtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBkb25lXCIpO1xuXG5cdFx0XHRcdC8vIGFSZXN1bHRzWzFdID0+IG9TdGFydHVwUGFyYW1ldGVycyAobm90IGV2YWx1YXRlZClcblx0XHRcdFx0Y29uc3Qgb0FwcERhdGEgPSBhUmVzdWx0c1swXSB8fCB7fSxcblx0XHRcdFx0XHRzTmF2VHlwZSA9IGFSZXN1bHRzWzJdIHx8IE5hdlR5cGUuaW5pdGlhbCxcblx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSA/IG9BcHBEYXRhICYmIG9BcHBEYXRhLmFwcFN0YXRlIDogdW5kZWZpbmVkO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgdmlld1N0YXRlIGV4dGVuc2lvbiByZXF1aXJlZCBmb3IgY29udHJvbGxlciAke29Sb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLmFwcGx5Vmlld1N0YXRlKFxuXHRcdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUsXG5cdFx0XHRcdFx0dGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiYXBwU3RhdGUgY291bGQgbm90IGJlIGFwcGxpZWRcIiwgb0Vycm9yKTtcblx0XHRcdFx0dGhyb3cgb0Vycm9yO1xuXHRcdFx0fSlcblx0XHRcdC5maW5hbGx5KCgpID0+IHtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcyk7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRcdH0pO1xuXHR9XG5cdC8qKlxuXHQgKiBUbyBjaGVjayBpcyByb3V0ZSBpcyBjaGFuZ2VkIGJ5IGNoYW5nZSBpbiB0aGUgaUFQUFN0YXRlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJvdXRlIGhhcyBjaG5hZ2VkXG5cdCAqL1xuXHRjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwKCkge1xuXHRcdHJldHVybiB0aGlzLmJOb1JvdXRlQ2hhbmdlO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXNldCB0aGUgcm91dGUgY2hhbmdlZCBieSBpQVBQU3RhdGUuXG5cdCAqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXHRfaXNMaXN0QmFzZWRDb21wb25lbnQob0NvbXBvbmVudDogYW55KSB7XG5cdFx0cmV0dXJuIG9Db21wb25lbnQuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0Q29tcG9uZW50XCIpO1xuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXX0=
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
2
|
import deepEqual from "sap/base/util/deepEqual";
|
|
3
3
|
import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
4
|
+
import toES6Promise from "sap/fe/core/helpers/ToES6Promise";
|
|
4
5
|
import library from "sap/fe/navigation/library";
|
|
5
6
|
import BaseObject from "sap/ui/base/Object";
|
|
6
7
|
import BusyLocker from "./controllerextensions/BusyLocker";
|
|
7
8
|
import ModelHelper from "./helpers/ModelHelper";
|
|
8
9
|
|
|
9
10
|
const NavType = library.NavType;
|
|
10
|
-
function _toES6Promise(oThenable: any) {
|
|
11
|
-
return Promise.resolve(
|
|
12
|
-
oThenable
|
|
13
|
-
.then(function (...args: any[]) {
|
|
14
|
-
return Array.prototype.slice.call(args);
|
|
15
|
-
})
|
|
16
|
-
.catch(function (...args: any[]) {
|
|
17
|
-
return Array.prototype.slice.call(args);
|
|
18
|
-
})
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
11
|
|
|
22
12
|
@defineUI5Class("sap.fe.core.AppStateHandler")
|
|
23
13
|
class AppStateHandler extends BaseObject {
|
|
@@ -28,7 +18,7 @@ class AppStateHandler extends BaseObject {
|
|
|
28
18
|
constructor(oAppComponent: any) {
|
|
29
19
|
super();
|
|
30
20
|
this.oAppComponent = oAppComponent;
|
|
31
|
-
this.sId = oAppComponent.getId()
|
|
21
|
+
this.sId = `${oAppComponent.getId()}/AppStateHandler`;
|
|
32
22
|
|
|
33
23
|
this.bNoRouteChange = false;
|
|
34
24
|
Log.info("APPSTATE : Appstate handler initialized");
|
|
@@ -39,12 +29,12 @@ class AppStateHandler extends BaseObject {
|
|
|
39
29
|
/**
|
|
40
30
|
* Creates/updates the appstate.
|
|
41
31
|
*
|
|
42
|
-
* @returns
|
|
32
|
+
* @returns A promise resolving the stored data
|
|
43
33
|
* @ui5-restricted
|
|
44
34
|
*/
|
|
45
|
-
createAppState() {
|
|
35
|
+
async createAppState(): Promise<void | any> {
|
|
46
36
|
if (!this.oAppComponent.getEnvironmentCapabilities().getCapabilities().AppState || BusyLocker.isLocked(this)) {
|
|
47
|
-
return
|
|
37
|
+
return;
|
|
48
38
|
}
|
|
49
39
|
|
|
50
40
|
const oNavigationService = this.oAppComponent.getNavigationService(),
|
|
@@ -54,25 +44,28 @@ class AppStateHandler extends BaseObject {
|
|
|
54
44
|
bIsStickyMode = ModelHelper.isStickySessionSupported(this.oAppComponent.getMetaModel());
|
|
55
45
|
|
|
56
46
|
if (!oController.viewState) {
|
|
57
|
-
|
|
47
|
+
throw new Error(`viewState controller extension not available for controller: ${oController.getMetadata().getName()}`);
|
|
58
48
|
}
|
|
59
49
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
50
|
+
const mInnerAppState = await oController.viewState.retrieveViewState();
|
|
51
|
+
const oStoreData = { appState: mInnerAppState };
|
|
52
|
+
if (mInnerAppState && !deepEqual(this._mCurrentAppState, mInnerAppState)) {
|
|
53
|
+
this._mCurrentAppState = mInnerAppState;
|
|
54
|
+
try {
|
|
55
|
+
const sAppStateKey = await oNavigationService.storeInnerAppState(oStoreData, true, true);
|
|
65
56
|
Log.info("APPSTATE: Appstate stored");
|
|
66
|
-
const sAppStateKey = oAppState.appStateKey;
|
|
67
57
|
const sNewHash = oNavigationService.replaceInnerAppStateKey(sHash, sAppStateKey);
|
|
68
58
|
if (sNewHash !== sHash) {
|
|
69
59
|
oRouterProxy.navToHash(sNewHash, null, null, null, !bIsStickyMode);
|
|
70
60
|
this.bNoRouteChange = true;
|
|
71
61
|
}
|
|
72
62
|
Log.info("APPSTATE: navToHash");
|
|
63
|
+
} catch (oError: any) {
|
|
64
|
+
Log.error(oError);
|
|
73
65
|
}
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return oStoreData;
|
|
76
69
|
}
|
|
77
70
|
|
|
78
71
|
_createNavigationParameters(oAppData: any, sNavType: any) {
|
|
@@ -90,10 +83,10 @@ class AppStateHandler extends BaseObject {
|
|
|
90
83
|
* @function
|
|
91
84
|
* @static
|
|
92
85
|
* @memberof sap.fe.core.AppStateHandler
|
|
93
|
-
* @returns
|
|
86
|
+
* @returns A promise for async handling
|
|
94
87
|
* @private
|
|
95
88
|
* @ui5-restricted
|
|
96
|
-
|
|
89
|
+
*/
|
|
97
90
|
applyAppState() {
|
|
98
91
|
if (!this.oAppComponent.getEnvironmentCapabilities().getCapabilities().AppState || BusyLocker.isLocked(this)) {
|
|
99
92
|
return Promise.resolve();
|
|
@@ -104,7 +97,7 @@ class AppStateHandler extends BaseObject {
|
|
|
104
97
|
|
|
105
98
|
const oNavigationService = this.oAppComponent.getNavigationService();
|
|
106
99
|
// TODO oNavigationService.parseNavigation() should return ES6 promise instead jQuery.promise
|
|
107
|
-
return
|
|
100
|
+
return toES6Promise(oNavigationService.parseNavigation())
|
|
108
101
|
.catch(function (aErrorData: any) {
|
|
109
102
|
if (!aErrorData) {
|
|
110
103
|
aErrorData = [];
|
|
@@ -129,15 +122,17 @@ class AppStateHandler extends BaseObject {
|
|
|
129
122
|
this._mCurrentAppState = sNavType === NavType.iAppState ? oAppData && oAppData.appState : undefined;
|
|
130
123
|
|
|
131
124
|
if (!oRootController.viewState) {
|
|
132
|
-
throw new Error(
|
|
125
|
+
throw new Error(`viewState extension required for controller ${oRootController.getMetadata().getName()}`);
|
|
133
126
|
}
|
|
134
127
|
|
|
135
|
-
return oRootController.viewState
|
|
136
|
-
|
|
137
|
-
.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
128
|
+
return oRootController.viewState.applyViewState(
|
|
129
|
+
this._mCurrentAppState,
|
|
130
|
+
this._createNavigationParameters(oAppData, sNavType)
|
|
131
|
+
);
|
|
132
|
+
})
|
|
133
|
+
.catch(function (oError: any) {
|
|
134
|
+
Log.error("appState could not be applied", oError);
|
|
135
|
+
throw oError;
|
|
141
136
|
})
|
|
142
137
|
.finally(() => {
|
|
143
138
|
BusyLocker.unlock(this);
|
|
@@ -147,14 +142,14 @@ class AppStateHandler extends BaseObject {
|
|
|
147
142
|
/**
|
|
148
143
|
* To check is route is changed by change in the iAPPState.
|
|
149
144
|
*
|
|
150
|
-
* @returns
|
|
151
|
-
|
|
145
|
+
* @returns `true` if the route has chnaged
|
|
146
|
+
*/
|
|
152
147
|
checkIfRouteChangedByIApp() {
|
|
153
148
|
return this.bNoRouteChange;
|
|
154
149
|
}
|
|
155
150
|
/**
|
|
156
151
|
* Reset the route changed by iAPPState.
|
|
157
|
-
|
|
152
|
+
*/
|
|
158
153
|
resetRouteChangedByIApp() {
|
|
159
154
|
if (this.bNoRouteChange) {
|
|
160
155
|
this.bNoRouteChange = false;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/
|
|
5
|
+
sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/mvc/Controller"], function (CommonUtils, ClassSupport, Controller) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _class, _class2;
|
|
9
9
|
|
|
10
|
-
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
11
10
|
var publicExtension = ClassSupport.publicExtension;
|
|
11
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
12
12
|
|
|
13
13
|
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
14
14
|
|
|
@@ -38,7 +38,7 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/
|
|
|
38
38
|
/**
|
|
39
39
|
* Returns the current app component.
|
|
40
40
|
*
|
|
41
|
-
* @returns
|
|
41
|
+
* @returns The app component or, if not found, null
|
|
42
42
|
* @alias sap.fe.core.BaseController#getAppComponent
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.91.0
|
|
@@ -52,9 +52,10 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/
|
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Convenience method provided by SAP Fiori elements to enable applications to include the view model by name into each controller.
|
|
55
|
+
*
|
|
55
56
|
* @public
|
|
56
|
-
* @param
|
|
57
|
-
* @returns
|
|
57
|
+
* @param sName The model name
|
|
58
|
+
* @returns The model instance
|
|
58
59
|
*/
|
|
59
60
|
;
|
|
60
61
|
|
|
@@ -63,10 +64,11 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/
|
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Convenience method for setting the view model in every controller of the application.
|
|
67
|
+
*
|
|
66
68
|
* @public
|
|
67
|
-
* @param
|
|
68
|
-
* @param
|
|
69
|
-
* @returns
|
|
69
|
+
* @param oModel The model instance
|
|
70
|
+
* @param sName The model name
|
|
71
|
+
* @returns The view instance
|
|
70
72
|
*/
|
|
71
73
|
;
|
|
72
74
|
|
|
@@ -86,4 +88,4 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/
|
|
|
86
88
|
}(Controller), (_applyDecoratedDescriptor(_class2.prototype, "getAppComponent", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "getAppComponent"), _class2.prototype)), _class2)) || _class);
|
|
87
89
|
return BaseController;
|
|
88
90
|
}, false);
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhc2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJhc2VDb250cm9sbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJwdWJsaWNFeHRlbnNpb24iLCJnZXRBcHBDb21wb25lbnQiLCJfb0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0VmlldyIsImdldE1vZGVsIiwic05hbWUiLCJzZXRNb2RlbCIsIm9Nb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwic0kxOG5Nb2RlbE5hbWUiLCJDb250cm9sbGVyIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxjLFdBRExDLGNBQWMsQ0FBQyw0QkFBRCxDLFVBV2JDLGVBQWUsRTs7Ozs7Ozs7O0FBUmhCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7V0FFQ0MsZSxHQURBLDJCQUNnQztBQUMvQixVQUFJLENBQUMsS0FBS0MsY0FBVixFQUEwQjtBQUN6QixhQUFLQSxjQUFMLEdBQXNCQyxXQUFXLENBQUNGLGVBQVosQ0FBNEIsS0FBS0csT0FBTCxFQUE1QixDQUF0QjtBQUNBOztBQUNELGFBQU8sS0FBS0YsY0FBWjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDRyxRLEdBQUEsa0JBQVNDLEtBQVQsRUFBeUI7QUFDeEIsYUFBTyxLQUFLRixPQUFMLEdBQWVDLFFBQWYsQ0FBd0JDLEtBQXhCLENBQVA7QUFDQTtBQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDQyxRLEdBQUEsa0JBQVNDLE1BQVQsRUFBd0JGLEtBQXhCLEVBQTZDO0FBQzVDLGFBQU8sS0FBS0YsT0FBTCxHQUFlRyxRQUFmLENBQXdCQyxNQUF4QixFQUFnQ0YsS0FBaEMsQ0FBUDtBQUNBLEs7O1dBRURHLGlCLEdBQUEsMkJBQWtCQyxjQUFsQixFQUF1QztBQUN0QyxVQUFJLENBQUNBLGNBQUwsRUFBcUI7QUFDcEJBLFFBQUFBLGNBQWMsR0FBRyxNQUFqQjtBQUNBOztBQUNELGFBQVEsS0FBS1QsZUFBTCxHQUF1QkksUUFBdkIsQ0FBZ0NLLGNBQWhDLENBQUQsQ0FBbUVELGlCQUFuRSxFQUFQO0FBQ0EsSzs7O0lBOUMyQkUsVTtTQWlEZGIsYyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwdWJsaWNFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb250cm9sbGVyIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcbmltcG9ydCB0eXBlIFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9yZXNvdXJjZS9SZXNvdXJjZU1vZGVsXCI7XG5cbi8qKlxuICogSW50ZXJuYWwgYmFzZSBjb250cm9sbGVyIGNsYXNzIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgYXBwbGljYXRpb24uXG4gKlxuICogSWYgeW91IHdhbnQgdG8gZXh0ZW5kIGEgYmFzZSBjb250cm9sbGVyIGZvciB5b3VyIGN1c3RvbSBwYWdlLCBwbGVhc2UgdXNlIGZvciBzYXAuZmUuY29yZS5QYWdlQ29udHJvbGxlci5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5CYXNlQ29udHJvbGxlclxuICogQHNpbmNlIDEuOTAuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5CYXNlQ29udHJvbGxlclwiKVxuY2xhc3MgQmFzZUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyIHtcblx0cHJpdmF0ZSBfb0FwcENvbXBvbmVudD86IEFwcENvbXBvbmVudDtcblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwIGNvbXBvbmVudC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGFwcCBjb21wb25lbnQgb3IsIGlmIG5vdCBmb3VuZCwgbnVsbFxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXIjZ2V0QXBwQ29tcG9uZW50XG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTEuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdGdldEFwcENvbXBvbmVudCgpOiBBcHBDb21wb25lbnQge1xuXHRcdGlmICghdGhpcy5fb0FwcENvbXBvbmVudCkge1xuXHRcdFx0dGhpcy5fb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLmdldFZpZXcoKSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9vQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBwcm92aWRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMgdG8gZW5hYmxlIGFwcGxpY2F0aW9ucyB0byBpbmNsdWRlIHRoZSB2aWV3IG1vZGVsIGJ5IG5hbWUgaW50byBlYWNoIGNvbnRyb2xsZXIuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICogQHBhcmFtIHNOYW1lIFRoZSBtb2RlbCBuYW1lXG5cdCAqIEByZXR1cm5zIFRoZSBtb2RlbCBpbnN0YW5jZVxuXHQgKi9cblx0Z2V0TW9kZWwoc05hbWU/OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoc05hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3Igc2V0dGluZyB0aGUgdmlldyBtb2RlbCBpbiBldmVyeSBjb250cm9sbGVyIG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBtb2RlbCBpbnN0YW5jZVxuXHQgKiBAcGFyYW0gc05hbWUgVGhlIG1vZGVsIG5hbWVcblx0ICogQHJldHVybnMgVGhlIHZpZXcgaW5zdGFuY2Vcblx0ICovXG5cdHNldE1vZGVsKG9Nb2RlbDogTW9kZWwsIHNOYW1lOiBzdHJpbmcpOiBWaWV3IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob01vZGVsLCBzTmFtZSk7XG5cdH1cblxuXHRnZXRSZXNvdXJjZUJ1bmRsZShzSTE4bk1vZGVsTmFtZTogYW55KSB7XG5cdFx0aWYgKCFzSTE4bk1vZGVsTmFtZSkge1xuXHRcdFx0c0kxOG5Nb2RlbE5hbWUgPSBcImkxOG5cIjtcblx0XHR9XG5cdFx0cmV0dXJuICh0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1vZGVsKHNJMThuTW9kZWxOYW1lKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJhc2VDb250cm9sbGVyO1xuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type AppComponent from "sap/fe/core/AppComponent";
|
|
2
2
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
3
|
+
import { defineUI5Class, publicExtension } from "sap/fe/core/helpers/ClassSupport";
|
|
4
|
+
import Controller from "sap/ui/core/mvc/Controller";
|
|
5
|
+
import type View from "sap/ui/core/mvc/View";
|
|
6
|
+
import type Model from "sap/ui/model/Model";
|
|
7
|
+
import type ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Internal base controller class for SAP Fiori elements application.
|
|
@@ -22,7 +22,7 @@ class BaseController extends Controller {
|
|
|
22
22
|
/**
|
|
23
23
|
* Returns the current app component.
|
|
24
24
|
*
|
|
25
|
-
* @returns
|
|
25
|
+
* @returns The app component or, if not found, null
|
|
26
26
|
* @alias sap.fe.core.BaseController#getAppComponent
|
|
27
27
|
* @public
|
|
28
28
|
* @since 1.91.0
|
|
@@ -32,14 +32,15 @@ class BaseController extends Controller {
|
|
|
32
32
|
if (!this._oAppComponent) {
|
|
33
33
|
this._oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
34
34
|
}
|
|
35
|
-
return this._oAppComponent
|
|
35
|
+
return this._oAppComponent;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* Convenience method provided by SAP Fiori elements to enable applications to include the view model by name into each controller.
|
|
40
|
+
*
|
|
40
41
|
* @public
|
|
41
|
-
* @param
|
|
42
|
-
* @returns
|
|
42
|
+
* @param sName The model name
|
|
43
|
+
* @returns The model instance
|
|
43
44
|
*/
|
|
44
45
|
getModel(sName?: string) {
|
|
45
46
|
return this.getView().getModel(sName);
|
|
@@ -47,10 +48,11 @@ class BaseController extends Controller {
|
|
|
47
48
|
|
|
48
49
|
/**
|
|
49
50
|
* Convenience method for setting the view model in every controller of the application.
|
|
51
|
+
*
|
|
50
52
|
* @public
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* @returns
|
|
53
|
+
* @param oModel The model instance
|
|
54
|
+
* @param sName The model name
|
|
55
|
+
* @returns The view instance
|
|
54
56
|
*/
|
|
55
57
|
setModel(oModel: Model, sName: string): View {
|
|
56
58
|
return this.getView().setModel(oModel, sName);
|