@sapui5/sap.fe.core 1.102.0 → 1.103.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 +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +62 -26
- package/src/sap/fe/core/AppComponent.ts +56 -40
- package/src/sap/fe/core/AppStateHandler.js +10 -10
- package/src/sap/fe/core/AppStateHandler.ts +9 -9
- 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 +236 -109
- package/src/sap/fe/core/CommonUtils.ts +252 -136
- 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/BuildingBlockRuntime.js +8 -8
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
- package/src/sap/fe/core/controllerextensions/EditFlow.js +129 -118
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
- 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 +31 -26
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
- 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 +8 -8
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
- package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -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 +22 -22
- package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
- 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 +65 -62
- package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
- 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 +6 -6
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
- 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 +184 -137
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
- 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 +78 -44
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
- 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 +2 -2
- package/src/sap/fe/core/controls/FileWrapper.ts +11 -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 +47 -47
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- 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 +51 -60
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
- 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 +50 -32
- package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
- 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 +54 -34
- package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
- 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 +23 -26
- 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 +28 -28
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
- package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
- package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
- package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
- package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
- 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 +64 -57
- 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 +73 -72
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
- 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 +46 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +25 -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 -4
- 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 +30 -29
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
- 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 +89 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -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 +1809 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
- package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
- package/src/sap/fe/core/helpers/ClassSupport.ts +14 -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 +281 -254
- package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
- 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/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
- 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 +49 -35
- package/src/sap/fe/core/messagebundle_ar.properties +13 -5
- package/src/sap/fe/core/messagebundle_bg.properties +13 -5
- package/src/sap/fe/core/messagebundle_ca.properties +13 -5
- package/src/sap/fe/core/messagebundle_cs.properties +13 -5
- package/src/sap/fe/core/messagebundle_cy.properties +14 -6
- package/src/sap/fe/core/messagebundle_da.properties +13 -5
- package/src/sap/fe/core/messagebundle_de.properties +15 -7
- package/src/sap/fe/core/messagebundle_el.properties +14 -6
- package/src/sap/fe/core/messagebundle_en.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
- package/src/sap/fe/core/messagebundle_es.properties +13 -5
- package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
- package/src/sap/fe/core/messagebundle_et.properties +13 -5
- package/src/sap/fe/core/messagebundle_fi.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
- package/src/sap/fe/core/messagebundle_hi.properties +14 -6
- package/src/sap/fe/core/messagebundle_hr.properties +14 -6
- package/src/sap/fe/core/messagebundle_hu.properties +13 -5
- package/src/sap/fe/core/messagebundle_id.properties +13 -5
- package/src/sap/fe/core/messagebundle_it.properties +33 -25
- package/src/sap/fe/core/messagebundle_iw.properties +13 -5
- package/src/sap/fe/core/messagebundle_ja.properties +14 -6
- package/src/sap/fe/core/messagebundle_kk.properties +13 -5
- package/src/sap/fe/core/messagebundle_ko.properties +13 -5
- package/src/sap/fe/core/messagebundle_lt.properties +13 -5
- package/src/sap/fe/core/messagebundle_lv.properties +14 -6
- package/src/sap/fe/core/messagebundle_ms.properties +13 -5
- package/src/sap/fe/core/messagebundle_nl.properties +13 -5
- package/src/sap/fe/core/messagebundle_no.properties +13 -5
- package/src/sap/fe/core/messagebundle_pl.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
- package/src/sap/fe/core/messagebundle_ro.properties +13 -5
- package/src/sap/fe/core/messagebundle_ru.properties +13 -5
- package/src/sap/fe/core/messagebundle_sh.properties +13 -5
- package/src/sap/fe/core/messagebundle_sk.properties +13 -5
- package/src/sap/fe/core/messagebundle_sl.properties +17 -9
- package/src/sap/fe/core/messagebundle_sv.properties +14 -6
- package/src/sap/fe/core/messagebundle_th.properties +13 -5
- package/src/sap/fe/core/messagebundle_tr.properties +13 -5
- package/src/sap/fe/core/messagebundle_uk.properties +13 -5
- package/src/sap/fe/core/messagebundle_vi.properties +13 -5
- package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
- package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
- 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 +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
- 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 +53 -44
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
- 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 +72 -76
- package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -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 +20 -15
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
- 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 +10 -9
- package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
- 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 +148 -93
- package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
- 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
|
@@ -21,7 +21,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* @class Controller extension providing hooks for the mass edit in a table
|
|
24
|
-
*
|
|
25
24
|
* @name sap.fe.core.controllerextensions.MassEdit
|
|
26
25
|
* @hideconstructor
|
|
27
26
|
* @private
|
|
@@ -40,7 +39,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
|
|
|
40
39
|
sReasonGroup = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON"),
|
|
41
40
|
sReasonDraft = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_DRAFT"),
|
|
42
41
|
sReasonNonEditable = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_NON_EDITABLE");
|
|
43
|
-
return "<p><strong>"
|
|
42
|
+
return "<p><strong>".concat(sHeader, "</strong></p>\n") + "<p>".concat(sReasonGroup, "</p>\n") + "<ul>" + "<li>".concat(sReasonDraft, "</li>") + "<li>".concat(sReasonNonEditable, "</li>") + "</ul>";
|
|
44
43
|
};
|
|
45
44
|
|
|
46
45
|
_proto._openConfirmDialog = function _openConfirmDialog(oTable, aContexts, iSelectedContexts) {
|
|
@@ -101,8 +100,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
|
|
|
101
100
|
* => Sets the runtime model to the dialog.
|
|
102
101
|
* => Sets the static model's context to the dialog.
|
|
103
102
|
*
|
|
104
|
-
* @param
|
|
105
|
-
* @returns
|
|
103
|
+
* @param oTable Instance of the table
|
|
104
|
+
* @returns A promise that resolves on open of the mass edit dialog.
|
|
106
105
|
* @private
|
|
107
106
|
*/
|
|
108
107
|
;
|
|
@@ -123,12 +122,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
|
|
|
123
122
|
}
|
|
124
123
|
/**
|
|
125
124
|
* Returns a promise that resolves to the contexts for mass edit.
|
|
125
|
+
*
|
|
126
126
|
* @function
|
|
127
|
-
* @param
|
|
127
|
+
* @param oTable Table for mass edit.
|
|
128
128
|
* @alias sap.fe.core.contrllerextensions.MassEdit#fetchContextsForEdit
|
|
129
|
-
* @returns
|
|
129
|
+
* @returns A promise to be resolved with an array of context(s) which should be considered for mass edit.
|
|
130
130
|
* @private
|
|
131
|
-
|
|
131
|
+
*/
|
|
132
132
|
;
|
|
133
133
|
|
|
134
134
|
_proto.fetchContextsForEdit = function fetchContextsForEdit(oTable) {
|
|
@@ -142,4 +142,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
|
|
|
142
142
|
}(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "getMessageDetailForNonEditable", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "getMessageDetailForNonEditable"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "openMassEditDialog", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "openMassEditDialog"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fetchContextsForEdit", [_dec6, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "fetchContextsForEdit"), _class2.prototype)), _class2)) || _class);
|
|
143
143
|
return MassEdit;
|
|
144
144
|
}, false);
|
|
145
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hc3NFZGl0LnRzIl0sIm5hbWVzIjpbIk1hc3NFZGl0IiwiZGVmaW5lVUk1Q2xhc3MiLCJwdWJsaWNFeHRlbnNpb24iLCJmaW5hbEV4dGVuc2lvbiIsInByaXZhdGVFeHRlbnNpb24iLCJleHRlbnNpYmxlIiwiT3ZlcnJpZGVFeGVjdXRpb24iLCJBZnRlciIsImdldE1lc3NhZ2VEZXRhaWxGb3JOb25FZGl0YWJsZSIsIm9SZXNvdXJjZUJ1bmRsZSIsInNIZWFkZXIiLCJnZXRUZXh0Iiwic1JlYXNvbkdyb3VwIiwic1JlYXNvbkRyYWZ0Iiwic1JlYXNvbk5vbkVkaXRhYmxlIiwiX29wZW5Db25maXJtRGlhbG9nIiwib1RhYmxlIiwiYUNvbnRleHRzIiwiaVNlbGVjdGVkQ29udGV4dHMiLCJpVXBkYXRhYmxlQ29udGV4dHMiLCJsZW5ndGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldFZpZXciLCJnZXRNb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwidGhlbiIsInNFZGl0QnV0dG9uIiwic0NhbmNlbEJ1dHRvbiIsImlOb25FZGl0YWJsZSIsInNNZXNzYWdlIiwic1BhdGgiLCJkYXRhIiwib01ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImJJc0RyYWZ0IiwiTW9kZWxIZWxwZXIiLCJpc0RyYWZ0U3VwcG9ydGVkIiwiYkRpc3BsYXlNb2RlIiwic01lc3NhZ2VEZXRhaWwiLCJNZXNzYWdlQm94Iiwid2FybmluZyIsImRldGFpbHMiLCJhY3Rpb25zIiwiZW1waGFzaXplZEFjdGlvbiIsImNvbnRlbnRXaWR0aCIsIm9uQ2xvc2UiLCJzU2VsZWN0aW9uIiwiYUNvbnRleHRzRm9yRWRpdCIsIkxvZyIsImluZm8iLCJ0b1N0cmluZyIsImNhdGNoIiwiZXJyb3IiLCJfY29uZmlybUNvbnRleHRzIiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRQcm9wZXJ0eSIsIm9wZW5NYXNzRWRpdERpYWxvZyIsIm9Db250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsInBDb250ZXh0c0ZvckVkaXQiLCJmZXRjaENvbnRleHRzRm9yRWRpdCIsImJpbmQiLCJNYXNzRWRpdEhlbHBlciIsImNyZWF0ZURpYWxvZyIsIm9EaWFsb2ciLCJhZGREZXBlbmRlbnQiLCJvcGVuIiwib0Vycm9yIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJDb250cm9sbGVyRXh0ZW5zaW9uIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxRLFdBRExDLGNBQWMsQ0FBQywyQ0FBRCxDLFVBRWJDLGVBQWUsRSxVQUNmQyxjQUFjLEUsVUEyRmRELGVBQWUsRSxVQUNmQyxjQUFjLEUsVUE2QmRDLGdCQUFnQixFLFVBQ2hCQyxVQUFVLENBQUNDLGlCQUFpQixDQUFDQyxLQUFuQixDOzs7Ozs7Ozs7V0F6SFhDLDhCLEdBRkEsd0NBRStCQyxlQUYvQixFQUVnRTtBQUMvRCxVQUFNQyxPQUFPLEdBQUdELGVBQWUsQ0FBQ0UsT0FBaEIsQ0FBd0IsMkNBQXhCLENBQWhCO0FBQUEsVUFDQ0MsWUFBWSxHQUFHSCxlQUFlLENBQUNFLE9BQWhCLENBQXdCLDJDQUF4QixDQURoQjtBQUFBLFVBRUNFLFlBQVksR0FBR0osZUFBZSxDQUFDRSxPQUFoQixDQUF3QixpREFBeEIsQ0FGaEI7QUFBQSxVQUdDRyxrQkFBa0IsR0FBR0wsZUFBZSxDQUFDRSxPQUFoQixDQUF3Qix3REFBeEIsQ0FIdEI7QUFLQSxhQUNDLGdCQUNBRCxPQURBLEdBRUEsaUJBRkEsR0FHQSxLQUhBLEdBSUFFLFlBSkEsR0FLQSxRQUxBLEdBTUEsTUFOQSxHQU9BLE1BUEEsR0FRQUMsWUFSQSxHQVNBLE9BVEEsR0FVQSxNQVZBLEdBV0FDLGtCQVhBLEdBWUEsT0FaQSxHQWFBLE9BZEQ7QUFnQkEsSzs7V0FFREMsa0IsR0FBQSw0QkFBbUJDLE1BQW5CLEVBQWtDQyxTQUFsQyxFQUF3REMsaUJBQXhELEVBQW1GO0FBQUE7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Q0E7QUFDQTtBQUNBOzs7V0FHQ1Asb0IsR0FGQSw4QkFFcUI5QyxNQUZyQixFQUVvQztBQUNuQztBQUNBLFVBQU11QyxxQkFBcUIsR0FBR3ZDLE1BQU0sQ0FBQ3dDLGlCQUFQLENBQXlCLFVBQXpCLENBQTlCO0FBQUEsVUFDQ2MsaUJBQWlCLEdBQUdmLHFCQUFxQixDQUFDRSxXQUF0QixDQUFrQyxtQkFBbEMsS0FBMEQsRUFEL0U7QUFHQSxhQUFPcEMsT0FBTyxDQUFDQyxPQUFSLENBQWdCZ0QsaUJBQWhCLENBQVA7QUFDQSxLOzs7SUFuSXFCQyxtQjtTQXNJUnZFLFEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIHByaXZhdGVFeHRlbnNpb24sIHB1YmxpY0V4dGVuc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IE1hc3NFZGl0SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01hc3NFZGl0SGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIsIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSBcInNhcC9tL01lc3NhZ2VCb3hcIjtcbmltcG9ydCBDb250cm9sbGVyRXh0ZW5zaW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IE92ZXJyaWRlRXhlY3V0aW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvT3ZlcnJpZGVFeGVjdXRpb25cIjtcbmltcG9ydCBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL3Jlc291cmNlL1Jlc291cmNlTW9kZWxcIjtcblxuLyoqXG4gKiBAY2xhc3MgQ29udHJvbGxlciBleHRlbnNpb24gcHJvdmlkaW5nIGhvb2tzIGZvciB0aGUgbWFzcyBlZGl0IGluIGEgdGFibGVcbiAqXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy5NYXNzRWRpdFxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHByaXZhdGVcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWFzc0VkaXRcIilcbmNsYXNzIE1hc3NFZGl0IGV4dGVuZHMgQ29udHJvbGxlckV4dGVuc2lvbiB7XG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRnZXRNZXNzYWdlRGV0YWlsRm9yTm9uRWRpdGFibGUob1Jlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSkge1xuXHRcdGNvbnN0IHNIZWFkZXIgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fTUVTU0FHRV9ERVRBSUxfSEVBREVSXCIpLFxuXHRcdFx0c1JlYXNvbkdyb3VwID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX1JFQVNPTlwiKSxcblx0XHRcdHNSZWFzb25EcmFmdCA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9NRVNTQUdFX0RFVEFJTF9SRUFTT05fRFJBRlRcIiksXG5cdFx0XHRzUmVhc29uTm9uRWRpdGFibGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fTUVTU0FHRV9ERVRBSUxfUkVBU09OX05PTl9FRElUQUJMRVwiKTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHRcIjxwPjxzdHJvbmc+XCIgK1xuXHRcdFx0c0hlYWRlciArXG5cdFx0XHRcIjwvc3Ryb25nPjwvcD5cXG5cIiArXG5cdFx0XHRcIjxwPlwiICtcblx0XHRcdHNSZWFzb25Hcm91cCArXG5cdFx0XHRcIjwvcD5cXG5cIiArXG5cdFx0XHRcIjx1bD5cIiArXG5cdFx0XHRcIjxsaT5cIiArXG5cdFx0XHRzUmVhc29uRHJhZnQgK1xuXHRcdFx0XCI8L2xpPlwiICtcblx0XHRcdFwiPGxpPlwiICtcblx0XHRcdHNSZWFzb25Ob25FZGl0YWJsZSArXG5cdFx0XHRcIjwvbGk+XCIgK1xuXHRcdFx0XCI8L3VsPlwiXG5cdFx0KTtcblx0fVxuXG5cdF9vcGVuQ29uZmlybURpYWxvZyhvVGFibGU6IFRhYmxlLCBhQ29udGV4dHM6IENvbnRleHRbXSwgaVNlbGVjdGVkQ29udGV4dHM6IG51bWJlcikge1xuXHRcdGNvbnN0IGlVcGRhdGFibGVDb250ZXh0cyA9IChhQ29udGV4dHMgfHwgW10pLmxlbmd0aDtcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0KCh0aGlzLmdldFZpZXcoKS5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWwpLmdldFJlc291cmNlQnVuZGxlKCkgYXMgUHJvbWlzZTxSZXNvdXJjZUJ1bmRsZT4pXG5cdFx0XHRcdC50aGVuKChvUmVzb3VyY2VCdW5kbGUpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzRWRpdEJ1dHRvbiA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9CVVRUT05fVEVYVFwiKSxcblx0XHRcdFx0XHRcdHNDYW5jZWxCdXR0b24gPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NBTkNFTF9CVVRUT05fVEVYVFwiKSxcblx0XHRcdFx0XHRcdGlOb25FZGl0YWJsZSA9IGlTZWxlY3RlZENvbnRleHRzIC0gaVVwZGF0YWJsZUNvbnRleHRzLFxuXHRcdFx0XHRcdFx0c01lc3NhZ2UgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fTUVTU0FHRVwiLCBbXG5cdFx0XHRcdFx0XHRcdGlOb25FZGl0YWJsZSxcblx0XHRcdFx0XHRcdFx0aVNlbGVjdGVkQ29udGV4dHMsXG5cdFx0XHRcdFx0XHRcdGlVcGRhdGFibGVDb250ZXh0c1xuXHRcdFx0XHRcdFx0XSksXG5cdFx0XHRcdFx0XHRzUGF0aCA9IG9UYWJsZS5kYXRhKFwidGFyZ2V0Q29sbGVjdGlvblBhdGhcIiksXG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsID0gb1RhYmxlLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0XHRiSXNEcmFmdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCwgc1BhdGgpLFxuXHRcdFx0XHRcdFx0YkRpc3BsYXlNb2RlID0gb1RhYmxlLmRhdGEoXCJkaXNwbGF5TW9kZVByb3BlcnR5QmluZGluZ1wiKSA9PT0gXCJ0cnVlXCIsXG5cdFx0XHRcdFx0XHRzTWVzc2FnZURldGFpbCA9IGJJc0RyYWZ0ICYmIGJEaXNwbGF5TW9kZSAmJiB0aGlzLmdldE1lc3NhZ2VEZXRhaWxGb3JOb25FZGl0YWJsZShvUmVzb3VyY2VCdW5kbGUpO1xuXG5cdFx0XHRcdFx0TWVzc2FnZUJveC53YXJuaW5nKHNNZXNzYWdlLCB7XG5cdFx0XHRcdFx0XHRkZXRhaWxzOiBzTWVzc2FnZURldGFpbCxcblx0XHRcdFx0XHRcdGFjdGlvbnM6IFtzRWRpdEJ1dHRvbiwgc0NhbmNlbEJ1dHRvbl0sXG5cdFx0XHRcdFx0XHRlbXBoYXNpemVkQWN0aW9uOiBzRWRpdEJ1dHRvbixcblx0XHRcdFx0XHRcdGNvbnRlbnRXaWR0aDogXCIxMDBweFwiLFxuXHRcdFx0XHRcdFx0b25DbG9zZTogZnVuY3Rpb24gKHNTZWxlY3Rpb246IHN0cmluZykge1xuXHRcdFx0XHRcdFx0XHRsZXQgYUNvbnRleHRzRm9yRWRpdDogYW55W10gPSBbXTtcblx0XHRcdFx0XHRcdFx0aWYgKHNTZWxlY3Rpb24gPT09IHNFZGl0QnV0dG9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0TG9nLmluZm8oXCJNYXNzIEVkaXQ6IENvbmZpcm1lZCB0byBlZGl0IFwiLCBpVXBkYXRhYmxlQ29udGV4dHMudG9TdHJpbmcoKSwgXCIgc2VsZWN0aW9ucy5cIik7XG5cdFx0XHRcdFx0XHRcdFx0YUNvbnRleHRzRm9yRWRpdCA9IGFDb250ZXh0cztcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChzU2VsZWN0aW9uID09PSBzQ2FuY2VsQnV0dG9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0TG9nLmluZm8oXCJNYXNzIEVkaXQ6IENhbmNlbGxlZC5cIik7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShhQ29udGV4dHNGb3JFZGl0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGFzIGFueSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdF9jb25maXJtQ29udGV4dHMob1RhYmxlOiBUYWJsZSwgYUNvbnRleHRzOiBDb250ZXh0W10pIHtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVGFibGUuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdGlTZWxlY3RlZENvbnRleHRzID0gK29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcIm51bWJlck9mU2VsZWN0ZWRDb250ZXh0c1wiKSB8fCAwO1xuXG5cdFx0YUNvbnRleHRzID0gYUNvbnRleHRzIHx8IFtdO1xuXG5cdFx0aWYgKGFDb250ZXh0cy5sZW5ndGggJiYgYUNvbnRleHRzLmxlbmd0aCAhPT0gaVNlbGVjdGVkQ29udGV4dHMpIHtcblx0XHRcdHJldHVybiB0aGlzLl9vcGVuQ29uZmlybURpYWxvZyhvVGFibGUsIGFDb250ZXh0cywgaVNlbGVjdGVkQ29udGV4dHMpO1xuXHRcdH1cblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFDb250ZXh0cyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGZvbGxvd2luZyBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgYnkgbWV0aG9kIG9wZW5NYXNzRWRpdERpYWxvZzpcblx0ICogPT4gT3BlbnMgdGhlIG1hc3MgZWRpdCBkaWFsb2cuXG5cdCAqID0+IEltcGxlbWVudHMgdGhlIHNhdmUgYW5kIGNhbmNlbCBmdW5jdGlvbmFsaXR5LlxuXHQgKiA9PiBTZXRzIHRoZSBydW50aW1lIG1vZGVsIHRvIHRoZSBkaWFsb2cuXG5cdCAqID0+IFNldHMgdGhlIHN0YXRpYyBtb2RlbCdzIGNvbnRleHQgdG8gdGhlIGRpYWxvZy5cblx0ICpcblx0ICogQHBhcmFtIHtzYXAudWkubWRjLlRhYmxlfSBvVGFibGUgSW5zdGFuY2Ugb2YgdGhlIHRhYmxlXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbiBvcGVuIG9mIHRoZSBtYXNzIGVkaXQgZGlhbG9nLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdG9wZW5NYXNzRWRpdERpYWxvZyhvVGFibGU6IFRhYmxlKSB7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSB0aGlzLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXIsXG5cdFx0XHRwQ29udGV4dHNGb3JFZGl0ID0gdGhpcy5mZXRjaENvbnRleHRzRm9yRWRpdChvVGFibGUpO1xuXG5cdFx0cmV0dXJuIHBDb250ZXh0c0ZvckVkaXRcblx0XHRcdC50aGVuKHRoaXMuX2NvbmZpcm1Db250ZXh0cy5iaW5kKHRoaXMsIG9UYWJsZSkpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYUNvbnRleHRzOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIGFDb250ZXh0cyAmJiBhQ29udGV4dHMubGVuZ3RoID4gMCA/IE1hc3NFZGl0SGVscGVyLmNyZWF0ZURpYWxvZyhvVGFibGUsIGFDb250ZXh0cywgb0NvbnRyb2xsZXIpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKG9EaWFsb2c/OiBhbnkpIHtcblx0XHRcdFx0aWYgKG9EaWFsb2cpIHtcblx0XHRcdFx0XHRvVGFibGUuYWRkRGVwZW5kZW50KG9EaWFsb2cpO1xuXHRcdFx0XHRcdG9EaWFsb2cub3BlbigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJNYXNzIEVkaXQ6IFNvbWV0aGluZyB3ZW50IHdyb25nIGluIG1hc3MgZWRpdCBkaWFsb2cgY3JlYXRpb24uXCIsIG9FcnJvcik7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb250ZXh0cyBmb3IgbWFzcyBlZGl0LlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQHBhcmFtIHtzYXAudWkubWRjLlRhYmxlfSBvVGFibGUgVGFibGUgZm9yIG1hc3MgZWRpdC5cblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLmNvbnRybGxlcmV4dGVuc2lvbnMuTWFzc0VkaXQjZmV0Y2hDb250ZXh0c0ZvckVkaXRcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSB0byBiZSByZXNvbHZlZCB3aXRoIGFuIGFycmF5IG9mIGNvbnRleHQocykgd2hpY2ggc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIG1hc3MgZWRpdC5cblx0ICogQHByaXZhdGVcblx0ICoqL1xuXHRAcHJpdmF0ZUV4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHRmZXRjaENvbnRleHRzRm9yRWRpdChvVGFibGU6IFRhYmxlKSB7XG5cdFx0Ly9UbyBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhcHBsaWNhdGlvblxuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJ1cGRhdGFibGVDb250ZXh0c1wiKSB8fCBbXTtcblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoYVNlbGVjdGVkQ29udGV4dHMpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hc3NFZGl0O1xuIl19
|
|
145
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hc3NFZGl0LnRzIl0sIm5hbWVzIjpbIk1hc3NFZGl0IiwiZGVmaW5lVUk1Q2xhc3MiLCJwdWJsaWNFeHRlbnNpb24iLCJmaW5hbEV4dGVuc2lvbiIsInByaXZhdGVFeHRlbnNpb24iLCJleHRlbnNpYmxlIiwiT3ZlcnJpZGVFeGVjdXRpb24iLCJBZnRlciIsImdldE1lc3NhZ2VEZXRhaWxGb3JOb25FZGl0YWJsZSIsIm9SZXNvdXJjZUJ1bmRsZSIsInNIZWFkZXIiLCJnZXRUZXh0Iiwic1JlYXNvbkdyb3VwIiwic1JlYXNvbkRyYWZ0Iiwic1JlYXNvbk5vbkVkaXRhYmxlIiwiX29wZW5Db25maXJtRGlhbG9nIiwib1RhYmxlIiwiYUNvbnRleHRzIiwiaVNlbGVjdGVkQ29udGV4dHMiLCJpVXBkYXRhYmxlQ29udGV4dHMiLCJsZW5ndGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldFZpZXciLCJnZXRNb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwidGhlbiIsInNFZGl0QnV0dG9uIiwic0NhbmNlbEJ1dHRvbiIsImlOb25FZGl0YWJsZSIsInNNZXNzYWdlIiwic1BhdGgiLCJkYXRhIiwib01ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImJJc0RyYWZ0IiwiTW9kZWxIZWxwZXIiLCJpc0RyYWZ0U3VwcG9ydGVkIiwiYkRpc3BsYXlNb2RlIiwic01lc3NhZ2VEZXRhaWwiLCJNZXNzYWdlQm94Iiwid2FybmluZyIsImRldGFpbHMiLCJhY3Rpb25zIiwiZW1waGFzaXplZEFjdGlvbiIsImNvbnRlbnRXaWR0aCIsIm9uQ2xvc2UiLCJzU2VsZWN0aW9uIiwiYUNvbnRleHRzRm9yRWRpdCIsIkxvZyIsImluZm8iLCJ0b1N0cmluZyIsImNhdGNoIiwiZXJyb3IiLCJfY29uZmlybUNvbnRleHRzIiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRQcm9wZXJ0eSIsIm9wZW5NYXNzRWRpdERpYWxvZyIsIm9Db250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsInBDb250ZXh0c0ZvckVkaXQiLCJmZXRjaENvbnRleHRzRm9yRWRpdCIsImJpbmQiLCJNYXNzRWRpdEhlbHBlciIsImNyZWF0ZURpYWxvZyIsIm9EaWFsb2ciLCJhZGREZXBlbmRlbnQiLCJvcGVuIiwib0Vycm9yIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJDb250cm9sbGVyRXh0ZW5zaW9uIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsUSxXQURMQyxjQUFjLENBQUMsMkNBQUQsQyxVQUViQyxlQUFlLEUsVUFDZkMsY0FBYyxFLFVBbUZkRCxlQUFlLEUsVUFDZkMsY0FBYyxFLFVBOEJkQyxnQkFBZ0IsRSxVQUNoQkMsVUFBVSxDQUFDQyxpQkFBaUIsQ0FBQ0MsS0FBbkIsQzs7Ozs7Ozs7O1dBbEhYQyw4QixHQUZBLHdDQUUrQkMsZUFGL0IsRUFFZ0U7QUFDL0QsVUFBTUMsT0FBTyxHQUFHRCxlQUFlLENBQUNFLE9BQWhCLENBQXdCLDJDQUF4QixDQUFoQjtBQUFBLFVBQ0NDLFlBQVksR0FBR0gsZUFBZSxDQUFDRSxPQUFoQixDQUF3QiwyQ0FBeEIsQ0FEaEI7QUFBQSxVQUVDRSxZQUFZLEdBQUdKLGVBQWUsQ0FBQ0UsT0FBaEIsQ0FBd0IsaURBQXhCLENBRmhCO0FBQUEsVUFHQ0csa0JBQWtCLEdBQUdMLGVBQWUsQ0FBQ0UsT0FBaEIsQ0FBd0Isd0RBQXhCLENBSHRCO0FBS0EsYUFDQyxxQkFBY0QsT0FBZCxvQ0FDTUUsWUFETixxQ0FHT0MsWUFIUCwyQkFJT0Msa0JBSlAsb0JBREQ7QUFRQSxLOztXQUVEQyxrQixHQUFBLDRCQUFtQkMsTUFBbkIsRUFBa0NDLFNBQWxDLEVBQXdEQyxpQkFBeEQsRUFBbUY7QUFBQTs7QUFDbEYsVUFBTUMsa0JBQWtCLEdBQUcsQ0FBQ0YsU0FBUyxJQUFJLEVBQWQsRUFBa0JHLE1BQTdDO0FBRUEsYUFBTyxJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFhO0FBQzdCLFFBQUEsS0FBSSxDQUFDQyxPQUFMLEdBQWVDLFFBQWYsQ0FBd0IsYUFBeEIsQ0FBRCxDQUEwREMsaUJBQTFELEVBQUQsQ0FDRUMsSUFERixDQUNPLFVBQUNqQixlQUFELEVBQXFCO0FBQzFCLGNBQU1rQixXQUFXLEdBQUdsQixlQUFlLENBQUNFLE9BQWhCLENBQXdCLGlDQUF4QixDQUFwQjtBQUFBLGNBQ0NpQixhQUFhLEdBQUduQixlQUFlLENBQUNFLE9BQWhCLENBQXdCLGdDQUF4QixDQURqQjtBQUFBLGNBRUNrQixZQUFZLEdBQUdYLGlCQUFpQixHQUFHQyxrQkFGcEM7QUFBQSxjQUdDVyxRQUFRLEdBQUdyQixlQUFlLENBQUNFLE9BQWhCLENBQXdCLDZCQUF4QixFQUF1RCxDQUNqRWtCLFlBRGlFLEVBRWpFWCxpQkFGaUUsRUFHakVDLGtCQUhpRSxDQUF2RCxDQUhaO0FBQUEsY0FRQ1ksS0FBSyxHQUFHZixNQUFNLENBQUNnQixJQUFQLENBQVksc0JBQVosQ0FSVDtBQUFBLGNBU0NDLFVBQVUsR0FBR2pCLE1BQU0sQ0FBQ1EsUUFBUCxHQUFrQlUsWUFBbEIsRUFUZDtBQUFBLGNBVUNDLFFBQVEsR0FBR0MsV0FBVyxDQUFDQyxnQkFBWixDQUE2QkosVUFBN0IsRUFBeUNGLEtBQXpDLENBVlo7QUFBQSxjQVdDTyxZQUFZLEdBQUd0QixNQUFNLENBQUNnQixJQUFQLENBQVksNEJBQVosTUFBOEMsTUFYOUQ7QUFBQSxjQVlDTyxjQUFjLEdBQUdKLFFBQVEsSUFBSUcsWUFBWixJQUE0QixLQUFJLENBQUM5Qiw4QkFBTCxDQUFvQ0MsZUFBcEMsQ0FaOUM7O0FBY0ErQixVQUFBQSxVQUFVLENBQUNDLE9BQVgsQ0FBbUJYLFFBQW5CLEVBQTZCO0FBQzVCWSxZQUFBQSxPQUFPLEVBQUVILGNBRG1CO0FBRTVCSSxZQUFBQSxPQUFPLEVBQUUsQ0FBQ2hCLFdBQUQsRUFBY0MsYUFBZCxDQUZtQjtBQUc1QmdCLFlBQUFBLGdCQUFnQixFQUFFakIsV0FIVTtBQUk1QmtCLFlBQUFBLFlBQVksRUFBRSxPQUpjO0FBSzVCQyxZQUFBQSxPQUFPLEVBQUUsVUFBVUMsVUFBVixFQUE4QjtBQUN0QyxrQkFBSUMsZ0JBQXVCLEdBQUcsRUFBOUI7O0FBQ0Esa0JBQUlELFVBQVUsS0FBS3BCLFdBQW5CLEVBQWdDO0FBQy9Cc0IsZ0JBQUFBLEdBQUcsQ0FBQ0MsSUFBSixDQUFTLCtCQUFULEVBQTBDL0Isa0JBQWtCLENBQUNnQyxRQUFuQixFQUExQyxFQUF5RSxjQUF6RTtBQUNBSCxnQkFBQUEsZ0JBQWdCLEdBQUcvQixTQUFuQjtBQUNBLGVBSEQsTUFHTyxJQUFJOEIsVUFBVSxLQUFLbkIsYUFBbkIsRUFBa0M7QUFDeENxQixnQkFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVMsdUJBQVQ7QUFDQTs7QUFDRDVCLGNBQUFBLE9BQU8sQ0FBQzBCLGdCQUFELENBQVA7QUFDQTtBQWQyQixXQUE3QjtBQWdCQSxTQWhDRixFQWlDRUksS0FqQ0YsQ0FpQ1EsVUFBVUMsS0FBVixFQUFpQjtBQUN2QkosVUFBQUEsR0FBRyxDQUFDSSxLQUFKLENBQVVBLEtBQVY7QUFDQSxTQW5DRjtBQW9DQSxPQXJDTSxDQUFQO0FBc0NBLEs7O1dBRURDLGdCLEdBQUEsMEJBQWlCdEMsTUFBakIsRUFBZ0NDLFNBQWhDLEVBQXNEO0FBQ3JELFVBQU1zQyxxQkFBcUIsR0FBR3ZDLE1BQU0sQ0FBQ3dDLGlCQUFQLENBQXlCLFVBQXpCLENBQTlCO0FBQUEsVUFDQ3RDLGlCQUFpQixHQUFHLENBQUNxQyxxQkFBcUIsQ0FBQ0UsV0FBdEIsQ0FBa0MsMEJBQWxDLENBQUQsSUFBa0UsQ0FEdkY7QUFHQXhDLE1BQUFBLFNBQVMsR0FBR0EsU0FBUyxJQUFJLEVBQXpCOztBQUVBLFVBQUlBLFNBQVMsQ0FBQ0csTUFBVixJQUFvQkgsU0FBUyxDQUFDRyxNQUFWLEtBQXFCRixpQkFBN0MsRUFBZ0U7QUFDL0QsZUFBTyxLQUFLSCxrQkFBTCxDQUF3QkMsTUFBeEIsRUFBZ0NDLFNBQWhDLEVBQTJDQyxpQkFBM0MsQ0FBUDtBQUNBOztBQUNELGFBQU9HLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkwsU0FBaEIsQ0FBUDtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBR0N5QyxrQixHQUZBLDRCQUVtQjFDLE1BRm5CLEVBRWtDO0FBQ2pDLFVBQU0yQyxXQUFXLEdBQUcsS0FBS3BDLE9BQUwsR0FBZXFDLGFBQWYsRUFBcEI7QUFBQSxVQUNDQyxnQkFBZ0IsR0FBRyxLQUFLQyxvQkFBTCxDQUEwQjlDLE1BQTFCLENBRHBCO0FBR0EsYUFBTzZDLGdCQUFnQixDQUNyQm5DLElBREssQ0FDQSxLQUFLNEIsZ0JBQUwsQ0FBc0JTLElBQXRCLENBQTJCLElBQTNCLEVBQWlDL0MsTUFBakMsQ0FEQSxFQUVMVSxJQUZLLENBRUEsVUFBVVQsU0FBVixFQUEwQjtBQUMvQixlQUFPQSxTQUFTLElBQUlBLFNBQVMsQ0FBQ0csTUFBVixHQUFtQixDQUFoQyxHQUFvQzRDLGNBQWMsQ0FBQ0MsWUFBZixDQUE0QmpELE1BQTVCLEVBQW9DQyxTQUFwQyxFQUErQzBDLFdBQS9DLENBQXBDLEdBQWtHdEMsT0FBTyxDQUFDQyxPQUFSLEVBQXpHO0FBQ0EsT0FKSyxFQUtMSSxJQUxLLENBS0EsVUFBVXdDLE9BQVYsRUFBeUI7QUFDOUIsWUFBSUEsT0FBSixFQUFhO0FBQ1psRCxVQUFBQSxNQUFNLENBQUNtRCxZQUFQLENBQW9CRCxPQUFwQjtBQUNBQSxVQUFBQSxPQUFPLENBQUNFLElBQVI7QUFDQTtBQUNELE9BVkssRUFXTGhCLEtBWEssQ0FXQyxVQUFVaUIsTUFBVixFQUF1QjtBQUM3QnBCLFFBQUFBLEdBQUcsQ0FBQ0ksS0FBSixDQUFVLCtEQUFWLEVBQTJFZ0IsTUFBM0U7QUFDQSxPQWJLLENBQVA7QUFjQTtBQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBR0NQLG9CLEdBRkEsOEJBRXFCOUMsTUFGckIsRUFFb0M7QUFDbkM7QUFDQSxVQUFNdUMscUJBQXFCLEdBQUd2QyxNQUFNLENBQUN3QyxpQkFBUCxDQUF5QixVQUF6QixDQUE5QjtBQUFBLFVBQ0NjLGlCQUFpQixHQUFHZixxQkFBcUIsQ0FBQ0UsV0FBdEIsQ0FBa0MsbUJBQWxDLEtBQTBELEVBRC9FO0FBR0EsYUFBT3BDLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQmdELGlCQUFoQixDQUFQO0FBQ0EsSzs7O0lBNUhxQkMsbUI7U0ErSFJ2RSxRIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIHByaXZhdGVFeHRlbnNpb24sIHB1YmxpY0V4dGVuc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IE1hc3NFZGl0SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01hc3NFZGl0SGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgTWVzc2FnZUJveCBmcm9tIFwic2FwL20vTWVzc2FnZUJveFwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuXG4vKipcbiAqIEBjbGFzcyBDb250cm9sbGVyIGV4dGVuc2lvbiBwcm92aWRpbmcgaG9va3MgZm9yIHRoZSBtYXNzIGVkaXQgaW4gYSB0YWJsZVxuICogQG5hbWUgc2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWFzc0VkaXRcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLk1hc3NFZGl0XCIpXG5jbGFzcyBNYXNzRWRpdCBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0Z2V0TWVzc2FnZURldGFpbEZvck5vbkVkaXRhYmxlKG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUpIHtcblx0XHRjb25zdCBzSGVhZGVyID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX0hFQURFUlwiKSxcblx0XHRcdHNSZWFzb25Hcm91cCA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9NRVNTQUdFX0RFVEFJTF9SRUFTT05cIiksXG5cdFx0XHRzUmVhc29uRHJhZnQgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fTUVTU0FHRV9ERVRBSUxfUkVBU09OX0RSQUZUXCIpLFxuXHRcdFx0c1JlYXNvbk5vbkVkaXRhYmxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX1JFQVNPTl9OT05fRURJVEFCTEVcIik7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0YDxwPjxzdHJvbmc+JHtzSGVhZGVyfTwvc3Ryb25nPjwvcD5cXG5gICtcblx0XHRcdGA8cD4ke3NSZWFzb25Hcm91cH08L3A+XFxuYCArXG5cdFx0XHRgPHVsPmAgK1xuXHRcdFx0YDxsaT4ke3NSZWFzb25EcmFmdH08L2xpPmAgK1xuXHRcdFx0YDxsaT4ke3NSZWFzb25Ob25FZGl0YWJsZX08L2xpPmAgK1xuXHRcdFx0YDwvdWw+YFxuXHRcdCk7XG5cdH1cblxuXHRfb3BlbkNvbmZpcm1EaWFsb2cob1RhYmxlOiBUYWJsZSwgYUNvbnRleHRzOiBDb250ZXh0W10sIGlTZWxlY3RlZENvbnRleHRzOiBudW1iZXIpIHtcblx0XHRjb25zdCBpVXBkYXRhYmxlQ29udGV4dHMgPSAoYUNvbnRleHRzIHx8IFtdKS5sZW5ndGg7XG5cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdCgodGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpIGFzIFByb21pc2U8UmVzb3VyY2VCdW5kbGU+KVxuXHRcdFx0XHQudGhlbigob1Jlc291cmNlQnVuZGxlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgc0VkaXRCdXR0b24gPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fQlVUVE9OX1RFWFRcIiksXG5cdFx0XHRcdFx0XHRzQ2FuY2VsQnV0dG9uID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DQU5DRUxfQlVUVE9OX1RFWFRcIiksXG5cdFx0XHRcdFx0XHRpTm9uRWRpdGFibGUgPSBpU2VsZWN0ZWRDb250ZXh0cyAtIGlVcGRhdGFibGVDb250ZXh0cyxcblx0XHRcdFx0XHRcdHNNZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VcIiwgW1xuXHRcdFx0XHRcdFx0XHRpTm9uRWRpdGFibGUsXG5cdFx0XHRcdFx0XHRcdGlTZWxlY3RlZENvbnRleHRzLFxuXHRcdFx0XHRcdFx0XHRpVXBkYXRhYmxlQ29udGV4dHNcblx0XHRcdFx0XHRcdF0pLFxuXHRcdFx0XHRcdFx0c1BhdGggPSBvVGFibGUuZGF0YShcInRhcmdldENvbGxlY3Rpb25QYXRoXCIpLFxuXHRcdFx0XHRcdFx0b01ldGFNb2RlbCA9IG9UYWJsZS5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRcdFx0YklzRHJhZnQgPSBNb2RlbEhlbHBlci5pc0RyYWZ0U3VwcG9ydGVkKG9NZXRhTW9kZWwsIHNQYXRoKSxcblx0XHRcdFx0XHRcdGJEaXNwbGF5TW9kZSA9IG9UYWJsZS5kYXRhKFwiZGlzcGxheU1vZGVQcm9wZXJ0eUJpbmRpbmdcIikgPT09IFwidHJ1ZVwiLFxuXHRcdFx0XHRcdFx0c01lc3NhZ2VEZXRhaWwgPSBiSXNEcmFmdCAmJiBiRGlzcGxheU1vZGUgJiYgdGhpcy5nZXRNZXNzYWdlRGV0YWlsRm9yTm9uRWRpdGFibGUob1Jlc291cmNlQnVuZGxlKTtcblxuXHRcdFx0XHRcdE1lc3NhZ2VCb3gud2FybmluZyhzTWVzc2FnZSwge1xuXHRcdFx0XHRcdFx0ZGV0YWlsczogc01lc3NhZ2VEZXRhaWwsXG5cdFx0XHRcdFx0XHRhY3Rpb25zOiBbc0VkaXRCdXR0b24sIHNDYW5jZWxCdXR0b25dLFxuXHRcdFx0XHRcdFx0ZW1waGFzaXplZEFjdGlvbjogc0VkaXRCdXR0b24sXG5cdFx0XHRcdFx0XHRjb250ZW50V2lkdGg6IFwiMTAwcHhcIixcblx0XHRcdFx0XHRcdG9uQ2xvc2U6IGZ1bmN0aW9uIChzU2VsZWN0aW9uOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdFx0bGV0IGFDb250ZXh0c0ZvckVkaXQ6IGFueVtdID0gW107XG5cdFx0XHRcdFx0XHRcdGlmIChzU2VsZWN0aW9uID09PSBzRWRpdEJ1dHRvbikge1xuXHRcdFx0XHRcdFx0XHRcdExvZy5pbmZvKFwiTWFzcyBFZGl0OiBDb25maXJtZWQgdG8gZWRpdCBcIiwgaVVwZGF0YWJsZUNvbnRleHRzLnRvU3RyaW5nKCksIFwiIHNlbGVjdGlvbnMuXCIpO1xuXHRcdFx0XHRcdFx0XHRcdGFDb250ZXh0c0ZvckVkaXQgPSBhQ29udGV4dHM7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoc1NlbGVjdGlvbiA9PT0gc0NhbmNlbEJ1dHRvbikge1xuXHRcdFx0XHRcdFx0XHRcdExvZy5pbmZvKFwiTWFzcyBFZGl0OiBDYW5jZWxsZWQuXCIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoYUNvbnRleHRzRm9yRWRpdCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBhcyBhbnkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRfY29uZmlybUNvbnRleHRzKG9UYWJsZTogVGFibGUsIGFDb250ZXh0czogQ29udGV4dFtdKSB7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1RhYmxlLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRpU2VsZWN0ZWRDb250ZXh0cyA9ICtvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJudW1iZXJPZlNlbGVjdGVkQ29udGV4dHNcIikgfHwgMDtcblxuXHRcdGFDb250ZXh0cyA9IGFDb250ZXh0cyB8fCBbXTtcblxuXHRcdGlmIChhQ29udGV4dHMubGVuZ3RoICYmIGFDb250ZXh0cy5sZW5ndGggIT09IGlTZWxlY3RlZENvbnRleHRzKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fb3BlbkNvbmZpcm1EaWFsb2cob1RhYmxlLCBhQ29udGV4dHMsIGlTZWxlY3RlZENvbnRleHRzKTtcblx0XHR9XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShhQ29udGV4dHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVkIGJ5IG1ldGhvZCBvcGVuTWFzc0VkaXREaWFsb2c6XG5cdCAqID0+IE9wZW5zIHRoZSBtYXNzIGVkaXQgZGlhbG9nLlxuXHQgKiA9PiBJbXBsZW1lbnRzIHRoZSBzYXZlIGFuZCBjYW5jZWwgZnVuY3Rpb25hbGl0eS5cblx0ICogPT4gU2V0cyB0aGUgcnVudGltZSBtb2RlbCB0byB0aGUgZGlhbG9nLlxuXHQgKiA9PiBTZXRzIHRoZSBzdGF0aWMgbW9kZWwncyBjb250ZXh0IHRvIHRoZSBkaWFsb2cuXG5cdCAqXG5cdCAqIEBwYXJhbSBvVGFibGUgSW5zdGFuY2Ugb2YgdGhlIHRhYmxlXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIG9uIG9wZW4gb2YgdGhlIG1hc3MgZWRpdCBkaWFsb2cuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0b3Blbk1hc3NFZGl0RGlhbG9nKG9UYWJsZTogVGFibGUpIHtcblx0XHRjb25zdCBvQ29udHJvbGxlciA9IHRoaXMuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBQYWdlQ29udHJvbGxlcixcblx0XHRcdHBDb250ZXh0c0ZvckVkaXQgPSB0aGlzLmZldGNoQ29udGV4dHNGb3JFZGl0KG9UYWJsZSk7XG5cblx0XHRyZXR1cm4gcENvbnRleHRzRm9yRWRpdFxuXHRcdFx0LnRoZW4odGhpcy5fY29uZmlybUNvbnRleHRzLmJpbmQodGhpcywgb1RhYmxlKSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChhQ29udGV4dHM6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gYUNvbnRleHRzICYmIGFDb250ZXh0cy5sZW5ndGggPiAwID8gTWFzc0VkaXRIZWxwZXIuY3JlYXRlRGlhbG9nKG9UYWJsZSwgYUNvbnRleHRzLCBvQ29udHJvbGxlcikgOiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbihmdW5jdGlvbiAob0RpYWxvZz86IGFueSkge1xuXHRcdFx0XHRpZiAob0RpYWxvZykge1xuXHRcdFx0XHRcdG9UYWJsZS5hZGREZXBlbmRlbnQob0RpYWxvZyk7XG5cdFx0XHRcdFx0b0RpYWxvZy5vcGVuKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIk1hc3MgRWRpdDogU29tZXRoaW5nIHdlbnQgd3JvbmcgaW4gbWFzcyBlZGl0IGRpYWxvZyBjcmVhdGlvbi5cIiwgb0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGNvbnRleHRzIGZvciBtYXNzIGVkaXQuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAcGFyYW0gb1RhYmxlIFRhYmxlIGZvciBtYXNzIGVkaXQuXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5jb250cmxsZXJleHRlbnNpb25zLk1hc3NFZGl0I2ZldGNoQ29udGV4dHNGb3JFZGl0XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSB0byBiZSByZXNvbHZlZCB3aXRoIGFuIGFycmF5IG9mIGNvbnRleHQocykgd2hpY2ggc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIG1hc3MgZWRpdC5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdEBwcml2YXRlRXh0ZW5zaW9uKClcblx0QGV4dGVuc2libGUoT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXIpXG5cdGZldGNoQ29udGV4dHNGb3JFZGl0KG9UYWJsZTogVGFibGUpIHtcblx0XHQvL1RvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGFwcGxpY2F0aW9uXG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1RhYmxlLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcInVwZGF0YWJsZUNvbnRleHRzXCIpIHx8IFtdO1xuXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShhU2VsZWN0ZWRDb250ZXh0cyk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFzc0VkaXQ7XG4iXX0=
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
1
|
+
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
2
2
|
import Log from "sap/base/Log";
|
|
3
3
|
import { defineUI5Class, extensible, finalExtension, privateExtension, publicExtension } from "sap/fe/core/helpers/ClassSupport";
|
|
4
4
|
import MassEditHelper from "sap/fe/core/helpers/MassEditHelper";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
6
|
+
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
7
|
+
import type PageController from "sap/fe/core/PageController";
|
|
7
8
|
import MessageBox from "sap/m/MessageBox";
|
|
8
9
|
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
9
10
|
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
10
|
-
import Table from "sap/ui/mdc/Table";
|
|
11
|
-
import Context from "sap/ui/model/Context";
|
|
12
|
-
import ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
11
|
+
import type Table from "sap/ui/mdc/Table";
|
|
12
|
+
import type Context from "sap/ui/model/Context";
|
|
13
|
+
import type ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* @class Controller extension providing hooks for the mass edit in a table
|
|
16
|
-
*
|
|
17
17
|
* @name sap.fe.core.controllerextensions.MassEdit
|
|
18
18
|
* @hideconstructor
|
|
19
19
|
* @private
|
|
@@ -29,20 +29,12 @@ class MassEdit extends ControllerExtension {
|
|
|
29
29
|
sReasonNonEditable = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_NON_EDITABLE");
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"<ul>" +
|
|
39
|
-
"<li>" +
|
|
40
|
-
sReasonDraft +
|
|
41
|
-
"</li>" +
|
|
42
|
-
"<li>" +
|
|
43
|
-
sReasonNonEditable +
|
|
44
|
-
"</li>" +
|
|
45
|
-
"</ul>"
|
|
32
|
+
`<p><strong>${sHeader}</strong></p>\n` +
|
|
33
|
+
`<p>${sReasonGroup}</p>\n` +
|
|
34
|
+
`<ul>` +
|
|
35
|
+
`<li>${sReasonDraft}</li>` +
|
|
36
|
+
`<li>${sReasonNonEditable}</li>` +
|
|
37
|
+
`</ul>`
|
|
46
38
|
);
|
|
47
39
|
}
|
|
48
40
|
|
|
@@ -108,8 +100,8 @@ class MassEdit extends ControllerExtension {
|
|
|
108
100
|
* => Sets the runtime model to the dialog.
|
|
109
101
|
* => Sets the static model's context to the dialog.
|
|
110
102
|
*
|
|
111
|
-
* @param
|
|
112
|
-
* @returns
|
|
103
|
+
* @param oTable Instance of the table
|
|
104
|
+
* @returns A promise that resolves on open of the mass edit dialog.
|
|
113
105
|
* @private
|
|
114
106
|
*/
|
|
115
107
|
@publicExtension()
|
|
@@ -136,12 +128,13 @@ class MassEdit extends ControllerExtension {
|
|
|
136
128
|
|
|
137
129
|
/**
|
|
138
130
|
* Returns a promise that resolves to the contexts for mass edit.
|
|
131
|
+
*
|
|
139
132
|
* @function
|
|
140
|
-
* @param
|
|
133
|
+
* @param oTable Table for mass edit.
|
|
141
134
|
* @alias sap.fe.core.contrllerextensions.MassEdit#fetchContextsForEdit
|
|
142
|
-
* @returns
|
|
135
|
+
* @returns A promise to be resolved with an array of context(s) which should be considered for mass edit.
|
|
143
136
|
* @private
|
|
144
|
-
|
|
137
|
+
*/
|
|
145
138
|
@privateExtension()
|
|
146
139
|
@extensible(OverrideExecution.After)
|
|
147
140
|
fetchContextsForEdit(oTable: Table) {
|
|
@@ -45,7 +45,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
45
45
|
* If the bound messages are shown to the user with a different control like the (TODO:Link) MessageButton
|
|
46
46
|
* this method has to be overridden.
|
|
47
47
|
*
|
|
48
|
-
* @returns
|
|
48
|
+
* @returns Determines whether or not bound messages are shown in the message dialog.
|
|
49
49
|
* @private
|
|
50
50
|
*/
|
|
51
51
|
_proto.getShowBoundMessagesInMessageDialog = function getShowBoundMessagesInMessageDialog() {
|
|
@@ -60,7 +60,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
60
60
|
* toast is shown instead.
|
|
61
61
|
*
|
|
62
62
|
* @param mParameters PRIVATE
|
|
63
|
-
* @returns
|
|
63
|
+
* @returns A promise that is resolved once the user closes the dialog. If there are no messages
|
|
64
64
|
* to be shown, the promise is resolved immediately
|
|
65
65
|
* @alias sap.fe.core.controllerextensions.MessageHandler#showMessageDialog
|
|
66
66
|
* @public
|
|
@@ -90,7 +90,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
90
90
|
// we have to set a timeout to be able to access the most recent messages
|
|
91
91
|
setTimeout(function () {
|
|
92
92
|
// TODO: great API - will be changed later
|
|
93
|
-
messageHandling.showUnboundMessages(customMessages, oBindingContext, bEtagMessage, bShowBoundMessages, mParameters === null || mParameters === void 0 ? void 0 : mParameters.
|
|
93
|
+
messageHandling.showUnboundMessages(customMessages, oBindingContext, bEtagMessage, bShowBoundMessages, mParameters === null || mParameters === void 0 ? void 0 : mParameters.showErrorInAPD, mParameters === null || mParameters === void 0 ? void 0 : mParameters.bShowMessageBox, mParameters === null || mParameters === void 0 ? void 0 : mParameters.concurrentEditFlag).then(resolve).catch(reject);
|
|
94
94
|
}, 0);
|
|
95
95
|
});
|
|
96
96
|
}
|
|
@@ -98,19 +98,23 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
98
98
|
* You can remove the existing transition message from the message model with this method.
|
|
99
99
|
* With every user interaction that causes server communication (like clicking on an action, changing data),
|
|
100
100
|
* this method removes the existing transition messages from the message model.
|
|
101
|
-
* @param {boolean} [keepBoundMessage] Checks if the bound transition messages are not to be removed
|
|
102
101
|
*
|
|
102
|
+
* @param [keepBoundMessage] Checks if the bound transition messages are not to be removed
|
|
103
|
+
* @param keepUnboundMessage
|
|
104
|
+
* @param sPathToBeRemoved
|
|
103
105
|
* @alias sap.fe.core.controllerextensions.MessageHandler#removesTransitionMessages
|
|
104
106
|
* @private
|
|
105
107
|
*/
|
|
106
108
|
;
|
|
107
109
|
|
|
108
|
-
_proto.removeTransitionMessages = function removeTransitionMessages(keepBoundMessage) {
|
|
110
|
+
_proto.removeTransitionMessages = function removeTransitionMessages(keepBoundMessage, keepUnboundMessage, sPathToBeRemoved) {
|
|
109
111
|
if (!keepBoundMessage) {
|
|
110
|
-
messageHandling.removeBoundTransitionMessages();
|
|
112
|
+
messageHandling.removeBoundTransitionMessages(sPathToBeRemoved);
|
|
111
113
|
}
|
|
112
114
|
|
|
113
|
-
|
|
115
|
+
if (!keepUnboundMessage) {
|
|
116
|
+
messageHandling.removeUnboundTransitionMessages();
|
|
117
|
+
}
|
|
114
118
|
};
|
|
115
119
|
|
|
116
120
|
_proto._checkNavigationToMessagePage = function _checkNavigationToMessagePage(mParameters) {
|
|
@@ -150,14 +154,14 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
150
154
|
// We can plan to move this and the dialog logic both to messageHandler controller extension if required.
|
|
151
155
|
sRetryAfterMessage = messageHandling.getRetryAfterMessage(oMessage);
|
|
152
156
|
mMessagePageParameters = {
|
|
153
|
-
description: sRetryAfterMessage ? sRetryAfterMessage
|
|
157
|
+
description: sRetryAfterMessage ? "".concat(sRetryAfterMessage, " ").concat(oMessage.getMessage()) : oMessage.getMessage(),
|
|
154
158
|
navigateBackToOrigin: true
|
|
155
159
|
};
|
|
156
160
|
}
|
|
157
161
|
} else {
|
|
158
162
|
sRetryAfterMessage = messageHandling.getRetryAfterMessage(oMessage);
|
|
159
163
|
mMessagePageParameters = {
|
|
160
|
-
description: sRetryAfterMessage ? sRetryAfterMessage
|
|
164
|
+
description: sRetryAfterMessage ? "".concat(sRetryAfterMessage, " ").concat(oMessage.getMessage()) : oMessage.getMessage(),
|
|
161
165
|
navigateBackToOrigin: true
|
|
162
166
|
};
|
|
163
167
|
}
|
|
@@ -176,8 +180,9 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
176
180
|
}
|
|
177
181
|
/**
|
|
178
182
|
* Shows a message page or a message dialog based on the messages in the message dialog.
|
|
183
|
+
*
|
|
179
184
|
* @param [mParameters]
|
|
180
|
-
* @returns
|
|
185
|
+
* @returns A promise that is resolved once the user closes the message dialog or when navigation to the message page is complete. If there are no messages
|
|
181
186
|
* to be shown, the promise is resolved immediately
|
|
182
187
|
* @private
|
|
183
188
|
*/
|
|
@@ -196,7 +201,10 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
196
201
|
if (mMessagePageParameters) {
|
|
197
202
|
// navigate to message page.
|
|
198
203
|
// handler before page navigation is triggered, for example to close the action parameter dialog
|
|
199
|
-
|
|
204
|
+
if (mParameters && mParameters.messagePageNavigationCallback) {
|
|
205
|
+
mParameters.messagePageNavigationCallback();
|
|
206
|
+
}
|
|
207
|
+
|
|
200
208
|
mMessagePageParameters.handleShellBack = !(mParameters && mParameters.shellBack); // TODO: Use Illustrated message instead of normal message page
|
|
201
209
|
// TODO: Return value needs to provided but since this function is private for now hence we can skip this.
|
|
202
210
|
|
|
@@ -222,4 +230,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/mess
|
|
|
222
230
|
}(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "getShowBoundMessagesInMessageDialog", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "getShowBoundMessagesInMessageDialog"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "showMessageDialog", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "showMessageDialog"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "removeTransitionMessages", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "removeTransitionMessages"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "showMessages", [_dec7, _dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "showMessages"), _class2.prototype)), _class2)) || _class);
|
|
223
231
|
return MessageHandler;
|
|
224
232
|
}, false);
|
|
225
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1lc3NhZ2VIYW5kbGVyLnRzIl0sIm5hbWVzIjpbIk1lc3NhZ2VIYW5kbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJwcml2YXRlRXh0ZW5zaW9uIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiSW5zdGVhZCIsInB1YmxpY0V4dGVuc2lvbiIsImZpbmFsRXh0ZW5zaW9uIiwiZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2ciLCJzaG93TWVzc2FnZURpYWxvZyIsIm1QYXJhbWV0ZXJzIiwiY3VzdG9tTWVzc2FnZXMiLCJ1bmRlZmluZWQiLCJvT1BJbnRlcm5hbEJpbmRpbmdDb250ZXh0IiwiYmFzZSIsImdldFZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsImlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nT3BlbiIsInNldFByb3BlcnR5IiwiYlNob3dCb3VuZE1lc3NhZ2VzIiwib0JpbmRpbmdDb250ZXh0IiwiY29udGV4dCIsImJFdGFnTWVzc2FnZSIsImJIYXNFdGFnTWVzc2FnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2V0VGltZW91dCIsIm1lc3NhZ2VIYW5kbGluZyIsInNob3dVbmJvdW5kTWVzc2FnZXMiLCJlcnJvclRhcmdldHNJbkFQTSIsInRoZW4iLCJjYXRjaCIsInJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyIsImtlZXBCb3VuZE1lc3NhZ2UiLCJyZW1vdmVCb3VuZFRyYW5zaXRpb25NZXNzYWdlcyIsInJlbW92ZVVuYm91bmRUcmFuc2l0aW9uTWVzc2FnZXMiLCJfY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZSIsImFVbmJvdW5kTWVzc2FnZXMiLCJnZXRNZXNzYWdlcyIsImJTaG93Qm91bmRUcmFuc2l0aW9uTWVzc2FnZXMiLCJhQm91bmRUcmFuc2l0aW9uTWVzc2FnZXMiLCJhQ3VzdG9tTWVzc2FnZXMiLCJiSXNTdGlja3lFZGl0TW9kZSIsIkNvbW1vblV0aWxzIiwiaXNTdGlja3lFZGl0TW9kZSIsIm1NZXNzYWdlUGFnZVBhcmFtZXRlcnMiLCJpc0RhdGFSZWNlaXZlZEVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIm5hdmlnYXRlQmFja1RvT3JpZ2luIiwibGVuZ3RoIiwiaXNJbml0aWFsTG9hZDUwM0Vycm9yIiwib01lc3NhZ2UiLCJvVGVjaG5pY2FsRGV0YWlscyIsImdldFRlY2huaWNhbERldGFpbHMiLCJzUmV0cnlBZnRlck1lc3NhZ2UiLCJodHRwU3RhdHVzIiwicmV0cnlBZnRlciIsImlTZWNvbmRzQmVmb3JlUmV0cnkiLCJfZ2V0U2Vjb25kc0JlZm9yZVJldHJ5QWZ0ZXIiLCJnZXRSZXRyeUFmdGVyTWVzc2FnZSIsImdldE1lc3NhZ2UiLCJkUmV0cnlBZnRlciIsImRDdXJyZW50RGF0ZVRpbWUiLCJEYXRlIiwiaUN1cnJlbnREYXRlVGltZUluTWlsbGlTZWNvbmRzIiwiZ2V0VGltZSIsImlSZXRyeUFmdGVyRGF0ZVRpbWVJbk1pbGxpU2Vjb25kcyIsInNob3dNZXNzYWdlcyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJfaXNGY2xFbmFibGVkIiwibWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2siLCJoYW5kbGVTaGVsbEJhY2siLCJzaGVsbEJhY2siLCJvUmVzb3VyY2VCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiX3JvdXRpbmciLCJuYXZpZ2F0ZVRvTWVzc2FnZVBhZ2UiLCJnZXRUZXh0IiwiQ29udHJvbGxlckV4dGVuc2lvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxjLFdBRExDLGNBQWMsQ0FBQyxpREFBRCxDLFVBZWJDLGdCQUFnQixFLFVBQ2hCQyxVQUFVLENBQUNDLGlCQUFpQixDQUFDQyxPQUFuQixDLFVBcUJWQyxlQUFlLEUsVUFDZkMsY0FBYyxFLFVBcUNkRCxlQUFlLEUsVUFnRmZBLGVBQWUsRSxVQUNmQyxjQUFjLEU7Ozs7Ozs7OztBQXpKZjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7V0FHQ0MsbUMsR0FGQSwrQ0FFc0M7QUFDckMsYUFBTyxJQUFQO0FBQ0E7QUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBR0NDLGlCLEdBRkEsMkJBRWtCQyxXQUZsQixFQUVvRDtBQUNuRCxVQUFNQyxjQUFjLEdBQUdELFdBQVcsSUFBSUEsV0FBVyxDQUFDQyxjQUEzQixHQUE0Q0QsV0FBVyxDQUFDQyxjQUF4RCxHQUF5RUMsU0FBaEc7QUFBQSxVQUNDQyx5QkFBeUIsR0FBRyxLQUFLQyxJQUFMLENBQVVDLE9BQVYsR0FBb0JDLGlCQUFwQixDQUFzQyxVQUF0QyxDQUQ3QixDQURtRCxDQUduRDs7QUFDQSxVQUFJTixXQUFXLElBQUlBLFdBQVcsQ0FBQ08sMkJBQTNCLElBQTBESix5QkFBOUQsRUFBeUY7QUFDeEZBLFFBQUFBLHlCQUF5QixDQUFDSyxXQUExQixDQUFzQyw2QkFBdEMsRUFBcUUsSUFBckU7QUFDQTs7QUFDRCxVQUFNQyxrQkFBa0IsR0FBRyxLQUFLWCxtQ0FBTCxFQUEzQjtBQUNBLFVBQU1ZLGVBQWUsR0FBR1YsV0FBVyxJQUFJQSxXQUFXLENBQUNXLE9BQTNCLEdBQXFDWCxXQUFXLENBQUNXLE9BQWpELEdBQTJELEtBQUtOLE9BQUwsR0FBZUMsaUJBQWYsRUFBbkY7QUFDQSxVQUFNTSxZQUFZLEdBQUdaLFdBQVcsSUFBSUEsV0FBVyxDQUFDYSxlQUFoRCxDQVRtRCxDQVVuRDtBQUNBOztBQUNBLFVBQUlWLHlCQUFKLEVBQStCO0FBQzlCQSxRQUFBQSx5QkFBeUIsQ0FBQ0ssV0FBMUIsQ0FBc0MsNkJBQXRDLEVBQXFFLEtBQXJFO0FBQ0E7O0FBQ0QsYUFBTyxJQUFJTSxPQUFKLENBQVksVUFBVUMsT0FBVixFQUF5Q0MsTUFBekMsRUFBeUU7QUFDM0Y7QUFDQUMsUUFBQUEsVUFBVSxDQUFDLFlBQVk7QUFDdEI7QUFDQUMsVUFBQUEsZUFBZSxDQUNiQyxtQkFERixDQUNzQmxCLGNBRHRCLEVBQ3NDUyxlQUR0QyxFQUN1REUsWUFEdkQsRUFDcUVILGtCQURyRSxFQUN5RlQsV0FEekYsYUFDeUZBLFdBRHpGLHVCQUN5RkEsV0FBVyxDQUFFb0IsaUJBRHRHLEVBRUVDLElBRkYsQ0FFT04sT0FGUCxFQUdFTyxLQUhGLENBR1FOLE1BSFI7QUFJQSxTQU5TLEVBTVAsQ0FOTyxDQUFWO0FBT0EsT0FUTSxDQUFQO0FBVUE7QUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUVDTyx3QixHQURBLGtDQUN5QkMsZ0JBRHpCLEVBQ3FEO0FBQ3BELFVBQUksQ0FBQ0EsZ0JBQUwsRUFBdUI7QUFDdEJOLFFBQUFBLGVBQWUsQ0FBQ08sNkJBQWhCO0FBQ0E7O0FBQ0RQLE1BQUFBLGVBQWUsQ0FBQ1EsK0JBQWhCO0FBQ0EsSzs7V0FFREMsNkIsR0FBQSx1Q0FBOEIzQixXQUE5QixFQUFnRDtBQUMvQyxVQUFNNEIsZ0JBQWdCLEdBQUdWLGVBQWUsQ0FBQ1csV0FBaEIsRUFBekI7QUFDQSxVQUFNQyw0QkFBNEIsR0FBRyxLQUFLaEMsbUNBQUwsRUFBckM7QUFDQSxVQUFNaUMsd0JBQXdCLEdBQUdELDRCQUE0QixHQUFHWixlQUFlLENBQUNXLFdBQWhCLENBQTRCLElBQTVCLEVBQWtDLElBQWxDLENBQUgsR0FBNkMsRUFBMUc7QUFDQSxVQUFNRyxlQUFlLEdBQUdoQyxXQUFXLElBQUlBLFdBQVcsQ0FBQ0MsY0FBM0IsR0FBNENELFdBQVcsQ0FBQ0MsY0FBeEQsR0FBeUUsRUFBakc7QUFDQSxVQUFNZ0MsaUJBQWlCLEdBQUdDLFdBQVcsQ0FBQ0MsZ0JBQVosQ0FBNkIsS0FBSy9CLElBQUwsQ0FBVUMsT0FBVixFQUE3QixDQUExQjtBQUNBLFVBQUkrQixzQkFBSixDQU4rQyxDQVEvQztBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxVQUFJcEMsV0FBVyxJQUFJQSxXQUFXLENBQUNxQyxtQkFBL0IsRUFBb0Q7QUFDbkRELFFBQUFBLHNCQUFzQixHQUFHO0FBQ3hCRSxVQUFBQSxLQUFLLEVBQUV0QyxXQUFXLENBQUNzQyxLQURLO0FBRXhCQyxVQUFBQSxXQUFXLEVBQUV2QyxXQUFXLENBQUN1QyxXQUZEO0FBR3hCQyxVQUFBQSxvQkFBb0IsRUFBRTtBQUhFLFNBQXpCO0FBS0EsT0FORCxNQU1PLElBQ04sQ0FBQ1AsaUJBQUQsSUFDQSxDQUFDRix3QkFBd0IsQ0FBQ1UsTUFEMUIsSUFFQSxDQUFDVCxlQUFlLENBQUNTLE1BRmpCLEtBR0NiLGdCQUFnQixDQUFDYSxNQUFqQixLQUE0QixDQUE1QixJQUFrQ3pDLFdBQVcsSUFBSUEsV0FBVyxDQUFDMEMscUJBSDlELENBRE0sRUFLTDtBQUNELFlBQU1DLFFBQVEsR0FBR2YsZ0JBQWdCLENBQUMsQ0FBRCxDQUFqQztBQUFBLFlBQ0NnQixpQkFBaUIsR0FBR0QsUUFBUSxDQUFDRSxtQkFBVCxFQURyQjtBQUVBLFlBQUlDLGtCQUFKOztBQUNBLFlBQUlGLGlCQUFpQixJQUFJQSxpQkFBaUIsQ0FBQ0csVUFBbEIsS0FBaUMsR0FBMUQsRUFBK0Q7QUFDOUQsY0FBSUgsaUJBQWlCLENBQUNJLFVBQXRCLEVBQWtDO0FBQ2pDLGdCQUFNQyxtQkFBbUIsR0FBRyxLQUFLQywyQkFBTCxDQUFpQ04saUJBQWlCLENBQUNJLFVBQW5ELENBQTVCOztBQUNBLGdCQUFJQyxtQkFBbUIsR0FBRyxHQUExQixFQUErQjtBQUM5QjtBQUNBO0FBQ0FILGNBQUFBLGtCQUFrQixHQUFHNUIsZUFBZSxDQUFDaUMsb0JBQWhCLENBQXFDUixRQUFyQyxDQUFyQjtBQUNBUCxjQUFBQSxzQkFBc0IsR0FBRztBQUN4QkcsZ0JBQUFBLFdBQVcsRUFBRU8sa0JBQWtCLEdBQUdBLGtCQUFrQixHQUFHLEdBQXJCLEdBQTJCSCxRQUFRLENBQUNTLFVBQVQsRUFBOUIsR0FBc0RULFFBQVEsQ0FBQ1MsVUFBVCxFQUQ3RDtBQUV4QlosZ0JBQUFBLG9CQUFvQixFQUFFO0FBRkUsZUFBekI7QUFJQTtBQUNELFdBWEQsTUFXTztBQUNOTSxZQUFBQSxrQkFBa0IsR0FBRzVCLGVBQWUsQ0FBQ2lDLG9CQUFoQixDQUFxQ1IsUUFBckMsQ0FBckI7QUFDQVAsWUFBQUEsc0JBQXNCLEdBQUc7QUFDeEJHLGNBQUFBLFdBQVcsRUFBRU8sa0JBQWtCLEdBQUdBLGtCQUFrQixHQUFHLEdBQXJCLEdBQTJCSCxRQUFRLENBQUNTLFVBQVQsRUFBOUIsR0FBc0RULFFBQVEsQ0FBQ1MsVUFBVCxFQUQ3RDtBQUV4QlosY0FBQUEsb0JBQW9CLEVBQUU7QUFGRSxhQUF6QjtBQUlBO0FBQ0Q7QUFDRDs7QUFDRCxhQUFPSixzQkFBUDtBQUNBLEs7O1dBRURjLDJCLEdBQUEscUNBQTRCRyxXQUE1QixFQUE4QztBQUM3QyxVQUFNQyxnQkFBZ0IsR0FBRyxJQUFJQyxJQUFKLEVBQXpCO0FBQUEsVUFDQ0MsOEJBQThCLEdBQUdGLGdCQUFnQixDQUFDRyxPQUFqQixFQURsQztBQUFBLFVBRUNDLGlDQUFpQyxHQUFHTCxXQUFXLENBQUNJLE9BQVosRUFGckM7QUFBQSxVQUdDUixtQkFBbUIsR0FBRyxDQUFDUyxpQ0FBaUMsR0FBR0YsOEJBQXJDLElBQXVFLElBSDlGO0FBSUEsYUFBT1AsbUJBQVA7QUFDQTtBQUNEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FHQ1UsWSxHQUZBLHNCQUVhM0QsV0FGYixFQUVnQztBQUFBOztBQUMvQixVQUFNNEQsYUFBYSxHQUFHMUIsV0FBVyxDQUFDMkIsZUFBWixDQUE0QixLQUFLeEQsT0FBTCxFQUE1QixDQUF0QjtBQUNBLFVBQUkrQixzQkFBSjs7QUFDQSxVQUFJLENBQUN3QixhQUFhLENBQUNFLGFBQWQsRUFBTCxFQUFvQztBQUNuQzFCLFFBQUFBLHNCQUFzQixHQUFHLEtBQUtULDZCQUFMLENBQW1DM0IsV0FBbkMsQ0FBekI7QUFDQTs7QUFDRCxVQUFJb0Msc0JBQUosRUFBNEI7QUFDM0I7QUFDQTtBQUNBcEMsUUFBQUEsV0FBVyxJQUFJQSxXQUFXLENBQUMrRCw2QkFBM0IsSUFBNEQvRCxXQUFXLENBQUMrRCw2QkFBWixFQUE1RDtBQUVBM0IsUUFBQUEsc0JBQXNCLENBQUM0QixlQUF2QixHQUF5QyxFQUFFaEUsV0FBVyxJQUFJQSxXQUFXLENBQUNpRSxTQUE3QixDQUF6QyxDQUwyQixDQU0zQjtBQUNBOztBQUNBLGFBQUsxQyx3QkFBTDtBQUNBLFlBQU0yQyxlQUFlLEdBQUlDLElBQUQsQ0FBaUJDLHdCQUFqQixDQUEwQyxhQUExQyxDQUF4Qjs7QUFDQSxZQUFJLEtBQUtoRSxJQUFMLENBQVVpRSxRQUFkLEVBQXdCO0FBQ3ZCLGlCQUFPLElBQUl2RCxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFlQyxNQUFmLEVBQStCO0FBQ2pEO0FBQ0FDLFlBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2hCO0FBQ0EsY0FBQSxLQUFJLENBQUNiLElBQUwsQ0FBVWlFLFFBQVYsQ0FDRUMscUJBREYsQ0FFRXRFLFdBQVcsSUFBSUEsV0FBVyxDQUFDcUMsbUJBQTNCLEdBQ0c2QixlQUFlLENBQUNLLE9BQWhCLENBQXdCLG9DQUF4QixDQURILEdBRUdMLGVBQWUsQ0FBQ0ssT0FBaEIsQ0FBd0Isb0NBQXhCLENBSkwsRUFLRW5DLHNCQUxGLEVBT0VmLElBUEYsQ0FPT04sT0FQUCxFQVFFTyxLQVJGLENBUVFOLE1BUlI7QUFTQSxhQVhTLEVBV1AsQ0FYTyxDQUFWO0FBWUEsV0FkTSxDQUFQO0FBZUE7QUFDRCxPQTNCRCxNQTJCTztBQUNOO0FBQ0EsZUFBTyxLQUFLakIsaUJBQUwsQ0FBdUJDLFdBQXZCLENBQVA7QUFDQTtBQUNELEs7OztJQWpNMkJ3RSxtQjtTQW1NZGxGLGMiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBtZXNzYWdlSGFuZGxpbmcgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL21lc3NhZ2VIYW5kbGVyL21lc3NhZ2VIYW5kbGluZ1wiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGV4dGVuc2libGUsIGZpbmFsRXh0ZW5zaW9uLCBwcml2YXRlRXh0ZW5zaW9uLCBwdWJsaWNFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJFeHRlbnNpb25cIjtcbmltcG9ydCBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5pbXBvcnQgeyBDb3JlRXggfSBmcm9tIFwidHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG5cbi8qKlxuICogQSBjb250cm9sbGVyIGV4dGVuc2lvbiBvZmZlcmluZyBtZXNzYWdlIGhhbmRsaW5nLlxuICpcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBleHBlcmltZW50YWwgQXMgb2YgdmVyc2lvbiAxLjkwLjBcbiAqIEBzaW5jZSAxLjkwLjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWVzc2FnZUhhbmRsZXJcIilcbmNsYXNzIE1lc3NhZ2VIYW5kbGVyIGV4dGVuZHMgQ29udHJvbGxlckV4dGVuc2lvbiB7XG5cdHByb3RlY3RlZCBiYXNlITogUGFnZUNvbnRyb2xsZXI7XG5cdC8qKlxuXHQgKiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IGJvdW5kIG1lc3NhZ2VzIGFyZSBzaG93biBpbiB0aGUgbWVzc2FnZSBkaWFsb2cuXG5cdCAqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgaW5kaXZpZHVhbGx5IG92ZXJyaWRkZW4gYnkgY29uc3VtaW5nIGNvbnRyb2xsZXJzLCBidXQgbm90IHRvIGJlIGNhbGxlZCBkaXJlY3RseS5cblx0ICogVGhlIG92ZXJyaWRlIGV4ZWN1dGlvbiBpczoge0BsaW5rIHNhcC51aS5jb3JlLm12Yy5PdmVycmlkZUV4ZWN1dGlvbi5JbnN0ZWFkfS5cblx0ICpcblx0ICogSWYgdGhlIGJvdW5kIG1lc3NhZ2VzIGFyZSBzaG93biB0byB0aGUgdXNlciB3aXRoIGEgZGlmZmVyZW50IGNvbnRyb2wgbGlrZSB0aGUgKFRPRE86TGluaykgTWVzc2FnZUJ1dHRvblxuXHQgKiB0aGlzIG1ldGhvZCBoYXMgdG8gYmUgb3ZlcnJpZGRlbi5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59IERldGVybWluZXMgd2hldGhlciBvciBub3QgYm91bmQgbWVzc2FnZXMgYXJlIHNob3duIGluIHRoZSBtZXNzYWdlIGRpYWxvZy5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdEBwcml2YXRlRXh0ZW5zaW9uKClcblx0QGV4dGVuc2libGUoT3ZlcnJpZGVFeGVjdXRpb24uSW5zdGVhZClcblx0Z2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2coKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvKipcblx0ICogU2hvd3MgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIHRyYW5zaXRpb24gbWVzc2FnZXMgaWYgdGhlcmUgYXJlIGFueS5cblx0ICogVGhlIG1lc3NhZ2UgZGlhbG9nIGlzIHNob3duIGFzIGEgbW9kYWwgZGlhbG9nLiBPbmNlIHRoZSB1c2VyIGNvbmZpcm1zIHRoZSBkaWFsb2csIGFsbCB0cmFuc2l0aW9uIG1lc3NhZ2VzXG5cdCAqIGFyZSByZW1vdmVkIGZyb20gdGhlIG1lc3NhZ2UgbW9kZWwuIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbWVzc2FnZSwgYSBsaXN0IG9mIG1lc3NhZ2VzIGlzIHNob3duLiBUaGUgdXNlclxuXHQgKiBjYW4gZmlsdGVyIG9uIG1lc3NhZ2UgdHlwZXMgYW5kIGNhbiBkaXNwbGF5IGRldGFpbHMgYXMgd2VsbCBhcyB0aGUgbG9uZyB0ZXh0LiBJZiB0aGVyZSBpcyBvbmUgbWVzc2FnZSxcblx0ICogdGhlIGRpYWxvZyBpbW1lZGlhdGVseSBzaG93cyB0aGUgZGV0YWlscyBvZiB0aGUgbWVzc2FnZS4gSWYgdGhlcmUgaXMganVzdCBvbmUgc3VjY2VzcyBtZXNzYWdlLCBhIG1lc3NhZ2Vcblx0ICogdG9hc3QgaXMgc2hvd24gaW5zdGVhZC5cblx0ICpcblx0ICogQHBhcmFtIG1QYXJhbWV0ZXJzIFBSSVZBVEVcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIG9uY2UgdGhlIHVzZXIgY2xvc2VzIHRoZSBkaWFsb2cuIElmIHRoZXJlIGFyZSBubyBtZXNzYWdlc1xuXHQgKiB0byBiZSBzaG93biwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgaW1tZWRpYXRlbHlcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLk1lc3NhZ2VIYW5kbGVyI3Nob3dNZXNzYWdlRGlhbG9nXG5cdCAqIEBwdWJsaWNcblx0ICogQGV4cGVyaW1lbnRhbCBBcyBvZiB2ZXJzaW9uIDEuOTAuMFxuXHQgKiBAc2luY2UgMS45MC4wXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0c2hvd01lc3NhZ2VEaWFsb2cobVBhcmFtZXRlcnM/OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBjdXN0b21NZXNzYWdlcyA9IG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmN1c3RvbU1lc3NhZ2VzID8gbVBhcmFtZXRlcnMuY3VzdG9tTWVzc2FnZXMgOiB1bmRlZmluZWQsXG5cdFx0XHRvT1BJbnRlcm5hbEJpbmRpbmdDb250ZXh0ID0gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdC8vIHNldCBpc0FjdGlvblBhcmFtZXRlckRpYWxvZyBvcGVuIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHRvIGRlY2lkZSB3aGV0aGVyIG1lc3NhZ2UgZGlhbG9nIHNob3VsZCBvcGVuIG9yIG5vdFxuXHRcdGlmIChtUGFyYW1ldGVycyAmJiBtUGFyYW1ldGVycy5pc0FjdGlvblBhcmFtZXRlckRpYWxvZ09wZW4gJiYgb09QSW50ZXJuYWxCaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0b09QSW50ZXJuYWxCaW5kaW5nQ29udGV4dC5zZXRQcm9wZXJ0eShcImlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nT3BlblwiLCB0cnVlKTtcblx0XHR9XG5cdFx0Y29uc3QgYlNob3dCb3VuZE1lc3NhZ2VzID0gdGhpcy5nZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZygpO1xuXHRcdGNvbnN0IG9CaW5kaW5nQ29udGV4dCA9IG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmNvbnRleHQgPyBtUGFyYW1ldGVycy5jb250ZXh0IDogdGhpcy5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRjb25zdCBiRXRhZ01lc3NhZ2UgPSBtUGFyYW1ldGVycyAmJiBtUGFyYW1ldGVycy5iSGFzRXRhZ01lc3NhZ2U7XG5cdFx0Ly8gcmVzZXQgIGlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nT3BlblxuXHRcdC8vIGNhbm5vdCBkbyB0aGlzIG9wZXJhdGlvbnMuanMgc2luY2UgaXQgaXMgbm90IGF3YXJlIG9mIHRoZSB2aWV3XG5cdFx0aWYgKG9PUEludGVybmFsQmluZGluZ0NvbnRleHQpIHtcblx0XHRcdG9PUEludGVybmFsQmluZGluZ0NvbnRleHQuc2V0UHJvcGVydHkoXCJpc0FjdGlvblBhcmFtZXRlckRpYWxvZ09wZW5cIiwgZmFsc2UpO1xuXHRcdH1cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpIHtcblx0XHRcdC8vIHdlIGhhdmUgdG8gc2V0IGEgdGltZW91dCB0byBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgbW9zdCByZWNlbnQgbWVzc2FnZXNcblx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHQvLyBUT0RPOiBncmVhdCBBUEkgLSB3aWxsIGJlIGNoYW5nZWQgbGF0ZXJcblx0XHRcdFx0bWVzc2FnZUhhbmRsaW5nXG5cdFx0XHRcdFx0LnNob3dVbmJvdW5kTWVzc2FnZXMoY3VzdG9tTWVzc2FnZXMsIG9CaW5kaW5nQ29udGV4dCwgYkV0YWdNZXNzYWdlLCBiU2hvd0JvdW5kTWVzc2FnZXMsIG1QYXJhbWV0ZXJzPy5lcnJvclRhcmdldHNJbkFQTSlcblx0XHRcdFx0XHQudGhlbihyZXNvbHZlKVxuXHRcdFx0XHRcdC5jYXRjaChyZWplY3QpO1xuXHRcdFx0fSwgMCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogWW91IGNhbiByZW1vdmUgdGhlIGV4aXN0aW5nIHRyYW5zaXRpb24gbWVzc2FnZSBmcm9tIHRoZSBtZXNzYWdlIG1vZGVsIHdpdGggdGhpcyBtZXRob2QuXG5cdCAqIFdpdGggZXZlcnkgdXNlciBpbnRlcmFjdGlvbiB0aGF0IGNhdXNlcyBzZXJ2ZXIgY29tbXVuaWNhdGlvbiAobGlrZSBjbGlja2luZyBvbiBhbiBhY3Rpb24sIGNoYW5naW5nIGRhdGEpLFxuXHQgKiB0aGlzIG1ldGhvZCByZW1vdmVzIHRoZSBleGlzdGluZyB0cmFuc2l0aW9uIG1lc3NhZ2VzIGZyb20gdGhlIG1lc3NhZ2UgbW9kZWwuXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gW2tlZXBCb3VuZE1lc3NhZ2VdIENoZWNrcyBpZiB0aGUgYm91bmQgdHJhbnNpdGlvbiBtZXNzYWdlcyBhcmUgbm90IHRvIGJlIHJlbW92ZWRcblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLk1lc3NhZ2VIYW5kbGVyI3JlbW92ZXNUcmFuc2l0aW9uTWVzc2FnZXNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRyZW1vdmVUcmFuc2l0aW9uTWVzc2FnZXMoa2VlcEJvdW5kTWVzc2FnZT86IGJvb2xlYW4pIHtcblx0XHRpZiAoIWtlZXBCb3VuZE1lc3NhZ2UpIHtcblx0XHRcdG1lc3NhZ2VIYW5kbGluZy5yZW1vdmVCb3VuZFRyYW5zaXRpb25NZXNzYWdlcygpO1xuXHRcdH1cblx0XHRtZXNzYWdlSGFuZGxpbmcucmVtb3ZlVW5ib3VuZFRyYW5zaXRpb25NZXNzYWdlcygpO1xuXHR9XG5cblx0X2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UobVBhcmFtZXRlcnM6IGFueSkge1xuXHRcdGNvbnN0IGFVbmJvdW5kTWVzc2FnZXMgPSBtZXNzYWdlSGFuZGxpbmcuZ2V0TWVzc2FnZXMoKTtcblx0XHRjb25zdCBiU2hvd0JvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzID0gdGhpcy5nZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZygpO1xuXHRcdGNvbnN0IGFCb3VuZFRyYW5zaXRpb25NZXNzYWdlcyA9IGJTaG93Qm91bmRUcmFuc2l0aW9uTWVzc2FnZXMgPyBtZXNzYWdlSGFuZGxpbmcuZ2V0TWVzc2FnZXModHJ1ZSwgdHJ1ZSkgOiBbXTtcblx0XHRjb25zdCBhQ3VzdG9tTWVzc2FnZXMgPSBtUGFyYW1ldGVycyAmJiBtUGFyYW1ldGVycy5jdXN0b21NZXNzYWdlcyA/IG1QYXJhbWV0ZXJzLmN1c3RvbU1lc3NhZ2VzIDogW107XG5cdFx0Y29uc3QgYklzU3RpY2t5RWRpdE1vZGUgPSBDb21tb25VdGlscy5pc1N0aWNreUVkaXRNb2RlKHRoaXMuYmFzZS5nZXRWaWV3KCkpO1xuXHRcdGxldCBtTWVzc2FnZVBhZ2VQYXJhbWV0ZXJzO1xuXG5cdFx0Ly8gVE9ETzogU3RpY2sgbW9kZSBjaGVjayBpcyBva2F5IGFzIGxvbmcgYXMgdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGlzIHVzZWQgd2l0aCBzYXAuZmUuY29yZSBhbmQgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50LlxuXHRcdC8vIEl0IG1pZ2h0IGJlIGJldHRlciB0byBwcm92aWRlIGFuIGV4dGVuc2lvbiB0byB0aGUgY29uc3VtZXIgb2YgdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHRvIHByb3ZpZGUgdGhpcyB2YWx1ZS5cblxuXHRcdC8vIFRoZSBtZXNzYWdlIHBhZ2UgY2FuIG9ubHkgc2hvdyAxIG1lc3NhZ2UgdG9kYXksIHNvIHdlIG5hdmlnYXRlIHRvIGl0IHdoZW4gOlxuXHRcdC8vIDEuIFRoZXJlIGFyZSBubyBib3VuZCB0cmFuc2l0aW9uIG1lc3NhZ2VzIHRvIHNob3csXG5cdFx0Ly8gMi4gVGhlcmUgYXJlIG5vIGN1c3RvbSBtZXNzYWdlcyB0byBzaG93LCAmXG5cdFx0Ly8gMy4gVGhlcmUgaXMgZXhhY3RseSAxIHVuYm91bmQgbWVzc2FnZSBpbiB0aGUgbWVzc2FnZSBtb2RlbCB3aXRoIHN0YXR1c0NvZGU9NTAzIGFuZCByZXRyeS1BZnRlciBhdmFpbGFibGVcblx0XHQvLyA0LiByZXRyeUFmdGVyIGlzIGdyZWF0ZXIgdGhhbiAxMjAgc2Vjb25kc1xuXHRcdC8vXG5cdFx0Ly8gSW4gQWRkaXRpb24sIG5hdmlnYXRpbmcgYXdheSBmcm9tIGEgc3RpY2t5IHNlc3Npb24gd2lsbCBkZXN0cm95IHRoZSBzZXNzaW9uIHNvIHdlIGRvIG5vdCBuYXZpZ2F0ZSB0byBtZXNzYWdlIHBhZ2UgZm9yIG5vdy5cblx0XHQvLyBUT0RPOiBjaGVjayBpZiBuYXZpZ2F0aW9uIHNob3VsZCBiZSBkb25lIGluIHN0aWNreSBlZGl0IG1vZGUuXG5cdFx0aWYgKG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmlzRGF0YVJlY2VpdmVkRXJyb3IpIHtcblx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMgPSB7XG5cdFx0XHRcdHRpdGxlOiBtUGFyYW1ldGVycy50aXRsZSxcblx0XHRcdFx0ZGVzY3JpcHRpb246IG1QYXJhbWV0ZXJzLmRlc2NyaXB0aW9uLFxuXHRcdFx0XHRuYXZpZ2F0ZUJhY2tUb09yaWdpbjogdHJ1ZVxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0IWJJc1N0aWNreUVkaXRNb2RlICYmXG5cdFx0XHQhYUJvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzLmxlbmd0aCAmJlxuXHRcdFx0IWFDdXN0b21NZXNzYWdlcy5sZW5ndGggJiZcblx0XHRcdChhVW5ib3VuZE1lc3NhZ2VzLmxlbmd0aCA9PT0gMSB8fCAobVBhcmFtZXRlcnMgJiYgbVBhcmFtZXRlcnMuaXNJbml0aWFsTG9hZDUwM0Vycm9yKSlcblx0XHQpIHtcblx0XHRcdGNvbnN0IG9NZXNzYWdlID0gYVVuYm91bmRNZXNzYWdlc1swXSxcblx0XHRcdFx0b1RlY2huaWNhbERldGFpbHMgPSBvTWVzc2FnZS5nZXRUZWNobmljYWxEZXRhaWxzKCk7XG5cdFx0XHRsZXQgc1JldHJ5QWZ0ZXJNZXNzYWdlO1xuXHRcdFx0aWYgKG9UZWNobmljYWxEZXRhaWxzICYmIG9UZWNobmljYWxEZXRhaWxzLmh0dHBTdGF0dXMgPT09IDUwMykge1xuXHRcdFx0XHRpZiAob1RlY2huaWNhbERldGFpbHMucmV0cnlBZnRlcikge1xuXHRcdFx0XHRcdGNvbnN0IGlTZWNvbmRzQmVmb3JlUmV0cnkgPSB0aGlzLl9nZXRTZWNvbmRzQmVmb3JlUmV0cnlBZnRlcihvVGVjaG5pY2FsRGV0YWlscy5yZXRyeUFmdGVyKTtcblx0XHRcdFx0XHRpZiAoaVNlY29uZHNCZWZvcmVSZXRyeSA+IDEyMCkge1xuXHRcdFx0XHRcdFx0Ly8gVE9ETzogRm9yIG5vdyBsZXQncyBrZWVwIGdldFJldHJ5QWZ0ZXJNZXNzYWdlIGluIG1lc3NhZ2VIYW5kbGluZyBiZWNhdXNlIGl0IGlzIG5lZWRlZCBhbHNvIGJ5IHRoZSBkaWFsb2cuXG5cdFx0XHRcdFx0XHQvLyBXZSBjYW4gcGxhbiB0byBtb3ZlIHRoaXMgYW5kIHRoZSBkaWFsb2cgbG9naWMgYm90aCB0byBtZXNzYWdlSGFuZGxlciBjb250cm9sbGVyIGV4dGVuc2lvbiBpZiByZXF1aXJlZC5cblx0XHRcdFx0XHRcdHNSZXRyeUFmdGVyTWVzc2FnZSA9IG1lc3NhZ2VIYW5kbGluZy5nZXRSZXRyeUFmdGVyTWVzc2FnZShvTWVzc2FnZSk7XG5cdFx0XHRcdFx0XHRtTWVzc2FnZVBhZ2VQYXJhbWV0ZXJzID0ge1xuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogc1JldHJ5QWZ0ZXJNZXNzYWdlID8gc1JldHJ5QWZ0ZXJNZXNzYWdlICsgXCIgXCIgKyBvTWVzc2FnZS5nZXRNZXNzYWdlKCkgOiBvTWVzc2FnZS5nZXRNZXNzYWdlKCksXG5cdFx0XHRcdFx0XHRcdG5hdmlnYXRlQmFja1RvT3JpZ2luOiB0cnVlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzUmV0cnlBZnRlck1lc3NhZ2UgPSBtZXNzYWdlSGFuZGxpbmcuZ2V0UmV0cnlBZnRlck1lc3NhZ2Uob01lc3NhZ2UpO1xuXHRcdFx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMgPSB7XG5cdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogc1JldHJ5QWZ0ZXJNZXNzYWdlID8gc1JldHJ5QWZ0ZXJNZXNzYWdlICsgXCIgXCIgKyBvTWVzc2FnZS5nZXRNZXNzYWdlKCkgOiBvTWVzc2FnZS5nZXRNZXNzYWdlKCksXG5cdFx0XHRcdFx0XHRuYXZpZ2F0ZUJhY2tUb09yaWdpbjogdHJ1ZVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG1NZXNzYWdlUGFnZVBhcmFtZXRlcnM7XG5cdH1cblxuXHRfZ2V0U2Vjb25kc0JlZm9yZVJldHJ5QWZ0ZXIoZFJldHJ5QWZ0ZXI6IGFueSkge1xuXHRcdGNvbnN0IGRDdXJyZW50RGF0ZVRpbWUgPSBuZXcgRGF0ZSgpLFxuXHRcdFx0aUN1cnJlbnREYXRlVGltZUluTWlsbGlTZWNvbmRzID0gZEN1cnJlbnREYXRlVGltZS5nZXRUaW1lKCksXG5cdFx0XHRpUmV0cnlBZnRlckRhdGVUaW1lSW5NaWxsaVNlY29uZHMgPSBkUmV0cnlBZnRlci5nZXRUaW1lKCksXG5cdFx0XHRpU2Vjb25kc0JlZm9yZVJldHJ5ID0gKGlSZXRyeUFmdGVyRGF0ZVRpbWVJbk1pbGxpU2Vjb25kcyAtIGlDdXJyZW50RGF0ZVRpbWVJbk1pbGxpU2Vjb25kcykgLyAxMDAwO1xuXHRcdHJldHVybiBpU2Vjb25kc0JlZm9yZVJldHJ5O1xuXHR9XG5cdC8qKlxuXHQgKiBTaG93cyBhIG1lc3NhZ2UgcGFnZSBvciBhIG1lc3NhZ2UgZGlhbG9nIGJhc2VkIG9uIHRoZSBtZXNzYWdlcyBpbiB0aGUgbWVzc2FnZSBkaWFsb2cuXG5cdCAqIEBwYXJhbSBbbVBhcmFtZXRlcnNdXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBvbmNlIHRoZSB1c2VyIGNsb3NlcyB0aGUgbWVzc2FnZSBkaWFsb2cgb3Igd2hlbiBuYXZpZ2F0aW9uIHRvIHRoZSBtZXNzYWdlIHBhZ2UgaXMgY29tcGxldGUuIElmIHRoZXJlIGFyZSBubyBtZXNzYWdlc1xuXHQgKiB0byBiZSBzaG93biwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgaW1tZWRpYXRlbHlcblx0ICogQHByaXZhdGVcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRzaG93TWVzc2FnZXMobVBhcmFtZXRlcnM/OiBhbnkpIHtcblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuZ2V0VmlldygpKTtcblx0XHRsZXQgbU1lc3NhZ2VQYWdlUGFyYW1ldGVyczogYW55O1xuXHRcdGlmICghb0FwcENvbXBvbmVudC5faXNGY2xFbmFibGVkKCkpIHtcblx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMgPSB0aGlzLl9jaGVja05hdmlnYXRpb25Ub01lc3NhZ2VQYWdlKG1QYXJhbWV0ZXJzKTtcblx0XHR9XG5cdFx0aWYgKG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMpIHtcblx0XHRcdC8vIG5hdmlnYXRlIHRvIG1lc3NhZ2UgcGFnZS5cblx0XHRcdC8vIGhhbmRsZXIgYmVmb3JlIHBhZ2UgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQsIGZvciBleGFtcGxlIHRvIGNsb3NlIHRoZSBhY3Rpb24gcGFyYW1ldGVyIGRpYWxvZ1xuXHRcdFx0bVBhcmFtZXRlcnMgJiYgbVBhcmFtZXRlcnMubWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2sgJiYgbVBhcmFtZXRlcnMubWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2soKTtcblxuXHRcdFx0bU1lc3NhZ2VQYWdlUGFyYW1ldGVycy5oYW5kbGVTaGVsbEJhY2sgPSAhKG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLnNoZWxsQmFjayk7XG5cdFx0XHQvLyBUT0RPOiBVc2UgSWxsdXN0cmF0ZWQgbWVzc2FnZSBpbnN0ZWFkIG9mIG5vcm1hbCBtZXNzYWdlIHBhZ2Vcblx0XHRcdC8vIFRPRE86IFJldHVybiB2YWx1ZSBuZWVkcyB0byBwcm92aWRlZCBidXQgc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBwcml2YXRlIGZvciBub3cgaGVuY2Ugd2UgY2FuIHNraXAgdGhpcy5cblx0XHRcdHRoaXMucmVtb3ZlVHJhbnNpdGlvbk1lc3NhZ2VzKCk7XG5cdFx0XHRjb25zdCBvUmVzb3VyY2VCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpO1xuXHRcdFx0aWYgKHRoaXMuYmFzZS5fcm91dGluZykge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IGFueSwgcmVqZWN0OiBhbnkpID0+IHtcblx0XHRcdFx0XHQvLyB3ZSBoYXZlIHRvIHNldCBhIHRpbWVvdXQgdG8gYmUgYWJsZSB0byBhY2Nlc3MgdGhlIG1vc3QgcmVjZW50IG1lc3NhZ2VzXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHQvLyBUT0RPOiBncmVhdCBBUEkgLSB3aWxsIGJlIGNoYW5nZWQgbGF0ZXJcblx0XHRcdFx0XHRcdHRoaXMuYmFzZS5fcm91dGluZ1xuXHRcdFx0XHRcdFx0XHQubmF2aWdhdGVUb01lc3NhZ2VQYWdlKFxuXHRcdFx0XHRcdFx0XHRcdG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmlzRGF0YVJlY2VpdmVkRXJyb3Jcblx0XHRcdFx0XHRcdFx0XHRcdD8gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX0NPTU1PTl9TQVBGRV9EQVRBX1JFQ0VJVkVEX0VSUk9SXCIpXG5cdFx0XHRcdFx0XHRcdFx0XHQ6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NRVNTQUdFX0hBTkRMSU5HX1NBUEZFXzUwM19USVRMRVwiKSxcblx0XHRcdFx0XHRcdFx0XHRtTWVzc2FnZVBhZ2VQYXJhbWV0ZXJzXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0LnRoZW4ocmVzb2x2ZSlcblx0XHRcdFx0XHRcdFx0LmNhdGNoKHJlamVjdCk7XG5cdFx0XHRcdFx0fSwgMCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBuYXZpZ2F0ZSB0byBtZXNzYWdlIGRpYWxvZ1xuXHRcdFx0cmV0dXJuIHRoaXMuc2hvd01lc3NhZ2VEaWFsb2cobVBhcmFtZXRlcnMpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUhhbmRsZXI7XG4iXX0=
|
|
233
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1lc3NhZ2VIYW5kbGVyLnRzIl0sIm5hbWVzIjpbIk1lc3NhZ2VIYW5kbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJwcml2YXRlRXh0ZW5zaW9uIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiSW5zdGVhZCIsInB1YmxpY0V4dGVuc2lvbiIsImZpbmFsRXh0ZW5zaW9uIiwiZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2ciLCJzaG93TWVzc2FnZURpYWxvZyIsIm1QYXJhbWV0ZXJzIiwiY3VzdG9tTWVzc2FnZXMiLCJ1bmRlZmluZWQiLCJvT1BJbnRlcm5hbEJpbmRpbmdDb250ZXh0IiwiYmFzZSIsImdldFZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsImlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nT3BlbiIsInNldFByb3BlcnR5IiwiYlNob3dCb3VuZE1lc3NhZ2VzIiwib0JpbmRpbmdDb250ZXh0IiwiY29udGV4dCIsImJFdGFnTWVzc2FnZSIsImJIYXNFdGFnTWVzc2FnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2V0VGltZW91dCIsIm1lc3NhZ2VIYW5kbGluZyIsInNob3dVbmJvdW5kTWVzc2FnZXMiLCJzaG93RXJyb3JJbkFQRCIsImJTaG93TWVzc2FnZUJveCIsImNvbmN1cnJlbnRFZGl0RmxhZyIsInRoZW4iLCJjYXRjaCIsInJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyIsImtlZXBCb3VuZE1lc3NhZ2UiLCJrZWVwVW5ib3VuZE1lc3NhZ2UiLCJzUGF0aFRvQmVSZW1vdmVkIiwicmVtb3ZlQm91bmRUcmFuc2l0aW9uTWVzc2FnZXMiLCJyZW1vdmVVbmJvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzIiwiX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UiLCJhVW5ib3VuZE1lc3NhZ2VzIiwiZ2V0TWVzc2FnZXMiLCJiU2hvd0JvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzIiwiYUJvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzIiwiYUN1c3RvbU1lc3NhZ2VzIiwiYklzU3RpY2t5RWRpdE1vZGUiLCJDb21tb25VdGlscyIsImlzU3RpY2t5RWRpdE1vZGUiLCJtTWVzc2FnZVBhZ2VQYXJhbWV0ZXJzIiwiaXNEYXRhUmVjZWl2ZWRFcnJvciIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJuYXZpZ2F0ZUJhY2tUb09yaWdpbiIsImxlbmd0aCIsImlzSW5pdGlhbExvYWQ1MDNFcnJvciIsIm9NZXNzYWdlIiwib1RlY2huaWNhbERldGFpbHMiLCJnZXRUZWNobmljYWxEZXRhaWxzIiwic1JldHJ5QWZ0ZXJNZXNzYWdlIiwiaHR0cFN0YXR1cyIsInJldHJ5QWZ0ZXIiLCJpU2Vjb25kc0JlZm9yZVJldHJ5IiwiX2dldFNlY29uZHNCZWZvcmVSZXRyeUFmdGVyIiwiZ2V0UmV0cnlBZnRlck1lc3NhZ2UiLCJnZXRNZXNzYWdlIiwiZFJldHJ5QWZ0ZXIiLCJkQ3VycmVudERhdGVUaW1lIiwiRGF0ZSIsImlDdXJyZW50RGF0ZVRpbWVJbk1pbGxpU2Vjb25kcyIsImdldFRpbWUiLCJpUmV0cnlBZnRlckRhdGVUaW1lSW5NaWxsaVNlY29uZHMiLCJzaG93TWVzc2FnZXMiLCJvQXBwQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50IiwiX2lzRmNsRW5hYmxlZCIsIm1lc3NhZ2VQYWdlTmF2aWdhdGlvbkNhbGxiYWNrIiwiaGFuZGxlU2hlbGxCYWNrIiwic2hlbGxCYWNrIiwib1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIl9yb3V0aW5nIiwibmF2aWdhdGVUb01lc3NhZ2VQYWdlIiwiZ2V0VGV4dCIsIkNvbnRyb2xsZXJFeHRlbnNpb24iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsYyxXQURMQyxjQUFjLENBQUMsaURBQUQsQyxVQWViQyxnQkFBZ0IsRSxVQUNoQkMsVUFBVSxD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LFdBZE0sQ0FBUDtBQWVBO0FBQ0QsT0E3QkQsTUE2Qk87QUFDTjtBQUNBLGVBQU8sS0FBS2pCLGlCQUFMLENBQXVCQyxXQUF2QixDQUFQO0FBQ0E7QUFDRCxLOzs7SUFoTjJCNEUsbUI7U0FrTmR0RixjIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgbWVzc2FnZUhhbmRsaW5nIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9tZXNzYWdlSGFuZGxlci9tZXNzYWdlSGFuZGxpbmdcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBmaW5hbEV4dGVuc2lvbiwgcHJpdmF0ZUV4dGVuc2lvbiwgcHVibGljRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0eXBlIFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCBDb250cm9sbGVyRXh0ZW5zaW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IE92ZXJyaWRlRXhlY3V0aW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvT3ZlcnJpZGVFeGVjdXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQ29yZUV4IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG4vKipcbiAqIEEgY29udHJvbGxlciBleHRlbnNpb24gb2ZmZXJpbmcgbWVzc2FnZSBoYW5kbGluZy5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAZXhwZXJpbWVudGFsIEFzIG9mIHZlcnNpb24gMS45MC4wXG4gKiBAc2luY2UgMS45MC4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLk1lc3NhZ2VIYW5kbGVyXCIpXG5jbGFzcyBNZXNzYWdlSGFuZGxlciBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcm90ZWN0ZWQgYmFzZSE6IFBhZ2VDb250cm9sbGVyO1xuXHQvKipcblx0ICogRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBib3VuZCBtZXNzYWdlcyBhcmUgc2hvd24gaW4gdGhlIG1lc3NhZ2UgZGlhbG9nLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIGluZGl2aWR1YWxseSBvdmVycmlkZGVuIGJ5IGNvbnN1bWluZyBjb250cm9sbGVycywgYnV0IG5vdCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uSW5zdGVhZH0uXG5cdCAqXG5cdCAqIElmIHRoZSBib3VuZCBtZXNzYWdlcyBhcmUgc2hvd24gdG8gdGhlIHVzZXIgd2l0aCBhIGRpZmZlcmVudCBjb250cm9sIGxpa2UgdGhlIChUT0RPOkxpbmspIE1lc3NhZ2VCdXR0b25cblx0ICogdGhpcyBtZXRob2QgaGFzIHRvIGJlIG92ZXJyaWRkZW4uXG5cdCAqXG5cdCAqIEByZXR1cm5zIERldGVybWluZXMgd2hldGhlciBvciBub3QgYm91bmQgbWVzc2FnZXMgYXJlIHNob3duIGluIHRoZSBtZXNzYWdlIGRpYWxvZy5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdEBwcml2YXRlRXh0ZW5zaW9uKClcblx0QGV4dGVuc2libGUoT3ZlcnJpZGVFeGVjdXRpb24uSW5zdGVhZClcblx0Z2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2coKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvKipcblx0ICogU2hvd3MgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIHRyYW5zaXRpb24gbWVzc2FnZXMgaWYgdGhlcmUgYXJlIGFueS5cblx0ICogVGhlIG1lc3NhZ2UgZGlhbG9nIGlzIHNob3duIGFzIGEgbW9kYWwgZGlhbG9nLiBPbmNlIHRoZSB1c2VyIGNvbmZpcm1zIHRoZSBkaWFsb2csIGFsbCB0cmFuc2l0aW9uIG1lc3NhZ2VzXG5cdCAqIGFyZSByZW1vdmVkIGZyb20gdGhlIG1lc3NhZ2UgbW9kZWwuIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbWVzc2FnZSwgYSBsaXN0IG9mIG1lc3NhZ2VzIGlzIHNob3duLiBUaGUgdXNlclxuXHQgKiBjYW4gZmlsdGVyIG9uIG1lc3NhZ2UgdHlwZXMgYW5kIGNhbiBkaXNwbGF5IGRldGFpbHMgYXMgd2VsbCBhcyB0aGUgbG9uZyB0ZXh0LiBJZiB0aGVyZSBpcyBvbmUgbWVzc2FnZSxcblx0ICogdGhlIGRpYWxvZyBpbW1lZGlhdGVseSBzaG93cyB0aGUgZGV0YWlscyBvZiB0aGUgbWVzc2FnZS4gSWYgdGhlcmUgaXMganVzdCBvbmUgc3VjY2VzcyBtZXNzYWdlLCBhIG1lc3NhZ2Vcblx0ICogdG9hc3QgaXMgc2hvd24gaW5zdGVhZC5cblx0ICpcblx0ICogQHBhcmFtIG1QYXJhbWV0ZXJzIFBSSVZBVEVcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgb25jZSB0aGUgdXNlciBjbG9zZXMgdGhlIGRpYWxvZy4gSWYgdGhlcmUgYXJlIG5vIG1lc3NhZ2VzXG5cdCAqIHRvIGJlIHNob3duLCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZCBpbW1lZGlhdGVseVxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWVzc2FnZUhhbmRsZXIjc2hvd01lc3NhZ2VEaWFsb2dcblx0ICogQHB1YmxpY1xuXHQgKiBAZXhwZXJpbWVudGFsIEFzIG9mIHZlcnNpb24gMS45MC4wXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRzaG93TWVzc2FnZURpYWxvZyhtUGFyYW1ldGVycz86IGFueSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGN1c3RvbU1lc3NhZ2VzID0gbVBhcmFtZXRlcnMgJiYgbVBhcmFtZXRlcnMuY3VzdG9tTWVzc2FnZXMgPyBtUGFyYW1ldGVycy5jdXN0b21NZXNzYWdlcyA6IHVuZGVmaW5lZCxcblx0XHRcdG9PUEludGVybmFsQmluZGluZ0NvbnRleHQgPSB0aGlzLmJhc2UuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Ly8gc2V0IGlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nIG9wZW4gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBpbiB0aGUgY29udHJvbGxlciBleHRlbnNpb24gdG8gZGVjaWRlIHdoZXRoZXIgbWVzc2FnZSBkaWFsb2cgc2hvdWxkIG9wZW4gb3Igbm90XG5cdFx0aWYgKG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nT3BlbiAmJiBvT1BJbnRlcm5hbEJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRvT1BJbnRlcm5hbEJpbmRpbmdDb250ZXh0LnNldFByb3BlcnR5KFwiaXNBY3Rpb25QYXJhbWV0ZXJEaWFsb2dPcGVuXCIsIHRydWUpO1xuXHRcdH1cblx0XHRjb25zdCBiU2hvd0JvdW5kTWVzc2FnZXMgPSB0aGlzLmdldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nKCk7XG5cdFx0Y29uc3Qgb0JpbmRpbmdDb250ZXh0ID0gbVBhcmFtZXRlcnMgJiYgbVBhcmFtZXRlcnMuY29udGV4dCA/IG1QYXJhbWV0ZXJzLmNvbnRleHQgOiB0aGlzLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdGNvbnN0IGJFdGFnTWVzc2FnZSA9IG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmJIYXNFdGFnTWVzc2FnZTtcblx0XHQvLyByZXNldCAgaXNBY3Rpb25QYXJhbWV0ZXJEaWFsb2dPcGVuXG5cdFx0Ly8gY2Fubm90IGRvIHRoaXMgb3BlcmF0aW9ucy5qcyBzaW5jZSBpdCBpcyBub3QgYXdhcmUgb2YgdGhlIHZpZXdcblx0XHRpZiAob09QSW50ZXJuYWxCaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0b09QSW50ZXJuYWxCaW5kaW5nQ29udGV4dC5zZXRQcm9wZXJ0eShcImlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nT3BlblwiLCBmYWxzZSk7XG5cdFx0fVxuXHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0Ly8gd2UgaGF2ZSB0byBzZXQgYSB0aW1lb3V0IHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBtb3N0IHJlY2VudCBtZXNzYWdlc1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdC8vIFRPRE86IGdyZWF0IEFQSSAtIHdpbGwgYmUgY2hhbmdlZCBsYXRlclxuXHRcdFx0XHRtZXNzYWdlSGFuZGxpbmdcblx0XHRcdFx0XHQuc2hvd1VuYm91bmRNZXNzYWdlcyhcblx0XHRcdFx0XHRcdGN1c3RvbU1lc3NhZ2VzLFxuXHRcdFx0XHRcdFx0b0JpbmRpbmdDb250ZXh0LFxuXHRcdFx0XHRcdFx0YkV0YWdNZXNzYWdlLFxuXHRcdFx0XHRcdFx0YlNob3dCb3VuZE1lc3NhZ2VzLFxuXHRcdFx0XHRcdFx0bVBhcmFtZXRlcnM/LnNob3dFcnJvckluQVBELFxuXHRcdFx0XHRcdFx0bVBhcmFtZXRlcnM/LmJTaG93TWVzc2FnZUJveCxcblx0XHRcdFx0XHRcdG1QYXJhbWV0ZXJzPy5jb25jdXJyZW50RWRpdEZsYWdcblx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0LnRoZW4ocmVzb2x2ZSlcblx0XHRcdFx0XHQuY2F0Y2gocmVqZWN0KTtcblx0XHRcdH0sIDApO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFlvdSBjYW4gcmVtb3ZlIHRoZSBleGlzdGluZyB0cmFuc2l0aW9uIG1lc3NhZ2UgZnJvbSB0aGUgbWVzc2FnZSBtb2RlbCB3aXRoIHRoaXMgbWV0aG9kLlxuXHQgKiBXaXRoIGV2ZXJ5IHVzZXIgaW50ZXJhY3Rpb24gdGhhdCBjYXVzZXMgc2VydmVyIGNvbW11bmljYXRpb24gKGxpa2UgY2xpY2tpbmcgb24gYW4gYWN0aW9uLCBjaGFuZ2luZyBkYXRhKSxcblx0ICogdGhpcyBtZXRob2QgcmVtb3ZlcyB0aGUgZXhpc3RpbmcgdHJhbnNpdGlvbiBtZXNzYWdlcyBmcm9tIHRoZSBtZXNzYWdlIG1vZGVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gW2tlZXBCb3VuZE1lc3NhZ2VdIENoZWNrcyBpZiB0aGUgYm91bmQgdHJhbnNpdGlvbiBtZXNzYWdlcyBhcmUgbm90IHRvIGJlIHJlbW92ZWRcblx0ICogQHBhcmFtIGtlZXBVbmJvdW5kTWVzc2FnZVxuXHQgKiBAcGFyYW0gc1BhdGhUb0JlUmVtb3ZlZFxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWVzc2FnZUhhbmRsZXIjcmVtb3Zlc1RyYW5zaXRpb25NZXNzYWdlc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdHJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyhrZWVwQm91bmRNZXNzYWdlPzogYm9vbGVhbiwga2VlcFVuYm91bmRNZXNzYWdlPzogYm9vbGVhbiwgc1BhdGhUb0JlUmVtb3ZlZD86IHN0cmluZykge1xuXHRcdGlmICgha2VlcEJvdW5kTWVzc2FnZSkge1xuXHRcdFx0bWVzc2FnZUhhbmRsaW5nLnJlbW92ZUJvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzKHNQYXRoVG9CZVJlbW92ZWQpO1xuXHRcdH1cblx0XHRpZiAoIWtlZXBVbmJvdW5kTWVzc2FnZSkge1xuXHRcdFx0bWVzc2FnZUhhbmRsaW5nLnJlbW92ZVVuYm91bmRUcmFuc2l0aW9uTWVzc2FnZXMoKTtcblx0XHR9XG5cdH1cblxuXHRfY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZShtUGFyYW1ldGVyczogYW55KSB7XG5cdFx0Y29uc3QgYVVuYm91bmRNZXNzYWdlcyA9IG1lc3NhZ2VIYW5kbGluZy5nZXRNZXNzYWdlcygpO1xuXHRcdGNvbnN0IGJTaG93Qm91bmRUcmFuc2l0aW9uTWVzc2FnZXMgPSB0aGlzLmdldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nKCk7XG5cdFx0Y29uc3QgYUJvdW5kVHJhbnNpdGlvbk1lc3NhZ2VzID0gYlNob3dCb3VuZFRyYW5zaXRpb25NZXNzYWdlcyA/IG1lc3NhZ2VIYW5kbGluZy5nZXRNZXNzYWdlcyh0cnVlLCB0cnVlKSA6IFtdO1xuXHRcdGNvbnN0IGFDdXN0b21NZXNzYWdlcyA9IG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLmN1c3RvbU1lc3NhZ2VzID8gbVBhcmFtZXRlcnMuY3VzdG9tTWVzc2FnZXMgOiBbXTtcblx0XHRjb25zdCBiSXNTdGlja3lFZGl0TW9kZSA9IENvbW1vblV0aWxzLmlzU3RpY2t5RWRpdE1vZGUodGhpcy5iYXNlLmdldFZpZXcoKSk7XG5cdFx0bGV0IG1NZXNzYWdlUGFnZVBhcmFtZXRlcnM7XG5cblx0XHQvLyBUT0RPOiBTdGljayBtb2RlIGNoZWNrIGlzIG9rYXkgYXMgbG9uZyBhcyB0aGUgY29udHJvbGxlciBleHRlbnNpb24gaXMgdXNlZCB3aXRoIHNhcC5mZS5jb3JlIGFuZCBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQuXG5cdFx0Ly8gSXQgbWlnaHQgYmUgYmV0dGVyIHRvIHByb3ZpZGUgYW4gZXh0ZW5zaW9uIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgY29udHJvbGxlciBleHRlbnNpb24gdG8gcHJvdmlkZSB0aGlzIHZhbHVlLlxuXG5cdFx0Ly8gVGhlIG1lc3NhZ2UgcGFnZSBjYW4gb25seSBzaG93IDEgbWVzc2FnZSB0b2RheSwgc28gd2UgbmF2aWdhdGUgdG8gaXQgd2hlbiA6XG5cdFx0Ly8gMS4gVGhlcmUgYXJlIG5vIGJvdW5kIHRyYW5zaXRpb24gbWVzc2FnZXMgdG8gc2hvdyxcblx0XHQvLyAyLiBUaGVyZSBhcmUgbm8gY3VzdG9tIG1lc3NhZ2VzIHRvIHNob3csICZcblx0XHQvLyAzLiBUaGVyZSBpcyBleGFjdGx5IDEgdW5ib3VuZCBtZXNzYWdlIGluIHRoZSBtZXNzYWdlIG1vZGVsIHdpdGggc3RhdHVzQ29kZT01MDMgYW5kIHJldHJ5LUFmdGVyIGF2YWlsYWJsZVxuXHRcdC8vIDQuIHJldHJ5QWZ0ZXIgaXMgZ3JlYXRlciB0aGFuIDEyMCBzZWNvbmRzXG5cdFx0Ly9cblx0XHQvLyBJbiBBZGRpdGlvbiwgbmF2aWdhdGluZyBhd2F5IGZyb20gYSBzdGlja3kgc2Vzc2lvbiB3aWxsIGRlc3Ryb3kgdGhlIHNlc3Npb24gc28gd2UgZG8gbm90IG5hdmlnYXRlIHRvIG1lc3NhZ2UgcGFnZSBmb3Igbm93LlxuXHRcdC8vIFRPRE86IGNoZWNrIGlmIG5hdmlnYXRpb24gc2hvdWxkIGJlIGRvbmUgaW4gc3RpY2t5IGVkaXQgbW9kZS5cblx0XHRpZiAobVBhcmFtZXRlcnMgJiYgbVBhcmFtZXRlcnMuaXNEYXRhUmVjZWl2ZWRFcnJvcikge1xuXHRcdFx0bU1lc3NhZ2VQYWdlUGFyYW1ldGVycyA9IHtcblx0XHRcdFx0dGl0bGU6IG1QYXJhbWV0ZXJzLnRpdGxlLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogbVBhcmFtZXRlcnMuZGVzY3JpcHRpb24sXG5cdFx0XHRcdG5hdmlnYXRlQmFja1RvT3JpZ2luOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHQhYklzU3RpY2t5RWRpdE1vZGUgJiZcblx0XHRcdCFhQm91bmRUcmFuc2l0aW9uTWVzc2FnZXMubGVuZ3RoICYmXG5cdFx0XHQhYUN1c3RvbU1lc3NhZ2VzLmxlbmd0aCAmJlxuXHRcdFx0KGFVbmJvdW5kTWVzc2FnZXMubGVuZ3RoID09PSAxIHx8IChtUGFyYW1ldGVycyAmJiBtUGFyYW1ldGVycy5pc0luaXRpYWxMb2FkNTAzRXJyb3IpKVxuXHRcdCkge1xuXHRcdFx0Y29uc3Qgb01lc3NhZ2UgPSBhVW5ib3VuZE1lc3NhZ2VzWzBdLFxuXHRcdFx0XHRvVGVjaG5pY2FsRGV0YWlscyA9IG9NZXNzYWdlLmdldFRlY2huaWNhbERldGFpbHMoKTtcblx0XHRcdGxldCBzUmV0cnlBZnRlck1lc3NhZ2U7XG5cdFx0XHRpZiAob1RlY2huaWNhbERldGFpbHMgJiYgb1RlY2huaWNhbERldGFpbHMuaHR0cFN0YXR1cyA9PT0gNTAzKSB7XG5cdFx0XHRcdGlmIChvVGVjaG5pY2FsRGV0YWlscy5yZXRyeUFmdGVyKSB7XG5cdFx0XHRcdFx0Y29uc3QgaVNlY29uZHNCZWZvcmVSZXRyeSA9IHRoaXMuX2dldFNlY29uZHNCZWZvcmVSZXRyeUFmdGVyKG9UZWNobmljYWxEZXRhaWxzLnJldHJ5QWZ0ZXIpO1xuXHRcdFx0XHRcdGlmIChpU2Vjb25kc0JlZm9yZVJldHJ5ID4gMTIwKSB7XG5cdFx0XHRcdFx0XHQvLyBUT0RPOiBGb3Igbm93IGxldCdzIGtlZXAgZ2V0UmV0cnlBZnRlck1lc3NhZ2UgaW4gbWVzc2FnZUhhbmRsaW5nIGJlY2F1c2UgaXQgaXMgbmVlZGVkIGFsc28gYnkgdGhlIGRpYWxvZy5cblx0XHRcdFx0XHRcdC8vIFdlIGNhbiBwbGFuIHRvIG1vdmUgdGhpcyBhbmQgdGhlIGRpYWxvZyBsb2dpYyBib3RoIHRvIG1lc3NhZ2VIYW5kbGVyIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGlmIHJlcXVpcmVkLlxuXHRcdFx0XHRcdFx0c1JldHJ5QWZ0ZXJNZXNzYWdlID0gbWVzc2FnZUhhbmRsaW5nLmdldFJldHJ5QWZ0ZXJNZXNzYWdlKG9NZXNzYWdlKTtcblx0XHRcdFx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMgPSB7XG5cdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uOiBzUmV0cnlBZnRlck1lc3NhZ2UgPyBgJHtzUmV0cnlBZnRlck1lc3NhZ2V9ICR7b01lc3NhZ2UuZ2V0TWVzc2FnZSgpfWAgOiBvTWVzc2FnZS5nZXRNZXNzYWdlKCksXG5cdFx0XHRcdFx0XHRcdG5hdmlnYXRlQmFja1RvT3JpZ2luOiB0cnVlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzUmV0cnlBZnRlck1lc3NhZ2UgPSBtZXNzYWdlSGFuZGxpbmcuZ2V0UmV0cnlBZnRlck1lc3NhZ2Uob01lc3NhZ2UpO1xuXHRcdFx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMgPSB7XG5cdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogc1JldHJ5QWZ0ZXJNZXNzYWdlID8gYCR7c1JldHJ5QWZ0ZXJNZXNzYWdlfSAke29NZXNzYWdlLmdldE1lc3NhZ2UoKX1gIDogb01lc3NhZ2UuZ2V0TWVzc2FnZSgpLFxuXHRcdFx0XHRcdFx0bmF2aWdhdGVCYWNrVG9PcmlnaW46IHRydWVcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBtTWVzc2FnZVBhZ2VQYXJhbWV0ZXJzO1xuXHR9XG5cblx0X2dldFNlY29uZHNCZWZvcmVSZXRyeUFmdGVyKGRSZXRyeUFmdGVyOiBhbnkpIHtcblx0XHRjb25zdCBkQ3VycmVudERhdGVUaW1lID0gbmV3IERhdGUoKSxcblx0XHRcdGlDdXJyZW50RGF0ZVRpbWVJbk1pbGxpU2Vjb25kcyA9IGRDdXJyZW50RGF0ZVRpbWUuZ2V0VGltZSgpLFxuXHRcdFx0aVJldHJ5QWZ0ZXJEYXRlVGltZUluTWlsbGlTZWNvbmRzID0gZFJldHJ5QWZ0ZXIuZ2V0VGltZSgpLFxuXHRcdFx0aVNlY29uZHNCZWZvcmVSZXRyeSA9IChpUmV0cnlBZnRlckRhdGVUaW1lSW5NaWxsaVNlY29uZHMgLSBpQ3VycmVudERhdGVUaW1lSW5NaWxsaVNlY29uZHMpIC8gMTAwMDtcblx0XHRyZXR1cm4gaVNlY29uZHNCZWZvcmVSZXRyeTtcblx0fVxuXHQvKipcblx0ICogU2hvd3MgYSBtZXNzYWdlIHBhZ2Ugb3IgYSBtZXNzYWdlIGRpYWxvZyBiYXNlZCBvbiB0aGUgbWVzc2FnZXMgaW4gdGhlIG1lc3NhZ2UgZGlhbG9nLlxuXHQgKlxuXHQgKiBAcGFyYW0gW21QYXJhbWV0ZXJzXVxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBvbmNlIHRoZSB1c2VyIGNsb3NlcyB0aGUgbWVzc2FnZSBkaWFsb2cgb3Igd2hlbiBuYXZpZ2F0aW9uIHRvIHRoZSBtZXNzYWdlIHBhZ2UgaXMgY29tcGxldGUuIElmIHRoZXJlIGFyZSBubyBtZXNzYWdlc1xuXHQgKiB0byBiZSBzaG93biwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgaW1tZWRpYXRlbHlcblx0ICogQHByaXZhdGVcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRzaG93TWVzc2FnZXMobVBhcmFtZXRlcnM/OiBhbnkpIHtcblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuZ2V0VmlldygpKTtcblx0XHRsZXQgbU1lc3NhZ2VQYWdlUGFyYW1ldGVyczogYW55O1xuXHRcdGlmICghb0FwcENvbXBvbmVudC5faXNGY2xFbmFibGVkKCkpIHtcblx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMgPSB0aGlzLl9jaGVja05hdmlnYXRpb25Ub01lc3NhZ2VQYWdlKG1QYXJhbWV0ZXJzKTtcblx0XHR9XG5cdFx0aWYgKG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMpIHtcblx0XHRcdC8vIG5hdmlnYXRlIHRvIG1lc3NhZ2UgcGFnZS5cblx0XHRcdC8vIGhhbmRsZXIgYmVmb3JlIHBhZ2UgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQsIGZvciBleGFtcGxlIHRvIGNsb3NlIHRoZSBhY3Rpb24gcGFyYW1ldGVyIGRpYWxvZ1xuXHRcdFx0aWYgKG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLm1lc3NhZ2VQYWdlTmF2aWdhdGlvbkNhbGxiYWNrKSB7XG5cdFx0XHRcdG1QYXJhbWV0ZXJzLm1lc3NhZ2VQYWdlTmF2aWdhdGlvbkNhbGxiYWNrKCk7XG5cdFx0XHR9XG5cblx0XHRcdG1NZXNzYWdlUGFnZVBhcmFtZXRlcnMuaGFuZGxlU2hlbGxCYWNrID0gIShtUGFyYW1ldGVycyAmJiBtUGFyYW1ldGVycy5zaGVsbEJhY2spO1xuXHRcdFx0Ly8gVE9ETzogVXNlIElsbHVzdHJhdGVkIG1lc3NhZ2UgaW5zdGVhZCBvZiBub3JtYWwgbWVzc2FnZSBwYWdlXG5cdFx0XHQvLyBUT0RPOiBSZXR1cm4gdmFsdWUgbmVlZHMgdG8gcHJvdmlkZWQgYnV0IHNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgcHJpdmF0ZSBmb3Igbm93IGhlbmNlIHdlIGNhbiBza2lwIHRoaXMuXG5cdFx0XHR0aGlzLnJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcygpO1xuXHRcdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gKENvcmUgYXMgQ29yZUV4KS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUuY29yZVwiKTtcblx0XHRcdGlmICh0aGlzLmJhc2UuX3JvdXRpbmcpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBhbnksIHJlamVjdDogYW55KSA9PiB7XG5cdFx0XHRcdFx0Ly8gd2UgaGF2ZSB0byBzZXQgYSB0aW1lb3V0IHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBtb3N0IHJlY2VudCBtZXNzYWdlc1xuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0Ly8gVE9ETzogZ3JlYXQgQVBJIC0gd2lsbCBiZSBjaGFuZ2VkIGxhdGVyXG5cdFx0XHRcdFx0XHR0aGlzLmJhc2UuX3JvdXRpbmdcblx0XHRcdFx0XHRcdFx0Lm5hdmlnYXRlVG9NZXNzYWdlUGFnZShcblx0XHRcdFx0XHRcdFx0XHRtUGFyYW1ldGVycyAmJiBtUGFyYW1ldGVycy5pc0RhdGFSZWNlaXZlZEVycm9yXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19DT01NT05fU0FQRkVfREFUQV9SRUNFSVZFRF9FUlJPUlwiKVxuXHRcdFx0XHRcdFx0XHRcdFx0OiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUVTU0FHRV9IQU5ETElOR19TQVBGRV81MDNfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRcdFx0bU1lc3NhZ2VQYWdlUGFyYW1ldGVyc1xuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdC50aGVuKHJlc29sdmUpXG5cdFx0XHRcdFx0XHRcdC5jYXRjaChyZWplY3QpO1xuXHRcdFx0XHRcdH0sIDApO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gbmF2aWdhdGUgdG8gbWVzc2FnZSBkaWFsb2dcblx0XHRcdHJldHVybiB0aGlzLnNob3dNZXNzYWdlRGlhbG9nKG1QYXJhbWV0ZXJzKTtcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VIYW5kbGVyO1xuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
2
2
|
import messageHandling from "sap/fe/core/controllerextensions/messageHandler/messageHandling";
|
|
3
3
|
import { defineUI5Class, extensible, finalExtension, privateExtension, publicExtension } from "sap/fe/core/helpers/ClassSupport";
|
|
4
|
-
import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
5
|
-
import PageController from "sap/fe/core/PageController";
|
|
4
|
+
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
5
|
+
import type PageController from "sap/fe/core/PageController";
|
|
6
6
|
import Core from "sap/ui/core/Core";
|
|
7
7
|
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
8
8
|
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
9
|
-
import { CoreEx } from "types/extension_types";
|
|
9
|
+
import type { CoreEx } from "types/extension_types";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A controller extension offering message handling.
|
|
@@ -28,7 +28,7 @@ class MessageHandler extends ControllerExtension {
|
|
|
28
28
|
* If the bound messages are shown to the user with a different control like the (TODO:Link) MessageButton
|
|
29
29
|
* this method has to be overridden.
|
|
30
30
|
*
|
|
31
|
-
* @returns
|
|
31
|
+
* @returns Determines whether or not bound messages are shown in the message dialog.
|
|
32
32
|
* @private
|
|
33
33
|
*/
|
|
34
34
|
@privateExtension()
|
|
@@ -46,7 +46,7 @@ class MessageHandler extends ControllerExtension {
|
|
|
46
46
|
* toast is shown instead.
|
|
47
47
|
*
|
|
48
48
|
* @param mParameters PRIVATE
|
|
49
|
-
* @returns
|
|
49
|
+
* @returns A promise that is resolved once the user closes the dialog. If there are no messages
|
|
50
50
|
* to be shown, the promise is resolved immediately
|
|
51
51
|
* @alias sap.fe.core.controllerextensions.MessageHandler#showMessageDialog
|
|
52
52
|
* @public
|
|
@@ -75,7 +75,15 @@ class MessageHandler extends ControllerExtension {
|
|
|
75
75
|
setTimeout(function () {
|
|
76
76
|
// TODO: great API - will be changed later
|
|
77
77
|
messageHandling
|
|
78
|
-
.showUnboundMessages(
|
|
78
|
+
.showUnboundMessages(
|
|
79
|
+
customMessages,
|
|
80
|
+
oBindingContext,
|
|
81
|
+
bEtagMessage,
|
|
82
|
+
bShowBoundMessages,
|
|
83
|
+
mParameters?.showErrorInAPD,
|
|
84
|
+
mParameters?.bShowMessageBox,
|
|
85
|
+
mParameters?.concurrentEditFlag
|
|
86
|
+
)
|
|
79
87
|
.then(resolve)
|
|
80
88
|
.catch(reject);
|
|
81
89
|
}, 0);
|
|
@@ -86,17 +94,21 @@ class MessageHandler extends ControllerExtension {
|
|
|
86
94
|
* You can remove the existing transition message from the message model with this method.
|
|
87
95
|
* With every user interaction that causes server communication (like clicking on an action, changing data),
|
|
88
96
|
* this method removes the existing transition messages from the message model.
|
|
89
|
-
* @param {boolean} [keepBoundMessage] Checks if the bound transition messages are not to be removed
|
|
90
97
|
*
|
|
98
|
+
* @param [keepBoundMessage] Checks if the bound transition messages are not to be removed
|
|
99
|
+
* @param keepUnboundMessage
|
|
100
|
+
* @param sPathToBeRemoved
|
|
91
101
|
* @alias sap.fe.core.controllerextensions.MessageHandler#removesTransitionMessages
|
|
92
102
|
* @private
|
|
93
103
|
*/
|
|
94
104
|
@publicExtension()
|
|
95
|
-
removeTransitionMessages(keepBoundMessage?: boolean) {
|
|
105
|
+
removeTransitionMessages(keepBoundMessage?: boolean, keepUnboundMessage?: boolean, sPathToBeRemoved?: string) {
|
|
96
106
|
if (!keepBoundMessage) {
|
|
97
|
-
messageHandling.removeBoundTransitionMessages();
|
|
107
|
+
messageHandling.removeBoundTransitionMessages(sPathToBeRemoved);
|
|
108
|
+
}
|
|
109
|
+
if (!keepUnboundMessage) {
|
|
110
|
+
messageHandling.removeUnboundTransitionMessages();
|
|
98
111
|
}
|
|
99
|
-
messageHandling.removeUnboundTransitionMessages();
|
|
100
112
|
}
|
|
101
113
|
|
|
102
114
|
_checkNavigationToMessagePage(mParameters: any) {
|
|
@@ -141,14 +153,14 @@ class MessageHandler extends ControllerExtension {
|
|
|
141
153
|
// We can plan to move this and the dialog logic both to messageHandler controller extension if required.
|
|
142
154
|
sRetryAfterMessage = messageHandling.getRetryAfterMessage(oMessage);
|
|
143
155
|
mMessagePageParameters = {
|
|
144
|
-
description: sRetryAfterMessage ? sRetryAfterMessage
|
|
156
|
+
description: sRetryAfterMessage ? `${sRetryAfterMessage} ${oMessage.getMessage()}` : oMessage.getMessage(),
|
|
145
157
|
navigateBackToOrigin: true
|
|
146
158
|
};
|
|
147
159
|
}
|
|
148
160
|
} else {
|
|
149
161
|
sRetryAfterMessage = messageHandling.getRetryAfterMessage(oMessage);
|
|
150
162
|
mMessagePageParameters = {
|
|
151
|
-
description: sRetryAfterMessage ? sRetryAfterMessage
|
|
163
|
+
description: sRetryAfterMessage ? `${sRetryAfterMessage} ${oMessage.getMessage()}` : oMessage.getMessage(),
|
|
152
164
|
navigateBackToOrigin: true
|
|
153
165
|
};
|
|
154
166
|
}
|
|
@@ -166,8 +178,9 @@ class MessageHandler extends ControllerExtension {
|
|
|
166
178
|
}
|
|
167
179
|
/**
|
|
168
180
|
* Shows a message page or a message dialog based on the messages in the message dialog.
|
|
181
|
+
*
|
|
169
182
|
* @param [mParameters]
|
|
170
|
-
* @returns
|
|
183
|
+
* @returns A promise that is resolved once the user closes the message dialog or when navigation to the message page is complete. If there are no messages
|
|
171
184
|
* to be shown, the promise is resolved immediately
|
|
172
185
|
* @private
|
|
173
186
|
*/
|
|
@@ -182,7 +195,9 @@ class MessageHandler extends ControllerExtension {
|
|
|
182
195
|
if (mMessagePageParameters) {
|
|
183
196
|
// navigate to message page.
|
|
184
197
|
// handler before page navigation is triggered, for example to close the action parameter dialog
|
|
185
|
-
|
|
198
|
+
if (mParameters && mParameters.messagePageNavigationCallback) {
|
|
199
|
+
mParameters.messagePageNavigationCallback();
|
|
200
|
+
}
|
|
186
201
|
|
|
187
202
|
mMessagePageParameters.handleShellBack = !(mParameters && mParameters.shellBack);
|
|
188
203
|
// TODO: Use Illustrated message instead of normal message page
|