@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
|
@@ -2,43 +2,43 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/helpers/
|
|
5
|
+
sap.ui.define(["sap/fe/core/helpers/BindingToolkit"], function (BindingToolkit) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var and =
|
|
9
|
+
var pathInModel = BindingToolkit.pathInModel;
|
|
10
|
+
var or = BindingToolkit.or;
|
|
11
|
+
var not = BindingToolkit.not;
|
|
12
|
+
var equal = BindingToolkit.equal;
|
|
13
|
+
var and = BindingToolkit.and;
|
|
14
14
|
|
|
15
15
|
var UI = {
|
|
16
|
-
IsCreateMode:
|
|
17
|
-
IsCreateModeSticky:
|
|
18
|
-
IsEditable:
|
|
19
|
-
IsTransientBinding: equal(
|
|
20
|
-
IsTotal: equal(
|
|
21
|
-
IsExpanded: equal(
|
|
22
|
-
NodeLevel:
|
|
23
|
-
IsInactive:
|
|
16
|
+
IsCreateMode: pathInModel("createMode", "ui"),
|
|
17
|
+
IsCreateModeSticky: pathInModel("createModeSticky", "ui"),
|
|
18
|
+
IsEditable: pathInModel("/isEditable", "ui"),
|
|
19
|
+
IsTransientBinding: equal(pathInModel("@$ui5.context.isTransient"), true),
|
|
20
|
+
IsTotal: equal(pathInModel("@$ui5.node.isTotal"), true),
|
|
21
|
+
IsExpanded: equal(pathInModel("@$ui5.node.isExpanded"), true),
|
|
22
|
+
NodeLevel: pathInModel("@$ui5.node.level"),
|
|
23
|
+
IsInactive: pathInModel("@$ui5.context.isInactive")
|
|
24
24
|
};
|
|
25
25
|
_exports.UI = UI;
|
|
26
26
|
var Entity = {
|
|
27
|
-
HasDraft:
|
|
28
|
-
HasActive:
|
|
29
|
-
IsActive:
|
|
27
|
+
HasDraft: pathInModel("HasDraftEntity"),
|
|
28
|
+
HasActive: pathInModel("HasActiveEntity"),
|
|
29
|
+
IsActive: pathInModel("IsActiveEntity")
|
|
30
30
|
};
|
|
31
31
|
_exports.Entity = Entity;
|
|
32
32
|
var Draft = {
|
|
33
33
|
IsNewObject: and(not(Entity.HasActive), not(Entity.IsActive)),
|
|
34
|
-
HasNoDraftForCurrentUser: or(not(Entity.HasDraft), and(Entity.HasDraft, not(
|
|
34
|
+
HasNoDraftForCurrentUser: or(not(Entity.HasDraft), and(Entity.HasDraft, not(pathInModel("DraftAdministrativeData/DraftIsCreatedByMe"))))
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
37
|
* Gets a singleton based on the fully qualified name.
|
|
38
38
|
*
|
|
39
39
|
* @param convertedTypes The converted types
|
|
40
|
-
* @param
|
|
41
|
-
* @returns
|
|
40
|
+
* @param fullyQualifiedName The fully qualified name of the singleton
|
|
41
|
+
* @returns The singleton instance.
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
44
|
_exports.Draft = Draft;
|
|
@@ -52,10 +52,10 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
52
52
|
* Function to adjust singleton paths in the annotation.
|
|
53
53
|
* The absolute path via EntityContainer needs to be shortened to /SingletonName/PropertyName.
|
|
54
54
|
*
|
|
55
|
-
* @param
|
|
56
|
-
* @param
|
|
57
|
-
* @param
|
|
58
|
-
* @returns
|
|
55
|
+
* @param path The path configured in the annotation
|
|
56
|
+
* @param convertedTypes The instance of the converter context
|
|
57
|
+
* @param visitedNavigationPaths The array of visited navigation paths
|
|
58
|
+
* @returns The adjusted path for the reference of the singleton property, otherwise the input path itself.
|
|
59
59
|
*/
|
|
60
60
|
|
|
61
61
|
|
|
@@ -69,7 +69,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
69
69
|
|
|
70
70
|
if (singleton) {
|
|
71
71
|
// Set the absolute binding path to access the singleton property
|
|
72
|
-
path = "/"
|
|
72
|
+
path = "/".concat(singleton.name, "/").concat(propertyName);
|
|
73
73
|
}
|
|
74
74
|
} else {
|
|
75
75
|
// Not a singleton reference.
|
|
@@ -86,17 +86,17 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
86
86
|
*
|
|
87
87
|
* The binding parameter name needs to be removed. Singleton paths need to be resolved.
|
|
88
88
|
*
|
|
89
|
-
* @param
|
|
90
|
-
* @param
|
|
91
|
-
* @param
|
|
92
|
-
* @returns
|
|
89
|
+
* @param path The path configured in the annotation
|
|
90
|
+
* @param converterContext The instance of the converter context
|
|
91
|
+
* @param bindingParameterFullName The fully qualified name of the binding parameter
|
|
92
|
+
* @returns The adjusted property path
|
|
93
93
|
*/
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
_exports.singletonPathVisitor = singletonPathVisitor;
|
|
97
97
|
|
|
98
98
|
function bindingContextPathVisitor(path, converterContext, bindingParameterFullName) {
|
|
99
|
-
var bindingParameterPrefix = (bindingParameterFullName === null || bindingParameterFullName === void 0 ? void 0 : bindingParameterFullName.substring(bindingParameterFullName.lastIndexOf("/") + 1)
|
|
99
|
+
var bindingParameterPrefix = "".concat(bindingParameterFullName === null || bindingParameterFullName === void 0 ? void 0 : bindingParameterFullName.substring(bindingParameterFullName.lastIndexOf("/") + 1), "/"); // Strip the binding parameter name from OperationAvailable path
|
|
100
100
|
// For e.g. _it/property1 --> property1
|
|
101
101
|
|
|
102
102
|
if (path.startsWith(bindingParameterPrefix)) {
|
|
@@ -109,4 +109,4 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
109
109
|
_exports.bindingContextPathVisitor = bindingContextPathVisitor;
|
|
110
110
|
return _exports;
|
|
111
111
|
}, false);
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJpbmRpbmdIZWxwZXIudHMiXSwibmFtZXMiOlsiVUkiLCJJc0NyZWF0ZU1vZGUiLCJiaW5kaW5nRXhwcmVzc2lvbiIsIklzQ3JlYXRlTW9kZVN0aWNreSIsIklzRWRpdGFibGUiLCJJc1RyYW5zaWVudEJpbmRpbmciLCJlcXVhbCIsIklzVG90YWwiLCJJc0V4cGFuZGVkIiwiTm9kZUxldmVsIiwiSXNJbmFjdGl2ZSIsIkVudGl0eSIsIkhhc0RyYWZ0IiwiSGFzQWN0aXZlIiwiSXNBY3RpdmUiLCJEcmFmdCIsIklzTmV3T2JqZWN0IiwiYW5kIiwibm90IiwiSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyIiwib3IiLCJnZXRTaW5nbGV0b24iLCJjb252ZXJ0ZWRUeXBlcyIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInNpbmdsZXRvbnMiLCJmaW5kIiwic2luZ2xldG9uIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJwYXRoIiwidmlzaXRlZE5hdmlnYXRpb25QYXRocyIsImluZGV4T2YiLCJwYXJ0cyIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsInByb3BlcnR5TmFtZSIsInBvcCIsImVudGl0eVNldE5hbWUiLCJqb2luIiwibmFtZSIsImxvY2FsUGF0aCIsImNvbmNhdCIsInB1c2giLCJiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yIiwiY29udmVydGVyQ29udGV4dCIsImJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSIsImJpbmRpbmdQYXJhbWV0ZXJQcmVmaXgiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsInN0YXJ0c1dpdGgiLCJsZW5ndGgiLCJnZXRDb252ZXJ0ZWRUeXBlcyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUFFTyxNQUFNQSxFQUFFLEdBQUc7QUFDakJDLElBQUFBLFlBQVksRUFBRUMsaUJBQWlCLENBQUMsWUFBRCxFQUFlLElBQWYsQ0FEZDtBQUVqQkMsSUFBQUEsa0JBQWtCLEVBQUVELGlCQUFpQixDQUFDLGtC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QUFxQlA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sV0FBU2UseUJBQVQsQ0FBbUNmLElBQW5DLEVBQWlEZ0IsZ0JBQWpELEVBQXFGQyx3QkFBckYsRUFBdUg7QUFDN0gsUUFBTUMsc0JBQXNCLEdBQUcsQ0FBQUQsd0JBQXdCLFNBQXhCLElBQUFBLHdCQUF3QixXQUF4QixZQUFBQSx3QkFBd0IsQ0FBRUUsU0FBMUIsQ0FBb0NGLHdCQUF3QixDQUFDRyxXQUF6QixDQUFxQyxHQUFyQyxJQUE0QyxDQUFoRixLQUFxRixHQUFwSCxDQUQ2SCxDQUU3SDtBQUNBOztBQUNBLFFBQUlwQixJQUFJLENBQUNxQixVQUFMLENBQWdCSCxzQkFBaEIsQ0FBSixFQUE2QztBQUM1QyxhQUFPbEIsSUFBSSxDQUFDbUIsU0FBTCxDQUFlRCxzQkFBc0IsQ0FBQ0ksTUFBdEMsQ0FBUDtBQUNBOztBQUNELFdBQU92QixvQkFBb0IsQ0FBQ0MsSUFBRCxFQUFPZ0IsZ0JBQWdCLENBQUNPLGlCQUFqQixFQUFQLEVBQTZDLEVBQTdDLENBQTNCO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlcnRlck91dHB1dCwgU2luZ2xldG9uIH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IGFuZCwgYmluZGluZ0V4cHJlc3Npb24sIGVxdWFsLCBFeHByZXNzaW9uLCBub3QsIG9yIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcblxuZXhwb3J0IGNvbnN0IFVJID0ge1xuXHRJc0NyZWF0ZU1vZGU6IGJpbmRpbmdFeHByZXNzaW9uKFwiY3JlYXRlTW9kZVwiLCBcInVpXCIpIGFzIEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdElzQ3JlYXRlTW9kZVN0aWNreTogYmluZGluZ0V4cHJlc3Npb24oXCJjcmVhdGVNb2RlU3RpY2t5XCIsIFwidWlcIikgYXMgRXhwcmVzc2lvbjxib29sZWFuPixcblx0SXNFZGl0YWJsZTogYmluZGluZ0V4cHJlc3Npb24oXCIvaXNFZGl0YWJsZVwiLCBcInVpXCIpIGFzIEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdElzVHJhbnNpZW50QmluZGluZzogZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJAJHVpNS5jb250ZXh0LmlzVHJhbnNpZW50XCIpLCB0cnVlKSxcblx0SXNUb3RhbDogZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJAJHVpNS5ub2RlLmlzVG90YWxcIiksIHRydWUpLFxuXHRJc0V4cGFuZGVkOiBlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIkAkdWk1Lm5vZGUuaXNFeHBhbmRlZFwiKSwgdHJ1ZSksXG5cdE5vZGVMZXZlbDogYmluZGluZ0V4cHJlc3Npb24oXCJAJHVpNS5ub2RlLmxldmVsXCIpLFxuXHRJc0luYWN0aXZlOiBiaW5kaW5nRXhwcmVzc2lvbihcIkAkdWk1LmNvbnRleHQuaXNJbmFjdGl2ZVwiKVxufTtcblxuZXhwb3J0IGNvbnN0IEVudGl0eSA9IHtcblx0SGFzRHJhZnQ6IGJpbmRpbmdFeHByZXNzaW9uKFwiSGFzRHJhZnRFbnRpdHlcIiksXG5cdEhhc0FjdGl2ZTogYmluZGluZ0V4cHJlc3Npb24oXCJIYXNBY3RpdmVFbnRpdHlcIiksXG5cdElzQWN0aXZlOiBiaW5kaW5nRXhwcmVzc2lvbihcIklzQWN0aXZlRW50aXR5XCIpXG59O1xuXG5leHBvcnQgY29uc3QgRHJhZnQgPSB7XG5cdElzTmV3T2JqZWN0OiBhbmQobm90KEVudGl0eS5IYXNBY3RpdmUpLCBub3QoRW50aXR5LklzQWN0aXZlKSksXG5cdEhhc05vRHJhZnRGb3JDdXJyZW50VXNlcjogb3IoXG5cdFx0bm90KEVudGl0eS5IYXNEcmFmdCksXG5cdFx0YW5kKEVudGl0eS5IYXNEcmFmdCwgbm90KGJpbmRpbmdFeHByZXNzaW9uKFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRJc0NyZWF0ZWRCeU1lXCIpIGFzIEV4cHJlc3Npb248Ym9vbGVhbj4pKVxuXHQpXG59O1xuXG4vKipcbiAqIEdldHMgYSBzaW5nbGV0b24gYmFzZWQgb24gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBUaGUgY29udmVydGVkIHR5cGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gZnVsbHlRdWFsaWZpZWROYW1lIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgc2luZ2xldG9uXG4gKiBAcmV0dXJucyB7U2luZ2xldG9uIHwgdW5kZWZpbmVkfSBUaGUgc2luZ2xldG9uIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBnZXRTaW5nbGV0b24oY29udmVydGVkVHlwZXM6IENvbnZlcnRlck91dHB1dCwgZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBTaW5nbGV0b24gfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gY29udmVydGVkVHlwZXMuc2luZ2xldG9ucy5maW5kKChzaW5nbGV0b24pID0+IHNpbmdsZXRvbi5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gYWRqdXN0IHNpbmdsZXRvbiBwYXRocyBpbiB0aGUgYW5ub3RhdGlvbi5cbiAqIFRoZSBhYnNvbHV0ZSBwYXRoIHZpYSBFbnRpdHlDb250YWluZXIgbmVlZHMgdG8gYmUgc2hvcnRlbmVkIHRvIC9TaW5nbGV0b25OYW1lL1Byb3BlcnR5TmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBjb25maWd1cmVkIGluIHRoZSBhbm5vdGF0aW9uXG4gKiBAcGFyYW0ge0NvbnZlcnRlck91dHB1dH0gY29udmVydGVkVHlwZXMgVGhlIGluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmdbXX0gdmlzaXRlZE5hdmlnYXRpb25QYXRocyBUaGUgYXJyYXkgb2YgdmlzaXRlZCBuYXZpZ2F0aW9uIHBhdGhzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYWRqdXN0ZWQgcGF0aCBmb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgc2luZ2xldG9uIHByb3BlcnR5LCBvdGhlcndpc2UgdGhlIGlucHV0IHBhdGggaXRzZWxmLlxuICovXG5leHBvcnQgY29uc3Qgc2luZ2xldG9uUGF0aFZpc2l0b3IgPSBmdW5jdGlvbiAocGF0aDogc3RyaW5nLCBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVyT3V0cHV0LCB2aXNpdGVkTmF2aWdhdGlvblBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdC8vIERldGVybWluZSB3aGV0aGVyIHRoZSBwYXRoIGlzIGFic29sdXRlIGFuZCB3aGV0aGVyIGl0IHBvaW50cyB0byBhIHNpbmdsZXRvbi5cblx0aWYgKHBhdGguaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoXCIvXCIpLmZpbHRlcihCb29sZWFuKSxcblx0XHRcdHByb3BlcnR5TmFtZSA9IHBhcnRzLnBvcCgpLFxuXHRcdFx0ZW50aXR5U2V0TmFtZSA9IHBhcnRzLmpvaW4oXCIvXCIpLFxuXHRcdFx0c2luZ2xldG9uID0gZ2V0U2luZ2xldG9uKGNvbnZlcnRlZFR5cGVzLCBlbnRpdHlTZXROYW1lKTtcblx0XHRpZiAoc2luZ2xldG9uKSB7XG5cdFx0XHQvLyBTZXQgdGhlIGFic29sdXRlIGJpbmRpbmcgcGF0aCB0byBhY2Nlc3MgdGhlIHNpbmdsZXRvbiBwcm9wZXJ0eVxuXHRcdFx0cGF0aCA9IFwiL1wiICsgc2luZ2xldG9uLm5hbWUgKyBcIi9cIiArIHByb3BlcnR5TmFtZTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gTm90IGEgc2luZ2xldG9uIHJlZmVyZW5jZS5cblx0XHQvLyBQcmVmaXggdGhlIG5hdmlnYXRpb24gcGF0aCB0byB0aGUgcHJvcGVydHkgcGF0aFxuXHRcdGNvbnN0IGxvY2FsUGF0aCA9IHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMuY29uY2F0KCk7XG5cdFx0bG9jYWxQYXRoLnB1c2gocGF0aCk7XG5cdFx0cGF0aCA9IGxvY2FsUGF0aC5qb2luKFwiL1wiKTtcblx0fVxuXHRyZXR1cm4gcGF0aDtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gYWRqdXN0IHByb3BlcnR5IHBhdGhzIGRlZmluZWQgaW4gdGhlIGJpbmRpbmcgb2YgYW4gYWN0aW9uLlxuICpcbiAqIFRoZSBiaW5kaW5nIHBhcmFtZXRlciBuYW1lIG5lZWRzIHRvIGJlIHJlbW92ZWQuIFNpbmdsZXRvbiBwYXRocyBuZWVkIHRvIGJlIHJlc29sdmVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGNvbmZpZ3VyZWQgaW4gdGhlIGFubm90YXRpb25cbiAqIEBwYXJhbSB7Q29udmVydGVyQ29udGV4dH0gY29udmVydGVyQ29udGV4dCBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYmluZGluZyBwYXJhbWV0ZXJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGp1c3RlZCBwcm9wZXJ0eSBwYXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yKHBhdGg6IHN0cmluZywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lOiBzdHJpbmcpIHtcblx0Y29uc3QgYmluZGluZ1BhcmFtZXRlclByZWZpeCA9IGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZT8uc3Vic3RyaW5nKGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZS5sYXN0SW5kZXhPZihcIi9cIikgKyAxKSArIFwiL1wiO1xuXHQvLyBTdHJpcCB0aGUgYmluZGluZyBwYXJhbWV0ZXIgbmFtZSBmcm9tIE9wZXJhdGlvbkF2YWlsYWJsZSBwYXRoXG5cdC8vIEZvciBlLmcuIF9pdC9wcm9wZXJ0eTEgLS0+IHByb3BlcnR5MVxuXHRpZiAocGF0aC5zdGFydHNXaXRoKGJpbmRpbmdQYXJhbWV0ZXJQcmVmaXgpKSB7XG5cdFx0cmV0dXJuIHBhdGguc3Vic3RyaW5nKGJpbmRpbmdQYXJhbWV0ZXJQcmVmaXgubGVuZ3RoKTtcblx0fVxuXHRyZXR1cm4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCBbXSk7XG59XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJpbmRpbmdIZWxwZXIudHMiXSwibmFtZXMiOlsiVUkiLCJJc0NyZWF0ZU1vZGUiLCJwYXRoSW5Nb2RlbCIsIklzQ3JlYXRlTW9kZVN0aWNreSIsIklzRWRpdGFibGUiLCJJc1RyYW5zaWVudEJpbmRpbmciLCJlcXVhbCIsIklzVG90YWwiLCJJc0V4cGFuZGVkIiwiTm9kZUxldmVsIiwiSXNJbmFjdGl2ZSIsIkVudGl0eSIsIkhhc0RyYWZ0IiwiSGFzQWN0aXZlIiwiSXNBY3RpdmUiLCJEcmFmdCIsIklzTmV3T2JqZWN0IiwiYW5kIiwibm90IiwiSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyIiwib3IiLCJnZXRTaW5nbGV0b24iLCJjb252ZXJ0ZWRUeXBlcyIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInNpbmdsZXRvbnMiLCJmaW5kIiwic2luZ2xldG9uIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJwYXRoIiwidmlzaXRlZE5hdmlnYXRpb25QYXRocyIsImluZGV4T2YiLCJwYXJ0cyIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsInByb3BlcnR5TmFtZSIsInBvcCIsImVudGl0eVNldE5hbWUiLCJqb2luIiwibmFtZSIsImxvY2FsUGF0aCIsImNvbmNhdCIsInB1c2giLCJiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yIiwiY29udmVydGVyQ29udGV4dCIsImJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSIsImJpbmRpbmdQYXJhbWV0ZXJQcmVmaXgiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsInN0YXJ0c1dpdGgiLCJsZW5ndGgiLCJnZXRDb252ZXJ0ZWRUeXBlcyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUFHTyxNQUFNQSxFQUFFLEdBQUc7QUFDakJDLElBQUFBLFlBQVksRUFBRUMsV0FBVyxDQUFDLFlBQUQsRUFBZSxJQUFmLENBRFI7QUFFakJDLElBQUFBLGtCQUFrQixFQUFFRCxXQUFXLENBQUMsa0JBQUQsRUFBcUIs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QUNBOzs7OztBQUNPLFdBQVNlLHlCQUFULENBQW1DZixJQUFuQyxFQUFpRGdCLGdCQUFqRCxFQUFxRkMsd0JBQXJGLEVBQXVIO0FBQzdILFFBQU1DLHNCQUFzQixhQUFNRCx3QkFBTixhQUFNQSx3QkFBTix1QkFBTUEsd0JBQXdCLENBQUVFLFNBQTFCLENBQW9DRix3QkFBd0IsQ0FBQ0csV0FBekIsQ0FBcUMsR0FBckMsSUFBNEMsQ0FBaEYsQ0FBTixNQUE1QixDQUQ2SCxDQUU3SDtBQUNBOztBQUNBLFFBQUlwQixJQUFJLENBQUNxQixVQUFMLENBQWdCSCxzQkFBaEIsQ0FBSixFQUE2QztBQUM1QyxhQUFPbEIsSUFBSSxDQUFDbUIsU0FBTCxDQUFlRCxzQkFBc0IsQ0FBQ0ksTUFBdEMsQ0FBUDtBQUNBOztBQUNELFdBQU92QixvQkFBb0IsQ0FBQ0MsSUFBRCxFQUFPZ0IsZ0JBQWdCLENBQUNPLGlCQUFqQixFQUFQLEVBQTZDLEVBQTdDLENBQTNCO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEsIFNpbmdsZXRvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBhbmQsIGVxdWFsLCBub3QsIG9yLCBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5cbmV4cG9ydCBjb25zdCBVSSA9IHtcblx0SXNDcmVhdGVNb2RlOiBwYXRoSW5Nb2RlbChcImNyZWF0ZU1vZGVcIiwgXCJ1aVwiKSBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdElzQ3JlYXRlTW9kZVN0aWNreTogcGF0aEluTW9kZWwoXCJjcmVhdGVNb2RlU3RpY2t5XCIsIFwidWlcIikgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+LFxuXHRJc0VkaXRhYmxlOiBwYXRoSW5Nb2RlbChcIi9pc0VkaXRhYmxlXCIsIFwidWlcIikgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+LFxuXHRJc1RyYW5zaWVudEJpbmRpbmc6IGVxdWFsKHBhdGhJbk1vZGVsKFwiQCR1aTUuY29udGV4dC5pc1RyYW5zaWVudFwiKSwgdHJ1ZSksXG5cdElzVG90YWw6IGVxdWFsKHBhdGhJbk1vZGVsKFwiQCR1aTUubm9kZS5pc1RvdGFsXCIpLCB0cnVlKSxcblx0SXNFeHBhbmRlZDogZXF1YWwocGF0aEluTW9kZWwoXCJAJHVpNS5ub2RlLmlzRXhwYW5kZWRcIiksIHRydWUpLFxuXHROb2RlTGV2ZWw6IHBhdGhJbk1vZGVsKFwiQCR1aTUubm9kZS5sZXZlbFwiKSxcblx0SXNJbmFjdGl2ZTogcGF0aEluTW9kZWwoXCJAJHVpNS5jb250ZXh0LmlzSW5hY3RpdmVcIilcbn07XG5cbmV4cG9ydCBjb25zdCBFbnRpdHkgPSB7XG5cdEhhc0RyYWZ0OiBwYXRoSW5Nb2RlbChcIkhhc0RyYWZ0RW50aXR5XCIpLFxuXHRIYXNBY3RpdmU6IHBhdGhJbk1vZGVsKFwiSGFzQWN0aXZlRW50aXR5XCIpLFxuXHRJc0FjdGl2ZTogcGF0aEluTW9kZWwoXCJJc0FjdGl2ZUVudGl0eVwiKVxufTtcblxuZXhwb3J0IGNvbnN0IERyYWZ0ID0ge1xuXHRJc05ld09iamVjdDogYW5kKG5vdChFbnRpdHkuSGFzQWN0aXZlKSwgbm90KEVudGl0eS5Jc0FjdGl2ZSkpLFxuXHRIYXNOb0RyYWZ0Rm9yQ3VycmVudFVzZXI6IG9yKFxuXHRcdG5vdChFbnRpdHkuSGFzRHJhZnQpLFxuXHRcdGFuZChFbnRpdHkuSGFzRHJhZnQsIG5vdChwYXRoSW5Nb2RlbChcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZVwiKSBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4pKVxuXHQpXG59O1xuXG4vKipcbiAqIEdldHMgYSBzaW5nbGV0b24gYmFzZWQgb24gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBUaGUgY29udmVydGVkIHR5cGVzXG4gKiBAcGFyYW0gZnVsbHlRdWFsaWZpZWROYW1lIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgc2luZ2xldG9uXG4gKiBAcmV0dXJucyBUaGUgc2luZ2xldG9uIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBnZXRTaW5nbGV0b24oY29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhLCBmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IFNpbmdsZXRvbiB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBjb252ZXJ0ZWRUeXBlcy5zaW5nbGV0b25zLmZpbmQoKHNpbmdsZXRvbikgPT4gc2luZ2xldG9uLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB0byBhZGp1c3Qgc2luZ2xldG9uIHBhdGhzIGluIHRoZSBhbm5vdGF0aW9uLlxuICogVGhlIGFic29sdXRlIHBhdGggdmlhIEVudGl0eUNvbnRhaW5lciBuZWVkcyB0byBiZSBzaG9ydGVuZWQgdG8gL1NpbmdsZXRvbk5hbWUvUHJvcGVydHlOYW1lLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGNvbmZpZ3VyZWQgaW4gdGhlIGFubm90YXRpb25cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0gdmlzaXRlZE5hdmlnYXRpb25QYXRocyBUaGUgYXJyYXkgb2YgdmlzaXRlZCBuYXZpZ2F0aW9uIHBhdGhzXG4gKiBAcmV0dXJucyBUaGUgYWRqdXN0ZWQgcGF0aCBmb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgc2luZ2xldG9uIHByb3BlcnR5LCBvdGhlcndpc2UgdGhlIGlucHV0IHBhdGggaXRzZWxmLlxuICovXG5leHBvcnQgY29uc3Qgc2luZ2xldG9uUGF0aFZpc2l0b3IgPSBmdW5jdGlvbiAocGF0aDogc3RyaW5nLCBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcblx0Ly8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHBhdGggaXMgYWJzb2x1dGUgYW5kIHdoZXRoZXIgaXQgcG9pbnRzIHRvIGEgc2luZ2xldG9uLlxuXHRpZiAocGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKEJvb2xlYW4pLFxuXHRcdFx0cHJvcGVydHlOYW1lID0gcGFydHMucG9wKCksXG5cdFx0XHRlbnRpdHlTZXROYW1lID0gcGFydHMuam9pbihcIi9cIiksXG5cdFx0XHRzaW5nbGV0b24gPSBnZXRTaW5nbGV0b24oY29udmVydGVkVHlwZXMsIGVudGl0eVNldE5hbWUpO1xuXHRcdGlmIChzaW5nbGV0b24pIHtcblx0XHRcdC8vIFNldCB0aGUgYWJzb2x1dGUgYmluZGluZyBwYXRoIHRvIGFjY2VzcyB0aGUgc2luZ2xldG9uIHByb3BlcnR5XG5cdFx0XHRwYXRoID0gYC8ke3NpbmdsZXRvbi5uYW1lfS8ke3Byb3BlcnR5TmFtZX1gO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBOb3QgYSBzaW5nbGV0b24gcmVmZXJlbmNlLlxuXHRcdC8vIFByZWZpeCB0aGUgbmF2aWdhdGlvbiBwYXRoIHRvIHRoZSBwcm9wZXJ0eSBwYXRoXG5cdFx0Y29uc3QgbG9jYWxQYXRoID0gdmlzaXRlZE5hdmlnYXRpb25QYXRocy5jb25jYXQoKTtcblx0XHRsb2NhbFBhdGgucHVzaChwYXRoKTtcblx0XHRwYXRoID0gbG9jYWxQYXRoLmpvaW4oXCIvXCIpO1xuXHR9XG5cdHJldHVybiBwYXRoO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBhZGp1c3QgcHJvcGVydHkgcGF0aHMgZGVmaW5lZCBpbiB0aGUgYmluZGluZyBvZiBhbiBhY3Rpb24uXG4gKlxuICogVGhlIGJpbmRpbmcgcGFyYW1ldGVyIG5hbWUgbmVlZHMgdG8gYmUgcmVtb3ZlZC4gU2luZ2xldG9uIHBhdGhzIG5lZWQgdG8gYmUgcmVzb2x2ZWQuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHBhdGggY29uZmlndXJlZCBpbiB0aGUgYW5ub3RhdGlvblxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGJpbmRpbmcgcGFyYW1ldGVyXG4gKiBAcmV0dXJucyBUaGUgYWRqdXN0ZWQgcHJvcGVydHkgcGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvcihwYXRoOiBzdHJpbmcsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZTogc3RyaW5nKSB7XG5cdGNvbnN0IGJpbmRpbmdQYXJhbWV0ZXJQcmVmaXggPSBgJHtiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWU/LnN1YnN0cmluZyhiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUubGFzdEluZGV4T2YoXCIvXCIpICsgMSl9L2A7XG5cdC8vIFN0cmlwIHRoZSBiaW5kaW5nIHBhcmFtZXRlciBuYW1lIGZyb20gT3BlcmF0aW9uQXZhaWxhYmxlIHBhdGhcblx0Ly8gRm9yIGUuZy4gX2l0L3Byb3BlcnR5MSAtLT4gcHJvcGVydHkxXG5cdGlmIChwYXRoLnN0YXJ0c1dpdGgoYmluZGluZ1BhcmFtZXRlclByZWZpeCkpIHtcblx0XHRyZXR1cm4gcGF0aC5zdWJzdHJpbmcoYmluZGluZ1BhcmFtZXRlclByZWZpeC5sZW5ndGgpO1xuXHR9XG5cdHJldHVybiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKTtcbn1cbiJdfQ==
|
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import ConverterContext from "sap/fe/core/converters/ConverterContext";
|
|
3
|
-
import {
|
|
1
|
+
import type { ConvertedMetadata, Singleton } from "@sap-ux/vocabularies-types";
|
|
2
|
+
import type ConverterContext from "sap/fe/core/converters/ConverterContext";
|
|
3
|
+
import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
4
|
+
import { and, equal, not, or, pathInModel } from "sap/fe/core/helpers/BindingToolkit";
|
|
4
5
|
|
|
5
6
|
export const UI = {
|
|
6
|
-
IsCreateMode:
|
|
7
|
-
IsCreateModeSticky:
|
|
8
|
-
IsEditable:
|
|
9
|
-
IsTransientBinding: equal(
|
|
10
|
-
IsTotal: equal(
|
|
11
|
-
IsExpanded: equal(
|
|
12
|
-
NodeLevel:
|
|
13
|
-
IsInactive:
|
|
7
|
+
IsCreateMode: pathInModel("createMode", "ui") as BindingToolkitExpression<boolean>,
|
|
8
|
+
IsCreateModeSticky: pathInModel("createModeSticky", "ui") as BindingToolkitExpression<boolean>,
|
|
9
|
+
IsEditable: pathInModel("/isEditable", "ui") as BindingToolkitExpression<boolean>,
|
|
10
|
+
IsTransientBinding: equal(pathInModel("@$ui5.context.isTransient"), true),
|
|
11
|
+
IsTotal: equal(pathInModel("@$ui5.node.isTotal"), true),
|
|
12
|
+
IsExpanded: equal(pathInModel("@$ui5.node.isExpanded"), true),
|
|
13
|
+
NodeLevel: pathInModel("@$ui5.node.level"),
|
|
14
|
+
IsInactive: pathInModel("@$ui5.context.isInactive")
|
|
14
15
|
};
|
|
15
16
|
|
|
16
17
|
export const Entity = {
|
|
17
|
-
HasDraft:
|
|
18
|
-
HasActive:
|
|
19
|
-
IsActive:
|
|
18
|
+
HasDraft: pathInModel("HasDraftEntity"),
|
|
19
|
+
HasActive: pathInModel("HasActiveEntity"),
|
|
20
|
+
IsActive: pathInModel("IsActiveEntity")
|
|
20
21
|
};
|
|
21
22
|
|
|
22
23
|
export const Draft = {
|
|
23
24
|
IsNewObject: and(not(Entity.HasActive), not(Entity.IsActive)),
|
|
24
25
|
HasNoDraftForCurrentUser: or(
|
|
25
26
|
not(Entity.HasDraft),
|
|
26
|
-
and(Entity.HasDraft, not(
|
|
27
|
+
and(Entity.HasDraft, not(pathInModel("DraftAdministrativeData/DraftIsCreatedByMe") as BindingToolkitExpression<boolean>))
|
|
27
28
|
)
|
|
28
29
|
};
|
|
29
30
|
|
|
@@ -31,10 +32,10 @@ export const Draft = {
|
|
|
31
32
|
* Gets a singleton based on the fully qualified name.
|
|
32
33
|
*
|
|
33
34
|
* @param convertedTypes The converted types
|
|
34
|
-
* @param
|
|
35
|
-
* @returns
|
|
35
|
+
* @param fullyQualifiedName The fully qualified name of the singleton
|
|
36
|
+
* @returns The singleton instance.
|
|
36
37
|
*/
|
|
37
|
-
function getSingleton(convertedTypes:
|
|
38
|
+
function getSingleton(convertedTypes: ConvertedMetadata, fullyQualifiedName: string): Singleton | undefined {
|
|
38
39
|
return convertedTypes.singletons.find((singleton) => singleton.fullyQualifiedName === fullyQualifiedName);
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -42,12 +43,12 @@ function getSingleton(convertedTypes: ConverterOutput, fullyQualifiedName: strin
|
|
|
42
43
|
* Function to adjust singleton paths in the annotation.
|
|
43
44
|
* The absolute path via EntityContainer needs to be shortened to /SingletonName/PropertyName.
|
|
44
45
|
*
|
|
45
|
-
* @param
|
|
46
|
-
* @param
|
|
47
|
-
* @param
|
|
48
|
-
* @returns
|
|
46
|
+
* @param path The path configured in the annotation
|
|
47
|
+
* @param convertedTypes The instance of the converter context
|
|
48
|
+
* @param visitedNavigationPaths The array of visited navigation paths
|
|
49
|
+
* @returns The adjusted path for the reference of the singleton property, otherwise the input path itself.
|
|
49
50
|
*/
|
|
50
|
-
export const singletonPathVisitor = function (path: string, convertedTypes:
|
|
51
|
+
export const singletonPathVisitor = function (path: string, convertedTypes: ConvertedMetadata, visitedNavigationPaths: string[]): string {
|
|
51
52
|
// Determine whether the path is absolute and whether it points to a singleton.
|
|
52
53
|
if (path.indexOf("/") === 0) {
|
|
53
54
|
const parts = path.split("/").filter(Boolean),
|
|
@@ -56,7 +57,7 @@ export const singletonPathVisitor = function (path: string, convertedTypes: Conv
|
|
|
56
57
|
singleton = getSingleton(convertedTypes, entitySetName);
|
|
57
58
|
if (singleton) {
|
|
58
59
|
// Set the absolute binding path to access the singleton property
|
|
59
|
-
path =
|
|
60
|
+
path = `/${singleton.name}/${propertyName}`;
|
|
60
61
|
}
|
|
61
62
|
} else {
|
|
62
63
|
// Not a singleton reference.
|
|
@@ -73,13 +74,13 @@ export const singletonPathVisitor = function (path: string, convertedTypes: Conv
|
|
|
73
74
|
*
|
|
74
75
|
* The binding parameter name needs to be removed. Singleton paths need to be resolved.
|
|
75
76
|
*
|
|
76
|
-
* @param
|
|
77
|
-
* @param
|
|
78
|
-
* @param
|
|
79
|
-
* @returns
|
|
77
|
+
* @param path The path configured in the annotation
|
|
78
|
+
* @param converterContext The instance of the converter context
|
|
79
|
+
* @param bindingParameterFullName The fully qualified name of the binding parameter
|
|
80
|
+
* @returns The adjusted property path
|
|
80
81
|
*/
|
|
81
82
|
export function bindingContextPathVisitor(path: string, converterContext: ConverterContext, bindingParameterFullName: string) {
|
|
82
|
-
const bindingParameterPrefix = bindingParameterFullName?.substring(bindingParameterFullName.lastIndexOf("/") + 1)
|
|
83
|
+
const bindingParameterPrefix = `${bindingParameterFullName?.substring(bindingParameterFullName.lastIndexOf("/") + 1)}/`;
|
|
83
84
|
// Strip the binding parameter name from OperationAvailable path
|
|
84
85
|
// For e.g. _it/property1 --> property1
|
|
85
86
|
if (path.startsWith(bindingParameterPrefix)) {
|
|
@@ -24,7 +24,7 @@ sap.ui.define([], function () {
|
|
|
24
24
|
* @param anchor
|
|
25
25
|
* @param sorted
|
|
26
26
|
* @param visited
|
|
27
|
-
* @returns
|
|
27
|
+
* @returns The order of the current item
|
|
28
28
|
*/
|
|
29
29
|
var orderPositioningItemRecursively = function (positioningItems, anchor, sorted, visited) {
|
|
30
30
|
var insertIndex = sorted.indexOf(anchor);
|
|
@@ -37,7 +37,7 @@ sap.ui.define([], function () {
|
|
|
37
37
|
|
|
38
38
|
if (anchorItem === undefined) {
|
|
39
39
|
//return sorted.length;
|
|
40
|
-
throw new Error("position anchor not found: "
|
|
40
|
+
throw new Error("position anchor not found: ".concat(anchor));
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
visited[anchor] = anchorItem;
|
|
@@ -135,7 +135,7 @@ sap.ui.define([], function () {
|
|
|
135
135
|
* @param rootElements A list of "ConfigurableObject" which means object that have a unique "key"
|
|
136
136
|
* @param customElements An object containing extra object to add, they are indexed by a key and have a "position" object
|
|
137
137
|
* @param overwritableKeys The list of keys from the original object that can be overwritten in case a custom element has the same "key"
|
|
138
|
-
* @returns
|
|
138
|
+
* @returns An ordered array of elements including the custom ones
|
|
139
139
|
*/
|
|
140
140
|
|
|
141
141
|
|
|
@@ -225,4 +225,4 @@ sap.ui.define([], function () {
|
|
|
225
225
|
_exports.insertCustomElements = insertCustomElements;
|
|
226
226
|
return _exports;
|
|
227
227
|
}, false);
|
|
228
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmZpZ3VyYWJsZU9iamVjdC50cyJdLCJuYW1lcyI6WyJQbGFjZW1lbnQiLCJvcmRlclBvc2l0aW9uaW5nSXRlbVJlY3Vyc2l2ZWx5IiwicG9zaXRpb25pbmdJdGVtcyIsImFuY2hvciIsInNvcnRlZCIsInZpc2l0ZWQiLCJpbnNlcnRJbmRleCIsImluZGV4T2YiLCJhbmNob3JJdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJwbGFjZW1lbnQiLCJCZWZvcmUiLCJsZW5ndGgiLCJzcGxpY2UiLCJpc0FycmF5Q29uZmlnIiwiY29uZmlnIiwiYXBwbHlPdmVycmlkZSIsIm92ZXJ3cml0YWJsZUtleXMiLCJzb3VyY2VJdGVtIiwiY3VzdG9tRWxlbWVudCIsIm91dEl0ZW0iLCJvdmVyd3JpdGFibGVLZXkiLCJPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJvdmVycmlkZUNvbmZpZyIsInN1Ykl0ZW0iLCJzdWJDb25maWciLCJBcnJheSIsImlzQXJyYXkiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsInJvb3RFbGVtZW50cyIsImN1c3RvbUVsZW1lbnRzIiwiZmlyc3RBbmNob3IiLCJrZXkiLCJyb290RWxlbWVudHNXaXRob3V0TGFzdCIsImZpbHRlciIsInJvb3RFbGVtZW50IiwicG9zaXRpb24iLCJFbmQiLCJsYXN0QW5jaG9yIiwiZW5kRWxlbWVudCIsIml0ZW1zUGVyS2V5IiwiZm9yRWFjaCIsIkFmdGVyIiwia2V5cyIsImN1c3RvbUVsZW1lbnRLZXkiLCJwb3RlbnRpYWxBbmNob3IiLCJtZW51IiwibWFwIiwic29ydGVkS2V5cyIsInBvc2l0aW9uSXRlbUtleSIsIm91dEVsZW1lbnRzIiwicHVzaCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O01BR1lBLFM7O2FBQUFBLFM7QUFBQUEsSUFBQUEsUztBQUFBQSxJQUFBQSxTO0FBQUFBLElBQUFBLFM7S0FBQUEsUyxLQUFBQSxTOzs7O0FBcUJaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUE4QixXQUFuRyxFQUFnSDtBQUMvR3JDLFVBQUFBLGdCQUFnQixDQUFDa0IsYUFBYSxDQUFDZSxHQUFmLENBQWhCLEdBQXNDUSxXQUFXLENBQUN2QixhQUFhLENBQUNlLEdBQWYsQ0FBWCxDQUErQkksUUFBckU7QUFDQTtBQUNEO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBQ0csT0FaRCxNQVlPO0FBQ05JLFFBQUFBLFdBQVcsQ0FBQ3ZCLGFBQWEsQ0FBQ2UsR0FBZixDQUFYLEdBQWlDbEIsYUFBYSxDQUFDQyxnQkFBRCxFQUFtQixJQUFuQixFQUF5QkUsYUFBekIsQ0FBOUM7QUFDQWxCLFFBQUFBLGdCQUFnQixDQUFDa0IsYUFBYSxDQUFDZSxHQUFmLENBQWhCLEdBQXNDZixhQUFhLENBQUNtQixRQUFwRDtBQUNBO0FBQ0QsS0FsQ0Q7QUFtQ0EsUUFBTVksVUFBb0IsR0FBRyxFQUE3QjtBQUVBNUIsSUFBQUEsTUFBTSxDQUFDdUIsSUFBUCxDQUFZNUMsZ0JBQVosRUFBOEIwQyxPQUE5QixDQUFzQyxVQUFBUSxlQUFlLEVBQUk7QUFDeERuRCxNQUFBQSwrQkFBK0IsQ0FBQ0MsZ0JBQUQsRUFBbUJrRCxlQUFuQixFQUFvQ0QsVUFBcEMsRUFBZ0QsRUFBaEQsQ0FBL0I7QUFDQSxLQUZEO0FBSUEsUUFBTUUsV0FBVyxHQUFHRixVQUFVLENBQUNELEdBQVgsQ0FBZSxVQUFBZixHQUFHO0FBQUEsYUFBSVEsV0FBVyxDQUFDUixHQUFELENBQWY7QUFBQSxLQUFsQixDQUFwQjs7QUFDQSxRQUFJTyxVQUFKLEVBQWdCO0FBQ2ZXLE1BQUFBLFdBQVcsQ0FBQ0MsSUFBWixDQUFpQlosVUFBakI7QUFDQTs7QUFDRCxXQUFPVyxXQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFBvc2l0aW9uID0ge1xuXHRhbmNob3I/OiBzdHJpbmc7XG5cdHBsYWNlbWVudDogUGxhY2VtZW50O1xufTtcblxuZXhwb3J0IGVudW0gUGxhY2VtZW50IHtcblx0QWZ0ZXIgPSBcIkFmdGVyXCIsXG5cdEJlZm9yZSA9IFwiQmVmb3JlXCIsXG5cdEVuZCA9IFwiRW5kXCJcbn1cbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWJsZU9iamVjdEtleSA9IHN0cmluZztcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWJsZU9iamVjdCA9IFBvc2l0aW9uYWJsZSAmIHtcblx0a2V5OiBDb25maWd1cmFibGVPYmplY3RLZXk7XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21FbGVtZW50PFQgZXh0ZW5kcyBDb25maWd1cmFibGVPYmplY3Q+ID0gVCAmIHtcblx0cG9zaXRpb246IFBvc2l0aW9uO1xuXHRtZW51PzogYW55W10gfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbmFibGUgPSB7XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG59O1xuXG5leHBvcnQgdHlwZSBDb25maWd1cmFibGVSZWNvcmQ8VD4gPSBSZWNvcmQ8Q29uZmlndXJhYmxlT2JqZWN0S2V5LCBUPjtcblxuLyoqXG4gKiBSZWN1cnNpdmUgbWV0aG9kIHRoYXQgb3JkZXIgdGhlIGtleXMgYmFzZWQgb24gYSBwb3NpdGlvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcGFyYW0gcG9zaXRpb25pbmdJdGVtc1xuICogQHBhcmFtIGFuY2hvclxuICogQHBhcmFtIHNvcnRlZFxuICogQHBhcmFtIHZpc2l0ZWRcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBvcmRlciBvZiB0aGUgY3VycmVudCBpdGVtXG4gKi9cbmNvbnN0IG9yZGVyUG9zaXRpb25pbmdJdGVtUmVjdXJzaXZlbHkgPSAoXG5cdHBvc2l0aW9uaW5nSXRlbXM6IFJlY29yZDxzdHJpbmcsIFJlcXVpcmVkPFBvc2l0aW9uPj4sXG5cdGFuY2hvcjogc3RyaW5nLFxuXHRzb3J0ZWQ6IHN0cmluZ1tdLFxuXHR2aXNpdGVkOiBSZWNvcmQ8c3RyaW5nLCBSZXF1aXJlZDxQb3NpdGlvbj4+XG4pOiBudW1iZXIgPT4ge1xuXHRsZXQgaW5zZXJ0SW5kZXggPSBzb3J0ZWQuaW5kZXhPZihhbmNob3IpO1xuXHRpZiAoaW5zZXJ0SW5kZXggIT09IC0xKSB7XG5cdFx0cmV0dXJuIGluc2VydEluZGV4O1xuXHR9XG5cdGNvbnN0IGFuY2hvckl0ZW06IFJlcXVpcmVkPFBvc2l0aW9uPiA9IHBvc2l0aW9uaW5nSXRlbXNbYW5jaG9yXTtcblx0aWYgKGFuY2hvckl0ZW0gPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vcmV0dXJuIHNvcnRlZC5sZW5ndGg7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwicG9zaXRpb24gYW5jaG9yIG5vdCBmb3VuZDogXCIgKyBhbmNob3IpO1xuXHR9XG5cblx0dmlzaXRlZFthbmNob3JdID0gYW5jaG9ySXRlbTtcblx0aWYgKGFuY2hvckl0ZW0gJiYgIShhbmNob3JJdGVtLmFuY2hvciBpbiB2aXNpdGVkKSkge1xuXHRcdGluc2VydEluZGV4ID0gb3JkZXJQb3NpdGlvbmluZ0l0ZW1SZWN1cnNpdmVseShwb3NpdGlvbmluZ0l0ZW1zLCBhbmNob3JJdGVtLmFuY2hvciwgc29ydGVkLCB2aXNpdGVkKTtcblx0XHRpZiAoYW5jaG9ySXRlbS5wbGFjZW1lbnQgIT09IFBsYWNlbWVudC5CZWZvcmUpIHtcblx0XHRcdCsraW5zZXJ0SW5kZXg7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGluc2VydEluZGV4ID0gc29ydGVkLmxlbmd0aDtcblx0fVxuXG5cdHNvcnRlZC5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIGFuY2hvcik7XG5cdHJldHVybiBpbnNlcnRJbmRleDtcbn07XG5cbnR5cGUgT3ZlcnJpZGVUeXBlID0gXCJtZXJnZVwiIHwgXCJvdmVyd3JpdGVcIiB8IFwiaWdub3JlXCI7XG50eXBlIEFycmF5T3ZlcnJpZGVUeXBlPEFycmF5VHlwZT4gPSBPdmVycmlkZUtleXM8QXJyYXlUeXBlPjtcblxudHlwZSBFbGVtZW50VHlwZTxUPiA9IFQgZXh0ZW5kcyBhbnlbXSA/IFRbbnVtYmVyXSA6IFQ7XG50eXBlIE92ZXJyaWRlS2V5czxUPiA9IHtcblx0W1AgaW4ga2V5b2YgVF0/OiBPdmVycmlkZVR5cGUgfCBBcnJheU92ZXJyaWRlVHlwZTxFbGVtZW50VHlwZTxUW1BdPj47XG59O1xuXG5mdW5jdGlvbiBpc0FycmF5Q29uZmlnPFQ+KGNvbmZpZzogT3ZlcnJpZGVUeXBlIHwgQXJyYXlPdmVycmlkZVR5cGU8VD4gfCB1bmRlZmluZWQpOiBjb25maWcgaXMgQXJyYXlPdmVycmlkZVR5cGU8VD4ge1xuXHRyZXR1cm4gdHlwZW9mIGNvbmZpZyA9PT0gXCJvYmplY3RcIjtcbn1cblxuZnVuY3Rpb24gYXBwbHlPdmVycmlkZTxUIGV4dGVuZHMgT2JqZWN0PihvdmVyd3JpdGFibGVLZXlzOiBPdmVycmlkZUtleXM8VD4sIHNvdXJjZUl0ZW06IFQgfCBudWxsLCBjdXN0b21FbGVtZW50OiBUKTogVCB7XG5cdGNvbnN0IG91dEl0ZW06IFQgPSBzb3VyY2VJdGVtIHx8IGN1c3RvbUVsZW1lbnQ7XG5cdGZvciAoY29uc3Qgb3ZlcndyaXRhYmxlS2V5IGluIG92ZXJ3cml0YWJsZUtleXMpIHtcblx0XHRpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwob3ZlcndyaXRhYmxlS2V5cywgb3ZlcndyaXRhYmxlS2V5KSkge1xuXHRcdFx0Y29uc3Qgb3ZlcnJpZGVDb25maWcgPSBvdmVyd3JpdGFibGVLZXlzW292ZXJ3cml0YWJsZUtleV07XG5cdFx0XHRpZiAoc291cmNlSXRlbSAhPT0gbnVsbCkge1xuXHRcdFx0XHRzd2l0Y2ggKG92ZXJyaWRlQ29uZmlnKSB7XG5cdFx0XHRcdFx0Y2FzZSBcIm92ZXJ3cml0ZVwiOlxuXHRcdFx0XHRcdFx0aWYgKGN1c3RvbUVsZW1lbnQuaGFzT3duUHJvcGVydHkob3ZlcndyaXRhYmxlS2V5KSAmJiBjdXN0b21FbGVtZW50W292ZXJ3cml0YWJsZUtleV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRzb3VyY2VJdGVtW292ZXJ3cml0YWJsZUtleV0gPSBjdXN0b21FbGVtZW50W292ZXJ3cml0YWJsZUtleV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwibWVyZ2VcIjpcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0Y29uc3Qgc3ViSXRlbSA9IHNvdXJjZUl0ZW1bb3ZlcndyaXRhYmxlS2V5XSB8fCAoW10gYXMgYW55W10pO1xuXHRcdFx0XHRcdFx0bGV0IHN1YkNvbmZpZyA9IHt9O1xuXHRcdFx0XHRcdFx0aWYgKGlzQXJyYXlDb25maWcob3ZlcnJpZGVDb25maWcpKSB7XG5cdFx0XHRcdFx0XHRcdHN1YkNvbmZpZyA9IG92ZXJyaWRlQ29uZmlnO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoc3ViSXRlbSkpIHtcblx0XHRcdFx0XHRcdFx0c291cmNlSXRlbVtvdmVyd3JpdGFibGVLZXldID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0XHRcdFx0XHRcdFx0c3ViSXRlbSxcblx0XHRcdFx0XHRcdFx0XHQoY3VzdG9tRWxlbWVudCAmJiAoY3VzdG9tRWxlbWVudFtvdmVyd3JpdGFibGVLZXldIGFzIFJlY29yZDxzdHJpbmcsIEN1c3RvbUVsZW1lbnQ8YW55Pj4pKSB8fCB7fSxcblx0XHRcdFx0XHRcdFx0XHRzdWJDb25maWdcblx0XHRcdFx0XHRcdFx0KSBhcyBhbnk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c3dpdGNoIChvdmVycmlkZUNvbmZpZykge1xuXHRcdFx0XHRcdGNhc2UgXCJvdmVyd3JpdGVcIjpcblx0XHRcdFx0XHRcdGlmIChjdXN0b21FbGVtZW50Lmhhc093blByb3BlcnR5KG92ZXJ3cml0YWJsZUtleSkgJiYgY3VzdG9tRWxlbWVudFtvdmVyd3JpdGFibGVLZXldICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0b3V0SXRlbVtvdmVyd3JpdGFibGVLZXldID0gY3VzdG9tRWxlbWVudFtvdmVyd3JpdGFibGVLZXldO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSBcIm1lcmdlXCI6XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGxldCBzdWJDb25maWcgPSB7fTtcblx0XHRcdFx0XHRcdGlmIChpc0FycmF5Q29uZmlnKG92ZXJyaWRlQ29uZmlnKSkge1xuXHRcdFx0XHRcdFx0XHRzdWJDb25maWcgPSBvdmVycmlkZUNvbmZpZztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdG91dEl0ZW1bb3ZlcndyaXRhYmxlS2V5XSA9IGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdFx0XHRcdFx0XHRbXSBhcyBhbnlbXSxcblx0XHRcdFx0XHRcdFx0KGN1c3RvbUVsZW1lbnQgJiYgKGN1c3RvbUVsZW1lbnRbb3ZlcndyaXRhYmxlS2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCBDdXN0b21FbGVtZW50PGFueT4+KSkgfHwge30sXG5cdFx0XHRcdFx0XHRcdHN1YkNvbmZpZ1xuXHRcdFx0XHRcdFx0KSBhcyBhbnk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gb3V0SXRlbTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgYSBzZXQgb2YgY3VzdG9tIGVsZW1lbnRzIGluIHRoZSByaWdodCBwb3NpdGlvbiBpbiBhbiBvcmlnaW5hbCBjb2xsZWN0aW9uLlxuICpcbiAqIFBhcmFtZXRlcnMgZm9yIG92ZXJ3cml0YWJsZUtleXMgYW5kIHRoZWlyIGltcGxpY2F0aW9uczpcbiAqIFwib3ZlcndyaXRlXCI6IFRoZSB3aG9sZSBvYmplY3QgZ2V0cyBvdmVyd3JpdHRlbiAtIGlmIHRoZSBjdXN0b21FbGVtZW50cyBpbmNsdWRlIGEgZGVmYXVsdCwgdGhpcyB3aWxsIG92ZXJydWxlIHRoZSB3aG9sZSByb290RWxlbWVudHMgY29uZmlndXJhdGlvbi5cbiAqIFwibWVyZ2VcIjogVGhpcyBpcyBzaW1pbGFyIHRvIGNhbGxpbmcgaW5zZXJ0Q3VzdG9tRWxlbWVudHMgaXRzZWxmLiBZb3UgbXVzdCBpbmNsdWRlIHRoZVxuICogZnVsbCBDdXN0b21FbGVtZW50IHN5bnRheCB3aXRoaW4gdGhlIGN1c3RvbUVsZW1lbnRzLCBpbmNsdWRpbmcgYW5jaG9ycywgZm9yIGV4YW1wbGUuXG4gKiBcImlnbm9yZVwiOiBUaGVyZSBhcmUgbm8gYWRkaXRpb25zIGFuZCBubyBjb21iaW5hdGlvbnMuIE9ubHkgdGhlIHJvb3RFbGVtZW50cyBvYmplY3QgaXMgdXNlZC5cbiAqXG4gKiBOb3RlIC0gUHJvY2VlZCBhcyBmb2xsb3dzIGluIGNhc2UgeW91IGhhdmUgZGVmaW5lZCBjdXN0b21FbGVtZW50cyBhbmQgZG8gbm90IHdhbnQgdG8gb3ZlcndyaXRlIHRoZWlyIHZhbHVlcyB3aXRoIGRlZmF1bHRzOlxuICogSGFuZCB0aGUgcm9vdEVsZW1lbnRzIGludG8gdGhlIGNyZWF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBjdXN0b21FbGVtZW50LlxuICogRGVwZW5kaW5nIG9uIHRoZSBleGlzdGVuY2Ugb2YgYm90aCByb290RWxlbWVudC1jb25maWd1cmF0aW9uIGFuZCBjdXN0b21FbGVtZW50LWNvbmZpZ3VyYXRpb24sXG4gKiB5b3UgbXVzdCBzZXQgdGhlIGN1c3RvbUVsZW1lbnRzIHByb3BlcnR5LCBmb3Igd2hpY2ggdGhlIFwib3ZlcndyaXRlXCItcHJvcGVydHkgaXMgc2V0LCBleHBsaWNpdGx5IHRvIHVuZGVmaW5lZC5cbiAqXG4gKiBAdGVtcGxhdGUgVFxuICogQHBhcmFtIHJvb3RFbGVtZW50cyBBIGxpc3Qgb2YgXCJDb25maWd1cmFibGVPYmplY3RcIiB3aGljaCBtZWFucyBvYmplY3QgdGhhdCBoYXZlIGEgdW5pcXVlIFwia2V5XCJcbiAqIEBwYXJhbSBjdXN0b21FbGVtZW50cyBBbiBvYmplY3QgY29udGFpbmluZyBleHRyYSBvYmplY3QgdG8gYWRkLCB0aGV5IGFyZSBpbmRleGVkIGJ5IGEga2V5IGFuZCBoYXZlIGEgXCJwb3NpdGlvblwiIG9iamVjdFxuICogQHBhcmFtIG92ZXJ3cml0YWJsZUtleXMgVGhlIGxpc3Qgb2Yga2V5cyBmcm9tIHRoZSBvcmlnaW5hbCBvYmplY3QgdGhhdCBjYW4gYmUgb3ZlcndyaXR0ZW4gaW4gY2FzZSBhIGN1c3RvbSBlbGVtZW50IGhhcyB0aGUgc2FtZSBcImtleVwiXG4gKiBAcmV0dXJucyB7VFtdfSBBbiBvcmRlcmVkIGFycmF5IG9mIGVsZW1lbnRzIGluY2x1ZGluZyB0aGUgY3VzdG9tIG9uZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEN1c3RvbUVsZW1lbnRzPFQgZXh0ZW5kcyBDb25maWd1cmFibGVPYmplY3Q+KFxuXHRyb290RWxlbWVudHM6IFRbXSxcblx0Y3VzdG9tRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUVsZW1lbnQ8VD4+LFxuXHRvdmVyd3JpdGFibGVLZXlzOiBPdmVycmlkZUtleXM8VD4gPSB7fVxuKTogVFtdIHtcblx0Y29uc3QgZmlyc3RBbmNob3IgPSByb290RWxlbWVudHMubGVuZ3RoID8gcm9vdEVsZW1lbnRzWzBdLmtleSA6IG51bGw7XG5cdGNvbnN0IHJvb3RFbGVtZW50c1dpdGhvdXRMYXN0ID0gcm9vdEVsZW1lbnRzLmZpbHRlcihyb290RWxlbWVudCA9PiB7XG5cdFx0cmV0dXJuIHJvb3RFbGVtZW50LnBvc2l0aW9uPy5wbGFjZW1lbnQgIT09IFBsYWNlbWVudC5FbmQ7XG5cdH0pO1xuXHRjb25zdCBsYXN0QW5jaG9yID0gcm9vdEVsZW1lbnRzLmxlbmd0aCA/IHJvb3RFbGVtZW50c1tyb290RWxlbWVudHNXaXRob3V0TGFzdC5sZW5ndGggLSAxXS5rZXkgOiBudWxsO1xuXHRsZXQgZW5kRWxlbWVudDogVCB8IHVuZGVmaW5lZDtcblx0Y29uc3QgcG9zaXRpb25pbmdJdGVtczogUmVjb3JkPHN0cmluZywgUmVxdWlyZWQ8UG9zaXRpb24+PiA9IHt9O1xuXHRjb25zdCBpdGVtc1BlcktleTogUmVjb3JkPHN0cmluZywgVD4gPSB7fTtcblx0cm9vdEVsZW1lbnRzLmZvckVhY2gocm9vdEVsZW1lbnQgPT4ge1xuXHRcdGlmIChyb290RWxlbWVudC5wb3NpdGlvbj8ucGxhY2VtZW50ID09PSBQbGFjZW1lbnQuRW5kICYmICFlbmRFbGVtZW50KSB7XG5cdFx0XHRlbmRFbGVtZW50ID0gcm9vdEVsZW1lbnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBvc2l0aW9uaW5nSXRlbXNbcm9vdEVsZW1lbnQua2V5XSA9IHtcblx0XHRcdFx0YW5jaG9yOiByb290RWxlbWVudC5wb3NpdGlvbj8uYW5jaG9yIHx8IHJvb3RFbGVtZW50LmtleSxcblx0XHRcdFx0cGxhY2VtZW50OiByb290RWxlbWVudC5wb3NpdGlvbj8ucGxhY2VtZW50IHx8IFBsYWNlbWVudC5BZnRlclxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aXRlbXNQZXJLZXlbcm9vdEVsZW1lbnQua2V5XSA9IHJvb3RFbGVtZW50O1xuXHR9KTtcblx0T2JqZWN0LmtleXMoY3VzdG9tRWxlbWVudHMpLmZvckVhY2goY3VzdG9tRWxlbWVudEtleSA9PiB7XG5cdFx0Y29uc3QgY3VzdG9tRWxlbWVudCA9IGN1c3RvbUVsZW1lbnRzW2N1c3RvbUVsZW1lbnRLZXldO1xuXHRcdGNvbnN0IGFuY2hvciA9IGN1c3RvbUVsZW1lbnQucG9zaXRpb24uYW5jaG9yO1xuXHRcdC8vIElmIG5vIHBsYWNlbWVudCBkZWZpbmVkIHdlIGFyZSBBZnRlclxuXHRcdGlmICghY3VzdG9tRWxlbWVudC5wb3NpdGlvbi5wbGFjZW1lbnQpIHtcblx0XHRcdGN1c3RvbUVsZW1lbnQucG9zaXRpb24ucGxhY2VtZW50ID0gUGxhY2VtZW50LkFmdGVyO1xuXHRcdH1cblx0XHQvLyBJZiBubyBhbmNob3Igd2UncmUgZWl0aGVyIEFmdGVyIHRoZSBsYXN0IGFuY2hvciBvciBCZWZvcmUgdGhlIGZpcnN0XG5cdFx0aWYgKCFhbmNob3IpIHtcblx0XHRcdGNvbnN0IHBvdGVudGlhbEFuY2hvciA9IGN1c3RvbUVsZW1lbnQucG9zaXRpb24ucGxhY2VtZW50ID09PSBQbGFjZW1lbnQuQWZ0ZXIgPyBsYXN0QW5jaG9yIDogZmlyc3RBbmNob3I7XG5cdFx0XHRjdXN0b21FbGVtZW50LnBvc2l0aW9uLmFuY2hvciA9IHBvdGVudGlhbEFuY2hvciA/IHBvdGVudGlhbEFuY2hvciA6IGN1c3RvbUVsZW1lbnRLZXk7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkaW5nIGJvdW5kL3VuYm91bmQgYWN0aW9ucyB0byBtZW51XG5cdFx0Y3VzdG9tRWxlbWVudC5tZW51ID0gY3VzdG9tRWxlbWVudD8ubWVudT8ubWFwKG1lbnUgPT4ge1xuXHRcdFx0cmV0dXJuIGl0ZW1zUGVyS2V5W21lbnUua2V5XSA/PyBtZW51O1xuXHRcdH0pO1xuXG5cdFx0aWYgKGl0ZW1zUGVyS2V5W2N1c3RvbUVsZW1lbnQua2V5XSkge1xuXHRcdFx0aXRlbXNQZXJLZXlbY3VzdG9tRWxlbWVudC5rZXldID0gYXBwbHlPdmVycmlkZShvdmVyd3JpdGFibGVLZXlzLCBpdGVtc1BlcktleVtjdXN0b21FbGVtZW50LmtleV0sIGN1c3RvbUVsZW1lbnQpO1xuXG5cdFx0XHQvL1Bvc2l0aW9uIGlzIG92ZXJ3cml0dGVuIGZvciBmaWx0ZXIgZmllbGRzIGlmIHRoZXJlIGlzIGEgY2hhbmdlIGluIG1hbmlmZXN0XG5cdFx0XHRpZiAoYW5jaG9yICYmIGN1c3RvbUVsZW1lbnQucG9zaXRpb24gJiYgb3ZlcndyaXRhYmxlS2V5cy5wb3NpdGlvbiAmJiBvdmVyd3JpdGFibGVLZXlzLnBvc2l0aW9uID09PSBcIm92ZXJ3cml0ZVwiKSB7XG5cdFx0XHRcdHBvc2l0aW9uaW5nSXRlbXNbY3VzdG9tRWxlbWVudC5rZXldID0gaXRlbXNQZXJLZXlbY3VzdG9tRWxlbWVudC5rZXldLnBvc2l0aW9uIGFzIFJlcXVpcmVkPFBvc2l0aW9uPjtcblx0XHRcdH1cblx0XHRcdC8qKlxuXHRcdFx0ICogYW5jaG9yIGNoZWNrIGlzIGFkZGVkIHRvIG1ha2Ugc3VyZSBjaGFuZ2UgaW4gcHJvcGVydGllcyBpbiB0aGUgbWFuaWZlc3QgZG9lcyBub3QgYWZmZWN0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQuXG5cdFx0XHQgKiBPdGhlcndpc2UsIHdoZW4gbm8gcG9zaXRpb24gaXMgbWVudGlvbmVkIGluIG1hbmlmZXN0IGZvciBhbiBhbHRlcmVkIGZpZWxkLCB0aGUgcG9zaXRpb24gaXMgY2hhbmdlZCBhc1xuXHRcdFx0ICogcGVyIHRoZSBwb3RlbnRpYWwgYW5jaG9yXG5cdFx0XHQgKi9cblx0XHR9IGVsc2Uge1xuXHRcdFx0aXRlbXNQZXJLZXlbY3VzdG9tRWxlbWVudC5rZXldID0gYXBwbHlPdmVycmlkZShvdmVyd3JpdGFibGVLZXlzLCBudWxsLCBjdXN0b21FbGVtZW50KTtcblx0XHRcdHBvc2l0aW9uaW5nSXRlbXNbY3VzdG9tRWxlbWVudC5rZXldID0gY3VzdG9tRWxlbWVudC5wb3NpdGlvbiBhcyBSZXF1aXJlZDxQb3NpdGlvbj47XG5cdFx0fVxuXHR9KTtcblx0Y29uc3Qgc29ydGVkS2V5czogc3RyaW5nW10gPSBbXTtcblxuXHRPYmplY3Qua2V5cyhwb3NpdGlvbmluZ0l0ZW1zKS5mb3JFYWNoKHBvc2l0aW9uSXRlbUtleSA9PiB7XG5cdFx0b3JkZXJQb3NpdGlvbmluZ0l0ZW1SZWN1cnNpdmVseShwb3NpdGlvbmluZ0l0ZW1zLCBwb3NpdGlvbkl0ZW1LZXksIHNvcnRlZEtleXMsIHt9KTtcblx0fSk7XG5cblx0Y29uc3Qgb3V0RWxlbWVudHMgPSBzb3J0ZWRLZXlzLm1hcChrZXkgPT4gaXRlbXNQZXJLZXlba2V5XSk7XG5cdGlmIChlbmRFbGVtZW50KSB7XG5cdFx0b3V0RWxlbWVudHMucHVzaChlbmRFbGVtZW50KTtcblx0fVxuXHRyZXR1cm4gb3V0RWxlbWVudHM7XG59XG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmZpZ3VyYWJsZU9iamVjdC50cyJdLCJuYW1lcyI6WyJQbGFjZW1lbnQiLCJvcmRlclBvc2l0aW9uaW5nSXRlbVJlY3Vyc2l2ZWx5IiwicG9zaXRpb25pbmdJdGVtcyIsImFuY2hvciIsInNvcnRlZCIsInZpc2l0ZWQiLCJpbnNlcnRJbmRleCIsImluZGV4T2YiLCJhbmNob3JJdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJwbGFjZW1lbnQiLCJCZWZvcmUiLCJsZW5ndGgiLCJzcGxpY2UiLCJpc0FycmF5Q29uZmlnIiwiY29uZmlnIiwiYXBwbHlPdmVycmlkZSIsIm92ZXJ3cml0YWJsZUtleXMiLCJzb3VyY2VJdGVtIiwiY3VzdG9tRWxlbWVudCIsIm91dEl0ZW0iLCJvdmVyd3JpdGFibGVLZXkiLCJPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJvdmVycmlkZUNvbmZpZyIsInN1Ykl0ZW0iLCJzdWJDb25maWciLCJBcnJheSIsImlzQXJyYXkiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsInJvb3RFbGVtZW50cyIsImN1c3RvbUVsZW1lbnRzIiwiZmlyc3RBbmNob3IiLCJrZXkiLCJyb290RWxlbWVudHNXaXRob3V0TGFzdCIsImZpbHRlciIsInJvb3RFbGVtZW50IiwicG9zaXRpb24iLCJFbmQiLCJsYXN0QW5jaG9yIiwiZW5kRWxlbWVudCIsIml0ZW1zUGVyS2V5IiwiZm9yRWFjaCIsIkFmdGVyIiwia2V5cyIsImN1c3RvbUVsZW1lbnRLZXkiLCJwb3RlbnRpYWxBbmNob3IiLCJtZW51IiwibWFwIiwic29ydGVkS2V5cyIsInBvc2l0aW9uSXRlbUtleSIsIm91dEVsZW1lbnRzIiwicHVzaCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O01BR1lBLFM7O2FBQUFBLFM7QUFBQUEsSUFBQUEsUztBQUFBQSxJQUFBQSxTO0FBQUFBLElBQUFBLFM7S0FBQUEsUyxLQUFBQSxTOzs7O0FBcUJaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QixXQUFuRyxFQUFnSDtBQUMvR3JDLFVBQUFBLGdCQUFnQixDQUFDa0IsYUFBYSxDQUFDZSxHQUFmLENBQWhCLEdBQXNDUSxXQUFXLENBQUN2QixhQUFhLENBQUNlLEdBQWYsQ0FBWCxDQUErQkksUUFBckU7QUFDQTtBQUNEO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBQ0csT0FaRCxNQVlPO0FBQ05JLFFBQUFBLFdBQVcsQ0FBQ3ZCLGFBQWEsQ0FBQ2UsR0FBZixDQUFYLEdBQWlDbEIsYUFBYSxDQUFDQyxnQkFBRCxFQUFtQixJQUFuQixFQUF5QkUsYUFBekIsQ0FBOUM7QUFDQWxCLFFBQUFBLGdCQUFnQixDQUFDa0IsYUFBYSxDQUFDZSxHQUFmLENBQWhCLEdBQXNDZixhQUFhLENBQUNtQixRQUFwRDtBQUNBO0FBQ0QsS0FsQ0Q7QUFtQ0EsUUFBTVksVUFBb0IsR0FBRyxFQUE3QjtBQUVBNUIsSUFBQUEsTUFBTSxDQUFDdUIsSUFBUCxDQUFZNUMsZ0JBQVosRUFBOEIwQyxPQUE5QixDQUFzQyxVQUFDUSxlQUFELEVBQXFCO0FBQzFEbkQsTUFBQUEsK0JBQStCLENBQUNDLGdCQUFELEVBQW1Ca0QsZUFBbkIsRUFBb0NELFVBQXBDLEVBQWdELEVBQWhELENBQS9CO0FBQ0EsS0FGRDtBQUlBLFFBQU1FLFdBQVcsR0FBR0YsVUFBVSxDQUFDRCxHQUFYLENBQWUsVUFBQ2YsR0FBRDtBQUFBLGFBQVNRLFdBQVcsQ0FBQ1IsR0FBRCxDQUFwQjtBQUFBLEtBQWYsQ0FBcEI7O0FBQ0EsUUFBSU8sVUFBSixFQUFnQjtBQUNmVyxNQUFBQSxXQUFXLENBQUNDLElBQVosQ0FBaUJaLFVBQWpCO0FBQ0E7O0FBQ0QsV0FBT1csV0FBUDtBQUNBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQb3NpdGlvbiA9IHtcblx0YW5jaG9yPzogc3RyaW5nO1xuXHRwbGFjZW1lbnQ6IFBsYWNlbWVudDtcbn07XG5cbmV4cG9ydCBlbnVtIFBsYWNlbWVudCB7XG5cdEFmdGVyID0gXCJBZnRlclwiLFxuXHRCZWZvcmUgPSBcIkJlZm9yZVwiLFxuXHRFbmQgPSBcIkVuZFwiXG59XG5leHBvcnQgdHlwZSBDb25maWd1cmFibGVPYmplY3RLZXkgPSBzdHJpbmc7XG5leHBvcnQgdHlwZSBDb25maWd1cmFibGVPYmplY3QgPSBQb3NpdGlvbmFibGUgJiB7XG5cdGtleTogQ29uZmlndXJhYmxlT2JqZWN0S2V5O1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tRWxlbWVudDxUIGV4dGVuZHMgQ29uZmlndXJhYmxlT2JqZWN0PiA9IFQgJiB7XG5cdHBvc2l0aW9uOiBQb3NpdGlvbjtcblx0bWVudT86IGFueVtdIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25hYmxlID0ge1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ29uZmlndXJhYmxlUmVjb3JkPFQ+ID0gUmVjb3JkPENvbmZpZ3VyYWJsZU9iamVjdEtleSwgVD47XG5cbi8qKlxuICogUmVjdXJzaXZlIG1ldGhvZCB0aGF0IG9yZGVyIHRoZSBrZXlzIGJhc2VkIG9uIGEgcG9zaXRpb24gaW5mb3JtYXRpb24uXG4gKlxuICogQHBhcmFtIHBvc2l0aW9uaW5nSXRlbXNcbiAqIEBwYXJhbSBhbmNob3JcbiAqIEBwYXJhbSBzb3J0ZWRcbiAqIEBwYXJhbSB2aXNpdGVkXG4gKiBAcmV0dXJucyBUaGUgb3JkZXIgb2YgdGhlIGN1cnJlbnQgaXRlbVxuICovXG5jb25zdCBvcmRlclBvc2l0aW9uaW5nSXRlbVJlY3Vyc2l2ZWx5ID0gKFxuXHRwb3NpdGlvbmluZ0l0ZW1zOiBSZWNvcmQ8c3RyaW5nLCBSZXF1aXJlZDxQb3NpdGlvbj4+LFxuXHRhbmNob3I6IHN0cmluZyxcblx0c29ydGVkOiBzdHJpbmdbXSxcblx0dmlzaXRlZDogUmVjb3JkPHN0cmluZywgUmVxdWlyZWQ8UG9zaXRpb24+PlxuKTogbnVtYmVyID0+IHtcblx0bGV0IGluc2VydEluZGV4ID0gc29ydGVkLmluZGV4T2YoYW5jaG9yKTtcblx0aWYgKGluc2VydEluZGV4ICE9PSAtMSkge1xuXHRcdHJldHVybiBpbnNlcnRJbmRleDtcblx0fVxuXHRjb25zdCBhbmNob3JJdGVtOiBSZXF1aXJlZDxQb3NpdGlvbj4gPSBwb3NpdGlvbmluZ0l0ZW1zW2FuY2hvcl07XG5cdGlmIChhbmNob3JJdGVtID09PSB1bmRlZmluZWQpIHtcblx0XHQvL3JldHVybiBzb3J0ZWQubGVuZ3RoO1xuXHRcdHRocm93IG5ldyBFcnJvcihgcG9zaXRpb24gYW5jaG9yIG5vdCBmb3VuZDogJHthbmNob3J9YCk7XG5cdH1cblxuXHR2aXNpdGVkW2FuY2hvcl0gPSBhbmNob3JJdGVtO1xuXHRpZiAoYW5jaG9ySXRlbSAmJiAhKGFuY2hvckl0ZW0uYW5jaG9yIGluIHZpc2l0ZWQpKSB7XG5cdFx0aW5zZXJ0SW5kZXggPSBvcmRlclBvc2l0aW9uaW5nSXRlbVJlY3Vyc2l2ZWx5KHBvc2l0aW9uaW5nSXRlbXMsIGFuY2hvckl0ZW0uYW5jaG9yLCBzb3J0ZWQsIHZpc2l0ZWQpO1xuXHRcdGlmIChhbmNob3JJdGVtLnBsYWNlbWVudCAhPT0gUGxhY2VtZW50LkJlZm9yZSkge1xuXHRcdFx0KytpbnNlcnRJbmRleDtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0aW5zZXJ0SW5kZXggPSBzb3J0ZWQubGVuZ3RoO1xuXHR9XG5cblx0c29ydGVkLnNwbGljZShpbnNlcnRJbmRleCwgMCwgYW5jaG9yKTtcblx0cmV0dXJuIGluc2VydEluZGV4O1xufTtcblxudHlwZSBPdmVycmlkZVR5cGUgPSBcIm1lcmdlXCIgfCBcIm92ZXJ3cml0ZVwiIHwgXCJpZ25vcmVcIjtcbnR5cGUgQXJyYXlPdmVycmlkZVR5cGU8QXJyYXlUeXBlPiA9IE92ZXJyaWRlS2V5czxBcnJheVR5cGU+O1xuXG50eXBlIEVsZW1lbnRUeXBlPFQ+ID0gVCBleHRlbmRzIGFueVtdID8gVFtudW1iZXJdIDogVDtcbnR5cGUgT3ZlcnJpZGVLZXlzPFQ+ID0ge1xuXHRbUCBpbiBrZXlvZiBUXT86IE92ZXJyaWRlVHlwZSB8IEFycmF5T3ZlcnJpZGVUeXBlPEVsZW1lbnRUeXBlPFRbUF0+Pjtcbn07XG5cbmZ1bmN0aW9uIGlzQXJyYXlDb25maWc8VD4oY29uZmlnOiBPdmVycmlkZVR5cGUgfCBBcnJheU92ZXJyaWRlVHlwZTxUPiB8IHVuZGVmaW5lZCk6IGNvbmZpZyBpcyBBcnJheU92ZXJyaWRlVHlwZTxUPiB7XG5cdHJldHVybiB0eXBlb2YgY29uZmlnID09PSBcIm9iamVjdFwiO1xufVxuXG5mdW5jdGlvbiBhcHBseU92ZXJyaWRlPFQgZXh0ZW5kcyBPYmplY3Q+KG92ZXJ3cml0YWJsZUtleXM6IE92ZXJyaWRlS2V5czxUPiwgc291cmNlSXRlbTogVCB8IG51bGwsIGN1c3RvbUVsZW1lbnQ6IFQpOiBUIHtcblx0Y29uc3Qgb3V0SXRlbTogVCA9IHNvdXJjZUl0ZW0gfHwgY3VzdG9tRWxlbWVudDtcblx0Zm9yIChjb25zdCBvdmVyd3JpdGFibGVLZXkgaW4gb3ZlcndyaXRhYmxlS2V5cykge1xuXHRcdGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvdmVyd3JpdGFibGVLZXlzLCBvdmVyd3JpdGFibGVLZXkpKSB7XG5cdFx0XHRjb25zdCBvdmVycmlkZUNvbmZpZyA9IG92ZXJ3cml0YWJsZUtleXNbb3ZlcndyaXRhYmxlS2V5XTtcblx0XHRcdGlmIChzb3VyY2VJdGVtICE9PSBudWxsKSB7XG5cdFx0XHRcdHN3aXRjaCAob3ZlcnJpZGVDb25maWcpIHtcblx0XHRcdFx0XHRjYXNlIFwib3ZlcndyaXRlXCI6XG5cdFx0XHRcdFx0XHRpZiAoY3VzdG9tRWxlbWVudC5oYXNPd25Qcm9wZXJ0eShvdmVyd3JpdGFibGVLZXkpICYmIGN1c3RvbUVsZW1lbnRbb3ZlcndyaXRhYmxlS2V5XSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRcdHNvdXJjZUl0ZW1bb3ZlcndyaXRhYmxlS2V5XSA9IGN1c3RvbUVsZW1lbnRbb3ZlcndyaXRhYmxlS2V5XTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgXCJtZXJnZVwiOlxuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRjb25zdCBzdWJJdGVtID0gc291cmNlSXRlbVtvdmVyd3JpdGFibGVLZXldIHx8IChbXSBhcyBhbnlbXSk7XG5cdFx0XHRcdFx0XHRsZXQgc3ViQ29uZmlnID0ge307XG5cdFx0XHRcdFx0XHRpZiAoaXNBcnJheUNvbmZpZyhvdmVycmlkZUNvbmZpZykpIHtcblx0XHRcdFx0XHRcdFx0c3ViQ29uZmlnID0gb3ZlcnJpZGVDb25maWc7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShzdWJJdGVtKSkge1xuXHRcdFx0XHRcdFx0XHRzb3VyY2VJdGVtW292ZXJ3cml0YWJsZUtleV0gPSBpbnNlcnRDdXN0b21FbGVtZW50cyhcblx0XHRcdFx0XHRcdFx0XHRzdWJJdGVtLFxuXHRcdFx0XHRcdFx0XHRcdChjdXN0b21FbGVtZW50ICYmIChjdXN0b21FbGVtZW50W292ZXJ3cml0YWJsZUtleV0gYXMgUmVjb3JkPHN0cmluZywgQ3VzdG9tRWxlbWVudDxhbnk+PikpIHx8IHt9LFxuXHRcdFx0XHRcdFx0XHRcdHN1YkNvbmZpZ1xuXHRcdFx0XHRcdFx0XHQpIGFzIGFueTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzd2l0Y2ggKG92ZXJyaWRlQ29uZmlnKSB7XG5cdFx0XHRcdFx0Y2FzZSBcIm92ZXJ3cml0ZVwiOlxuXHRcdFx0XHRcdFx0aWYgKGN1c3RvbUVsZW1lbnQuaGFzT3duUHJvcGVydHkob3ZlcndyaXRhYmxlS2V5KSAmJiBjdXN0b21FbGVtZW50W292ZXJ3cml0YWJsZUtleV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRvdXRJdGVtW292ZXJ3cml0YWJsZUtleV0gPSBjdXN0b21FbGVtZW50W292ZXJ3cml0YWJsZUtleV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwibWVyZ2VcIjpcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0bGV0IHN1YkNvbmZpZyA9IHt9O1xuXHRcdFx0XHRcdFx0aWYgKGlzQXJyYXlDb25maWcob3ZlcnJpZGVDb25maWcpKSB7XG5cdFx0XHRcdFx0XHRcdHN1YkNvbmZpZyA9IG92ZXJyaWRlQ29uZmlnO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0b3V0SXRlbVtvdmVyd3JpdGFibGVLZXldID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0XHRcdFx0XHRcdFtdIGFzIGFueVtdLFxuXHRcdFx0XHRcdFx0XHQoY3VzdG9tRWxlbWVudCAmJiAoY3VzdG9tRWxlbWVudFtvdmVyd3JpdGFibGVLZXldIGFzIFJlY29yZDxzdHJpbmcsIEN1c3RvbUVsZW1lbnQ8YW55Pj4pKSB8fCB7fSxcblx0XHRcdFx0XHRcdFx0c3ViQ29uZmlnXG5cdFx0XHRcdFx0XHQpIGFzIGFueTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvdXRJdGVtO1xufVxuXG4vKipcbiAqIEluc2VydCBhIHNldCBvZiBjdXN0b20gZWxlbWVudHMgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uIGluIGFuIG9yaWdpbmFsIGNvbGxlY3Rpb24uXG4gKlxuICogUGFyYW1ldGVycyBmb3Igb3ZlcndyaXRhYmxlS2V5cyBhbmQgdGhlaXIgaW1wbGljYXRpb25zOlxuICogXCJvdmVyd3JpdGVcIjogVGhlIHdob2xlIG9iamVjdCBnZXRzIG92ZXJ3cml0dGVuIC0gaWYgdGhlIGN1c3RvbUVsZW1lbnRzIGluY2x1ZGUgYSBkZWZhdWx0LCB0aGlzIHdpbGwgb3ZlcnJ1bGUgdGhlIHdob2xlIHJvb3RFbGVtZW50cyBjb25maWd1cmF0aW9uLlxuICogXCJtZXJnZVwiOiBUaGlzIGlzIHNpbWlsYXIgdG8gY2FsbGluZyBpbnNlcnRDdXN0b21FbGVtZW50cyBpdHNlbGYuIFlvdSBtdXN0IGluY2x1ZGUgdGhlXG4gKiBmdWxsIEN1c3RvbUVsZW1lbnQgc3ludGF4IHdpdGhpbiB0aGUgY3VzdG9tRWxlbWVudHMsIGluY2x1ZGluZyBhbmNob3JzLCBmb3IgZXhhbXBsZS5cbiAqIFwiaWdub3JlXCI6IFRoZXJlIGFyZSBubyBhZGRpdGlvbnMgYW5kIG5vIGNvbWJpbmF0aW9ucy4gT25seSB0aGUgcm9vdEVsZW1lbnRzIG9iamVjdCBpcyB1c2VkLlxuICpcbiAqIE5vdGUgLSBQcm9jZWVkIGFzIGZvbGxvd3MgaW4gY2FzZSB5b3UgaGF2ZSBkZWZpbmVkIGN1c3RvbUVsZW1lbnRzIGFuZCBkbyBub3Qgd2FudCB0byBvdmVyd3JpdGUgdGhlaXIgdmFsdWVzIHdpdGggZGVmYXVsdHM6XG4gKiBIYW5kIHRoZSByb290RWxlbWVudHMgaW50byB0aGUgY3JlYXRpb24gZnVuY3Rpb24gb2YgdGhlIGN1c3RvbUVsZW1lbnQuXG4gKiBEZXBlbmRpbmcgb24gdGhlIGV4aXN0ZW5jZSBvZiBib3RoIHJvb3RFbGVtZW50LWNvbmZpZ3VyYXRpb24gYW5kIGN1c3RvbUVsZW1lbnQtY29uZmlndXJhdGlvbixcbiAqIHlvdSBtdXN0IHNldCB0aGUgY3VzdG9tRWxlbWVudHMgcHJvcGVydHksIGZvciB3aGljaCB0aGUgXCJvdmVyd3JpdGVcIi1wcm9wZXJ0eSBpcyBzZXQsIGV4cGxpY2l0bHkgdG8gdW5kZWZpbmVkLlxuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0gcm9vdEVsZW1lbnRzIEEgbGlzdCBvZiBcIkNvbmZpZ3VyYWJsZU9iamVjdFwiIHdoaWNoIG1lYW5zIG9iamVjdCB0aGF0IGhhdmUgYSB1bmlxdWUgXCJrZXlcIlxuICogQHBhcmFtIGN1c3RvbUVsZW1lbnRzIEFuIG9iamVjdCBjb250YWluaW5nIGV4dHJhIG9iamVjdCB0byBhZGQsIHRoZXkgYXJlIGluZGV4ZWQgYnkgYSBrZXkgYW5kIGhhdmUgYSBcInBvc2l0aW9uXCIgb2JqZWN0XG4gKiBAcGFyYW0gb3ZlcndyaXRhYmxlS2V5cyBUaGUgbGlzdCBvZiBrZXlzIGZyb20gdGhlIG9yaWdpbmFsIG9iamVjdCB0aGF0IGNhbiBiZSBvdmVyd3JpdHRlbiBpbiBjYXNlIGEgY3VzdG9tIGVsZW1lbnQgaGFzIHRoZSBzYW1lIFwia2V5XCJcbiAqIEByZXR1cm5zIEFuIG9yZGVyZWQgYXJyYXkgb2YgZWxlbWVudHMgaW5jbHVkaW5nIHRoZSBjdXN0b20gb25lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q3VzdG9tRWxlbWVudHM8VCBleHRlbmRzIENvbmZpZ3VyYWJsZU9iamVjdD4oXG5cdHJvb3RFbGVtZW50czogVFtdLFxuXHRjdXN0b21FbGVtZW50czogUmVjb3JkPHN0cmluZywgQ3VzdG9tRWxlbWVudDxUPj4sXG5cdG92ZXJ3cml0YWJsZUtleXM6IE92ZXJyaWRlS2V5czxUPiA9IHt9XG4pOiBUW10ge1xuXHRjb25zdCBmaXJzdEFuY2hvciA9IHJvb3RFbGVtZW50cy5sZW5ndGggPyByb290RWxlbWVudHNbMF0ua2V5IDogbnVsbDtcblx0Y29uc3Qgcm9vdEVsZW1lbnRzV2l0aG91dExhc3QgPSByb290RWxlbWVudHMuZmlsdGVyKChyb290RWxlbWVudCkgPT4ge1xuXHRcdHJldHVybiByb290RWxlbWVudC5wb3NpdGlvbj8ucGxhY2VtZW50ICE9PSBQbGFjZW1lbnQuRW5kO1xuXHR9KTtcblx0Y29uc3QgbGFzdEFuY2hvciA9IHJvb3RFbGVtZW50cy5sZW5ndGggPyByb290RWxlbWVudHNbcm9vdEVsZW1lbnRzV2l0aG91dExhc3QubGVuZ3RoIC0gMV0ua2V5IDogbnVsbDtcblx0bGV0IGVuZEVsZW1lbnQ6IFQgfCB1bmRlZmluZWQ7XG5cdGNvbnN0IHBvc2l0aW9uaW5nSXRlbXM6IFJlY29yZDxzdHJpbmcsIFJlcXVpcmVkPFBvc2l0aW9uPj4gPSB7fTtcblx0Y29uc3QgaXRlbXNQZXJLZXk6IFJlY29yZDxzdHJpbmcsIFQ+ID0ge307XG5cdHJvb3RFbGVtZW50cy5mb3JFYWNoKChyb290RWxlbWVudCkgPT4ge1xuXHRcdGlmIChyb290RWxlbWVudC5wb3NpdGlvbj8ucGxhY2VtZW50ID09PSBQbGFjZW1lbnQuRW5kICYmICFlbmRFbGVtZW50KSB7XG5cdFx0XHRlbmRFbGVtZW50ID0gcm9vdEVsZW1lbnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBvc2l0aW9uaW5nSXRlbXNbcm9vdEVsZW1lbnQua2V5XSA9IHtcblx0XHRcdFx0YW5jaG9yOiByb290RWxlbWVudC5wb3NpdGlvbj8uYW5jaG9yIHx8IHJvb3RFbGVtZW50LmtleSxcblx0XHRcdFx0cGxhY2VtZW50OiByb290RWxlbWVudC5wb3NpdGlvbj8ucGxhY2VtZW50IHx8IFBsYWNlbWVudC5BZnRlclxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aXRlbXNQZXJLZXlbcm9vdEVsZW1lbnQua2V5XSA9IHJvb3RFbGVtZW50O1xuXHR9KTtcblx0T2JqZWN0LmtleXMoY3VzdG9tRWxlbWVudHMpLmZvckVhY2goKGN1c3RvbUVsZW1lbnRLZXkpID0+IHtcblx0XHRjb25zdCBjdXN0b21FbGVtZW50ID0gY3VzdG9tRWxlbWVudHNbY3VzdG9tRWxlbWVudEtleV07XG5cdFx0Y29uc3QgYW5jaG9yID0gY3VzdG9tRWxlbWVudC5wb3NpdGlvbi5hbmNob3I7XG5cdFx0Ly8gSWYgbm8gcGxhY2VtZW50IGRlZmluZWQgd2UgYXJlIEFmdGVyXG5cdFx0aWYgKCFjdXN0b21FbGVtZW50LnBvc2l0aW9uLnBsYWNlbWVudCkge1xuXHRcdFx0Y3VzdG9tRWxlbWVudC5wb3NpdGlvbi5wbGFjZW1lbnQgPSBQbGFjZW1lbnQuQWZ0ZXI7XG5cdFx0fVxuXHRcdC8vIElmIG5vIGFuY2hvciB3ZSdyZSBlaXRoZXIgQWZ0ZXIgdGhlIGxhc3QgYW5jaG9yIG9yIEJlZm9yZSB0aGUgZmlyc3Rcblx0XHRpZiAoIWFuY2hvcikge1xuXHRcdFx0Y29uc3QgcG90ZW50aWFsQW5jaG9yID0gY3VzdG9tRWxlbWVudC5wb3NpdGlvbi5wbGFjZW1lbnQgPT09IFBsYWNlbWVudC5BZnRlciA/IGxhc3RBbmNob3IgOiBmaXJzdEFuY2hvcjtcblx0XHRcdGN1c3RvbUVsZW1lbnQucG9zaXRpb24uYW5jaG9yID0gcG90ZW50aWFsQW5jaG9yID8gcG90ZW50aWFsQW5jaG9yIDogY3VzdG9tRWxlbWVudEtleTtcblx0XHR9XG5cblx0XHQvLyBBZGRpbmcgYm91bmQvdW5ib3VuZCBhY3Rpb25zIHRvIG1lbnVcblx0XHRjdXN0b21FbGVtZW50Lm1lbnUgPSBjdXN0b21FbGVtZW50Py5tZW51Py5tYXAoKG1lbnUpID0+IHtcblx0XHRcdHJldHVybiBpdGVtc1BlcktleVttZW51LmtleV0gPz8gbWVudTtcblx0XHR9KTtcblxuXHRcdGlmIChpdGVtc1BlcktleVtjdXN0b21FbGVtZW50LmtleV0pIHtcblx0XHRcdGl0ZW1zUGVyS2V5W2N1c3RvbUVsZW1lbnQua2V5XSA9IGFwcGx5T3ZlcnJpZGUob3ZlcndyaXRhYmxlS2V5cywgaXRlbXNQZXJLZXlbY3VzdG9tRWxlbWVudC5rZXldLCBjdXN0b21FbGVtZW50KTtcblxuXHRcdFx0Ly9Qb3NpdGlvbiBpcyBvdmVyd3JpdHRlbiBmb3IgZmlsdGVyIGZpZWxkcyBpZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiBtYW5pZmVzdFxuXHRcdFx0aWYgKGFuY2hvciAmJiBjdXN0b21FbGVtZW50LnBvc2l0aW9uICYmIG92ZXJ3cml0YWJsZUtleXMucG9zaXRpb24gJiYgb3ZlcndyaXRhYmxlS2V5cy5wb3NpdGlvbiA9PT0gXCJvdmVyd3JpdGVcIikge1xuXHRcdFx0XHRwb3NpdGlvbmluZ0l0ZW1zW2N1c3RvbUVsZW1lbnQua2V5XSA9IGl0ZW1zUGVyS2V5W2N1c3RvbUVsZW1lbnQua2V5XS5wb3NpdGlvbiBhcyBSZXF1aXJlZDxQb3NpdGlvbj47XG5cdFx0XHR9XG5cdFx0XHQvKipcblx0XHRcdCAqIGFuY2hvciBjaGVjayBpcyBhZGRlZCB0byBtYWtlIHN1cmUgY2hhbmdlIGluIHByb3BlcnRpZXMgaW4gdGhlIG1hbmlmZXN0IGRvZXMgbm90IGFmZmVjdCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkLlxuXHRcdFx0ICogT3RoZXJ3aXNlLCB3aGVuIG5vIHBvc2l0aW9uIGlzIG1lbnRpb25lZCBpbiBtYW5pZmVzdCBmb3IgYW4gYWx0ZXJlZCBmaWVsZCwgdGhlIHBvc2l0aW9uIGlzIGNoYW5nZWQgYXNcblx0XHRcdCAqIHBlciB0aGUgcG90ZW50aWFsIGFuY2hvclxuXHRcdFx0ICovXG5cdFx0fSBlbHNlIHtcblx0XHRcdGl0ZW1zUGVyS2V5W2N1c3RvbUVsZW1lbnQua2V5XSA9IGFwcGx5T3ZlcnJpZGUob3ZlcndyaXRhYmxlS2V5cywgbnVsbCwgY3VzdG9tRWxlbWVudCk7XG5cdFx0XHRwb3NpdGlvbmluZ0l0ZW1zW2N1c3RvbUVsZW1lbnQua2V5XSA9IGN1c3RvbUVsZW1lbnQucG9zaXRpb24gYXMgUmVxdWlyZWQ8UG9zaXRpb24+O1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IHNvcnRlZEtleXM6IHN0cmluZ1tdID0gW107XG5cblx0T2JqZWN0LmtleXMocG9zaXRpb25pbmdJdGVtcykuZm9yRWFjaCgocG9zaXRpb25JdGVtS2V5KSA9PiB7XG5cdFx0b3JkZXJQb3NpdGlvbmluZ0l0ZW1SZWN1cnNpdmVseShwb3NpdGlvbmluZ0l0ZW1zLCBwb3NpdGlvbkl0ZW1LZXksIHNvcnRlZEtleXMsIHt9KTtcblx0fSk7XG5cblx0Y29uc3Qgb3V0RWxlbWVudHMgPSBzb3J0ZWRLZXlzLm1hcCgoa2V5KSA9PiBpdGVtc1BlcktleVtrZXldKTtcblx0aWYgKGVuZEVsZW1lbnQpIHtcblx0XHRvdXRFbGVtZW50cy5wdXNoKGVuZEVsZW1lbnQpO1xuXHR9XG5cdHJldHVybiBvdXRFbGVtZW50cztcbn1cbiJdfQ==
|
|
@@ -31,7 +31,7 @@ export type ConfigurableRecord<T> = Record<ConfigurableObjectKey, T>;
|
|
|
31
31
|
* @param anchor
|
|
32
32
|
* @param sorted
|
|
33
33
|
* @param visited
|
|
34
|
-
* @returns
|
|
34
|
+
* @returns The order of the current item
|
|
35
35
|
*/
|
|
36
36
|
const orderPositioningItemRecursively = (
|
|
37
37
|
positioningItems: Record<string, Required<Position>>,
|
|
@@ -46,7 +46,7 @@ const orderPositioningItemRecursively = (
|
|
|
46
46
|
const anchorItem: Required<Position> = positioningItems[anchor];
|
|
47
47
|
if (anchorItem === undefined) {
|
|
48
48
|
//return sorted.length;
|
|
49
|
-
throw new Error(
|
|
49
|
+
throw new Error(`position anchor not found: ${anchor}`);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
visited[anchor] = anchorItem;
|
|
@@ -147,7 +147,7 @@ function applyOverride<T extends Object>(overwritableKeys: OverrideKeys<T>, sour
|
|
|
147
147
|
* @param rootElements A list of "ConfigurableObject" which means object that have a unique "key"
|
|
148
148
|
* @param customElements An object containing extra object to add, they are indexed by a key and have a "position" object
|
|
149
149
|
* @param overwritableKeys The list of keys from the original object that can be overwritten in case a custom element has the same "key"
|
|
150
|
-
* @returns
|
|
150
|
+
* @returns An ordered array of elements including the custom ones
|
|
151
151
|
*/
|
|
152
152
|
export function insertCustomElements<T extends ConfigurableObject>(
|
|
153
153
|
rootElements: T[],
|
|
@@ -155,14 +155,14 @@ export function insertCustomElements<T extends ConfigurableObject>(
|
|
|
155
155
|
overwritableKeys: OverrideKeys<T> = {}
|
|
156
156
|
): T[] {
|
|
157
157
|
const firstAnchor = rootElements.length ? rootElements[0].key : null;
|
|
158
|
-
const rootElementsWithoutLast = rootElements.filter(rootElement => {
|
|
158
|
+
const rootElementsWithoutLast = rootElements.filter((rootElement) => {
|
|
159
159
|
return rootElement.position?.placement !== Placement.End;
|
|
160
160
|
});
|
|
161
161
|
const lastAnchor = rootElements.length ? rootElements[rootElementsWithoutLast.length - 1].key : null;
|
|
162
162
|
let endElement: T | undefined;
|
|
163
163
|
const positioningItems: Record<string, Required<Position>> = {};
|
|
164
164
|
const itemsPerKey: Record<string, T> = {};
|
|
165
|
-
rootElements.forEach(rootElement => {
|
|
165
|
+
rootElements.forEach((rootElement) => {
|
|
166
166
|
if (rootElement.position?.placement === Placement.End && !endElement) {
|
|
167
167
|
endElement = rootElement;
|
|
168
168
|
} else {
|
|
@@ -173,7 +173,7 @@ export function insertCustomElements<T extends ConfigurableObject>(
|
|
|
173
173
|
}
|
|
174
174
|
itemsPerKey[rootElement.key] = rootElement;
|
|
175
175
|
});
|
|
176
|
-
Object.keys(customElements).forEach(customElementKey => {
|
|
176
|
+
Object.keys(customElements).forEach((customElementKey) => {
|
|
177
177
|
const customElement = customElements[customElementKey];
|
|
178
178
|
const anchor = customElement.position.anchor;
|
|
179
179
|
// If no placement defined we are After
|
|
@@ -187,7 +187,7 @@ export function insertCustomElements<T extends ConfigurableObject>(
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
// Adding bound/unbound actions to menu
|
|
190
|
-
customElement.menu = customElement?.menu?.map(menu => {
|
|
190
|
+
customElement.menu = customElement?.menu?.map((menu) => {
|
|
191
191
|
return itemsPerKey[menu.key] ?? menu;
|
|
192
192
|
});
|
|
193
193
|
|
|
@@ -210,11 +210,11 @@ export function insertCustomElements<T extends ConfigurableObject>(
|
|
|
210
210
|
});
|
|
211
211
|
const sortedKeys: string[] = [];
|
|
212
212
|
|
|
213
|
-
Object.keys(positioningItems).forEach(positionItemKey => {
|
|
213
|
+
Object.keys(positioningItems).forEach((positionItemKey) => {
|
|
214
214
|
orderPositioningItemRecursively(positioningItems, positionItemKey, sortedKeys, {});
|
|
215
215
|
});
|
|
216
216
|
|
|
217
|
-
const outElements = sortedKeys.map(key => itemsPerKey[key]);
|
|
217
|
+
const outElements = sortedKeys.map((key) => itemsPerKey[key]);
|
|
218
218
|
if (endElement) {
|
|
219
219
|
outElements.push(endElement);
|
|
220
220
|
}
|
|
@@ -13,10 +13,10 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
13
13
|
* Shortcut to the stableIdHelper providing a "curry" like method where the last parameter is missing.
|
|
14
14
|
*
|
|
15
15
|
* @param sFixedPart
|
|
16
|
-
* @returns
|
|
16
|
+
* @returns A shortcut function with the fixed ID part
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
function
|
|
19
|
+
function createIDGenerator() {
|
|
20
20
|
for (var _len = arguments.length, sFixedPart = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
21
21
|
sFixedPart[_key] = arguments[_key];
|
|
22
22
|
}
|
|
@@ -34,65 +34,65 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
_exports.
|
|
38
|
-
var
|
|
39
|
-
_exports.
|
|
40
|
-
var
|
|
41
|
-
_exports.
|
|
42
|
-
var
|
|
43
|
-
_exports.
|
|
44
|
-
var
|
|
45
|
-
_exports.
|
|
46
|
-
var
|
|
47
|
-
_exports.
|
|
48
|
-
var
|
|
49
|
-
_exports.
|
|
50
|
-
var
|
|
51
|
-
_exports.
|
|
52
|
-
var
|
|
53
|
-
_exports.
|
|
54
|
-
var
|
|
55
|
-
_exports.
|
|
56
|
-
var
|
|
57
|
-
_exports.
|
|
37
|
+
_exports.createIDGenerator = createIDGenerator;
|
|
38
|
+
var getHeaderFacetID = createIDGenerator("HeaderFacet");
|
|
39
|
+
_exports.getHeaderFacetID = getHeaderFacetID;
|
|
40
|
+
var getHeaderFacetContainerID = createIDGenerator("HeaderFacetContainer");
|
|
41
|
+
_exports.getHeaderFacetContainerID = getHeaderFacetContainerID;
|
|
42
|
+
var getHeaderFacetFormID = createIDGenerator("HeaderFacet", "Form");
|
|
43
|
+
_exports.getHeaderFacetFormID = getHeaderFacetFormID;
|
|
44
|
+
var getCustomHeaderFacetID = createIDGenerator("HeaderFacetCustomContainer");
|
|
45
|
+
_exports.getCustomHeaderFacetID = getCustomHeaderFacetID;
|
|
46
|
+
var getEditableHeaderSectionID = createIDGenerator("EditableHeaderSection");
|
|
47
|
+
_exports.getEditableHeaderSectionID = getEditableHeaderSectionID;
|
|
48
|
+
var getSectionID = createIDGenerator("FacetSection");
|
|
49
|
+
_exports.getSectionID = getSectionID;
|
|
50
|
+
var getCustomSectionID = createIDGenerator("CustomSection");
|
|
51
|
+
_exports.getCustomSectionID = getCustomSectionID;
|
|
52
|
+
var getSubSectionID = createIDGenerator("FacetSubSection");
|
|
53
|
+
_exports.getSubSectionID = getSubSectionID;
|
|
54
|
+
var getCustomSubSectionID = createIDGenerator("CustomSubSection");
|
|
55
|
+
_exports.getCustomSubSectionID = getCustomSubSectionID;
|
|
56
|
+
var getSideContentID = createIDGenerator("SideContent");
|
|
57
|
+
_exports.getSideContentID = getSideContentID;
|
|
58
58
|
|
|
59
|
-
var
|
|
59
|
+
var getSideContentLayoutID = function (sSectionID) {
|
|
60
60
|
return generate(["fe", sSectionID, "SideContentLayout"]);
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
_exports.
|
|
64
|
-
var
|
|
65
|
-
_exports.
|
|
63
|
+
_exports.getSideContentLayoutID = getSideContentLayoutID;
|
|
64
|
+
var getFormID = createIDGenerator("Form");
|
|
65
|
+
_exports.getFormID = getFormID;
|
|
66
66
|
|
|
67
|
-
var
|
|
67
|
+
var getFormStandardActionButtonID = function (sFormContainerId, sActionName) {
|
|
68
68
|
return generate(["fe", "FormContainer", sFormContainerId, "StandardAction", sActionName]);
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
-
_exports.
|
|
72
|
-
var
|
|
73
|
-
_exports.
|
|
74
|
-
var
|
|
75
|
-
_exports.
|
|
76
|
-
var
|
|
77
|
-
_exports.
|
|
78
|
-
var
|
|
79
|
-
_exports.
|
|
71
|
+
_exports.getFormStandardActionButtonID = getFormStandardActionButtonID;
|
|
72
|
+
var getTableID = createIDGenerator("table");
|
|
73
|
+
_exports.getTableID = getTableID;
|
|
74
|
+
var getCustomTabID = createIDGenerator("CustomTab");
|
|
75
|
+
_exports.getCustomTabID = getCustomTabID;
|
|
76
|
+
var getFilterBarID = createIDGenerator("FilterBar");
|
|
77
|
+
_exports.getFilterBarID = getFilterBarID;
|
|
78
|
+
var getIconTabBarID = createIDGenerator("TabMultipleMode");
|
|
79
|
+
_exports.getIconTabBarID = getIconTabBarID;
|
|
80
80
|
|
|
81
|
-
var
|
|
81
|
+
var getFilterVariantManagementID = function (sFilterID) {
|
|
82
82
|
return generate([sFilterID, "VariantManagement"]);
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
_exports.
|
|
86
|
-
var
|
|
87
|
-
_exports.
|
|
85
|
+
_exports.getFilterVariantManagementID = getFilterVariantManagementID;
|
|
86
|
+
var getChartID = createIDGenerator("Chart");
|
|
87
|
+
_exports.getChartID = getChartID;
|
|
88
88
|
|
|
89
|
-
var
|
|
89
|
+
var getCustomActionID = function (sActionID) {
|
|
90
90
|
return generate(["CustomAction", sActionID]);
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
_exports.
|
|
94
|
-
var
|
|
95
|
-
_exports.
|
|
93
|
+
_exports.getCustomActionID = getCustomActionID;
|
|
94
|
+
var getKPIID = createIDGenerator("KPI");
|
|
95
|
+
_exports.getKPIID = getKPIID;
|
|
96
96
|
return _exports;
|
|
97
97
|
}, false);
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIklELnRzIl0sIm5hbWVzIjpbIkJBU0VfSUQiLCJjcmVhdGVJREdlbmVyYXRvciIsInNGaXhlZFBhcnQiLCJzSURQYXJ0IiwiZ2VuZXJhdGUiLCJjb25jYXQiLCJnZXRIZWFkZXJGYWNldElEIiwiZ2V0SGVhZGVyRmFjZXRDb250YWluZXJJRCIsImdldEhlYWRlckZhY2V0Rm9ybUlEIiwiZ2V0Q3VzdG9tSGVhZGVyRmFjZXRJRCIsImdldEVkaXRhYmxlSGVhZGVyU2VjdGlvbklEIiwiZ2V0U2VjdGlvbklEIiwiZ2V0Q3VzdG9tU2VjdGlvbklEIiwiZ2V0U3ViU2VjdGlvbklEIiwiZ2V0Q3VzdG9tU3ViU2VjdGlvbklEIiwiZ2V0U2lkZUNvbnRlbnRJRCIsImdldFNpZGVDb250ZW50TGF5b3V0SUQiLCJzU2VjdGlvbklEIiwiZ2V0Rm9ybUlEIiwiZ2V0Rm9ybVN0YW5kYXJkQWN0aW9uQnV0dG9uSUQiLCJzRm9ybUNvbnRhaW5lcklkIiwic0FjdGlvbk5hbWUiLCJnZXRUYWJsZUlEIiwiZ2V0Q3VzdG9tVGFiSUQiLCJnZXRGaWx0ZXJCYXJJRCIsImdldEljb25UYWJCYXJJRCIsImdldEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQiLCJzRmlsdGVySUQiLCJnZXRDaGFydElEIiwiZ2V0Q3VzdG9tQWN0aW9uSUQiLCJzQWN0aW9uSUQiLCJnZXRLUElJRCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQUNBLE1BQU1BLE9BQWlCLEdBQUcsQ0FBQyxJQUFELENBQTFCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNPLFdBQVNDLGlCQUFULEdBQW9EO0FBQUEsc0NBQXRCQyxVQUFzQjtBQUF0QkEsTUFBQUEsVUFBc0I7QUFBQTs7QUFDMUQsV0FBTyxZQUFnQztBQUFBLHlDQUFuQkMsT0FBbUI7QUFBbkJBLFFBQUFBLE9BQW1CO0FBQUE7O0FBQ3RDLGFBQU9DLFFBQVEsQ0FBQ0osT0FBTyxDQUFDSyxNQUFSLE9BQUFMLE9BQU8sRUFBV0UsVUFBWCxRQUEwQkMsT0FBMUIsRUFBUixDQUFmO0FBQ0EsS0FGRDtBQUdBO0FBRUQ7QUFDQTtBQUNBOzs7O0FBQ08sTUFBTUcsZ0JBQWdCLEdBQUdMLGlCQUFpQixDQUFDLGFBQUQsQ0FBMUM7O0FBQ0EsTUFBTU0seUJBQXlCLEdBQUdOLGlCQUFpQixDQUFDLHNCQUFELENBQW5EOztBQUNBLE1BQU1PLG9CQUFvQixHQUFHUCxpQkFBaUIsQ0FBQyxhQUFELEVBQWdCLE1BQWhCLENBQTlDOztBQUNBLE1BQU1RLHNCQUFzQixHQUFHUixpQkFBaUIsQ0FBQyw0QkFBRCxDQUFoRDs7QUFDQSxNQUFNUywwQkFBMEIsR0FBR1QsaUJBQWlCLENBQUMsdUJBQUQsQ0FBcEQ7O0FBQ0EsTUFBTVUsWUFBWSxHQUFHVixpQkFBaUIsQ0FBQyxjQUFELENBQXRDOztBQUNBLE1BQU1XLGtCQUFrQixHQUFHWCxpQkFBaUIsQ0FBQyxlQUFELENBQTVDOztBQUNBLE1BQU1ZLGVBQWUsR0FBR1osaUJBQWlCLENBQUMsaUJBQUQsQ0FBekM7O0FBQ0EsTUFBTWEscUJBQXFCLEdBQUdiLGlCQUFpQixDQUFDLGtCQUFELENBQS9DOztBQUNBLE1BQU1jLGdCQUFnQixHQUFHZCxpQkFBaUIsQ0FBQyxhQUFELENBQTFDOzs7QUFDQSxNQUFNZSxzQkFBc0IsR0FBRyxVQUFVQyxVQUFWLEVBQThCO0FBQ25FLFdBQU9iLFFBQVEsQ0FBQyxDQUFDLElBQUQsRUFBT2EsVUFBUCxFQUFtQixtQkFBbkIsQ0FBRCxDQUFmO0FBQ0EsR0FGTTs7O0FBR0EsTUFBTUMsU0FBUyxHQUFHakIsaUJBQWlCLENBQUMsTUFBRCxDQUFuQzs7O0FBQ0EsTUFBTWtCLDZCQUE2QixHQUFHLFVBQVVDLGdCQUFWLEVBQW9DQyxXQUFwQyxFQUF5RDtBQUNyRyxXQUFPakIsUUFBUSxDQUFDLENBQUMsSUFBRCxFQUFPLGVBQVAsRUFBd0JnQixnQkFBeEIsRUFBMEMsZ0JBQTFDLEVBQTREQyxXQUE1RCxDQUFELENBQWY7QUFDQSxHQUZNOzs7QUFHQSxNQUFNQyxVQUFVLEdBQUdyQixpQkFBaUIsQ0FBQyxPQUFELENBQXBDOztBQUNBLE1BQU1zQixjQUFjLEdBQUd0QixpQkFBaUIsQ0FBQyxXQUFELENBQXhDOztBQUNBLE1BQU11QixjQUFjLEdBQUd2QixpQkFBaUIsQ0FBQyxXQUFELENBQXhDOztBQUNBLE1BQU13QixlQUFlLEdBQUd4QixpQkFBaUIsQ0FBQyxpQkFBRCxDQUF6Qzs7O0FBQ0EsTUFBTXlCLDRCQUE0QixHQUFHLFVBQVVDLFNBQVYsRUFBNkI7QUFDeEUsV0FBT3ZCLFFBQVEsQ0FBQyxDQUFDdUIsU0FBRCxFQUFZLG1CQUFaLENBQUQsQ0FBZjtBQUNBLEdBRk07OztBQUdBLE1BQU1DLFVBQVUsR0FBRzNCLGlCQUFpQixDQUFDLE9BQUQsQ0FBcEM7OztBQUNBLE1BQU00QixpQkFBaUIsR0FBRyxVQUFVQyxTQUFWLEVBQTZCO0FBQzdELFdBQU8xQixRQUFRLENBQUMsQ0FBQyxjQUFELEVBQWlCMEIsU0FBakIsQ0FBRCxDQUFmO0FBQ0EsR0FGTTs7O0FBR0EsTUFBTUMsUUFBUSxHQUFHOUIsaUJBQWlCLENBQUMsS0FBRCxDQUFsQyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBGYWNldFR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xudHlwZSBJRFBhcnQgPSBzdHJpbmcgfCB7IEZhY2V0OiBGYWNldFR5cGVzIH0gfCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzO1xuY29uc3QgQkFTRV9JRDogSURQYXJ0W10gPSBbXCJmZVwiXTtcblxuLyoqXG4gKiBTaG9ydGN1dCB0byB0aGUgc3RhYmxlSWRIZWxwZXIgcHJvdmlkaW5nIGEgXCJjdXJyeVwiIGxpa2UgbWV0aG9kIHdoZXJlIHRoZSBsYXN0IHBhcmFtZXRlciBpcyBtaXNzaW5nLlxuICpcbiAqIEBwYXJhbSBzRml4ZWRQYXJ0XG4gKiBAcmV0dXJucyBBIHNob3J0Y3V0IGZ1bmN0aW9uIHdpdGggdGhlIGZpeGVkIElEIHBhcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlER2VuZXJhdG9yKC4uLnNGaXhlZFBhcnQ6IElEUGFydFtdKSB7XG5cdHJldHVybiBmdW5jdGlvbiAoLi4uc0lEUGFydDogSURQYXJ0W10pIHtcblx0XHRyZXR1cm4gZ2VuZXJhdGUoQkFTRV9JRC5jb25jYXQoLi4uc0ZpeGVkUGFydCwgLi4uc0lEUGFydCkpO1xuXHR9O1xufVxuXG4vKipcbiAqIFRob3NlIGFyZSBhbGwgaGVscGVycyB0byBjZW50cmFsaXplIElEIGdlbmVyYXRpb24gaW4gdGhlIGNvZGUgZm9yIGRpZmZlcmVudCBlbGVtZW50c1xuICovXG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyRmFjZXRJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiSGVhZGVyRmFjZXRcIik7XG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyRmFjZXRDb250YWluZXJJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiSGVhZGVyRmFjZXRDb250YWluZXJcIik7XG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyRmFjZXRGb3JtSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkhlYWRlckZhY2V0XCIsIFwiRm9ybVwiKTtcbmV4cG9ydCBjb25zdCBnZXRDdXN0b21IZWFkZXJGYWNldElEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJIZWFkZXJGYWNldEN1c3RvbUNvbnRhaW5lclwiKTtcbmV4cG9ydCBjb25zdCBnZXRFZGl0YWJsZUhlYWRlclNlY3Rpb25JRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiRWRpdGFibGVIZWFkZXJTZWN0aW9uXCIpO1xuZXhwb3J0IGNvbnN0IGdldFNlY3Rpb25JRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiRmFjZXRTZWN0aW9uXCIpO1xuZXhwb3J0IGNvbnN0IGdldEN1c3RvbVNlY3Rpb25JRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiQ3VzdG9tU2VjdGlvblwiKTtcbmV4cG9ydCBjb25zdCBnZXRTdWJTZWN0aW9uSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkZhY2V0U3ViU2VjdGlvblwiKTtcbmV4cG9ydCBjb25zdCBnZXRDdXN0b21TdWJTZWN0aW9uSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkN1c3RvbVN1YlNlY3Rpb25cIik7XG5leHBvcnQgY29uc3QgZ2V0U2lkZUNvbnRlbnRJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiU2lkZUNvbnRlbnRcIik7XG5leHBvcnQgY29uc3QgZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCA9IGZ1bmN0aW9uIChzU2VjdGlvbklEOiBzdHJpbmcpIHtcblx0cmV0dXJuIGdlbmVyYXRlKFtcImZlXCIsIHNTZWN0aW9uSUQsIFwiU2lkZUNvbnRlbnRMYXlvdXRcIl0pO1xufTtcbmV4cG9ydCBjb25zdCBnZXRGb3JtSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkZvcm1cIik7XG5leHBvcnQgY29uc3QgZ2V0Rm9ybVN0YW5kYXJkQWN0aW9uQnV0dG9uSUQgPSBmdW5jdGlvbiAoc0Zvcm1Db250YWluZXJJZDogc3RyaW5nLCBzQWN0aW9uTmFtZTogc3RyaW5nKSB7XG5cdHJldHVybiBnZW5lcmF0ZShbXCJmZVwiLCBcIkZvcm1Db250YWluZXJcIiwgc0Zvcm1Db250YWluZXJJZCwgXCJTdGFuZGFyZEFjdGlvblwiLCBzQWN0aW9uTmFtZV0pO1xufTtcbmV4cG9ydCBjb25zdCBnZXRUYWJsZUlEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJ0YWJsZVwiKTtcbmV4cG9ydCBjb25zdCBnZXRDdXN0b21UYWJJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiQ3VzdG9tVGFiXCIpO1xuZXhwb3J0IGNvbnN0IGdldEZpbHRlckJhcklEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJGaWx0ZXJCYXJcIik7XG5leHBvcnQgY29uc3QgZ2V0SWNvblRhYkJhcklEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJUYWJNdWx0aXBsZU1vZGVcIik7XG5leHBvcnQgY29uc3QgZ2V0RmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCA9IGZ1bmN0aW9uIChzRmlsdGVySUQ6IHN0cmluZykge1xuXHRyZXR1cm4gZ2VuZXJhdGUoW3NGaWx0ZXJJRCwgXCJWYXJpYW50TWFuYWdlbWVudFwiXSk7XG59O1xuZXhwb3J0IGNvbnN0IGdldENoYXJ0SUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkNoYXJ0XCIpO1xuZXhwb3J0IGNvbnN0IGdldEN1c3RvbUFjdGlvbklEID0gZnVuY3Rpb24gKHNBY3Rpb25JRDogc3RyaW5nKSB7XG5cdHJldHVybiBnZW5lcmF0ZShbXCJDdXN0b21BY3Rpb25cIiwgc0FjdGlvbklEXSk7XG59O1xuZXhwb3J0IGNvbnN0IGdldEtQSUlEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJLUElcIik7XG4iXX0=
|