@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
|
@@ -6,177 +6,138 @@ sap.ui.define(["sap/base/Log"], function (Log) {
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
-
|
|
10
9
|
//function to check for statically hidden reference properties
|
|
11
10
|
function isReferencePropertyStaticallyHidden(property) {
|
|
12
11
|
var _property$annotations, _property$annotations2, _property$annotations3, _property$Value, _property$Value$$targ, _property$Value$$targ2, _property$Value$$targ3, _property$Value$$targ4, _property$Value3, _property$Value3$$tar, _propertyValueAnnotat, _propertyValueAnnotat2, _property$annotations4, _property$annotations5, _property$annotations6;
|
|
13
|
-
|
|
14
12
|
if (property) {
|
|
15
13
|
switch (property.$Type) {
|
|
16
14
|
case "com.sap.vocabularies.UI.v1.DataFieldForAnnotation":
|
|
17
15
|
return isAnnotationFieldStaticallyHidden(property);
|
|
18
|
-
|
|
19
16
|
case "com.sap.vocabularies.UI.v1.DataField":
|
|
20
|
-
if (
|
|
17
|
+
if (((_property$annotations = property.annotations) === null || _property$annotations === void 0 ? void 0 : (_property$annotations2 = _property$annotations.UI) === null || _property$annotations2 === void 0 ? void 0 : (_property$annotations3 = _property$annotations2.Hidden) === null || _property$annotations3 === void 0 ? void 0 : _property$annotations3.valueOf()) === true) {
|
|
21
18
|
var _UI, _UI$HiddenFilter;
|
|
22
|
-
|
|
23
19
|
if (property.annotations && ((_UI = property.annotations.UI) === null || _UI === void 0 ? void 0 : (_UI$HiddenFilter = _UI.HiddenFilter) === null || _UI$HiddenFilter === void 0 ? void 0 : _UI$HiddenFilter.valueOf()) === true) {
|
|
24
20
|
Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
25
21
|
}
|
|
26
|
-
|
|
27
22
|
return true;
|
|
28
|
-
} else if (
|
|
23
|
+
} else if (((_property$Value = property.Value) === null || _property$Value === void 0 ? void 0 : (_property$Value$$targ = _property$Value.$target) === null || _property$Value$$targ === void 0 ? void 0 : (_property$Value$$targ2 = _property$Value$$targ.annotations) === null || _property$Value$$targ2 === void 0 ? void 0 : (_property$Value$$targ3 = _property$Value$$targ2.UI) === null || _property$Value$$targ3 === void 0 ? void 0 : (_property$Value$$targ4 = _property$Value$$targ3.Hidden) === null || _property$Value$$targ4 === void 0 ? void 0 : _property$Value$$targ4.valueOf()) === true) {
|
|
29
24
|
var _property$Value2, _property$Value2$$tar, _property$Value2$$tar2, _property$Value2$$tar3, _property$Value2$$tar4;
|
|
30
|
-
|
|
31
25
|
if (((_property$Value2 = property.Value) === null || _property$Value2 === void 0 ? void 0 : (_property$Value2$$tar = _property$Value2.$target) === null || _property$Value2$$tar === void 0 ? void 0 : (_property$Value2$$tar2 = _property$Value2$$tar.annotations) === null || _property$Value2$$tar2 === void 0 ? void 0 : (_property$Value2$$tar3 = _property$Value2$$tar2.UI) === null || _property$Value2$$tar3 === void 0 ? void 0 : (_property$Value2$$tar4 = _property$Value2$$tar3.HiddenFilter) === null || _property$Value2$$tar4 === void 0 ? void 0 : _property$Value2$$tar4.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
32
26
|
return true;
|
|
33
27
|
} else {
|
|
34
28
|
return false;
|
|
35
29
|
}
|
|
36
|
-
|
|
37
30
|
case "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":
|
|
38
31
|
var propertyValueAnnotation = (_property$Value3 = property.Value) === null || _property$Value3 === void 0 ? void 0 : (_property$Value3$$tar = _property$Value3.$target) === null || _property$Value3$$tar === void 0 ? void 0 : _property$Value3$$tar.annotations;
|
|
39
|
-
|
|
40
32
|
if ((propertyValueAnnotation === null || propertyValueAnnotation === void 0 ? void 0 : (_propertyValueAnnotat = propertyValueAnnotation.UI) === null || _propertyValueAnnotat === void 0 ? void 0 : (_propertyValueAnnotat2 = _propertyValueAnnotat.Hidden) === null || _propertyValueAnnotat2 === void 0 ? void 0 : _propertyValueAnnotat2.valueOf()) === true) {
|
|
41
33
|
var _propertyValueAnnotat3, _propertyValueAnnotat4;
|
|
42
|
-
|
|
43
34
|
if ((propertyValueAnnotation === null || propertyValueAnnotation === void 0 ? void 0 : (_propertyValueAnnotat3 = propertyValueAnnotation.UI) === null || _propertyValueAnnotat3 === void 0 ? void 0 : (_propertyValueAnnotat4 = _propertyValueAnnotat3.HiddenFilter) === null || _propertyValueAnnotat4 === void 0 ? void 0 : _propertyValueAnnotat4.valueOf()) === true) {
|
|
44
35
|
Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
45
36
|
}
|
|
46
|
-
|
|
47
37
|
return true;
|
|
48
38
|
} else {
|
|
49
39
|
return false;
|
|
50
40
|
}
|
|
51
|
-
|
|
52
41
|
case "com.sap.vocabularies.UI.v1.DataFieldWithUrl":
|
|
53
42
|
if (((_property$annotations4 = property.annotations) === null || _property$annotations4 === void 0 ? void 0 : (_property$annotations5 = _property$annotations4.UI) === null || _property$annotations5 === void 0 ? void 0 : (_property$annotations6 = _property$annotations5.Hidden) === null || _property$annotations6 === void 0 ? void 0 : _property$annotations6.valueOf()) === true) {
|
|
54
43
|
var _UI2, _UI2$HiddenFilter;
|
|
55
|
-
|
|
56
44
|
if (property.annotations && ((_UI2 = property.annotations.UI) === null || _UI2 === void 0 ? void 0 : (_UI2$HiddenFilter = _UI2.HiddenFilter) === null || _UI2$HiddenFilter === void 0 ? void 0 : _UI2$HiddenFilter.valueOf()) === true) {
|
|
57
45
|
Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
58
46
|
}
|
|
59
|
-
|
|
60
47
|
return true;
|
|
61
48
|
} else {
|
|
62
49
|
return false;
|
|
63
50
|
}
|
|
64
|
-
|
|
65
51
|
default:
|
|
66
52
|
}
|
|
67
53
|
}
|
|
68
54
|
}
|
|
69
|
-
|
|
70
55
|
_exports.isReferencePropertyStaticallyHidden = isReferencePropertyStaticallyHidden;
|
|
71
|
-
|
|
72
56
|
function isAnnotationFieldStaticallyHidden(annotationProperty) {
|
|
73
57
|
var _propertyValueAnnotat5, _propertyValueAnnotat6, _propertyValueAnnotat7;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
58
|
+
var target = annotationProperty.Target.$target.term;
|
|
59
|
+
// let ChartAnnotation: Chart, ConnectedFieldsAnnotation: ConnectedFields, FieldGroupAnnotation: FieldGroup, DataPointAnnotation: DataPoint;
|
|
77
60
|
switch (target) {
|
|
78
61
|
case "com.sap.vocabularies.UI.v1.Chart":
|
|
79
62
|
var ischartMeasureHidden;
|
|
80
63
|
annotationProperty.Target.$target.Measures.forEach(function (chartMeasure) {
|
|
81
64
|
var _chartMeasure$$target, _chartMeasure$$target2, _chartMeasure$$target3;
|
|
82
|
-
|
|
83
65
|
if (((_chartMeasure$$target = chartMeasure.$target.annotations) === null || _chartMeasure$$target === void 0 ? void 0 : (_chartMeasure$$target2 = _chartMeasure$$target.UI) === null || _chartMeasure$$target2 === void 0 ? void 0 : (_chartMeasure$$target3 = _chartMeasure$$target2.Hidden) === null || _chartMeasure$$target3 === void 0 ? void 0 : _chartMeasure$$target3.valueOf()) === true) {
|
|
84
66
|
var _UI3, _UI3$HiddenFilter;
|
|
85
|
-
|
|
86
67
|
Log.warning("Warning: Measure attribute for Chart " + chartMeasure.$target.name + " is statically hidden hence chart can't be rendered");
|
|
87
|
-
|
|
88
68
|
if (chartMeasure.$target.annotations && ((_UI3 = chartMeasure.$target.annotations.UI) === null || _UI3 === void 0 ? void 0 : (_UI3$HiddenFilter = _UI3.HiddenFilter) === null || _UI3$HiddenFilter === void 0 ? void 0 : _UI3$HiddenFilter.valueOf()) === true) {
|
|
89
69
|
Log.warning("Warning: Property " + chartMeasure.$target.name + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
90
70
|
}
|
|
91
|
-
|
|
92
71
|
ischartMeasureHidden = true;
|
|
93
72
|
}
|
|
94
73
|
});
|
|
95
|
-
|
|
96
74
|
if (ischartMeasureHidden === true) {
|
|
97
75
|
return true;
|
|
98
76
|
} else {
|
|
99
77
|
return false;
|
|
100
78
|
}
|
|
101
|
-
|
|
102
79
|
case "com.sap.vocabularies.UI.v1.ConnectedFields":
|
|
103
80
|
if (annotationProperty) {
|
|
104
81
|
var _annotationProperty$a, _annotationProperty$a2, _annotationProperty$a3;
|
|
105
|
-
|
|
106
82
|
if (((_annotationProperty$a = annotationProperty.annotations) === null || _annotationProperty$a === void 0 ? void 0 : (_annotationProperty$a2 = _annotationProperty$a.UI) === null || _annotationProperty$a2 === void 0 ? void 0 : (_annotationProperty$a3 = _annotationProperty$a2.Hidden) === null || _annotationProperty$a3 === void 0 ? void 0 : _annotationProperty$a3.valueOf()) === true) {
|
|
107
83
|
var _UI4, _UI4$HiddenFilter;
|
|
108
|
-
|
|
109
84
|
if (annotationProperty.annotations && ((_UI4 = annotationProperty.annotations.UI) === null || _UI4 === void 0 ? void 0 : (_UI4$HiddenFilter = _UI4.HiddenFilter) === null || _UI4$HiddenFilter === void 0 ? void 0 : _UI4$HiddenFilter.valueOf()) === true) {
|
|
110
85
|
Log.warning("Warning: Property " + annotationProperty.Target.$target.qualifier + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
111
86
|
}
|
|
112
|
-
|
|
113
87
|
return true;
|
|
114
88
|
} else {
|
|
115
89
|
return false;
|
|
116
90
|
}
|
|
117
91
|
}
|
|
118
|
-
|
|
119
92
|
break;
|
|
120
|
-
|
|
121
93
|
case "com.sap.vocabularies.UI.v1.FieldGroup":
|
|
122
94
|
if (annotationProperty) {
|
|
123
|
-
annotationProperty.Target.$target.Data.
|
|
124
|
-
return isReferencePropertyStaticallyHidden(field);
|
|
125
|
-
})
|
|
95
|
+
if (annotationProperty.Target.$target.Data.every(function (field) {
|
|
96
|
+
return isReferencePropertyStaticallyHidden(field) === true;
|
|
97
|
+
})) {
|
|
98
|
+
return true;
|
|
99
|
+
} else {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
126
102
|
}
|
|
127
|
-
|
|
128
103
|
break;
|
|
129
|
-
|
|
130
104
|
case "com.sap.vocabularies.UI.v1.DataPoint":
|
|
131
105
|
var propertyValueAnnotation = annotationProperty.Target.$target.Value.$target;
|
|
132
|
-
|
|
133
106
|
if (((_propertyValueAnnotat5 = propertyValueAnnotation.annotations) === null || _propertyValueAnnotat5 === void 0 ? void 0 : (_propertyValueAnnotat6 = _propertyValueAnnotat5.UI) === null || _propertyValueAnnotat6 === void 0 ? void 0 : (_propertyValueAnnotat7 = _propertyValueAnnotat6.Hidden) === null || _propertyValueAnnotat7 === void 0 ? void 0 : _propertyValueAnnotat7.valueOf()) === true) {
|
|
134
107
|
var _propertyValueAnnotat8, _propertyValueAnnotat9, _propertyValueAnnotat10;
|
|
135
|
-
|
|
136
108
|
if (((_propertyValueAnnotat8 = propertyValueAnnotation.annotations) === null || _propertyValueAnnotat8 === void 0 ? void 0 : (_propertyValueAnnotat9 = _propertyValueAnnotat8.UI) === null || _propertyValueAnnotat9 === void 0 ? void 0 : (_propertyValueAnnotat10 = _propertyValueAnnotat9.HiddenFilter) === null || _propertyValueAnnotat10 === void 0 ? void 0 : _propertyValueAnnotat10.valueOf()) === true) {
|
|
137
109
|
Log.warning("Warning: Property " + annotationProperty.Target.$target.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
138
110
|
}
|
|
139
|
-
|
|
140
111
|
return true;
|
|
141
112
|
} else {
|
|
142
113
|
return false;
|
|
143
114
|
}
|
|
144
|
-
|
|
145
115
|
default:
|
|
146
116
|
}
|
|
147
117
|
}
|
|
148
|
-
|
|
149
118
|
_exports.isAnnotationFieldStaticallyHidden = isAnnotationFieldStaticallyHidden;
|
|
150
|
-
|
|
151
119
|
function isHeaderStaticallyHidden(property) {
|
|
152
120
|
if (property.targetObject) {
|
|
153
121
|
var _headerInfoAnnotation, _headerInfoAnnotation2, _headerInfoAnnotation3, _headerInfoAnnotation9, _headerInfoAnnotation10, _headerInfoAnnotation11, _headerInfoAnnotation12, _headerInfoAnnotation13, _headerInfoAnnotation14;
|
|
154
|
-
|
|
155
122
|
var headerInfoAnnotation = property.targetObject;
|
|
156
|
-
|
|
157
123
|
if (headerInfoAnnotation.annotations && ((_headerInfoAnnotation = headerInfoAnnotation.annotations) === null || _headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation2 = _headerInfoAnnotation.UI) === null || _headerInfoAnnotation2 === void 0 ? void 0 : (_headerInfoAnnotation3 = _headerInfoAnnotation2.Hidden) === null || _headerInfoAnnotation3 === void 0 ? void 0 : _headerInfoAnnotation3.valueOf()) === true) {
|
|
158
124
|
var _headerInfoAnnotation4, _headerInfoAnnotation5, _headerInfoAnnotation6, _headerInfoAnnotation7, _headerInfoAnnotation8;
|
|
159
|
-
|
|
160
125
|
if (((_headerInfoAnnotation4 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation4 === void 0 ? void 0 : (_headerInfoAnnotation5 = _headerInfoAnnotation4.$target) === null || _headerInfoAnnotation5 === void 0 ? void 0 : (_headerInfoAnnotation6 = _headerInfoAnnotation5.annotations) === null || _headerInfoAnnotation6 === void 0 ? void 0 : (_headerInfoAnnotation7 = _headerInfoAnnotation6.UI) === null || _headerInfoAnnotation7 === void 0 ? void 0 : (_headerInfoAnnotation8 = _headerInfoAnnotation7.HiddenFilter) === null || _headerInfoAnnotation8 === void 0 ? void 0 : _headerInfoAnnotation8.valueOf()) === true) {
|
|
161
126
|
Log.warning("Warning: Property " + headerInfoAnnotation.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
162
127
|
}
|
|
163
|
-
|
|
164
128
|
return true;
|
|
165
129
|
} else if (headerInfoAnnotation !== null && headerInfoAnnotation !== void 0 && (_headerInfoAnnotation9 = headerInfoAnnotation.Value) !== null && _headerInfoAnnotation9 !== void 0 && _headerInfoAnnotation9.$target && (headerInfoAnnotation === null || headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation10 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation10 === void 0 ? void 0 : (_headerInfoAnnotation11 = _headerInfoAnnotation10.$target) === null || _headerInfoAnnotation11 === void 0 ? void 0 : (_headerInfoAnnotation12 = _headerInfoAnnotation11.annotations) === null || _headerInfoAnnotation12 === void 0 ? void 0 : (_headerInfoAnnotation13 = _headerInfoAnnotation12.UI) === null || _headerInfoAnnotation13 === void 0 ? void 0 : (_headerInfoAnnotation14 = _headerInfoAnnotation13.Hidden) === null || _headerInfoAnnotation14 === void 0 ? void 0 : _headerInfoAnnotation14.valueOf()) === true) {
|
|
166
130
|
var _headerInfoAnnotation15, _headerInfoAnnotation16, _headerInfoAnnotation17, _headerInfoAnnotation18, _headerInfoAnnotation19;
|
|
167
|
-
|
|
168
131
|
if ((headerInfoAnnotation === null || headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation15 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation15 === void 0 ? void 0 : (_headerInfoAnnotation16 = _headerInfoAnnotation15.$target) === null || _headerInfoAnnotation16 === void 0 ? void 0 : (_headerInfoAnnotation17 = _headerInfoAnnotation16.annotations) === null || _headerInfoAnnotation17 === void 0 ? void 0 : (_headerInfoAnnotation18 = _headerInfoAnnotation17.UI) === null || _headerInfoAnnotation18 === void 0 ? void 0 : (_headerInfoAnnotation19 = _headerInfoAnnotation18.HiddenFilter) === null || _headerInfoAnnotation19 === void 0 ? void 0 : _headerInfoAnnotation19.valueOf()) === true) {
|
|
169
132
|
Log.warning("Warning: Property " + headerInfoAnnotation.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
|
|
170
133
|
}
|
|
171
|
-
|
|
172
134
|
return true;
|
|
173
135
|
} else {
|
|
174
136
|
return false;
|
|
175
137
|
}
|
|
176
138
|
}
|
|
177
139
|
}
|
|
178
|
-
|
|
179
140
|
_exports.isHeaderStaticallyHidden = isHeaderStaticallyHidden;
|
|
180
141
|
return _exports;
|
|
181
142
|
}, false);
|
|
182
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsInByb3BlcnR5IiwiJFR5cGUiLCJpc0Fubm90YXRpb25GaWVsZFN0YXRpY2FsbHlIaWRkZW4iLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIkhpZGRlbkZpbHRlciIsIkxvZyIsIndhcm5pbmciLCJWYWx1ZSIsInBhdGgiLCIkdGFyZ2V0IiwicHJvcGVydHlWYWx1ZUFubm90YXRpb24iLCJhbm5vdGF0aW9uUHJvcGVydHkiLCJ0YXJnZXQiLCJUYXJnZXQiLCJ0ZXJtIiwiaXNjaGFydE1lYXN1cmVIaWRkZW4iLCJNZWFzdXJlcyIsImZvckVhY2giLCJjaGFydE1lYXN1cmUiLCJuYW1lIiwicXVhbGlmaWVyIiwiRGF0YSIsImZpZWxkIiwiaXNIZWFkZXJTdGF0aWNhbGx5SGlkZGVuIiwidGFyZ2V0T2JqZWN0IiwiaGVhZGVySW5mb0Fubm90YXRpb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFGaWVsZEhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhRmllbGRGb3JBbm5vdGF0aW9uVHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcblxuLy9mdW5jdGlvbiB0byBjaGVjayBmb3Igc3RhdGljYWxseSBoaWRkZW4gcmVmZXJlbmNlIHByb3BlcnRpZXNcbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbihwcm9wZXJ0eT86IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCB1bmRlZmluZWQpIHtcblx0aWYgKHByb3BlcnR5KSB7XG5cdFx0c3dpdGNoIChwcm9wZXJ0eS4kVHlwZSkge1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHRyZXR1cm4gaXNBbm5vdGF0aW9uRmllbGRTdGF0aWNhbGx5SGlkZGVuKHByb3BlcnR5KTtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkOlxuXHRcdFx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnMgJiYgcHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucyAmJiAocHJvcGVydHkuYW5ub3RhdGlvbnMgYXMgYW55KS5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eS5WYWx1ZS4kdGFyZ2V0ICYmIHByb3BlcnR5LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnR5LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKVxuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdHByb3BlcnR5LlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aDpcblx0XHRcdFx0Y29uc3QgcHJvcGVydHlWYWx1ZUFubm90YXRpb24gPSBwcm9wZXJ0eS5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM7XG5cdFx0XHRcdGlmIChwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbj8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uPy5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aFVybDpcblx0XHRcdFx0aWYgKHByb3BlcnR5LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnMgJiYgKHByb3BlcnR5LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRkZWZhdWx0OlxuXHRcdH1cblx0fVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQW5ub3RhdGlvbkZpZWxkU3RhdGljYWxseUhpZGRlbihhbm5vdGF0aW9uUHJvcGVydHk6IERhdGFGaWVsZEZvckFubm90YXRpb25UeXBlcykge1xuXHRjb25zdCB0YXJnZXQgPSBhbm5vdGF0aW9uUHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQudGVybTtcblx0Ly8gbGV0IENoYXJ0QW5ub3RhdGlvbjogQ2hhcnQsIENvbm5lY3RlZEZpZWxkc0Fubm90YXRpb246IENvbm5lY3RlZEZpZWxkcywgRmllbGRHcm91cEFubm90YXRpb246IEZpZWxkR3JvdXAsIERhdGFQb2ludEFubm90YXRpb246IERhdGFQb2ludDtcblx0c3dpdGNoICh0YXJnZXQpIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0bGV0IGlzY2hhcnRNZWFzdXJlSGlkZGVuO1xuXHRcdFx0YW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0Lk1lYXN1cmVzLmZvckVhY2goKGNoYXJ0TWVhc3VyZSkgPT4ge1xuXHRcdFx0XHRpZiAoY2hhcnRNZWFzdXJlLiR0YXJnZXQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBNZWFzdXJlIGF0dHJpYnV0ZSBmb3IgQ2hhcnQgXCIgK1xuXHRcdFx0XHRcdFx0XHRjaGFydE1lYXN1cmUuJHRhcmdldC5uYW1lICtcblx0XHRcdFx0XHRcdFx0XCIgaXMgc3RhdGljYWxseSBoaWRkZW4gaGVuY2UgY2hhcnQgY2FuJ3QgYmUgcmVuZGVyZWRcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0Y2hhcnRNZWFzdXJlLiR0YXJnZXQuYW5ub3RhdGlvbnMgJiZcblx0XHRcdFx0XHRcdChjaGFydE1lYXN1cmUuJHRhcmdldC5hbm5vdGF0aW9ucyBhcyBhbnkpLlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdGNoYXJ0TWVhc3VyZS4kdGFyZ2V0Lm5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlzY2hhcnRNZWFzdXJlSGlkZGVuID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRpZiAoaXNjaGFydE1lYXN1cmVIaWRkZW4gPT09IHRydWUpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5Db25uZWN0ZWRGaWVsZHM6XG5cdFx0XHRpZiAoYW5ub3RhdGlvblByb3BlcnR5KSB7XG5cdFx0XHRcdGlmIChhbm5vdGF0aW9uUHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGlmIChhbm5vdGF0aW9uUHJvcGVydHkuYW5ub3RhdGlvbnMgJiYgKGFubm90YXRpb25Qcm9wZXJ0eS5hbm5vdGF0aW9ucyBhcyBhbnkpLlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5xdWFsaWZpZXIgK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5GaWVsZEdyb3VwOlxuXHRcdFx0aWYgKGFubm90YXRpb25Qcm9wZXJ0eSkge1xuXHRcdFx0XHQoYW5ub3RhdGlvblByb3BlcnR5IGFzIGFueSkuVGFyZ2V0LiR0YXJnZXQuRGF0YS5mb3JFYWNoKChmaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcykgPT5cblx0XHRcdFx0XHRpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbihmaWVsZClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRGF0YVBvaW50OlxuXHRcdFx0Y29uc3QgcHJvcGVydHlWYWx1ZUFubm90YXRpb24gPSAoYW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0IGFzIGFueSkuVmFsdWUuJHRhcmdldDtcblx0XHRcdGlmIChwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbi5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdGlmIChwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbi5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0LlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRkZWZhdWx0OlxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hlYWRlclN0YXRpY2FsbHlIaWRkZW4ocHJvcGVydHk/OiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKSB7XG5cdGlmICgocHJvcGVydHkgYXMgYW55KS50YXJnZXRPYmplY3QpIHtcblx0XHRjb25zdCBoZWFkZXJJbmZvQW5ub3RhdGlvbiA9IChwcm9wZXJ0eSBhcyBhbnkpLnRhcmdldE9iamVjdDtcblx0XHRpZiAoaGVhZGVySW5mb0Fubm90YXRpb24uYW5ub3RhdGlvbnMgJiYgaGVhZGVySW5mb0Fubm90YXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0aWYgKGhlYWRlckluZm9Bbm5vdGF0aW9uLlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0aGVhZGVySW5mb0Fubm90YXRpb24uVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0aGVhZGVySW5mb0Fubm90YXRpb24/LlZhbHVlPy4kdGFyZ2V0ICYmXG5cdFx0XHRoZWFkZXJJbmZvQW5ub3RhdGlvbj8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWVcblx0XHQpIHtcblx0XHRcdGlmIChoZWFkZXJJbmZvQW5ub3RhdGlvbj8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRoZWFkZXJJbmZvQW5ub3RhdGlvbi5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQVFBO0VBQ08sU0FBU0EsbUNBQVQsQ0FBNkNDLFFBQTdDLEVBQTRGO0lBQUE7O0lBQ2xHLElBQUlBLFFBQUosRUFBYztNQUNiLFFBQVFBLFFBQVEsQ0FBQ0MsS0FBakI7UUFDQztVQUNDLE9BQU9DLGlDQUFpQyxDQUFDRixRQUFELENBQXhDOztRQUNEO1VBQ0MsSUFBSUEsUUFBUSxDQUFDRyxXQUFULElBQXdCLDBCQUFBSCxRQUFRLENBQUNHLFdBQVQsMEdBQXNCQyxFQUF0Qiw0R0FBMEJDLE1BQTFCLGtGQUFrQ0MsT0FBbEMsUUFBZ0QsSUFBNUUsRUFBa0Y7WUFBQTs7WUFDakYsSUFBSU4sUUFBUSxDQUFDRyxXQUFULElBQXdCLFFBQUNILFFBQVEsQ0FBQ0csV0FBVixDQUE4QkMsRUFBOUIsZ0VBQWtDRyxZQUFsQyxzRUFBZ0RELE9BQWhELFFBQThELElBQTFGLEVBQWdHO2NBQy9G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
|
|
143
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsInByb3BlcnR5IiwiJFR5cGUiLCJpc0Fubm90YXRpb25GaWVsZFN0YXRpY2FsbHlIaWRkZW4iLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIkhpZGRlbkZpbHRlciIsIkxvZyIsIndhcm5pbmciLCJWYWx1ZSIsInBhdGgiLCIkdGFyZ2V0IiwicHJvcGVydHlWYWx1ZUFubm90YXRpb24iLCJhbm5vdGF0aW9uUHJvcGVydHkiLCJ0YXJnZXQiLCJUYXJnZXQiLCJ0ZXJtIiwiaXNjaGFydE1lYXN1cmVIaWRkZW4iLCJNZWFzdXJlcyIsImZvckVhY2giLCJjaGFydE1lYXN1cmUiLCJuYW1lIiwicXVhbGlmaWVyIiwiRGF0YSIsImV2ZXJ5IiwiZmllbGQiLCJpc0hlYWRlclN0YXRpY2FsbHlIaWRkZW4iLCJ0YXJnZXRPYmplY3QiLCJoZWFkZXJJbmZvQW5ub3RhdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0YUZpZWxkSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgRGF0YUZpZWxkRm9yQW5ub3RhdGlvblR5cGVzLCBGaWVsZEdyb3VwIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMsIFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5cbi8vZnVuY3Rpb24gdG8gY2hlY2sgZm9yIHN0YXRpY2FsbHkgaGlkZGVuIHJlZmVyZW5jZSBwcm9wZXJ0aWVzXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VQcm9wZXJ0eVN0YXRpY2FsbHlIaWRkZW4ocHJvcGVydHk/OiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgdW5kZWZpbmVkKSB7XG5cdGlmIChwcm9wZXJ0eSkge1xuXHRcdHN3aXRjaCAocHJvcGVydHkuJFR5cGUpIHtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbjpcblx0XHRcdFx0cmV0dXJuIGlzQW5ub3RhdGlvbkZpZWxkU3RhdGljYWxseUhpZGRlbihwcm9wZXJ0eSk7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdFx0aWYgKHByb3BlcnR5LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnMgJiYgKHByb3BlcnR5LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHkuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHkuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpXG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbiA9IHByb3BlcnR5LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucztcblx0XHRcdFx0aWYgKHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdHByb3BlcnR5LlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoVXJsOlxuXHRcdFx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucyAmJiAocHJvcGVydHkuYW5ub3RhdGlvbnMgYXMgYW55KS5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdGRlZmF1bHQ6XG5cdFx0fVxuXHR9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uRmllbGRTdGF0aWNhbGx5SGlkZGVuKGFubm90YXRpb25Qcm9wZXJ0eTogRGF0YUZpZWxkRm9yQW5ub3RhdGlvblR5cGVzKSB7XG5cdGNvbnN0IHRhcmdldCA9IGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC50ZXJtO1xuXHQvLyBsZXQgQ2hhcnRBbm5vdGF0aW9uOiBDaGFydCwgQ29ubmVjdGVkRmllbGRzQW5ub3RhdGlvbjogQ29ubmVjdGVkRmllbGRzLCBGaWVsZEdyb3VwQW5ub3RhdGlvbjogRmllbGRHcm91cCwgRGF0YVBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50O1xuXHRzd2l0Y2ggKHRhcmdldCkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ6XG5cdFx0XHRsZXQgaXNjaGFydE1lYXN1cmVIaWRkZW47XG5cdFx0XHRhbm5vdGF0aW9uUHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQuTWVhc3VyZXMuZm9yRWFjaCgoY2hhcnRNZWFzdXJlKSA9PiB7XG5cdFx0XHRcdGlmIChjaGFydE1lYXN1cmUuJHRhcmdldC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcIldhcm5pbmc6IE1lYXN1cmUgYXR0cmlidXRlIGZvciBDaGFydCBcIiArXG5cdFx0XHRcdFx0XHRcdGNoYXJ0TWVhc3VyZS4kdGFyZ2V0Lm5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcIiBpcyBzdGF0aWNhbGx5IGhpZGRlbiBoZW5jZSBjaGFydCBjYW4ndCBiZSByZW5kZXJlZFwiXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRjaGFydE1lYXN1cmUuJHRhcmdldC5hbm5vdGF0aW9ucyAmJlxuXHRcdFx0XHRcdFx0KGNoYXJ0TWVhc3VyZS4kdGFyZ2V0LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0Y2hhcnRNZWFzdXJlLiR0YXJnZXQubmFtZSArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aXNjaGFydE1lYXN1cmVIaWRkZW4gPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGlmIChpc2NoYXJ0TWVhc3VyZUhpZGRlbiA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNvbm5lY3RlZEZpZWxkczpcblx0XHRcdGlmIChhbm5vdGF0aW9uUHJvcGVydHkpIHtcblx0XHRcdFx0aWYgKGFubm90YXRpb25Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0aWYgKGFubm90YXRpb25Qcm9wZXJ0eS5hbm5vdGF0aW9ucyAmJiAoYW5ub3RhdGlvblByb3BlcnR5LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0LnF1YWxpZmllciArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkZpZWxkR3JvdXA6XG5cdFx0XHRpZiAoYW5ub3RhdGlvblByb3BlcnR5KSB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHQoYW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0IGFzIEZpZWxkR3JvdXApLkRhdGEuZXZlcnkoXG5cdFx0XHRcdFx0XHQoZmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuKGZpZWxkKSA9PT0gdHJ1ZVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkRhdGFQb2ludDpcblx0XHRcdGNvbnN0IHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uID0gKGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldCBhcyBhbnkpLlZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0ZGVmYXVsdDpcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIZWFkZXJTdGF0aWNhbGx5SGlkZGVuKHByb3BlcnR5PzogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcykge1xuXHRpZiAoKHByb3BlcnR5IGFzIGFueSkudGFyZ2V0T2JqZWN0KSB7XG5cdFx0Y29uc3QgaGVhZGVySW5mb0Fubm90YXRpb24gPSAocHJvcGVydHkgYXMgYW55KS50YXJnZXRPYmplY3Q7XG5cdFx0aWYgKGhlYWRlckluZm9Bbm5vdGF0aW9uLmFubm90YXRpb25zICYmIGhlYWRlckluZm9Bbm5vdGF0aW9uLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdGlmIChoZWFkZXJJbmZvQW5ub3RhdGlvbi5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdGhlYWRlckluZm9Bbm5vdGF0aW9uLlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdGhlYWRlckluZm9Bbm5vdGF0aW9uPy5WYWx1ZT8uJHRhcmdldCAmJlxuXHRcdFx0aGVhZGVySW5mb0Fubm90YXRpb24/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHRpZiAoaGVhZGVySW5mb0Fubm90YXRpb24/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0aGVhZGVySW5mb0Fubm90YXRpb24uVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7OztFQUlBO0VBQ08sU0FBU0EsbUNBQW1DLENBQUNDLFFBQTZDLEVBQUU7SUFBQTtJQUNsRyxJQUFJQSxRQUFRLEVBQUU7TUFDYixRQUFRQSxRQUFRLENBQUNDLEtBQUs7UUFDckI7VUFDQyxPQUFPQyxpQ0FBaUMsQ0FBQ0YsUUFBUSxDQUFDO1FBQ25EO1VBQ0MsSUFBSSwwQkFBQUEsUUFBUSxDQUFDRyxXQUFXLG9GQUFwQixzQkFBc0JDLEVBQUUscUZBQXhCLHVCQUEwQkMsTUFBTSwyREFBaEMsdUJBQWtDQyxPQUFPLEVB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
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
DataFieldForAnnotationTypes,
|
|
4
|
-
UIAnnotationTerms,
|
|
5
|
-
UIAnnotationTypes
|
|
6
|
-
} from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
1
|
+
import type { DataFieldAbstractTypes, DataFieldForAnnotationTypes, FieldGroup } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
2
|
+
import { UIAnnotationTerms, UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
7
3
|
import Log from "sap/base/Log";
|
|
8
4
|
|
|
9
5
|
//function to check for statically hidden reference properties
|
|
@@ -13,7 +9,7 @@ export function isReferencePropertyStaticallyHidden(property?: DataFieldAbstract
|
|
|
13
9
|
case UIAnnotationTypes.DataFieldForAnnotation:
|
|
14
10
|
return isAnnotationFieldStaticallyHidden(property);
|
|
15
11
|
case UIAnnotationTypes.DataField:
|
|
16
|
-
if (property.annotations
|
|
12
|
+
if (property.annotations?.UI?.Hidden?.valueOf() === true) {
|
|
17
13
|
if (property.annotations && (property.annotations as any).UI?.HiddenFilter?.valueOf() === true) {
|
|
18
14
|
Log.warning(
|
|
19
15
|
"Warning: Property " +
|
|
@@ -22,7 +18,7 @@ export function isReferencePropertyStaticallyHidden(property?: DataFieldAbstract
|
|
|
22
18
|
);
|
|
23
19
|
}
|
|
24
20
|
return true;
|
|
25
|
-
} else if (property.Value
|
|
21
|
+
} else if (property.Value?.$target?.annotations?.UI?.Hidden?.valueOf() === true) {
|
|
26
22
|
if (property.Value?.$target?.annotations?.UI?.HiddenFilter?.valueOf() === true)
|
|
27
23
|
Log.warning(
|
|
28
24
|
"Warning: Property " +
|
|
@@ -113,9 +109,15 @@ export function isAnnotationFieldStaticallyHidden(annotationProperty: DataFieldF
|
|
|
113
109
|
break;
|
|
114
110
|
case UIAnnotationTerms.FieldGroup:
|
|
115
111
|
if (annotationProperty) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
if (
|
|
113
|
+
(annotationProperty.Target.$target as FieldGroup).Data.every(
|
|
114
|
+
(field: DataFieldAbstractTypes) => isReferencePropertyStaticallyHidden(field) === true
|
|
115
|
+
)
|
|
116
|
+
) {
|
|
117
|
+
return true;
|
|
118
|
+
} else {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
119
121
|
}
|
|
120
122
|
break;
|
|
121
123
|
case UIAnnotationTerms.DataPoint:
|
|
@@ -7,33 +7,29 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
var generate = StableIdHelper.generate;
|
|
10
|
-
|
|
11
10
|
var BASE_ID = ["fe"];
|
|
11
|
+
|
|
12
12
|
/**
|
|
13
13
|
* Shortcut to the stableIdHelper providing a "curry" like method where the last parameter is missing.
|
|
14
14
|
*
|
|
15
15
|
* @param sFixedPart
|
|
16
16
|
* @returns A shortcut function with the fixed ID part
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
18
|
function createIDGenerator() {
|
|
20
19
|
for (var _len = arguments.length, sFixedPart = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
21
20
|
sFixedPart[_key] = arguments[_key];
|
|
22
21
|
}
|
|
23
|
-
|
|
24
22
|
return function () {
|
|
25
23
|
for (var _len2 = arguments.length, sIDPart = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
26
24
|
sIDPart[_key2] = arguments[_key2];
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
return generate(BASE_ID.concat.apply(BASE_ID, sFixedPart.concat(sIDPart)));
|
|
30
27
|
};
|
|
31
28
|
}
|
|
29
|
+
|
|
32
30
|
/**
|
|
33
31
|
* Those are all helpers to centralize ID generation in the code for different elements
|
|
34
32
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
33
|
_exports.createIDGenerator = createIDGenerator;
|
|
38
34
|
var getHeaderFacetID = createIDGenerator("HeaderFacet");
|
|
39
35
|
_exports.getHeaderFacetID = getHeaderFacetID;
|
|
@@ -55,21 +51,17 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
55
51
|
_exports.getCustomSubSectionID = getCustomSubSectionID;
|
|
56
52
|
var getSideContentID = createIDGenerator("SideContent");
|
|
57
53
|
_exports.getSideContentID = getSideContentID;
|
|
58
|
-
|
|
59
54
|
var getSideContentLayoutID = function (sSectionID) {
|
|
60
55
|
return generate(["fe", sSectionID, "SideContentLayout"]);
|
|
61
56
|
};
|
|
62
|
-
|
|
63
57
|
_exports.getSideContentLayoutID = getSideContentLayoutID;
|
|
64
58
|
var getFormID = createIDGenerator("Form");
|
|
65
59
|
_exports.getFormID = getFormID;
|
|
66
60
|
var getFormContainerID = createIDGenerator("FormContainer");
|
|
67
61
|
_exports.getFormContainerID = getFormContainerID;
|
|
68
|
-
|
|
69
62
|
var getFormStandardActionButtonID = function (sFormContainerId, sActionName) {
|
|
70
63
|
return generate(["fe", "FormContainer", sFormContainerId, "StandardAction", sActionName]);
|
|
71
64
|
};
|
|
72
|
-
|
|
73
65
|
_exports.getFormStandardActionButtonID = getFormStandardActionButtonID;
|
|
74
66
|
var getTableID = createIDGenerator("table");
|
|
75
67
|
_exports.getTableID = getTableID;
|
|
@@ -77,30 +69,24 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
77
69
|
_exports.getCustomTabID = getCustomTabID;
|
|
78
70
|
var getFilterBarID = createIDGenerator("FilterBar");
|
|
79
71
|
_exports.getFilterBarID = getFilterBarID;
|
|
80
|
-
|
|
81
72
|
var getDynamicListReportID = function () {
|
|
82
73
|
return "fe::ListReport";
|
|
83
74
|
};
|
|
84
|
-
|
|
85
75
|
_exports.getDynamicListReportID = getDynamicListReportID;
|
|
86
76
|
var getIconTabBarID = createIDGenerator("TabMultipleMode");
|
|
87
77
|
_exports.getIconTabBarID = getIconTabBarID;
|
|
88
|
-
|
|
89
78
|
var getFilterVariantManagementID = function (sFilterID) {
|
|
90
79
|
return generate([sFilterID, "VariantManagement"]);
|
|
91
80
|
};
|
|
92
|
-
|
|
93
81
|
_exports.getFilterVariantManagementID = getFilterVariantManagementID;
|
|
94
82
|
var getChartID = createIDGenerator("Chart");
|
|
95
83
|
_exports.getChartID = getChartID;
|
|
96
|
-
|
|
97
84
|
var getCustomActionID = function (sActionID) {
|
|
98
85
|
return generate(["CustomAction", sActionID]);
|
|
99
86
|
};
|
|
100
|
-
|
|
101
87
|
_exports.getCustomActionID = getCustomActionID;
|
|
102
88
|
var getKPIID = createIDGenerator("KPI");
|
|
103
89
|
_exports.getKPIID = getKPIID;
|
|
104
90
|
return _exports;
|
|
105
91
|
}, false);
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCQVNFX0lEIiwiY3JlYXRlSURHZW5lcmF0b3IiLCJzRml4ZWRQYXJ0Iiwic0lEUGFydCIsImdlbmVyYXRlIiwiY29uY2F0IiwiZ2V0SGVhZGVyRmFjZXRJRCIsImdldEhlYWRlckZhY2V0Q29udGFpbmVySUQiLCJnZXRIZWFkZXJGYWNldEZvcm1JRCIsImdldEN1c3RvbUhlYWRlckZhY2V0SUQiLCJnZXRFZGl0YWJsZUhlYWRlclNlY3Rpb25JRCIsImdldFNlY3Rpb25JRCIsImdldEN1c3RvbVNlY3Rpb25JRCIsImdldFN1YlNlY3Rpb25JRCIsImdldEN1c3RvbVN1YlNlY3Rpb25JRCIsImdldFNpZGVDb250ZW50SUQiLCJnZXRTaWRlQ29udGVudExheW91dElEIiwic1NlY3Rpb25JRCIsImdldEZvcm1JRCIsImdldEZvcm1Db250YWluZXJJRCIsImdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIiwic0Zvcm1Db250YWluZXJJZCIsInNBY3Rpb25OYW1lIiwiZ2V0VGFibGVJRCIsImdldEN1c3RvbVRhYklEIiwiZ2V0RmlsdGVyQmFySUQiLCJnZXREeW5hbWljTGlzdFJlcG9ydElEIiwiZ2V0SWNvblRhYkJhcklEIiwiZ2V0RmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCIsInNGaWx0ZXJJRCIsImdldENoYXJ0SUQiLCJnZXRDdXN0b21BY3Rpb25JRCIsInNBY3Rpb25JRCIsImdldEtQSUlEIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJJRC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRob3JpemVkSWRBbm5vdGF0aW9uc1R5cGUsIGdlbmVyYXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbnR5cGUgSURQYXJ0ID0gc3RyaW5nIHwgQXV0aG9yaXplZElkQW5ub3RhdGlvbnNUeXBlO1xuY29uc3QgQkFTRV9JRDogSURQYXJ0W10gPSBbXCJmZVwiXTtcblxuLyoqXG4gKiBTaG9ydGN1dCB0byB0aGUgc3RhYmxlSWRIZWxwZXIgcHJvdmlkaW5nIGEgXCJjdXJyeVwiIGxpa2UgbWV0aG9kIHdoZXJlIHRoZSBsYXN0IHBhcmFtZXRlciBpcyBtaXNzaW5nLlxuICpcbiAqIEBwYXJhbSBzRml4ZWRQYXJ0XG4gKiBAcmV0dXJucyBBIHNob3J0Y3V0IGZ1bmN0aW9uIHdpdGggdGhlIGZpeGVkIElEIHBhcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlER2VuZXJhdG9yKC4uLnNGaXhlZFBhcnQ6IElEUGFydFtdKSB7XG5cdHJldHVybiBmdW5jdGlvbiAoLi4uc0lEUGFydDogSURQYXJ0W10pIHtcblx0XHRyZXR1cm4gZ2VuZXJhdGUoQkFTRV9JRC5jb25jYXQoLi4uc0ZpeGVkUGFydCwgLi4uc0lEUGFydCkpO1xuXHR9O1xufVxuXG4vKipcbiAqIFRob3NlIGFyZSBhbGwgaGVscGVycyB0byBjZW50cmFsaXplIElEIGdlbmVyYXRpb24gaW4gdGhlIGNvZGUgZm9yIGRpZmZlcmVudCBlbGVtZW50c1xuICovXG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyRmFjZXRJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiSGVhZGVyRmFjZXRcIik7XG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyRmFjZXRDb250YWluZXJJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiSGVhZGVyRmFjZXRDb250YWluZXJcIik7XG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyRmFjZXRGb3JtSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkhlYWRlckZhY2V0XCIsIFwiRm9ybVwiKTtcbmV4cG9ydCBjb25zdCBnZXRDdXN0b21IZWFkZXJGYWNldElEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJIZWFkZXJGYWNldEN1c3RvbUNvbnRhaW5lclwiKTtcbmV4cG9ydCBjb25zdCBnZXRFZGl0YWJsZUhlYWRlclNlY3Rpb25JRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiRWRpdGFibGVIZWFkZXJTZWN0aW9uXCIpO1xuZXhwb3J0IGNvbnN0IGdldFNlY3Rpb25JRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiRmFjZXRTZWN0aW9uXCIpO1xuZXhwb3J0IGNvbnN0IGdldEN1c3RvbVNlY3Rpb25JRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiQ3VzdG9tU2VjdGlvblwiKTtcbmV4cG9ydCBjb25zdCBnZXRTdWJTZWN0aW9uSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkZhY2V0U3ViU2VjdGlvblwiKTtcbmV4cG9ydCBjb25zdCBnZXRDdXN0b21TdWJTZWN0aW9uSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkN1c3RvbVN1YlNlY3Rpb25cIik7XG5leHBvcnQgY29uc3QgZ2V0U2lkZUNvbnRlbnRJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiU2lkZUNvbnRlbnRcIik7XG5leHBvcnQgY29uc3QgZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCA9IGZ1bmN0aW9uIChzU2VjdGlvbklEOiBzdHJpbmcpIHtcblx0cmV0dXJuIGdlbmVyYXRlKFtcImZlXCIsIHNTZWN0aW9uSUQsIFwiU2lkZUNvbnRlbnRMYXlvdXRcIl0pO1xufTtcbmV4cG9ydCBjb25zdCBnZXRGb3JtSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkZvcm1cIik7XG5leHBvcnQgY29uc3QgZ2V0Rm9ybUNvbnRhaW5lcklEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJGb3JtQ29udGFpbmVyXCIpO1xuZXhwb3J0IGNvbnN0IGdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEID0gZnVuY3Rpb24gKHNGb3JtQ29udGFpbmVySWQ6IHN0cmluZywgc0FjdGlvbk5hbWU6IHN0cmluZykge1xuXHRyZXR1cm4gZ2VuZXJhdGUoW1wiZmVcIiwgXCJGb3JtQ29udGFpbmVyXCIsIHNGb3JtQ29udGFpbmVySWQsIFwiU3RhbmRhcmRBY3Rpb25cIiwgc0FjdGlvbk5hbWVdKTtcbn07XG5leHBvcnQgY29uc3QgZ2V0VGFibGVJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwidGFibGVcIik7XG5leHBvcnQgY29uc3QgZ2V0Q3VzdG9tVGFiSUQgPSBjcmVhdGVJREdlbmVyYXRvcihcIkN1c3RvbVRhYlwiKTtcbmV4cG9ydCBjb25zdCBnZXRGaWx0ZXJCYXJJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiRmlsdGVyQmFyXCIpO1xuZXhwb3J0IGNvbnN0IGdldER5bmFtaWNMaXN0UmVwb3J0SUQgPSBmdW5jdGlvbiAoKSB7XG5cdHJldHVybiBcImZlOjpMaXN0UmVwb3J0XCI7XG59O1xuZXhwb3J0IGNvbnN0IGdldEljb25UYWJCYXJJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiVGFiTXVsdGlwbGVNb2RlXCIpO1xuZXhwb3J0IGNvbnN0IGdldEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQgPSBmdW5jdGlvbiAoc0ZpbHRlcklEOiBzdHJpbmcpIHtcblx0cmV0dXJuIGdlbmVyYXRlKFtzRmlsdGVySUQsIFwiVmFyaWFudE1hbmFnZW1lbnRcIl0pO1xufTtcbmV4cG9ydCBjb25zdCBnZXRDaGFydElEID0gY3JlYXRlSURHZW5lcmF0b3IoXCJDaGFydFwiKTtcbmV4cG9ydCBjb25zdCBnZXRDdXN0b21BY3Rpb25JRCA9IGZ1bmN0aW9uIChzQWN0aW9uSUQ6IHN0cmluZykge1xuXHRyZXR1cm4gZ2VuZXJhdGUoW1wiQ3VzdG9tQWN0aW9uXCIsIHNBY3Rpb25JRF0pO1xufTtcbmV4cG9ydCBjb25zdCBnZXRLUElJRCA9IGNyZWF0ZUlER2VuZXJhdG9yKFwiS1BJXCIpO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFFQSxJQUFNQSxPQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDOztFQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxTQUFTQyxpQkFBaUIsR0FBMEI7SUFBQSxrQ0FBdEJDLFVBQVU7TUFBVkEsVUFBVTtJQUFBO0lBQzlDLE9BQU8sWUFBZ0M7TUFBQSxtQ0FBbkJDLE9BQU87UUFBUEEsT0FBTztNQUFBO01BQzFCLE9BQU9DLFFBQVEsQ0FBQ0osT0FBTyxDQUFDSyxNQUFNLE9BQWRMLE9BQU8sRUFBV0UsVUFBVSxRQUFLQyxPQUFPLEVBQUMsQ0FBQztJQUMzRCxDQUFDO0VBQ0Y7O0VBRUE7QUFDQTtBQUNBO0VBRkE7RUFHTyxJQUFNRyxnQkFBZ0IsR0FBR0wsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0VBQUM7RUFDMUQsSUFBTU0seUJBQXlCLEdBQUdOLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDO0VBQUM7RUFDNUUsSUFBTU8sb0JBQW9CLEdBQUdQLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7RUFBQztFQUN0RSxJQUFNUSxzQkFBc0IsR0FBR1IsaUJBQWlCLENBQUMsNEJBQTRCLENBQUM7RUFBQztFQUMvRSxJQUFNUywwQkFBMEIsR0FBR1QsaUJBQWlCLENBQUMsdUJBQXVCLENBQUM7RUFBQztFQUM5RSxJQUFNVSxZQUFZLEdBQUdWLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztFQUFDO0VBQ3ZELElBQU1XLGtCQUFrQixHQUFHWCxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7RUFBQztFQUM5RCxJQUFNWSxlQUFlLEdBQUdaLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO0VBQUM7RUFDN0QsSUFBTWEscUJBQXFCLEdBQUdiLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO0VBQUM7RUFDcEUsSUFBTWMsZ0JBQWdCLEdBQUdkLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztFQUFDO0VBQzFELElBQU1lLHNCQUFzQixHQUFHLFVBQVVDLFVBQWtCLEVBQUU7SUFDbkUsT0FBT2IsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFYSxVQUFVLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztFQUN6RCxDQUFDO0VBQUM7RUFDSyxJQUFNQyxTQUFTLEdBQUdqQixpQkFBaUIsQ0FBQyxNQUFNLENBQUM7RUFBQztFQUM1QyxJQUFNa0Isa0JBQWtCLEdBQUdsQixpQkFBaUIsQ0FBQyxlQUFlLENBQUM7RUFBQztFQUM5RCxJQUFNbUIsNkJBQTZCLEdBQUcsVUFBVUMsZ0JBQXdCLEVBQUVDLFdBQW1CLEVBQUU7SUFDckcsT0FBT2xCLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUVpQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRUMsV0FBVyxDQUFDLENBQUM7RUFDMUYsQ0FBQztFQUFDO0VBQ0ssSUFBTUMsVUFBVSxHQUFHdEIsaUJBQWlCLENBQUMsT0FBTyxDQUFDO0VBQUM7RUFDOUMsSUFBTXVCLGNBQWMsR0FBR3ZCLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztFQUFDO0VBQ3RELElBQU13QixjQUFjLEdBQUd4QixpQkFBaUIsQ0FBQyxXQUFXLENBQUM7RUFBQztFQUN0RCxJQUFNeUIsc0JBQXNCLEdBQUcsWUFBWTtJQUNqRCxPQUFPLGdCQUFnQjtFQUN4QixDQUFDO0VBQUM7RUFDSyxJQUFNQyxlQUFlLEdBQUcxQixpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztFQUFDO0VBQzdELElBQU0yQiw0QkFBNEIsR0FBRyxVQUFVQyxTQUFpQixFQUFFO0lBQ3hFLE9BQU96QixRQUFRLENBQUMsQ0FBQ3lCLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0VBQ2xELENBQUM7RUFBQztFQUNLLElBQU1DLFVBQVUsR0FBRzdCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztFQUFDO0VBQzlDLElBQU04QixpQkFBaUIsR0FBRyxVQUFVQyxTQUFpQixFQUFFO0lBQzdELE9BQU81QixRQUFRLENBQUMsQ0FBQyxjQUFjLEVBQUU0QixTQUFTLENBQUMsQ0FBQztFQUM3QyxDQUFDO0VBQUM7RUFDSyxJQUFNQyxRQUFRLEdBQUdoQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7RUFBQztFQUFBO0FBQUEifQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
type IDPart = string | { Facet: FacetTypes } | DataFieldAbstractTypes;
|
|
1
|
+
import { AuthorizedIdAnnotationsType, generate } from "../../helpers/StableIdHelper";
|
|
2
|
+
type IDPart = string | AuthorizedIdAnnotationsType;
|
|
4
3
|
const BASE_ID: IDPart[] = ["fe"];
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -6,15 +6,12 @@ sap.ui.define([], function () {
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
-
|
|
10
9
|
var IssueSeverity;
|
|
11
|
-
|
|
12
10
|
(function (IssueSeverity) {
|
|
13
11
|
IssueSeverity[IssueSeverity["High"] = 0] = "High";
|
|
14
12
|
IssueSeverity[IssueSeverity["Low"] = 1] = "Low";
|
|
15
13
|
IssueSeverity[IssueSeverity["Medium"] = 2] = "Medium";
|
|
16
14
|
})(IssueSeverity || (IssueSeverity = {}));
|
|
17
|
-
|
|
18
15
|
_exports.IssueSeverity = IssueSeverity;
|
|
19
16
|
var IssueCategoryType = {
|
|
20
17
|
Facets: {
|
|
@@ -30,14 +27,12 @@ sap.ui.define([], function () {
|
|
|
30
27
|
};
|
|
31
28
|
_exports.IssueCategoryType = IssueCategoryType;
|
|
32
29
|
var IssueCategory;
|
|
33
|
-
|
|
34
30
|
(function (IssueCategory) {
|
|
35
31
|
IssueCategory["Annotation"] = "Annotation";
|
|
36
32
|
IssueCategory["Template"] = "Template";
|
|
37
33
|
IssueCategory["Manifest"] = "Manifest";
|
|
38
34
|
IssueCategory["Facets"] = "Facets";
|
|
39
35
|
})(IssueCategory || (IssueCategory = {}));
|
|
40
|
-
|
|
41
36
|
_exports.IssueCategory = IssueCategory;
|
|
42
37
|
var IssueType = {
|
|
43
38
|
MISSING_LINEITEM: "We couldn't find a line item annotation for the current entitySet, you should consider adding one.",
|
|
@@ -64,4 +59,4 @@ sap.ui.define([], function () {
|
|
|
64
59
|
_exports.IssueType = IssueType;
|
|
65
60
|
return _exports;
|
|
66
61
|
}, false);
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJc3N1ZVNldmVyaXR5IiwiSXNzdWVDYXRlZ29yeVR5cGUiLCJGYWNldHMiLCJNaXNzaW5nSUQiLCJVblN1cHBvcnRlZExldmVsIiwiQW5ub3RhdGlvbkNvbHVtbnMiLCJJbnZhbGlkS2V5IiwiQW5ub3RhdGlvbnMiLCJJZ25vcmVkQW5ub3RhdGlvbiIsIklzc3VlQ2F0ZWdvcnkiLCJJc3N1ZVR5cGUiLCJNSVNTSU5HX0xJTkVJVEVNIiwiTUlTU0lOR19TRUxFQ1RJT05GSUVMRCIsIk1BTEZPUk1FRF9EQVRBRklFTERfRk9SX0lCTiIsIlJFUVVJUkVTQ09OVEVYVCIsIklOTElORSIsIkRFVEVSTUlOSU5HIiwiTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMiLCJWQUxVRUxJU1QiLCJQUkVTRU5UQVRJT05WQVJJQU5UIiwiQ0hBUlQiLCJWQUxVRUxJU1RDT05GSUciLCJGVUxMU0NSRUVOTU9ERV9OT1RfT05fTElTVFJFUE9SVCIsIktQSV9JU1NVRVMiLCJLUElfTk9UX0ZPVU5EIiwiS1BJX0RFVEFJTF9OT1RfRk9VTkQiLCJOT19BTkFMWVRJQ1MiLCJNQUlOX1BST1BFUlRZX05PVF9BR0dSRUdBVEFCTEUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIklzc3VlTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBJc3N1ZVNldmVyaXR5IHtcblx0SGlnaCxcblx0TG93LFxuXHRNZWRpdW1cbn1cblxuZXhwb3J0IGNvbnN0IElzc3VlQ2F0ZWdvcnlUeXBlID0ge1xuXHRGYWNldHM6IHtcblx0XHRNaXNzaW5nSUQ6IFwiTWlzc2luZ0lEXCIsXG5cdFx0VW5TdXBwb3J0ZWRMZXZlbDogXCJVbnN1cHBvcnRlZExldmVsXCJcblx0fSxcblx0QW5ub3RhdGlvbkNvbHVtbnM6IHtcblx0XHRJbnZhbGlkS2V5OiBcIkludmFsaWRLZXlcIlxuXHR9LFxuXHRBbm5vdGF0aW9uczoge1xuXHRcdElnbm9yZWRBbm5vdGF0aW9uOiBcIklnbm9yZWRBbm5vdGF0aW9uXCJcblx0fVxufTtcblxuZXhwb3J0IGVudW0gSXNzdWVDYXRlZ29yeSB7XG5cdEFubm90YXRpb24gPSBcIkFubm90YXRpb25cIixcblx0VGVtcGxhdGUgPSBcIlRlbXBsYXRlXCIsXG5cdE1hbmlmZXN0ID0gXCJNYW5pZmVzdFwiLFxuXHRGYWNldHMgPSBcIkZhY2V0c1wiXG59XG5leHBvcnQgY29uc3QgSXNzdWVUeXBlID0ge1xuXHRNSVNTSU5HX0xJTkVJVEVNOiBcIldlIGNvdWxkbid0IGZpbmQgYSBsaW5lIGl0ZW0gYW5ub3RhdGlvbiBmb3IgdGhlIGN1cnJlbnQgZW50aXR5U2V0LCB5b3Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBvbmUuXCIsXG5cdE1JU1NJTkdfU0VMRUNUSU9ORklFTEQ6IFwiRGVmaW5lZCBTZWxlY3Rpb24gRmllbGQgaXMgbm90IGZvdW5kXCIsXG5cdE1BTEZPUk1FRF9EQVRBRklFTERfRk9SX0lCTjoge1xuXHRcdFJFUVVJUkVTQ09OVEVYVDogXCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gY2Fubm90IHVzZSByZXF1aXJlcyBjb250ZXh0IGluIGZvcm0vaGVhZGVyLlwiLFxuXHRcdElOTElORTogXCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gY2Fubm90IHVzZSBJbmxpbmUgaW4gZm9ybS9oZWFkZXIuXCIsXG5cdFx0REVURVJNSU5JTkc6IFwiRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIGNhbm5vdCB1c2UgRGV0ZXJtaW5pbmcgaW4gZm9ybS9oZWFkZXIuXCJcblx0fSxcblx0TUFMRk9STUVEX1ZJU1VBTEZJTFRFUlM6IHtcblx0XHRWQUxVRUxJU1Q6IFwiVmFsdWVMaXN0IFBhdGggbWVudGlvbmVkIGluIHRoZSBtYW5pZmVzdCBpcyBub3QgZm91bmRcIixcblx0XHRQUkVTRU5UQVRJT05WQVJJQU5UOiBcIlByZXNlbnRhdGlvbiBWYXJpYW50IEFubm90YXRpb24gaXMgbWlzc2luZyBmb3IgdGhlIFZpc3VhbEZpbHRlcnNcIixcblx0XHRDSEFSVDogXCJDaGFydCBBbm5vdGF0aW9uIGlzIG1pc3NpbmcgZnJvbSB0aGUgUFYgY29uZmlndXJlZCBmb3IgdGhlIFZpc3VhbEZpbHRlcnNcIixcblx0XHRWQUxVRUxJU1RDT05GSUc6IFwiVmFsdWVMaXN0IGlzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgaW5zaWRlIHRoZSBWaXN1YWwgRmlsdGVyIFNldHRpbmdzXCJcblx0fSxcblx0RlVMTFNDUkVFTk1PREVfTk9UX09OX0xJU1RSRVBPUlQ6IFwiZW5hYmxlRnVsbFNjcmVlbk1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiBsaXN0IHJlcG9ydCBwYWdlcy5cIixcblx0S1BJX0lTU1VFUzoge1xuXHRcdEtQSV9OT1RfRk9VTkQ6IFwiQ291bGRuJ3QgZmluZCBLUEkgb3IgU1BWIHdpdGggcXVhbGlmaWVyIFwiLFxuXHRcdEtQSV9ERVRBSUxfTk9UX0ZPVU5EOiBcIkNhbid0IGZpbmQgcHJvcGVyIGRhdGFwb2ludCBvciBjaGFydCBkZWZpbml0aW9uIGZvciBLUEkgXCIsXG5cdFx0Tk9fQU5BTFlUSUNTOiBcIlRoZSBmb2xsb3dpbmcgZW50aXR5U2V0IHVzZWQgaW4gYSBLUEkgZGVmaW5pdGlvbiBkb2Vzbid0IHN1cHBvcnQgJGFwcGx5IHF1ZXJpZXM6XCIsXG5cdFx0TUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFOiBcIk1haW4gcHJvcGVydHkgdXNlZCBpbiBLUEkgY2Fubm90IGJlIGFnZ3JlZ2F0ZWQgXCJcblx0fVxufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7TUFBWUEsYUFBYTtFQUFBLFdBQWJBLGFBQWE7SUFBYkEsYUFBYSxDQUFiQSxhQUFhO0lBQWJBLGFBQWEsQ0FBYkEsYUFBYTtJQUFiQSxhQUFhLENBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQTtFQU1sQixJQUFNQyxpQkFBaUIsR0FBRztJQUNoQ0MsTUFBTSxFQUFFO01BQ1BDLFNBQVMsRUFBRSxXQUFXO01BQ3RCQyxnQkFBZ0IsRUFBRTtJQUNuQixDQUFDO0lBQ0RDLGlCQUFpQixFQUFFO01BQ2xCQyxVQUFVLEVBQUU7SUFDYixDQUFDO0lBQ0RDLFdBQVcsRUFBRTtNQUNaQyxpQkFBaUIsRUFBRTtJQUNwQjtFQUNELENBQUM7RUFBQztFQUFBLElBRVVDLGFBQWE7RUFBQSxXQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQTtFQU1sQixJQUFNQyxTQUFTLEdBQUc7SUFDeEJDLGdCQUFnQixFQUFFLG9HQUFvRztJQUN0SEMsc0JBQXNCLEVBQUUsc0NBQXNDO0lBQzlEQywyQkFBMkIsRUFBRTtNQUM1QkMsZUFBZSxFQUFFLCtFQUErRTtNQUNoR0MsTUFBTSxFQUFFLHFFQUFxRTtNQUM3RUMsV0FBVyxFQUFFO0lBQ2QsQ0FBQztJQUNEQyx1QkFBdUIsRUFBRTtNQUN4QkMsU0FBUyxFQUFFLHVEQUF1RDtNQUNsRUMsbUJBQW1CLEVBQUUsa0VBQWtFO01BQ3ZGQyxLQUFLLEVBQUUsMEVBQTBFO01BQ2pGQyxlQUFlLEVBQUU7SUFDbEIsQ0FBQztJQUNEQyxnQ0FBZ0MsRUFBRSw2REFBNkQ7SUFDL0ZDLFVBQVUsRUFBRTtNQUNYQyxhQUFhLEVBQUUsMENBQTBDO01BQ3pEQyxvQkFBb0IsRUFBRSwwREFBMEQ7TUFDaEZDLFlBQVksRUFBRSxrRkFBa0Y7TUFDaEdDLDhCQUE4QixFQUFFO0lBQ2pDO0VBQ0QsQ0FBQztFQUFDO0VBQUE7QUFBQSJ9
|
|
@@ -7,65 +7,56 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
var getStableIdPartFromDataField = StableIdHelper.getStableIdPartFromDataField;
|
|
10
|
-
|
|
11
10
|
/**
|
|
12
11
|
* The KeyHelper is used for dealing with Key in the concern of the flexible programming model
|
|
13
12
|
*/
|
|
14
13
|
var KeyHelper = /*#__PURE__*/function () {
|
|
15
14
|
function KeyHelper() {}
|
|
16
|
-
|
|
17
15
|
_exports.KeyHelper = KeyHelper;
|
|
18
|
-
|
|
19
16
|
/**
|
|
20
17
|
* Returns a generated key for DataFields to be used in the flexible programming model.
|
|
21
18
|
*
|
|
22
|
-
* @param
|
|
19
|
+
* @param dataField DataField to generate the key for
|
|
23
20
|
* @returns Returns a through StableIdHelper generated key
|
|
24
21
|
*/
|
|
25
|
-
KeyHelper.generateKeyFromDataField = function generateKeyFromDataField(
|
|
26
|
-
return getStableIdPartFromDataField(
|
|
22
|
+
KeyHelper.generateKeyFromDataField = function generateKeyFromDataField(dataField) {
|
|
23
|
+
return getStableIdPartFromDataField(dataField, true);
|
|
27
24
|
}
|
|
25
|
+
|
|
28
26
|
/**
|
|
29
27
|
* Throws a Error if any other character then aA-zZ, 0-9, ':', '_' or '-' is used.
|
|
30
28
|
*
|
|
31
29
|
* @param key String to check validity on
|
|
32
|
-
|
|
33
|
-
;
|
|
34
|
-
|
|
30
|
+
*/;
|
|
35
31
|
KeyHelper.validateKey = function validateKey(key) {
|
|
36
32
|
var pattern = /[^A-Za-z0-9_\-:]/;
|
|
37
|
-
|
|
38
33
|
if (pattern.exec(key)) {
|
|
39
34
|
throw new Error("Invalid key: ".concat(key, " - only 'A-Za-z0-9_-:' are allowed"));
|
|
40
35
|
}
|
|
41
36
|
}
|
|
37
|
+
|
|
42
38
|
/**
|
|
43
39
|
* Returns the key for a selection field required for adaption.
|
|
44
40
|
*
|
|
45
41
|
* @param fullPropertyPath The full property path (without entityType)
|
|
46
42
|
* @returns The key of the selection field
|
|
47
|
-
|
|
48
|
-
;
|
|
49
|
-
|
|
43
|
+
*/;
|
|
50
44
|
KeyHelper.getSelectionFieldKeyFromPath = function getSelectionFieldKeyFromPath(fullPropertyPath) {
|
|
51
45
|
return fullPropertyPath.replace(/(\*|\+)?\//g, "::");
|
|
52
46
|
}
|
|
47
|
+
|
|
53
48
|
/**
|
|
54
49
|
* Returns the path for a selection field required for adaption.
|
|
55
50
|
*
|
|
56
51
|
* @param selectionFieldKey The key of the selection field
|
|
57
52
|
* @returns The full property path
|
|
58
|
-
|
|
59
|
-
;
|
|
60
|
-
|
|
53
|
+
*/;
|
|
61
54
|
KeyHelper.getPathFromSelectionFieldKey = function getPathFromSelectionFieldKey(selectionFieldKey) {
|
|
62
55
|
return selectionFieldKey.replace(/::/g, "/");
|
|
63
56
|
};
|
|
64
|
-
|
|
65
57
|
return KeyHelper;
|
|
66
58
|
}();
|
|
67
|
-
|
|
68
59
|
_exports.KeyHelper = KeyHelper;
|
|
69
60
|
return _exports;
|
|
70
61
|
}, false);
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJkYXRhRmllbGQiLCJnZXRTdGFibGVJZFBhcnRGcm9tRGF0YUZpZWxkIiwidmFsaWRhdGVLZXkiLCJrZXkiLCJwYXR0ZXJuIiwiZXhlYyIsIkVycm9yIiwiZ2V0U2VsZWN0aW9uRmllbGRLZXlGcm9tUGF0aCIsImZ1bGxQcm9wZXJ0eVBhdGgiLCJyZXBsYWNlIiwiZ2V0UGF0aEZyb21TZWxlY3Rpb25GaWVsZEtleSIsInNlbGVjdGlvbkZpZWxkS2V5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJLZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgZ2V0U3RhYmxlSWRQYXJ0RnJvbURhdGFGaWVsZCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5cbi8qKlxuICogVGhlIEtleUhlbHBlciBpcyB1c2VkIGZvciBkZWFsaW5nIHdpdGggS2V5IGluIHRoZSBjb25jZXJuIG9mIHRoZSBmbGV4aWJsZSBwcm9ncmFtbWluZyBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgS2V5SGVscGVyIHtcblx0LyoqXG5cdCAqIFJldHVybnMgYSBnZW5lcmF0ZWQga2V5IGZvciBEYXRhRmllbGRzIHRvIGJlIHVzZWQgaW4gdGhlIGZsZXhpYmxlIHByb2dyYW1taW5nIG1vZGVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZCB0byBnZW5lcmF0ZSB0aGUga2V5IGZvclxuXHQgKiBAcmV0dXJucyBSZXR1cm5zIGEgdGhyb3VnaCBTdGFibGVJZEhlbHBlciBnZW5lcmF0ZWQga2V5XG5cdCAqL1xuXHRzdGF0aWMgZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQoZGF0YUZpZWxkLCB0cnVlKSE7XG5cdH1cblxuXHQvKipcblx0ICogVGhyb3dzIGEgRXJyb3IgaWYgYW55IG90aGVyIGNoYXJhY3RlciB0aGVuIGFBLXpaLCAwLTksICc6JywgJ18nIG9yICctJyBpcyB1c2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0ga2V5IFN0cmluZyB0byBjaGVjayB2YWxpZGl0eSBvblxuXHQgKi9cblx0c3RhdGljIHZhbGlkYXRlS2V5KGtleTogc3RyaW5nKSB7XG5cdFx0Y29uc3QgcGF0dGVybiA9IC9bXkEtWmEtejAtOV9cXC06XS87XG5cdFx0aWYgKHBhdHRlcm4uZXhlYyhrZXkpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5OiAke2tleX0gLSBvbmx5ICdBLVphLXowLTlfLTonIGFyZSBhbGxvd2VkYCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGtleSBmb3IgYSBzZWxlY3Rpb24gZmllbGQgcmVxdWlyZWQgZm9yIGFkYXB0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0gZnVsbFByb3BlcnR5UGF0aCBUaGUgZnVsbCBwcm9wZXJ0eSBwYXRoICh3aXRob3V0IGVudGl0eVR5cGUpXG5cdCAqIEByZXR1cm5zIFRoZSBrZXkgb2YgdGhlIHNlbGVjdGlvbiBmaWVsZFxuXHQgKi9cblx0c3RhdGljIGdldFNlbGVjdGlvbkZpZWxkS2V5RnJvbVBhdGgoZnVsbFByb3BlcnR5UGF0aDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIGZ1bGxQcm9wZXJ0eVBhdGgucmVwbGFjZSgvKFxcKnxcXCspP1xcLy9nLCBcIjo6XCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHBhdGggZm9yIGEgc2VsZWN0aW9uIGZpZWxkIHJlcXVpcmVkIGZvciBhZGFwdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHNlbGVjdGlvbkZpZWxkS2V5IFRoZSBrZXkgb2YgdGhlIHNlbGVjdGlvbiBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgZnVsbCBwcm9wZXJ0eSBwYXRoXG5cdCAqL1xuXHRzdGF0aWMgZ2V0UGF0aEZyb21TZWxlY3Rpb25GaWVsZEtleShzZWxlY3Rpb25GaWVsZEtleTogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHNlbGVjdGlvbkZpZWxkS2V5LnJlcGxhY2UoLzo6L2csIFwiL1wiKTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFHQTtBQUNBO0FBQ0E7RUFGQSxJQUdhQSxTQUFTO0lBQUE7SUFBQTtJQUNyQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFMQyxVQU1PQyx3QkFBd0IsR0FBL0Isa0NBQWdDQyxTQUFpQyxFQUFVO01BQzFFLE9BQU9DLDRCQUE0QixDQUFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDO0lBQ3JEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBLFVBS09FLFdBQVcsR0FBbEIscUJBQW1CQyxHQUFXLEVBQUU7TUFDL0IsSUFBTUMsT0FBTyxHQUFHLGtCQUFrQjtNQUNsQyxJQUFJQSxPQUFPLENBQUNDLElBQUksQ0FBQ0YsR0FBRyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxJQUFJRyxLQUFLLHdCQUFpQkgsR0FBRyx3Q0FBcUM7TUFDekU7SUFDRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBLFVBTU9JLDRCQUE0QixHQUFuQyxzQ0FBb0NDLGdCQUF3QixFQUFFO01BQzdELE9BQU9BLGdCQUFnQixDQUFDQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztJQUNyRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBLFVBTU9DLDRCQUE0QixHQUFuQyxzQ0FBb0NDLGlCQUF5QixFQUFFO01BQzlELE9BQU9BLGlCQUFpQixDQUFDRixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUM3QyxDQUFDO0lBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQSJ9
|
|
@@ -8,11 +8,11 @@ export class KeyHelper {
|
|
|
8
8
|
/**
|
|
9
9
|
* Returns a generated key for DataFields to be used in the flexible programming model.
|
|
10
10
|
*
|
|
11
|
-
* @param
|
|
11
|
+
* @param dataField DataField to generate the key for
|
|
12
12
|
* @returns Returns a through StableIdHelper generated key
|
|
13
13
|
*/
|
|
14
|
-
static generateKeyFromDataField(
|
|
15
|
-
return getStableIdPartFromDataField(
|
|
14
|
+
static generateKeyFromDataField(dataField: DataFieldAbstractTypes): string {
|
|
15
|
+
return getStableIdPartFromDataField(dataField, true)!;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|