@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
|
@@ -272,7 +272,7 @@ sap.ui.define(["sap/base/util/merge", "sap/base/util/ObjectPath", "sap/base/util
|
|
|
272
272
|
};
|
|
273
273
|
}
|
|
274
274
|
/**
|
|
275
|
-
* Indicates that the following method should also be exposed statically so we can call it from
|
|
275
|
+
* Indicates that the following method should also be exposed statically so we can call it from XML.
|
|
276
276
|
*
|
|
277
277
|
* @returns The decorated method
|
|
278
278
|
*/
|
|
@@ -285,13 +285,19 @@ sap.ui.define(["sap/base/util/merge", "sap/base/util/ObjectPath", "sap/base/util
|
|
|
285
285
|
var currentConstructor = target.constructor;
|
|
286
286
|
|
|
287
287
|
currentConstructor[propertykey.toString()] = function () {
|
|
288
|
-
var
|
|
289
|
-
|
|
288
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
289
|
+
args[_key] = arguments[_key];
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (args && args.length) {
|
|
293
|
+
var currentTarget = currentConstructor.getAPI(args[0]);
|
|
294
|
+
currentTarget[propertykey.toString()].apply(currentTarget, args);
|
|
295
|
+
}
|
|
290
296
|
};
|
|
291
297
|
};
|
|
292
298
|
}
|
|
293
299
|
/**
|
|
294
|
-
* Indicates that the following class should define a
|
|
300
|
+
* Indicates that the following class should define a UI5 control of the specified name.
|
|
295
301
|
*
|
|
296
302
|
* @param sTarget The fully qualified name of the macro API
|
|
297
303
|
* @param metadataDefinition Inline metadata definition
|
|
@@ -382,11 +388,14 @@ sap.ui.define(["sap/base/util/merge", "sap/base/util/ObjectPath", "sap/base/util
|
|
|
382
388
|
output.prototype.init = function () {
|
|
383
389
|
var _this = this;
|
|
384
390
|
|
|
385
|
-
|
|
386
|
-
args
|
|
391
|
+
if (fnInit) {
|
|
392
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
393
|
+
args[_key2] = arguments[_key2];
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
fnInit.apply(this, args);
|
|
387
397
|
}
|
|
388
398
|
|
|
389
|
-
fnInit && fnInit.apply(this, args);
|
|
390
399
|
this.metadata = obj.metadata;
|
|
391
400
|
|
|
392
401
|
if (obj.metadata.properties) {
|
|
@@ -445,14 +454,14 @@ sap.ui.define(["sap/base/util/merge", "sap/base/util/ObjectPath", "sap/base/util
|
|
|
445
454
|
var pol = {};
|
|
446
455
|
|
|
447
456
|
pol.constructor = function () {
|
|
448
|
-
for (var
|
|
449
|
-
args[
|
|
457
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
458
|
+
args[_key3] = arguments[_key3];
|
|
450
459
|
}
|
|
451
460
|
|
|
452
461
|
return clazz.apply(this, args);
|
|
453
462
|
};
|
|
454
463
|
|
|
455
|
-
var oClass = Metadata.createClass(clazz, "anonymousExtension~"
|
|
464
|
+
var oClass = Metadata.createClass(clazz, "anonymousExtension~".concat(uid()), pol, ControllerMetadata);
|
|
456
465
|
oClass.getMetadata()._staticOverride = oExtension;
|
|
457
466
|
oClass.getMetadata()._override = clazz.getMetadata()._override;
|
|
458
467
|
return oClass;
|
|
@@ -464,4 +473,4 @@ sap.ui.define(["sap/base/util/merge", "sap/base/util/ObjectPath", "sap/base/util
|
|
|
464
473
|
|
|
465
474
|
return _exports;
|
|
466
475
|
}, false);
|
|
467
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNsYXNzU3VwcG9ydC50cyJdLCJuYW1lcyI6WyJlbnN1cmVNZXRhZGF0YSIsInRhcmdldCIsIm1ldGFkYXRhIiwibWVyZ2UiLCJjb250cm9sbGVyRXh0ZW5zaW9ucyIsInByb3BlcnRpZXMiLCJtYWNyb0NvbnRleHRzIiwiYWdncmVnYXRpb25zIiwiYXNzb2NpYXRpb25zIiwibWV0aG9kcyIsImV2ZW50cyIsImludGVyZmFjZXMiLCJtZXRob2RPdmVycmlkZSIsImV4dGVuc2lvbk5hbWUiLCJwcm9wZXJ0eUtleSIsIm92ZXJyaWRlIiwiY3VycmVudFRhcmdldCIsImV4dGVuc2lvbiIsInRvU3RyaW5nIiwiZXh0ZW5zaWJsZSIsIm92ZXJyaWRlRXhlY3V0aW9uVHlwZSIsIm92ZXJyaWRlRXhlY3V0aW9uIiwicHVibGljRXh0ZW5zaW9uIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdWJsaWMiLCJwcml2YXRlRXh0ZW5zaW9uIiwiZmluYWxFeHRlbnNpb24iLCJmaW5hbCIsInVzaW5nRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uQ2xhc3MiLCJwcm9wZXJ0eURlc2NyaXB0b3IiLCJpbml0aWFsaXplciIsImV2ZW50IiwiZXZlbnRLZXkiLCJwcm9wZXJ0eSIsInVpNVByb3BlcnR5TWV0YWRhdGEiLCJ3cml0YWJsZSIsImFnZ3JlZ2F0aW9uIiwidWk1QWdncmVnYXRpb25NZXRhZGF0YSIsIm11bHRpcGxlIiwidW5kZWZpbmVkIiwiaXNEZWZhdWx0IiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwiYXNzb2NpYXRpb24iLCJ1aTVBc3NvY2lhdGlvbk1ldGFkYXRhIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiaW50ZXJmYWNlTmFtZSIsInB1c2giLCJ4bWxFdmVudEhhbmRsZXIiLCJwcm9wZXJ0eWtleSIsImN1cnJlbnRDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiwiZ2V0QVBJIiwiZGVmaW5lVUk1Q2xhc3MiLCJzVGFyZ2V0IiwibWV0YWRhdGFEZWZpbml0aW9uIiwicHJvdG90eXBlIiwia2V5IiwicmVnaXN0ZXJVSTVNZXRhZGF0YSIsImNsYXp6IiwibmFtZSIsImluT2JqIiwiZ2V0TWV0YWRhdGEiLCJpc0EiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiZm9yRWFjaCIsIm9iak5hbWUiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvYmoiLCJiYXNlVHlwZSIsImdldFByb3RvdHlwZU9mIiwiZ2V0TmFtZSIsImdldFN0ZXJlb3R5cGUiLCJyZW5kZXJlckRlZmluaXRpb24iLCJyZW5kZXJlciIsInJlbmRlciIsImFwaVZlcnNpb24iLCJrZXlzIiwiZSIsImxlbmd0aCIsImNFeHROYW1lIiwib3V0cHV0IiwiZXh0ZW5kIiwiZm5Jbml0IiwiaW5pdCIsImFyZ3MiLCJhcHBseSIsImFQcm9wZXJ0eUtleXMiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJzZXRQcm9wZXJ0eSIsImdldCIsImdldFByb3BlcnR5IiwiYUFnZ3JlZ2F0aW9uS2V5cyIsImFnZ3JlZ2F0aW9uS2V5Iiwic2V0QWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbkNvbnRlbnQiLCJnZXRBZ2dyZWdhdGlvbiIsImFBc3NvY2lhdGlvbktleXMiLCJhc3NvY2lhdGlvbktleSIsInNldEFzc29jaWF0aW9uIiwiZ2V0QXNzb2NpYXRpb24iLCJvRXh0ZW5zaW9uIiwicG9sIiwib0NsYXNzIiwiTWV0YWRhdGEiLCJjcmVhdGVDbGFzcyIsInVpZCIsIkNvbnRyb2xsZXJNZXRhZGF0YSIsIl9zdGF0aWNPdmVycmlkZSIsIl9vdmVycmlkZSIsIk9iamVjdFBhdGgiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQW1FQSxNQUFNQSxjQUFjLEdBQUcsVUFBVUMsTUFBVixFQUFpQztBQUN2REEsSUFBQUEsTUFBTSxDQUFDQyxRQUFQLEdBQWtCQyxLQUFLLENBQ3RCO0FBQ0NDLE1BQUFBLG9CQUFvQixFQUFFLEVBRHZCO0FBRUNDLE1BQUFBLFVBQVUsRUFBRSxF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QkQsSUFBbEIsQ0FBUDtBQUNBLE9BRkQ7O0FBR0EsVUFBTXFCLE1BQU0sR0FBSUMsUUFBRCxDQUFrQkMsV0FBbEIsQ0FBOEJsRCxLQUE5QixFQUFxQyx3QkFBd0JtRCxHQUFHLEVBQWhFLEVBQW9FSixHQUFwRSxFQUF5RUssa0JBQXpFLENBQWY7QUFDQUosTUFBQUEsTUFBTSxDQUFDN0MsV0FBUCxHQUFxQmtELGVBQXJCLEdBQXVDUCxVQUF2QztBQUNBRSxNQUFBQSxNQUFNLENBQUM3QyxXQUFQLEdBQXFCbUQsU0FBckIsR0FBa0N0RCxLQUFLLENBQUNHLFdBQU4sRUFBRCxDQUE2Qm1ELFNBQTlEO0FBQ0EsYUFBT04sTUFBUDtBQUNBLEtBVEQ7O0FBV0FPLElBQUFBLFVBQVUsQ0FBQ3ZCLEdBQVgsQ0FBZS9CLElBQWYsRUFBcUJzQixNQUFyQjtBQUNBLFdBQU9BLE1BQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgT2JqZWN0UGF0aCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9PYmplY3RQYXRoXCI7XG5pbXBvcnQgdWlkIGZyb20gXCJzYXAvYmFzZS91dGlsL3VpZFwiO1xuaW1wb3J0IFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IE1ldGFkYXRhIGZyb20gXCJzYXAvdWkvYmFzZS9NZXRhZGF0YVwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgQ29udHJvbGxlck1ldGFkYXRhIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlck1ldGFkYXRhXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuXG50eXBlIE92ZXJyaWRlRGVmaW5pdGlvbiA9IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uPjtcbnR5cGUgVUk1Q29udHJvbGxlck1ldGhvZERlZmluaXRpb24gPSB7XG5cdG92ZXJyaWRlRXhlY3V0aW9uPzogT3ZlcnJpZGVFeGVjdXRpb247XG5cdHB1YmxpYz86IGJvb2xlYW47XG5cdGZpbmFsPzogYm9vbGVhbjtcbn07XG50eXBlIFVJNVByb3BlcnR5TWV0YWRhdGEgPSB7XG5cdHR5cGU6IHN0cmluZztcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHRncm91cD86IHN0cmluZztcblx0ZGVmYXVsdFZhbHVlPzogYW55O1xufTtcbnR5cGUgVUk1QWdncmVnYXRpb25NZXRhZGF0YSA9IHtcblx0dHlwZTogc3RyaW5nO1xuXHRtdWx0aXBsZT86IGJvb2xlYW47XG5cdGlzRGVmYXVsdD86IGJvb2xlYW47XG5cdHNpbmd1bGFyTmFtZT86IHN0cmluZztcblx0dmlzaWJpbGl0eT86IHN0cmluZztcbn07XG50eXBlIFVJNUFzc29jaWF0aW9uTWV0YWRhdGEgPSB7XG5cdHR5cGU6IHN0cmluZztcblx0bXVsdGlwbGU/OiBib29sZWFuO1xuXHRzaW5ndWxhck5hbWU/OiBzdHJpbmc7XG59O1xudHlwZSBVSTVDb250cm9sTWV0YWRhdGFEZWZpbml0aW9uID0ge1xuXHRkZWZhdWx0QWdncmVnYXRpb24/OiBzdHJpbmc7XG5cdGNvbnRyb2xsZXJFeHRlbnNpb25zOiBSZWNvcmQ8c3RyaW5nLCB0eXBlb2YgQ29udHJvbGxlckV4dGVuc2lvbiB8IEZ1bmN0aW9uPjtcblx0cHJvcGVydGllczogUmVjb3JkPHN0cmluZywgVUk1UHJvcGVydHlNZXRhZGF0YT47XG5cdG1hY3JvQ29udGV4dHM6IFJlY29yZDxzdHJpbmcsIFVJNVByb3BlcnR5TWV0YWRhdGE+O1xuXHRhZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIFVJNUFnZ3JlZ2F0aW9uTWV0YWRhdGE+O1xuXHRhc3NvY2lhdGlvbnM6IFJlY29yZDxzdHJpbmcsIFVJNUFzc29jaWF0aW9uTWV0YWRhdGE+O1xuXHRtZXRob2RzOiBSZWNvcmQ8c3RyaW5nLCBVSTVDb250cm9sbGVyTWV0aG9kRGVmaW5pdGlvbj47XG5cdGV2ZW50czogUmVjb3JkPHN0cmluZywge30+O1xuXHRpbnRlcmZhY2VzOiBzdHJpbmdbXTtcbn07XG50eXBlIFVJNUNvbnRyb2xsZXIgPSB7XG5cdG92ZXJyaWRlPzogeyBleHRlbnNpb24/OiBSZWNvcmQ8c3RyaW5nLCBPdmVycmlkZURlZmluaXRpb24+IH0gJiB7XG5cdFx0W2s6IHN0cmluZ106IEZ1bmN0aW9uO1xuXHR9O1xuXHRtZXRhZGF0YT86IFVJNUNvbnRyb2xNZXRhZGF0YURlZmluaXRpb247XG59O1xuXG50eXBlIFVJNUNvbnRyb2wgPSB7XG5cdG1ldGFkYXRhPzogVUk1Q29udHJvbE1ldGFkYXRhRGVmaW5pdGlvbjtcbn07XG5cbnR5cGUgVUk1QVBJQ29udHJvbCA9IFVJNUNvbnRyb2wgJiB7XG5cdGdldEFQSShldmVudDogVUk1RXZlbnQpOiBVSTVBUElDb250cm9sO1xuXHRbazogc3RyaW5nXTogRnVuY3Rpb247XG59O1xuXG50eXBlIENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIEZ1bmN0aW9uID8gbmV2ZXIgOiBLO1xufVtrZXlvZiBUXTtcbmV4cG9ydCB0eXBlIFByb3BlcnRpZXNPZjxUPiA9IFBhcnRpYWw8UGljazxULCBDb250cm9sUHJvcGVydHlOYW1lczxUPj4+O1xuZXhwb3J0IHR5cGUgU3RyaWN0UHJvcGVydGllc09mPFQ+ID0gUGljazxULCBDb250cm9sUHJvcGVydHlOYW1lczxUPj47XG5leHBvcnQgdHlwZSBFbmhhbmNlV2l0aFVJNTxUPiA9IFQgJiB7XG5cdC8vIEFkZCBhbGwgdGhlIGdldFhYWCBtZXRob2QsIG1pZ2h0IGFkZCB0b28gbXVjaCBhcyBpJ20gbm90IGZpbHRlcmluZyBvbiBhY3R1YWwgcHJvcGVydGllcyBhY3R1YWxseS4uLlxuXHRbUCBpbiBrZXlvZiBUIGFzIGBnZXQke0NhcGl0YWxpemU8c3RyaW5nICYgUD59YF06ICgpID0+IFRbUF07XG59O1xuY29uc3QgZW5zdXJlTWV0YWRhdGEgPSBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sbGVyKSB7XG5cdHRhcmdldC5tZXRhZGF0YSA9IG1lcmdlKFxuXHRcdHtcblx0XHRcdGNvbnRyb2xsZXJFeHRlbnNpb25zOiB7fSxcblx0XHRcdHByb3BlcnRpZXM6IHt9LFxuXHRcdFx0bWFjcm9Db250ZXh0czoge30sXG5cdFx0XHRhZ2dyZWdhdGlvbnM6IHt9LFxuXHRcdFx0YXNzb2NpYXRpb25zOiB7fSxcblx0XHRcdG1ldGhvZHM6IHt9LFxuXHRcdFx0ZXZlbnRzOiB7fSxcblx0XHRcdGludGVyZmFjZXM6IFtdXG5cdFx0fSxcblx0XHR0YXJnZXQubWV0YWRhdGEgfHwge31cblx0KSBhcyBVSTVDb250cm9sTWV0YWRhdGFEZWZpbml0aW9uO1xuXHRyZXR1cm4gdGFyZ2V0Lm1ldGFkYXRhO1xufTtcblxuLyogI3JlZ2lvbiBDT05UUk9MTEVSIEVYVEVOU0lPTlMgKi9cblxuLyoqXG4gKiBEZWZpbmVzIHRoYXQgdGhlIGZvbGxvd2luZyBtZXRob2QgaXMgYW4gb3ZlcnJpZGUgZm9yIHRoZSBtZXRob2QgbmFtZSB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gdGhlIHNwZWNpZmljIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG9yIGJhc2UgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHBhcmFtIGV4dGVuc2lvbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGV4dGVuc2lvbiB0aGF0IHdpbGwgYmUgb3ZlcnJpZGVuXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWV0aG9kT3ZlcnJpZGUoZXh0ZW5zaW9uTmFtZT86IHN0cmluZyk6IE1ldGhvZERlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sbGVyLCBwcm9wZXJ0eUtleSkge1xuXHRcdGlmICghdGFyZ2V0Lm92ZXJyaWRlKSB7XG5cdFx0XHR0YXJnZXQub3ZlcnJpZGUgPSB7fTtcblx0XHR9XG5cdFx0bGV0IGN1cnJlbnRUYXJnZXQgPSB0YXJnZXQub3ZlcnJpZGU7XG5cdFx0aWYgKGV4dGVuc2lvbk5hbWUpIHtcblx0XHRcdGlmICghY3VycmVudFRhcmdldC5leHRlbnNpb24pIHtcblx0XHRcdFx0Y3VycmVudFRhcmdldC5leHRlbnNpb24gPSB7fTtcblx0XHRcdH1cblx0XHRcdGlmICghY3VycmVudFRhcmdldC5leHRlbnNpb25bZXh0ZW5zaW9uTmFtZV0pIHtcblx0XHRcdFx0Y3VycmVudFRhcmdldC5leHRlbnNpb25bZXh0ZW5zaW9uTmFtZV0gPSB7fTtcblx0XHRcdH1cblx0XHRcdGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0LmV4dGVuc2lvbltleHRlbnNpb25OYW1lXTtcblx0XHR9XG5cdFx0Y3VycmVudFRhcmdldFtwcm9wZXJ0eUtleS50b1N0cmluZygpXSA9ICh0YXJnZXQgYXMgYW55KVtwcm9wZXJ0eUtleS50b1N0cmluZygpXTtcblx0fTtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoYXQgdGhlIG1ldGhvZCBjYW4gYmUgZXh0ZW5kZWQgYnkgb3RoZXIgY29udHJvbGxlciBleHRlbnNpb24gYmFzZWQgb24gdGhlIGRlZmluZWQgb3ZlcnJpZGVFeGVjdXRpb25UeXBlLlxuICpcbiAqIEBwYXJhbSBvdmVycmlkZUV4ZWN1dGlvblR5cGUgVGhlIE92ZXJyaWRlRXhlY3V0aW9uIGRlZmluaW5nIHdoZW4gdGhlIG92ZXJyaWRlIHNob3VsZCBydW4gKEJlZm9yZSAvIEFmdGVyIC8gSW5zdGVhZClcbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRlbnNpYmxlKG92ZXJyaWRlRXhlY3V0aW9uVHlwZT86IE92ZXJyaWRlRXhlY3V0aW9uKTogTWV0aG9kRGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2xsZXIsIHByb3BlcnR5S2V5KSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXHRcdGlmICghbWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSkge1xuXHRcdFx0bWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSA9IHt9O1xuXHRcdH1cblx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldLm92ZXJyaWRlRXhlY3V0aW9uID0gb3ZlcnJpZGVFeGVjdXRpb25UeXBlO1xuXHR9O1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhhdCB0aGUgbWV0aG9kIHdpbGwgYmUgcHVibGljbHkgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyIGV4dGVuc2lvbiB1c2FnZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGljRXh0ZW5zaW9uKCk6IE1ldGhvZERlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sbGVyLCBwcm9wZXJ0eUtleSwgZGVzY3JpcHRvcik6IHZvaWQge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRkZXNjcmlwdG9yLmVudW1lcmFibGUgPSB0cnVlO1xuXHRcdGlmICghbWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSkge1xuXHRcdFx0bWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSA9IHt9O1xuXHRcdH1cblx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldLnB1YmxpYyA9IHRydWU7XG5cdH07XG59XG4vKipcbiAqIERlZmluZXMgdGhhdCB0aGUgbWV0aG9kIHdpbGwgYmUgb25seSBhdmFpbGFibGUgZm9yIGludGVybmFsIHVzYWdlIG9mIHRoZSBjb250cm9sbGVyIGV4dGVuc2lvbi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUV4dGVuc2lvbigpOiBNZXRob2REZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogVUk1Q29udHJvbGxlciwgcHJvcGVydHlLZXksIGRlc2NyaXB0b3IpIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IGVuc3VyZU1ldGFkYXRhKHRhcmdldCk7XG5cdFx0ZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gdHJ1ZTtcblx0XHRpZiAoIW1ldGFkYXRhLm1ldGhvZHNbcHJvcGVydHlLZXkudG9TdHJpbmcoKV0pIHtcblx0XHRcdG1ldGFkYXRhLm1ldGhvZHNbcHJvcGVydHlLZXkudG9TdHJpbmcoKV0gPSB7fTtcblx0XHR9XG5cdFx0bWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXS5wdWJsaWMgPSBmYWxzZTtcblx0fTtcbn1cbi8qKlxuICogRGVmaW5lcyB0aGF0IHRoZSBtZXRob2QgY2Fubm90IGJlIGZ1cnRoZXIgZXh0ZW5kZWQgYnkgb3RoZXIgY29udHJvbGxlciBleHRlbnNpb24uXG4gKlxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmFsRXh0ZW5zaW9uKCk6IE1ldGhvZERlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sbGVyLCBwcm9wZXJ0eUtleSwgZGVzY3JpcHRvcikge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRkZXNjcmlwdG9yLmVudW1lcmFibGUgPSB0cnVlO1xuXHRcdGlmICghbWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSkge1xuXHRcdFx0bWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSA9IHt9O1xuXHRcdH1cblx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldLmZpbmFsID0gdHJ1ZTtcblx0fTtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoYXQgd2UgYXJlIGdvaW5nIHRvIHVzZSBpbnN0YW50aWF0ZSBhIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHVuZGVyIHRoZSBmb2xsb3dpbmcgdmFyaWFibGUgbmFtZS5cbiAqXG4gKiBAcGFyYW0gZXh0ZW5zaW9uQ2xhc3MgVGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHRoYXQgd2lsbCBiZSBpbnN0YW50aWF0ZWRcbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzaW5nRXh0ZW5zaW9uKGV4dGVuc2lvbkNsYXNzOiB0eXBlb2YgQ29udHJvbGxlckV4dGVuc2lvbiB8IEZ1bmN0aW9uKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogVUk1Q29udHJvbGxlciwgcHJvcGVydHlLZXk6IHN0cmluZywgcHJvcGVydHlEZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXHRcdGRlbGV0ZSAocHJvcGVydHlEZXNjcmlwdG9yIGFzIGFueSkuaW5pdGlhbGl6ZXI7XG5cdFx0bWV0YWRhdGEuY29udHJvbGxlckV4dGVuc2lvbnNbcHJvcGVydHlLZXkudG9TdHJpbmcoKV0gPSBleHRlbnNpb25DbGFzcztcblx0XHRyZXR1cm4gcHJvcGVydHlEZXNjcmlwdG9yO1xuXHR9IGFzIGFueTsgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBhbiBhY2Nlc3NvciBkZWNvcmF0b3IsIGJ1dCBzb21laG93IHRoZSBjb21waWxlciBkb2Vzbid0IGxpa2UgaXQgaWYgaSBkZWNsYXJlIGl0IGFzIHN1Y2guXG59XG5cbi8qICNlbmRyZWdpb24gKi9cblxuLyogI3JlZ2lvbiBDT05UUk9MICovXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSBwcm9wZXJ0eSBzaGFsbCBiZSBkZWNsYXJlZCBhcyBhbiBldmVudCBvbiB0aGUgY29udHJvbCBtZXRhZGF0YS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVudCgpOiBQcm9wZXJ0eURlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sLCBldmVudEtleSkge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRpZiAoIW1ldGFkYXRhLmV2ZW50c1tldmVudEtleS50b1N0cmluZygpXSkge1xuXHRcdFx0bWV0YWRhdGEuZXZlbnRzW2V2ZW50S2V5LnRvU3RyaW5nKCldID0ge307XG5cdFx0fVxuXHR9O1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eSBpbiB0aGUgY29udHJvbCBtZXRhdGFkYS5cbiAqXG4gKiBAcGFyYW0gdWk1UHJvcGVydHlNZXRhZGF0YSBUaGUgcHJvcGVydHkgZGVmaW5pdGlvblxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KHVpNVByb3BlcnR5TWV0YWRhdGE6IFVJNVByb3BlcnR5TWV0YWRhdGEpOiBQcm9wZXJ0eURlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sLCBwcm9wZXJ0eUtleTogc3RyaW5nLCBwcm9wZXJ0eURlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPGFueT4pIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IGVuc3VyZU1ldGFkYXRhKHRhcmdldCk7XG5cdFx0aWYgKCFtZXRhZGF0YS5wcm9wZXJ0aWVzW3Byb3BlcnR5S2V5XSkge1xuXHRcdFx0bWV0YWRhdGEucHJvcGVydGllc1twcm9wZXJ0eUtleV0gPSB1aTVQcm9wZXJ0eU1ldGFkYXRhO1xuXHRcdH1cblx0XHRkZWxldGUgcHJvcGVydHlEZXNjcmlwdG9yLndyaXRhYmxlO1xuXHRcdGRlbGV0ZSAocHJvcGVydHlEZXNjcmlwdG9yIGFzIGFueSkuaW5pdGlhbGl6ZXI7XG5cblx0XHRyZXR1cm4gcHJvcGVydHlEZXNjcmlwdG9yO1xuXHR9IGFzIGFueTsgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBhbiBhY2Nlc3NvciBkZWNvcmF0b3IsIGJ1dCBzb21laG93IHRoZSBjb21waWxlciBkb2Vzbid0IGxpa2UgaXQgaWYgaSBkZWNsYXJlIGl0IGFzIHN1Y2guO1xufVxuLyoqXG4gKiBEZWZpbmVzIGFuZCBjb25maWd1cmUgdGhlIGZvbGxvd2luZyBhZ2dyZWdhdGlvbiBpbiB0aGUgY29udHJvbCBtZXRhdGFkYS5cbiAqXG4gKiBAcGFyYW0gdWk1QWdncmVnYXRpb25NZXRhZGF0YSBUaGUgYWdncmVnYXRpb24gZGVmaW5pdGlvblxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0aW9uKHVpNUFnZ3JlZ2F0aW9uTWV0YWRhdGE6IFVJNUFnZ3JlZ2F0aW9uTWV0YWRhdGEpOiBQcm9wZXJ0eURlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sLCBwcm9wZXJ0eUtleTogc3RyaW5nLCBwcm9wZXJ0eURlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPGFueT4pIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IGVuc3VyZU1ldGFkYXRhKHRhcmdldCk7XG5cdFx0aWYgKHVpNUFnZ3JlZ2F0aW9uTWV0YWRhdGEubXVsdGlwbGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly8gVUk1IGRlZmF1bHRzIHRoaXMgdG8gdHJ1ZSBidXQgdGhpcyBpcyBqdXN0IHdlaXJkLi4uXG5cdFx0XHR1aTVBZ2dyZWdhdGlvbk1ldGFkYXRhLm11bHRpcGxlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGlmICghbWV0YWRhdGEuYWdncmVnYXRpb25zW3Byb3BlcnR5S2V5XSkge1xuXHRcdFx0bWV0YWRhdGEuYWdncmVnYXRpb25zW3Byb3BlcnR5S2V5XSA9IHVpNUFnZ3JlZ2F0aW9uTWV0YWRhdGE7XG5cdFx0fVxuXHRcdGlmICh1aTVBZ2dyZWdhdGlvbk1ldGFkYXRhLmlzRGVmYXVsdCkge1xuXHRcdFx0bWV0YWRhdGEuZGVmYXVsdEFnZ3JlZ2F0aW9uID0gcHJvcGVydHlLZXk7XG5cdFx0fVxuXHRcdGRlbGV0ZSBwcm9wZXJ0eURlc2NyaXB0b3Iud3JpdGFibGU7XG5cdFx0ZGVsZXRlIChwcm9wZXJ0eURlc2NyaXB0b3IgYXMgYW55KS5pbml0aWFsaXplcjtcblxuXHRcdHJldHVybiBwcm9wZXJ0eURlc2NyaXB0b3I7XG5cdH0gYXMgYW55OyAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGFuIGFjY2Vzc29yIGRlY29yYXRvciwgYnV0IHNvbWVob3cgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgbGlrZSBpdCBpZiBpIGRlY2xhcmUgaXQgYXMgc3VjaC47XG59XG5cbi8qKlxuICogRGVmaW5lcyBhbmQgY29uZmlndXJlIHRoZSBmb2xsb3dpbmcgYXNzb2NpYXRpb24gaW4gdGhlIGNvbnRyb2wgbWV0YXRhZGEuXG4gKlxuICogQHBhcmFtIHVpNUFzc29jaWF0aW9uTWV0YWRhdGEgVGhlIGRlZmluaXRpb24gb2YgdGhlIGFzc29jaWF0aW9uLlxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzb2NpYXRpb24odWk1QXNzb2NpYXRpb25NZXRhZGF0YTogVUk1QXNzb2NpYXRpb25NZXRhZGF0YSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2wsIHByb3BlcnR5S2V5OiBzdHJpbmcsIHByb3BlcnR5RGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55Pikge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRpZiAoIW1ldGFkYXRhLmFzc29jaWF0aW9uc1twcm9wZXJ0eUtleV0pIHtcblx0XHRcdG1ldGFkYXRhLmFzc29jaWF0aW9uc1twcm9wZXJ0eUtleV0gPSB1aTVBc3NvY2lhdGlvbk1ldGFkYXRhO1xuXHRcdH1cblx0XHRkZWxldGUgcHJvcGVydHlEZXNjcmlwdG9yLndyaXRhYmxlO1xuXHRcdGRlbGV0ZSAocHJvcGVydHlEZXNjcmlwdG9yIGFzIGFueSkuaW5pdGlhbGl6ZXI7XG5cblx0XHRyZXR1cm4gcHJvcGVydHlEZXNjcmlwdG9yO1xuXHR9IGFzIGFueTsgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBhbiBhY2Nlc3NvciBkZWNvcmF0b3IsIGJ1dCBzb21laG93IHRoZSBjb21waWxlciBkb2Vzbid0IGxpa2UgaXQgaWYgaSBkZWNsYXJlIGl0IGFzIHN1Y2guO1xufVxuXG4vKipcbiAqIERlZmluZXMgaW4gdGhlIG1ldGFkYXRhIHRoYXQgdGhpcyBjb250cm9sIGltcGxlbWVudHMgYSBzcGVjaWZpYyBpbnRlcmZhY2UuXG4gKlxuICogQHBhcmFtIGludGVyZmFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIGltcGxlbWVudGVkIGludGVyZmFjZVxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGltcGxlbWVudEludGVyZmFjZShpbnRlcmZhY2VOYW1lOiBzdHJpbmcpOiBQcm9wZXJ0eURlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sKSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXG5cdFx0bWV0YWRhdGEuaW50ZXJmYWNlcy5wdXNoKGludGVyZmFjZU5hbWUpO1xuXHR9O1xufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSBmb2xsb3dpbmcgbWV0aG9kIHNob3VsZCBhbHNvIGJlIGV4cG9zZWQgc3RhdGljYWxseSBzbyB3ZSBjYW4gY2FsbCBpdCBmcm9tIHRoZSBYTUwuXG4gKlxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHhtbEV2ZW50SGFuZGxlcigpOiBNZXRob2REZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogVUk1Q29udHJvbCwgcHJvcGVydHlrZXkpIHtcblx0XHRjb25zdCBjdXJyZW50Q29uc3RydWN0b3I6IFVJNUFQSUNvbnRyb2wgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgdW5rbm93biBhcyBVSTVBUElDb250cm9sO1xuXHRcdGN1cnJlbnRDb25zdHJ1Y3Rvcltwcm9wZXJ0eWtleS50b1N0cmluZygpXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuXHRcdFx0Y29uc3QgY3VycmVudFRhcmdldCA9IGN1cnJlbnRDb25zdHJ1Y3Rvci5nZXRBUEkoYXJnc1swXSBhcyBVSTVFdmVudCk7XG5cdFx0XHRjdXJyZW50VGFyZ2V0W3Byb3BlcnR5a2V5LnRvU3RyaW5nKCldKC4uLmFyZ3MpO1xuXHRcdH07XG5cdH07XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBjbGFzcyBzaG91bGQgZGVmaW5lIGEgdWk1IGNvbnRyb2wgb2YgdGhlIHNwZWNpZmllZCBuYW1lLlxuICpcbiAqIEBwYXJhbSBzVGFyZ2V0IFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbWFjcm8gQVBJXG4gKiBAcGFyYW0gbWV0YWRhdGFEZWZpbml0aW9uIElubGluZSBtZXRhZGF0YSBkZWZpbml0aW9uXG4gKiBAY2xhc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVVJNUNsYXNzKHNUYXJnZXQ6IHN0cmluZywgbWV0YWRhdGFEZWZpbml0aW9uPzogYW55KTogQ2xhc3NEZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikge1xuXHRcdGlmICghY29uc3RydWN0b3IucHJvdG90eXBlLm1ldGFkYXRhKSB7XG5cdFx0XHRjb25zdHJ1Y3Rvci5wcm90b3R5cGUubWV0YWRhdGEgPSB7fTtcblx0XHR9XG5cdFx0aWYgKG1ldGFkYXRhRGVmaW5pdGlvbikge1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gbWV0YWRhdGFEZWZpbml0aW9uKSB7XG5cdFx0XHRcdGNvbnN0cnVjdG9yLnByb3RvdHlwZS5tZXRhZGF0YVtrZXldID0gbWV0YWRhdGFEZWZpbml0aW9uW2tleSBhcyBrZXlvZiBVSTVDb250cm9sTWV0YWRhdGFEZWZpbml0aW9uXTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlZ2lzdGVyVUk1TWV0YWRhdGEoY29uc3RydWN0b3IsIHNUYXJnZXQsIGNvbnN0cnVjdG9yLnByb3RvdHlwZSk7XG5cdH07XG59XG5cbi8qKlxuICogSW50ZXJuYWwgaGVhdnkgbGlmdGluZyB0aGF0IHdpbGwgdGFrZSBjYXJlIG9mIGNyZWF0aW5nIHRoZSBjbGFzcyBwcm9wZXJ0eSBmb3IgdWk1IHRvIHVzZS5cbiAqXG4gKiBAcGFyYW0gY2xhenogVGhlIGNsYXNzIHByb3RvdHlwZVxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRvIGNyZWF0ZVxuICogQHBhcmFtIGluT2JqIFRoZSBtZXRhZGF0YSBvYmplY3RcbiAqIEByZXR1cm5zIFRoZSBtZXRhZGF0YSBjbGFzc1xuICovXG5mdW5jdGlvbiByZWdpc3RlclVJNU1ldGFkYXRhKGNsYXp6OiBhbnksIG5hbWU6IHN0cmluZywgaW5PYmo6IGFueSk6IGFueSB7XG5cdGlmIChjbGF6ei5nZXRNZXRhZGF0YSAmJiBjbGF6ei5nZXRNZXRhZGF0YSgpLmlzQShcInNhcC51aS5jb3JlLm12Yy5Db250cm9sbGVyRXh0ZW5zaW9uXCIpKSB7XG5cdFx0T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaW5PYmopLmZvckVhY2goKG9iak5hbWUpID0+IHtcblx0XHRcdGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGluT2JqLCBvYmpOYW1lKTtcblx0XHRcdGlmIChkZXNjcmlwdG9yICYmICFkZXNjcmlwdG9yLmVudW1lcmFibGUpIHtcblx0XHRcdFx0ZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gdHJ1ZTtcblx0XHRcdFx0Ly9cdFx0TG9nLmVycm9yKGBQcm9wZXJ0eSAke29iak5hbWV9IGZyb20gJHtuYW1lfSBzaG91bGQgYmUgZGVjb3JhdGVkIGFzIHB1YmxpY2ApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdGNvbnN0IG9iajogYW55ID0ge307XG5cdG9iai5tZXRhZGF0YSA9IGluT2JqLm1ldGFkYXRhIHx8IHt9O1xuXHRvYmoub3ZlcnJpZGUgPSBpbk9iai5vdmVycmlkZTtcblx0b2JqLmNvbnN0cnVjdG9yID0gY2xheno7XG5cdG9iai5tZXRhZGF0YS5iYXNlVHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbGF6ei5wcm90b3R5cGUpLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXG5cdGlmIChjbGF6ej8uZ2V0TWV0YWRhdGEoKT8uZ2V0U3RlcmVvdHlwZSgpID09PSBcImNvbnRyb2xcIikge1xuXHRcdGNvbnN0IHJlbmRlcmVyRGVmaW5pdGlvbiA9IGluT2JqLnJlbmRlcmVyIHx8IGNsYXp6LnJlbmRlcmVyIHx8IGNsYXp6LnJlbmRlcjtcblx0XHRvYmoucmVuZGVyZXIgPSB7IGFwaVZlcnNpb246IDIgfTtcblx0XHRpZiAodHlwZW9mIHJlbmRlcmVyRGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRvYmoucmVuZGVyZXIucmVuZGVyID0gcmVuZGVyZXJEZWZpbml0aW9uO1xuXHRcdH0gZWxzZSBpZiAocmVuZGVyZXJEZWZpbml0aW9uICE9IHVuZGVmaW5lZCkge1xuXHRcdFx0b2JqLnJlbmRlcmVyID0gcmVuZGVyZXJEZWZpbml0aW9uO1xuXHRcdH1cblx0fVxuXHRvYmoubWV0YWRhdGEuaW50ZXJmYWNlcyA9IGluT2JqLm1ldGFkYXRhPy5pbnRlcmZhY2VzIHx8IGNsYXp6Lm1ldGFkYXRhPy5pbnRlcmZhY2VzO1xuXHRPYmplY3Qua2V5cyhjbGF6ei5wcm90b3R5cGUpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdGlmIChrZXkgIT09IFwibWV0YWRhdGFcIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0b2JqW2tleV0gPSBjbGF6ei5wcm90b3R5cGVba2V5XTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRpZiAob2JqLm1ldGFkYXRhPy5jb250cm9sbGVyRXh0ZW5zaW9ucyAmJiBPYmplY3Qua2V5cyhvYmoubWV0YWRhdGEuY29udHJvbGxlckV4dGVuc2lvbnMpLmxlbmd0aCA+IDApIHtcblx0XHRmb3IgKGNvbnN0IGNFeHROYW1lIGluIG9iai5tZXRhZGF0YS5jb250cm9sbGVyRXh0ZW5zaW9ucykge1xuXHRcdFx0b2JqW2NFeHROYW1lXSA9IG9iai5tZXRhZGF0YS5jb250cm9sbGVyRXh0ZW5zaW9uc1tjRXh0TmFtZV07XG5cdFx0fVxuXHR9XG5cdGNvbnN0IG91dHB1dCA9IGNsYXp6LmV4dGVuZChuYW1lLCBvYmopO1xuXHRjb25zdCBmbkluaXQgPSBvdXRwdXQucHJvdG90eXBlLmluaXQ7XG5cdG91dHB1dC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuXHRcdGZuSW5pdCAmJiBmbkluaXQuYXBwbHkodGhpcywgYXJncyk7XG5cdFx0dGhpcy5tZXRhZGF0YSA9IG9iai5tZXRhZGF0YTtcblxuXHRcdGlmIChvYmoubWV0YWRhdGEucHJvcGVydGllcykge1xuXHRcdFx0Y29uc3QgYVByb3BlcnR5S2V5cyA9IE9iamVjdC5rZXlzKG9iai5tZXRhZGF0YS5wcm9wZXJ0aWVzKTtcblx0XHRcdGFQcm9wZXJ0eUtleXMuZm9yRWFjaCgocHJvcGVydHlLZXkpID0+IHtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5S2V5LCB7XG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHNldDogKHY6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2V0UHJvcGVydHkocHJvcGVydHlLZXksIHYpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShwcm9wZXJ0eUtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgYUFnZ3JlZ2F0aW9uS2V5cyA9IE9iamVjdC5rZXlzKG9iai5tZXRhZGF0YS5hZ2dyZWdhdGlvbnMpO1xuXHRcdFx0YUFnZ3JlZ2F0aW9uS2V5cy5mb3JFYWNoKChhZ2dyZWdhdGlvbktleSkgPT4ge1xuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgYWdncmVnYXRpb25LZXksIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5zZXRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbktleSwgdik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRnZXQ6ICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGFnZ3JlZ2F0aW9uQ29udGVudCA9IHRoaXMuZ2V0QWdncmVnYXRpb24oYWdncmVnYXRpb25LZXkpO1xuXHRcdFx0XHRcdFx0aWYgKG9iai5tZXRhZGF0YS5hZ2dyZWdhdGlvbnNbYWdncmVnYXRpb25LZXldLm11bHRpcGxlKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBhZ2dyZWdhdGlvbkNvbnRlbnQgfHwgW107XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gYWdncmVnYXRpb25Db250ZW50O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGFBc3NvY2lhdGlvbktleXMgPSBPYmplY3Qua2V5cyhvYmoubWV0YWRhdGEuYXNzb2NpYXRpb25zKTtcblx0XHRcdGFBc3NvY2lhdGlvbktleXMuZm9yRWFjaCgoYXNzb2NpYXRpb25LZXkpID0+IHtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGFzc29jaWF0aW9uS2V5LCB7XG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHNldDogKHY6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2V0QXNzb2NpYXRpb24oYXNzb2NpYXRpb25LZXksIHYpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBhZ2dyZWdhdGlvbkNvbnRlbnQgPSB0aGlzLmdldEFzc29jaWF0aW9uKGFzc29jaWF0aW9uS2V5KTtcblx0XHRcdFx0XHRcdGlmIChvYmoubWV0YWRhdGEuYXNzb2NpYXRpb25zW2Fzc29jaWF0aW9uS2V5XS5tdWx0aXBsZSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gYWdncmVnYXRpb25Db250ZW50IHx8IFtdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGFnZ3JlZ2F0aW9uQ29udGVudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xuXHRjbGF6ei5vdmVycmlkZSA9IGZ1bmN0aW9uIChvRXh0ZW5zaW9uOiBhbnkpIHtcblx0XHRjb25zdCBwb2wgPSB7fTtcblx0XHQocG9sIGFzIGFueSkuY29uc3RydWN0b3IgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdHJldHVybiBjbGF6ei5hcHBseSh0aGlzLCBhcmdzIGFzIGFueSk7XG5cdFx0fTtcblx0XHRjb25zdCBvQ2xhc3MgPSAoTWV0YWRhdGEgYXMgYW55KS5jcmVhdGVDbGFzcyhjbGF6eiwgXCJhbm9ueW1vdXNFeHRlbnNpb25+XCIgKyB1aWQoKSwgcG9sLCBDb250cm9sbGVyTWV0YWRhdGEpO1xuXHRcdG9DbGFzcy5nZXRNZXRhZGF0YSgpLl9zdGF0aWNPdmVycmlkZSA9IG9FeHRlbnNpb247XG5cdFx0b0NsYXNzLmdldE1ldGFkYXRhKCkuX292ZXJyaWRlID0gKGNsYXp6LmdldE1ldGFkYXRhKCkgYXMgYW55KS5fb3ZlcnJpZGU7XG5cdFx0cmV0dXJuIG9DbGFzcztcblx0fTtcblxuXHRPYmplY3RQYXRoLnNldChuYW1lLCBvdXRwdXQpO1xuXHRyZXR1cm4gb3V0cHV0O1xufVxuIl19
|
|
476
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNsYXNzU3VwcG9ydC50cyJdLCJuYW1lcyI6WyJlbnN1cmVNZXRhZGF0YSIsInRhcmdldCIsIm1ldGFkYXRhIiwibWVyZ2UiLCJjb250cm9sbGVyRXh0ZW5zaW9ucyIsInByb3BlcnRpZXMiLCJtYWNyb0NvbnRleHRzIiwiYWdncmVnYXRpb25zIiwiYXNzb2NpYXRpb25zIiwibWV0aG9kcyIsImV2ZW50cyIsImludGVyZmFjZXMiLCJtZXRob2RPdmVycmlkZSIsImV4dGVuc2lvbk5hbWUiLCJwcm9wZXJ0eUtleSIsIm92ZXJyaWRlIiwiY3VycmVudFRhcmdldCIsImV4dGVuc2lvbiIsInRvU3RyaW5nIiwiZXh0ZW5zaWJsZSIsIm92ZXJyaWRlRXhlY3V0aW9uVHlwZSIsIm92ZXJyaWRlRXhlY3V0aW9uIiwicHVibGljRXh0ZW5zaW9uIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdWJsaWMiLCJwcml2YXRlRXh0ZW5zaW9uIiwiZmluYWxFeHRlbnNpb24iLCJmaW5hbCIsInVzaW5nRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uQ2xhc3MiLCJwcm9wZXJ0eURlc2NyaXB0b3IiLCJpbml0aWFsaXplciIsImV2ZW50IiwiZXZlbnRLZXkiLCJwcm9wZXJ0eSIsInVpNVByb3BlcnR5TWV0YWRhdGEiLCJ3cml0YWJsZSIsImFnZ3JlZ2F0aW9uIiwidWk1QWdncmVnYXRpb25NZXRhZGF0YSIsIm11bHRpcGxlIiwidW5kZWZpbmVkIiwiaXNEZWZhdWx0IiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwiYXNzb2NpYXRpb24iLCJ1aTVBc3NvY2lhdGlvbk1ldGFkYXRhIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiaW50ZXJmYWNlTmFtZSIsInB1c2giLCJ4bWxFdmVudEhhbmRsZXIiLCJwcm9wZXJ0eWtleSIsImN1cnJlbnRDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiwiYXJncyIsImxlbmd0aCIsImdldEFQSSIsImRlZmluZVVJNUNsYXNzIiwic1RhcmdldCIsIm1ldGFkYXRhRGVmaW5pdGlvbiIsInByb3RvdHlwZSIsImtleSIsInJlZ2lzdGVyVUk1TWV0YWRhdGEiLCJjbGF6eiIsIm5hbWUiLCJpbk9iaiIsImdldE1ldGFkYXRhIiwiaXNBIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImZvckVhY2giLCJvYmpOYW1lIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib2JqIiwiYmFzZVR5cGUiLCJnZXRQcm90b3R5cGVPZiIsImdldE5hbWUiLCJnZXRTdGVyZW90eXBlIiwicmVuZGVyZXJEZWZpbml0aW9uIiwicmVuZGVyZXIiLCJyZW5kZXIiLCJhcGlWZXJzaW9uIiwia2V5cyIsImUiLCJjRXh0TmFtZSIsIm91dHB1dCIsImV4dGVuZCIsImZuSW5pdCIsImluaXQiLCJhcHBseSIsImFQcm9wZXJ0eUtleXMiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJzZXRQcm9wZXJ0eSIsImdldCIsImdldFByb3BlcnR5IiwiYUFnZ3JlZ2F0aW9uS2V5cyIsImFnZ3JlZ2F0aW9uS2V5Iiwic2V0QWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbkNvbnRlbnQiLCJnZXRBZ2dyZWdhdGlvbiIsImFBc3NvY2lhdGlvbktleXMiLCJhc3NvY2lhdGlvbktleSIsInNldEFzc29jaWF0aW9uIiwiZ2V0QXNzb2NpYXRpb24iLCJvRXh0ZW5zaW9uIiwicG9sIiwib0NsYXNzIiwiTWV0YWRhdGEiLCJjcmVhdGVDbGFzcyIsInVpZCIsIkNvbnRyb2xsZXJNZXRhZGF0YSIsIl9zdGF0aWNPdmVycmlkZSIsIl9vdmVycmlkZSIsIk9iamVjdFBhdGgiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQW1FQSxNQUFNQSxjQUFjLEdBQUcsVUFBVUMsTUFBVixFQUFpQztBQUN2REEsSUFBQUEsTUFBTSxDQUFDQyxRQUFQLEdBQWtCQyxLQUFLLENBQ3RCO0FBQ0NDLE1BQUFBLG9CQUFvQixFQUFFLEVBRHZCO0FBRUNDLE1BQUFBLFVBQVUsRUFBRSxF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QzNDLFVBQU1DLEdBQUcsR0FBRyxFQUFaOztBQUNDQSxNQUFBQSxHQUFELENBQWF2RCxXQUFiLEdBQTJCLFlBQTBCO0FBQUEsMkNBQWJDLElBQWE7QUFBYkEsVUFBQUEsSUFBYTtBQUFBOztBQUNwRCxlQUFPUyxLQUFLLENBQUMwQixLQUFOLENBQVksSUFBWixFQUFrQm5DLElBQWxCLENBQVA7QUFDQSxPQUZEOztBQUdBLFVBQU11RCxNQUFNLEdBQUlDLFFBQUQsQ0FBa0JDLFdBQWxCLENBQThCaEQsS0FBOUIsK0JBQTJEaUQsR0FBRyxFQUE5RCxHQUFvRUosR0FBcEUsRUFBeUVLLGtCQUF6RSxDQUFmO0FBQ0FKLE1BQUFBLE1BQU0sQ0FBQzNDLFdBQVAsR0FBcUJnRCxlQUFyQixHQUF1Q1AsVUFBdkM7QUFDQUUsTUFBQUEsTUFBTSxDQUFDM0MsV0FBUCxHQUFxQmlELFNBQXJCLEdBQWlDcEQsS0FBSyxDQUFDRyxXQUFOLEdBQW9CaUQsU0FBckQ7QUFDQSxhQUFPTixNQUFQO0FBQ0EsS0FURDs7QUFXQU8sSUFBQUEsVUFBVSxDQUFDdkIsR0FBWCxDQUFlN0IsSUFBZixFQUFxQnFCLE1BQXJCO0FBQ0EsV0FBT0EsTUFBUDtBQUNBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVyZ2UgZnJvbSBcInNhcC9iYXNlL3V0aWwvbWVyZ2VcIjtcbmltcG9ydCBPYmplY3RQYXRoIGZyb20gXCJzYXAvYmFzZS91dGlsL09iamVjdFBhdGhcIjtcbmltcG9ydCB1aWQgZnJvbSBcInNhcC9iYXNlL3V0aWwvdWlkXCI7XG5pbXBvcnQgdHlwZSBVSTVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBNZXRhZGF0YSBmcm9tIFwic2FwL3VpL2Jhc2UvTWV0YWRhdGFcIjtcbmltcG9ydCB0eXBlIENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgQ29udHJvbGxlck1ldGFkYXRhIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlck1ldGFkYXRhXCI7XG5pbXBvcnQgdHlwZSBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5cbnR5cGUgT3ZlcnJpZGVEZWZpbml0aW9uID0gUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+O1xudHlwZSBVSTVDb250cm9sbGVyTWV0aG9kRGVmaW5pdGlvbiA9IHtcblx0b3ZlcnJpZGVFeGVjdXRpb24/OiBPdmVycmlkZUV4ZWN1dGlvbjtcblx0cHVibGljPzogYm9vbGVhbjtcblx0ZmluYWw/OiBib29sZWFuO1xufTtcbnR5cGUgVUk1UHJvcGVydHlNZXRhZGF0YSA9IHtcblx0dHlwZTogc3RyaW5nO1xuXHRyZXF1aXJlZD86IGJvb2xlYW47XG5cdGdyb3VwPzogc3RyaW5nO1xuXHRkZWZhdWx0VmFsdWU/OiBhbnk7XG59O1xudHlwZSBVSTVBZ2dyZWdhdGlvbk1ldGFkYXRhID0ge1xuXHR0eXBlOiBzdHJpbmc7XG5cdG11bHRpcGxlPzogYm9vbGVhbjtcblx0aXNEZWZhdWx0PzogYm9vbGVhbjtcblx0c2luZ3VsYXJOYW1lPzogc3RyaW5nO1xuXHR2aXNpYmlsaXR5Pzogc3RyaW5nO1xufTtcbnR5cGUgVUk1QXNzb2NpYXRpb25NZXRhZGF0YSA9IHtcblx0dHlwZTogc3RyaW5nO1xuXHRtdWx0aXBsZT86IGJvb2xlYW47XG5cdHNpbmd1bGFyTmFtZT86IHN0cmluZztcbn07XG50eXBlIFVJNUNvbnRyb2xNZXRhZGF0YURlZmluaXRpb24gPSB7XG5cdGRlZmF1bHRBZ2dyZWdhdGlvbj86IHN0cmluZztcblx0Y29udHJvbGxlckV4dGVuc2lvbnM6IFJlY29yZDxzdHJpbmcsIHR5cGVvZiBDb250cm9sbGVyRXh0ZW5zaW9uIHwgRnVuY3Rpb24+O1xuXHRwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBVSTVQcm9wZXJ0eU1ldGFkYXRhPjtcblx0bWFjcm9Db250ZXh0czogUmVjb3JkPHN0cmluZywgVUk1UHJvcGVydHlNZXRhZGF0YT47XG5cdGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgVUk1QWdncmVnYXRpb25NZXRhZGF0YT47XG5cdGFzc29jaWF0aW9uczogUmVjb3JkPHN0cmluZywgVUk1QXNzb2NpYXRpb25NZXRhZGF0YT47XG5cdG1ldGhvZHM6IFJlY29yZDxzdHJpbmcsIFVJNUNvbnRyb2xsZXJNZXRob2REZWZpbml0aW9uPjtcblx0ZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCB7fT47XG5cdGludGVyZmFjZXM6IHN0cmluZ1tdO1xufTtcbnR5cGUgVUk1Q29udHJvbGxlciA9IHtcblx0b3ZlcnJpZGU/OiB7IGV4dGVuc2lvbj86IFJlY29yZDxzdHJpbmcsIE92ZXJyaWRlRGVmaW5pdGlvbj4gfSAmIHtcblx0XHRbazogc3RyaW5nXTogRnVuY3Rpb247XG5cdH07XG5cdG1ldGFkYXRhPzogVUk1Q29udHJvbE1ldGFkYXRhRGVmaW5pdGlvbjtcbn07XG5cbnR5cGUgVUk1Q29udHJvbCA9IHtcblx0bWV0YWRhdGE/OiBVSTVDb250cm9sTWV0YWRhdGFEZWZpbml0aW9uO1xufTtcblxudHlwZSBVSTVBUElDb250cm9sID0gVUk1Q29udHJvbCAmIHtcblx0Z2V0QVBJKGV2ZW50OiBVSTVFdmVudCk6IFVJNUFQSUNvbnRyb2w7XG5cdFtrOiBzdHJpbmddOiBGdW5jdGlvbjtcbn07XG5cbnR5cGUgQ29udHJvbFByb3BlcnR5TmFtZXM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IEs7XG59W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgUHJvcGVydGllc09mPFQ+ID0gUGFydGlhbDxQaWNrPFQsIENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+Pj47XG5leHBvcnQgdHlwZSBTdHJpY3RQcm9wZXJ0aWVzT2Y8VD4gPSBQaWNrPFQsIENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+PjtcbmV4cG9ydCB0eXBlIEVuaGFuY2VXaXRoVUk1PFQ+ID0gVCAmIHtcblx0Ly8gQWRkIGFsbCB0aGUgZ2V0WFhYIG1ldGhvZCwgbWlnaHQgYWRkIHRvbyBtdWNoIGFzIGknbSBub3QgZmlsdGVyaW5nIG9uIGFjdHVhbCBwcm9wZXJ0aWVzIGFjdHVhbGx5Li4uXG5cdFtQIGluIGtleW9mIFQgYXMgYGdldCR7Q2FwaXRhbGl6ZTxzdHJpbmcgJiBQPn1gXTogKCkgPT4gVFtQXTtcbn07XG5jb25zdCBlbnN1cmVNZXRhZGF0YSA9IGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2xsZXIpIHtcblx0dGFyZ2V0Lm1ldGFkYXRhID0gbWVyZ2UoXG5cdFx0e1xuXHRcdFx0Y29udHJvbGxlckV4dGVuc2lvbnM6IHt9LFxuXHRcdFx0cHJvcGVydGllczoge30sXG5cdFx0XHRtYWNyb0NvbnRleHRzOiB7fSxcblx0XHRcdGFnZ3JlZ2F0aW9uczoge30sXG5cdFx0XHRhc3NvY2lhdGlvbnM6IHt9LFxuXHRcdFx0bWV0aG9kczoge30sXG5cdFx0XHRldmVudHM6IHt9LFxuXHRcdFx0aW50ZXJmYWNlczogW11cblx0XHR9LFxuXHRcdHRhcmdldC5tZXRhZGF0YSB8fCB7fVxuXHQpIGFzIFVJNUNvbnRyb2xNZXRhZGF0YURlZmluaXRpb247XG5cdHJldHVybiB0YXJnZXQubWV0YWRhdGE7XG59O1xuXG4vKiAjcmVnaW9uIENPTlRST0xMRVIgRVhURU5TSU9OUyAqL1xuXG4vKipcbiAqIERlZmluZXMgdGhhdCB0aGUgZm9sbG93aW5nIG1ldGhvZCBpcyBhbiBvdmVycmlkZSBmb3IgdGhlIG1ldGhvZCBuYW1lIHdpdGggdGhlIHNhbWUgbmFtZSBpbiB0aGUgc3BlY2lmaWMgY29udHJvbGxlciBleHRlbnNpb24gb3IgYmFzZSBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0gZXh0ZW5zaW9uTmFtZSBUaGUgbmFtZSBvZiB0aGUgZXh0ZW5zaW9uIHRoYXQgd2lsbCBiZSBvdmVycmlkZW5cbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXRob2RPdmVycmlkZShleHRlbnNpb25OYW1lPzogc3RyaW5nKTogTWV0aG9kRGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2xsZXIsIHByb3BlcnR5S2V5KSB7XG5cdFx0aWYgKCF0YXJnZXQub3ZlcnJpZGUpIHtcblx0XHRcdHRhcmdldC5vdmVycmlkZSA9IHt9O1xuXHRcdH1cblx0XHRsZXQgY3VycmVudFRhcmdldCA9IHRhcmdldC5vdmVycmlkZTtcblx0XHRpZiAoZXh0ZW5zaW9uTmFtZSkge1xuXHRcdFx0aWYgKCFjdXJyZW50VGFyZ2V0LmV4dGVuc2lvbikge1xuXHRcdFx0XHRjdXJyZW50VGFyZ2V0LmV4dGVuc2lvbiA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFjdXJyZW50VGFyZ2V0LmV4dGVuc2lvbltleHRlbnNpb25OYW1lXSkge1xuXHRcdFx0XHRjdXJyZW50VGFyZ2V0LmV4dGVuc2lvbltleHRlbnNpb25OYW1lXSA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0Y3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQuZXh0ZW5zaW9uW2V4dGVuc2lvbk5hbWVdO1xuXHRcdH1cblx0XHRjdXJyZW50VGFyZ2V0W3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldID0gKHRhcmdldCBhcyBhbnkpW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldO1xuXHR9O1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhhdCB0aGUgbWV0aG9kIGNhbiBiZSBleHRlbmRlZCBieSBvdGhlciBjb250cm9sbGVyIGV4dGVuc2lvbiBiYXNlZCBvbiB0aGUgZGVmaW5lZCBvdmVycmlkZUV4ZWN1dGlvblR5cGUuXG4gKlxuICogQHBhcmFtIG92ZXJyaWRlRXhlY3V0aW9uVHlwZSBUaGUgT3ZlcnJpZGVFeGVjdXRpb24gZGVmaW5pbmcgd2hlbiB0aGUgb3ZlcnJpZGUgc2hvdWxkIHJ1biAoQmVmb3JlIC8gQWZ0ZXIgLyBJbnN0ZWFkKVxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuc2libGUob3ZlcnJpZGVFeGVjdXRpb25UeXBlPzogT3ZlcnJpZGVFeGVjdXRpb24pOiBNZXRob2REZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogVUk1Q29udHJvbGxlciwgcHJvcGVydHlLZXkpIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IGVuc3VyZU1ldGFkYXRhKHRhcmdldCk7XG5cdFx0aWYgKCFtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldKSB7XG5cdFx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldID0ge307XG5cdFx0fVxuXHRcdG1ldGFkYXRhLm1ldGhvZHNbcHJvcGVydHlLZXkudG9TdHJpbmcoKV0ub3ZlcnJpZGVFeGVjdXRpb24gPSBvdmVycmlkZUV4ZWN1dGlvblR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGF0IHRoZSBtZXRob2Qgd2lsbCBiZSBwdWJsaWNseSBhdmFpbGFibGUgZm9yIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHVzYWdlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaWNFeHRlbnNpb24oKTogTWV0aG9kRGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2xsZXIsIHByb3BlcnR5S2V5LCBkZXNjcmlwdG9yKTogdm9pZCB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXHRcdGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IHRydWU7XG5cdFx0aWYgKCFtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldKSB7XG5cdFx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldID0ge307XG5cdFx0fVxuXHRcdG1ldGFkYXRhLm1ldGhvZHNbcHJvcGVydHlLZXkudG9TdHJpbmcoKV0ucHVibGljID0gdHJ1ZTtcblx0fTtcbn1cbi8qKlxuICogRGVmaW5lcyB0aGF0IHRoZSBtZXRob2Qgd2lsbCBiZSBvbmx5IGF2YWlsYWJsZSBmb3IgaW50ZXJuYWwgdXNhZ2Ugb2YgdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlRXh0ZW5zaW9uKCk6IE1ldGhvZERlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sbGVyLCBwcm9wZXJ0eUtleSwgZGVzY3JpcHRvcikge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRkZXNjcmlwdG9yLmVudW1lcmFibGUgPSB0cnVlO1xuXHRcdGlmICghbWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSkge1xuXHRcdFx0bWV0YWRhdGEubWV0aG9kc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSA9IHt9O1xuXHRcdH1cblx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldLnB1YmxpYyA9IGZhbHNlO1xuXHR9O1xufVxuLyoqXG4gKiBEZWZpbmVzIHRoYXQgdGhlIG1ldGhvZCBjYW5ub3QgYmUgZnVydGhlciBleHRlbmRlZCBieSBvdGhlciBjb250cm9sbGVyIGV4dGVuc2lvbi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluYWxFeHRlbnNpb24oKTogTWV0aG9kRGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2xsZXIsIHByb3BlcnR5S2V5LCBkZXNjcmlwdG9yKSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXHRcdGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IHRydWU7XG5cdFx0aWYgKCFtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldKSB7XG5cdFx0XHRtZXRhZGF0YS5tZXRob2RzW3Byb3BlcnR5S2V5LnRvU3RyaW5nKCldID0ge307XG5cdFx0fVxuXHRcdG1ldGFkYXRhLm1ldGhvZHNbcHJvcGVydHlLZXkudG9TdHJpbmcoKV0uZmluYWwgPSB0cnVlO1xuXHR9O1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gdXNlIGluc3RhbnRpYXRlIGEgY29udHJvbGxlciBleHRlbnNpb24gdW5kZXIgdGhlIGZvbGxvd2luZyB2YXJpYWJsZSBuYW1lLlxuICpcbiAqIEBwYXJhbSBleHRlbnNpb25DbGFzcyBUaGUgY29udHJvbGxlciBleHRlbnNpb24gdGhhdCB3aWxsIGJlIGluc3RhbnRpYXRlZFxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNpbmdFeHRlbnNpb24oZXh0ZW5zaW9uQ2xhc3M6IHR5cGVvZiBDb250cm9sbGVyRXh0ZW5zaW9uIHwgRnVuY3Rpb24pOiBQcm9wZXJ0eURlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBVSTVDb250cm9sbGVyLCBwcm9wZXJ0eUtleTogc3RyaW5nLCBwcm9wZXJ0eURlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPGFueT4pIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IGVuc3VyZU1ldGFkYXRhKHRhcmdldCk7XG5cdFx0ZGVsZXRlIChwcm9wZXJ0eURlc2NyaXB0b3IgYXMgYW55KS5pbml0aWFsaXplcjtcblx0XHRtZXRhZGF0YS5jb250cm9sbGVyRXh0ZW5zaW9uc1twcm9wZXJ0eUtleS50b1N0cmluZygpXSA9IGV4dGVuc2lvbkNsYXNzO1xuXHRcdHJldHVybiBwcm9wZXJ0eURlc2NyaXB0b3I7XG5cdH0gYXMgYW55OyAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGFuIGFjY2Vzc29yIGRlY29yYXRvciwgYnV0IHNvbWVob3cgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgbGlrZSBpdCBpZiBpIGRlY2xhcmUgaXQgYXMgc3VjaC5cbn1cblxuLyogI2VuZHJlZ2lvbiAqL1xuXG4vKiAjcmVnaW9uIENPTlRST0wgKi9cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IHNoYWxsIGJlIGRlY2xhcmVkIGFzIGFuIGV2ZW50IG9uIHRoZSBjb250cm9sIG1ldGFkYXRhLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50KCk6IFByb3BlcnR5RGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2wsIGV2ZW50S2V5KSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXHRcdGlmICghbWV0YWRhdGEuZXZlbnRzW2V2ZW50S2V5LnRvU3RyaW5nKCldKSB7XG5cdFx0XHRtZXRhZGF0YS5ldmVudHNbZXZlbnRLZXkudG9TdHJpbmcoKV0gPSB7fTtcblx0XHR9XG5cdH07XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZm9sbG93aW5nIHByb3BlcnR5IGluIHRoZSBjb250cm9sIG1ldGF0YWRhLlxuICpcbiAqIEBwYXJhbSB1aTVQcm9wZXJ0eU1ldGFkYXRhIFRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkodWk1UHJvcGVydHlNZXRhZGF0YTogVUk1UHJvcGVydHlNZXRhZGF0YSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2wsIHByb3BlcnR5S2V5OiBzdHJpbmcsIHByb3BlcnR5RGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55Pikge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRpZiAoIW1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydHlLZXldKSB7XG5cdFx0XHRtZXRhZGF0YS5wcm9wZXJ0aWVzW3Byb3BlcnR5S2V5XSA9IHVpNVByb3BlcnR5TWV0YWRhdGE7XG5cdFx0fVxuXHRcdGRlbGV0ZSBwcm9wZXJ0eURlc2NyaXB0b3Iud3JpdGFibGU7XG5cdFx0ZGVsZXRlIChwcm9wZXJ0eURlc2NyaXB0b3IgYXMgYW55KS5pbml0aWFsaXplcjtcblxuXHRcdHJldHVybiBwcm9wZXJ0eURlc2NyaXB0b3I7XG5cdH0gYXMgYW55OyAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGFuIGFjY2Vzc29yIGRlY29yYXRvciwgYnV0IHNvbWVob3cgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgbGlrZSBpdCBpZiBpIGRlY2xhcmUgaXQgYXMgc3VjaC47XG59XG4vKipcbiAqIERlZmluZXMgYW5kIGNvbmZpZ3VyZSB0aGUgZm9sbG93aW5nIGFnZ3JlZ2F0aW9uIGluIHRoZSBjb250cm9sIG1ldGF0YWRhLlxuICpcbiAqIEBwYXJhbSB1aTVBZ2dyZWdhdGlvbk1ldGFkYXRhIFRoZSBhZ2dyZWdhdGlvbiBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWdncmVnYXRpb24odWk1QWdncmVnYXRpb25NZXRhZGF0YTogVUk1QWdncmVnYXRpb25NZXRhZGF0YSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2wsIHByb3BlcnR5S2V5OiBzdHJpbmcsIHByb3BlcnR5RGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55Pikge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0KTtcblx0XHRpZiAodWk1QWdncmVnYXRpb25NZXRhZGF0YS5tdWx0aXBsZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBVSTUgZGVmYXVsdHMgdGhpcyB0byB0cnVlIGJ1dCB0aGlzIGlzIGp1c3Qgd2VpcmQuLi5cblx0XHRcdHVpNUFnZ3JlZ2F0aW9uTWV0YWRhdGEubXVsdGlwbGUgPSBmYWxzZTtcblx0XHR9XG5cdFx0aWYgKCFtZXRhZGF0YS5hZ2dyZWdhdGlvbnNbcHJvcGVydHlLZXldKSB7XG5cdFx0XHRtZXRhZGF0YS5hZ2dyZWdhdGlvbnNbcHJvcGVydHlLZXldID0gdWk1QWdncmVnYXRpb25NZXRhZGF0YTtcblx0XHR9XG5cdFx0aWYgKHVpNUFnZ3JlZ2F0aW9uTWV0YWRhdGEuaXNEZWZhdWx0KSB7XG5cdFx0XHRtZXRhZGF0YS5kZWZhdWx0QWdncmVnYXRpb24gPSBwcm9wZXJ0eUtleTtcblx0XHR9XG5cdFx0ZGVsZXRlIHByb3BlcnR5RGVzY3JpcHRvci53cml0YWJsZTtcblx0XHRkZWxldGUgKHByb3BlcnR5RGVzY3JpcHRvciBhcyBhbnkpLmluaXRpYWxpemVyO1xuXG5cdFx0cmV0dXJuIHByb3BlcnR5RGVzY3JpcHRvcjtcblx0fSBhcyBhbnk7IC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgYW4gYWNjZXNzb3IgZGVjb3JhdG9yLCBidXQgc29tZWhvdyB0aGUgY29tcGlsZXIgZG9lc24ndCBsaWtlIGl0IGlmIGkgZGVjbGFyZSBpdCBhcyBzdWNoLjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGFuZCBjb25maWd1cmUgdGhlIGZvbGxvd2luZyBhc3NvY2lhdGlvbiBpbiB0aGUgY29udHJvbCBtZXRhdGFkYS5cbiAqXG4gKiBAcGFyYW0gdWk1QXNzb2NpYXRpb25NZXRhZGF0YSBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgYXNzb2NpYXRpb24uXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NvY2lhdGlvbih1aTVBc3NvY2lhdGlvbk1ldGFkYXRhOiBVSTVBc3NvY2lhdGlvbk1ldGFkYXRhKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogVUk1Q29udHJvbCwgcHJvcGVydHlLZXk6IHN0cmluZywgcHJvcGVydHlEZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQpO1xuXHRcdGlmICghbWV0YWRhdGEuYXNzb2NpYXRpb25zW3Byb3BlcnR5S2V5XSkge1xuXHRcdFx0bWV0YWRhdGEuYXNzb2NpYXRpb25zW3Byb3BlcnR5S2V5XSA9IHVpNUFzc29jaWF0aW9uTWV0YWRhdGE7XG5cdFx0fVxuXHRcdGRlbGV0ZSBwcm9wZXJ0eURlc2NyaXB0b3Iud3JpdGFibGU7XG5cdFx0ZGVsZXRlIChwcm9wZXJ0eURlc2NyaXB0b3IgYXMgYW55KS5pbml0aWFsaXplcjtcblxuXHRcdHJldHVybiBwcm9wZXJ0eURlc2NyaXB0b3I7XG5cdH0gYXMgYW55OyAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGFuIGFjY2Vzc29yIGRlY29yYXRvciwgYnV0IHNvbWVob3cgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgbGlrZSBpdCBpZiBpIGRlY2xhcmUgaXQgYXMgc3VjaC47XG59XG5cbi8qKlxuICogRGVmaW5lcyBpbiB0aGUgbWV0YWRhdGEgdGhhdCB0aGlzIGNvbnRyb2wgaW1wbGVtZW50cyBhIHNwZWNpZmljIGludGVyZmFjZS5cbiAqXG4gKiBAcGFyYW0gaW50ZXJmYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgaW1wbGVtZW50ZWQgaW50ZXJmYWNlXG4gKiBAcmV0dXJucyBUaGUgZGVjb3JhdGVkIG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW1wbGVtZW50SW50ZXJmYWNlKGludGVyZmFjZU5hbWU6IHN0cmluZyk6IFByb3BlcnR5RGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2wpIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IGVuc3VyZU1ldGFkYXRhKHRhcmdldCk7XG5cblx0XHRtZXRhZGF0YS5pbnRlcmZhY2VzLnB1c2goaW50ZXJmYWNlTmFtZSk7XG5cdH07XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBtZXRob2Qgc2hvdWxkIGFsc28gYmUgZXhwb3NlZCBzdGF0aWNhbGx5IHNvIHdlIGNhbiBjYWxsIGl0IGZyb20gWE1MLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkZWNvcmF0ZWQgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB4bWxFdmVudEhhbmRsZXIoKTogTWV0aG9kRGVjb3JhdG9yIHtcblx0cmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IFVJNUNvbnRyb2wsIHByb3BlcnR5a2V5KSB7XG5cdFx0Y29uc3QgY3VycmVudENvbnN0cnVjdG9yOiBVSTVBUElDb250cm9sID0gdGFyZ2V0LmNvbnN0cnVjdG9yIGFzIHVua25vd24gYXMgVUk1QVBJQ29udHJvbDtcblx0XHRjdXJyZW50Q29uc3RydWN0b3JbcHJvcGVydHlrZXkudG9TdHJpbmcoKV0gPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoKSB7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50Q29uc3RydWN0b3IuZ2V0QVBJKGFyZ3NbMF0gYXMgVUk1RXZlbnQpO1xuXHRcdFx0XHRjdXJyZW50VGFyZ2V0W3Byb3BlcnR5a2V5LnRvU3RyaW5nKCldKC4uLmFyZ3MpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH07XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBjbGFzcyBzaG91bGQgZGVmaW5lIGEgVUk1IGNvbnRyb2wgb2YgdGhlIHNwZWNpZmllZCBuYW1lLlxuICpcbiAqIEBwYXJhbSBzVGFyZ2V0IFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbWFjcm8gQVBJXG4gKiBAcGFyYW0gbWV0YWRhdGFEZWZpbml0aW9uIElubGluZSBtZXRhZGF0YSBkZWZpbml0aW9uXG4gKiBAY2xhc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVVJNUNsYXNzKHNUYXJnZXQ6IHN0cmluZywgbWV0YWRhdGFEZWZpbml0aW9uPzogYW55KTogQ2xhc3NEZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikge1xuXHRcdGlmICghY29uc3RydWN0b3IucHJvdG90eXBlLm1ldGFkYXRhKSB7XG5cdFx0XHRjb25zdHJ1Y3Rvci5wcm90b3R5cGUubWV0YWRhdGEgPSB7fTtcblx0XHR9XG5cdFx0aWYgKG1ldGFkYXRhRGVmaW5pdGlvbikge1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gbWV0YWRhdGFEZWZpbml0aW9uKSB7XG5cdFx0XHRcdGNvbnN0cnVjdG9yLnByb3RvdHlwZS5tZXRhZGF0YVtrZXldID0gbWV0YWRhdGFEZWZpbml0aW9uW2tleSBhcyBrZXlvZiBVSTVDb250cm9sTWV0YWRhdGFEZWZpbml0aW9uXTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlZ2lzdGVyVUk1TWV0YWRhdGEoY29uc3RydWN0b3IsIHNUYXJnZXQsIGNvbnN0cnVjdG9yLnByb3RvdHlwZSk7XG5cdH07XG59XG5cbi8qKlxuICogSW50ZXJuYWwgaGVhdnkgbGlmdGluZyB0aGF0IHdpbGwgdGFrZSBjYXJlIG9mIGNyZWF0aW5nIHRoZSBjbGFzcyBwcm9wZXJ0eSBmb3IgdWk1IHRvIHVzZS5cbiAqXG4gKiBAcGFyYW0gY2xhenogVGhlIGNsYXNzIHByb3RvdHlwZVxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRvIGNyZWF0ZVxuICogQHBhcmFtIGluT2JqIFRoZSBtZXRhZGF0YSBvYmplY3RcbiAqIEByZXR1cm5zIFRoZSBtZXRhZGF0YSBjbGFzc1xuICovXG5mdW5jdGlvbiByZWdpc3RlclVJNU1ldGFkYXRhKGNsYXp6OiBhbnksIG5hbWU6IHN0cmluZywgaW5PYmo6IGFueSk6IGFueSB7XG5cdGlmIChjbGF6ei5nZXRNZXRhZGF0YSAmJiBjbGF6ei5nZXRNZXRhZGF0YSgpLmlzQShcInNhcC51aS5jb3JlLm12Yy5Db250cm9sbGVyRXh0ZW5zaW9uXCIpKSB7XG5cdFx0T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaW5PYmopLmZvckVhY2goKG9iak5hbWUpID0+IHtcblx0XHRcdGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGluT2JqLCBvYmpOYW1lKTtcblx0XHRcdGlmIChkZXNjcmlwdG9yICYmICFkZXNjcmlwdG9yLmVudW1lcmFibGUpIHtcblx0XHRcdFx0ZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gdHJ1ZTtcblx0XHRcdFx0Ly9cdFx0TG9nLmVycm9yKGBQcm9wZXJ0eSAke29iak5hbWV9IGZyb20gJHtuYW1lfSBzaG91bGQgYmUgZGVjb3JhdGVkIGFzIHB1YmxpY2ApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdGNvbnN0IG9iajogYW55ID0ge307XG5cdG9iai5tZXRhZGF0YSA9IGluT2JqLm1ldGFkYXRhIHx8IHt9O1xuXHRvYmoub3ZlcnJpZGUgPSBpbk9iai5vdmVycmlkZTtcblx0b2JqLmNvbnN0cnVjdG9yID0gY2xheno7XG5cdG9iai5tZXRhZGF0YS5iYXNlVHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbGF6ei5wcm90b3R5cGUpLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXG5cdGlmIChjbGF6ej8uZ2V0TWV0YWRhdGEoKT8uZ2V0U3RlcmVvdHlwZSgpID09PSBcImNvbnRyb2xcIikge1xuXHRcdGNvbnN0IHJlbmRlcmVyRGVmaW5pdGlvbiA9IGluT2JqLnJlbmRlcmVyIHx8IGNsYXp6LnJlbmRlcmVyIHx8IGNsYXp6LnJlbmRlcjtcblx0XHRvYmoucmVuZGVyZXIgPSB7IGFwaVZlcnNpb246IDIgfTtcblx0XHRpZiAodHlwZW9mIHJlbmRlcmVyRGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRvYmoucmVuZGVyZXIucmVuZGVyID0gcmVuZGVyZXJEZWZpbml0aW9uO1xuXHRcdH0gZWxzZSBpZiAocmVuZGVyZXJEZWZpbml0aW9uICE9IHVuZGVmaW5lZCkge1xuXHRcdFx0b2JqLnJlbmRlcmVyID0gcmVuZGVyZXJEZWZpbml0aW9uO1xuXHRcdH1cblx0fVxuXHRvYmoubWV0YWRhdGEuaW50ZXJmYWNlcyA9IGluT2JqLm1ldGFkYXRhPy5pbnRlcmZhY2VzIHx8IGNsYXp6Lm1ldGFkYXRhPy5pbnRlcmZhY2VzO1xuXHRPYmplY3Qua2V5cyhjbGF6ei5wcm90b3R5cGUpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdGlmIChrZXkgIT09IFwibWV0YWRhdGFcIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0b2JqW2tleV0gPSBjbGF6ei5wcm90b3R5cGVba2V5XTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRpZiAob2JqLm1ldGFkYXRhPy5jb250cm9sbGVyRXh0ZW5zaW9ucyAmJiBPYmplY3Qua2V5cyhvYmoubWV0YWRhdGEuY29udHJvbGxlckV4dGVuc2lvbnMpLmxlbmd0aCA+IDApIHtcblx0XHRmb3IgKGNvbnN0IGNFeHROYW1lIGluIG9iai5tZXRhZGF0YS5jb250cm9sbGVyRXh0ZW5zaW9ucykge1xuXHRcdFx0b2JqW2NFeHROYW1lXSA9IG9iai5tZXRhZGF0YS5jb250cm9sbGVyRXh0ZW5zaW9uc1tjRXh0TmFtZV07XG5cdFx0fVxuXHR9XG5cdGNvbnN0IG91dHB1dCA9IGNsYXp6LmV4dGVuZChuYW1lLCBvYmopO1xuXHRjb25zdCBmbkluaXQgPSBvdXRwdXQucHJvdG90eXBlLmluaXQ7XG5cdG91dHB1dC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuXHRcdGlmIChmbkluaXQpIHtcblx0XHRcdGZuSW5pdC5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHR9XG5cdFx0dGhpcy5tZXRhZGF0YSA9IG9iai5tZXRhZGF0YTtcblxuXHRcdGlmIChvYmoubWV0YWRhdGEucHJvcGVydGllcykge1xuXHRcdFx0Y29uc3QgYVByb3BlcnR5S2V5cyA9IE9iamVjdC5rZXlzKG9iai5tZXRhZGF0YS5wcm9wZXJ0aWVzKTtcblx0XHRcdGFQcm9wZXJ0eUtleXMuZm9yRWFjaCgocHJvcGVydHlLZXkpID0+IHtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5S2V5LCB7XG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHNldDogKHY6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2V0UHJvcGVydHkocHJvcGVydHlLZXksIHYpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShwcm9wZXJ0eUtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgYUFnZ3JlZ2F0aW9uS2V5cyA9IE9iamVjdC5rZXlzKG9iai5tZXRhZGF0YS5hZ2dyZWdhdGlvbnMpO1xuXHRcdFx0YUFnZ3JlZ2F0aW9uS2V5cy5mb3JFYWNoKChhZ2dyZWdhdGlvbktleSkgPT4ge1xuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgYWdncmVnYXRpb25LZXksIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5zZXRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbktleSwgdik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRnZXQ6ICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGFnZ3JlZ2F0aW9uQ29udGVudCA9IHRoaXMuZ2V0QWdncmVnYXRpb24oYWdncmVnYXRpb25LZXkpO1xuXHRcdFx0XHRcdFx0aWYgKG9iai5tZXRhZGF0YS5hZ2dyZWdhdGlvbnNbYWdncmVnYXRpb25LZXldLm11bHRpcGxlKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBhZ2dyZWdhdGlvbkNvbnRlbnQgfHwgW107XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gYWdncmVnYXRpb25Db250ZW50O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGFBc3NvY2lhdGlvbktleXMgPSBPYmplY3Qua2V5cyhvYmoubWV0YWRhdGEuYXNzb2NpYXRpb25zKTtcblx0XHRcdGFBc3NvY2lhdGlvbktleXMuZm9yRWFjaCgoYXNzb2NpYXRpb25LZXkpID0+IHtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGFzc29jaWF0aW9uS2V5LCB7XG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHNldDogKHY6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2V0QXNzb2NpYXRpb24oYXNzb2NpYXRpb25LZXksIHYpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBhZ2dyZWdhdGlvbkNvbnRlbnQgPSB0aGlzLmdldEFzc29jaWF0aW9uKGFzc29jaWF0aW9uS2V5KTtcblx0XHRcdFx0XHRcdGlmIChvYmoubWV0YWRhdGEuYXNzb2NpYXRpb25zW2Fzc29jaWF0aW9uS2V5XS5tdWx0aXBsZSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gYWdncmVnYXRpb25Db250ZW50IHx8IFtdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGFnZ3JlZ2F0aW9uQ29udGVudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xuXHRjbGF6ei5vdmVycmlkZSA9IGZ1bmN0aW9uIChvRXh0ZW5zaW9uOiBhbnkpIHtcblx0XHRjb25zdCBwb2wgPSB7fTtcblx0XHQocG9sIGFzIGFueSkuY29uc3RydWN0b3IgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdHJldHVybiBjbGF6ei5hcHBseSh0aGlzLCBhcmdzIGFzIGFueSk7XG5cdFx0fTtcblx0XHRjb25zdCBvQ2xhc3MgPSAoTWV0YWRhdGEgYXMgYW55KS5jcmVhdGVDbGFzcyhjbGF6eiwgYGFub255bW91c0V4dGVuc2lvbn4ke3VpZCgpfWAsIHBvbCwgQ29udHJvbGxlck1ldGFkYXRhKTtcblx0XHRvQ2xhc3MuZ2V0TWV0YWRhdGEoKS5fc3RhdGljT3ZlcnJpZGUgPSBvRXh0ZW5zaW9uO1xuXHRcdG9DbGFzcy5nZXRNZXRhZGF0YSgpLl9vdmVycmlkZSA9IGNsYXp6LmdldE1ldGFkYXRhKCkuX292ZXJyaWRlO1xuXHRcdHJldHVybiBvQ2xhc3M7XG5cdH07XG5cblx0T2JqZWN0UGF0aC5zZXQobmFtZSwgb3V0cHV0KTtcblx0cmV0dXJuIG91dHB1dDtcbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import merge from "sap/base/util/merge";
|
|
2
2
|
import ObjectPath from "sap/base/util/ObjectPath";
|
|
3
3
|
import uid from "sap/base/util/uid";
|
|
4
|
-
import UI5Event from "sap/ui/base/Event";
|
|
4
|
+
import type UI5Event from "sap/ui/base/Event";
|
|
5
5
|
import Metadata from "sap/ui/base/Metadata";
|
|
6
|
-
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
6
|
+
import type ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
7
7
|
import ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
|
|
8
|
-
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
8
|
+
import type OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
9
9
|
|
|
10
10
|
type OverrideDefinition = Record<string, Function>;
|
|
11
11
|
type UI5ControllerMethodDefinition = {
|
|
@@ -283,7 +283,7 @@ export function implementInterface(interfaceName: string): PropertyDecorator {
|
|
|
283
283
|
}
|
|
284
284
|
|
|
285
285
|
/**
|
|
286
|
-
* Indicates that the following method should also be exposed statically so we can call it from
|
|
286
|
+
* Indicates that the following method should also be exposed statically so we can call it from XML.
|
|
287
287
|
*
|
|
288
288
|
* @returns The decorated method
|
|
289
289
|
*/
|
|
@@ -291,14 +291,16 @@ export function xmlEventHandler(): MethodDecorator {
|
|
|
291
291
|
return function (target: UI5Control, propertykey) {
|
|
292
292
|
const currentConstructor: UI5APIControl = target.constructor as unknown as UI5APIControl;
|
|
293
293
|
currentConstructor[propertykey.toString()] = function (...args: any[]) {
|
|
294
|
-
|
|
295
|
-
|
|
294
|
+
if (args && args.length) {
|
|
295
|
+
const currentTarget = currentConstructor.getAPI(args[0] as UI5Event);
|
|
296
|
+
currentTarget[propertykey.toString()](...args);
|
|
297
|
+
}
|
|
296
298
|
};
|
|
297
299
|
};
|
|
298
300
|
}
|
|
299
301
|
|
|
300
302
|
/**
|
|
301
|
-
* Indicates that the following class should define a
|
|
303
|
+
* Indicates that the following class should define a UI5 control of the specified name.
|
|
302
304
|
*
|
|
303
305
|
* @param sTarget The fully qualified name of the macro API
|
|
304
306
|
* @param metadataDefinition Inline metadata definition
|
|
@@ -369,7 +371,9 @@ function registerUI5Metadata(clazz: any, name: string, inObj: any): any {
|
|
|
369
371
|
const output = clazz.extend(name, obj);
|
|
370
372
|
const fnInit = output.prototype.init;
|
|
371
373
|
output.prototype.init = function (...args: any[]) {
|
|
372
|
-
|
|
374
|
+
if (fnInit) {
|
|
375
|
+
fnInit.apply(this, args);
|
|
376
|
+
}
|
|
373
377
|
this.metadata = obj.metadata;
|
|
374
378
|
|
|
375
379
|
if (obj.metadata.properties) {
|
|
@@ -426,9 +430,9 @@ function registerUI5Metadata(clazz: any, name: string, inObj: any): any {
|
|
|
426
430
|
(pol as any).constructor = function (...args: any[]) {
|
|
427
431
|
return clazz.apply(this, args as any);
|
|
428
432
|
};
|
|
429
|
-
const oClass = (Metadata as any).createClass(clazz,
|
|
433
|
+
const oClass = (Metadata as any).createClass(clazz, `anonymousExtension~${uid()}`, pol, ControllerMetadata);
|
|
430
434
|
oClass.getMetadata()._staticOverride = oExtension;
|
|
431
|
-
oClass.getMetadata()._override =
|
|
435
|
+
oClass.getMetadata()._override = clazz.getMetadata()._override;
|
|
432
436
|
return oClass;
|
|
433
437
|
};
|
|
434
438
|
|
|
@@ -25,7 +25,7 @@ sap.ui.define(["sap/ui/base/BindingParser"], function (BindingParser) {
|
|
|
25
25
|
*
|
|
26
26
|
* @param sAnnotationPath
|
|
27
27
|
* @param oMetaModel
|
|
28
|
-
* @returns
|
|
28
|
+
* @returns The non dynamic version of the annotation path
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
|
|
@@ -63,4 +63,4 @@ sap.ui.define(["sap/ui/base/BindingParser"], function (BindingParser) {
|
|
|
63
63
|
_exports.resolveDynamicExpression = resolveDynamicExpression;
|
|
64
64
|
return _exports;
|
|
65
65
|
}, false);
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR5bmFtaWNBbm5vdGF0aW9uUGF0aEhlbHBlci50cyJdLCJuYW1lcyI6WyJnZXRPYmplY3QiLCJvT2JqZWN0Iiwic1BhdGgiLCJzUGF0aFNwbGl0Iiwic3BsaXQiLCJsZW5ndGgiLCJzcGxpY2UiLCJqb2luIiwicmVzb2x2ZUR5bmFtaWNFeHByZXNzaW9uIiwic0Fubm90YXRpb25QYXRoIiwib01ldGFNb2RlbCIsImluZGV4T2YiLCJmaXJzdEJyYWNrZXQiLCJzU3RhYmxlQnJhY2tldCIsInN1YnN0ciIsInNSZXN0IiwibGFzdEJyYWNrZXQiLCJhVmFsdWUiLCJvRXhwcmVzc2lvbiIsIkJpbmRpbmdQYXJzZXIiLCJwYXJzZUV4cHJlc3Npb24iLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJwYXJ0cyIsInBhdGgiLCJpIiwiYkZvdW5kIiwib09iamVjdFZhbHVlIiwiYlJlc3VsdCIsImZvcm1hdHRlciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBQUEsV0FBU0EsU0FBVCxDQUFtQkMsT0FBbkIsRUFBaUNDLEtBQWpDLEVBQWtEO0FBQ2pELFFBQUksQ0FBQ0QsT0FBTCxFQUFjO0FBQ2IsYUFBTyxJQUFQO0FBQ0E7O0FBQ0QsUUFBTUUsVUFBVSxHQUFHRCxLQUFLLENBQUNFLEtBQU4sQ0FBWSxHQUFaLENBQW5COztBQUNBLFFBQUlELFVBQVUsQ0FBQ0UsTUFBWCxLQUFzQixDQUExQixFQUE2QjtBQUM1QixhQUFPSixPQUFPLENBQUNDLEtBQUQsQ0FBZDtBQUNBLEtBRkQsTUFFTztBQUNOLGFBQU9GLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDRSxVQUFVLENBQUMsQ0FBRCxDQUFYLENBQVIsRUFBeUJBLFVBQVUsQ0FBQ0csTUFBWCxDQUFrQixDQUFsQixFQUFxQkMsSUFBckIsQ0FBMEIsR0FBMUIsQ0FBekIsQ0FBaEI7QUFDQTtBQUNEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLFdBQVNDLHdCQUFULENBQWtDQyxlQUFsQyxFQUF3REMsVUFBeEQsRUFBeUU7QUFDL0UsUUFBSUQsZUFBZSxDQUFDRSxPQUFoQixDQUF3QixHQUF4QixNQUFpQyxDQUFDLENBQXRDLEVBQXlDO0FBQ3hDLFVBQU1DLFlBQVksR0FBR0gsZUFBZSxDQUFDRSxPQUFoQixDQUF3QixHQUF4QixDQUFyQjtBQUNBLFVBQU1FLGNBQWMsR0FBR0osZUFBZSxDQUFDSyxNQUFoQixDQUF1QixDQUF2QixFQUEwQkYsWUFBMUIsQ0FBdkI7QUFDQSxVQUFNRyxLQUFLLEdBQUdOLGVBQWUsQ0FBQ0ssTUFBaEIsQ0FBdUJGLFlBQVksR0FBRyxDQUF0QyxDQUFkO0FBQ0EsVUFBTUksV0FBVyxHQUFHRCxLQUFLLENBQUNKLE9BQU4sQ0FBYyxHQUFkLENBQXBCO0FBQ0EsVUFBTU0sTUFBTSxHQUFHUCxVQUFVLENBQUNWLFNBQVgsQ0FBcUJhLGNBQXJCLENBQWY7QUFDQSxVQUFNSyxXQUFXLEdBQUdDLGFBQWEsQ0FBQ0MsZUFBZCxDQUE4QkwsS0FBSyxDQUFDRCxNQUFOLENBQWEsQ0FBYixFQUFnQkUsV0FBaEIsQ0FBOUIsQ0FBcEI7O0FBQ0EsVUFDQ0ssS0FBSyxDQUFDQyxPQUFOLENBQWNMLE1BQWQsS0FDQUMsV0FEQSxJQUVBQSxXQUFXLENBQUNLLE1BRlosSUFHQUwsV0FBVyxDQUFDSyxNQUFaLENBQW1CQyxLQUhuQixJQUlBTixXQUFXLENBQUNLLE1BQVosQ0FBbUJDLEtBQW5CLENBQXlCLENBQXpCLENBSkEsSUFLQU4sV0FBVyxDQUFDSyxNQUFaLENBQW1CQyxLQUFuQixDQUF5QixDQUF6QixFQUE0QkMsSUFON0IsRUFPRTtBQUNELFlBQUlDLENBQUo7QUFDQSxZQUFJQyxNQUFNLEdBQUcsS0FBYjs7QUFDQSxhQUFLRCxDQUFDLEdBQUcsQ0FBVCxFQUFZQSxDQUFDLEdBQUdULE1BQU0sQ0FBQ1osTUFBWCxJQUFxQixDQUFDc0IsTUFBbEMsRUFBMENELENBQUMsRUFBM0MsRUFBK0M7QUFDOUMsY0FBTUUsWUFBWSxHQUFHNUIsU0FBUyxDQUFDaUIsTUFBTSxDQUFDUyxDQUFELENBQVAsRUFBWVIsV0FBVyxDQUFDSyxNQUFaLENBQW1CQyxLQUFuQixDQUF5QixDQUF6QixFQUE0QkMsSUFBeEMsQ0FBOUI7QUFDQSxjQUFNSSxPQUFPLEdBQUdYLFdBQVcsQ0FBQ0ssTUFBWixDQUFtQk8sU0FBbkIsQ0FBNkJGLFlBQTdCLENBQWhCOztBQUNBLGNBQUlDLE9BQUosRUFBYTtBQUNaRixZQUFBQSxNQUFNLEdBQUcsSUFBVDtBQUNBO0FBQ0Q7O0FBQ0QsWUFBSUEsTUFBSixFQUFZO0FBQ1hsQixVQUFBQSxlQUFlLEdBQUdELHdCQUF3QixDQUFDSyxjQUFjLElBQUlhLENBQUMsR0FBRyxDQUFSLENBQWQsR0FBMkJYLEtBQUssQ0FBQ0QsTUFBTixDQUFhRSxXQUFXLEdBQUcsQ0FBM0IsQ0FBNUIsRUFBMkROLFVBQTNELENBQTFDO0FBQ0E7QUFDRDtBQUNEOztBQUNELFdBQU9ELGVBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpbmRpbmdQYXJzZXIgZnJvbSBcInNhcC91aS9iYXNlL0JpbmRpbmdQYXJzZXJcIjtcblxuZnVuY3Rpb24gZ2V0T2JqZWN0KG9PYmplY3Q6IGFueSwgc1BhdGg6IGFueSk6IGFueSB7XG5cdGlmICghb09iamVjdCkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cdGNvbnN0IHNQYXRoU3BsaXQgPSBzUGF0aC5zcGxpdChcIi9cIik7XG5cdGlmIChzUGF0aFNwbGl0Lmxlbmd0aCA9PT0gMSkge1xuXHRcdHJldHVybiBvT2JqZWN0W3NQYXRoXTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZ2V0T2JqZWN0KG9PYmplY3Rbc1BhdGhTcGxpdFswXV0sIHNQYXRoU3BsaXQuc3BsaWNlKDEpLmpvaW4oXCIvXCIpKTtcblx0fVxufVxuLyoqXG4gKiBSZXNvbHZlIGEgZHluYW1pYyBhbm5vdGF0aW9uIHBhdGggZG93biB0byBhIHN0YW5kYXJkIGFubm90YXRpb24gcGF0aC5cbiAqXG4gKiBAcGFyYW0gc0Fubm90YXRpb25QYXRoXG4gKiBAcGFyYW0gb01ldGFNb2RlbFxuICogQHJldHVybnMgVGhlIG5vbiBkeW5hbWljIHZlcnNpb24gb2YgdGhlIGFubm90YXRpb24gcGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUR5bmFtaWNFeHByZXNzaW9uKHNBbm5vdGF0aW9uUGF0aDogYW55LCBvTWV0YU1vZGVsOiBhbnkpIHtcblx0aWYgKHNBbm5vdGF0aW9uUGF0aC5pbmRleE9mKFwiW1wiKSAhPT0gLTEpIHtcblx0XHRjb25zdCBmaXJzdEJyYWNrZXQgPSBzQW5ub3RhdGlvblBhdGguaW5kZXhPZihcIltcIik7XG5cdFx0Y29uc3Qgc1N0YWJsZUJyYWNrZXQgPSBzQW5ub3RhdGlvblBhdGguc3Vic3RyKDAsIGZpcnN0QnJhY2tldCk7XG5cdFx0Y29uc3Qgc1Jlc3QgPSBzQW5ub3RhdGlvblBhdGguc3Vic3RyKGZpcnN0QnJhY2tldCArIDEpO1xuXHRcdGNvbnN0IGxhc3RCcmFja2V0ID0gc1Jlc3QuaW5kZXhPZihcIl1cIik7XG5cdFx0Y29uc3QgYVZhbHVlID0gb01ldGFNb2RlbC5nZXRPYmplY3Qoc1N0YWJsZUJyYWNrZXQpO1xuXHRcdGNvbnN0IG9FeHByZXNzaW9uID0gQmluZGluZ1BhcnNlci5wYXJzZUV4cHJlc3Npb24oc1Jlc3Quc3Vic3RyKDAsIGxhc3RCcmFja2V0KSk7XG5cdFx0aWYgKFxuXHRcdFx0QXJyYXkuaXNBcnJheShhVmFsdWUpICYmXG5cdFx0XHRvRXhwcmVzc2lvbiAmJlxuXHRcdFx0b0V4cHJlc3Npb24ucmVzdWx0ICYmXG5cdFx0XHRvRXhwcmVzc2lvbi5yZXN1bHQucGFydHMgJiZcblx0XHRcdG9FeHByZXNzaW9uLnJlc3VsdC5wYXJ0c1swXSAmJlxuXHRcdFx0b0V4cHJlc3Npb24ucmVzdWx0LnBhcnRzWzBdLnBhdGhcblx0XHQpIHtcblx0XHRcdGxldCBpO1xuXHRcdFx0bGV0IGJGb3VuZCA9IGZhbHNlO1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGFWYWx1ZS5sZW5ndGggJiYgIWJGb3VuZDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IG9PYmplY3RWYWx1ZSA9IGdldE9iamVjdChhVmFsdWVbaV0sIG9FeHByZXNzaW9uLnJlc3VsdC5wYXJ0c1swXS5wYXRoKTtcblx0XHRcdFx0Y29uc3QgYlJlc3VsdCA9IG9FeHByZXNzaW9uLnJlc3VsdC5mb3JtYXR0ZXIob09iamVjdFZhbHVlKTtcblx0XHRcdFx0aWYgKGJSZXN1bHQpIHtcblx0XHRcdFx0XHRiRm91bmQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoYkZvdW5kKSB7XG5cdFx0XHRcdHNBbm5vdGF0aW9uUGF0aCA9IHJlc29sdmVEeW5hbWljRXhwcmVzc2lvbihzU3RhYmxlQnJhY2tldCArIChpIC0gMSkgKyBzUmVzdC5zdWJzdHIobGFzdEJyYWNrZXQgKyAxKSwgb01ldGFNb2RlbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBzQW5ub3RhdGlvblBhdGg7XG59XG4iXX0=
|
|
@@ -16,7 +16,7 @@ function getObject(oObject: any, sPath: any): any {
|
|
|
16
16
|
*
|
|
17
17
|
* @param sAnnotationPath
|
|
18
18
|
* @param oMetaModel
|
|
19
|
-
* @returns
|
|
19
|
+
* @returns The non dynamic version of the annotation path
|
|
20
20
|
*/
|
|
21
21
|
export function resolveDynamicExpression(sAnnotationPath: any, oMetaModel: any) {
|
|
22
22
|
if (sAnnotationPath.indexOf("[") !== -1) {
|
|
@@ -18,7 +18,6 @@ sap.ui.define([], function () {
|
|
|
18
18
|
* @function
|
|
19
19
|
* @name sap.fe.core.helpers.EditState#setEditStateDirty
|
|
20
20
|
* @memberof sap.fe.core.helpers.EditState
|
|
21
|
-
*
|
|
22
21
|
* @ui5-restricted
|
|
23
22
|
* @final
|
|
24
23
|
*/
|
|
@@ -32,7 +31,6 @@ sap.ui.define([], function () {
|
|
|
32
31
|
* @function
|
|
33
32
|
* @name sap.fe.core.helpers.EditState#setEditStateProcessed
|
|
34
33
|
* @memberof sap.fe.core.helpers.EditState
|
|
35
|
-
*
|
|
36
34
|
* @ui5-restricted
|
|
37
35
|
* @final
|
|
38
36
|
*/
|
|
@@ -46,7 +44,6 @@ sap.ui.define([], function () {
|
|
|
46
44
|
* @function
|
|
47
45
|
* @name sap.fe.core.helpers.EditState#resetEditState
|
|
48
46
|
* @memberof sap.fe.core.helpers.EditState
|
|
49
|
-
*
|
|
50
47
|
* @ui5-restricted
|
|
51
48
|
* @final
|
|
52
49
|
*/
|
|
@@ -60,7 +57,6 @@ sap.ui.define([], function () {
|
|
|
60
57
|
* @function
|
|
61
58
|
* @name sap.fe.core.helpers.EditState#isEditStateDirty
|
|
62
59
|
* @memberof sap.fe.core.helpers.EditState
|
|
63
|
-
*
|
|
64
60
|
* @ui5-restricted
|
|
65
61
|
* @final
|
|
66
62
|
*/
|
|
@@ -74,7 +70,6 @@ sap.ui.define([], function () {
|
|
|
74
70
|
* @function
|
|
75
71
|
* @name sap.fe.core.helpers.EditState#cleanProcessedEditState
|
|
76
72
|
* @memberof sap.fe.core.helpers.EditState
|
|
77
|
-
*
|
|
78
73
|
* @ui5-restricted
|
|
79
74
|
* @final
|
|
80
75
|
*/
|
|
@@ -85,4 +80,4 @@ sap.ui.define([], function () {
|
|
|
85
80
|
}
|
|
86
81
|
};
|
|
87
82
|
}, false);
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkVkaXRTdGF0ZS50cyJdLCJuYW1lcyI6WyJlbnVtRWRpdFN0YXRlIiwiQ0xFQU4iLCJQUk9DRVNTRUQiLCJESVJUWSIsImN1cnJlbnRFZGl0U3RhdGUiLCJzZXRFZGl0U3RhdGVEaXJ0eSIsInNldEVkaXRTdGF0ZVByb2Nlc3NlZCIsInJlc2V0RWRpdFN0YXRlIiwiaXNFZGl0U3RhdGVEaXJ0eSIsImNsZWFuUHJvY2Vzc2VkRWRpdFN0YXRlIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBRkEsTUFBTUEsYUFBYSxHQUFHO0FBQ3JCQyxJQUFBQSxLQUFLLEVBQUUsQ0FEYztBQUVyQkMsSUFBQUEsU0FBUyxFQUFFLENBRlU7QUFHckJDLElBQUFBLEtBQUssRUFBRTtBQUhjLEdBQXRCO0FBS0EsTUFBSUMsZ0JBQWdCLEdBQUdKLGFBQWEsQ0FBQ0MsS0FBckM7U0FFZTtBQUNkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDSSxJQUFBQSxpQkFBaUIsRUFBRSxZQUFZO0FBQzlCRCxNQUFBQSxnQkFBZ0IsR0FBR0osYUFBYSxDQUFDRyxLQUFqQztBQUNBLEtBWmE7O0FBY2Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0NHLElBQUFBLHFCQUFxQixFQUFFLFlBQVk7QUFDbENGLE1BQUFBLGdCQUFnQixHQUFHSixhQUFhLENBQUNFLFNBQWpDO0FBQ0EsS0F6QmE7O0FBMkJkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDSyxJQUFBQSxjQUFjLEVBQUUsWUFBWTtBQUMzQkgsTUFBQUEsZ0JBQWdCLEdBQUdKLGFBQWEsQ0FBQ0MsS0FBakM7QUFDQSxLQXRDYTs7QUF3Q2Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUNPLElBQUFBLGdCQUFnQixFQUFFLFlBQVk7QUFDN0IsYUFBT0osZ0JBQWdCLEtBQUtKLGFBQWEsQ0FBQ0MsS0FBMUM7QUFDQSxLQXBEYTs7QUFzRGQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0NRLElBQUFBLHVCQUF1QixFQUFFLFlBQVk7QUFDcEMsVUFBSUwsZ0JBQWdCLEtBQUtKLGFBQWEsQ0FBQ0UsU0FBdkMsRUFBa0Q7QUFDakRFLFFBQUFBLGdCQUFnQixHQUFHSixhQUFhLENBQUNDLEtBQWpDO0FBQ0E7QUFDRDtBQW5FYSxHIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlbnVtRWRpdFN0YXRlID0ge1xuXHRDTEVBTjogMCxcblx0UFJPQ0VTU0VEOiAxLFxuXHRESVJUWTogMlxufTtcbmxldCBjdXJyZW50RWRpdFN0YXRlID0gZW51bUVkaXRTdGF0ZS5DTEVBTjtcblxuZXhwb3J0IGRlZmF1bHQge1xuXHQvKipcblx0ICogVGhpcyBzZXRzIHRoZSBlZGl0IHN0YXRlIGFzIGRpcnR5LCBtZWFuaW5nIGJpbmRpbmdzIGhhdmUgdG8gYmUgcmVmcmVzaGVkLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjc2V0RWRpdFN0YXRlRGlydHlcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLmhlbHBlcnMuRWRpdFN0YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAZmluYWxcblx0ICovXG5cdHNldEVkaXRTdGF0ZURpcnR5OiBmdW5jdGlvbiAoKSB7XG5cdFx0Y3VycmVudEVkaXRTdGF0ZSA9IGVudW1FZGl0U3RhdGUuRElSVFk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFRoaXMgc2V0cyB0aGUgZWRpdCBzdGF0ZSBhcyBwcm9jZXNzZWQsIG1lYW5pbmcgaXMgY2FuIGJlIHJlc2V0IHRvIGNsZWFuIGFmdGVyIGFsbCBiaW5kaW5ncyBhcmUgcmVmcmVzaGVkLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjc2V0RWRpdFN0YXRlUHJvY2Vzc2VkXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5oZWxwZXJzLkVkaXRTdGF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRzZXRFZGl0U3RhdGVQcm9jZXNzZWQ6IGZ1bmN0aW9uICgpIHtcblx0XHRjdXJyZW50RWRpdFN0YXRlID0gZW51bUVkaXRTdGF0ZS5QUk9DRVNTRUQ7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJlc2V0cyB0aGUgZWRpdCBzdGF0ZSB0byB0aGUgaW5pdGlhbCBzdGF0ZS5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLmhlbHBlcnMuRWRpdFN0YXRlI3Jlc2V0RWRpdFN0YXRlXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5oZWxwZXJzLkVkaXRTdGF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRyZXNldEVkaXRTdGF0ZTogZnVuY3Rpb24gKCkge1xuXHRcdGN1cnJlbnRFZGl0U3RhdGUgPSBlbnVtRWRpdFN0YXRlLkNMRUFOO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVkaXQgc3RhdGUgaXMgbm90IGNsZWFuLCBtZWFuaW5nIGJpbmRpbmdzIGhhdmUgdG8gYmUgcmVmcmVzaGVkXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5oZWxwZXJzLkVkaXRTdGF0ZSNpc0VkaXRTdGF0ZURpcnR5XG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5oZWxwZXJzLkVkaXRTdGF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXG5cdGlzRWRpdFN0YXRlRGlydHk6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gY3VycmVudEVkaXRTdGF0ZSAhPT0gZW51bUVkaXRTdGF0ZS5DTEVBTjtcblx0fSxcblxuXHQvKipcblx0ICogQ2xlYW5zIHRoZSBlZGl0IHN0YXRlIGlmIGl0IGhhcyBiZWVuIHByb2Nlc3NlZCwgaS5lLiBiaW5kaW5ncyBoYXZlIGJlZW4gcHJvcGVybHkgcmVmcmVzaGVkLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjY2xlYW5Qcm9jZXNzZWRFZGl0U3RhdGVcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLmhlbHBlcnMuRWRpdFN0YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAZmluYWxcblx0ICovXG5cdGNsZWFuUHJvY2Vzc2VkRWRpdFN0YXRlOiBmdW5jdGlvbiAoKSB7XG5cdFx0aWYgKGN1cnJlbnRFZGl0U3RhdGUgPT09IGVudW1FZGl0U3RhdGUuUFJPQ0VTU0VEKSB7XG5cdFx0XHRjdXJyZW50RWRpdFN0YXRlID0gZW51bUVkaXRTdGF0ZS5DTEVBTjtcblx0XHR9XG5cdH1cbn07XG4iXX0=
|
|
@@ -12,11 +12,10 @@ export default {
|
|
|
12
12
|
* @function
|
|
13
13
|
* @name sap.fe.core.helpers.EditState#setEditStateDirty
|
|
14
14
|
* @memberof sap.fe.core.helpers.EditState
|
|
15
|
-
*
|
|
16
15
|
* @ui5-restricted
|
|
17
16
|
* @final
|
|
18
17
|
*/
|
|
19
|
-
setEditStateDirty: function() {
|
|
18
|
+
setEditStateDirty: function () {
|
|
20
19
|
currentEditState = enumEditState.DIRTY;
|
|
21
20
|
},
|
|
22
21
|
|
|
@@ -26,11 +25,10 @@ export default {
|
|
|
26
25
|
* @function
|
|
27
26
|
* @name sap.fe.core.helpers.EditState#setEditStateProcessed
|
|
28
27
|
* @memberof sap.fe.core.helpers.EditState
|
|
29
|
-
*
|
|
30
28
|
* @ui5-restricted
|
|
31
29
|
* @final
|
|
32
30
|
*/
|
|
33
|
-
setEditStateProcessed: function() {
|
|
31
|
+
setEditStateProcessed: function () {
|
|
34
32
|
currentEditState = enumEditState.PROCESSED;
|
|
35
33
|
},
|
|
36
34
|
|
|
@@ -40,11 +38,10 @@ export default {
|
|
|
40
38
|
* @function
|
|
41
39
|
* @name sap.fe.core.helpers.EditState#resetEditState
|
|
42
40
|
* @memberof sap.fe.core.helpers.EditState
|
|
43
|
-
*
|
|
44
41
|
* @ui5-restricted
|
|
45
42
|
* @final
|
|
46
43
|
*/
|
|
47
|
-
resetEditState: function() {
|
|
44
|
+
resetEditState: function () {
|
|
48
45
|
currentEditState = enumEditState.CLEAN;
|
|
49
46
|
},
|
|
50
47
|
|
|
@@ -54,12 +51,11 @@ export default {
|
|
|
54
51
|
* @function
|
|
55
52
|
* @name sap.fe.core.helpers.EditState#isEditStateDirty
|
|
56
53
|
* @memberof sap.fe.core.helpers.EditState
|
|
57
|
-
*
|
|
58
54
|
* @ui5-restricted
|
|
59
55
|
* @final
|
|
60
56
|
*/
|
|
61
57
|
|
|
62
|
-
isEditStateDirty: function() {
|
|
58
|
+
isEditStateDirty: function () {
|
|
63
59
|
return currentEditState !== enumEditState.CLEAN;
|
|
64
60
|
},
|
|
65
61
|
|
|
@@ -69,11 +65,10 @@ export default {
|
|
|
69
65
|
* @function
|
|
70
66
|
* @name sap.fe.core.helpers.EditState#cleanProcessedEditState
|
|
71
67
|
* @memberof sap.fe.core.helpers.EditState
|
|
72
|
-
*
|
|
73
68
|
* @ui5-restricted
|
|
74
69
|
* @final
|
|
75
70
|
*/
|
|
76
|
-
cleanProcessedEditState: function() {
|
|
71
|
+
cleanProcessedEditState: function () {
|
|
77
72
|
if (currentEditState === enumEditState.PROCESSED) {
|
|
78
73
|
currentEditState = enumEditState.CLEAN;
|
|
79
74
|
}
|
|
@@ -9,7 +9,7 @@ sap.ui.define(["sap/ui/core/format/DateFormat"], function (DateFormat) {
|
|
|
9
9
|
/**
|
|
10
10
|
* Method for converting JS Date format to Excel custom date format.
|
|
11
11
|
*
|
|
12
|
-
* @returns
|
|
12
|
+
* @returns Format for the Date column to be used on excel.
|
|
13
13
|
*/
|
|
14
14
|
getExcelDatefromJSDate: function () {
|
|
15
15
|
// Get date Format(pattern), which will be used for date format mapping between sapui5 and excel.
|
|
@@ -61,4 +61,4 @@ sap.ui.define(["sap/ui/core/format/DateFormat"], function (DateFormat) {
|
|
|
61
61
|
};
|
|
62
62
|
return ExcelFormatHelper;
|
|
63
63
|
}, false);
|
|
64
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4Y2VsRm9ybWF0SGVscGVyLnRzIl0sIm5hbWVzIjpbIkV4Y2VsRm9ybWF0SGVscGVyIiwiZ2V0RXhjZWxEYXRlZnJvbUpTRGF0ZSIsInNKU0RhdGVGb3JtYXQiLCJEYXRlRm9ybWF0IiwiZ2V0RGF0ZUluc3RhbmNlIiwib0Zvcm1hdE9wdGlvbnMiLCJwYXR0ZXJuIiwidG9Mb3dlckNhc2UiLCJyZWdleCIsImV4ZWMiLCJyZXBsYWNlIiwiZ2V0RXhjZWxEYXRlVGltZWZyb21KU0RhdGVUaW1lIiwic0pTRGF0ZVRpbWVGb3JtYXQiLCJnZXREYXRlVGltZUluc3RhbmNlIiwicmVnZXhZZWFyIiwiaW5jbHVkZXMiLCJnZXRFeGNlbFRpbWVmcm9tSlNUaW1lIiwic0pTVGltZUZvcm1hdCIsImdldFRpbWVJbnN0YW5jZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUFBLE1BQU1BLGlCQUFpQixHQUFHO0FBQ3pCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQ0MsSUFBQUEsc0JBQXNCLEVBQUUsWUFBWTtBQUNuQztBQUNBO0FBQ0EsVUFBSUMsYUFBYSxHQUFJQyxVQUFVLENBQUNDLGVBQVgsRUFBRCxDQUFzQ0MsY0FBdEMsQ0FBcURDLE9BQXJELENBQTZEQyxXQUE3RCxFQUFwQjs7QUFDQSxVQUFJTCxhQUFKLEVBQW1CO0FBQ2xCO0FBQ0EsWUFBTU0sS0FBSyxHQUFHLGdCQUFkOztBQUNBLFlBQUlBLEtBQUssQ0FBQ0MsSUFBTixDQUFXUCxhQUFYLENBQUosRUFBK0I7QUFDOUJBLFVBQUFBLGFBQWEsR0FBR0EsYUFBYSxDQUFDUSxPQUFkLENBQXNCLEdBQXRCLEVBQTJCLE1BQTNCLENBQWhCO0FBQ0E7QUFDRDs7QUFDRCxhQUFPUixhQUFQO0FBQ0EsS0FsQndCO0FBbUJ6QlMsSUFBQUEsOEJBQThCLEVBQUUsWUFBWTtBQUMzQztBQUNBO0FBQ0EsVUFBSUMsaUJBQWlCLEdBQUlULFVBQVUsQ0FBQ1UsbUJBQVgsRUFBRCxDQUEwQ1IsY0FBMUMsQ0FBeURDLE9BQXpELENBQWlFQyxXQUFqRSxFQUF4Qjs7QUFDQSxVQUFJSyxpQkFBSixFQUF1QjtBQUN0QjtBQUNBLFlBQU1FLFNBQVMsR0FBRyxnQkFBbEI7O0FBQ0EsWUFBSUEsU0FBUyxDQUFDTCxJQUFWLENBQWVHLGlCQUFmLENBQUosRUFBdUM7QUFDdENBLFVBQUFBLGlCQUFpQixHQUFHQSxpQkFBaUIsQ0FBQ0YsT0FBbEIsQ0FBMEIsR0FBMUIsRUFBK0IsTUFBL0IsQ0FBcEI7QUFDQTs7QUFDRCxZQUFJRSxpQkFBaUIsQ0FBQ0csUUFBbEIsQ0FBMkIsR0FBM0IsQ0FBSixFQUFxQztBQUNwQ0gsVUFBQUEsaUJBQWlCLEdBQUdBLGlCQUFpQixDQUFDRixPQUFsQixDQUEwQixHQUExQixFQUErQixPQUEvQixDQUFwQjtBQUNBO0FBQ0Q7O0FBQ0QsYUFBT0UsaUJBQVA7QUFDQSxLQWxDd0I7QUFtQ3pCSSxJQUFBQSxzQkFBc0IsRUFBRSxZQUFZO0FBQ25DO0FBQ0E7QUFDQSxVQUFJQyxhQUFhLEdBQUlkLFVBQVUsQ0FBQ2UsZUFBWCxFQUFELENBQXNDYixjQUF0QyxDQUFxREMsT0FBekU7O0FBQ0EsVUFBSVcsYUFBYSxJQUFJQSxhQUFhLENBQUNGLFFBQWQsQ0FBdUIsR0FBdkIsQ0FBckIsRUFBa0Q7QUFDakRFLFFBQUFBLGFBQWEsR0FBR0EsYUFBYSxDQUFDUCxPQUFkLENBQXNCLEdBQXRCLEVBQTJCLE9BQTNCLENBQWhCO0FBQ0E7O0FBQ0QsYUFBT08sYUFBUDtBQUNBO0FBM0N3QixHQUExQjtTQThDZWpCLGlCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGF0ZUZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L0RhdGVGb3JtYXRcIjtcblxuY29uc3QgRXhjZWxGb3JtYXRIZWxwZXIgPSB7XG5cdC8qKlxuXHQgKiBNZXRob2QgZm9yIGNvbnZlcnRpbmcgSlMgRGF0ZSBmb3JtYXQgdG8gRXhjZWwgY3VzdG9tIGRhdGUgZm9ybWF0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyBGb3JtYXQgZm9yIHRoZSBEYXRlIGNvbHVtbiB0byBiZSB1c2VkIG9uIGV4Y2VsLlxuXHQgKi9cblx0Z2V0RXhjZWxEYXRlZnJvbUpTRGF0ZTogZnVuY3Rpb24gKCkge1xuXHRcdC8vIEdldCBkYXRlIEZvcm1hdChwYXR0ZXJuKSwgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBkYXRlIGZvcm1hdCBtYXBwaW5nIGJldHdlZW4gc2FwdWk1IGFuZCBleGNlbC5cblx0XHQvLyBVSTVfQU5ZXG5cdFx0bGV0IHNKU0RhdGVGb3JtYXQgPSAoRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKSBhcyBhbnkpLm9Gb3JtYXRPcHRpb25zLnBhdHRlcm4udG9Mb3dlckNhc2UoKTtcblx0XHRpZiAoc0pTRGF0ZUZvcm1hdCkge1xuXHRcdFx0Ly8gQ2hlY2tpbmcgZm9yIHRoZSBleGlzdGVuY2Ugb2Ygc2luZ2xlICd5JyBpbiB0aGUgcGF0dGVybi5cblx0XHRcdGNvbnN0IHJlZ2V4ID0gL15bXnldKnlbXnldKiQvbTtcblx0XHRcdGlmIChyZWdleC5leGVjKHNKU0RhdGVGb3JtYXQpKSB7XG5cdFx0XHRcdHNKU0RhdGVGb3JtYXQgPSBzSlNEYXRlRm9ybWF0LnJlcGxhY2UoXCJ5XCIsIFwieXl5eVwiKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHNKU0RhdGVGb3JtYXQ7XG5cdH0sXG5cdGdldEV4Y2VsRGF0ZVRpbWVmcm9tSlNEYXRlVGltZTogZnVuY3Rpb24gKCkge1xuXHRcdC8vIEdldCBkYXRlIEZvcm1hdChwYXR0ZXJuKSwgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBkYXRlIHRpbWUgZm9ybWF0IG1hcHBpbmcgYmV0d2VlbiBzYXB1aTUgYW5kIGV4Y2VsLlxuXHRcdC8vIFVJNV9BTllcblx0XHRsZXQgc0pTRGF0ZVRpbWVGb3JtYXQgPSAoRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCkgYXMgYW55KS5vRm9ybWF0T3B0aW9ucy5wYXR0ZXJuLnRvTG93ZXJDYXNlKCk7XG5cdFx0aWYgKHNKU0RhdGVUaW1lRm9ybWF0KSB7XG5cdFx0XHQvLyBDaGVja2luZyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBzaW5nbGUgJ3knIGluIHRoZSBwYXR0ZXJuLlxuXHRcdFx0Y29uc3QgcmVnZXhZZWFyID0gL15bXnldKnlbXnldKiQvbTtcblx0XHRcdGlmIChyZWdleFllYXIuZXhlYyhzSlNEYXRlVGltZUZvcm1hdCkpIHtcblx0XHRcdFx0c0pTRGF0ZVRpbWVGb3JtYXQgPSBzSlNEYXRlVGltZUZvcm1hdC5yZXBsYWNlKFwieVwiLCBcInl5eXlcIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoc0pTRGF0ZVRpbWVGb3JtYXQuaW5jbHVkZXMoXCJhXCIpKSB7XG5cdFx0XHRcdHNKU0RhdGVUaW1lRm9ybWF0ID0gc0pTRGF0ZVRpbWVGb3JtYXQucmVwbGFjZShcImFcIiwgXCJBTS9QTVwiKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHNKU0RhdGVUaW1lRm9ybWF0O1xuXHR9LFxuXHRnZXRFeGNlbFRpbWVmcm9tSlNUaW1lOiBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gR2V0IGRhdGUgRm9ybWF0KHBhdHRlcm4pLCB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGRhdGUgdGltZSBmb3JtYXQgbWFwcGluZyBiZXR3ZWVuIHNhcHVpNSBhbmQgZXhjZWwuXG5cdFx0Ly8gVUk1X0FOWVxuXHRcdGxldCBzSlNUaW1lRm9ybWF0ID0gKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKCkgYXMgYW55KS5vRm9ybWF0T3B0aW9ucy5wYXR0ZXJuO1xuXHRcdGlmIChzSlNUaW1lRm9ybWF0ICYmIHNKU1RpbWVGb3JtYXQuaW5jbHVkZXMoXCJhXCIpKSB7XG5cdFx0XHRzSlNUaW1lRm9ybWF0ID0gc0pTVGltZUZvcm1hdC5yZXBsYWNlKFwiYVwiLCBcIkFNL1BNXCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gc0pTVGltZUZvcm1hdDtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXhjZWxGb3JtYXRIZWxwZXI7XG4iXX0=
|
|
@@ -4,9 +4,9 @@ const ExcelFormatHelper = {
|
|
|
4
4
|
/**
|
|
5
5
|
* Method for converting JS Date format to Excel custom date format.
|
|
6
6
|
*
|
|
7
|
-
* @returns
|
|
7
|
+
* @returns Format for the Date column to be used on excel.
|
|
8
8
|
*/
|
|
9
|
-
getExcelDatefromJSDate: function() {
|
|
9
|
+
getExcelDatefromJSDate: function () {
|
|
10
10
|
// Get date Format(pattern), which will be used for date format mapping between sapui5 and excel.
|
|
11
11
|
// UI5_ANY
|
|
12
12
|
let sJSDateFormat = (DateFormat.getDateInstance() as any).oFormatOptions.pattern.toLowerCase();
|
|
@@ -19,7 +19,7 @@ const ExcelFormatHelper = {
|
|
|
19
19
|
}
|
|
20
20
|
return sJSDateFormat;
|
|
21
21
|
},
|
|
22
|
-
getExcelDateTimefromJSDateTime: function() {
|
|
22
|
+
getExcelDateTimefromJSDateTime: function () {
|
|
23
23
|
// Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
|
|
24
24
|
// UI5_ANY
|
|
25
25
|
let sJSDateTimeFormat = (DateFormat.getDateTimeInstance() as any).oFormatOptions.pattern.toLowerCase();
|
|
@@ -35,7 +35,7 @@ const ExcelFormatHelper = {
|
|
|
35
35
|
}
|
|
36
36
|
return sJSDateTimeFormat;
|
|
37
37
|
},
|
|
38
|
-
getExcelTimefromJSTime: function() {
|
|
38
|
+
getExcelTimefromJSTime: function () {
|
|
39
39
|
// Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
|
|
40
40
|
// UI5_ANY
|
|
41
41
|
let sJSTimeFormat = (DateFormat.getTimeInstance() as any).oFormatOptions.pattern;
|
|
@@ -57,4 +57,4 @@ sap.ui.define(["sap/base/util/ObjectPath", "sap/fe/core/CommonUtils"], function
|
|
|
57
57
|
};
|
|
58
58
|
return FPMHelper;
|
|
59
59
|
}, false);
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZQTUhlbHBlci50cyJdLCJuYW1lcyI6WyJGUE1IZWxwZXIiLCJhY3Rpb25XcmFwcGVyIiwib0V2ZW50Iiwic01vZHVsZSIsInNNZXRob2QiLCJvUGFyYW1ldGVycyIsIlByb21pc2UiLCJyZXNvbHZlIiwib1NvdXJjZSIsImdldFNvdXJjZSIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwib0JpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJvRXh0ZW5zaW9uQVBJIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJ1bmRlZmluZWQiLCJjb250ZXh0cyIsImdldENvbnRyb2xsZXJOYW1lIiwiZ2V0Q29udHJvbGxlciIsImdldEV4dGVuc2lvbkFQSSIsInN0YXJ0c1dpdGgiLCJmblRhcmdldCIsIk9iamVjdFBhdGgiLCJnZXQiLCJyZXBsYWNlIiwic3Vic3RyIiwic2FwIiwidWkiLCJyZXF1aXJlIiwibW9kdWxlIiwiYmluZCIsInZhbGlkYXRpb25XcmFwcGVyIiwib1ZhbGlkYXRpb25Db250ZXh0cyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUdBLE1BQU1BLFNBQVMsR0FBRztBQUNqQkMsSUFBQUEsYUFBYSxFQUFFLFVBQVVDLE1BQVYsRUFBdUJDLE9BQXZCLEVBQXFDQyxPQUFyQyxFQUFtREMsV0FBbkQsRUFBcUU7QUFDbkYsYUFBTyxJQUFJQyxPQUFKLENBQVksVUFBVUMsT0FBVixFQUF5QztBQUMzRDtBQUNBLFlBQU1DLE9BQU8sR0FBR04sTUFBTSxDQUFDTyxTQUFQLEdBQW1CUCxNQUFNLENBQUNPLFNBQVAsRUFBbkIsR0FBd0NQLE1BQU0sQ0FBQ00sT0FBL0Q7QUFBQSxZQUNDRSxLQUFLLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBWixDQUEwQkosT0FBMUIsQ0FEVDtBQUFBLFlBRUNLLGVBQWUsR0FBR0wsT0FBTyxDQUFDTSxpQkFBUixFQUZuQjtBQUdBLFlBQUlDLGFBQUo7QUFDQSxZQUFJQyxpQkFBSjs7QUFFQSxZQUFJWCxXQUFXLEtBQUtZLFNBQXBCLEVBQStCO0FBQzlCRCxVQUFBQSxpQkFBaUIsR0FBR1gsV0FBVyxDQUFDYSxRQUFaLElBQXdCLEVBQTVDO0FBQ0EsU0FGRCxNQUVPLElBQUlMLGVBQWUsS0FBS0ksU0FBeEIsRUFBbUM7QUFDekNELFVBQUFBLGlCQUFpQixHQUFHLENBQUNILGVBQUQsQ0FBcEI7QUFDQSxTQUZNLE1BRUE7QUFDTkcsVUFBQUEsaUJBQWlCLEdBQUcsRUFBcEI7QUFDQTs7QUFFRCxZQUNDTixLQUFLLENBQUNTLGlCQUFOLE9BQThCLGtEQUE5QixJQUNBVCxLQUFLLENBQUNTLGlCQUFOLE9BQThCLGtEQUYvQixFQUdFO0FBQ0RKLFVBQUFBLGFBQWEsR0FBR0wsS0FBSyxDQUFDVSxhQUFOLEdBQXNCQyxlQUF0QixFQUFoQjtBQUNBOztBQUVELFlBQUlsQixPQUFPLENBQUNtQixVQUFSLENBQW1CLGFBQW5CLENBQUosRUFBdUM7QUFDdEMsY0FBTUMsUUFBUSxHQUFHQyxVQUFVLENBQUNDLEdBQVgsQ0FBZXRCLE9BQU8sQ0FBQ3VCLE9BQVIsQ0FBZ0IsS0FBaEIsRUFBdUIsR0FBdkIsRUFBNEJDLE1BQTVCLENBQW1DLENBQW5DLENBQWYsRUFBc0RaLGFBQXRELENBQWpCO0FBQ0FSLFVBQUFBLE9BQU8sQ0FBQ2dCLFFBQVEsQ0FBQ25CLE9BQUQsQ0FBUixDQUFrQlMsZUFBbEIsRUFBbUNHLGlCQUFuQyxDQUFELENBQVA7QUFDQSxTQUhELE1BR087QUFDTlksVUFBQUEsR0FBRyxDQUFDQyxFQUFKLENBQU9DLE9BQVAsQ0FBZSxDQUFDM0IsT0FBRCxDQUFmLEVBQTBCLFVBQVU0QixNQUFWLEVBQXVCO0FBQ2hEO0FBQ0E7QUFDQXhCLFlBQUFBLE9BQU8sQ0FBQ3dCLE1BQU0sQ0FBQzNCLE9BQUQsQ0FBTixDQUFnQjRCLElBQWhCLENBQXFCakIsYUFBckIsRUFBb0NGLGVBQXBDLEVBQXFERyxpQkFBckQsQ0FBRCxDQUFQO0FBQ0EsV0FKRDtBQUtBO0FBQ0QsT0FqQ00sQ0FBUDtBQWtDQSxLQXBDZ0I7QUFxQ2pCaUIsSUFBQUEsaUJBQWlCLEVBQUUsVUFBVTlCLE9BQVYsRUFBd0JDLE9BQXhCLEVBQXNDOEIsbUJBQXRDLEVBQWdFeEIsS0FBaEUsRUFBNEVHLGVBQTVFLEVBQWtHO0FBQ3BILGFBQU8sSUFBSVAsT0FBSixDQUFZLFVBQVVDLE9BQVYsRUFBeUM7QUFDM0QsWUFBSVEsYUFBSjs7QUFFQSxZQUNDTCxLQUFLLENBQUNTLGlCQUFOLE9BQThCLGtEQUE5QixJQUNBVCxLQUFLLENBQUNTLGlCQUFOLE9BQThCLGtEQUYvQixFQUdFO0FBQ0RKLFVBQUFBLGFBQWEsR0FBR0wsS0FBSyxDQUFDVSxhQUFOLEdBQXNCQyxlQUF0QixFQUFoQjtBQUNBOztBQUVETyxRQUFBQSxHQUFHLENBQUNDLEVBQUosQ0FBT0MsT0FBUCxDQUFlLENBQUMzQixPQUFELENBQWYsRUFBMEIsVUFBVTRCLE1BQVYsRUFBdUI7QUFDaEQ7QUFDQTtBQUNBeEIsVUFBQUEsT0FBTyxDQUFDd0IsTUFBTSxDQUFDM0IsT0FBRCxDQUFOLENBQWdCNEIsSUFBaEIsQ0FBcUJqQixhQUFyQixFQUFvQ0YsZUFBcEMsRUFBcURxQixtQkFBckQsQ0FBRCxDQUFQO0FBQ0EsU0FKRDtBQUtBLE9BZk0sQ0FBUDtBQWdCQTtBQXREZ0IsR0FBbEI7U0F5RGVsQyxTIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2JqZWN0UGF0aCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9PYmplY3RQYXRoXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcblxuY29uc3QgRlBNSGVscGVyID0ge1xuXHRhY3Rpb25XcmFwcGVyOiBmdW5jdGlvbiAob0V2ZW50OiBhbnksIHNNb2R1bGU6IGFueSwgc01ldGhvZDogYW55LCBvUGFyYW1ldGVyczogYW55KSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0Ly9UaGUgc291cmNlIHdvdWxkIGJlIGNvbW1hbmQgZXhlY3V0aW9uLCBpbiBjYXNlIGEgY29tbWFuZCBpcyBkZWZpbmVkIGZvciB0aGUgYWN0aW9uIGluIHRoZSBtYW5pZmVzdC5cblx0XHRcdGNvbnN0IG9Tb3VyY2UgPSBvRXZlbnQuZ2V0U291cmNlID8gb0V2ZW50LmdldFNvdXJjZSgpIDogb0V2ZW50Lm9Tb3VyY2UsXG5cdFx0XHRcdG9WaWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhvU291cmNlKSxcblx0XHRcdFx0b0JpbmRpbmdDb250ZXh0ID0gb1NvdXJjZS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdFx0bGV0IG9FeHRlbnNpb25BUEk6IEV4dGVuc2lvbkFQSSB8IHVuZGVmaW5lZDtcblx0XHRcdGxldCBhU2VsZWN0ZWRDb250ZXh0czogQ29udGV4dFtdO1xuXG5cdFx0XHRpZiAob1BhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IG9QYXJhbWV0ZXJzLmNvbnRleHRzIHx8IFtdO1xuXHRcdFx0fSBlbHNlIGlmIChvQmluZGluZ0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IFtvQmluZGluZ0NvbnRleHRdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBbXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRvVmlldy5nZXRDb250cm9sbGVyTmFtZSgpID09PSBcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiIHx8XG5cdFx0XHRcdG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRDb250cm9sbGVyXCJcblx0XHRcdCkge1xuXHRcdFx0XHRvRXh0ZW5zaW9uQVBJID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLmdldEV4dGVuc2lvbkFQSSgpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc01vZHVsZS5zdGFydHNXaXRoKFwiL2V4dGVuc2lvbi9cIikpIHtcblx0XHRcdFx0Y29uc3QgZm5UYXJnZXQgPSBPYmplY3RQYXRoLmdldChzTW9kdWxlLnJlcGxhY2UoL1xcLy9nLCBcIi5cIikuc3Vic3RyKDEpLCBvRXh0ZW5zaW9uQVBJKTtcblx0XHRcdFx0cmVzb2x2ZShmblRhcmdldFtzTWV0aG9kXShvQmluZGluZ0NvbnRleHQsIGFTZWxlY3RlZENvbnRleHRzKSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzYXAudWkucmVxdWlyZShbc01vZHVsZV0sIGZ1bmN0aW9uIChtb2R1bGU6IGFueSkge1xuXHRcdFx0XHRcdC8vIC0gd2UgYmluZCB0aGUgYWN0aW9uIHRvIHRoZSBleHRlbnNpb25BUEkgb2YgdGhlIGNvbnRyb2xsZXIgc28gaXQgaGFzIHRoZSBzYW1lIHNjb3BlIGFzIGEgY3VzdG9tIHNlY3Rpb25cblx0XHRcdFx0XHQvLyAtIHdlIHByb3ZpZGUgdGhlIGNvbnRleHQgYXMgQVBJLCBtYXliZSBpZiBuZWVkZWQgZnVydGhlciBwcm9wZXJ0aWVzXG5cdFx0XHRcdFx0cmVzb2x2ZShtb2R1bGVbc01ldGhvZF0uYmluZChvRXh0ZW5zaW9uQVBJKShvQmluZGluZ0NvbnRleHQsIGFTZWxlY3RlZENvbnRleHRzKSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXHR2YWxpZGF0aW9uV3JhcHBlcjogZnVuY3Rpb24gKHNNb2R1bGU6IGFueSwgc01ldGhvZDogYW55LCBvVmFsaWRhdGlvbkNvbnRleHRzOiBhbnksIG9WaWV3OiBhbnksIG9CaW5kaW5nQ29udGV4dDogYW55KSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0bGV0IG9FeHRlbnNpb25BUEk6IEV4dGVuc2lvbkFQSTtcblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRvVmlldy5nZXRDb250cm9sbGVyTmFtZSgpID09PSBcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiIHx8XG5cdFx0XHRcdG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRDb250cm9sbGVyXCJcblx0XHRcdCkge1xuXHRcdFx0XHRvRXh0ZW5zaW9uQVBJID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLmdldEV4dGVuc2lvbkFQSSgpO1xuXHRcdFx0fVxuXG5cdFx0XHRzYXAudWkucmVxdWlyZShbc01vZHVsZV0sIGZ1bmN0aW9uIChtb2R1bGU6IGFueSkge1xuXHRcdFx0XHQvLyAtIHdlIGJpbmQgdGhlIGFjdGlvbiB0byB0aGUgZXh0ZW5zaW9uQVBJIG9mIHRoZSBjb250cm9sbGVyIHNvIGl0IGhhcyB0aGUgc2FtZSBzY29wZSBhcyBhIGN1c3RvbSBzZWN0aW9uXG5cdFx0XHRcdC8vIC0gd2UgcHJvdmlkZSB0aGUgY29udGV4dCBhcyBBUEksIG1heWJlIGlmIG5lZWRlZCBmdXJ0aGVyIHByb3BlcnRpZXNcblx0XHRcdFx0cmVzb2x2ZShtb2R1bGVbc01ldGhvZF0uYmluZChvRXh0ZW5zaW9uQVBJKShvQmluZGluZ0NvbnRleHQsIG9WYWxpZGF0aW9uQ29udGV4dHMpKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBGUE1IZWxwZXI7XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ObjectPath from "sap/base/util/ObjectPath";
|
|
2
2
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
3
|
-
import ExtensionAPI from "sap/fe/core/ExtensionAPI";
|
|
4
|
-
import Context from "sap/ui/model/Context";
|
|
3
|
+
import type ExtensionAPI from "sap/fe/core/ExtensionAPI";
|
|
4
|
+
import type Context from "sap/ui/model/Context";
|
|
5
5
|
|
|
6
6
|
const FPMHelper = {
|
|
7
7
|
actionWrapper: function (oEvent: any, sModule: any, sMethod: any, oParameters: any) {
|