@sapui5/sap.fe.core 1.111.1 → 1.112.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 +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +4 -4
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +11 -11
- package/src/sap/fe/core/AppComponent-dbg.js +27 -5
- package/src/sap/fe/core/AppComponent.js +1 -1
- package/src/sap/fe/core/AppComponent.js.map +1 -1
- package/src/sap/fe/core/AppComponent.ts +58 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +10 -1
- package/src/sap/fe/core/BaseController-dbg.js +1 -1
- package/src/sap/fe/core/BaseController.ts +2 -1
- package/src/sap/fe/core/CommonUtils-dbg.js +152 -365
- package/src/sap/fe/core/CommonUtils.js +1 -1
- package/src/sap/fe/core/CommonUtils.js.map +1 -1
- package/src/sap/fe/core/CommonUtils.ts +201 -478
- package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -1
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +9 -1
- package/src/sap/fe/core/PageController-dbg.js +26 -31
- package/src/sap/fe/core/PageController.js +1 -1
- package/src/sap/fe/core/PageController.js.map +1 -1
- package/src/sap/fe/core/PageController.ts +17 -3
- package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
- package/src/sap/fe/core/ResourceModel.js +6 -0
- package/src/sap/fe/core/ResourceModel.js.map +1 -0
- package/src/sap/fe/core/ResourceModel.ts +67 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +1 -0
- package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +6 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +163 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +169 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +147 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +290 -362
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +181 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +890 -220
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +974 -239
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +71 -61
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
- package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
- package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
- package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
- package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
- package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
- package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
- package/src/sap/fe/core/controls/FilterBar.ts +5 -0
- package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
- package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
- package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
- package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
- package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
- package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
- package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
- package/src/sap/fe/core/fpm/Component.ts +1 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
- package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
- package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
- package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
- package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
- package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
- package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
- package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
- package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
- package/src/sap/fe/core/library-dbg.js +2 -2
- package/src/sap/fe/core/library-preload.js +127 -125
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/library.ts +7 -0
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/messagebundle.properties +33 -0
- package/src/sap/fe/core/messagebundle_ar.properties +12 -10
- package/src/sap/fe/core/messagebundle_bg.properties +11 -9
- package/src/sap/fe/core/messagebundle_ca.properties +11 -9
- package/src/sap/fe/core/messagebundle_cs.properties +11 -9
- package/src/sap/fe/core/messagebundle_cy.properties +11 -9
- package/src/sap/fe/core/messagebundle_da.properties +11 -9
- package/src/sap/fe/core/messagebundle_de.properties +3 -1
- package/src/sap/fe/core/messagebundle_el.properties +11 -9
- package/src/sap/fe/core/messagebundle_en.properties +3 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
- package/src/sap/fe/core/messagebundle_es.properties +11 -9
- package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
- package/src/sap/fe/core/messagebundle_et.properties +11 -9
- package/src/sap/fe/core/messagebundle_fi.properties +11 -9
- package/src/sap/fe/core/messagebundle_fr.properties +11 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +11 -9
- package/src/sap/fe/core/messagebundle_hu.properties +11 -9
- package/src/sap/fe/core/messagebundle_id.properties +3 -1
- package/src/sap/fe/core/messagebundle_it.properties +11 -9
- package/src/sap/fe/core/messagebundle_iw.properties +11 -9
- package/src/sap/fe/core/messagebundle_ja.properties +11 -9
- package/src/sap/fe/core/messagebundle_kk.properties +11 -9
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +11 -9
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +12 -10
- package/src/sap/fe/core/messagebundle_nl.properties +12 -10
- package/src/sap/fe/core/messagebundle_no.properties +11 -9
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +11 -9
- package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
- package/src/sap/fe/core/messagebundle_ro.properties +3 -1
- package/src/sap/fe/core/messagebundle_ru.properties +3 -1
- package/src/sap/fe/core/messagebundle_sh.properties +11 -9
- package/src/sap/fe/core/messagebundle_sk.properties +11 -9
- package/src/sap/fe/core/messagebundle_sl.properties +11 -9
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +11 -9
- package/src/sap/fe/core/messagebundle_tr.properties +11 -9
- package/src/sap/fe/core/messagebundle_uk.properties +11 -9
- package/src/sap/fe/core/messagebundle_vi.properties +12 -10
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
- package/src/sap/fe/core/operationsHelper.js +1 -1
- package/src/sap/fe/core/operationsHelper.js.map +1 -1
- package/src/sap/fe/core/operationsHelper.ts +88 -63
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
- package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
- package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
- package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -0
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
- package/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
- package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
- package/src/sap/fe/core/type/FiscalDate.ts +2 -1
- package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
- package/src/sap/fe/core/type/TypeUtil.js +1 -1
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
- package/src/sap/fe/core/type/TypeUtil.ts +3 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
- package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
- package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
- package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
- package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
- package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
- package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
- package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
- package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
- package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
- package/src/sap/fe/core/controls/FileWrapper.js +0 -6
- package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
- package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
- package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor", "sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment", "sap/fe/core/helpers/TypeGuards"], function (BuildingBlockBase, BuildingBlockTemplateProcessor, RuntimeBuildingBlockFragment, TypeGuards) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var isContext = TypeGuards.isContext;
|
|
10
|
+
var storeRuntimeBlock = RuntimeBuildingBlockFragment.storeRuntimeBlock;
|
|
11
|
+
var xml = BuildingBlockTemplateProcessor.xml;
|
|
12
|
+
var registerBuildingBlock = BuildingBlockTemplateProcessor.registerBuildingBlock;
|
|
13
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
14
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
15
|
+
/**
|
|
16
|
+
* Base class for runtime building blocks
|
|
17
|
+
*/
|
|
18
|
+
let RuntimeBuildingBlock = /*#__PURE__*/function (_BuildingBlockBase) {
|
|
19
|
+
_inheritsLoose(RuntimeBuildingBlock, _BuildingBlockBase);
|
|
20
|
+
function RuntimeBuildingBlock() {
|
|
21
|
+
return _BuildingBlockBase.apply(this, arguments) || this;
|
|
22
|
+
}
|
|
23
|
+
_exports = RuntimeBuildingBlock;
|
|
24
|
+
RuntimeBuildingBlock.register = function register() {
|
|
25
|
+
registerBuildingBlock(this);
|
|
26
|
+
storeRuntimeBlock(this);
|
|
27
|
+
};
|
|
28
|
+
var _proto = RuntimeBuildingBlock.prototype;
|
|
29
|
+
_proto.getTemplate = function getTemplate(oNode) {
|
|
30
|
+
const metadata = this.constructor.metadata;
|
|
31
|
+
const className = `${metadata.namespace}.${metadata.name}`;
|
|
32
|
+
const extraProps = [];
|
|
33
|
+
// Function are defined as string but need to be resolved by UI5, as such we store them in an `event` property and will redispatch them later
|
|
34
|
+
const functionHolderDefinition = [];
|
|
35
|
+
const propertiesAssignedToFunction = [];
|
|
36
|
+
const functionStringInOrder = [];
|
|
37
|
+
for (const propertiesKey in metadata.properties) {
|
|
38
|
+
let propertyValue = this[propertiesKey];
|
|
39
|
+
if (propertyValue !== undefined && propertyValue !== null) {
|
|
40
|
+
if (isContext(propertyValue)) {
|
|
41
|
+
propertyValue = propertyValue.getPath();
|
|
42
|
+
}
|
|
43
|
+
if (metadata.properties[propertiesKey].type === "function") {
|
|
44
|
+
functionHolderDefinition.push(propertyValue);
|
|
45
|
+
functionStringInOrder.push(propertyValue);
|
|
46
|
+
propertiesAssignedToFunction.push(propertiesKey);
|
|
47
|
+
} else {
|
|
48
|
+
extraProps.push(xml`feBB:${propertiesKey}="${propertyValue}"`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (functionHolderDefinition.length > 0) {
|
|
53
|
+
extraProps.push(xml`functionHolder="${functionHolderDefinition.join(";")}"`);
|
|
54
|
+
extraProps.push(xml`feBB:functionStringInOrder="${functionStringInOrder.join(",")}"`);
|
|
55
|
+
extraProps.push(xml`feBB:propertiesAssignedToFunction="${propertiesAssignedToFunction.join(",")}"`);
|
|
56
|
+
}
|
|
57
|
+
// core:require need to be defined on the node itself to be picked up due to the templating step
|
|
58
|
+
const coreRequire = (oNode === null || oNode === void 0 ? void 0 : oNode.getAttribute("core:require")) || undefined;
|
|
59
|
+
if (coreRequire) {
|
|
60
|
+
extraProps.push(xml`core:require="${coreRequire}"`);
|
|
61
|
+
}
|
|
62
|
+
return xml`<feBB:RuntimeBuildingBlockFragment
|
|
63
|
+
xmlns:core="sap.ui.core"
|
|
64
|
+
xmlns:feBB="sap.fe.core.buildingBlocks"
|
|
65
|
+
fragmentName="${className}"
|
|
66
|
+
|
|
67
|
+
id="{this>id}"
|
|
68
|
+
type="FE_COMPONENTS"
|
|
69
|
+
${extraProps}
|
|
70
|
+
>
|
|
71
|
+
</feBB:RuntimeBuildingBlockFragment>`;
|
|
72
|
+
};
|
|
73
|
+
return RuntimeBuildingBlock;
|
|
74
|
+
}(BuildingBlockBase);
|
|
75
|
+
RuntimeBuildingBlock.isRuntime = true;
|
|
76
|
+
_exports = RuntimeBuildingBlock;
|
|
77
|
+
return _exports;
|
|
78
|
+
}, false);
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSdW50aW1lQnVpbGRpbmdCbG9jayIsInJlZ2lzdGVyIiwicmVnaXN0ZXJCdWlsZGluZ0Jsb2NrIiwic3RvcmVSdW50aW1lQmxvY2siLCJnZXRUZW1wbGF0ZSIsIm9Ob2RlIiwibWV0YWRhdGEiLCJjb25zdHJ1Y3RvciIsImNsYXNzTmFtZSIsIm5hbWVzcGFjZSIsIm5hbWUiLCJleHRyYVByb3BzIiwiZnVuY3Rpb25Ib2xkZXJEZWZpbml0aW9uIiwicHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbiIsImZ1bmN0aW9uU3RyaW5nSW5PcmRlciIsInByb3BlcnRpZXNLZXkiLCJwcm9wZXJ0aWVzIiwicHJvcGVydHlWYWx1ZSIsInVuZGVmaW5lZCIsImlzQ29udGV4dCIsImdldFBhdGgiLCJ0eXBlIiwicHVzaCIsInhtbCIsImxlbmd0aCIsImpvaW4iLCJjb3JlUmVxdWlyZSIsImdldEF0dHJpYnV0ZSIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiaXNSdW50aW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSdW50aW1lQnVpbGRpbmdCbG9jay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrQmFzZVwiO1xuaW1wb3J0IHR5cGUgeyBYTUxQcm9jZXNzb3JUeXBlVmFsdWUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyByZWdpc3RlckJ1aWxkaW5nQmxvY2ssIHhtbCB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB7IHN0b3JlUnVudGltZUJsb2NrIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL1J1bnRpbWVCdWlsZGluZ0Jsb2NrRnJhZ21lbnRcIjtcbmltcG9ydCB7IGlzQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcnVudGltZSBidWlsZGluZyBibG9ja3NcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVudGltZUJ1aWxkaW5nQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZSB7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaXNSdW50aW1lID0gdHJ1ZTtcblxuXHRnZXRDb250ZW50Pyhjb250YWluaW5nVmlldzogVmlldywgYXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQpOiBDb250cm9sIHwgdW5kZWZpbmVkO1xuXG5cdHN0YXRpYyByZWdpc3RlcigpIHtcblx0XHRyZWdpc3RlckJ1aWxkaW5nQmxvY2sodGhpcyk7XG5cdFx0c3RvcmVSdW50aW1lQmxvY2sodGhpcyk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VGVtcGxhdGUob05vZGU/OiBFbGVtZW50KTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBCdWlsZGluZ0Jsb2NrQmFzZSkubWV0YWRhdGE7XG5cblx0XHRjb25zdCBjbGFzc05hbWUgPSBgJHttZXRhZGF0YS5uYW1lc3BhY2V9LiR7bWV0YWRhdGEubmFtZX1gO1xuXHRcdGNvbnN0IGV4dHJhUHJvcHMgPSBbXTtcblx0XHQvLyBGdW5jdGlvbiBhcmUgZGVmaW5lZCBhcyBzdHJpbmcgYnV0IG5lZWQgdG8gYmUgcmVzb2x2ZWQgYnkgVUk1LCBhcyBzdWNoIHdlIHN0b3JlIHRoZW0gaW4gYW4gYGV2ZW50YCBwcm9wZXJ0eSBhbmQgd2lsbCByZWRpc3BhdGNoIHRoZW0gbGF0ZXJcblx0XHRjb25zdCBmdW5jdGlvbkhvbGRlckRlZmluaXRpb24gPSBbXTtcblx0XHRjb25zdCBwcm9wZXJ0aWVzQXNzaWduZWRUb0Z1bmN0aW9uID0gW107XG5cdFx0Y29uc3QgZnVuY3Rpb25TdHJpbmdJbk9yZGVyID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9wZXJ0aWVzS2V5IGluIG1ldGFkYXRhLnByb3BlcnRpZXMpIHtcblx0XHRcdGxldCBwcm9wZXJ0eVZhbHVlID0gdGhpc1twcm9wZXJ0aWVzS2V5IGFzIGtleW9mIHRoaXNdIGFzIHVua25vd24gYXMgWE1MUHJvY2Vzc29yVHlwZVZhbHVlO1xuXHRcdFx0aWYgKHByb3BlcnR5VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wZXJ0eVZhbHVlICE9PSBudWxsKSB7XG5cdFx0XHRcdGlmIChpc0NvbnRleHQocHJvcGVydHlWYWx1ZSkpIHtcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZS5nZXRQYXRoKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydGllc0tleV0udHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdFx0ZnVuY3Rpb25Ib2xkZXJEZWZpbml0aW9uLnB1c2gocHJvcGVydHlWYWx1ZSk7XG5cdFx0XHRcdFx0ZnVuY3Rpb25TdHJpbmdJbk9yZGVyLnB1c2gocHJvcGVydHlWYWx1ZSk7XG5cdFx0XHRcdFx0cHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbi5wdXNoKHByb3BlcnRpZXNLZXkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGV4dHJhUHJvcHMucHVzaCh4bWxgZmVCQjoke3Byb3BlcnRpZXNLZXl9PVwiJHtwcm9wZXJ0eVZhbHVlfVwiYCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGZ1bmN0aW9uSG9sZGVyRGVmaW5pdGlvbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRleHRyYVByb3BzLnB1c2goeG1sYGZ1bmN0aW9uSG9sZGVyPVwiJHtmdW5jdGlvbkhvbGRlckRlZmluaXRpb24uam9pbihcIjtcIil9XCJgKTtcblx0XHRcdGV4dHJhUHJvcHMucHVzaCh4bWxgZmVCQjpmdW5jdGlvblN0cmluZ0luT3JkZXI9XCIke2Z1bmN0aW9uU3RyaW5nSW5PcmRlci5qb2luKFwiLFwiKX1cImApO1xuXHRcdFx0ZXh0cmFQcm9wcy5wdXNoKHhtbGBmZUJCOnByb3BlcnRpZXNBc3NpZ25lZFRvRnVuY3Rpb249XCIke3Byb3BlcnRpZXNBc3NpZ25lZFRvRnVuY3Rpb24uam9pbihcIixcIil9XCJgKTtcblx0XHR9XG5cdFx0Ly8gY29yZTpyZXF1aXJlIG5lZWQgdG8gYmUgZGVmaW5lZCBvbiB0aGUgbm9kZSBpdHNlbGYgdG8gYmUgcGlja2VkIHVwIGR1ZSB0byB0aGUgdGVtcGxhdGluZyBzdGVwXG5cdFx0Y29uc3QgY29yZVJlcXVpcmUgPSBvTm9kZT8uZ2V0QXR0cmlidXRlKFwiY29yZTpyZXF1aXJlXCIpIHx8IHVuZGVmaW5lZDtcblx0XHRpZiAoY29yZVJlcXVpcmUpIHtcblx0XHRcdGV4dHJhUHJvcHMucHVzaCh4bWxgY29yZTpyZXF1aXJlPVwiJHtjb3JlUmVxdWlyZX1cImApO1xuXHRcdH1cblx0XHRyZXR1cm4geG1sYDxmZUJCOlJ1bnRpbWVCdWlsZGluZ0Jsb2NrRnJhZ21lbnRcblx0XHRcdFx0XHR4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcIlxuXHRcdFx0XHRcdHhtbG5zOmZlQkI9XCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrc1wiXG5cdFx0XHRcdFx0ZnJhZ21lbnROYW1lPVwiJHtjbGFzc05hbWV9XCJcblxuXHRcdFx0XHRcdGlkPVwie3RoaXM+aWR9XCJcblx0XHRcdFx0XHR0eXBlPVwiRkVfQ09NUE9ORU5UU1wiXG5cdFx0XHRcdFx0JHtleHRyYVByb3BzfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdDwvZmVCQjpSdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50PmA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUFTQTtBQUNBO0FBQ0E7RUFGQSxJQUdxQkEsb0JBQW9CO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBLHFCQUtqQ0MsUUFBUSxHQUFmLG9CQUFrQjtNQUNqQkMscUJBQXFCLENBQUMsSUFBSSxDQUFDO01BQzNCQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUFBO0lBQUEsT0FFTUMsV0FBVyxHQUFsQixxQkFBbUJDLEtBQWUsRUFBb0Q7TUFDckYsTUFBTUMsUUFBUSxHQUFJLElBQUksQ0FBQ0MsV0FBVyxDQUE4QkQsUUFBUTtNQUV4RSxNQUFNRSxTQUFTLEdBQUksR0FBRUYsUUFBUSxDQUFDRyxTQUFVLElBQUdILFFBQVEsQ0FBQ0ksSUFBSyxFQUFDO01BQzFELE1BQU1DLFVBQVUsR0FBRyxFQUFFO01BQ3JCO01BQ0EsTUFBTUMsd0JBQXdCLEdBQUcsRUFBRTtNQUNuQyxNQUFNQyw0QkFBNEIsR0FBRyxFQUFFO01BQ3ZDLE1BQU1DLHFCQUFxQixHQUFHLEVBQUU7TUFDaEMsS0FBSyxNQUFNQyxhQUFhLElBQUlULFFBQVEsQ0FBQ1UsVUFBVSxFQUFFO1FBQ2hELElBQUlDLGFBQWEsR0FBRyxJQUFJLENBQUNGLGFBQWEsQ0FBbUQ7UUFDekYsSUFBSUUsYUFBYSxLQUFLQyxTQUFTLElBQUlELGFBQWEsS0FBSyxJQUFJLEVBQUU7VUFDMUQsSUFBSUUsU0FBUyxDQUFDRixhQUFhLENBQUMsRUFBRTtZQUM3QkEsYUFBYSxHQUFHQSxhQUFhLENBQUNHLE9BQU8sRUFBRTtVQUN4QztVQUNBLElBQUlkLFFBQVEsQ0FBQ1UsVUFBVSxDQUFDRCxhQUFhLENBQUMsQ0FBQ00sSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUMzRFQsd0JBQXdCLENBQUNVLElBQUksQ0FBQ0wsYUFBYSxDQUFDO1lBQzVDSCxxQkFBcUIsQ0FBQ1EsSUFBSSxDQUFDTCxhQUFhLENBQUM7WUFDekNKLDRCQUE0QixDQUFDUyxJQUFJLENBQUNQLGFBQWEsQ0FBQztVQUNqRCxDQUFDLE1BQU07WUFDTkosVUFBVSxDQUFDVyxJQUFJLENBQUNDLEdBQUksUUFBT1IsYUFBYyxLQUFJRSxhQUFjLEdBQUUsQ0FBQztVQUMvRDtRQUNEO01BQ0Q7TUFDQSxJQUFJTCx3QkFBd0IsQ0FBQ1ksTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN4Q2IsVUFBVSxDQUFDVyxJQUFJLENBQUNDLEdBQUksbUJBQWtCWCx3QkFBd0IsQ0FBQ2EsSUFBSSxDQUFDLEdBQUcsQ0FBRSxHQUFFLENBQUM7UUFDNUVkLFVBQVUsQ0FBQ1csSUFBSSxDQUFDQyxHQUFJLCtCQUE4QlQscUJBQXFCLENBQUNXLElBQUksQ0FBQyxHQUFHLENBQUUsR0FBRSxDQUFDO1FBQ3JGZCxVQUFVLENBQUNXLElBQUksQ0FBQ0MsR0FBSSxzQ0FBcUNWLDRCQUE0QixDQUFDWSxJQUFJLENBQUMsR0FBRyxDQUFFLEdBQUUsQ0FBQztNQUNwRztNQUNBO01BQ0EsTUFBTUMsV0FBVyxHQUFHLENBQUFyQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXNCLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSVQsU0FBUztNQUNwRSxJQUFJUSxXQUFXLEVBQUU7UUFDaEJmLFVBQVUsQ0FBQ1csSUFBSSxDQUFDQyxHQUFJLGlCQUFnQkcsV0FBWSxHQUFFLENBQUM7TUFDcEQ7TUFDQSxPQUFPSCxHQUFJO0FBQ2I7QUFDQTtBQUNBLHFCQUFxQmYsU0FBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSxPQUFPRyxVQUFXO0FBQ2xCO0FBQ0EseUNBQXlDO0lBQ3hDLENBQUM7SUFBQTtFQUFBLEVBdERnRGlCLGlCQUFpQjtFQUE5QzVCLG9CQUFvQixDQUNqQjZCLFNBQVMsR0FBRyxJQUFJO0VBQUE7RUFBQTtBQUFBIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase","sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor","sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment","sap/fe/core/helpers/TypeGuards"],function(e,t,n,i){"use strict";var o={};var r=i.isContext;var s=n.storeRuntimeBlock;var u=t.xml;var c=t.registerBuildingBlock;function p(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;l(e,t)}function l(e,t){l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return l(e,t)}let f=function(e){p(t,e);function t(){return e.apply(this,arguments)||this}o=t;t.register=function e(){c(this);s(this)};var n=t.prototype;n.getTemplate=function e(t){const n=this.constructor.metadata;const i=`${n.namespace}.${n.name}`;const o=[];const s=[];const c=[];const p=[];for(const e in n.properties){let t=this[e];if(t!==undefined&&t!==null){if(r(t)){t=t.getPath()}if(n.properties[e].type==="function"){s.push(t);p.push(t);c.push(e)}else{o.push(u`feBB:${e}="${t}"`)}}}if(s.length>0){o.push(u`functionHolder="${s.join(";")}"`);o.push(u`feBB:functionStringInOrder="${p.join(",")}"`);o.push(u`feBB:propertiesAssignedToFunction="${c.join(",")}"`)}const l=(t===null||t===void 0?void 0:t.getAttribute("core:require"))||undefined;if(l){o.push(u`core:require="${l}"`)}return u`<feBB:RuntimeBuildingBlockFragment
|
|
6
|
+
xmlns:core="sap.ui.core"
|
|
7
|
+
xmlns:feBB="sap.fe.core.buildingBlocks"
|
|
8
|
+
fragmentName="${i}"
|
|
9
|
+
|
|
10
|
+
id="{this>id}"
|
|
11
|
+
type="FE_COMPONENTS"
|
|
12
|
+
${o}
|
|
13
|
+
>
|
|
14
|
+
</feBB:RuntimeBuildingBlockFragment>`};return t}(e);f.isRuntime=true;o=f;return o},false);
|
|
15
|
+
//# sourceMappingURL=RuntimeBuildingBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBuildingBlock.js","names":["sap","ui","define","BuildingBlockBase","BuildingBlockTemplateProcessor","RuntimeBuildingBlockFragment","TypeGuards","_exports","isContext","storeRuntimeBlock","xml","registerBuildingBlock","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","RuntimeBuildingBlock","_BuildingBlockBase","apply","this","arguments","register","_proto","getTemplate","oNode","metadata","className","namespace","name","extraProps","functionHolderDefinition","propertiesAssignedToFunction","functionStringInOrder","propertiesKey","properties","propertyValue","undefined","getPath","type","push","length","join","coreRequire","getAttribute","isRuntime"],"sources":["RuntimeBuildingBlock-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,+CAAgD,4DAA6D,0DAA2D,kCAAmC,SAAUC,EAAmBC,EAAgCC,EAA8BC,GACnT,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAYF,EAAWE,UAC3B,IAAIC,EAAoBJ,EAA6BI,kBACrD,IAAIC,EAAMN,EAA+BM,IACzC,IAAIC,EAAwBP,EAA+BO,sBAC3D,SAASC,EAAeC,EAAUC,GAAcD,EAASE,UAAYC,OAAOC,OAAOH,EAAWC,WAAYF,EAASE,UAAUG,YAAcL,EAAUM,EAAgBN,EAAUC,EAAa,CAC5L,SAASK,EAAgBC,EAAGC,GAAKF,EAAkBH,OAAOM,eAAiBN,OAAOM,eAAeC,OAAS,SAASJ,EAAgBC,EAAGC,GAAKD,EAAEI,UAAYH,EAAG,OAAOD,CAAG,EAAG,OAAOD,EAAgBC,EAAGC,EAAI,CAIvM,IAAII,EAAoC,SAAUC,GAChDd,EAAea,EAAsBC,GACrC,SAASD,IACP,OAAOC,EAAmBC,MAAMC,KAAMC,YAAcD,IACtD,CACArB,EAAWkB,EACXA,EAAqBK,SAAW,SAASA,IACvCnB,EAAsBiB,MACtBnB,EAAkBmB,KACpB,EACA,IAAIG,EAASN,EAAqBV,UAClCgB,EAAOC,YAAc,SAASA,EAAYC,GACxC,MAAMC,EAAWN,KAAKV,YAAYgB,SAClC,MAAMC,EAAY,GAAGD,EAASE,aAAaF,EAASG,OACpD,MAAMC,EAAa,GAEnB,MAAMC,EAA2B,GACjC,MAAMC,EAA+B,GACrC,MAAMC,EAAwB,GAC9B,IAAK,MAAMC,KAAiBR,EAASS,WAAY,CAC/C,IAAIC,EAAgBhB,KAAKc,GACzB,GAAIE,IAAkBC,WAAaD,IAAkB,KAAM,CACzD,GAAIpC,EAAUoC,GAAgB,CAC5BA,EAAgBA,EAAcE,SAChC,CACA,GAAIZ,EAASS,WAAWD,GAAeK,OAAS,WAAY,CAC1DR,EAAyBS,KAAKJ,GAC9BH,EAAsBO,KAAKJ,GAC3BJ,EAA6BQ,KAAKN,EACpC,KAAO,CACLJ,EAAWU,KAAKtC,CAAG,QAAQgC,MAAkBE,KAC/C,CACF,CACF,CACA,GAAIL,EAAyBU,OAAS,EAAG,CACvCX,EAAWU,KAAKtC,CAAG,mBAAmB6B,EAAyBW,KAAK,SACpEZ,EAAWU,KAAKtC,CAAG,+BAA+B+B,EAAsBS,KAAK,SAC7EZ,EAAWU,KAAKtC,CAAG,sCAAsC8B,EAA6BU,KAAK,QAC7F,CAEA,MAAMC,GAAelB,IAAU,MAAQA,SAAe,OAAS,EAAIA,EAAMmB,aAAa,kBAAoBP,UAC1G,GAAIM,EAAa,CACfb,EAAWU,KAAKtC,CAAG,iBAAiByC,KACtC,CACA,OAAOzC,CAAG;;;qBAGKyB;;;;OAIdG;;yCAGH,EACA,OAAOb,CACT,CAxDwC,CAwDtCtB,GACFsB,EAAqB4B,UAAY,KACjC9C,EAAWkB,EACX,OAAOlB,CACT,EAAG"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type AppComponent from "sap/fe/core/AppComponent";
|
|
2
|
+
import BuildingBlockBase from "sap/fe/core/buildingBlocks/BuildingBlockBase";
|
|
3
|
+
import type { XMLProcessorTypeValue } from "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor";
|
|
4
|
+
import { registerBuildingBlock, xml } from "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor";
|
|
5
|
+
import { storeRuntimeBlock } from "sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment";
|
|
6
|
+
import { isContext } from "sap/fe/core/helpers/TypeGuards";
|
|
7
|
+
import type Control from "sap/ui/core/Control";
|
|
8
|
+
import type View from "sap/ui/core/mvc/View";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Base class for runtime building blocks
|
|
12
|
+
*/
|
|
13
|
+
export default class RuntimeBuildingBlock extends BuildingBlockBase {
|
|
14
|
+
public static readonly isRuntime = true;
|
|
15
|
+
|
|
16
|
+
getContent?(containingView: View, appComponent: AppComponent): Control | undefined;
|
|
17
|
+
|
|
18
|
+
static register() {
|
|
19
|
+
registerBuildingBlock(this);
|
|
20
|
+
storeRuntimeBlock(this);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public getTemplate(oNode?: Element): string | Promise<string | undefined> | undefined {
|
|
24
|
+
const metadata = (this.constructor as typeof BuildingBlockBase).metadata;
|
|
25
|
+
|
|
26
|
+
const className = `${metadata.namespace}.${metadata.name}`;
|
|
27
|
+
const extraProps = [];
|
|
28
|
+
// Function are defined as string but need to be resolved by UI5, as such we store them in an `event` property and will redispatch them later
|
|
29
|
+
const functionHolderDefinition = [];
|
|
30
|
+
const propertiesAssignedToFunction = [];
|
|
31
|
+
const functionStringInOrder = [];
|
|
32
|
+
for (const propertiesKey in metadata.properties) {
|
|
33
|
+
let propertyValue = this[propertiesKey as keyof this] as unknown as XMLProcessorTypeValue;
|
|
34
|
+
if (propertyValue !== undefined && propertyValue !== null) {
|
|
35
|
+
if (isContext(propertyValue)) {
|
|
36
|
+
propertyValue = propertyValue.getPath();
|
|
37
|
+
}
|
|
38
|
+
if (metadata.properties[propertiesKey].type === "function") {
|
|
39
|
+
functionHolderDefinition.push(propertyValue);
|
|
40
|
+
functionStringInOrder.push(propertyValue);
|
|
41
|
+
propertiesAssignedToFunction.push(propertiesKey);
|
|
42
|
+
} else {
|
|
43
|
+
extraProps.push(xml`feBB:${propertiesKey}="${propertyValue}"`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (functionHolderDefinition.length > 0) {
|
|
48
|
+
extraProps.push(xml`functionHolder="${functionHolderDefinition.join(";")}"`);
|
|
49
|
+
extraProps.push(xml`feBB:functionStringInOrder="${functionStringInOrder.join(",")}"`);
|
|
50
|
+
extraProps.push(xml`feBB:propertiesAssignedToFunction="${propertiesAssignedToFunction.join(",")}"`);
|
|
51
|
+
}
|
|
52
|
+
// core:require need to be defined on the node itself to be picked up due to the templating step
|
|
53
|
+
const coreRequire = oNode?.getAttribute("core:require") || undefined;
|
|
54
|
+
if (coreRequire) {
|
|
55
|
+
extraProps.push(xml`core:require="${coreRequire}"`);
|
|
56
|
+
}
|
|
57
|
+
return xml`<feBB:RuntimeBuildingBlockFragment
|
|
58
|
+
xmlns:core="sap.ui.core"
|
|
59
|
+
xmlns:feBB="sap.fe.core.buildingBlocks"
|
|
60
|
+
fragmentName="${className}"
|
|
61
|
+
|
|
62
|
+
id="{this>id}"
|
|
63
|
+
type="FE_COMPONENTS"
|
|
64
|
+
${extraProps}
|
|
65
|
+
>
|
|
66
|
+
</feBB:RuntimeBuildingBlockFragment>`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/jsx-runtime/jsx", "sap/ui/base/ManagedObject", "sap/ui/core/Component", "sap/ui/core/Fragment"], function (CommonUtils, BindingToolkit, ClassSupport, jsx, ManagedObject, Component, Fragment) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _class, _class2, _descriptor;
|
|
9
|
+
var _exports = {};
|
|
10
|
+
var event = ClassSupport.event;
|
|
11
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
12
|
+
var resolveBindingString = BindingToolkit.resolveBindingString;
|
|
13
|
+
function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
|
|
14
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
15
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
16
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
17
|
+
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
18
|
+
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
|
|
19
|
+
let RuntimeBuildingBlockFragment = (
|
|
20
|
+
/**
|
|
21
|
+
* Internal extension to the Fragment class in order to add some place to hold functions for runtime building blocks
|
|
22
|
+
*/
|
|
23
|
+
_dec = defineUI5Class("sap.fe.core.buildingBlocks.RuntimeBuildingBlockFragment"), _dec2 = event(), _dec(_class = (_class2 = /*#__PURE__*/function (_Fragment) {
|
|
24
|
+
_inheritsLoose(RuntimeBuildingBlockFragment, _Fragment);
|
|
25
|
+
function RuntimeBuildingBlockFragment() {
|
|
26
|
+
var _this;
|
|
27
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28
|
+
args[_key] = arguments[_key];
|
|
29
|
+
}
|
|
30
|
+
_this = _Fragment.call(this, ...args) || this;
|
|
31
|
+
_initializerDefineProperty(_this, "functionHolder", _descriptor, _assertThisInitialized(_this));
|
|
32
|
+
return _this;
|
|
33
|
+
}
|
|
34
|
+
_exports = RuntimeBuildingBlockFragment;
|
|
35
|
+
return RuntimeBuildingBlockFragment;
|
|
36
|
+
}(Fragment), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "functionHolder", [_dec2], {
|
|
37
|
+
configurable: true,
|
|
38
|
+
enumerable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
initializer: null
|
|
41
|
+
})), _class2)) || _class);
|
|
42
|
+
_exports = RuntimeBuildingBlockFragment;
|
|
43
|
+
const RUNTIME_BLOCKS = {};
|
|
44
|
+
/**
|
|
45
|
+
* Stores the class of a runtime building block to be loaded whenever the building block is used at runtime.
|
|
46
|
+
*
|
|
47
|
+
* @param BuildingBlockClass
|
|
48
|
+
*/
|
|
49
|
+
function storeRuntimeBlock(BuildingBlockClass) {
|
|
50
|
+
RUNTIME_BLOCKS[`${BuildingBlockClass.metadata.namespace}.${BuildingBlockClass.metadata.name}`] = BuildingBlockClass;
|
|
51
|
+
}
|
|
52
|
+
_exports.storeRuntimeBlock = storeRuntimeBlock;
|
|
53
|
+
RuntimeBuildingBlockFragment.registerType("FE_COMPONENTS", {
|
|
54
|
+
load: async function (mSettings) {
|
|
55
|
+
return Promise.resolve(RUNTIME_BLOCKS[mSettings.fragmentName]);
|
|
56
|
+
},
|
|
57
|
+
init: function (mSettings) {
|
|
58
|
+
var _mSettings$customData, _mSettings$customData2, _mSettings$customData3, _mSettings$customData4, _mSettings$containing, _mSettings$containing2, _mSettings$containing3, _mSettings$containing4, _feCustomData$functio, _feCustomData$propert;
|
|
59
|
+
let BuildingBlockClass = mSettings.fragmentContent;
|
|
60
|
+
if (BuildingBlockClass === undefined) {
|
|
61
|
+
// In some case we might have been called here synchronously (unstash case for instance), which means we didn't go through the load function
|
|
62
|
+
BuildingBlockClass = RUNTIME_BLOCKS[mSettings.fragmentName];
|
|
63
|
+
}
|
|
64
|
+
if (BuildingBlockClass === undefined) {
|
|
65
|
+
throw new Error(`No building block class for runtime building block ${mSettings.fragmentName} found`);
|
|
66
|
+
}
|
|
67
|
+
const classSettings = {};
|
|
68
|
+
const feCustomData = ((_mSettings$customData = mSettings.customData) === null || _mSettings$customData === void 0 ? void 0 : (_mSettings$customData2 = _mSettings$customData[0]) === null || _mSettings$customData2 === void 0 ? void 0 : (_mSettings$customData3 = _mSettings$customData2.mProperties) === null || _mSettings$customData3 === void 0 ? void 0 : (_mSettings$customData4 = _mSettings$customData3.value) === null || _mSettings$customData4 === void 0 ? void 0 : _mSettings$customData4["sap.fe.core.buildingBlocks"]) || {};
|
|
69
|
+
delete mSettings.customData;
|
|
70
|
+
const functionHolder = mSettings.functionHolder ?? [];
|
|
71
|
+
delete mSettings.functionHolder;
|
|
72
|
+
|
|
73
|
+
// containingView can also be a fragment, so we have to use the controller to be sure to get the actual view
|
|
74
|
+
const containingView = ((_mSettings$containing = (_mSettings$containing2 = mSettings.containingView).getController) === null || _mSettings$containing === void 0 ? void 0 : (_mSettings$containing3 = (_mSettings$containing4 = _mSettings$containing.call(_mSettings$containing2)).getView) === null || _mSettings$containing3 === void 0 ? void 0 : _mSettings$containing3.call(_mSettings$containing4)) ?? mSettings.containingView;
|
|
75
|
+
const pageComponent = Component.getOwnerComponentFor(containingView);
|
|
76
|
+
const appComponent = CommonUtils.getAppComponent(containingView);
|
|
77
|
+
const metaModel = appComponent.getMetaModel();
|
|
78
|
+
const pageModel = pageComponent.getModel("_pageModel");
|
|
79
|
+
const functionStringInOrder = (_feCustomData$functio = feCustomData.functionStringInOrder) === null || _feCustomData$functio === void 0 ? void 0 : _feCustomData$functio.split(",");
|
|
80
|
+
const propertiesAssignedToFunction = (_feCustomData$propert = feCustomData.propertiesAssignedToFunction) === null || _feCustomData$propert === void 0 ? void 0 : _feCustomData$propert.split(",");
|
|
81
|
+
for (const propertyName in BuildingBlockClass.metadata.properties) {
|
|
82
|
+
const propertyMetadata = BuildingBlockClass.metadata.properties[propertyName];
|
|
83
|
+
const pageModelContext = pageModel.createBindingContext(feCustomData[propertyName]);
|
|
84
|
+
if (pageModelContext === null) {
|
|
85
|
+
// value cannot be resolved, so it is either a runtime binding or a constant
|
|
86
|
+
let value = feCustomData[propertyName];
|
|
87
|
+
if (typeof value === "string") {
|
|
88
|
+
if (propertyMetadata.bindable !== true) {
|
|
89
|
+
// runtime bindings are not allowed, so convert strings into actual primitive types
|
|
90
|
+
switch (propertyMetadata.type) {
|
|
91
|
+
case "boolean":
|
|
92
|
+
value = value === "true";
|
|
93
|
+
break;
|
|
94
|
+
case "number":
|
|
95
|
+
value = Number(value);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
// runtime bindings are allowed, so resolve the values as BindingToolkit expressions
|
|
100
|
+
value = resolveBindingString(value, propertyMetadata.type);
|
|
101
|
+
}
|
|
102
|
+
} else if (propertyMetadata.type === "function") {
|
|
103
|
+
const functionIndex = propertiesAssignedToFunction.indexOf(propertyName);
|
|
104
|
+
const functionString = functionStringInOrder[functionIndex];
|
|
105
|
+
const targetFunction = functionHolder === null || functionHolder === void 0 ? void 0 : functionHolder.find(functionDef => {
|
|
106
|
+
var _functionDef$;
|
|
107
|
+
return ((_functionDef$ = functionDef[0]) === null || _functionDef$ === void 0 ? void 0 : _functionDef$._sapui_handlerName) === functionString;
|
|
108
|
+
});
|
|
109
|
+
// We use the _sapui_handlerName to identify which function is the one we want to bind here
|
|
110
|
+
if (targetFunction && targetFunction.length > 1) {
|
|
111
|
+
value = targetFunction[0].bind(targetFunction[1]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
classSettings[propertyName] = value;
|
|
115
|
+
} else if (pageModelContext.getObject() !== undefined) {
|
|
116
|
+
// get value from page model
|
|
117
|
+
classSettings[propertyName] = pageModelContext.getObject();
|
|
118
|
+
} else {
|
|
119
|
+
// bind to metamodel
|
|
120
|
+
classSettings[propertyName] = metaModel.createBindingContext(feCustomData[propertyName]);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return ManagedObject.runWithPreprocessors(() => {
|
|
124
|
+
const renderedControl = jsx.withContext({
|
|
125
|
+
view: containingView,
|
|
126
|
+
appComponent: appComponent
|
|
127
|
+
}, () => {
|
|
128
|
+
var _getContent, _ref;
|
|
129
|
+
const templateProcessingSettings = {
|
|
130
|
+
models: {
|
|
131
|
+
"sap.fe.i18n": containingView.getModel("sap.fe.i18n")
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
return (_getContent = (_ref = new BuildingBlockClass(classSettings, {}, templateProcessingSettings)).getContent) === null || _getContent === void 0 ? void 0 : _getContent.call(_ref, containingView, appComponent);
|
|
135
|
+
});
|
|
136
|
+
if (!this._bAsync) {
|
|
137
|
+
this._aContent = renderedControl;
|
|
138
|
+
}
|
|
139
|
+
return renderedControl;
|
|
140
|
+
}, {
|
|
141
|
+
id: function (sId) {
|
|
142
|
+
return containingView.createId(sId);
|
|
143
|
+
},
|
|
144
|
+
settings: function (controlSettings) {
|
|
145
|
+
const allAssociations = this.getMetadata().getAssociations();
|
|
146
|
+
for (const associationDetailName of Object.keys(allAssociations)) {
|
|
147
|
+
if (controlSettings[associationDetailName] !== undefined) {
|
|
148
|
+
// The associated elements are indicated via local IDs; we need to change the references to global ones
|
|
149
|
+
const associations = Array.isArray(controlSettings[associationDetailName]) ? controlSettings[associationDetailName] : [controlSettings[associationDetailName]];
|
|
150
|
+
|
|
151
|
+
// Create global IDs for associations given as strings, not for already resolved ManagedObjects
|
|
152
|
+
controlSettings[associationDetailName] = associations.map(association => typeof association === "string" ? mSettings.containingView.createId(association) : association);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return controlSettings;
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
return _exports;
|
|
161
|
+
}, false);
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50IiwiZGVmaW5lVUk1Q2xhc3MiLCJldmVudCIsIkZyYWdtZW50IiwiUlVOVElNRV9CTE9DS1MiLCJzdG9yZVJ1bnRpbWVCbG9jayIsIkJ1aWxkaW5nQmxvY2tDbGFzcyIsIm1ldGFkYXRhIiwibmFtZXNwYWNlIiwibmFtZSIsInJlZ2lzdGVyVHlwZSIsImxvYWQiLCJtU2V0dGluZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZyYWdtZW50TmFtZSIsImluaXQiLCJmcmFnbWVudENvbnRlbnQiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNsYXNzU2V0dGluZ3MiLCJmZUN1c3RvbURhdGEiLCJjdXN0b21EYXRhIiwibVByb3BlcnRpZXMiLCJ2YWx1ZSIsImZ1bmN0aW9uSG9sZGVyIiwiY29udGFpbmluZ1ZpZXciLCJnZXRDb250cm9sbGVyIiwiZ2V0VmlldyIsInBhZ2VDb21wb25lbnQiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsImFwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwicGFnZU1vZGVsIiwiZ2V0TW9kZWwiLCJmdW5jdGlvblN0cmluZ0luT3JkZXIiLCJzcGxpdCIsInByb3BlcnRpZXNBc3NpZ25lZFRvRnVuY3Rpb24iLCJwcm9wZXJ0eU5hbWUiLCJwcm9wZXJ0aWVzIiwicHJvcGVydHlNZXRhZGF0YSIsInBhZ2VNb2RlbENvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImJpbmRhYmxlIiwidHlwZSIsIk51bWJlciIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiZnVuY3Rpb25JbmRleCIsImluZGV4T2YiLCJmdW5jdGlvblN0cmluZyIsInRhcmdldEZ1bmN0aW9uIiwiZmluZCIsImZ1bmN0aW9uRGVmIiwiX3NhcHVpX2hhbmRsZXJOYW1lIiwibGVuZ3RoIiwiYmluZCIsImdldE9iamVjdCIsIk1hbmFnZWRPYmplY3QiLCJydW5XaXRoUHJlcHJvY2Vzc29ycyIsInJlbmRlcmVkQ29udHJvbCIsImpzeCIsIndpdGhDb250ZXh0IiwidmlldyIsInRlbXBsYXRlUHJvY2Vzc2luZ1NldHRpbmdzIiwibW9kZWxzIiwiZ2V0Q29udGVudCIsIl9iQXN5bmMiLCJfYUNvbnRlbnQiLCJpZCIsInNJZCIsImNyZWF0ZUlkIiwic2V0dGluZ3MiLCJjb250cm9sU2V0dGluZ3MiLCJhbGxBc3NvY2lhdGlvbnMiLCJnZXRNZXRhZGF0YSIsImdldEFzc29jaWF0aW9ucyIsImFzc29jaWF0aW9uRGV0YWlsTmFtZSIsIk9iamVjdCIsImtleXMiLCJhc3NvY2lhdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJhc3NvY2lhdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiUnVudGltZUJ1aWxkaW5nQmxvY2tGcmFnbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgdHlwZSBSdW50aW1lQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvUnVudGltZUJ1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IHJlc29sdmVCaW5kaW5nU3RyaW5nIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBGcmFnbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRnJhZ21lbnRcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSB7IE1hbmFnZWRPYmplY3RFeCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi90eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBleHRlbnNpb24gdG8gdGhlIEZyYWdtZW50IGNsYXNzIGluIG9yZGVyIHRvIGFkZCBzb21lIHBsYWNlIHRvIGhvbGQgZnVuY3Rpb25zIGZvciBydW50aW1lIGJ1aWxkaW5nIGJsb2Nrc1xuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrcy5SdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50IGV4dGVuZHMgRnJhZ21lbnQge1xuXHQvKlxuXHQgKiBFdmVudCB0byBob2xkIGFuZCByZXNvbHZlIGZ1bmN0aW9ucyBmb3IgcnVudGltZSBidWlsZGluZyBibG9ja3Ncblx0ICovXG5cdEBldmVudCgpXG5cdGZ1bmN0aW9uSG9sZGVyITogRnVuY3Rpb247XG59XG5cbnR5cGUgRnJhZ21lbnRDdXN0b21EYXRhID0ge1xuXHRtUHJvcGVydGllczoge1xuXHRcdHZhbHVlOiB7XG5cdFx0XHRcInNhcC5mZS5jb3JlLmJ1aWxkaW5nQmxvY2tzXCI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRcdH07XG5cdH07XG59O1xuXG50eXBlIEZFQ29tcG9uZW50RnJhZ21lbnRTZXR0aW5ncyA9IHtcblx0ZnJhZ21lbnROYW1lOiBzdHJpbmc7XG5cdGZyYWdtZW50Q29udGVudD86IHR5cGVvZiBSdW50aW1lQnVpbGRpbmdCbG9jaztcblx0Y29udGFpbmluZ1ZpZXc6IFZpZXc7XG5cdGN1c3RvbURhdGE/OiBGcmFnbWVudEN1c3RvbURhdGFbXTtcblx0ZnVuY3Rpb25Ib2xkZXI/OiBGdW5jdGlvbldpdGhIYW5kbGVyW11bXTtcbn07XG5cbnR5cGUgRnVuY3Rpb25XaXRoSGFuZGxlciA9IEZ1bmN0aW9uICYge1xuXHRfc2FwdWlfaGFuZGxlck5hbWU/OiBzdHJpbmc7XG59O1xudHlwZSBGcmFnbWVudFdpdGhJbnRlcm5hbHMgPSB7XG5cdF9iQXN5bmM6IGJvb2xlYW47XG5cdF9hQ29udGVudDogQ29udHJvbCB8IENvbnRyb2xbXTtcbn07XG5cbmNvbnN0IFJVTlRJTUVfQkxPQ0tTOiBSZWNvcmQ8c3RyaW5nLCB0eXBlb2YgUnVudGltZUJ1aWxkaW5nQmxvY2s+ID0ge307XG4vKipcbiAqIFN0b3JlcyB0aGUgY2xhc3Mgb2YgYSBydW50aW1lIGJ1aWxkaW5nIGJsb2NrIHRvIGJlIGxvYWRlZCB3aGVuZXZlciB0aGUgYnVpbGRpbmcgYmxvY2sgaXMgdXNlZCBhdCBydW50aW1lLlxuICpcbiAqIEBwYXJhbSBCdWlsZGluZ0Jsb2NrQ2xhc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlUnVudGltZUJsb2NrKEJ1aWxkaW5nQmxvY2tDbGFzczogdHlwZW9mIFJ1bnRpbWVCdWlsZGluZ0Jsb2NrKSB7XG5cdFJVTlRJTUVfQkxPQ0tTW2Ake0J1aWxkaW5nQmxvY2tDbGFzcy5tZXRhZGF0YS5uYW1lc3BhY2V9LiR7QnVpbGRpbmdCbG9ja0NsYXNzLm1ldGFkYXRhLm5hbWV9YF0gPSBCdWlsZGluZ0Jsb2NrQ2xhc3M7XG59XG5cblJ1bnRpbWVCdWlsZGluZ0Jsb2NrRnJhZ21lbnQucmVnaXN0ZXJUeXBlKFwiRkVfQ09NUE9ORU5UU1wiLCB7XG5cdGxvYWQ6IGFzeW5jIGZ1bmN0aW9uIChtU2V0dGluZ3M6IEZFQ29tcG9uZW50RnJhZ21lbnRTZXR0aW5ncykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoUlVOVElNRV9CTE9DS1NbbVNldHRpbmdzLmZyYWdtZW50TmFtZV0pO1xuXHR9LFxuXHRpbml0OiBmdW5jdGlvbiAodGhpczogRnJhZ21lbnRXaXRoSW50ZXJuYWxzLCBtU2V0dGluZ3M6IEZFQ29tcG9uZW50RnJhZ21lbnRTZXR0aW5ncykge1xuXHRcdGxldCBCdWlsZGluZ0Jsb2NrQ2xhc3MgPSBtU2V0dGluZ3MuZnJhZ21lbnRDb250ZW50O1xuXHRcdGlmIChCdWlsZGluZ0Jsb2NrQ2xhc3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly8gSW4gc29tZSBjYXNlIHdlIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQgaGVyZSBzeW5jaHJvbm91c2x5ICh1bnN0YXNoIGNhc2UgZm9yIGluc3RhbmNlKSwgd2hpY2ggbWVhbnMgd2UgZGlkbid0IGdvIHRocm91Z2ggdGhlIGxvYWQgZnVuY3Rpb25cblx0XHRcdEJ1aWxkaW5nQmxvY2tDbGFzcyA9IFJVTlRJTUVfQkxPQ0tTW21TZXR0aW5ncy5mcmFnbWVudE5hbWVdO1xuXHRcdH1cblx0XHRpZiAoQnVpbGRpbmdCbG9ja0NsYXNzID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgTm8gYnVpbGRpbmcgYmxvY2sgY2xhc3MgZm9yIHJ1bnRpbWUgYnVpbGRpbmcgYmxvY2sgJHttU2V0dGluZ3MuZnJhZ21lbnROYW1lfSBmb3VuZGApO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNsYXNzU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cdFx0Y29uc3QgZmVDdXN0b21EYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gbVNldHRpbmdzLmN1c3RvbURhdGE/LlswXT8ubVByb3BlcnRpZXM/LnZhbHVlPy5bXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrc1wiXSB8fCB7fTtcblx0XHRkZWxldGUgbVNldHRpbmdzLmN1c3RvbURhdGE7XG5cdFx0Y29uc3QgZnVuY3Rpb25Ib2xkZXI6IEZ1bmN0aW9uV2l0aEhhbmRsZXJbXVtdID0gbVNldHRpbmdzLmZ1bmN0aW9uSG9sZGVyID8/IFtdO1xuXHRcdGRlbGV0ZSBtU2V0dGluZ3MuZnVuY3Rpb25Ib2xkZXI7XG5cblx0XHQvLyBjb250YWluaW5nVmlldyBjYW4gYWxzbyBiZSBhIGZyYWdtZW50LCBzbyB3ZSBoYXZlIHRvIHVzZSB0aGUgY29udHJvbGxlciB0byBiZSBzdXJlIHRvIGdldCB0aGUgYWN0dWFsIHZpZXdcblx0XHRjb25zdCBjb250YWluaW5nVmlldyA9IG1TZXR0aW5ncy5jb250YWluaW5nVmlldy5nZXRDb250cm9sbGVyPy4oKS5nZXRWaWV3Py4oKSA/PyBtU2V0dGluZ3MuY29udGFpbmluZ1ZpZXc7XG5cdFx0Y29uc3QgcGFnZUNvbXBvbmVudCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihjb250YWluaW5nVmlldykgYXMgVGVtcGxhdGVDb21wb25lbnQ7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KGNvbnRhaW5pbmdWaWV3KTtcblxuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IGFwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBwYWdlTW9kZWwgPSBwYWdlQ29tcG9uZW50LmdldE1vZGVsKFwiX3BhZ2VNb2RlbFwiKTtcblxuXHRcdGNvbnN0IGZ1bmN0aW9uU3RyaW5nSW5PcmRlcjogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBmZUN1c3RvbURhdGEuZnVuY3Rpb25TdHJpbmdJbk9yZGVyPy5zcGxpdChcIixcIik7XG5cdFx0Y29uc3QgcHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbjogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBmZUN1c3RvbURhdGEucHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbj8uc3BsaXQoXCIsXCIpO1xuXHRcdGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIEJ1aWxkaW5nQmxvY2tDbGFzcy5tZXRhZGF0YS5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eU1ldGFkYXRhID0gQnVpbGRpbmdCbG9ja0NsYXNzLm1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcblx0XHRcdGNvbnN0IHBhZ2VNb2RlbENvbnRleHQgPSBwYWdlTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoZmVDdXN0b21EYXRhW3Byb3BlcnR5TmFtZV0pO1xuXG5cdFx0XHRpZiAocGFnZU1vZGVsQ29udGV4dCA9PT0gbnVsbCkge1xuXHRcdFx0XHQvLyB2YWx1ZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHNvIGl0IGlzIGVpdGhlciBhIHJ1bnRpbWUgYmluZGluZyBvciBhIGNvbnN0YW50XG5cdFx0XHRcdGxldCB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCA9XG5cdFx0XHRcdFx0ZmVDdXN0b21EYXRhW3Byb3BlcnR5TmFtZV07XG5cblx0XHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eU1ldGFkYXRhLmJpbmRhYmxlICE9PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHQvLyBydW50aW1lIGJpbmRpbmdzIGFyZSBub3QgYWxsb3dlZCwgc28gY29udmVydCBzdHJpbmdzIGludG8gYWN0dWFsIHByaW1pdGl2ZSB0eXBlc1xuXHRcdFx0XHRcdFx0c3dpdGNoIChwcm9wZXJ0eU1ldGFkYXRhLnR5cGUpIHtcblx0XHRcdFx0XHRcdFx0Y2FzZSBcImJvb2xlYW5cIjpcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBcInRydWVcIjtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIm51bWJlclwiOlxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Ly8gcnVudGltZSBiaW5kaW5ncyBhcmUgYWxsb3dlZCwgc28gcmVzb2x2ZSB0aGUgdmFsdWVzIGFzIEJpbmRpbmdUb29sa2l0IGV4cHJlc3Npb25zXG5cdFx0XHRcdFx0XHR2YWx1ZSA9IHJlc29sdmVCaW5kaW5nU3RyaW5nKHZhbHVlLCBwcm9wZXJ0eU1ldGFkYXRhLnR5cGUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eU1ldGFkYXRhLnR5cGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0XHRcdGNvbnN0IGZ1bmN0aW9uSW5kZXggPSBwcm9wZXJ0aWVzQXNzaWduZWRUb0Z1bmN0aW9uLmluZGV4T2YocHJvcGVydHlOYW1lKTtcblx0XHRcdFx0XHRjb25zdCBmdW5jdGlvblN0cmluZyA9IGZ1bmN0aW9uU3RyaW5nSW5PcmRlcltmdW5jdGlvbkluZGV4XTtcblx0XHRcdFx0XHRjb25zdCB0YXJnZXRGdW5jdGlvbiA9IGZ1bmN0aW9uSG9sZGVyPy5maW5kKChmdW5jdGlvbkRlZikgPT4gZnVuY3Rpb25EZWZbMF0/Ll9zYXB1aV9oYW5kbGVyTmFtZSA9PT0gZnVuY3Rpb25TdHJpbmcpO1xuXHRcdFx0XHRcdC8vIFdlIHVzZSB0aGUgX3NhcHVpX2hhbmRsZXJOYW1lIHRvIGlkZW50aWZ5IHdoaWNoIGZ1bmN0aW9uIGlzIHRoZSBvbmUgd2Ugd2FudCB0byBiaW5kIGhlcmVcblx0XHRcdFx0XHRpZiAodGFyZ2V0RnVuY3Rpb24gJiYgdGFyZ2V0RnVuY3Rpb24ubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0dmFsdWUgPSB0YXJnZXRGdW5jdGlvblswXS5iaW5kKHRhcmdldEZ1bmN0aW9uWzFdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjbGFzc1NldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAocGFnZU1vZGVsQ29udGV4dC5nZXRPYmplY3QoKSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIGdldCB2YWx1ZSBmcm9tIHBhZ2UgbW9kZWxcblx0XHRcdFx0Y2xhc3NTZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gcGFnZU1vZGVsQ29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIGJpbmQgdG8gbWV0YW1vZGVsXG5cdFx0XHRcdGNsYXNzU2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChmZUN1c3RvbURhdGFbcHJvcGVydHlOYW1lXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIChNYW5hZ2VkT2JqZWN0IGFzIE1hbmFnZWRPYmplY3RFeCkucnVuV2l0aFByZXByb2Nlc3NvcnMoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJlbmRlcmVkQ29udHJvbCA9IGpzeC53aXRoQ29udGV4dCh7IHZpZXc6IGNvbnRhaW5pbmdWaWV3LCBhcHBDb21wb25lbnQ6IGFwcENvbXBvbmVudCB9LCAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdGVtcGxhdGVQcm9jZXNzaW5nU2V0dGluZ3MgPSB7XG5cdFx0XHRcdFx0XHRtb2RlbHM6IHtcblx0XHRcdFx0XHRcdFx0XCJzYXAuZmUuaTE4blwiOiBjb250YWluaW5nVmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGFzIFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3M7XG5cdFx0XHRcdFx0cmV0dXJuIG5ldyBCdWlsZGluZ0Jsb2NrQ2xhc3MhKGNsYXNzU2V0dGluZ3MsIHt9LCB0ZW1wbGF0ZVByb2Nlc3NpbmdTZXR0aW5ncykuZ2V0Q29udGVudD8uKFxuXHRcdFx0XHRcdFx0Y29udGFpbmluZ1ZpZXcsXG5cdFx0XHRcdFx0XHRhcHBDb21wb25lbnRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0aWYgKCF0aGlzLl9iQXN5bmMpIHtcblx0XHRcdFx0XHR0aGlzLl9hQ29udGVudCA9IHJlbmRlcmVkQ29udHJvbDtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gcmVuZGVyZWRDb250cm9sO1xuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0aWQ6IGZ1bmN0aW9uIChzSWQ6IHN0cmluZykge1xuXHRcdFx0XHRcdHJldHVybiBjb250YWluaW5nVmlldy5jcmVhdGVJZChzSWQpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzZXR0aW5nczogZnVuY3Rpb24gKGNvbnRyb2xTZXR0aW5nczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgTWFuYWdlZE9iamVjdCB8IChzdHJpbmcgfCBNYW5hZ2VkT2JqZWN0KVtdPikge1xuXHRcdFx0XHRcdGNvbnN0IGFsbEFzc29jaWF0aW9ucyA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRBc3NvY2lhdGlvbnMoKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGFzc29jaWF0aW9uRGV0YWlsTmFtZSBvZiBPYmplY3Qua2V5cyhhbGxBc3NvY2lhdGlvbnMpKSB7XG5cdFx0XHRcdFx0XHRpZiAoY29udHJvbFNldHRpbmdzW2Fzc29jaWF0aW9uRGV0YWlsTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHQvLyBUaGUgYXNzb2NpYXRlZCBlbGVtZW50cyBhcmUgaW5kaWNhdGVkIHZpYSBsb2NhbCBJRHM7IHdlIG5lZWQgdG8gY2hhbmdlIHRoZSByZWZlcmVuY2VzIHRvIGdsb2JhbCBvbmVzXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGFzc29jaWF0aW9ucyA9IChcblx0XHRcdFx0XHRcdFx0XHRBcnJheS5pc0FycmF5KGNvbnRyb2xTZXR0aW5nc1thc3NvY2lhdGlvbkRldGFpbE5hbWVdKVxuXHRcdFx0XHRcdFx0XHRcdFx0PyBjb250cm9sU2V0dGluZ3NbYXNzb2NpYXRpb25EZXRhaWxOYW1lXVxuXHRcdFx0XHRcdFx0XHRcdFx0OiBbY29udHJvbFNldHRpbmdzW2Fzc29jaWF0aW9uRGV0YWlsTmFtZV1dXG5cdFx0XHRcdFx0XHRcdCkgYXMgKHN0cmluZyB8IE1hbmFnZWRPYmplY3QpW107XG5cblx0XHRcdFx0XHRcdFx0Ly8gQ3JlYXRlIGdsb2JhbCBJRHMgZm9yIGFzc29jaWF0aW9ucyBnaXZlbiBhcyBzdHJpbmdzLCBub3QgZm9yIGFscmVhZHkgcmVzb2x2ZWQgTWFuYWdlZE9iamVjdHNcblx0XHRcdFx0XHRcdFx0Y29udHJvbFNldHRpbmdzW2Fzc29jaWF0aW9uRGV0YWlsTmFtZV0gPSBhc3NvY2lhdGlvbnMubWFwKChhc3NvY2lhdGlvbjogc3RyaW5nIHwgTWFuYWdlZE9iamVjdCkgPT5cblx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgYXNzb2NpYXRpb24gPT09IFwic3RyaW5nXCIgPyBtU2V0dGluZ3MuY29udGFpbmluZ1ZpZXcuY3JlYXRlSWQoYXNzb2NpYXRpb24pIDogYXNzb2NpYXRpb25cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGNvbnRyb2xTZXR0aW5ncztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdCk7XG5cdH1cbn0pO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7TUFvQnFCQSw0QkFBNEI7RUFKakQ7QUFD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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/CommonUtils","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ClassSupport","sap/fe/core/jsx-runtime/jsx","sap/ui/base/ManagedObject","sap/ui/core/Component","sap/ui/core/Fragment"],function(e,n,t,i,r,o,a){"use strict";var l,s,c,u,d;var f={};var p=t.event;var g=t.defineUI5Class;var v=n.resolveBindingString;function b(e,n,t,i){if(!t)return;Object.defineProperty(e,n,{enumerable:t.enumerable,configurable:t.configurable,writable:t.writable,value:t.initializer?t.initializer.call(i):void 0})}function m(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function h(e,n){e.prototype=Object.create(n.prototype);e.prototype.constructor=e;y(e,n)}function y(e,n){y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(n,t){n.__proto__=t;return n};return y(e,n)}function w(e,n,t,i,r){var o={};Object.keys(i).forEach(function(e){o[e]=i[e]});o.enumerable=!!o.enumerable;o.configurable=!!o.configurable;if("value"in o||o.initializer){o.writable=true}o=t.slice().reverse().reduce(function(t,i){return i(e,n,t)||t},o);if(r&&o.initializer!==void 0){o.value=o.initializer?o.initializer.call(r):void 0;o.initializer=undefined}if(o.initializer===void 0){Object.defineProperty(e,n,o);o=null}return o}function O(e,n){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}let C=(l=g("sap.fe.core.buildingBlocks.RuntimeBuildingBlockFragment"),s=p(),l(c=(u=function(e){h(n,e);function n(){var n;for(var t=arguments.length,i=new Array(t),r=0;r<t;r++){i[r]=arguments[r]}n=e.call(this,...i)||this;b(n,"functionHolder",d,m(n));return n}f=n;return n}(a),d=w(u.prototype,"functionHolder",[s],{configurable:true,enumerable:true,writable:true,initializer:null}),u))||c);f=C;const j={};function k(e){j[`${e.metadata.namespace}.${e.metadata.name}`]=e}f.storeRuntimeBlock=k;C.registerType("FE_COMPONENTS",{load:async function(e){return Promise.resolve(j[e.fragmentName])},init:function(n){var t,a,l,s,c,u,d,f,p,g;let b=n.fragmentContent;if(b===undefined){b=j[n.fragmentName]}if(b===undefined){throw new Error(`No building block class for runtime building block ${n.fragmentName} found`)}const m={};const h=((t=n.customData)===null||t===void 0?void 0:(a=t[0])===null||a===void 0?void 0:(l=a.mProperties)===null||l===void 0?void 0:(s=l.value)===null||s===void 0?void 0:s["sap.fe.core.buildingBlocks"])||{};delete n.customData;const y=n.functionHolder??[];delete n.functionHolder;const w=((c=(u=n.containingView).getController)===null||c===void 0?void 0:(d=(f=c.call(u)).getView)===null||d===void 0?void 0:d.call(f))??n.containingView;const O=o.getOwnerComponentFor(w);const C=e.getAppComponent(w);const k=C.getMetaModel();const _=O.getModel("_pageModel");const z=(p=h.functionStringInOrder)===null||p===void 0?void 0:p.split(",");const B=(g=h.propertiesAssignedToFunction)===null||g===void 0?void 0:g.split(",");for(const e in b.metadata.properties){const n=b.metadata.properties[e];const t=_.createBindingContext(h[e]);if(t===null){let t=h[e];if(typeof t==="string"){if(n.bindable!==true){switch(n.type){case"boolean":t=t==="true";break;case"number":t=Number(t);break}}else{t=v(t,n.type)}}else if(n.type==="function"){const n=B.indexOf(e);const i=z[n];const r=y===null||y===void 0?void 0:y.find(e=>{var n;return((n=e[0])===null||n===void 0?void 0:n._sapui_handlerName)===i});if(r&&r.length>1){t=r[0].bind(r[1])}}m[e]=t}else if(t.getObject()!==undefined){m[e]=t.getObject()}else{m[e]=k.createBindingContext(h[e])}}return r.runWithPreprocessors(()=>{const e=i.withContext({view:w,appComponent:C},()=>{var e,n;const t={models:{"sap.fe.i18n":w.getModel("sap.fe.i18n")}};return(e=(n=new b(m,{},t)).getContent)===null||e===void 0?void 0:e.call(n,w,C)});if(!this._bAsync){this._aContent=e}return e},{id:function(e){return w.createId(e)},settings:function(e){const t=this.getMetadata().getAssociations();for(const i of Object.keys(t)){if(e[i]!==undefined){const t=Array.isArray(e[i])?e[i]:[e[i]];e[i]=t.map(e=>typeof e==="string"?n.containingView.createId(e):e)}}return e}})}});return f},false);
|
|
6
|
+
//# sourceMappingURL=RuntimeBuildingBlockFragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBuildingBlockFragment.js","names":["sap","ui","define","CommonUtils","BindingToolkit","ClassSupport","jsx","ManagedObject","Component","Fragment","_dec","_dec2","_class","_class2","_descriptor","_exports","event","defineUI5Class","resolveBindingString","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","RuntimeBuildingBlockFragment","_Fragment","_this","_len","arguments","length","args","Array","_key","this","RUNTIME_BLOCKS","storeRuntimeBlock","BuildingBlockClass","metadata","namespace","name","registerType","load","async","mSettings","Promise","resolve","fragmentName","init","_mSettings$customData","_mSettings$customData2","_mSettings$customData3","_mSettings$customData4","_mSettings$containing","_mSettings$containing2","_mSettings$containing3","_mSettings$containing4","_feCustomData$functio","_feCustomData$propert","fragmentContent","classSettings","feCustomData","customData","mProperties","functionHolder","containingView","getController","getView","pageComponent","getOwnerComponentFor","appComponent","getAppComponent","metaModel","getMetaModel","pageModel","getModel","functionStringInOrder","split","propertiesAssignedToFunction","propertyName","properties","propertyMetadata","pageModelContext","createBindingContext","bindable","type","Number","functionIndex","indexOf","functionString","targetFunction","find","functionDef","_functionDef$","_sapui_handlerName","getObject","runWithPreprocessors","renderedControl","withContext","view","_getContent","_ref","templateProcessingSettings","models","getContent","_bAsync","_aContent","id","sId","createId","settings","controlSettings","allAssociations","getMetadata","getAssociations","associationDetailName","associations","isArray","map","association"],"sources":["RuntimeBuildingBlockFragment-dbg.js"],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import type { TemplateProcessorSettings } from "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor";
|
|
2
|
+
import type RuntimeBuildingBlock from "sap/fe/core/buildingBlocks/RuntimeBuildingBlock";
|
|
3
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
4
|
+
import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
5
|
+
import { resolveBindingString } from "sap/fe/core/helpers/BindingToolkit";
|
|
6
|
+
import { defineUI5Class, event } from "sap/fe/core/helpers/ClassSupport";
|
|
7
|
+
import jsx from "sap/fe/core/jsx-runtime/jsx";
|
|
8
|
+
import type ResourceModel from "sap/fe/core/ResourceModel";
|
|
9
|
+
import type TemplateComponent from "sap/fe/core/TemplateComponent";
|
|
10
|
+
import ManagedObject from "sap/ui/base/ManagedObject";
|
|
11
|
+
import Component from "sap/ui/core/Component";
|
|
12
|
+
import type Control from "sap/ui/core/Control";
|
|
13
|
+
import Fragment from "sap/ui/core/Fragment";
|
|
14
|
+
import type View from "sap/ui/core/mvc/View";
|
|
15
|
+
import type { ManagedObjectEx } from "../../../../../../../types/extension_types";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal extension to the Fragment class in order to add some place to hold functions for runtime building blocks
|
|
19
|
+
*/
|
|
20
|
+
@defineUI5Class("sap.fe.core.buildingBlocks.RuntimeBuildingBlockFragment")
|
|
21
|
+
export default class RuntimeBuildingBlockFragment extends Fragment {
|
|
22
|
+
/*
|
|
23
|
+
* Event to hold and resolve functions for runtime building blocks
|
|
24
|
+
*/
|
|
25
|
+
@event()
|
|
26
|
+
functionHolder!: Function;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
type FragmentCustomData = {
|
|
30
|
+
mProperties: {
|
|
31
|
+
value: {
|
|
32
|
+
"sap.fe.core.buildingBlocks"?: Record<string, string>;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
type FEComponentFragmentSettings = {
|
|
38
|
+
fragmentName: string;
|
|
39
|
+
fragmentContent?: typeof RuntimeBuildingBlock;
|
|
40
|
+
containingView: View;
|
|
41
|
+
customData?: FragmentCustomData[];
|
|
42
|
+
functionHolder?: FunctionWithHandler[][];
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
type FunctionWithHandler = Function & {
|
|
46
|
+
_sapui_handlerName?: string;
|
|
47
|
+
};
|
|
48
|
+
type FragmentWithInternals = {
|
|
49
|
+
_bAsync: boolean;
|
|
50
|
+
_aContent: Control | Control[];
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const RUNTIME_BLOCKS: Record<string, typeof RuntimeBuildingBlock> = {};
|
|
54
|
+
/**
|
|
55
|
+
* Stores the class of a runtime building block to be loaded whenever the building block is used at runtime.
|
|
56
|
+
*
|
|
57
|
+
* @param BuildingBlockClass
|
|
58
|
+
*/
|
|
59
|
+
export function storeRuntimeBlock(BuildingBlockClass: typeof RuntimeBuildingBlock) {
|
|
60
|
+
RUNTIME_BLOCKS[`${BuildingBlockClass.metadata.namespace}.${BuildingBlockClass.metadata.name}`] = BuildingBlockClass;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
RuntimeBuildingBlockFragment.registerType("FE_COMPONENTS", {
|
|
64
|
+
load: async function (mSettings: FEComponentFragmentSettings) {
|
|
65
|
+
return Promise.resolve(RUNTIME_BLOCKS[mSettings.fragmentName]);
|
|
66
|
+
},
|
|
67
|
+
init: function (this: FragmentWithInternals, mSettings: FEComponentFragmentSettings) {
|
|
68
|
+
let BuildingBlockClass = mSettings.fragmentContent;
|
|
69
|
+
if (BuildingBlockClass === undefined) {
|
|
70
|
+
// In some case we might have been called here synchronously (unstash case for instance), which means we didn't go through the load function
|
|
71
|
+
BuildingBlockClass = RUNTIME_BLOCKS[mSettings.fragmentName];
|
|
72
|
+
}
|
|
73
|
+
if (BuildingBlockClass === undefined) {
|
|
74
|
+
throw new Error(`No building block class for runtime building block ${mSettings.fragmentName} found`);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const classSettings: Record<string, unknown> = {};
|
|
78
|
+
const feCustomData: Record<string, string> = mSettings.customData?.[0]?.mProperties?.value?.["sap.fe.core.buildingBlocks"] || {};
|
|
79
|
+
delete mSettings.customData;
|
|
80
|
+
const functionHolder: FunctionWithHandler[][] = mSettings.functionHolder ?? [];
|
|
81
|
+
delete mSettings.functionHolder;
|
|
82
|
+
|
|
83
|
+
// containingView can also be a fragment, so we have to use the controller to be sure to get the actual view
|
|
84
|
+
const containingView = mSettings.containingView.getController?.().getView?.() ?? mSettings.containingView;
|
|
85
|
+
const pageComponent = Component.getOwnerComponentFor(containingView) as TemplateComponent;
|
|
86
|
+
const appComponent = CommonUtils.getAppComponent(containingView);
|
|
87
|
+
|
|
88
|
+
const metaModel = appComponent.getMetaModel();
|
|
89
|
+
const pageModel = pageComponent.getModel("_pageModel");
|
|
90
|
+
|
|
91
|
+
const functionStringInOrder: string[] | undefined = feCustomData.functionStringInOrder?.split(",");
|
|
92
|
+
const propertiesAssignedToFunction: string[] | undefined = feCustomData.propertiesAssignedToFunction?.split(",");
|
|
93
|
+
for (const propertyName in BuildingBlockClass.metadata.properties) {
|
|
94
|
+
const propertyMetadata = BuildingBlockClass.metadata.properties[propertyName];
|
|
95
|
+
const pageModelContext = pageModel.createBindingContext(feCustomData[propertyName]);
|
|
96
|
+
|
|
97
|
+
if (pageModelContext === null) {
|
|
98
|
+
// value cannot be resolved, so it is either a runtime binding or a constant
|
|
99
|
+
let value: string | boolean | number | BindingToolkitExpression<string | boolean | number> | undefined =
|
|
100
|
+
feCustomData[propertyName];
|
|
101
|
+
|
|
102
|
+
if (typeof value === "string") {
|
|
103
|
+
if (propertyMetadata.bindable !== true) {
|
|
104
|
+
// runtime bindings are not allowed, so convert strings into actual primitive types
|
|
105
|
+
switch (propertyMetadata.type) {
|
|
106
|
+
case "boolean":
|
|
107
|
+
value = value === "true";
|
|
108
|
+
break;
|
|
109
|
+
case "number":
|
|
110
|
+
value = Number(value);
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
// runtime bindings are allowed, so resolve the values as BindingToolkit expressions
|
|
115
|
+
value = resolveBindingString(value, propertyMetadata.type);
|
|
116
|
+
}
|
|
117
|
+
} else if (propertyMetadata.type === "function") {
|
|
118
|
+
const functionIndex = propertiesAssignedToFunction.indexOf(propertyName);
|
|
119
|
+
const functionString = functionStringInOrder[functionIndex];
|
|
120
|
+
const targetFunction = functionHolder?.find((functionDef) => functionDef[0]?._sapui_handlerName === functionString);
|
|
121
|
+
// We use the _sapui_handlerName to identify which function is the one we want to bind here
|
|
122
|
+
if (targetFunction && targetFunction.length > 1) {
|
|
123
|
+
value = targetFunction[0].bind(targetFunction[1]);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
classSettings[propertyName] = value;
|
|
128
|
+
} else if (pageModelContext.getObject() !== undefined) {
|
|
129
|
+
// get value from page model
|
|
130
|
+
classSettings[propertyName] = pageModelContext.getObject();
|
|
131
|
+
} else {
|
|
132
|
+
// bind to metamodel
|
|
133
|
+
classSettings[propertyName] = metaModel.createBindingContext(feCustomData[propertyName]);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return (ManagedObject as ManagedObjectEx).runWithPreprocessors(
|
|
138
|
+
() => {
|
|
139
|
+
const renderedControl = jsx.withContext({ view: containingView, appComponent: appComponent }, () => {
|
|
140
|
+
const templateProcessingSettings = {
|
|
141
|
+
models: {
|
|
142
|
+
"sap.fe.i18n": containingView.getModel("sap.fe.i18n") as ResourceModel
|
|
143
|
+
}
|
|
144
|
+
} as TemplateProcessorSettings;
|
|
145
|
+
return new BuildingBlockClass!(classSettings, {}, templateProcessingSettings).getContent?.(
|
|
146
|
+
containingView,
|
|
147
|
+
appComponent
|
|
148
|
+
);
|
|
149
|
+
});
|
|
150
|
+
if (!this._bAsync) {
|
|
151
|
+
this._aContent = renderedControl;
|
|
152
|
+
}
|
|
153
|
+
return renderedControl;
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: function (sId: string) {
|
|
157
|
+
return containingView.createId(sId);
|
|
158
|
+
},
|
|
159
|
+
settings: function (controlSettings: Record<string, string | ManagedObject | (string | ManagedObject)[]>) {
|
|
160
|
+
const allAssociations = this.getMetadata().getAssociations();
|
|
161
|
+
for (const associationDetailName of Object.keys(allAssociations)) {
|
|
162
|
+
if (controlSettings[associationDetailName] !== undefined) {
|
|
163
|
+
// The associated elements are indicated via local IDs; we need to change the references to global ones
|
|
164
|
+
const associations = (
|
|
165
|
+
Array.isArray(controlSettings[associationDetailName])
|
|
166
|
+
? controlSettings[associationDetailName]
|
|
167
|
+
: [controlSettings[associationDetailName]]
|
|
168
|
+
) as (string | ManagedObject)[];
|
|
169
|
+
|
|
170
|
+
// Create global IDs for associations given as strings, not for already resolved ManagedObjects
|
|
171
|
+
controlSettings[associationDetailName] = associations.map((association: string | ManagedObject) =>
|
|
172
|
+
typeof association === "string" ? mSettings.containingView.createId(association) : association
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return controlSettings;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
});
|