@sapui5/sap.fe.core 1.99.0 → 1.101.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -4
- package/src/sap/fe/core/.library +2 -3
- package/src/sap/fe/core/AnnotationHelper.js +43 -92
- package/src/sap/fe/core/AnnotationHelper.ts +43 -107
- package/src/sap/fe/core/AppComponent.js +381 -399
- package/src/sap/fe/core/AppComponent.ts +397 -0
- package/src/sap/fe/core/AppStateHandler.js +131 -162
- package/src/sap/fe/core/AppStateHandler.ts +2 -2
- package/src/sap/fe/core/BaseController.js +82 -58
- package/src/sap/fe/core/BaseController.ts +67 -0
- package/src/sap/fe/core/CommonUtils.js +179 -31
- package/src/sap/fe/core/CommonUtils.ts +295 -125
- package/src/sap/fe/core/ExtensionAPI.js +279 -274
- package/src/sap/fe/core/ExtensionAPI.ts +242 -0
- package/src/sap/fe/core/PageController.js +158 -29
- package/src/sap/fe/core/PageController.ts +65 -37
- package/src/sap/fe/core/RouterProxy.js +700 -750
- package/src/sap/fe/core/RouterProxy.ts +47 -31
- package/src/sap/fe/core/Synchronization.js +21 -31
- package/src/sap/fe/core/TemplateComponent.js +193 -118
- package/src/sap/fe/core/TemplateComponent.ts +104 -109
- package/src/sap/fe/core/TemplateModel.js +24 -44
- package/src/sap/fe/core/TemplateModel.ts +3 -3
- package/src/sap/fe/core/TransactionHelper.js +1368 -1369
- package/src/sap/fe/core/TransactionHelper.ts +201 -171
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +406 -0
- package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +362 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +146 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +129 -0
- package/src/sap/fe/core/actions/collaboration/Manage.js +264 -0
- package/src/sap/fe/core/actions/collaboration/Manage.ts +246 -0
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +100 -0
- package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/src/sap/fe/core/actions/draft.js +324 -220
- package/src/sap/fe/core/actions/draft.ts +209 -133
- package/src/sap/fe/core/actions/messageHandling.js +79 -48
- package/src/sap/fe/core/actions/messageHandling.ts +113 -83
- package/src/sap/fe/core/actions/operations.js +37 -18
- package/src/sap/fe/core/actions/operations.ts +51 -20
- package/src/sap/fe/core/actions/sticky.js +17 -4
- package/src/sap/fe/core/actions/sticky.ts +21 -4
- 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 +707 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +628 -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/controllerextensions/EditFlow.js +1854 -1669
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1792 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +60 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +716 -779
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +785 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +810 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1056 -1005
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +1001 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +498 -532
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +13 -12
- package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +155 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +221 -244
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +215 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +312 -345
- package/src/sap/fe/core/controllerextensions/PageReady.ts +57 -53
- package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
- package/src/sap/fe/core/controllerextensions/Paginator.ts +169 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +149 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
- package/src/sap/fe/core/controllerextensions/Routing.ts +131 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/src/sap/fe/core/controllerextensions/Share.js +230 -268
- package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +603 -644
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +68 -68
- package/src/sap/fe/core/controllerextensions/ViewState.js +774 -806
- package/src/sap/fe/core/controllerextensions/ViewState.ts +796 -0
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- 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 +92 -68
- package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +165 -79
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +74 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +366 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +278 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +167 -125
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +116 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +44 -5
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +163 -122
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +155 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +212 -141
- package/src/sap/fe/core/controls/FieldWrapper.ts +104 -0
- package/src/sap/fe/core/controls/FileWrapper.js +313 -0
- package/src/sap/fe/core/controls/FileWrapper.ts +169 -0
- package/src/sap/fe/core/controls/FilterBar.js +197 -159
- package/src/sap/fe/core/controls/FilterBar.ts +148 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +100 -39
- package/src/sap/fe/core/controls/FormElementWrapper.ts +37 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +147 -115
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +102 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +300 -265
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +252 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +185 -140
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +37 -42
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +75 -74
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +71 -0
- package/src/sap/fe/core/converters/ConverterContext.js +348 -379
- package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
- package/src/sap/fe/core/converters/ManifestSettings.js +13 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +17 -2
- package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
- package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
- package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +26 -13
- package/src/sap/fe/core/converters/annotations/DataField.ts +40 -17
- package/src/sap/fe/core/converters/controls/Common/Action.js +10 -10
- package/src/sap/fe/core/converters/controls/Common/Action.ts +20 -19
- package/src/sap/fe/core/converters/controls/Common/Chart.js +8 -8
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +12 -11
- package/src/sap/fe/core/converters/controls/Common/Form.js +6 -6
- package/src/sap/fe/core/converters/controls/Common/Form.ts +7 -3
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +326 -86
- package/src/sap/fe/core/converters/controls/Common/Table.ts +384 -167
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +120 -55
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +158 -98
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +206 -223
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +263 -287
- 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 +5 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +4 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/src/sap/fe/core/converters/helpers/Key.js +42 -57
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- 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 +51 -27
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +69 -43
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +42 -25
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +91 -65
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +11 -9
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +8 -8
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- 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 +53 -2
- package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
- 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 +80 -55
- package/src/sap/fe/core/fpm/Component.ts +43 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
- package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
- package/src/sap/fe/core/helpers/ClassSupport.js +307 -166
- package/src/sap/fe/core/helpers/ClassSupport.ts +348 -155
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js +735 -684
- package/src/sap/fe/core/helpers/MassEditHelper.ts +803 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +53 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +46 -0
- 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 +7 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +7 -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 +1 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +0 -4
- 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 +425 -451
- package/src/sap/fe/core/library.support.js +22 -33
- package/src/sap/fe/core/library.support.ts +23 -0
- package/src/sap/fe/core/library.ts +420 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -4
- package/src/sap/fe/core/messagebundle.properties +45 -13
- package/src/sap/fe/core/messagebundle_ar.properties +29 -7
- package/src/sap/fe/core/messagebundle_bg.properties +29 -7
- package/src/sap/fe/core/messagebundle_ca.properties +29 -7
- package/src/sap/fe/core/messagebundle_cs.properties +29 -7
- package/src/sap/fe/core/messagebundle_cy.properties +29 -7
- package/src/sap/fe/core/messagebundle_da.properties +29 -7
- package/src/sap/fe/core/messagebundle_de.properties +29 -7
- package/src/sap/fe/core/messagebundle_el.properties +29 -7
- package/src/sap/fe/core/messagebundle_en.properties +29 -7
- package/src/sap/fe/core/messagebundle_en_GB.properties +29 -7
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +29 -7
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +29 -7
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +29 -7
- package/src/sap/fe/core/messagebundle_es.properties +29 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +29 -7
- package/src/sap/fe/core/messagebundle_et.properties +29 -7
- package/src/sap/fe/core/messagebundle_fi.properties +30 -8
- package/src/sap/fe/core/messagebundle_fr.properties +31 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +31 -9
- package/src/sap/fe/core/messagebundle_hi.properties +29 -7
- package/src/sap/fe/core/messagebundle_hr.properties +29 -7
- package/src/sap/fe/core/messagebundle_hu.properties +29 -7
- package/src/sap/fe/core/messagebundle_id.properties +29 -7
- package/src/sap/fe/core/messagebundle_it.properties +29 -7
- package/src/sap/fe/core/messagebundle_iw.properties +29 -7
- package/src/sap/fe/core/messagebundle_ja.properties +28 -6
- package/src/sap/fe/core/messagebundle_kk.properties +29 -7
- package/src/sap/fe/core/messagebundle_ko.properties +29 -7
- package/src/sap/fe/core/messagebundle_lt.properties +29 -7
- package/src/sap/fe/core/messagebundle_lv.properties +30 -8
- package/src/sap/fe/core/messagebundle_ms.properties +29 -7
- package/src/sap/fe/core/messagebundle_nl.properties +29 -7
- package/src/sap/fe/core/messagebundle_no.properties +29 -7
- package/src/sap/fe/core/messagebundle_pl.properties +29 -7
- package/src/sap/fe/core/messagebundle_pt.properties +30 -8
- package/src/sap/fe/core/messagebundle_pt_PT.properties +29 -7
- package/src/sap/fe/core/messagebundle_ro.properties +29 -7
- package/src/sap/fe/core/messagebundle_ru.properties +29 -7
- package/src/sap/fe/core/messagebundle_sh.properties +29 -7
- package/src/sap/fe/core/messagebundle_sk.properties +29 -7
- package/src/sap/fe/core/messagebundle_sl.properties +29 -7
- package/src/sap/fe/core/messagebundle_sv.properties +30 -8
- package/src/sap/fe/core/messagebundle_th.properties +28 -6
- package/src/sap/fe/core/messagebundle_tr.properties +32 -10
- package/src/sap/fe/core/messagebundle_uk.properties +29 -7
- package/src/sap/fe/core/messagebundle_vi.properties +29 -7
- package/src/sap/fe/core/messagebundle_zh_CN.properties +29 -7
- package/src/sap/fe/core/messagebundle_zh_TW.properties +29 -7
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +47 -73
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +158 -196
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +5 -6
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +70 -96
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
- package/src/sap/fe/core/services/NavigationServiceFactory.js +287 -342
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +11 -14
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +70 -105
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +6 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +796 -820
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +62 -53
- package/src/sap/fe/core/services/ShellServicesFactory.js +694 -741
- package/src/sap/fe/core/services/ShellServicesFactory.ts +33 -33
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +570 -595
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +23 -4
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +357 -389
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +25 -29
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +7 -4
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +1 -4
- package/src/sap/fe/core/support/Diagnostics.js +36 -48
- package/src/sap/fe/core/templating/DataModelPathHelper.js +91 -90
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +126 -123
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +26 -5
- package/src/sap/fe/core/templating/FilterHelper.js +25 -32
- package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
- package/src/sap/fe/core/templating/PropertyHelper.js +16 -2
- package/src/sap/fe/core/templating/PropertyHelper.ts +31 -24
- package/src/sap/fe/core/templating/UIFormatters.js +150 -44
- package/src/sap/fe/core/templating/UIFormatters.ts +165 -67
- 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/controllerextensions/ControllerExtensionMetadata.js +0 -75
|
@@ -16,13 +16,21 @@ import {
|
|
|
16
16
|
not,
|
|
17
17
|
notEqual,
|
|
18
18
|
or,
|
|
19
|
-
greaterThan
|
|
19
|
+
greaterThan,
|
|
20
|
+
formatResult
|
|
20
21
|
} from "sap/fe/core/helpers/BindingExpression";
|
|
21
|
-
import { CreationMode,
|
|
22
|
+
import { CreationMode, TemplateType, ViewPathConfiguration } from "../../../ManifestSettings";
|
|
22
23
|
import { singletonPathVisitor, UI } from "../../../helpers/BindingHelper";
|
|
23
24
|
import { PropertyAnnotationValue } from "@sap-ux/vocabularies-types";
|
|
24
25
|
import { getTargetObjectPath, isPathDeletable, isPathInsertable, isPathUpdatable } from "sap/fe/core/templating/DataModelPathHelper";
|
|
25
26
|
import { TableControlConfiguration } from "../Table";
|
|
27
|
+
import tableFormatters from "sap/fe/core/formatters/TableFormatter";
|
|
28
|
+
|
|
29
|
+
enum AnnotationHiddenProperty {
|
|
30
|
+
CreateHidden = "CreateHidden",
|
|
31
|
+
DeleteHidden = "DeleteHidden",
|
|
32
|
+
UpdateHidden = "UpdateHidden"
|
|
33
|
+
}
|
|
26
34
|
|
|
27
35
|
export type StandardActionConfigType = {
|
|
28
36
|
isTemplated?: BindingExpression<boolean>;
|
|
@@ -32,7 +40,7 @@ export type StandardActionConfigType = {
|
|
|
32
40
|
|
|
33
41
|
type ExpressionRestrictionsType = {
|
|
34
42
|
expression: Expression<boolean>;
|
|
35
|
-
|
|
43
|
+
navigationExpression: Expression<boolean>;
|
|
36
44
|
};
|
|
37
45
|
type StandardActionsRestrictionsType = Record<string, ExpressionRestrictionsType>;
|
|
38
46
|
|
|
@@ -43,7 +51,7 @@ export type StandardActionsContext = {
|
|
|
43
51
|
"delete": Expression<boolean>;
|
|
44
52
|
update: Expression<boolean>;
|
|
45
53
|
};
|
|
46
|
-
|
|
54
|
+
creationMode: CreationMode;
|
|
47
55
|
isDraftOrStickySupported: boolean;
|
|
48
56
|
isViewWithMultipleVisualizations: boolean;
|
|
49
57
|
newAction?: {
|
|
@@ -58,26 +66,25 @@ export type StandardActionsContext = {
|
|
|
58
66
|
* Generates the context for the standard actions.
|
|
59
67
|
*
|
|
60
68
|
* @param {ConverterContext} converterContext
|
|
61
|
-
* @param {NavigationSettingsConfiguration}
|
|
69
|
+
* @param {NavigationSettingsConfiguration} creationMode
|
|
62
70
|
* @param {TableControlConfiguration} tableManifestConfiguration
|
|
63
71
|
* @param {ViewPathConfiguration} viewConfiguration
|
|
64
72
|
* @returns The context for table actions
|
|
65
73
|
*/
|
|
66
|
-
|
|
67
74
|
export function generateStandardActionsContext(
|
|
68
75
|
converterContext: ConverterContext,
|
|
69
|
-
|
|
76
|
+
creationMode: CreationMode,
|
|
70
77
|
tableManifestConfiguration: TableControlConfiguration,
|
|
71
78
|
viewConfiguration?: ViewPathConfiguration
|
|
72
79
|
): StandardActionsContext {
|
|
73
80
|
return {
|
|
74
81
|
collectionPath: getTargetObjectPath(converterContext.getDataModelObjectPath()),
|
|
75
82
|
hiddenAnnotation: {
|
|
76
|
-
create: isActionAnnotatedHidden(converterContext,
|
|
77
|
-
"delete": isActionAnnotatedHidden(converterContext,
|
|
78
|
-
update: isActionAnnotatedHidden(converterContext,
|
|
83
|
+
create: isActionAnnotatedHidden(converterContext, AnnotationHiddenProperty.CreateHidden),
|
|
84
|
+
"delete": isActionAnnotatedHidden(converterContext, AnnotationHiddenProperty.DeleteHidden),
|
|
85
|
+
update: isActionAnnotatedHidden(converterContext, AnnotationHiddenProperty.UpdateHidden)
|
|
79
86
|
},
|
|
80
|
-
|
|
87
|
+
creationMode: creationMode,
|
|
81
88
|
isDraftOrStickySupported: isDraftOrStickySupported(converterContext),
|
|
82
89
|
isViewWithMultipleVisualizations: viewConfiguration
|
|
83
90
|
? converterContext.getManifestWrapper().hasMultipleVisualizations(viewConfiguration)
|
|
@@ -88,17 +95,6 @@ export function generateStandardActionsContext(
|
|
|
88
95
|
};
|
|
89
96
|
}
|
|
90
97
|
|
|
91
|
-
/**
|
|
92
|
-
* Checks if an external created is configured for the navigation.
|
|
93
|
-
*
|
|
94
|
-
* @param {NavigationSettingsConfiguration} navigationSettings
|
|
95
|
-
* @returns {boolean}
|
|
96
|
-
*/
|
|
97
|
-
export function isExternalCreateConfigured(navigationSettings: NavigationSettingsConfiguration): boolean {
|
|
98
|
-
const navigation = navigationSettings?.create;
|
|
99
|
-
return (navigation && navigation.outbound && navigation.outboundDetail) !== undefined;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
98
|
/**
|
|
103
99
|
* Checks if draft is supported.
|
|
104
100
|
*
|
|
@@ -163,22 +159,27 @@ export function getNewAction(converterContext: ConverterContext): any {
|
|
|
163
159
|
*
|
|
164
160
|
* @param {ConverterContext} converterContext
|
|
165
161
|
* @param {string} sAnnotationTerm
|
|
162
|
+
* @param {boolean} bWithNavigationPath
|
|
166
163
|
* @returns {Expression<boolean>}
|
|
167
164
|
*/
|
|
168
|
-
export function isActionAnnotatedHidden(
|
|
165
|
+
export function isActionAnnotatedHidden(
|
|
166
|
+
converterContext: ConverterContext,
|
|
167
|
+
sAnnotationTerm: string,
|
|
168
|
+
bWithNavigationPath = true
|
|
169
|
+
): Expression<boolean> {
|
|
169
170
|
const currentEntitySet = converterContext.getEntitySet();
|
|
170
171
|
const dataModelObjectPath = converterContext.getDataModelObjectPath();
|
|
171
172
|
// Consider only the last level of navigation. The others are already considered in the element binding of the page.
|
|
172
173
|
const visitedNavigationPaths =
|
|
173
|
-
dataModelObjectPath.navigationProperties.length > 0
|
|
174
|
+
dataModelObjectPath.navigationProperties.length > 0 && bWithNavigationPath
|
|
174
175
|
? [dataModelObjectPath.navigationProperties[dataModelObjectPath.navigationProperties.length - 1].name]
|
|
175
176
|
: [];
|
|
177
|
+
const actionAnnotationValue =
|
|
178
|
+
((currentEntitySet?.annotations.UI as any)?.[sAnnotationTerm] as PropertyAnnotationValue<boolean>) || false;
|
|
179
|
+
|
|
176
180
|
return currentEntitySet
|
|
177
|
-
? annotationExpression(
|
|
178
|
-
((
|
|
179
|
-
visitedNavigationPaths,
|
|
180
|
-
undefined,
|
|
181
|
-
(path: string) => singletonPathVisitor(path, converterContext, visitedNavigationPaths)
|
|
181
|
+
? annotationExpression(actionAnnotationValue, visitedNavigationPaths, undefined, (path: string) =>
|
|
182
|
+
singletonPathVisitor(path, converterContext.getConvertedTypes(), visitedNavigationPaths)
|
|
182
183
|
)
|
|
183
184
|
: constant(false);
|
|
184
185
|
}
|
|
@@ -209,9 +210,22 @@ export function getRestrictions(converterContext: ConverterContext): StandardAct
|
|
|
209
210
|
restrictionsDef.forEach(function(def) {
|
|
210
211
|
const defFunction = def["function"];
|
|
211
212
|
result[def.key] = {
|
|
212
|
-
expression: defFunction.apply(null, [
|
|
213
|
-
|
|
214
|
-
|
|
213
|
+
expression: defFunction.apply(null, [
|
|
214
|
+
dataModelObjectPath,
|
|
215
|
+
{
|
|
216
|
+
pathVisitor: (path: string, navigationPaths: string[]) =>
|
|
217
|
+
singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths)
|
|
218
|
+
}
|
|
219
|
+
]),
|
|
220
|
+
navigationExpression: defFunction.apply(null, [
|
|
221
|
+
dataModelObjectPath,
|
|
222
|
+
{
|
|
223
|
+
ignoreTargetCollection: true,
|
|
224
|
+
authorizeUnresolvable: true,
|
|
225
|
+
pathVisitor: (path: string, navigationPaths: string[]) =>
|
|
226
|
+
singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths)
|
|
227
|
+
}
|
|
228
|
+
])
|
|
215
229
|
};
|
|
216
230
|
});
|
|
217
231
|
return result;
|
|
@@ -230,7 +244,7 @@ export function getInsertUpdateActionsTemplating(
|
|
|
230
244
|
isDraftOrSticky: boolean,
|
|
231
245
|
isCreateAlwaysHidden: boolean
|
|
232
246
|
): boolean {
|
|
233
|
-
return (isDraftOrSticky || standardActionsContext.
|
|
247
|
+
return (isDraftOrSticky || standardActionsContext.creationMode === CreationMode.External) && !isCreateAlwaysHidden;
|
|
234
248
|
}
|
|
235
249
|
|
|
236
250
|
/**
|
|
@@ -272,6 +286,24 @@ export function getStandardActionDelete(
|
|
|
272
286
|
};
|
|
273
287
|
}
|
|
274
288
|
|
|
289
|
+
/**
|
|
290
|
+
* @param converterContext
|
|
291
|
+
* @param standardActionsContext
|
|
292
|
+
* @returns StandardActionConfigType
|
|
293
|
+
*/
|
|
294
|
+
export function getCreationRow(
|
|
295
|
+
converterContext: ConverterContext,
|
|
296
|
+
standardActionsContext: StandardActionsContext
|
|
297
|
+
): StandardActionConfigType {
|
|
298
|
+
const creationRowVisibility = getCreateVisibility(converterContext, standardActionsContext, true);
|
|
299
|
+
|
|
300
|
+
return {
|
|
301
|
+
isTemplated: compileBinding(getCreateTemplating(standardActionsContext, creationRowVisibility, true)),
|
|
302
|
+
visible: compileBinding(creationRowVisibility),
|
|
303
|
+
enabled: compileBinding(getCreationRowEnablement(converterContext, standardActionsContext, creationRowVisibility))
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
|
|
275
307
|
/**
|
|
276
308
|
* Gets the binding expressions for the properties of the action Paste.
|
|
277
309
|
*
|
|
@@ -319,39 +351,26 @@ export function getStandardActionMassEdit(
|
|
|
319
351
|
*
|
|
320
352
|
* @param {StandardActionsContext} standardActionsContext
|
|
321
353
|
* @param {Expression<boolean>} createVisibility
|
|
354
|
+
* @param {boolean} isForCreationRow
|
|
322
355
|
* @returns {Expression<boolean> }
|
|
323
356
|
*/
|
|
324
357
|
export function getCreateTemplating(
|
|
325
358
|
standardActionsContext: StandardActionsContext,
|
|
326
|
-
createVisibility: Expression<boolean
|
|
359
|
+
createVisibility: Expression<boolean>,
|
|
360
|
+
isForCreationRow = false
|
|
327
361
|
): Expression<boolean> {
|
|
328
|
-
const isCreationRow = standardActionsContext.tableManifestConfiguration.creationMode === CreationMode.CreationRow;
|
|
329
|
-
const newAction = standardActionsContext.newAction;
|
|
330
|
-
const isInsertable = standardActionsContext.restrictions.isInsertable.expression;
|
|
331
|
-
|
|
332
362
|
//Templating of Create Button is not done:
|
|
333
|
-
// - If Button is never visible
|
|
334
|
-
//
|
|
335
|
-
// -
|
|
336
|
-
// - Otherwise If there is no external create action
|
|
337
|
-
// - Otherwise if there is delete restrictions on the current entitySet set to false
|
|
363
|
+
// - If Button is never visible(covered the External create button, new Action)
|
|
364
|
+
// - or CreationMode is on CreationRow for Create Button
|
|
365
|
+
// - or CreationMode is not on CreationRow for CreationRow Button
|
|
338
366
|
|
|
339
|
-
return
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
and(
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
and(not(standardActionsContext.restrictions.isInsertable.isOnlyCurrentEntityExpression), isConstant(isInsertable)),
|
|
347
|
-
isInsertable,
|
|
348
|
-
ifElse(
|
|
349
|
-
standardActionsContext.isExternalCreateConfigured,
|
|
350
|
-
true,
|
|
351
|
-
not(and(isConstant(isInsertable), equal(isInsertable, constant(false))))
|
|
352
|
-
)
|
|
353
|
-
)
|
|
354
|
-
)
|
|
367
|
+
return and(
|
|
368
|
+
//XNOR gate
|
|
369
|
+
or(
|
|
370
|
+
and(isForCreationRow, standardActionsContext.creationMode === CreationMode.CreationRow),
|
|
371
|
+
and(!isForCreationRow, standardActionsContext.creationMode !== CreationMode.CreationRow)
|
|
372
|
+
),
|
|
373
|
+
or(not(isConstant(createVisibility)), createVisibility)
|
|
355
374
|
);
|
|
356
375
|
}
|
|
357
376
|
|
|
@@ -362,7 +381,7 @@ export function getCreateTemplating(
|
|
|
362
381
|
* @returns {Expression<boolean> }
|
|
363
382
|
*/
|
|
364
383
|
export function getDefaultTemplating(actionVisibility: Expression<boolean>): Expression<boolean> {
|
|
365
|
-
return not(
|
|
384
|
+
return or(not(isConstant(actionVisibility)), actionVisibility);
|
|
366
385
|
}
|
|
367
386
|
|
|
368
387
|
/**
|
|
@@ -370,14 +389,18 @@ export function getDefaultTemplating(actionVisibility: Expression<boolean>): Exp
|
|
|
370
389
|
*
|
|
371
390
|
* @param {ConverterContext} converterContext
|
|
372
391
|
* @param {StandardActionsContext} standardActionsContext
|
|
392
|
+
* @param {boolean} isForCreationRow
|
|
373
393
|
* @returns {Expression<boolean> }
|
|
374
394
|
*/
|
|
375
395
|
export function getCreateVisibility(
|
|
376
396
|
converterContext: ConverterContext,
|
|
377
|
-
standardActionsContext: StandardActionsContext
|
|
397
|
+
standardActionsContext: StandardActionsContext,
|
|
398
|
+
isForCreationRow = false
|
|
378
399
|
): Expression<boolean> {
|
|
379
400
|
const isInsertable = standardActionsContext.restrictions.isInsertable.expression;
|
|
380
|
-
const isCreateHidden =
|
|
401
|
+
const isCreateHidden = isForCreationRow
|
|
402
|
+
? isActionAnnotatedHidden(converterContext, AnnotationHiddenProperty.CreateHidden, false)
|
|
403
|
+
: standardActionsContext.hiddenAnnotation.create;
|
|
381
404
|
const newAction = standardActionsContext.newAction;
|
|
382
405
|
|
|
383
406
|
//Create Button is visible:
|
|
@@ -391,12 +414,8 @@ export function getCreateVisibility(
|
|
|
391
414
|
// - Otherwise
|
|
392
415
|
// - This depends on the value of the the UI.IsEditable
|
|
393
416
|
return ifElse(
|
|
394
|
-
standardActionsContext.
|
|
395
|
-
|
|
396
|
-
converterContext.getTemplateType() === TemplateType.ListReport,
|
|
397
|
-
not(isCreateHidden),
|
|
398
|
-
and(not(isCreateHidden), UI.IsEditable)
|
|
399
|
-
),
|
|
417
|
+
standardActionsContext.creationMode === CreationMode.External,
|
|
418
|
+
and(not(isCreateHidden), or(converterContext.getTemplateType() === TemplateType.ListReport, UI.IsEditable)),
|
|
400
419
|
ifElse(
|
|
401
420
|
or(
|
|
402
421
|
and(isConstant(newAction?.available), equal(newAction?.available, false)),
|
|
@@ -408,7 +427,7 @@ export function getCreateVisibility(
|
|
|
408
427
|
false,
|
|
409
428
|
ifElse(
|
|
410
429
|
converterContext.getTemplateType() === TemplateType.ListReport,
|
|
411
|
-
|
|
430
|
+
or(not(isBinding(isCreateHidden)), not(isCreateHidden)),
|
|
412
431
|
and(not(isCreateHidden), UI.IsEditable)
|
|
413
432
|
)
|
|
414
433
|
)
|
|
@@ -437,7 +456,7 @@ export function getDeleteVisibility(
|
|
|
437
456
|
// - Otherwise
|
|
438
457
|
// - If UI.DeleteHidden is true -> not visible
|
|
439
458
|
// - Otherwise
|
|
440
|
-
// - If we're on OP -> depending
|
|
459
|
+
// - If we're on OP -> depending if UI is editable and restrictions on deletable
|
|
441
460
|
// - Otherwise
|
|
442
461
|
// - If UI.DeleteHidden points to a property path -> provide a negated binding to this path
|
|
443
462
|
// - Otherwise, delete is visible
|
|
@@ -453,8 +472,8 @@ export function getDeleteVisibility(
|
|
|
453
472
|
false,
|
|
454
473
|
ifElse(
|
|
455
474
|
converterContext.getTemplateType() !== TemplateType.ListReport,
|
|
456
|
-
and(not(isDeleteHidden),
|
|
457
|
-
|
|
475
|
+
and(not(isDeleteHidden), UI.IsEditable),
|
|
476
|
+
not(and(isBinding(isDeleteHidden), isDeleteHidden))
|
|
458
477
|
)
|
|
459
478
|
)
|
|
460
479
|
)
|
|
@@ -479,15 +498,12 @@ export function getPasteVisibility(
|
|
|
479
498
|
// If Create is visible, enablePaste is not disabled into manifest and we are on OP/blocks outside Fiori elements templates
|
|
480
499
|
// Then button will be visible according to insertable restrictions and create visibility
|
|
481
500
|
// Otherwise it's not visible
|
|
482
|
-
return
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
[TemplateType.ListReport, TemplateType.AnalyticalListPage].indexOf(converterContext.getTemplateType()) === -1 &&
|
|
489
|
-
standardActionsContext.restrictions.isInsertable.expression,
|
|
490
|
-
false
|
|
501
|
+
return and(
|
|
502
|
+
notEqual(standardActionsContext.tableManifestConfiguration.enablePaste, false),
|
|
503
|
+
createVisibility,
|
|
504
|
+
isInsertUpdateActionsTemplated,
|
|
505
|
+
[TemplateType.ListReport, TemplateType.AnalyticalListPage].indexOf(converterContext.getTemplateType()) === -1,
|
|
506
|
+
standardActionsContext.restrictions.isInsertable.expression
|
|
491
507
|
);
|
|
492
508
|
}
|
|
493
509
|
|
|
@@ -507,7 +523,7 @@ export function getMassEditVisibility(
|
|
|
507
523
|
bMassEditEnabledInManifest: boolean = standardActionsContext.tableManifestConfiguration?.enableMassEdit || false;
|
|
508
524
|
const templateBindingExpression =
|
|
509
525
|
converterContext.getTemplateType() === TemplateType.ObjectPage
|
|
510
|
-
?
|
|
526
|
+
? UI.IsEditable
|
|
511
527
|
: converterContext.getTemplateType() === TemplateType.ListReport;
|
|
512
528
|
//MassEdit is visible
|
|
513
529
|
// If
|
|
@@ -516,10 +532,59 @@ export function getMassEditVisibility(
|
|
|
516
532
|
// - and the selectionMode is relevant
|
|
517
533
|
// Then MassEdit is always visible in LR or dynamically visible in OP according to ui>Editable and hiddenAnnotation
|
|
518
534
|
// Button is hidden for all other cases
|
|
519
|
-
return
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
535
|
+
return and(
|
|
536
|
+
not(and(isConstant(pathUpdatableExpression), equal(pathUpdatableExpression, false))),
|
|
537
|
+
bMassEditEnabledInManifest,
|
|
538
|
+
templateBindingExpression,
|
|
539
|
+
not(isUpdateHidden)
|
|
540
|
+
);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Gets the binding expression for the property enabled of the creationRow.
|
|
545
|
+
*
|
|
546
|
+
* @param {ConverterContext} converterContext
|
|
547
|
+
* @param {StandardActionsContext} standardActionsContext
|
|
548
|
+
* @param {Expression<boolean>} creationRowVisibility
|
|
549
|
+
* @returns {Expression<boolean> }
|
|
550
|
+
*/
|
|
551
|
+
export function getCreationRowEnablement(
|
|
552
|
+
converterContext: ConverterContext,
|
|
553
|
+
standardActionsContext: StandardActionsContext,
|
|
554
|
+
creationRowVisibility: Expression<boolean>
|
|
555
|
+
): Expression<boolean> {
|
|
556
|
+
const restrictionsInsertable = isPathInsertable(converterContext.getDataModelObjectPath(), {
|
|
557
|
+
ignoreTargetCollection: true,
|
|
558
|
+
authorizeUnresolvable: true,
|
|
559
|
+
pathVisitor: (path: string, navigationPaths: string[]) => {
|
|
560
|
+
if (path.indexOf("/") === 0) {
|
|
561
|
+
path = singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths);
|
|
562
|
+
return path;
|
|
563
|
+
}
|
|
564
|
+
const navigationProperties = converterContext.getDataModelObjectPath().navigationProperties;
|
|
565
|
+
if (navigationProperties) {
|
|
566
|
+
const partner = navigationProperties[navigationProperties.length - 1].partner;
|
|
567
|
+
if (partner) {
|
|
568
|
+
path = `${partner}/${path}`;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
return path;
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
const isInsertable =
|
|
575
|
+
restrictionsInsertable._type === "Unresolvable"
|
|
576
|
+
? isPathInsertable(converterContext.getDataModelObjectPath(), {
|
|
577
|
+
pathVisitor: (path: string) => singletonPathVisitor(path, converterContext.getConvertedTypes(), [])
|
|
578
|
+
})
|
|
579
|
+
: restrictionsInsertable;
|
|
580
|
+
|
|
581
|
+
return and(
|
|
582
|
+
creationRowVisibility,
|
|
583
|
+
isInsertable,
|
|
584
|
+
or(
|
|
585
|
+
!standardActionsContext.tableManifestConfiguration.disableAddRowButtonForEmptyData,
|
|
586
|
+
formatResult([bindingExpression("creationRowFieldValidity", "internal")], tableFormatters.validateCreationRowFields)
|
|
587
|
+
)
|
|
523
588
|
);
|
|
524
589
|
}
|
|
525
590
|
|
|
@@ -540,14 +605,9 @@ export function getCreateEnablement(
|
|
|
540
605
|
const CollectionType = converterContext.resolveAbsolutePath<any>(standardActionsContext.collectionPath).target?._type;
|
|
541
606
|
return and(
|
|
542
607
|
createVisibility,
|
|
543
|
-
|
|
608
|
+
or(
|
|
544
609
|
CollectionType === "EntitySet",
|
|
545
|
-
|
|
546
|
-
ifElse(
|
|
547
|
-
converterContext.getTemplateType() !== TemplateType.ObjectPage,
|
|
548
|
-
isInsertable,
|
|
549
|
-
and(isInsertable, equal(bindingExpression("/editMode", "ui"), "Editable"))
|
|
550
|
-
)
|
|
610
|
+
and(isInsertable, or(converterContext.getTemplateType() !== TemplateType.ObjectPage, UI.IsEditable))
|
|
551
611
|
)
|
|
552
612
|
);
|
|
553
613
|
}
|
|
@@ -567,7 +627,7 @@ export function getDeleteEnablement(
|
|
|
567
627
|
): Expression<boolean> {
|
|
568
628
|
const isDeletable = standardActionsContext.restrictions.isDeletable.expression;
|
|
569
629
|
const isOnlyDynamicOnCurrentEntity =
|
|
570
|
-
standardActionsContext.restrictions.isDeletable.
|
|
630
|
+
!isConstant(isDeletable) && standardActionsContext.restrictions.isDeletable.navigationExpression._type === "Unresolvable";
|
|
571
631
|
const numberOfSelectedContexts = bindingExpression("numberOfSelectedContexts", "internal");
|
|
572
632
|
const numberOfDeletableContexts = bindingExpression("deletableContexts", "internal");
|
|
573
633
|
const numberOfUnSavedContexts = bindingExpression("unSavedContexts", "internal");
|
|
@@ -576,13 +636,12 @@ export function getDeleteEnablement(
|
|
|
576
636
|
deleteVisibility,
|
|
577
637
|
ifElse(
|
|
578
638
|
or(converterContext.getTemplateType() !== TemplateType.ObjectPage, isOnlyDynamicOnCurrentEntity),
|
|
579
|
-
|
|
639
|
+
and(
|
|
580
640
|
or(
|
|
581
641
|
and(notEqual(numberOfDeletableContexts, undefined), greaterThan(length(numberOfDeletableContexts), 0)),
|
|
582
642
|
and(notEqual(numberOfUnSavedContexts, undefined), greaterThan(length(numberOfUnSavedContexts), 0))
|
|
583
643
|
),
|
|
584
|
-
bindingExpression("deleteEnabled", "internal")
|
|
585
|
-
false
|
|
644
|
+
bindingExpression("deleteEnabled", "internal")
|
|
586
645
|
),
|
|
587
646
|
and(notEqual(numberOfSelectedContexts, 0), isDeletable)
|
|
588
647
|
)
|
|
@@ -615,7 +674,8 @@ export function getMassEditEnablement(
|
|
|
615
674
|
): Expression<boolean> {
|
|
616
675
|
const pathUpdatableExpression = standardActionsContext.restrictions.isUpdatable.expression;
|
|
617
676
|
const isOnlyDynamicOnCurrentEntity: any =
|
|
618
|
-
|
|
677
|
+
!isConstant(pathUpdatableExpression) &&
|
|
678
|
+
standardActionsContext.restrictions.isUpdatable.navigationExpression._type === "Unresolvable";
|
|
619
679
|
const numberOfSelectedContexts = greaterOrEqual(bindingExpression("numberOfSelectedContexts", "internal"), 1);
|
|
620
680
|
const numberOfUpdatableContexts = greaterOrEqual(length(bindingExpression("updatableContexts", "internal")), 1);
|
|
621
681
|
const bIsDraftSupported = isDraftSupported(converterContext);
|