@sapui5/sap.fe.core 1.100.0 → 1.102.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 +4 -4
- package/src/sap/fe/core/.library +2 -3
- package/src/sap/fe/core/AppComponent.js +23 -30
- package/src/sap/fe/core/AppComponent.ts +35 -40
- package/src/sap/fe/core/AppStateHandler.js +8 -8
- package/src/sap/fe/core/AppStateHandler.ts +11 -11
- package/src/sap/fe/core/BaseController.js +9 -9
- package/src/sap/fe/core/BaseController.ts +3 -4
- package/src/sap/fe/core/CommonUtils.js +122 -101
- package/src/sap/fe/core/CommonUtils.ts +239 -193
- package/src/sap/fe/core/ExtensionAPI.js +12 -13
- package/src/sap/fe/core/ExtensionAPI.ts +21 -31
- package/src/sap/fe/core/PageController.js +19 -13
- package/src/sap/fe/core/PageController.ts +40 -34
- package/src/sap/fe/core/TemplateComponent.js +198 -123
- package/src/sap/fe/core/TemplateComponent.ts +109 -121
- package/src/sap/fe/core/TemplateModel.js +7 -9
- package/src/sap/fe/core/TemplateModel.ts +3 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +935 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +837 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
- package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
- package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
- package/src/sap/fe/core/controllerextensions/EditFlow.js +660 -288
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +513 -331
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +43 -25
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +132 -103
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +16 -16
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +64 -55
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +166 -99
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +187 -149
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
- package/src/sap/fe/core/controllerextensions/MassEdit.js +13 -12
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +22 -22
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +14 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +20 -30
- package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
- package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
- package/src/sap/fe/core/controllerextensions/Paginator.js +24 -15
- package/src/sap/fe/core/controllerextensions/Paginator.ts +35 -20
- package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +34 -16
- package/src/sap/fe/core/controllerextensions/Share.ts +50 -32
- package/src/sap/fe/core/controllerextensions/SideEffects.js +15 -15
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +64 -65
- package/src/sap/fe/core/controllerextensions/ViewState.js +27 -31
- package/src/sap/fe/core/controllerextensions/ViewState.ts +103 -102
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +98 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +90 -132
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +146 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +18 -8
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +264 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +35 -33
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +100 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1584 -0
- package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +190 -159
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +780 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +329 -76
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1149 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +169 -97
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +190 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/sticky.ts +76 -12
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +592 -0
- package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +83 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +940 -0
- package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +52 -36
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
- package/src/sap/fe/core/controls/Any.js +28 -0
- package/src/sap/fe/core/controls/Any.ts +30 -0
- package/src/sap/fe/core/controls/CommandExecution.js +50 -16
- package/src/sap/fe/core/controls/CommandExecution.ts +31 -22
- package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +371 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +282 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +74 -36
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +23 -32
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +52 -5
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +127 -67
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +127 -67
- package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
- package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
- package/src/sap/fe/core/controls/FileWrapper.js +360 -0
- package/src/sap/fe/core/controls/FileWrapper.ts +202 -0
- package/src/sap/fe/core/controls/FilterBar.js +154 -119
- package/src/sap/fe/core/controls/FilterBar.ts +128 -123
- package/src/sap/fe/core/controls/FormElementWrapper.js +102 -37
- package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -35
- package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.ts +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +23 -28
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +41 -81
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +550 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +604 -35
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
- package/src/sap/fe/core/converters/MetaModelConverter.js +11 -40
- package/src/sap/fe/core/converters/MetaModelConverter.ts +56 -84
- package/src/sap/fe/core/converters/annotations/DataField.js +20 -5
- package/src/sap/fe/core/converters/annotations/DataField.ts +27 -6
- package/src/sap/fe/core/converters/controls/Common/Action.js +14 -21
- package/src/sap/fe/core/converters/controls/Common/Action.ts +23 -28
- package/src/sap/fe/core/converters/controls/Common/Chart.js +17 -10
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -14
- package/src/sap/fe/core/converters/controls/Common/Form.js +16 -18
- package/src/sap/fe/core/converters/controls/Common/Form.ts +20 -20
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
- package/src/sap/fe/core/converters/controls/Common/Table.js +389 -173
- package/src/sap/fe/core/converters/controls/Common/Table.ts +440 -244
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +26 -16
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -19
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +78 -47
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +146 -107
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +30 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +39 -34
- package/src/sap/fe/core/converters/helpers/Aggregation.js +10 -2
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +18 -13
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +6 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +28 -28
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +38 -45
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -3
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +8 -6
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +74 -13
- package/src/sap/fe/core/formatters/TableFormatter.ts +71 -16
- package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
- package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
- package/src/sap/fe/core/fpm/Component.js +46 -17
- package/src/sap/fe/core/fpm/Component.ts +11 -16
- package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
- package/src/sap/fe/core/helpers/BindingExpression.js +10 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +37 -35
- package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
- package/src/sap/fe/core/helpers/ClassSupport.ts +315 -237
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
- package/src/sap/fe/core/helpers/FPMHelper.ts +9 -8
- package/src/sap/fe/core/helpers/MassEditHelper.js +522 -147
- package/src/sap/fe/core/helpers/MassEditHelper.ts +563 -236
- package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +39 -26
- package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
- package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +5 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +8 -8
- package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
- package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
- package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
- package/src/sap/fe/core/library.js +13 -5
- package/src/sap/fe/core/library.ts +26 -17
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
- package/src/sap/fe/core/messagebundle.properties +135 -180
- package/src/sap/fe/core/messagebundle_ar.properties +31 -64
- package/src/sap/fe/core/messagebundle_bg.properties +31 -64
- package/src/sap/fe/core/messagebundle_ca.properties +31 -64
- package/src/sap/fe/core/messagebundle_cs.properties +31 -64
- package/src/sap/fe/core/messagebundle_cy.properties +32 -65
- package/src/sap/fe/core/messagebundle_da.properties +31 -64
- package/src/sap/fe/core/messagebundle_de.properties +29 -62
- package/src/sap/fe/core/messagebundle_el.properties +32 -65
- package/src/sap/fe/core/messagebundle_en.properties +32 -65
- package/src/sap/fe/core/messagebundle_en_GB.properties +29 -62
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -74
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +32 -65
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +20 -6
- package/src/sap/fe/core/messagebundle_es.properties +31 -64
- package/src/sap/fe/core/messagebundle_es_MX.properties +31 -64
- package/src/sap/fe/core/messagebundle_et.properties +31 -64
- package/src/sap/fe/core/messagebundle_fi.properties +29 -62
- package/src/sap/fe/core/messagebundle_fr.properties +36 -69
- package/src/sap/fe/core/messagebundle_fr_CA.properties +33 -66
- package/src/sap/fe/core/messagebundle_hi.properties +29 -62
- package/src/sap/fe/core/messagebundle_hr.properties +32 -65
- package/src/sap/fe/core/messagebundle_hu.properties +30 -63
- package/src/sap/fe/core/messagebundle_id.properties +32 -65
- package/src/sap/fe/core/messagebundle_it.properties +31 -64
- package/src/sap/fe/core/messagebundle_iw.properties +31 -64
- package/src/sap/fe/core/messagebundle_ja.properties +29 -62
- package/src/sap/fe/core/messagebundle_kk.properties +31 -64
- package/src/sap/fe/core/messagebundle_ko.properties +31 -64
- package/src/sap/fe/core/messagebundle_lt.properties +31 -64
- package/src/sap/fe/core/messagebundle_lv.properties +32 -65
- package/src/sap/fe/core/messagebundle_ms.properties +31 -64
- package/src/sap/fe/core/messagebundle_nl.properties +31 -64
- package/src/sap/fe/core/messagebundle_no.properties +31 -64
- package/src/sap/fe/core/messagebundle_pl.properties +34 -67
- package/src/sap/fe/core/messagebundle_pt.properties +32 -65
- package/src/sap/fe/core/messagebundle_pt_PT.properties +31 -64
- package/src/sap/fe/core/messagebundle_ro.properties +33 -66
- package/src/sap/fe/core/messagebundle_ru.properties +33 -66
- package/src/sap/fe/core/messagebundle_sh.properties +31 -64
- package/src/sap/fe/core/messagebundle_sk.properties +31 -64
- package/src/sap/fe/core/messagebundle_sl.properties +29 -62
- package/src/sap/fe/core/messagebundle_sv.properties +30 -63
- package/src/sap/fe/core/messagebundle_th.properties +31 -64
- package/src/sap/fe/core/messagebundle_tr.properties +31 -64
- package/src/sap/fe/core/messagebundle_uk.properties +32 -65
- package/src/sap/fe/core/messagebundle_vi.properties +31 -64
- package/src/sap/fe/core/messagebundle_zh_CN.properties +32 -65
- package/src/sap/fe/core/messagebundle_zh_TW.properties +34 -67
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +11 -8
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -13
- package/src/sap/fe/core/services/NavigationServiceFactory.js +5 -5
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +9 -5
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +105 -66
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +59 -49
- package/src/sap/fe/core/services/ShellServicesFactory.js +104 -29
- package/src/sap/fe/core/services/ShellServicesFactory.ts +64 -30
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -10
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +38 -51
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +0 -3
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +27 -6
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -9
- package/src/sap/fe/core/templating/EntitySetHelper.ts +11 -13
- package/src/sap/fe/core/templating/FilterHelper.js +4 -4
- package/src/sap/fe/core/templating/FilterHelper.ts +6 -5
- package/src/sap/fe/core/templating/PropertyHelper.js +70 -33
- package/src/sap/fe/core/templating/PropertyHelper.ts +49 -27
- package/src/sap/fe/core/templating/UIFormatters.js +133 -22
- package/src/sap/fe/core/templating/UIFormatters.ts +144 -50
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
- package/src/sap/fe/core/type/Email.js +26 -8
- package/src/sap/fe/core/type/Email.ts +8 -7
- package/src/sap/fe/core/AnnotationHelper.js +0 -312
- package/src/sap/fe/core/AnnotationHelper.ts +0 -315
- package/src/sap/fe/core/RouterProxy.js +0 -926
- package/src/sap/fe/core/TransactionHelper.js +0 -1562
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -392
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +0 -136
- package/src/sap/fe/core/actions/collaboration/Manage.js +0 -262
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +0 -103
- package/src/sap/fe/core/actions/draft.js +0 -523
- package/src/sap/fe/core/actions/messageHandling.js +0 -567
- package/src/sap/fe/core/actions/nonDraft.js +0 -20
- package/src/sap/fe/core/actions/nonDraft.ts +0 -12
- package/src/sap/fe/core/actions/operations.js +0 -1096
- package/src/sap/fe/core/actions/sticky.js +0 -130
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/base/util/deepClone", "sap/fe/core/buildingBlocks/BuildingBlockRuntime", "sap/fe/core/helpers/StableIdHelper"], function (deepClone, BuildingBlockRuntime, StableIdHelper) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var generate = StableIdHelper.generate;
|
|
10
|
+
var registerBuildingBlock = BuildingBlockRuntime.registerBuildingBlock;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Base class for Building Block
|
|
14
|
+
*/
|
|
15
|
+
var BuildingBlockBase = /*#__PURE__*/function () {
|
|
16
|
+
function BuildingBlockBase(oProps) {
|
|
17
|
+
var _this = this;
|
|
18
|
+
|
|
19
|
+
Object.keys(oProps).forEach(function (propName) {
|
|
20
|
+
_this[propName] = oProps[propName];
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Convert the given local element ID to a globally unique ID by prefixing with the Building Block ID.
|
|
25
|
+
*
|
|
26
|
+
* @param stringParts
|
|
27
|
+
* @returns Either the global ID or undefined if the Building Block doesn't have an ID
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
_exports.BuildingBlockBase = BuildingBlockBase;
|
|
32
|
+
var _proto = BuildingBlockBase.prototype;
|
|
33
|
+
|
|
34
|
+
_proto.createId = function createId() {
|
|
35
|
+
// If the child instance has an ID property use it otherwise return undefined
|
|
36
|
+
if (this.id) {
|
|
37
|
+
for (var _len = arguments.length, stringParts = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
38
|
+
stringParts[_key] = arguments[_key];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return generate([this.id].concat(stringParts));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
/*
|
|
47
|
+
// This block is commented out because I am not using them for now / need to change this but still want to keep them around
|
|
48
|
+
static getConverterContext = function (oVisualizationObjectPath: any, contextPath: any, mSettings: any, mExtraParams?: any) {
|
|
49
|
+
const oAppComponent = mSettings.appComponent;
|
|
50
|
+
const originalViewData = mSettings.models.viewData && mSettings.models.viewData.getData();
|
|
51
|
+
let viewData = Object.assign({}, originalViewData);
|
|
52
|
+
delete viewData.resourceBundle;
|
|
53
|
+
viewData = deepClone(viewData);
|
|
54
|
+
viewData.controlConfiguration = merge(viewData.controlConfiguration, mExtraParams);
|
|
55
|
+
return ConverterContext.createConverterContextForMacro(
|
|
56
|
+
oVisualizationObjectPath.startingEntitySet.name,
|
|
57
|
+
mSettings.models.metaModel,
|
|
58
|
+
oAppComponent && oAppComponent.getDiagnostics(),
|
|
59
|
+
merge,
|
|
60
|
+
oVisualizationObjectPath.contextLocation,
|
|
61
|
+
viewData
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
static getMetadata() {
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
68
|
+
return {
|
|
69
|
+
getAllProperties(this: BuildingBlockDefinition) {
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
71
|
+
// @ts-ignore
|
|
72
|
+
return this.metadata.properties;
|
|
73
|
+
},
|
|
74
|
+
getName(this: BuildingBlockDefinition) {
|
|
75
|
+
return `${this.namespace}.${this.name}`;
|
|
76
|
+
},
|
|
77
|
+
getAllAggregations() {
|
|
78
|
+
return {};
|
|
79
|
+
},
|
|
80
|
+
getDefaultAggregationName() {
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}*/
|
|
85
|
+
;
|
|
86
|
+
|
|
87
|
+
BuildingBlockBase.register = function register() {// To be overriden
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
return BuildingBlockBase;
|
|
91
|
+
}();
|
|
92
|
+
|
|
93
|
+
_exports.BuildingBlockBase = BuildingBlockBase;
|
|
94
|
+
|
|
95
|
+
var ensureMetadata = function (target) {
|
|
96
|
+
if (!target.hasOwnProperty("metadata")) {
|
|
97
|
+
target.metadata = deepClone(target.metadata || {
|
|
98
|
+
properties: {},
|
|
99
|
+
aggregations: {},
|
|
100
|
+
events: {}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return target.metadata;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Indicates that the property shall be declared as an xml attribute that can be used from the outside of the building block.
|
|
108
|
+
*
|
|
109
|
+
* @param attributeDefinition
|
|
110
|
+
* @returns The decorated property
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
function xmlAttribute(attributeDefinition) {
|
|
115
|
+
return function (target, propertyKey, propertyDescriptor) {
|
|
116
|
+
var metadata = ensureMetadata(target.constructor);
|
|
117
|
+
delete propertyDescriptor.initializer;
|
|
118
|
+
|
|
119
|
+
if (!metadata.properties[propertyKey]) {
|
|
120
|
+
metadata.properties[propertyKey] = attributeDefinition;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return propertyDescriptor;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
_exports.xmlAttribute = xmlAttribute;
|
|
128
|
+
|
|
129
|
+
function xmlEvent() {
|
|
130
|
+
return function (target, propertyKey, propertyDescriptor) {
|
|
131
|
+
var metadata = ensureMetadata(target.constructor);
|
|
132
|
+
delete propertyDescriptor.initializer;
|
|
133
|
+
|
|
134
|
+
if (!metadata.events[propertyKey]) {
|
|
135
|
+
metadata.events[propertyKey] = {
|
|
136
|
+
type: "Function"
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return propertyDescriptor;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
_exports.xmlEvent = xmlEvent;
|
|
145
|
+
|
|
146
|
+
function defineBuildingBlock(oBuildingBlockDefinition) {
|
|
147
|
+
return function (classDefinition) {
|
|
148
|
+
ensureMetadata(classDefinition);
|
|
149
|
+
classDefinition.xmlTag = oBuildingBlockDefinition.name;
|
|
150
|
+
classDefinition.namespace = oBuildingBlockDefinition.namespace;
|
|
151
|
+
classDefinition.publicNamespace = oBuildingBlockDefinition.publicNamespace;
|
|
152
|
+
classDefinition.fragment = oBuildingBlockDefinition.fragment;
|
|
153
|
+
classDefinition.isOpen = oBuildingBlockDefinition.isOpen;
|
|
154
|
+
classDefinition.apiVersion = 2;
|
|
155
|
+
|
|
156
|
+
classDefinition.register = function () {
|
|
157
|
+
registerBuildingBlock(classDefinition);
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
_exports.defineBuildingBlock = defineBuildingBlock;
|
|
163
|
+
return _exports;
|
|
164
|
+
}, false);
|
|
165
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJ1aWxkaW5nQmxvY2sudHMiXSwibmFtZXMiOlsiQnVpbGRpbmdCbG9ja0Jhc2UiLCJvUHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInByb3BOYW1lIiwiY3JlYXRlSWQiLCJpZCIsInN0cmluZ1BhcnRzIiwiZ2VuZXJhdGUiLCJ1bmRlZmluZWQiLCJyZWdpc3RlciIsImVuc3VyZU1ldGFkYXRhIiwidGFyZ2V0IiwiaGFzT3duUHJvcGVydHkiLCJtZXRhZGF0YSIsImRlZXBDbG9uZSIsInByb3BlcnRpZXMiLCJhZ2dyZWdhdGlvbnMiLCJldmVudHMiLCJ4bWxBdHRyaWJ1dGUiLCJhdHRyaWJ1dGVEZWZpbml0aW9uIiwicHJvcGVydHlLZXkiLCJwcm9wZXJ0eURlc2NyaXB0b3IiLCJjb25zdHJ1Y3RvciIsImluaXRpYWxpemVyIiwieG1sRXZlbnQiLCJ0eXBlIiwiZGVmaW5lQnVpbGRpbmdCbG9jayIsIm9CdWlsZGluZ0Jsb2NrRGVmaW5pdGlvbiIsImNsYXNzRGVmaW5pdGlvbiIsInhtbFRhZyIsIm5hbWUiLCJuYW1lc3BhY2UiLCJwdWJsaWNOYW1lc3BhY2UiLCJmcmFnbWVudCIsImlzT3BlbiIsImFwaVZlcnNpb24iLCJyZWdpc3RlckJ1aWxkaW5nQmxvY2siXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO01BQ2FBLGlCO0FBQ1osK0JBQVlDLE1BQVosRUFBeUM7QUFBQTs7QUFDeENDLE1BQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixNQUFaLEVBQW9CRyxPQUFwQixDQUE0QixVQUFDQyxRQUFELEVBQWM7QUFDekMsUUFBQSxLQUFJLENBQUNBLFFBQUQsQ0FBSixHQUErQkosTUFBTSxDQUFDSSxRQUFELENBQXJDO0FBQ0EsT0FGRDtBQUdBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7V0FDUUMsUSxHQUFQLG9CQUEwQztBQUN6QztBQUNBLFVBQUssSUFBRCxDQUFjQyxFQUFs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LE1BQUFBLGVBQWUsQ0FBQ25CLFFBQWhCLEdBQTJCLFlBQVk7QUFDdEMyQixRQUFBQSxxQkFBcUIsQ0FBQ1IsZUFBRCxDQUFyQjtBQUNBLE9BRkQ7QUFHQSxLQVhEO0FBWUEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWVwQ2xvbmUgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcENsb25lXCI7XG5pbXBvcnQgeyByZWdpc3RlckJ1aWxkaW5nQmxvY2sgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1J1bnRpbWVcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgQnVpbGRpbmcgQmxvY2tcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1aWxkaW5nQmxvY2tCYXNlIHtcblx0Y29uc3RydWN0b3Iob1Byb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG5cdFx0T2JqZWN0LmtleXMob1Byb3BzKS5mb3JFYWNoKChwcm9wTmFtZSkgPT4ge1xuXHRcdFx0dGhpc1twcm9wTmFtZSBhcyBrZXlvZiB0aGlzXSA9IG9Qcm9wc1twcm9wTmFtZV07XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydCB0aGUgZ2l2ZW4gbG9jYWwgZWxlbWVudCBJRCB0byBhIGdsb2JhbGx5IHVuaXF1ZSBJRCBieSBwcmVmaXhpbmcgd2l0aCB0aGUgQnVpbGRpbmcgQmxvY2sgSUQuXG5cdCAqXG5cdCAqIEBwYXJhbSBzdHJpbmdQYXJ0c1xuXHQgKiBAcmV0dXJucyBFaXRoZXIgdGhlIGdsb2JhbCBJRCBvciB1bmRlZmluZWQgaWYgdGhlIEJ1aWxkaW5nIEJsb2NrIGRvZXNuJ3QgaGF2ZSBhbiBJRFxuXHQgKi9cblx0cHVibGljIGNyZWF0ZUlkKC4uLnN0cmluZ1BhcnRzOiBzdHJpbmdbXSkge1xuXHRcdC8vIElmIHRoZSBjaGlsZCBpbnN0YW5jZSBoYXMgYW4gSUQgcHJvcGVydHkgdXNlIGl0IG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG5cdFx0aWYgKCh0aGlzIGFzIGFueSkuaWQpIHtcblx0XHRcdHJldHVybiBnZW5lcmF0ZShbKHRoaXMgYXMgYW55KS5pZCwgLi4uc3RyaW5nUGFydHNdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHQvKlxuXHQvLyBUaGlzIGJsb2NrIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBJIGFtIG5vdCB1c2luZyB0aGVtIGZvciBub3cgLyBuZWVkIHRvIGNoYW5nZSB0aGlzIGJ1dCBzdGlsbCB3YW50IHRvIGtlZXAgdGhlbSBhcm91bmRcblx0c3RhdGljIGdldENvbnZlcnRlckNvbnRleHQgPSBmdW5jdGlvbiAob1Zpc3VhbGl6YXRpb25PYmplY3RQYXRoOiBhbnksIGNvbnRleHRQYXRoOiBhbnksIG1TZXR0aW5nczogYW55LCBtRXh0cmFQYXJhbXM/OiBhbnkpIHtcblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gbVNldHRpbmdzLmFwcENvbXBvbmVudDtcblx0XHRjb25zdCBvcmlnaW5hbFZpZXdEYXRhID0gbVNldHRpbmdzLm1vZGVscy52aWV3RGF0YSAmJiBtU2V0dGluZ3MubW9kZWxzLnZpZXdEYXRhLmdldERhdGEoKTtcblx0XHRsZXQgdmlld0RhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBvcmlnaW5hbFZpZXdEYXRhKTtcblx0XHRkZWxldGUgdmlld0RhdGEucmVzb3VyY2VCdW5kbGU7XG5cdFx0dmlld0RhdGEgPSBkZWVwQ2xvbmUodmlld0RhdGEpO1xuXHRcdHZpZXdEYXRhLmNvbnRyb2xDb25maWd1cmF0aW9uID0gbWVyZ2Uodmlld0RhdGEuY29udHJvbENvbmZpZ3VyYXRpb24sIG1FeHRyYVBhcmFtcyk7XG5cdFx0cmV0dXJuIENvbnZlcnRlckNvbnRleHQuY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvKFxuXHRcdFx0b1Zpc3VhbGl6YXRpb25PYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWUsXG5cdFx0XHRtU2V0dGluZ3MubW9kZWxzLm1ldGFNb2RlbCxcblx0XHRcdG9BcHBDb21wb25lbnQgJiYgb0FwcENvbXBvbmVudC5nZXREaWFnbm9zdGljcygpLFxuXHRcdFx0bWVyZ2UsXG5cdFx0XHRvVmlzdWFsaXphdGlvbk9iamVjdFBhdGguY29udGV4dExvY2F0aW9uLFxuXHRcdFx0dmlld0RhdGFcblx0XHQpO1xuXHR9O1xuXHRzdGF0aWMgZ2V0TWV0YWRhdGEoKSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0XHRyZXR1cm4ge1xuXHRcdFx0Z2V0QWxsUHJvcGVydGllcyh0aGlzOiBCdWlsZGluZ0Jsb2NrRGVmaW5pdGlvbikge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdFx0cmV0dXJuIHRoaXMubWV0YWRhdGEucHJvcGVydGllcztcblx0XHRcdH0sXG5cdFx0XHRnZXROYW1lKHRoaXM6IEJ1aWxkaW5nQmxvY2tEZWZpbml0aW9uKSB7XG5cdFx0XHRcdHJldHVybiBgJHt0aGlzLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9YDtcblx0XHRcdH0sXG5cdFx0XHRnZXRBbGxBZ2dyZWdhdGlvbnMoKSB7XG5cdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdH0sXG5cdFx0XHRnZXREZWZhdWx0QWdncmVnYXRpb25OYW1lKCkge1xuXHRcdFx0XHRyZXR1cm4gXCJcIjtcblx0XHRcdH1cblx0XHR9O1xuXHR9Ki9cblx0c3RhdGljIHJlZ2lzdGVyKCkge1xuXHRcdC8vIFRvIGJlIG92ZXJyaWRlblxuXHR9XG59XG5cbmV4cG9ydCB0eXBlIEJ1aWxkaW5nQmxvY2tQcm9wZXJ0eURlZmluaXRpb24gPSB7XG5cdHR5cGU6IHN0cmluZztcblx0aXNQdWJsaWM/OiBib29sZWFuO1xuXHRkZWZhdWx0VmFsdWU/OiBhbnk7XG5cdGNvbXB1dGVkPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHQka2luZD86IHN0cmluZ1tdO1xufTtcbmV4cG9ydCB0eXBlIEJ1aWxkaW5nQmxvY2tNZXRhZGF0YUNvbnRleHREZWZpbml0aW9uID0ge1xuXHR0eXBlOiBzdHJpbmc7XG5cdGlzUHVibGljPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHRjb21wdXRlZD86IGJvb2xlYW47XG5cdCRUeXBlPzogc3RyaW5nW107XG5cdCRraW5kPzogc3RyaW5nW107XG59O1xuZXhwb3J0IHR5cGUgQnVpbGRpbmdCbG9ja0V2ZW50ID0ge307XG5leHBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrQWdncmVnYXRpb25EZWZpbml0aW9uID0ge1xuXHRpc1B1YmxpYz86IGJvb2xlYW47XG5cdHR5cGU6IHN0cmluZztcblx0c2xvdD86IHN0cmluZztcbn07XG50eXBlIENvbW1vbkJ1aWxkaW5nQmxvY2tEZWZpbml0aW9uID0ge1xuXHRuYW1lc3BhY2U6IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xuXHR4bWxUYWc/OiBzdHJpbmc7XG5cdGZyYWdtZW50Pzogc3RyaW5nO1xuXHRwdWJsaWNOYW1lc3BhY2U/OiBzdHJpbmc7XG5cblx0aXNPcGVuPzogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrRGVmaW5pdGlvblYyID0gQ29tbW9uQnVpbGRpbmdCbG9ja0RlZmluaXRpb24gJlxuXHR0eXBlb2YgQnVpbGRpbmdCbG9ja0Jhc2UgJiB7XG5cdFx0YXBpVmVyc2lvbjogMjtcblx0XHRtZXRhZGF0YTogQnVpbGRpbmdCbG9ja01ldGFkYXRhO1xuXHR9O1xuXG5leHBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrRGVmaW5pdGlvblYxID0gQ29tbW9uQnVpbGRpbmdCbG9ja0RlZmluaXRpb24gJiB7XG5cdG5hbWU6IHN0cmluZztcblx0YXBpVmVyc2lvbj86IDE7XG5cdGNyZWF0ZT86IEZ1bmN0aW9uO1xuXHRnZXRUZW1wbGF0ZT86IEZ1bmN0aW9uO1xuXHRtZXRhZGF0YTogQnVpbGRpbmdCbG9ja01ldGFkYXRhO1xufTtcbmV4cG9ydCB0eXBlIEJ1aWxkaW5nQmxvY2tEZWZpbml0aW9uID0gQnVpbGRpbmdCbG9ja0RlZmluaXRpb25WMiB8IEJ1aWxkaW5nQmxvY2tEZWZpbml0aW9uVjE7XG5leHBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEgPSB7XG5cdGV2ZW50czogUmVjb3JkPHN0cmluZywgQnVpbGRpbmdCbG9ja0V2ZW50Pjtcblx0cHJvcGVydGllczogUmVjb3JkPHN0cmluZywgQnVpbGRpbmdCbG9ja1Byb3BlcnR5RGVmaW5pdGlvbj47XG5cdGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgQnVpbGRpbmdCbG9ja0FnZ3JlZ2F0aW9uRGVmaW5pdGlvbj47XG59O1xuXG5jb25zdCBlbnN1cmVNZXRhZGF0YSA9IGZ1bmN0aW9uICh0YXJnZXQ6IGFueSk6IEJ1aWxkaW5nQmxvY2tNZXRhZGF0YSB7XG5cdGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KFwibWV0YWRhdGFcIikpIHtcblx0XHR0YXJnZXQubWV0YWRhdGEgPSBkZWVwQ2xvbmUoXG5cdFx0XHR0YXJnZXQubWV0YWRhdGEgfHwge1xuXHRcdFx0XHRwcm9wZXJ0aWVzOiB7fSxcblx0XHRcdFx0YWdncmVnYXRpb25zOiB7fSxcblx0XHRcdFx0ZXZlbnRzOiB7fVxuXHRcdFx0fVxuXHRcdCk7XG5cdH1cblx0cmV0dXJuIHRhcmdldC5tZXRhZGF0YTtcbn07XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IHNoYWxsIGJlIGRlY2xhcmVkIGFzIGFuIHhtbCBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBmcm9tIHRoZSBvdXRzaWRlIG9mIHRoZSBidWlsZGluZyBibG9jay5cbiAqXG4gKiBAcGFyYW0gYXR0cmlidXRlRGVmaW5pdGlvblxuICogQHJldHVybnMgVGhlIGRlY29yYXRlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24geG1sQXR0cmlidXRlKGF0dHJpYnV0ZURlZmluaXRpb246IEJ1aWxkaW5nQmxvY2tQcm9wZXJ0eURlZmluaXRpb24pOiBQcm9wZXJ0eURlY29yYXRvciB7XG5cdHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBCdWlsZGluZ0Jsb2NrQmFzZSwgcHJvcGVydHlLZXk6IHN0cmluZywgcHJvcGVydHlEZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KSB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBlbnN1cmVNZXRhZGF0YSh0YXJnZXQuY29uc3RydWN0b3IpO1xuXHRcdGRlbGV0ZSAocHJvcGVydHlEZXNjcmlwdG9yIGFzIGFueSkuaW5pdGlhbGl6ZXI7XG5cdFx0aWYgKCFtZXRhZGF0YS5wcm9wZXJ0aWVzW3Byb3BlcnR5S2V5XSkge1xuXHRcdFx0bWV0YWRhdGEucHJvcGVydGllc1twcm9wZXJ0eUtleV0gPSBhdHRyaWJ1dGVEZWZpbml0aW9uO1xuXHRcdH1cblxuXHRcdHJldHVybiBwcm9wZXJ0eURlc2NyaXB0b3I7XG5cdH0gYXMgYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24geG1sRXZlbnQoKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuXHRyZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogQnVpbGRpbmdCbG9ja0Jhc2UsIHByb3BlcnR5S2V5OiBzdHJpbmcsIHByb3BlcnR5RGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55Pikge1xuXHRcdGNvbnN0IG1ldGFkYXRhID0gZW5zdXJlTWV0YWRhdGEodGFyZ2V0LmNvbnN0cnVjdG9yKTtcblx0XHRkZWxldGUgKHByb3BlcnR5RGVzY3JpcHRvciBhcyBhbnkpLmluaXRpYWxpemVyO1xuXHRcdGlmICghbWV0YWRhdGEuZXZlbnRzW3Byb3BlcnR5S2V5XSkge1xuXHRcdFx0bWV0YWRhdGEuZXZlbnRzW3Byb3BlcnR5S2V5XSA9IHsgdHlwZTogXCJGdW5jdGlvblwiIH07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHByb3BlcnR5RGVzY3JpcHRvcjtcblx0fSBhcyBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCdWlsZGluZ0Jsb2NrKG9CdWlsZGluZ0Jsb2NrRGVmaW5pdGlvbjogQ29tbW9uQnVpbGRpbmdCbG9ja0RlZmluaXRpb24pIHtcblx0cmV0dXJuIGZ1bmN0aW9uIChjbGFzc0RlZmluaXRpb246IGFueSkge1xuXHRcdGVuc3VyZU1ldGFkYXRhKGNsYXNzRGVmaW5pdGlvbik7XG5cdFx0Y2xhc3NEZWZpbml0aW9uLnhtbFRhZyA9IG9CdWlsZGluZ0Jsb2NrRGVmaW5pdGlvbi5uYW1lO1xuXHRcdGNsYXNzRGVmaW5pdGlvbi5uYW1lc3BhY2UgPSBvQnVpbGRpbmdCbG9ja0RlZmluaXRpb24ubmFtZXNwYWNlO1xuXHRcdGNsYXNzRGVmaW5pdGlvbi5wdWJsaWNOYW1lc3BhY2UgPSBvQnVpbGRpbmdCbG9ja0RlZmluaXRpb24ucHVibGljTmFtZXNwYWNlO1xuXHRcdGNsYXNzRGVmaW5pdGlvbi5mcmFnbWVudCA9IG9CdWlsZGluZ0Jsb2NrRGVmaW5pdGlvbi5mcmFnbWVudDtcblx0XHRjbGFzc0RlZmluaXRpb24uaXNPcGVuID0gb0J1aWxkaW5nQmxvY2tEZWZpbml0aW9uLmlzT3Blbjtcblx0XHRjbGFzc0RlZmluaXRpb24uYXBpVmVyc2lvbiA9IDI7XG5cdFx0Y2xhc3NEZWZpbml0aW9uLnJlZ2lzdGVyID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cmVnaXN0ZXJCdWlsZGluZ0Jsb2NrKGNsYXNzRGVmaW5pdGlvbik7XG5cdFx0fTtcblx0fTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import deepClone from "sap/base/util/deepClone";
|
|
2
|
+
import { registerBuildingBlock } from "sap/fe/core/buildingBlocks/BuildingBlockRuntime";
|
|
3
|
+
import { generate } from "sap/fe/core/helpers/StableIdHelper";
|
|
4
|
+
/**
|
|
5
|
+
* Base class for Building Block
|
|
6
|
+
*/
|
|
7
|
+
export class BuildingBlockBase {
|
|
8
|
+
constructor(oProps: Record<string, any>) {
|
|
9
|
+
Object.keys(oProps).forEach((propName) => {
|
|
10
|
+
this[propName as keyof this] = oProps[propName];
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Convert the given local element ID to a globally unique ID by prefixing with the Building Block ID.
|
|
16
|
+
*
|
|
17
|
+
* @param stringParts
|
|
18
|
+
* @returns Either the global ID or undefined if the Building Block doesn't have an ID
|
|
19
|
+
*/
|
|
20
|
+
public createId(...stringParts: string[]) {
|
|
21
|
+
// If the child instance has an ID property use it otherwise return undefined
|
|
22
|
+
if ((this as any).id) {
|
|
23
|
+
return generate([(this as any).id, ...stringParts]);
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
/*
|
|
28
|
+
// This block is commented out because I am not using them for now / need to change this but still want to keep them around
|
|
29
|
+
static getConverterContext = function (oVisualizationObjectPath: any, contextPath: any, mSettings: any, mExtraParams?: any) {
|
|
30
|
+
const oAppComponent = mSettings.appComponent;
|
|
31
|
+
const originalViewData = mSettings.models.viewData && mSettings.models.viewData.getData();
|
|
32
|
+
let viewData = Object.assign({}, originalViewData);
|
|
33
|
+
delete viewData.resourceBundle;
|
|
34
|
+
viewData = deepClone(viewData);
|
|
35
|
+
viewData.controlConfiguration = merge(viewData.controlConfiguration, mExtraParams);
|
|
36
|
+
return ConverterContext.createConverterContextForMacro(
|
|
37
|
+
oVisualizationObjectPath.startingEntitySet.name,
|
|
38
|
+
mSettings.models.metaModel,
|
|
39
|
+
oAppComponent && oAppComponent.getDiagnostics(),
|
|
40
|
+
merge,
|
|
41
|
+
oVisualizationObjectPath.contextLocation,
|
|
42
|
+
viewData
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
static getMetadata() {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
49
|
+
return {
|
|
50
|
+
getAllProperties(this: BuildingBlockDefinition) {
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
return this.metadata.properties;
|
|
54
|
+
},
|
|
55
|
+
getName(this: BuildingBlockDefinition) {
|
|
56
|
+
return `${this.namespace}.${this.name}`;
|
|
57
|
+
},
|
|
58
|
+
getAllAggregations() {
|
|
59
|
+
return {};
|
|
60
|
+
},
|
|
61
|
+
getDefaultAggregationName() {
|
|
62
|
+
return "";
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}*/
|
|
66
|
+
static register() {
|
|
67
|
+
// To be overriden
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type BuildingBlockPropertyDefinition = {
|
|
72
|
+
type: string;
|
|
73
|
+
isPublic?: boolean;
|
|
74
|
+
defaultValue?: any;
|
|
75
|
+
computed?: boolean;
|
|
76
|
+
required?: boolean;
|
|
77
|
+
$kind?: string[];
|
|
78
|
+
};
|
|
79
|
+
export type BuildingBlockMetadataContextDefinition = {
|
|
80
|
+
type: string;
|
|
81
|
+
isPublic?: boolean;
|
|
82
|
+
required?: boolean;
|
|
83
|
+
computed?: boolean;
|
|
84
|
+
$Type?: string[];
|
|
85
|
+
$kind?: string[];
|
|
86
|
+
};
|
|
87
|
+
export type BuildingBlockEvent = {};
|
|
88
|
+
export type BuildingBlockAggregationDefinition = {
|
|
89
|
+
isPublic?: boolean;
|
|
90
|
+
type: string;
|
|
91
|
+
slot?: string;
|
|
92
|
+
};
|
|
93
|
+
type CommonBuildingBlockDefinition = {
|
|
94
|
+
namespace: string;
|
|
95
|
+
name: string;
|
|
96
|
+
xmlTag?: string;
|
|
97
|
+
fragment?: string;
|
|
98
|
+
publicNamespace?: string;
|
|
99
|
+
|
|
100
|
+
isOpen?: boolean;
|
|
101
|
+
};
|
|
102
|
+
export type BuildingBlockDefinitionV2 = CommonBuildingBlockDefinition &
|
|
103
|
+
typeof BuildingBlockBase & {
|
|
104
|
+
apiVersion: 2;
|
|
105
|
+
metadata: BuildingBlockMetadata;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export type BuildingBlockDefinitionV1 = CommonBuildingBlockDefinition & {
|
|
109
|
+
name: string;
|
|
110
|
+
apiVersion?: 1;
|
|
111
|
+
create?: Function;
|
|
112
|
+
getTemplate?: Function;
|
|
113
|
+
metadata: BuildingBlockMetadata;
|
|
114
|
+
};
|
|
115
|
+
export type BuildingBlockDefinition = BuildingBlockDefinitionV2 | BuildingBlockDefinitionV1;
|
|
116
|
+
export type BuildingBlockMetadata = {
|
|
117
|
+
events: Record<string, BuildingBlockEvent>;
|
|
118
|
+
properties: Record<string, BuildingBlockPropertyDefinition>;
|
|
119
|
+
aggregations: Record<string, BuildingBlockAggregationDefinition>;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const ensureMetadata = function (target: any): BuildingBlockMetadata {
|
|
123
|
+
if (!target.hasOwnProperty("metadata")) {
|
|
124
|
+
target.metadata = deepClone(
|
|
125
|
+
target.metadata || {
|
|
126
|
+
properties: {},
|
|
127
|
+
aggregations: {},
|
|
128
|
+
events: {}
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
return target.metadata;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Indicates that the property shall be declared as an xml attribute that can be used from the outside of the building block.
|
|
137
|
+
*
|
|
138
|
+
* @param attributeDefinition
|
|
139
|
+
* @returns The decorated property
|
|
140
|
+
*/
|
|
141
|
+
export function xmlAttribute(attributeDefinition: BuildingBlockPropertyDefinition): PropertyDecorator {
|
|
142
|
+
return function (target: BuildingBlockBase, propertyKey: string, propertyDescriptor: TypedPropertyDescriptor<any>) {
|
|
143
|
+
const metadata = ensureMetadata(target.constructor);
|
|
144
|
+
delete (propertyDescriptor as any).initializer;
|
|
145
|
+
if (!metadata.properties[propertyKey]) {
|
|
146
|
+
metadata.properties[propertyKey] = attributeDefinition;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return propertyDescriptor;
|
|
150
|
+
} as any;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export function xmlEvent(): PropertyDecorator {
|
|
154
|
+
return function (target: BuildingBlockBase, propertyKey: string, propertyDescriptor: TypedPropertyDescriptor<any>) {
|
|
155
|
+
const metadata = ensureMetadata(target.constructor);
|
|
156
|
+
delete (propertyDescriptor as any).initializer;
|
|
157
|
+
if (!metadata.events[propertyKey]) {
|
|
158
|
+
metadata.events[propertyKey] = { type: "Function" };
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return propertyDescriptor;
|
|
162
|
+
} as any;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export function defineBuildingBlock(oBuildingBlockDefinition: CommonBuildingBlockDefinition) {
|
|
166
|
+
return function (classDefinition: any) {
|
|
167
|
+
ensureMetadata(classDefinition);
|
|
168
|
+
classDefinition.xmlTag = oBuildingBlockDefinition.name;
|
|
169
|
+
classDefinition.namespace = oBuildingBlockDefinition.namespace;
|
|
170
|
+
classDefinition.publicNamespace = oBuildingBlockDefinition.publicNamespace;
|
|
171
|
+
classDefinition.fragment = oBuildingBlockDefinition.fragment;
|
|
172
|
+
classDefinition.isOpen = oBuildingBlockDefinition.isOpen;
|
|
173
|
+
classDefinition.apiVersion = 2;
|
|
174
|
+
classDefinition.register = function () {
|
|
175
|
+
registerBuildingBlock(classDefinition);
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
}
|