@sapui5/sap.fe.core 1.108.2 → 1.110.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/README.md +5 -1
- package/package.json +11 -9
- package/src/.eslintrc +7 -0
- package/src/sap/fe/core/.library +39 -37
- package/src/sap/fe/core/.supportrc +3 -3
- package/src/sap/fe/core/ActionRuntime.js +72 -27
- package/src/sap/fe/core/ActionRuntime.ts +104 -21
- package/src/sap/fe/core/AppComponent.js +102 -120
- package/src/sap/fe/core/AppComponent.ts +148 -45
- package/src/sap/fe/core/AppStateHandler.js +105 -91
- package/src/sap/fe/core/AppStateHandler.ts +85 -23
- package/src/sap/fe/core/BaseController.js +5 -20
- package/src/sap/fe/core/BaseController.ts +11 -2
- package/src/sap/fe/core/CommonUtils.js +770 -1079
- package/src/sap/fe/core/CommonUtils.ts +750 -491
- package/src/sap/fe/core/ExtensionAPI.js +69 -96
- package/src/sap/fe/core/ExtensionAPI.ts +15 -17
- package/src/sap/fe/core/PageController.js +21 -46
- package/src/sap/fe/core/PageController.ts +11 -2
- package/src/sap/fe/core/TemplateComponent.js +6 -51
- package/src/sap/fe/core/TemplateComponent.ts +27 -16
- package/src/sap/fe/core/TemplateModel.js +18 -24
- package/src/sap/fe/core/TemplateModel.ts +25 -6
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +8 -23
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +5 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +146 -180
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +144 -57
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +43 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +11 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +436 -556
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +288 -157
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +215 -202
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +93 -51
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +11 -26
- package/src/sap/fe/core/controllerextensions/EditFlow.js +407 -596
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +163 -56
- package/src/sap/fe/core/controllerextensions/Feedback.js +70 -0
- package/src/sap/fe/core/controllerextensions/Feedback.ts +64 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +12 -23
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +127 -182
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +65 -32
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +96 -198
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +4 -5
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +134 -291
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +21 -12
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +111 -214
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +44 -44
- package/src/sap/fe/core/controllerextensions/MassEdit.js +24 -44
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +3 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +39 -52
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +26 -7
- package/src/sap/fe/core/controllerextensions/PageReady.js +81 -119
- package/src/sap/fe/core/controllerextensions/PageReady.ts +36 -15
- package/src/sap/fe/core/controllerextensions/Paginator.js +16 -51
- package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.js +7 -33
- package/src/sap/fe/core/controllerextensions/Routing.js +24 -32
- package/src/sap/fe/core/controllerextensions/Routing.ts +6 -1
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +53 -98
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -3
- package/src/sap/fe/core/controllerextensions/SideEffects.js +103 -174
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +37 -22
- package/src/sap/fe/core/controllerextensions/ViewState.js +341 -276
- package/src/sap/fe/core/controllerextensions/ViewState.ts +236 -84
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +6 -22
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -2
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +66 -88
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +64 -17
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +28 -34
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +22 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +69 -65
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +31 -12
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +15 -13
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +273 -906
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +142 -420
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +49 -115
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +12 -7
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +70 -89
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +313 -320
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +582 -683
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +507 -386
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +111 -102
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -79
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +689 -154
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +866 -31
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +24 -101
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +5 -5
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +91 -217
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +3 -20
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +1 -0
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +46 -46
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/AnyElement.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +4 -26
- package/src/sap/fe/core/controls/ConditionalWrapper.js +16 -33
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +16 -2
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +41 -94
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +5 -34
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +5 -7
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +7 -7
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +56 -58
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +53 -33
- package/src/sap/fe/core/controls/FieldWrapper.js +6 -49
- package/src/sap/fe/core/controls/FileWrapper.js +51 -136
- package/src/sap/fe/core/controls/FileWrapper.ts +25 -29
- package/src/sap/fe/core/controls/FilterBar.js +19 -54
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -22
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -5
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +2 -2
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +24 -46
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +14 -41
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +4 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +26 -67
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -20
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +12 -48
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +17 -46
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -3
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +1 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +6 -78
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +4 -4
- package/src/sap/fe/core/converters/ConverterContext.js +44 -98
- package/src/sap/fe/core/converters/ConverterContext.ts +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -20
- package/src/sap/fe/core/converters/ManifestSettings.ts +16 -9
- package/src/sap/fe/core/converters/ManifestWrapper.js +97 -158
- package/src/sap/fe/core/converters/ManifestWrapper.ts +4 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +28 -167
- package/src/sap/fe/core/converters/MetaModelConverter.ts +9 -3
- package/src/sap/fe/core/converters/TemplateConverter.js +10 -22
- package/src/sap/fe/core/converters/TemplateConverter.ts +10 -7
- package/src/sap/fe/core/converters/annotations/DataField.js +88 -132
- package/src/sap/fe/core/converters/annotations/DataField.ts +90 -38
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +57 -379
- package/src/sap/fe/core/converters/controls/Common/Action.js +45 -115
- package/src/sap/fe/core/converters/controls/Common/Action.ts +17 -5
- package/src/sap/fe/core/converters/controls/Common/Chart.js +20 -73
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +21 -14
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -9
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +40 -94
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +44 -31
- package/src/sap/fe/core/converters/controls/Common/Form.js +26 -63
- package/src/sap/fe/core/converters/controls/Common/Form.ts +24 -10
- package/src/sap/fe/core/converters/controls/Common/KPI.js +13 -63
- package/src/sap/fe/core/converters/controls/Common/Table.js +368 -707
- package/src/sap/fe/core/converters/controls/Common/Table.ts +308 -197
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +54 -109
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +15 -9
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +69 -210
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +23 -16
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +12 -80
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +3 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -19
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +45 -136
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +10 -10
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +82 -173
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +48 -22
- package/src/sap/fe/core/converters/helpers/Aggregation.js +24 -66
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +3 -7
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +9 -19
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +0 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +20 -48
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +5 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +12 -51
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +13 -11
- package/src/sap/fe/core/converters/helpers/ID.js +3 -17
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -6
- package/src/sap/fe/core/converters/helpers/Key.js +10 -19
- package/src/sap/fe/core/converters/helpers/Key.ts +3 -3
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -20
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +2 -37
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +126 -131
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +112 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +67 -131
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +58 -27
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -183
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +73 -104
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +74 -67
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +77 -69
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +20 -29
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +21 -0
- package/src/sap/fe/core/formatters/FPMFormatter.js +3 -7
- package/src/sap/fe/core/formatters/KPIFormatter.js +5 -13
- package/src/sap/fe/core/formatters/StandardFormatter.js +3 -18
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +87 -53
- package/src/sap/fe/core/formatters/TableFormatter.ts +96 -9
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -4
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -37
- package/src/sap/fe/core/fpm/Component.js +2 -17
- package/src/sap/fe/core/helpers/AnnotationEnum.js +10 -20
- package/src/sap/fe/core/helpers/AnnotationEnum.ts +6 -6
- package/src/sap/fe/core/helpers/AppStartupHelper.js +16 -52
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js +106 -364
- package/src/sap/fe/core/helpers/BindingToolkit.ts +30 -7
- package/src/sap/fe/core/helpers/ClassSupport.js +16 -97
- package/src/sap/fe/core/helpers/ClassSupport.ts +7 -4
- package/src/sap/fe/core/helpers/DeleteHelper.js +621 -0
- package/src/sap/fe/core/helpers/DeleteHelper.ts +796 -0
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -12
- package/src/sap/fe/core/helpers/EditState.js +2 -5
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -10
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -8
- package/src/sap/fe/core/helpers/FPMHelper.ts +2 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +8 -38
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -5
- package/src/sap/fe/core/helpers/LoaderUtils.js +1 -7
- package/src/sap/fe/core/helpers/MassEditHelper.js +177 -289
- package/src/sap/fe/core/helpers/MassEditHelper.ts +124 -91
- package/src/sap/fe/core/helpers/MessageStrip.js +12 -28
- package/src/sap/fe/core/helpers/MessageStrip.ts +7 -7
- package/src/sap/fe/core/helpers/ModelHelper.js +62 -103
- package/src/sap/fe/core/helpers/ModelHelper.ts +58 -20
- package/src/sap/fe/core/helpers/PasteHelper.js +28 -51
- package/src/sap/fe/core/helpers/PasteHelper.ts +10 -9
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +112 -136
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +111 -111
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +5 -11
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +26 -32
- package/src/sap/fe/core/helpers/StableIdHelper.js +166 -218
- package/src/sap/fe/core/helpers/StableIdHelper.ts +175 -191
- package/src/sap/fe/core/helpers/Synchronization.js +1 -8
- package/src/sap/fe/core/helpers/ToES6Promise.js +1 -4
- package/src/sap/fe/core/helpers/TypeGuards.js +22 -0
- package/src/sap/fe/core/helpers/TypeGuards.ts +9 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +1 -3
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -23
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -23
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +2 -1
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +4 -16
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +2 -5
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +4 -27
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
- package/src/sap/fe/core/library.js +9 -48
- package/src/sap/fe/core/library.support.js +3 -2
- package/src/sap/fe/core/library.support.ts +3 -1
- package/src/sap/fe/core/library.ts +3 -8
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +74 -39
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +71 -26
- package/src/sap/fe/core/messagebundle.properties +113 -67
- package/src/sap/fe/core/messagebundle_ar.properties +20 -3
- package/src/sap/fe/core/messagebundle_bg.properties +22 -5
- package/src/sap/fe/core/messagebundle_ca.properties +21 -4
- package/src/sap/fe/core/messagebundle_cs.properties +21 -4
- package/src/sap/fe/core/messagebundle_cy.properties +22 -5
- package/src/sap/fe/core/messagebundle_da.properties +20 -3
- package/src/sap/fe/core/messagebundle_de.properties +38 -21
- package/src/sap/fe/core/messagebundle_el.properties +20 -3
- package/src/sap/fe/core/messagebundle_en.properties +38 -21
- package/src/sap/fe/core/messagebundle_en_GB.properties +20 -3
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -28
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +41 -24
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +42 -29
- package/src/sap/fe/core/messagebundle_es.properties +40 -23
- package/src/sap/fe/core/messagebundle_es_MX.properties +20 -3
- package/src/sap/fe/core/messagebundle_et.properties +20 -3
- package/src/sap/fe/core/messagebundle_fi.properties +20 -3
- package/src/sap/fe/core/messagebundle_fr.properties +21 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -5
- package/src/sap/fe/core/messagebundle_hi.properties +20 -3
- package/src/sap/fe/core/messagebundle_hr.properties +22 -5
- package/src/sap/fe/core/messagebundle_hu.properties +20 -3
- package/src/sap/fe/core/messagebundle_id.properties +20 -3
- package/src/sap/fe/core/messagebundle_it.properties +23 -6
- package/src/sap/fe/core/messagebundle_iw.properties +20 -3
- package/src/sap/fe/core/messagebundle_ja.properties +22 -5
- package/src/sap/fe/core/messagebundle_kk.properties +21 -4
- package/src/sap/fe/core/messagebundle_ko.properties +20 -3
- package/src/sap/fe/core/messagebundle_lt.properties +20 -3
- package/src/sap/fe/core/messagebundle_lv.properties +20 -3
- package/src/sap/fe/core/messagebundle_ms.properties +20 -3
- package/src/sap/fe/core/messagebundle_nl.properties +20 -3
- package/src/sap/fe/core/messagebundle_no.properties +20 -3
- package/src/sap/fe/core/messagebundle_pl.properties +21 -4
- package/src/sap/fe/core/messagebundle_pt.properties +20 -3
- package/src/sap/fe/core/messagebundle_pt_PT.properties +20 -3
- package/src/sap/fe/core/messagebundle_ro.properties +20 -3
- package/src/sap/fe/core/messagebundle_ru.properties +20 -3
- package/src/sap/fe/core/messagebundle_sh.properties +20 -3
- package/src/sap/fe/core/messagebundle_sk.properties +20 -3
- package/src/sap/fe/core/messagebundle_sl.properties +26 -9
- package/src/sap/fe/core/messagebundle_sv.properties +20 -3
- package/src/sap/fe/core/messagebundle_th.properties +21 -4
- package/src/sap/fe/core/messagebundle_tr.properties +20 -3
- package/src/sap/fe/core/messagebundle_uk.properties +23 -6
- package/src/sap/fe/core/messagebundle_vi.properties +20 -3
- package/src/sap/fe/core/messagebundle_zh_CN.properties +20 -3
- package/src/sap/fe/core/messagebundle_zh_TW.properties +20 -3
- package/src/sap/fe/core/operationsHelper.js +74 -101
- package/src/sap/fe/core/operationsHelper.ts +113 -44
- package/src/sap/fe/core/rootView/Fcl.controller.js +151 -228
- package/src/sap/fe/core/rootView/Fcl.controller.ts +90 -15
- package/src/sap/fe/core/rootView/Fcl.view.xml +1 -8
- package/src/sap/fe/core/rootView/NavContainer.controller.js +41 -78
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +32 -38
- package/src/sap/fe/core/rootView/RootViewBaseController.js +110 -181
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +37 -17
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -18
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +13 -52
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -22
- package/src/sap/fe/core/services/NavigationServiceFactory.js +45 -87
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +17 -10
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -28
- package/src/sap/fe/core/services/RoutingServiceFactory.js +92 -250
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +8 -12
- package/src/sap/fe/core/services/ShellServicesFactory.js +122 -251
- package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +188 -273
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +143 -154
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +37 -135
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +59 -94
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -16
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/support/AnnotationIssue.support.js +6 -9
- package/src/sap/fe/core/support/AnnotationIssue.support.ts +4 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +6 -9
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +3 -3
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +6 -9
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +3 -3
- package/src/sap/fe/core/support/CommonHelper.js +7 -16
- package/src/sap/fe/core/support/Diagnostics.js +1 -10
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +6 -9
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +3 -3
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -15
- package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -20
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -20
- package/src/sap/fe/core/templating/DataModelPathHelper.js +49 -121
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +41 -31
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +8 -15
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +7 -7
- package/src/sap/fe/core/templating/EntitySetHelper.js +6 -31
- package/src/sap/fe/core/templating/FieldControlHelper.js +4 -21
- package/src/sap/fe/core/templating/FieldControlHelper.ts +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +40 -111
- package/src/sap/fe/core/templating/FilterHelper.ts +20 -16
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -19
- package/src/sap/fe/core/templating/FilterTemplating.ts +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -34
- package/src/sap/fe/core/templating/PropertyHelper.js +120 -163
- package/src/sap/fe/core/templating/PropertyHelper.ts +69 -33
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +46 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +34 -0
- package/src/sap/fe/core/templating/UIFormatters.js +40 -180
- package/src/sap/fe/core/templating/UIFormatters.ts +37 -43
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -14
- package/src/sap/fe/core/type/Email.js +1 -10
- package/src/sap/fe/core/type/TypeUtil.js +1 -11
- package/ui5.yaml +0 -1
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +0 -35
- package/src/sap/fe/core/helpers/LRMessageStrip.js +0 -234
- package/src/sap/fe/core/helpers/LRMessageStrip.ts +0 -216
|
@@ -12,8 +12,9 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
12
12
|
var getFormID = ID.getFormID;
|
|
13
13
|
var isReferencePropertyStaticallyHidden = DataFieldHelper.isReferencePropertyStaticallyHidden;
|
|
14
14
|
var Placement = ConfigurableObject.Placement;
|
|
15
|
+
var OverrideType = ConfigurableObject.OverrideType;
|
|
15
16
|
var insertCustomElements = ConfigurableObject.insertCustomElements;
|
|
16
|
-
var
|
|
17
|
+
var createIdForAnnotation = StableIdHelper.createIdForAnnotation;
|
|
17
18
|
var getTargetObjectPath = DataModelPathHelper.getTargetObjectPath;
|
|
18
19
|
var getTargetEntitySetPath = DataModelPathHelper.getTargetEntitySetPath;
|
|
19
20
|
var pathInModel = BindingToolkit.pathInModel;
|
|
@@ -23,23 +24,18 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
23
24
|
var equal = BindingToolkit.equal;
|
|
24
25
|
var compileExpression = BindingToolkit.compileExpression;
|
|
25
26
|
var getSemanticObjectPath = DataField.getSemanticObjectPath;
|
|
26
|
-
|
|
27
27
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
-
|
|
29
28
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
30
|
-
|
|
31
|
-
function
|
|
32
|
-
|
|
29
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
30
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
31
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
33
32
|
var FormElementType;
|
|
34
|
-
|
|
35
33
|
(function (FormElementType) {
|
|
36
34
|
FormElementType["Default"] = "Default";
|
|
37
35
|
FormElementType["Slot"] = "Slot";
|
|
38
36
|
FormElementType["Annotation"] = "Annotation";
|
|
39
37
|
})(FormElementType || (FormElementType = {}));
|
|
40
|
-
|
|
41
38
|
_exports.FormElementType = FormElementType;
|
|
42
|
-
|
|
43
39
|
/**
|
|
44
40
|
* Returns default format options for text fields on a form.
|
|
45
41
|
*
|
|
@@ -50,54 +46,54 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
50
46
|
textLinesEdit: 4
|
|
51
47
|
};
|
|
52
48
|
}
|
|
53
|
-
|
|
54
49
|
function isFieldPartOfPreview(field, formPartOfPreview) {
|
|
55
50
|
var _field$annotations, _field$annotations$UI, _field$annotations2, _field$annotations2$U;
|
|
56
|
-
|
|
57
51
|
// Both each form and field can have the PartOfPreview annotation. Only if the form is not hidden (not partOfPreview) we allow toggling on field level
|
|
58
52
|
return (formPartOfPreview === null || formPartOfPreview === void 0 ? void 0 : formPartOfPreview.valueOf()) === false || ((_field$annotations = field.annotations) === null || _field$annotations === void 0 ? void 0 : (_field$annotations$UI = _field$annotations.UI) === null || _field$annotations$UI === void 0 ? void 0 : _field$annotations$UI.PartOfPreview) === undefined || ((_field$annotations2 = field.annotations) === null || _field$annotations2 === void 0 ? void 0 : (_field$annotations2$U = _field$annotations2.UI) === null || _field$annotations2$U === void 0 ? void 0 : _field$annotations2$U.PartOfPreview.valueOf()) === true;
|
|
59
53
|
}
|
|
60
|
-
|
|
61
54
|
function getFormElementsFromAnnotations(facetDefinition, converterContext) {
|
|
62
55
|
var formElements = [];
|
|
63
56
|
var resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
64
57
|
var formAnnotation = resolvedTarget.annotation;
|
|
65
58
|
converterContext = resolvedTarget.converterContext;
|
|
66
|
-
|
|
67
59
|
function getDataFieldsFromAnnotations(field, formPartOfPreview) {
|
|
68
60
|
var _field$annotations3, _field$annotations3$U, _field$annotations3$U2;
|
|
69
|
-
|
|
70
61
|
var semanticObjectAnnotationPath = getSemanticObjectPath(converterContext, field);
|
|
71
|
-
|
|
72
62
|
if (field.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForAction" && field.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" && !isReferencePropertyStaticallyHidden(field) && ((_field$annotations3 = field.annotations) === null || _field$annotations3 === void 0 ? void 0 : (_field$annotations3$U = _field$annotations3.UI) === null || _field$annotations3$U === void 0 ? void 0 : (_field$annotations3$U2 = _field$annotations3$U.Hidden) === null || _field$annotations3$U2 === void 0 ? void 0 : _field$annotations3$U2.valueOf()) !== true) {
|
|
73
|
-
|
|
63
|
+
var formElement = {
|
|
74
64
|
key: KeyHelper.generateKeyFromDataField(field),
|
|
75
65
|
type: FormElementType.Annotation,
|
|
76
66
|
annotationPath: "".concat(converterContext.getEntitySetBasedAnnotationPath(field.fullyQualifiedName), "/"),
|
|
77
67
|
semanticObjectPath: semanticObjectAnnotationPath,
|
|
78
68
|
formatOptions: getDefaultFormatOptionsForForm(),
|
|
79
69
|
isPartOfPreview: isFieldPartOfPreview(field, formPartOfPreview)
|
|
80
|
-
}
|
|
70
|
+
};
|
|
71
|
+
if (field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" && field.Target.$target.$Type === "com.sap.vocabularies.UI.v1.ConnectedFieldsType") {
|
|
72
|
+
var connectedFields = Object.values(field.Target.$target.Data).filter(function (connectedField) {
|
|
73
|
+
return connectedField === null || connectedField === void 0 ? void 0 : connectedField.hasOwnProperty("Value");
|
|
74
|
+
});
|
|
75
|
+
formElement.connectedFields = connectedFields.map(function (connnectedFieldElement) {
|
|
76
|
+
return {
|
|
77
|
+
semanticObjectPath: getSemanticObjectPath(converterContext, connnectedFieldElement)
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
formElements.push(formElement);
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
|
-
|
|
84
84
|
switch (formAnnotation === null || formAnnotation === void 0 ? void 0 : formAnnotation.term) {
|
|
85
85
|
case "com.sap.vocabularies.UI.v1.FieldGroup":
|
|
86
86
|
formAnnotation.Data.forEach(function (field) {
|
|
87
87
|
var _facetDefinition$anno, _facetDefinition$anno2;
|
|
88
|
-
|
|
89
88
|
return getDataFieldsFromAnnotations(field, (_facetDefinition$anno = facetDefinition.annotations) === null || _facetDefinition$anno === void 0 ? void 0 : (_facetDefinition$anno2 = _facetDefinition$anno.UI) === null || _facetDefinition$anno2 === void 0 ? void 0 : _facetDefinition$anno2.PartOfPreview);
|
|
90
89
|
});
|
|
91
90
|
break;
|
|
92
|
-
|
|
93
91
|
case "com.sap.vocabularies.UI.v1.Identification":
|
|
94
92
|
formAnnotation.forEach(function (field) {
|
|
95
93
|
var _facetDefinition$anno3, _facetDefinition$anno4;
|
|
96
|
-
|
|
97
94
|
return getDataFieldsFromAnnotations(field, (_facetDefinition$anno3 = facetDefinition.annotations) === null || _facetDefinition$anno3 === void 0 ? void 0 : (_facetDefinition$anno4 = _facetDefinition$anno3.UI) === null || _facetDefinition$anno4 === void 0 ? void 0 : _facetDefinition$anno4.PartOfPreview);
|
|
98
95
|
});
|
|
99
96
|
break;
|
|
100
|
-
|
|
101
97
|
case "com.sap.vocabularies.UI.v1.DataPoint":
|
|
102
98
|
formElements.push({
|
|
103
99
|
// key: KeyHelper.generateKeyFromDataField(formAnnotation),
|
|
@@ -106,7 +102,6 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
106
102
|
annotationPath: "".concat(converterContext.getEntitySetBasedAnnotationPath(formAnnotation.fullyQualifiedName), "/")
|
|
107
103
|
});
|
|
108
104
|
break;
|
|
109
|
-
|
|
110
105
|
case "com.sap.vocabularies.Communication.v1.Contact":
|
|
111
106
|
formElements.push({
|
|
112
107
|
// key: KeyHelper.generateKeyFromDataField(formAnnotation),
|
|
@@ -115,19 +110,15 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
115
110
|
annotationPath: "".concat(converterContext.getEntitySetBasedAnnotationPath(formAnnotation.fullyQualifiedName), "/")
|
|
116
111
|
});
|
|
117
112
|
break;
|
|
118
|
-
|
|
119
113
|
default:
|
|
120
114
|
break;
|
|
121
115
|
}
|
|
122
|
-
|
|
123
116
|
return formElements;
|
|
124
117
|
}
|
|
125
|
-
|
|
126
118
|
function getFormElementsFromManifest(facetDefinition, converterContext) {
|
|
127
119
|
var manifestWrapper = converterContext.getManifestWrapper();
|
|
128
120
|
var manifestFormContainer = manifestWrapper.getFormContainer(facetDefinition.Target.value);
|
|
129
121
|
var formElements = {};
|
|
130
|
-
|
|
131
122
|
if (manifestFormContainer !== null && manifestFormContainer !== void 0 && manifestFormContainer.fields) {
|
|
132
123
|
Object.keys(manifestFormContainer === null || manifestFormContainer === void 0 ? void 0 : manifestFormContainer.fields).forEach(function (fieldId) {
|
|
133
124
|
formElements[fieldId] = {
|
|
@@ -143,44 +134,34 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
143
134
|
};
|
|
144
135
|
});
|
|
145
136
|
}
|
|
146
|
-
|
|
147
137
|
return formElements;
|
|
148
138
|
}
|
|
149
|
-
|
|
150
139
|
_exports.getFormElementsFromManifest = getFormElementsFromManifest;
|
|
151
|
-
|
|
152
140
|
function getFormContainer(facetDefinition, converterContext, actions) {
|
|
153
141
|
var _facetDefinition$anno5, _facetDefinition$anno6, _resolvedTarget$conve, _facetDefinition$anno7, _facetDefinition$anno8, _facetDefinition$anno9;
|
|
154
|
-
|
|
155
|
-
var
|
|
156
|
-
Facet: facetDefinition
|
|
157
|
-
}]);
|
|
158
|
-
var sAnnotationPath = "/".concat(facetDefinition.fullyQualifiedName);
|
|
142
|
+
var sFormContainerId = createIdForAnnotation(facetDefinition);
|
|
143
|
+
var sAnnotationPath = converterContext.getEntitySetBasedAnnotationPath(facetDefinition.fullyQualifiedName);
|
|
159
144
|
var resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
160
145
|
var isVisible = compileExpression(not(equal(true, getExpressionFromAnnotation((_facetDefinition$anno5 = facetDefinition.annotations) === null || _facetDefinition$anno5 === void 0 ? void 0 : (_facetDefinition$anno6 = _facetDefinition$anno5.UI) === null || _facetDefinition$anno6 === void 0 ? void 0 : _facetDefinition$anno6.Hidden))));
|
|
161
|
-
var sEntitySetPath;
|
|
162
|
-
|
|
146
|
+
var sEntitySetPath;
|
|
147
|
+
// resolvedTarget doesn't have a entitySet in case Containments and Paramterized services.
|
|
163
148
|
if (resolvedTarget.converterContext.getEntitySet() && resolvedTarget.converterContext.getEntitySet() !== converterContext.getEntitySet()) {
|
|
164
149
|
sEntitySetPath = getTargetEntitySetPath(resolvedTarget.converterContext.getDataModelObjectPath());
|
|
165
150
|
} else if (((_resolvedTarget$conve = resolvedTarget.converterContext.getDataModelObjectPath().targetObject) === null || _resolvedTarget$conve === void 0 ? void 0 : _resolvedTarget$conve.containsTarget) === true) {
|
|
166
151
|
sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
|
|
167
152
|
} else if (resolvedTarget.converterContext.getEntitySet() && !sEntitySetPath && ModelHelper.isSingleton(resolvedTarget.converterContext.getEntitySet())) {
|
|
168
153
|
var _resolvedTarget$conve2;
|
|
169
|
-
|
|
170
154
|
sEntitySetPath = (_resolvedTarget$conve2 = resolvedTarget.converterContext.getEntitySet()) === null || _resolvedTarget$conve2 === void 0 ? void 0 : _resolvedTarget$conve2.fullyQualifiedName;
|
|
171
155
|
}
|
|
172
|
-
|
|
173
156
|
var aFormElements = insertCustomElements(getFormElementsFromAnnotations(facetDefinition, converterContext), getFormElementsFromManifest(facetDefinition, converterContext), {
|
|
174
|
-
formatOptions:
|
|
157
|
+
formatOptions: OverrideType.overwrite
|
|
175
158
|
});
|
|
176
159
|
actions = actions !== undefined ? actions.filter(function (action) {
|
|
177
160
|
return action.facetName == facetDefinition.fullyQualifiedName;
|
|
178
161
|
}) : [];
|
|
179
|
-
|
|
180
162
|
if (actions.length === 0) {
|
|
181
163
|
actions = undefined;
|
|
182
164
|
}
|
|
183
|
-
|
|
184
165
|
var oActionShowDetails = {
|
|
185
166
|
id: getFormStandardActionButtonID(sFormContainerId, "ShowHideDetails"),
|
|
186
167
|
key: "StandardAction::ShowHideDetails",
|
|
@@ -188,7 +169,6 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
188
169
|
type: ActionType.ShowFormDetails,
|
|
189
170
|
press: "FormContainerRuntime.toggleDetails"
|
|
190
171
|
};
|
|
191
|
-
|
|
192
172
|
if (((_facetDefinition$anno7 = facetDefinition.annotations) === null || _facetDefinition$anno7 === void 0 ? void 0 : (_facetDefinition$anno8 = _facetDefinition$anno7.UI) === null || _facetDefinition$anno8 === void 0 ? void 0 : (_facetDefinition$anno9 = _facetDefinition$anno8.PartOfPreview) === null || _facetDefinition$anno9 === void 0 ? void 0 : _facetDefinition$anno9.valueOf()) !== false && aFormElements.some(function (oFormElement) {
|
|
193
173
|
return oFormElement.isPartOfPreview === false;
|
|
194
174
|
})) {
|
|
@@ -198,7 +178,6 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
198
178
|
actions = [oActionShowDetails];
|
|
199
179
|
}
|
|
200
180
|
}
|
|
201
|
-
|
|
202
181
|
return {
|
|
203
182
|
id: sFormContainerId,
|
|
204
183
|
formElements: aFormElements,
|
|
@@ -208,67 +187,51 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
|
|
|
208
187
|
actions: actions
|
|
209
188
|
};
|
|
210
189
|
}
|
|
211
|
-
|
|
212
190
|
_exports.getFormContainer = getFormContainer;
|
|
213
|
-
|
|
214
191
|
function getFormContainersForCollection(facetDefinition, converterContext, actions) {
|
|
215
192
|
var _facetDefinition$Face;
|
|
216
|
-
|
|
217
193
|
var formContainers = [];
|
|
218
194
|
(_facetDefinition$Face = facetDefinition.Facets) === null || _facetDefinition$Face === void 0 ? void 0 : _facetDefinition$Face.forEach(function (facet) {
|
|
219
195
|
// Ignore level 3 collection facet
|
|
220
196
|
if (facet.$Type === "com.sap.vocabularies.UI.v1.CollectionFacet") {
|
|
221
197
|
return;
|
|
222
198
|
}
|
|
223
|
-
|
|
224
199
|
formContainers.push(getFormContainer(facet, converterContext, actions));
|
|
225
200
|
});
|
|
226
201
|
return formContainers;
|
|
227
202
|
}
|
|
228
|
-
|
|
229
203
|
function isReferenceFacet(facetDefinition) {
|
|
230
204
|
return facetDefinition.$Type === "com.sap.vocabularies.UI.v1.ReferenceFacet";
|
|
231
205
|
}
|
|
232
|
-
|
|
233
206
|
_exports.isReferenceFacet = isReferenceFacet;
|
|
234
|
-
|
|
235
207
|
function createFormDefinition(facetDefinition, isVisible, converterContext, actions) {
|
|
236
208
|
var _facetDefinition$anno10, _facetDefinition$anno11, _facetDefinition$anno12;
|
|
237
|
-
|
|
238
209
|
switch (facetDefinition.$Type) {
|
|
239
210
|
case "com.sap.vocabularies.UI.v1.CollectionFacet":
|
|
240
211
|
// Keep only valid children
|
|
241
212
|
return {
|
|
242
|
-
id: getFormID(
|
|
243
|
-
Facet: facetDefinition
|
|
244
|
-
}),
|
|
213
|
+
id: getFormID(facetDefinition),
|
|
245
214
|
useFormContainerLabels: true,
|
|
246
215
|
hasFacetsNotPartOfPreview: facetDefinition.Facets.some(function (childFacet) {
|
|
247
216
|
var _childFacet$annotatio, _childFacet$annotatio2, _childFacet$annotatio3;
|
|
248
|
-
|
|
249
217
|
return ((_childFacet$annotatio = childFacet.annotations) === null || _childFacet$annotatio === void 0 ? void 0 : (_childFacet$annotatio2 = _childFacet$annotatio.UI) === null || _childFacet$annotatio2 === void 0 ? void 0 : (_childFacet$annotatio3 = _childFacet$annotatio2.PartOfPreview) === null || _childFacet$annotatio3 === void 0 ? void 0 : _childFacet$annotatio3.valueOf()) === false;
|
|
250
218
|
}),
|
|
251
219
|
formContainers: getFormContainersForCollection(facetDefinition, converterContext, actions),
|
|
252
220
|
isVisible: isVisible
|
|
253
221
|
};
|
|
254
|
-
|
|
255
222
|
case "com.sap.vocabularies.UI.v1.ReferenceFacet":
|
|
256
223
|
return {
|
|
257
|
-
id: getFormID(
|
|
258
|
-
Facet: facetDefinition
|
|
259
|
-
}),
|
|
224
|
+
id: getFormID(facetDefinition),
|
|
260
225
|
useFormContainerLabels: false,
|
|
261
226
|
hasFacetsNotPartOfPreview: ((_facetDefinition$anno10 = facetDefinition.annotations) === null || _facetDefinition$anno10 === void 0 ? void 0 : (_facetDefinition$anno11 = _facetDefinition$anno10.UI) === null || _facetDefinition$anno11 === void 0 ? void 0 : (_facetDefinition$anno12 = _facetDefinition$anno11.PartOfPreview) === null || _facetDefinition$anno12 === void 0 ? void 0 : _facetDefinition$anno12.valueOf()) === false,
|
|
262
227
|
formContainers: [getFormContainer(facetDefinition, converterContext, actions)],
|
|
263
228
|
isVisible: isVisible
|
|
264
229
|
};
|
|
265
|
-
|
|
266
230
|
default:
|
|
267
231
|
throw new Error("Cannot create form based on ReferenceURLFacet");
|
|
268
232
|
}
|
|
269
233
|
}
|
|
270
|
-
|
|
271
234
|
_exports.createFormDefinition = createFormDefinition;
|
|
272
235
|
return _exports;
|
|
273
236
|
}, false);
|
|
274
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtRWxlbWVudFR5cGUiLCJnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0iLCJ0ZXh0TGluZXNFZGl0IiwiaXNGaWVsZFBhcnRPZlByZXZpZXciLCJmaWVsZCIsImZvcm1QYXJ0T2ZQcmV2aWV3IiwidmFsdWVPZiIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsIkhpZGRlbiIsInB1c2giLCJrZXkiLCJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJ0eXBlIiwiQW5ub3RhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInNlbWFudGljT2JqZWN0UGF0aCIsImZvcm1hdE9wdGlvbnMiLCJpc1BhcnRPZlByZXZpZXciLCJ0ZXJtIiwiRGF0YSIsImZvckVhY2giLCJxdWFsaWZpZXIiLCJnZXRGb3JtRWxlbWVudHNGcm9tTWFuaWZlc3QiLCJtYW5pZmVzdFdyYXBwZXIiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJtYW5pZmVzdEZvcm1Db250YWluZXIiLCJnZXRGb3JtQ29udGFpbmVyIiwiZmllbGRzIiwiT2JqZWN0Iiwia2V5cyIsImZpZWxkSWQiLCJpZCIsIkRlZmF1bHQiLCJ0ZW1wbGF0ZSIsImxhYmVsIiwicG9zaXRpb24iLCJwbGFjZW1lbnQiLCJQbGFjZW1lbnQiLCJBZnRlciIsImFjdGlvbnMiLCJzRm9ybUNvbnRhaW5lcklkIiwiZ2VuZXJhdGUiLCJGYWNldCIsInNBbm5vdGF0aW9uUGF0aCIsImlzVmlzaWJsZSIsImNvbXBpbGVFeHByZXNzaW9uIiwibm90IiwiZXF1YWwiLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJzRW50aXR5U2V0UGF0aCIsImdldEVudGl0eVNldCIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0T2JqZWN0IiwiY29udGFpbnNUYXJnZXQiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiTW9kZWxIZWxwZXIiLCJpc1NpbmdsZXRvbiIsImFGb3JtRWxlbWVudHMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImZpbHRlciIsImFjdGlvbiIsImZhY2V0TmFtZSIsImxlbmd0aCIsIm9BY3Rpb25TaG93RGV0YWlscyIsImdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIiwidGV4dCIsImlmRWxzZSIsInBhdGhJbk1vZGVsIiwiQWN0aW9uVHlwZSIsIlNob3dGb3JtRGV0YWlscyIsInByZXNzIiwic29tZSIsIm9Gb3JtRWxlbWVudCIsImVudGl0eVNldCIsImdldEZvcm1Db250YWluZXJzRm9yQ29sbGVjdGlvbiIsImZvcm1Db250YWluZXJzIiwiRmFjZXRzIiwiZmFjZXQiLCJpc1JlZmVyZW5jZUZhY2V0IiwiY3JlYXRlRm9ybURlZmluaXRpb24iLCJnZXRGb3JtSUQiLCJ1c2VGb3JtQ29udGFpbmVyTGFiZWxzIiwiaGFzRmFjZXRzTm90UGFydE9mUHJldmlldyIsImNoaWxkRmFjZXQiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRm9ybS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLCBDb250YWN0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbGxlY3Rpb25GYWNldFR5cGVzLFxuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhUG9pbnQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRQYXJ0T2ZQcmV2aWV3LFxuXHRSZWZlcmVuY2VGYWNldFR5cGVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IGdldFNlbWFudGljT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2Fubm90YXRpb25zL0RhdGFGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlQWN0aW9uLCBDb252ZXJ0ZXJBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBlcXVhbCwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLCBpZkVsc2UsIG5vdCwgcGF0aEluTW9kZWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBDb25maWd1cmFibGVPYmplY3QsIEN1c3RvbUVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvRGF0YUZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGb3JtSUQsIGdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHR5cGUgeyBGb3JtYXRPcHRpb25zVHlwZSwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG5cdGZvcm1Db250YWluZXJzOiBGb3JtQ29udGFpbmVyW107XG5cdGlzVmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdFNsb3QgPSBcIlNsb3RcIixcblx0QW5ub3RhdGlvbiA9IFwiQW5ub3RhdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VGb3JtRWxlbWVudCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xuXHRpc1BhcnRPZlByZXZpZXc/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tRm9ybUVsZW1lbnQgPSBDdXN0b21FbGVtZW50PFxuXHRCYXNlRm9ybUVsZW1lbnQgJiB7XG5cdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlO1xuXHRcdHRlbXBsYXRlOiBzdHJpbmc7XG5cdH1cbj47XG5cbmV4cG9ydCB0eXBlIEZvcm1FbGVtZW50ID0gQ3VzdG9tRm9ybUVsZW1lbnQgfCBBbm5vdGF0aW9uRm9ybUVsZW1lbnQ7XG5cbmV4cG9ydCB0eXBlIEZvcm1Db250YWluZXIgPSB7XG5cdGlkPzogc3RyaW5nO1xuXHRmb3JtRWxlbWVudHM6IEZvcm1FbGVtZW50W107XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGlzVmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdGVudGl0eVNldD86IHN0cmluZztcblx0YWN0aW9ucz86IENvbnZlcnRlckFjdGlvbltdIHwgQmFzZUFjdGlvbltdO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGRlZmF1bHQgZm9ybWF0IG9wdGlvbnMgZm9yIHRleHQgZmllbGRzIG9uIGEgZm9ybS5cbiAqXG4gKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIGZvcm1hdCBvcHRpb25zIHdpdGggZGVmYXVsdCB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtKCk6IEZvcm1hdE9wdGlvbnNUeXBlIHtcblx0cmV0dXJuIHtcblx0XHR0ZXh0TGluZXNFZGl0OiA0XG5cdH07XG59XG5cbmZ1bmN0aW9uIGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldz86IFBhcnRPZlByZXZpZXcpOiBib29sZWFuIHtcblx0Ly8gQm90aCBlYWNoIGZvcm0gYW5kIGZpZWxkIGNhbiBoYXZlIHRoZSBQYXJ0T2ZQcmV2aWV3IGFubm90YXRpb24uIE9ubHkgaWYgdGhlIGZvcm0gaXMgbm90IGhpZGRlbiAobm90IHBhcnRPZlByZXZpZXcpIHdlIGFsbG93IHRvZ2dsaW5nIG9uIGZpZWxkIGxldmVsXG5cdHJldHVybiAoXG5cdFx0Zm9ybVBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2UgfHxcblx0XHRmaWVsZC5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcgPT09IHVuZGVmaW5lZCB8fFxuXHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldy52YWx1ZU9mKCkgPT09IHRydWVcblx0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbjogUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdIHtcblx0Y29uc3QgZm9ybUVsZW1lbnRzOiBBbm5vdGF0aW9uRm9ybUVsZW1lbnRbXSA9IFtdO1xuXHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oZmFjZXREZWZpbml0aW9uLlRhcmdldC52YWx1ZSk7XG5cdGNvbnN0IGZvcm1Bbm5vdGF0aW9uOiBJZGVudGlmaWNhdGlvbiB8IEZpZWxkR3JvdXAgfCBDb250YWN0IHwgRGF0YVBvaW50ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbjtcblx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cblx0ZnVuY3Rpb24gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgZm9ybVBhcnRPZlByZXZpZXc6IFBhcnRPZlByZXZpZXcgfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoID0gZ2V0U2VtYW50aWNPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQsIGZpZWxkKTtcblx0XHRpZiAoXG5cdFx0XHRmaWVsZC4kVHlwZSAhPT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRmaWVsZC4kVHlwZSAhPT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uICYmXG5cdFx0XHQhaXNSZWZlcmVuY2VQcm9wZXJ0eVN0YXRpY2FsbHlIaWRkZW4oZmllbGQpICYmXG5cdFx0XHRmaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmaWVsZCksXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSl9L2AsXG5cdFx0XHRcdHNlbWFudGljT2JqZWN0UGF0aDogc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCxcblx0XHRcdFx0Zm9ybWF0T3B0aW9uczogZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtKCksXG5cdFx0XHRcdGlzUGFydE9mUHJldmlldzogaXNGaWVsZFBhcnRPZlByZXZpZXcoZmllbGQsIGZvcm1QYXJ0T2ZQcmV2aWV3KVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0c3dpdGNoIChmb3JtQW5ub3RhdGlvbj8udGVybSkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdGZvcm1Bbm5vdGF0aW9uLkRhdGEuZm9yRWFjaCgoZmllbGQpID0+IGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMoZmllbGQsIGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcpKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHRmb3JtQW5ub3RhdGlvbi5mb3JFYWNoKChmaWVsZCkgPT4gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZCwgZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldykpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYERhdGFQb2ludDo6JHtmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwifWAsXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSl9L2Bcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYENvbnRhY3Q6OiR7Zm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIn1gLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpfS9gXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaCgoZmllbGRJZCkgPT4ge1xuXHRcdFx0Zm9ybUVsZW1lbnRzW2ZpZWxkSWRdID0ge1xuXHRcdFx0XHRrZXk6IGZpZWxkSWQsXG5cdFx0XHRcdGlkOiBgQ3VzdG9tRm9ybUVsZW1lbnQ6OiR7ZmllbGRJZH1gLFxuXHRcdFx0XHR0eXBlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnR5cGUgfHwgRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zPzogQmFzZUFjdGlvbltdIHwgQ29udmVydGVyQWN0aW9uW11cbik6IEZvcm1Db250YWluZXIge1xuXHRjb25zdCBzRm9ybUNvbnRhaW5lcklkID0gZ2VuZXJhdGUoW3sgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9XSk7XG5cdGNvbnN0IHNBbm5vdGF0aW9uUGF0aCA9IGAvJHtmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lfWA7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgaXNWaXNpYmxlID0gY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKHRydWUsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pKSkpO1xuXHRsZXQgc0VudGl0eVNldFBhdGghOiBzdHJpbmc7XG5cdC8vIHJlc29sdmVkVGFyZ2V0IGRvZXNuJ3QgaGF2ZSBhIGVudGl0eVNldCBpbiBjYXNlIENvbnRhaW5tZW50cyBhbmQgUGFyYW10ZXJpemVkIHNlcnZpY2VzLlxuXHRpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgIT09IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KClcblx0KSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0fSBlbHNlIGlmIChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3Q/LmNvbnRhaW5zVGFyZ2V0ID09PSB0cnVlKSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCBmYWxzZSk7XG5cdH0gZWxzZSBpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdCFzRW50aXR5U2V0UGF0aCAmJlxuXHRcdE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkpXG5cdCkge1xuXHRcdHNFbnRpdHlTZXRQYXRoID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKT8uZnVsbHlRdWFsaWZpZWROYW1lIGFzIHN0cmluZztcblx0fVxuXHRjb25zdCBhRm9ybUVsZW1lbnRzID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0eyBmb3JtYXRPcHRpb25zOiBcIm92ZXJ3cml0ZVwiIH1cblx0KTtcblxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLmZhY2V0TmFtZSA9PSBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSA6IFtdO1xuXHRpZiAoYWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRhY3Rpb25zID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3Qgb0FjdGlvblNob3dEZXRhaWxzOiBCYXNlQWN0aW9uID0ge1xuXHRcdGlkOiBnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRChzRm9ybUNvbnRhaW5lcklkLCBcIlNob3dIaWRlRGV0YWlsc1wiKSxcblx0XHRrZXk6IFwiU3RhbmRhcmRBY3Rpb246OlNob3dIaWRlRGV0YWlsc1wiLFxuXHRcdHRleHQ6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInNob3dEZXRhaWxzXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX0hJREVfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX1NIT1dfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpXG5cdFx0XHQpXG5cdFx0KSxcblx0XHR0eXBlOiBBY3Rpb25UeXBlLlNob3dGb3JtRGV0YWlscyxcblx0XHRwcmVzczogXCJGb3JtQ29udGFpbmVyUnVudGltZS50b2dnbGVEZXRhaWxzXCJcblx0fTtcblxuXHRpZiAoXG5cdFx0ZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpICE9PSBmYWxzZSAmJlxuXHRcdGFGb3JtRWxlbWVudHMuc29tZSgob0Zvcm1FbGVtZW50KSA9PiBvRm9ybUVsZW1lbnQuaXNQYXJ0T2ZQcmV2aWV3ID09PSBmYWxzZSlcblx0KSB7XG5cdFx0aWYgKGFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YWN0aW9ucy5wdXNoKG9BY3Rpb25TaG93RGV0YWlscyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFjdGlvbnMgPSBbb0FjdGlvblNob3dEZXRhaWxzXTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGlkOiBzRm9ybUNvbnRhaW5lcklkLFxuXHRcdGZvcm1FbGVtZW50czogYUZvcm1FbGVtZW50cyxcblx0XHRhbm5vdGF0aW9uUGF0aDogc0Fubm90YXRpb25QYXRoLFxuXHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM/OiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXVxuKTogRm9ybUNvbnRhaW5lcltdIHtcblx0Y29uc3QgZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSA9IFtdO1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKChmYWNldCkgPT4ge1xuXHRcdC8vIElnbm9yZSBsZXZlbCAzIGNvbGxlY3Rpb24gZmFjZXRcblx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3JtQ29udGFpbmVycy5wdXNoKGdldEZvcm1Db250YWluZXIoZmFjZXQgYXMgUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucykpO1xuXHR9KTtcblx0cmV0dXJuIGZvcm1Db250YWluZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VGYWNldChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMpOiBmYWNldERlZmluaXRpb24gaXMgUmVmZXJlbmNlRmFjZXRUeXBlcyB7XG5cdHJldHVybiBmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybURlZmluaXRpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9ucz86IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkOiBnZXRGb3JtSUQoeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0XHR1c2VGb3JtQ29udGFpbmVyTGFiZWxzOiB0cnVlLFxuXHRcdFx0XHRoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3OiBmYWNldERlZmluaXRpb24uRmFjZXRzLnNvbWUoXG5cdFx0XHRcdFx0KGNoaWxkRmFjZXQpID0+IGNoaWxkRmFjZXQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlXG5cdFx0XHRcdCksXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKSxcblx0XHRcdFx0aXNWaXNpYmxlOiBpc1Zpc2libGVcblx0XHRcdH07XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDpcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkOiBnZXRGb3JtSUQoeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0XHR1c2VGb3JtQ29udGFpbmVyTGFiZWxzOiBmYWxzZSxcblx0XHRcdFx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRcdFx0Zm9ybUNvbnRhaW5lcnM6IFtnZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucyldLFxuXHRcdFx0XHRpc1Zpc2libGU6IGlzVmlzaWJsZVxuXHRcdFx0fTtcblx0XHRkZWZhdWx0OlxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBmb3JtIGJhc2VkIG9uIFJlZmVyZW5jZVVSTEZhY2V0XCIpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bb0NZQSxlOzthQUFBQSxlO0lBQUFBLGU7SUFBQUEsZTtJQUFBQSxlO0tBQUFBLGUsS0FBQUEsZTs7OztFQXdDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsU0FBU0MsOEJBQVQsR0FBNkQ7SUFDNUQsT0FBTztNQUNOQyxhQUFhLEVBQUU7SUFEVCxDQUFQO0VBR0E7O0VBRUQsU0FBU0Msb0JBQVQsQ0FBOEJDLEtBQTlCLEVBQTZEQyxpQkFBN0QsRUFBeUc7SUFBQTs7SUFDeEc7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
|
|
237
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtRWxlbWVudFR5cGUiLCJnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0iLCJ0ZXh0TGluZXNFZGl0IiwiaXNGaWVsZFBhcnRPZlByZXZpZXciLCJmaWVsZCIsImZvcm1QYXJ0T2ZQcmV2aWV3IiwidmFsdWVPZiIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsIkhpZGRlbiIsImZvcm1FbGVtZW50Iiwia2V5IiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwidHlwZSIsIkFubm90YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJzZW1hbnRpY09iamVjdFBhdGgiLCJmb3JtYXRPcHRpb25zIiwiaXNQYXJ0T2ZQcmV2aWV3IiwiJHRhcmdldCIsImNvbm5lY3RlZEZpZWxkcyIsIk9iamVjdCIsInZhbHVlcyIsIkRhdGEiLCJmaWx0ZXIiLCJjb25uZWN0ZWRGaWVsZCIsImhhc093blByb3BlcnR5IiwibWFwIiwiY29ubm5lY3RlZEZpZWxkRWxlbWVudCIsInB1c2giLCJ0ZXJtIiwiZm9yRWFjaCIsInF1YWxpZmllciIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsIm1hbmlmZXN0Rm9ybUNvbnRhaW5lciIsImdldEZvcm1Db250YWluZXIiLCJmaWVsZHMiLCJrZXlzIiwiZmllbGRJZCIsImlkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiYWN0aW9ucyIsInNGb3JtQ29udGFpbmVySWQiLCJjcmVhdGVJZEZvckFubm90YXRpb24iLCJzQW5ub3RhdGlvblBhdGgiLCJpc1Zpc2libGUiLCJjb21waWxlRXhwcmVzc2lvbiIsIm5vdCIsImVxdWFsIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsIk1vZGVsSGVscGVyIiwiaXNTaW5nbGV0b24iLCJhRm9ybUVsZW1lbnRzIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJPdmVycmlkZVR5cGUiLCJvdmVyd3JpdGUiLCJhY3Rpb24iLCJmYWNldE5hbWUiLCJsZW5ndGgiLCJvQWN0aW9uU2hvd0RldGFpbHMiLCJnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRCIsInRleHQiLCJpZkVsc2UiLCJwYXRoSW5Nb2RlbCIsIkFjdGlvblR5cGUiLCJTaG93Rm9ybURldGFpbHMiLCJwcmVzcyIsInNvbWUiLCJvRm9ybUVsZW1lbnQiLCJlbnRpdHlTZXQiLCJnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVycyIsIkZhY2V0cyIsImZhY2V0IiwiaXNSZWZlcmVuY2VGYWNldCIsImNyZWF0ZUZvcm1EZWZpbml0aW9uIiwiZ2V0Rm9ybUlEIiwidXNlRm9ybUNvbnRhaW5lckxhYmVscyIsImhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXciLCJjaGlsZEZhY2V0IiwiRXJyb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWN0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgeyBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbGxlY3Rpb25GYWNldFR5cGVzLFxuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhUG9pbnQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRQYXJ0T2ZQcmV2aWV3LFxuXHRSZWZlcmVuY2VGYWNldFR5cGVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IGdldFNlbWFudGljT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2Fubm90YXRpb25zL0RhdGFGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlQWN0aW9uLCBDb252ZXJ0ZXJBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBlcXVhbCwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLCBpZkVsc2UsIG5vdCwgcGF0aEluTW9kZWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgY3JlYXRlSWRGb3JBbm5vdGF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlT2JqZWN0LCBDdXN0b21FbGVtZW50IH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBpbnNlcnRDdXN0b21FbGVtZW50cywgT3ZlcnJpZGVUeXBlLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvRGF0YUZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGb3JtSUQsIGdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHR5cGUgeyBGb3JtYXRPcHRpb25zVHlwZSwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG5cdGZvcm1Db250YWluZXJzOiBGb3JtQ29udGFpbmVyW107XG5cdGlzVmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdFNsb3QgPSBcIlNsb3RcIixcblx0QW5ub3RhdGlvbiA9IFwiQW5ub3RhdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VGb3JtRWxlbWVudCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xuXHRjb25uZWN0ZWRGaWVsZHM/OiB7IHNlbWFudGljT2JqZWN0UGF0aD86IHN0cmluZyB9W107XG5cdGlzUGFydE9mUHJldmlldz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21Gb3JtRWxlbWVudCA9IEN1c3RvbUVsZW1lbnQ8XG5cdEJhc2VGb3JtRWxlbWVudCAmIHtcblx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdFx0dGVtcGxhdGU6IHN0cmluZztcblx0fVxuPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnQgPSBDdXN0b21Gb3JtRWxlbWVudCB8IEFubm90YXRpb25Gb3JtRWxlbWVudDtcblxuZXhwb3J0IHR5cGUgRm9ybUNvbnRhaW5lciA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhY3Rpb25zPzogQ29udmVydGVyQWN0aW9uW10gfCBCYXNlQWN0aW9uW107XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgZm9ybWF0IG9wdGlvbnMgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICovXG5mdW5jdGlvbiBnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKTogRm9ybWF0T3B0aW9uc1R5cGUge1xuXHRyZXR1cm4ge1xuXHRcdHRleHRMaW5lc0VkaXQ6IDRcblx0fTtcbn1cblxuZnVuY3Rpb24gaXNGaWVsZFBhcnRPZlByZXZpZXcoZmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsIGZvcm1QYXJ0T2ZQcmV2aWV3PzogUGFydE9mUHJldmlldyk6IGJvb2xlYW4ge1xuXHQvLyBCb3RoIGVhY2ggZm9ybSBhbmQgZmllbGQgY2FuIGhhdmUgdGhlIFBhcnRPZlByZXZpZXcgYW5ub3RhdGlvbi4gT25seSBpZiB0aGUgZm9ybSBpcyBub3QgaGlkZGVuIChub3QgcGFydE9mUHJldmlldykgd2UgYWxsb3cgdG9nZ2xpbmcgb24gZmllbGQgbGV2ZWxcblx0cmV0dXJuIChcblx0XHRmb3JtUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZSB8fFxuXHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldyA9PT0gdW5kZWZpbmVkIHx8XG5cdFx0ZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUFubm90YXRpb246IElkZW50aWZpY2F0aW9uIHwgRmllbGRHcm91cCB8IENvbnRhY3QgfCBEYXRhUG9pbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uO1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblxuXHRmdW5jdGlvbiBnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdCFpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbihmaWVsZCkgJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGNvbnN0IGZvcm1FbGVtZW50ID0ge1xuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZmllbGQpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpfS9gLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRpc1BhcnRPZlByZXZpZXc6IGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkLCBmb3JtUGFydE9mUHJldmlldylcblx0XHRcdH07XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFubm90YXRpb25cIiAmJlxuXHRcdFx0XHRmaWVsZC5UYXJnZXQuJHRhcmdldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Db25uZWN0ZWRGaWVsZHNUeXBlXCJcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCBjb25uZWN0ZWRGaWVsZHMgPSBPYmplY3QudmFsdWVzKGZpZWxkLlRhcmdldC4kdGFyZ2V0LkRhdGEpLmZpbHRlcigoY29ubmVjdGVkRmllbGQ6IE9iamVjdCkgPT5cblx0XHRcdFx0XHRjb25uZWN0ZWRGaWVsZD8uaGFzT3duUHJvcGVydHkoXCJWYWx1ZVwiKVxuXHRcdFx0XHQpO1xuXHRcdFx0XHQoZm9ybUVsZW1lbnQgYXMgQW5ub3RhdGlvbkZvcm1FbGVtZW50KS5jb25uZWN0ZWRGaWVsZHMgPSBjb25uZWN0ZWRGaWVsZHMubWFwKChjb25ubmVjdGVkRmllbGRFbGVtZW50KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHsgc2VtYW50aWNPYmplY3RQYXRoOiBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgY29ubm5lY3RlZEZpZWxkRWxlbWVudCkgfTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaChmb3JtRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0c3dpdGNoIChmb3JtQW5ub3RhdGlvbj8udGVybSkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdGZvcm1Bbm5vdGF0aW9uLkRhdGEuZm9yRWFjaCgoZmllbGQpID0+IGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMoZmllbGQsIGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcpKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHRmb3JtQW5ub3RhdGlvbi5mb3JFYWNoKChmaWVsZCkgPT4gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZCwgZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldykpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYERhdGFQb2ludDo6JHtmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwifWAsXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSl9L2Bcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYENvbnRhY3Q6OiR7Zm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIn1gLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpfS9gXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaCgoZmllbGRJZCkgPT4ge1xuXHRcdFx0Zm9ybUVsZW1lbnRzW2ZpZWxkSWRdID0ge1xuXHRcdFx0XHRrZXk6IGZpZWxkSWQsXG5cdFx0XHRcdGlkOiBgQ3VzdG9tRm9ybUVsZW1lbnQ6OiR7ZmllbGRJZH1gLFxuXHRcdFx0XHR0eXBlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnR5cGUgfHwgRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zPzogQmFzZUFjdGlvbltdIHwgQ29udmVydGVyQWN0aW9uW11cbik6IEZvcm1Db250YWluZXIge1xuXHRjb25zdCBzRm9ybUNvbnRhaW5lcklkID0gY3JlYXRlSWRGb3JBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbikgYXMgc3RyaW5nO1xuXHRjb25zdCBzQW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSk7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgaXNWaXNpYmxlID0gY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKHRydWUsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pKSkpO1xuXHRsZXQgc0VudGl0eVNldFBhdGghOiBzdHJpbmc7XG5cdC8vIHJlc29sdmVkVGFyZ2V0IGRvZXNuJ3QgaGF2ZSBhIGVudGl0eVNldCBpbiBjYXNlIENvbnRhaW5tZW50cyBhbmQgUGFyYW10ZXJpemVkIHNlcnZpY2VzLlxuXHRpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgIT09IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KClcblx0KSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0fSBlbHNlIGlmIChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3Q/LmNvbnRhaW5zVGFyZ2V0ID09PSB0cnVlKSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCBmYWxzZSk7XG5cdH0gZWxzZSBpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdCFzRW50aXR5U2V0UGF0aCAmJlxuXHRcdE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkpXG5cdCkge1xuXHRcdHNFbnRpdHlTZXRQYXRoID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKT8uZnVsbHlRdWFsaWZpZWROYW1lIGFzIHN0cmluZztcblx0fVxuXHRjb25zdCBhRm9ybUVsZW1lbnRzID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0eyBmb3JtYXRPcHRpb25zOiBPdmVycmlkZVR5cGUub3ZlcndyaXRlIH1cblx0KTtcblxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLmZhY2V0TmFtZSA9PSBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSA6IFtdO1xuXHRpZiAoYWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRhY3Rpb25zID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3Qgb0FjdGlvblNob3dEZXRhaWxzOiBCYXNlQWN0aW9uID0ge1xuXHRcdGlkOiBnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRChzRm9ybUNvbnRhaW5lcklkLCBcIlNob3dIaWRlRGV0YWlsc1wiKSxcblx0XHRrZXk6IFwiU3RhbmRhcmRBY3Rpb246OlNob3dIaWRlRGV0YWlsc1wiLFxuXHRcdHRleHQ6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInNob3dEZXRhaWxzXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX0hJREVfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX1NIT1dfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpXG5cdFx0XHQpXG5cdFx0KSxcblx0XHR0eXBlOiBBY3Rpb25UeXBlLlNob3dGb3JtRGV0YWlscyxcblx0XHRwcmVzczogXCJGb3JtQ29udGFpbmVyUnVudGltZS50b2dnbGVEZXRhaWxzXCJcblx0fTtcblxuXHRpZiAoXG5cdFx0ZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpICE9PSBmYWxzZSAmJlxuXHRcdGFGb3JtRWxlbWVudHMuc29tZSgob0Zvcm1FbGVtZW50KSA9PiBvRm9ybUVsZW1lbnQuaXNQYXJ0T2ZQcmV2aWV3ID09PSBmYWxzZSlcblx0KSB7XG5cdFx0aWYgKGFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YWN0aW9ucy5wdXNoKG9BY3Rpb25TaG93RGV0YWlscyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFjdGlvbnMgPSBbb0FjdGlvblNob3dEZXRhaWxzXTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGlkOiBzRm9ybUNvbnRhaW5lcklkLFxuXHRcdGZvcm1FbGVtZW50czogYUZvcm1FbGVtZW50cyxcblx0XHRhbm5vdGF0aW9uUGF0aDogc0Fubm90YXRpb25QYXRoLFxuXHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM/OiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXVxuKTogRm9ybUNvbnRhaW5lcltdIHtcblx0Y29uc3QgZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSA9IFtdO1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKChmYWNldCkgPT4ge1xuXHRcdC8vIElnbm9yZSBsZXZlbCAzIGNvbGxlY3Rpb24gZmFjZXRcblx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3JtQ29udGFpbmVycy5wdXNoKGdldEZvcm1Db250YWluZXIoZmFjZXQgYXMgUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucykpO1xuXHR9KTtcblx0cmV0dXJuIGZvcm1Db250YWluZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VGYWNldChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMpOiBmYWNldERlZmluaXRpb24gaXMgUmVmZXJlbmNlRmFjZXRUeXBlcyB7XG5cdHJldHVybiBmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybURlZmluaXRpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9ucz86IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkOiBnZXRGb3JtSUQoZmFjZXREZWZpbml0aW9uKSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogdHJ1ZSxcblx0XHRcdFx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogZmFjZXREZWZpbml0aW9uLkZhY2V0cy5zb21lKFxuXHRcdFx0XHRcdChjaGlsZEZhY2V0KSA9PiBjaGlsZEZhY2V0LmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucyksXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQ6XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRpZDogZ2V0Rm9ybUlEKGZhY2V0RGVmaW5pdGlvbiksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGZhbHNlLFxuXHRcdFx0XHRoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3OiBmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogW2dldEZvcm1Db250YWluZXIoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKV0sXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY3JlYXRlIGZvcm0gYmFzZWQgb24gUmVmZXJlbmNlVVJMRmFjZXRcIik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXFDWUEsZUFBZTtFQUFBLFdBQWZBLGVBQWU7SUFBZkEsZUFBZTtJQUFmQSxlQUFlO0lBQWZBLGVBQWU7RUFBQSxHQUFmQSxlQUFlLEtBQWZBLGVBQWU7RUFBQTtFQXlDM0I7QUFDQTtBQUNB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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Contact } from "@sap-ux/vocabularies-types/vocabularies/Communication";
|
|
2
|
+
import { CommunicationAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Communication";
|
|
2
3
|
import type {
|
|
3
4
|
CollectionFacetTypes,
|
|
4
5
|
DataFieldAbstractTypes,
|
|
@@ -16,10 +17,10 @@ import type { CompiledBindingToolkitExpression } from "sap/fe/core/helpers/Bindi
|
|
|
16
17
|
import { compileExpression, equal, getExpressionFromAnnotation, ifElse, not, pathInModel } from "sap/fe/core/helpers/BindingToolkit";
|
|
17
18
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
18
19
|
import { getTargetEntitySetPath, getTargetObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
19
|
-
import {
|
|
20
|
+
import { createIdForAnnotation } from "../../../helpers/StableIdHelper";
|
|
20
21
|
import type ConverterContext from "../../ConverterContext";
|
|
21
22
|
import type { ConfigurableObject, CustomElement } from "../../helpers/ConfigurableObject";
|
|
22
|
-
import { insertCustomElements, Placement } from "../../helpers/ConfigurableObject";
|
|
23
|
+
import { insertCustomElements, OverrideType, Placement } from "../../helpers/ConfigurableObject";
|
|
23
24
|
import { isReferencePropertyStaticallyHidden } from "../../helpers/DataFieldHelper";
|
|
24
25
|
import { getFormID, getFormStandardActionButtonID } from "../../helpers/ID";
|
|
25
26
|
import { KeyHelper } from "../../helpers/Key";
|
|
@@ -53,6 +54,7 @@ export type AnnotationFormElement = BaseFormElement & {
|
|
|
53
54
|
annotationPath?: string;
|
|
54
55
|
isValueMultilineText?: boolean;
|
|
55
56
|
semanticObjectPath?: string;
|
|
57
|
+
connectedFields?: { semanticObjectPath?: string }[];
|
|
56
58
|
isPartOfPreview?: boolean;
|
|
57
59
|
};
|
|
58
60
|
|
|
@@ -108,14 +110,26 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
|
|
|
108
110
|
!isReferencePropertyStaticallyHidden(field) &&
|
|
109
111
|
field.annotations?.UI?.Hidden?.valueOf() !== true
|
|
110
112
|
) {
|
|
111
|
-
|
|
113
|
+
const formElement = {
|
|
112
114
|
key: KeyHelper.generateKeyFromDataField(field),
|
|
113
115
|
type: FormElementType.Annotation,
|
|
114
116
|
annotationPath: `${converterContext.getEntitySetBasedAnnotationPath(field.fullyQualifiedName)}/`,
|
|
115
117
|
semanticObjectPath: semanticObjectAnnotationPath,
|
|
116
118
|
formatOptions: getDefaultFormatOptionsForForm(),
|
|
117
119
|
isPartOfPreview: isFieldPartOfPreview(field, formPartOfPreview)
|
|
118
|
-
}
|
|
120
|
+
};
|
|
121
|
+
if (
|
|
122
|
+
field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" &&
|
|
123
|
+
field.Target.$target.$Type === "com.sap.vocabularies.UI.v1.ConnectedFieldsType"
|
|
124
|
+
) {
|
|
125
|
+
const connectedFields = Object.values(field.Target.$target.Data).filter((connectedField: Object) =>
|
|
126
|
+
connectedField?.hasOwnProperty("Value")
|
|
127
|
+
);
|
|
128
|
+
(formElement as AnnotationFormElement).connectedFields = connectedFields.map((connnectedFieldElement) => {
|
|
129
|
+
return { semanticObjectPath: getSemanticObjectPath(converterContext, connnectedFieldElement) };
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
formElements.push(formElement);
|
|
119
133
|
}
|
|
120
134
|
}
|
|
121
135
|
|
|
@@ -181,8 +195,8 @@ export function getFormContainer(
|
|
|
181
195
|
converterContext: ConverterContext,
|
|
182
196
|
actions?: BaseAction[] | ConverterAction[]
|
|
183
197
|
): FormContainer {
|
|
184
|
-
const sFormContainerId =
|
|
185
|
-
const sAnnotationPath =
|
|
198
|
+
const sFormContainerId = createIdForAnnotation(facetDefinition) as string;
|
|
199
|
+
const sAnnotationPath = converterContext.getEntitySetBasedAnnotationPath(facetDefinition.fullyQualifiedName);
|
|
186
200
|
const resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
187
201
|
const isVisible = compileExpression(not(equal(true, getExpressionFromAnnotation(facetDefinition.annotations?.UI?.Hidden))));
|
|
188
202
|
let sEntitySetPath!: string;
|
|
@@ -204,7 +218,7 @@ export function getFormContainer(
|
|
|
204
218
|
const aFormElements = insertCustomElements(
|
|
205
219
|
getFormElementsFromAnnotations(facetDefinition, converterContext),
|
|
206
220
|
getFormElementsFromManifest(facetDefinition, converterContext),
|
|
207
|
-
{ formatOptions:
|
|
221
|
+
{ formatOptions: OverrideType.overwrite }
|
|
208
222
|
);
|
|
209
223
|
|
|
210
224
|
actions = actions !== undefined ? actions.filter((action) => action.facetName == facetDefinition.fullyQualifiedName) : [];
|
|
@@ -277,7 +291,7 @@ export function createFormDefinition(
|
|
|
277
291
|
case UIAnnotationTypes.CollectionFacet:
|
|
278
292
|
// Keep only valid children
|
|
279
293
|
return {
|
|
280
|
-
id: getFormID(
|
|
294
|
+
id: getFormID(facetDefinition),
|
|
281
295
|
useFormContainerLabels: true,
|
|
282
296
|
hasFacetsNotPartOfPreview: facetDefinition.Facets.some(
|
|
283
297
|
(childFacet) => childFacet.annotations?.UI?.PartOfPreview?.valueOf() === false
|
|
@@ -287,7 +301,7 @@ export function createFormDefinition(
|
|
|
287
301
|
};
|
|
288
302
|
case UIAnnotationTypes.ReferenceFacet:
|
|
289
303
|
return {
|
|
290
|
-
id: getFormID(
|
|
304
|
+
id: getFormID(facetDefinition),
|
|
291
305
|
useFormContainerLabels: false,
|
|
292
306
|
hasFacetsNotPartOfPreview: facetDefinition.annotations?.UI?.PartOfPreview?.valueOf() === false,
|
|
293
307
|
formContainers: [getFormContainer(facetDefinition, converterContext, actions)],
|