@sapui5/sap.fe.core 1.110.0 → 1.111.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 +0 -4
- package/package.json +2 -23
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +182 -0
- package/src/sap/fe/core/ActionRuntime.js +3 -181
- package/src/sap/fe/core/ActionRuntime.js.map +1 -0
- package/src/sap/fe/core/ActionRuntime.ts +3 -5
- package/src/sap/fe/core/AppComponent-dbg.js +435 -0
- package/src/sap/fe/core/AppComponent.js +3 -439
- package/src/sap/fe/core/AppComponent.js.map +1 -0
- package/src/sap/fe/core/AppComponent.ts +0 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +200 -0
- package/src/sap/fe/core/AppStateHandler.js +3 -227
- package/src/sap/fe/core/AppStateHandler.js.map +1 -0
- package/src/sap/fe/core/BaseController-dbg.js +76 -0
- package/src/sap/fe/core/BaseController.js +3 -73
- package/src/sap/fe/core/BaseController.js.map +1 -0
- package/src/sap/fe/core/CommonUtils-dbg.js +2135 -0
- package/src/sap/fe/core/CommonUtils.js +3 -2296
- package/src/sap/fe/core/CommonUtils.js.map +1 -0
- package/src/sap/fe/core/CommonUtils.ts +34 -28
- package/src/sap/fe/core/ExtensionAPI-dbg.js +273 -0
- package/src/sap/fe/core/ExtensionAPI.js +3 -280
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -0
- package/src/sap/fe/core/PageController-dbg.js +203 -0
- package/src/sap/fe/core/PageController.js +3 -200
- package/src/sap/fe/core/PageController.js.map +1 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +218 -0
- package/src/sap/fe/core/TemplateComponent.js +3 -216
- package/src/sap/fe/core/TemplateComponent.js.map +1 -0
- package/src/sap/fe/core/TemplateModel-dbg.js +75 -0
- package/src/sap/fe/core/TemplateModel.js +3 -72
- package/src/sap/fe/core/TemplateModel.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +57 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +3 -54
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +410 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +11 -355
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +118 -52
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter-dbg.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +3 -11
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +44 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +3 -40
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +3 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +932 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +16 -1292
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +40 -42
- package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +434 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +3 -481
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -5
- package/src/sap/fe/core/controllerextensions/BusyLocker-dbg.js +92 -0
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +3 -89
- package/src/sap/fe/core/controllerextensions/BusyLocker.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1659 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +3 -1868
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +180 -125
- package/src/sap/fe/core/controllerextensions/Feedback-dbg.js +70 -0
- package/src/sap/fe/core/controllerextensions/Feedback.js +3 -67
- package/src/sap/fe/core/controllerextensions/Feedback.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +83 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -84
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -8
- package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +711 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +3 -707
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +79 -48
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +791 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +3 -696
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +107 -7
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +984 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +3 -996
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +43 -23
- package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1013 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +3 -1011
- package/src/sap/fe/core/controllerextensions/KPIManagement.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -10
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +135 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -133
- package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +221 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +3 -224
- package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +254 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -279
- package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -2
- package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +169 -0
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -174
- package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Paginator.ts +4 -5
- package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +132 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -130
- package/src/sap/fe/core/controllerextensions/Placeholder.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Routing-dbg.js +138 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +3 -135
- package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +10 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -7
- package/src/sap/fe/core/controllerextensions/RoutingListener.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +317 -0
- package/src/sap/fe/core/controllerextensions/Share.js +3 -356
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -1
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +553 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -651
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +411 -553
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +903 -0
- package/src/sap/fe/core/controllerextensions/ViewState.js +3 -967
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/ViewState.ts +90 -41
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +99 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +3 -96
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +314 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +3 -336
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +152 -0
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +3 -161
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +243 -0
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +3 -302
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +252 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +6 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +188 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +1196 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +3 -1479
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +239 -289
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +689 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -785
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +134 -142
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +236 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -287
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +1422 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +3 -1598
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +40 -24
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +185 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +3 -214
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +4 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +1219 -0
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -1213
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +304 -0
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +3 -339
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason-dbg.js +15 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +6 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.ts +6 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +798 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +3 -799
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -0
- package/src/sap/fe/core/controls/Any-dbg.js +32 -0
- package/src/sap/fe/core/controls/Any.js +3 -29
- package/src/sap/fe/core/controls/Any.js.map +1 -0
- package/src/sap/fe/core/controls/AnyElement-dbg.js +29 -0
- package/src/sap/fe/core/controls/AnyElement.js +3 -26
- package/src/sap/fe/core/controls/AnyElement.js.map +1 -0
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +72 -0
- package/src/sap/fe/core/controls/CommandExecution.js +3 -69
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -0
- package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +151 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -148
- package/src/sap/fe/core/controls/ConditionalWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +330 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +3 -328
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +126 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -124
- package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +1 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +170 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -171
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -0
- package/src/sap/fe/core/controls/FieldWrapper-dbg.js +194 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +3 -191
- package/src/sap/fe/core/controls/FieldWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/FileWrapper-dbg.js +280 -0
- package/src/sap/fe/core/controls/FileWrapper.js +3 -277
- package/src/sap/fe/core/controls/FileWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/FilterBar-dbg.js +167 -0
- package/src/sap/fe/core/controls/FilterBar.js +3 -166
- package/src/sap/fe/core/controls/FilterBar.js.map +1 -0
- package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +92 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +3 -89
- package/src/sap/fe/core/controls/FormElementWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/MassEditSelect-dbg.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.js +3 -30
- package/src/sap/fe/core/controls/MassEditSelect.js.map +1 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -34
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +119 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -121
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +267 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +3 -264
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -150
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +310 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -307
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +491 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -504
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +2 -2
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +403 -0
- package/src/sap/fe/core/converters/ConverterContext.js +3 -406
- package/src/sap/fe/core/converters/ConverterContext.js.map +1 -0
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +88 -0
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -84
- package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -0
- package/src/sap/fe/core/converters/ManifestSettings.ts +3 -1
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +402 -0
- package/src/sap/fe/core/converters/ManifestWrapper.js +3 -406
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -0
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1161 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +3 -1225
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -0
- package/src/sap/fe/core/converters/MetaModelConverter.ts +193 -199
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +89 -0
- package/src/sap/fe/core/converters/TemplateConverter.js +3 -86
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -0
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +396 -0
- package/src/sap/fe/core/converters/annotations/DataField.js +3 -394
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -0
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -5
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1948 -0
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +3 -1868
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +424 -0
- package/src/sap/fe/core/converters/controls/Common/Action.js +3 -446
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Action.ts +31 -14
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +276 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.js +3 -260
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +52 -7
- package/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +42 -0
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -39
- package/src/sap/fe/core/converters/controls/Common/Criticality.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +247 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -242
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +229 -0
- package/src/sap/fe/core/converters/controls/Common/Form.js +3 -234
- package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +374 -0
- package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -371
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2596 -0
- package/src/sap/fe/core/converters/controls/Common/Table.js +3 -2527
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Table.ts +214 -77
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +522 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +3 -527
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +51 -50
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +786 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +3 -845
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +0 -64
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +291 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +3 -316
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +30 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +56 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +3 -53
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +438 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -431
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +597 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +3 -630
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
- package/src/sap/fe/core/converters/helpers/Aggregation.js +3 -204
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +100 -0
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -99
- package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +199 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +3 -199
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +143 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +3 -140
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +2 -1
- package/src/sap/fe/core/converters/helpers/ID-dbg.js +92 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -89
- package/src/sap/fe/core/converters/helpers/ID.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +62 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -59
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/Key-dbg.js +62 -0
- package/src/sap/fe/core/converters/helpers/Key.js +3 -59
- package/src/sap/fe/core/converters/helpers/Key.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +80 -0
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +3 -77
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +142 -0
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +3 -139
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +406 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +3 -422
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +132 -111
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +557 -0
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +3 -589
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -0
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +474 -0
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +3 -477
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -0
- package/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +103 -0
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -100
- package/src/sap/fe/core/designtime/AppComponent.designtime.js.map +1 -0
- package/src/sap/fe/core/designtime/library-preload.designtime.js +7 -0
- package/src/sap/fe/core/designtime/library-preload.designtime.js.map +1 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +95 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +3 -92
- package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +46 -0
- package/src/sap/fe/core/formatters/FPMFormatter.js +3 -44
- package/src/sap/fe/core/formatters/FPMFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/FPMFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +343 -0
- package/src/sap/fe/core/formatters/FiscalFormat.js +6 -0
- package/src/sap/fe/core/formatters/FiscalFormat.js.map +1 -0
- package/src/sap/fe/core/formatters/FiscalFormat.ts +319 -0
- package/src/sap/fe/core/formatters/KPIFormatter-dbg.js +86 -0
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -83
- package/src/sap/fe/core/formatters/KPIFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +80 -0
- package/src/sap/fe/core/formatters/StandardFormatter.js +3 -78
- package/src/sap/fe/core/formatters/StandardFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +276 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +3 -275
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +20 -0
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +3 -17
- package/src/sap/fe/core/formatters/TableFormatterTypes.js.map +1 -0
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +172 -0
- package/src/sap/fe/core/formatters/ValueFormatter.js +3 -161
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -8
- package/src/sap/fe/core/fpm/Component-dbg.js +94 -0
- package/src/sap/fe/core/fpm/Component.js +3 -91
- package/src/sap/fe/core/fpm/Component.js.map +1 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +30 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -36
- package/src/sap/fe/core/helpers/AnnotationEnum.js.map +1 -0
- package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +334 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +3 -335
- package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +1739 -0
- package/src/sap/fe/core/helpers/BindingToolkit.js +3 -1611
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -0
- package/src/sap/fe/core/helpers/BindingToolkit.ts +277 -97
- package/src/sap/fe/core/helpers/ClassSupport-dbg.js +421 -0
- package/src/sap/fe/core/helpers/ClassSupport.js +3 -420
- package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -0
- package/src/sap/fe/core/helpers/ClassSupport.ts +13 -15
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +526 -0
- package/src/sap/fe/core/helpers/DeleteHelper.js +3 -618
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/DeleteHelper.ts +116 -134
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +3 -52
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/EditState-dbg.js +80 -0
- package/src/sap/fe/core/helpers/EditState.js +3 -77
- package/src/sap/fe/core/helpers/EditState.js.map +1 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +3 -52
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/FPMHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -52
- package/src/sap/fe/core/helpers/FPMHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +180 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -177
- package/src/sap/fe/core/helpers/KeepAliveHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +28 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +3 -25
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js.map +1 -0
- package/src/sap/fe/core/helpers/LoaderUtils-dbg.js +29 -0
- package/src/sap/fe/core/helpers/LoaderUtils.js +3 -30
- package/src/sap/fe/core/helpers/LoaderUtils.js.map +1 -0
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +1229 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +3 -1309
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/MassEditHelper.ts +6 -6
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +65 -0
- package/src/sap/fe/core/helpers/MessageStrip.js +3 -62
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +489 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +3 -503
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/ModelHelper.ts +13 -36
- package/src/sap/fe/core/helpers/PasteHelper-dbg.js +174 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -185
- package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +371 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -368
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +70 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +141 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +3 -137
- package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +3 -2
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +204 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +3 -208
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/Synchronization-dbg.js +35 -0
- package/src/sap/fe/core/helpers/Synchronization.js +3 -33
- package/src/sap/fe/core/helpers/Synchronization.js.map +1 -0
- package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +29 -0
- package/src/sap/fe/core/helpers/ToES6Promise.js +3 -26
- package/src/sap/fe/core/helpers/ToES6Promise.js.map +1 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +20 -0
- package/src/sap/fe/core/helpers/TypeGuards.js +3 -19
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -0
- package/src/sap/fe/core/helpers/TypeGuards.ts +5 -1
- package/src/sap/fe/core/jsx-runtime/Fragment-dbg.js +14 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +3 -11
- package/src/sap/fe/core/jsx-runtime/Fragment.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +76 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -86
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +124 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -98
- package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +43 -17
- package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +41 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml-dbg.js +94 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +3 -90
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +3 -28
- package/src/sap/fe/core/jsx-runtime/jsx.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx.ts +19 -1
- package/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
- package/src/sap/fe/core/jsx-runtime/jsxs.js +3 -7
- package/src/sap/fe/core/jsx-runtime/jsxs.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +154 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +3 -153
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -0
- package/src/sap/fe/core/library-dbg.js +437 -0
- package/src/sap/fe/core/library-preload.js +900 -0
- package/src/sap/fe/core/library-preload.js.map +1 -0
- package/src/sap/fe/core/library-preload.support.js +177 -0
- package/src/sap/fe/core/library-preload.support.js.map +1 -0
- package/src/sap/fe/core/library.js +3 -461
- package/src/sap/fe/core/library.js.map +1 -0
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/library.ts +12 -25
- package/src/sap/fe/core/manifest.json +100 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +99 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -96
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -0
- package/src/sap/fe/core/messagebundle.properties +6 -0
- package/src/sap/fe/core/messagebundle_ar.properties +22 -0
- package/src/sap/fe/core/messagebundle_bg.properties +22 -0
- package/src/sap/fe/core/messagebundle_ca.properties +22 -0
- package/src/sap/fe/core/messagebundle_cs.properties +22 -0
- package/src/sap/fe/core/messagebundle_cy.properties +22 -0
- package/src/sap/fe/core/messagebundle_da.properties +22 -0
- package/src/sap/fe/core/messagebundle_de.properties +22 -0
- package/src/sap/fe/core/messagebundle_el.properties +22 -0
- package/src/sap/fe/core/messagebundle_en.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +4 -0
- package/src/sap/fe/core/messagebundle_es.properties +22 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -0
- package/src/sap/fe/core/messagebundle_et.properties +22 -0
- package/src/sap/fe/core/messagebundle_fi.properties +22 -0
- package/src/sap/fe/core/messagebundle_fr.properties +22 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -0
- package/src/sap/fe/core/messagebundle_hi.properties +22 -0
- package/src/sap/fe/core/messagebundle_hr.properties +23 -1
- package/src/sap/fe/core/messagebundle_hu.properties +22 -0
- package/src/sap/fe/core/messagebundle_id.properties +22 -0
- package/src/sap/fe/core/messagebundle_it.properties +22 -0
- package/src/sap/fe/core/messagebundle_iw.properties +22 -0
- package/src/sap/fe/core/messagebundle_ja.properties +22 -0
- package/src/sap/fe/core/messagebundle_kk.properties +22 -0
- package/src/sap/fe/core/messagebundle_ko.properties +22 -0
- package/src/sap/fe/core/messagebundle_lt.properties +22 -0
- package/src/sap/fe/core/messagebundle_lv.properties +22 -0
- package/src/sap/fe/core/messagebundle_ms.properties +22 -0
- package/src/sap/fe/core/messagebundle_nl.properties +22 -0
- package/src/sap/fe/core/messagebundle_no.properties +22 -0
- package/src/sap/fe/core/messagebundle_pl.properties +22 -0
- package/src/sap/fe/core/messagebundle_pt.properties +22 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -0
- package/src/sap/fe/core/messagebundle_ro.properties +22 -0
- package/src/sap/fe/core/messagebundle_ru.properties +22 -0
- package/src/sap/fe/core/messagebundle_sh.properties +22 -0
- package/src/sap/fe/core/messagebundle_sk.properties +22 -0
- package/src/sap/fe/core/messagebundle_sl.properties +22 -0
- package/src/sap/fe/core/messagebundle_sv.properties +22 -0
- package/src/sap/fe/core/messagebundle_th.properties +22 -0
- package/src/sap/fe/core/messagebundle_tr.properties +22 -0
- package/src/sap/fe/core/messagebundle_uk.properties +22 -0
- package/src/sap/fe/core/messagebundle_vi.properties +22 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -0
- package/src/sap/fe/core/operationsHelper-dbg.js +155 -0
- package/src/sap/fe/core/operationsHelper.js +3 -205
- package/src/sap/fe/core/operationsHelper.js.map +1 -0
- package/src/sap/fe/core/operationsHelper.ts +14 -68
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +837 -0
- package/src/sap/fe/core/rootView/Fcl.controller.js +3 -855
- package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -0
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +190 -0
- package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -190
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -0
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +506 -0
- package/src/sap/fe/core/rootView/RootViewBaseController.js +3 -538
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -0
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +60 -0
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -60
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +196 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -219
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +80 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -82
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +320 -0
- package/src/sap/fe/core/services/NavigationServiceFactory.js +3 -320
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +91 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -89
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +817 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -847
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +732 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +3 -752
- package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +569 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +3 -599
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +355 -0
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +3 -387
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +37 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +3 -34
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js.map +1 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +4 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +3 -3
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +3 -3
- package/src/sap/fe/core/support/CommonHelper-dbg.js +63 -0
- package/src/sap/fe/core/support/CommonHelper.js +3 -60
- package/src/sap/fe/core/support/CommonHelper.js.map +1 -0
- package/src/sap/fe/core/support/Diagnostics-dbg.js +44 -0
- package/src/sap/fe/core/support/Diagnostics.js +3 -49
- package/src/sap/fe/core/support/Diagnostics.js.map +1 -0
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +3 -3
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +70 -0
- package/src/sap/fe/core/templating/CommonFormatters.js +3 -66
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +9 -3
- package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +136 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +3 -133
- package/src/sap/fe/core/templating/CriticalityFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +58 -0
- package/src/sap/fe/core/templating/DataFieldFormatters.js +3 -55
- package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +363 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -372
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +17 -8
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +56 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +3 -124
- package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +0 -47
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +68 -0
- package/src/sap/fe/core/templating/EntitySetHelper.js +3 -81
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +77 -0
- package/src/sap/fe/core/templating/FieldControlHelper.js +3 -74
- package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +346 -0
- package/src/sap/fe/core/templating/FilterHelper.js +3 -339
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FilterHelper.ts +2 -21
- package/src/sap/fe/core/templating/FilterTemplating-dbg.js +62 -0
- package/src/sap/fe/core/templating/FilterTemplating.js +3 -59
- package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -0
- package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +93 -0
- package/src/sap/fe/core/templating/PropertyFormatters.js +3 -90
- package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +340 -0
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -337
- package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper-dbg.js +91 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +3 -43
- package/src/sap/fe/core/templating/SemanticObjectHelper.js.map +1 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +45 -1
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +498 -0
- package/src/sap/fe/core/templating/UIFormatters.js +3 -544
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/UIFormatters.ts +60 -110
- package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +35 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -33
- package/src/sap/fe/core/type/DateTimeWithTimezone.js.map +1 -0
- package/src/sap/fe/core/type/EDM-dbg.js +84 -0
- package/src/sap/fe/core/type/EDM.js +6 -0
- package/src/sap/fe/core/type/EDM.js.map +1 -0
- package/src/sap/fe/core/type/EDM.ts +70 -0
- package/src/sap/fe/core/type/Email-dbg.js +29 -0
- package/src/sap/fe/core/type/Email.js +3 -26
- package/src/sap/fe/core/type/Email.js.map +1 -0
- package/src/sap/fe/core/type/FiscalDate-dbg.js +174 -0
- package/src/sap/fe/core/type/FiscalDate.js +6 -0
- package/src/sap/fe/core/type/FiscalDate.js.map +1 -0
- package/src/sap/fe/core/type/FiscalDate.ts +179 -0
- package/src/sap/fe/core/type/TypeUtil-dbg.js +58 -0
- package/src/sap/fe/core/type/TypeUtil.js +3 -55
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -0
- package/src/sap/fe/core/type/TypeUtil.ts +1 -0
- package/src/.eslintrc +0 -7
|
@@ -1,375 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/helpers/BindingToolkit",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _exports = {};
|
|
9
|
-
var isPathExpression = PropertyHelper.isPathExpression;
|
|
10
|
-
var isAnnotationPathExpression = PropertyHelper.isAnnotationPathExpression;
|
|
11
|
-
var unresolveableExpression = BindingToolkit.unresolveableExpression;
|
|
12
|
-
var getExpressionFromAnnotation = BindingToolkit.getExpressionFromAnnotation;
|
|
13
|
-
var equal = BindingToolkit.equal;
|
|
14
|
-
var constant = BindingToolkit.constant;
|
|
15
|
-
/**
|
|
16
|
-
* Function that returns the relative path to the property from the DataModelObjectPath.
|
|
17
|
-
*
|
|
18
|
-
* @param contextPath The DataModelObjectPath object to the property
|
|
19
|
-
* @returns The path from the root entity set.
|
|
20
|
-
*/
|
|
21
|
-
var getRelativePaths = function (contextPath) {
|
|
22
|
-
return getPathRelativeLocation(contextPath === null || contextPath === void 0 ? void 0 : contextPath.contextLocation, contextPath === null || contextPath === void 0 ? void 0 : contextPath.navigationProperties).map(function (np) {
|
|
23
|
-
return np.name;
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
_exports.getRelativePaths = getRelativePaths;
|
|
27
|
-
var getPathRelativeLocation = function (contextPath) {
|
|
28
|
-
var visitedNavProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
29
|
-
if (!contextPath) {
|
|
30
|
-
return visitedNavProps;
|
|
31
|
-
} else if (visitedNavProps.length >= contextPath.navigationProperties.length) {
|
|
32
|
-
var remainingNavProps = [];
|
|
33
|
-
contextPath.navigationProperties.forEach(function (navProp, navIndex) {
|
|
34
|
-
if (visitedNavProps[navIndex] !== navProp) {
|
|
35
|
-
remainingNavProps.push(visitedNavProps[navIndex]);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
remainingNavProps = remainingNavProps.concat(visitedNavProps.slice(contextPath.navigationProperties.length));
|
|
39
|
-
// Clean up NavProp -> Owner
|
|
40
|
-
var currentIdx = 0;
|
|
41
|
-
while (remainingNavProps.length > 1 && currentIdx != remainingNavProps.length - 1) {
|
|
42
|
-
var currentNav = remainingNavProps[currentIdx];
|
|
43
|
-
var nextNavProp = remainingNavProps[currentIdx + 1];
|
|
44
|
-
if (currentNav._type === "NavigationProperty" && currentNav.partner === nextNavProp.name) {
|
|
45
|
-
remainingNavProps.splice(0, 2);
|
|
46
|
-
} else {
|
|
47
|
-
currentIdx++;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return remainingNavProps;
|
|
51
|
-
} else {
|
|
52
|
-
var extraNavProp = [];
|
|
53
|
-
visitedNavProps.forEach(function (navProp, navIndex) {
|
|
54
|
-
if (contextPath.navigationProperties[navIndex] !== navProp) {
|
|
55
|
-
extraNavProp.push(visitedNavProps[navIndex]);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
extraNavProp = extraNavProp.concat(contextPath.navigationProperties.slice(visitedNavProps.length));
|
|
59
|
-
// Clean up NavProp -> Owner
|
|
60
|
-
var _currentIdx = 0;
|
|
61
|
-
while (extraNavProp.length > 1 && _currentIdx != extraNavProp.length - 1) {
|
|
62
|
-
var _currentNav = extraNavProp[_currentIdx];
|
|
63
|
-
var _nextNavProp = extraNavProp[_currentIdx + 1];
|
|
64
|
-
if (_currentNav._type === "NavigationProperty" && _currentNav.partner === _nextNavProp.name) {
|
|
65
|
-
extraNavProp.splice(0, 2);
|
|
66
|
-
} else {
|
|
67
|
-
_currentIdx++;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
extraNavProp = extraNavProp.map(function (navProp) {
|
|
71
|
-
return navProp._type === "NavigationProperty" ? navProp.targetType.navigationProperties.find(function (np) {
|
|
72
|
-
return np.name === navProp.partner;
|
|
73
|
-
}) : navProp;
|
|
74
|
-
});
|
|
75
|
-
return extraNavProp;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
_exports.getPathRelativeLocation = getPathRelativeLocation;
|
|
79
|
-
var enhanceDataModelPath = function (dataModelObjectPath, propertyPath) {
|
|
80
|
-
var sPropertyPath = "";
|
|
81
|
-
if ((isPathExpression(propertyPath) || isAnnotationPathExpression(propertyPath)) && propertyPath.path) {
|
|
82
|
-
sPropertyPath = propertyPath.path;
|
|
83
|
-
} else if (typeof propertyPath === "string") {
|
|
84
|
-
sPropertyPath = propertyPath;
|
|
85
|
-
}
|
|
86
|
-
var oTarget;
|
|
87
|
-
if (isPathExpression(propertyPath) || isAnnotationPathExpression(propertyPath)) {
|
|
88
|
-
oTarget = propertyPath.$target;
|
|
89
|
-
} else if (dataModelObjectPath.targetEntityType) {
|
|
90
|
-
oTarget = dataModelObjectPath.targetEntityType.resolvePath(sPropertyPath);
|
|
91
|
-
} else {
|
|
92
|
-
oTarget = dataModelObjectPath.targetObject;
|
|
93
|
-
}
|
|
94
|
-
var aPathSplit = sPropertyPath.split("/");
|
|
95
|
-
var currentEntitySet = dataModelObjectPath.targetEntitySet;
|
|
96
|
-
var currentEntityType = dataModelObjectPath.targetEntityType;
|
|
97
|
-
var navigationProperties = dataModelObjectPath.navigationProperties.concat();
|
|
98
|
-
// Process only if we have to go through navigation properties
|
|
99
|
-
|
|
100
|
-
var reducedEntityType = dataModelObjectPath.targetEntityType;
|
|
101
|
-
aPathSplit.forEach(function (pathPart) {
|
|
102
|
-
if (!reducedEntityType) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
var potentialNavProp = reducedEntityType.navigationProperties.find(function (navProp) {
|
|
106
|
-
return navProp.name === pathPart;
|
|
107
|
-
});
|
|
108
|
-
if (potentialNavProp) {
|
|
109
|
-
navigationProperties.push(potentialNavProp);
|
|
110
|
-
currentEntityType = potentialNavProp.targetType;
|
|
111
|
-
if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(pathPart)) {
|
|
112
|
-
currentEntitySet = currentEntitySet.navigationPropertyBinding[pathPart];
|
|
113
|
-
}
|
|
114
|
-
reducedEntityType = currentEntityType;
|
|
115
|
-
} else {
|
|
116
|
-
var potentialComplexType = reducedEntityType.entityProperties.find(function (navProp) {
|
|
117
|
-
return navProp.name === pathPart;
|
|
118
|
-
});
|
|
119
|
-
if (potentialComplexType !== null && potentialComplexType !== void 0 && potentialComplexType.targetType) {
|
|
120
|
-
navigationProperties.push(potentialComplexType);
|
|
121
|
-
reducedEntityType = currentEntityType;
|
|
122
|
-
} else {
|
|
123
|
-
reducedEntityType = undefined;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
return {
|
|
128
|
-
startingEntitySet: dataModelObjectPath.startingEntitySet,
|
|
129
|
-
navigationProperties: navigationProperties,
|
|
130
|
-
contextLocation: dataModelObjectPath.contextLocation,
|
|
131
|
-
targetEntitySet: currentEntitySet,
|
|
132
|
-
targetEntityType: currentEntityType,
|
|
133
|
-
targetObject: oTarget,
|
|
134
|
-
convertedTypes: dataModelObjectPath.convertedTypes
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
_exports.enhanceDataModelPath = enhanceDataModelPath;
|
|
138
|
-
var getTargetEntitySetPath = function (dataModelObjectPath) {
|
|
139
|
-
var targetEntitySetPath = "/".concat(dataModelObjectPath.startingEntitySet.name);
|
|
140
|
-
var currentEntitySet = dataModelObjectPath.startingEntitySet;
|
|
141
|
-
var navigatedPaths = [];
|
|
142
|
-
dataModelObjectPath.navigationProperties.forEach(function (navProp) {
|
|
143
|
-
navigatedPaths.push(navProp.name);
|
|
144
|
-
if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(navigatedPaths.join("/"))) {
|
|
145
|
-
targetEntitySetPath += "/$NavigationPropertyBinding/".concat(navigatedPaths.join("/"), "/$");
|
|
146
|
-
currentEntitySet = currentEntitySet.navigationPropertyBinding[navigatedPaths.join("/")];
|
|
147
|
-
navigatedPaths = [];
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
return targetEntitySetPath;
|
|
151
|
-
};
|
|
152
|
-
_exports.getTargetEntitySetPath = getTargetEntitySetPath;
|
|
153
|
-
var getTargetObjectPath = function (dataModelObjectPath) {
|
|
154
|
-
var bRelative = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
155
|
-
var path = "";
|
|
156
|
-
if (!dataModelObjectPath.startingEntitySet) {
|
|
157
|
-
return "/";
|
|
158
|
-
}
|
|
159
|
-
if (!bRelative) {
|
|
160
|
-
path += "/".concat(dataModelObjectPath.startingEntitySet.name);
|
|
161
|
-
}
|
|
162
|
-
if (dataModelObjectPath.navigationProperties.length > 0) {
|
|
163
|
-
path = setTrailingSlash(path);
|
|
164
|
-
path += dataModelObjectPath.navigationProperties.map(function (navProp) {
|
|
165
|
-
return navProp.name;
|
|
166
|
-
}).join("/");
|
|
167
|
-
}
|
|
168
|
-
if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.name && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject._type !== "EntitySet" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
|
|
169
|
-
path = setTrailingSlash(path);
|
|
170
|
-
path += "".concat(dataModelObjectPath.targetObject.name);
|
|
171
|
-
} else if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.hasOwnProperty("term")) {
|
|
172
|
-
path = setTrailingSlash(path);
|
|
173
|
-
path += "@".concat(dataModelObjectPath.targetObject.term);
|
|
174
|
-
if (dataModelObjectPath.targetObject.hasOwnProperty("qualifier") && !!dataModelObjectPath.targetObject.qualifier) {
|
|
175
|
-
path += "#".concat(dataModelObjectPath.targetObject.qualifier);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return path;
|
|
179
|
-
};
|
|
180
|
-
_exports.getTargetObjectPath = getTargetObjectPath;
|
|
181
|
-
var getContextRelativeTargetObjectPath = function (dataModelObjectPath) {
|
|
182
|
-
var _dataModelObjectPath$;
|
|
183
|
-
var forBindingExpression = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
184
|
-
if (((_dataModelObjectPath$ = dataModelObjectPath.contextLocation) === null || _dataModelObjectPath$ === void 0 ? void 0 : _dataModelObjectPath$.startingEntitySet) !== dataModelObjectPath.startingEntitySet) {
|
|
185
|
-
return getTargetObjectPath(dataModelObjectPath);
|
|
186
|
-
}
|
|
187
|
-
return _getContextRelativeTargetObjectPath(dataModelObjectPath, forBindingExpression);
|
|
188
|
-
};
|
|
189
|
-
_exports.getContextRelativeTargetObjectPath = getContextRelativeTargetObjectPath;
|
|
190
|
-
var _getContextRelativeTargetObjectPath = function (dataModelObjectPath) {
|
|
191
|
-
var forBindingExpression = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
192
|
-
var navProperties = getPathRelativeLocation(dataModelObjectPath.contextLocation, dataModelObjectPath.navigationProperties);
|
|
193
|
-
if (forBindingExpression) {
|
|
194
|
-
if (navProperties.find(function (np) {
|
|
195
|
-
return np._type === "NavigationProperty" && np.isCollection;
|
|
196
|
-
})) {
|
|
197
|
-
return undefined;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
var path = navProperties.map(function (np) {
|
|
201
|
-
return np.name;
|
|
202
|
-
}).join("/");
|
|
203
|
-
if (dataModelObjectPath.targetObject && (dataModelObjectPath.targetObject.name || dataModelObjectPath.targetObject.type === "PropertyPath" && dataModelObjectPath.targetObject.value) && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject._type !== "EntitySet" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
|
|
204
|
-
path = setTrailingSlash(path);
|
|
205
|
-
path += dataModelObjectPath.targetObject.type === "PropertyPath" ? "".concat(dataModelObjectPath.targetObject.value) : "".concat(dataModelObjectPath.targetObject.name);
|
|
206
|
-
} else if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.hasOwnProperty("term")) {
|
|
207
|
-
path = setTrailingSlash(path);
|
|
208
|
-
path += "@".concat(dataModelObjectPath.targetObject.term);
|
|
209
|
-
if (dataModelObjectPath.targetObject.hasOwnProperty("qualifier") && !!dataModelObjectPath.targetObject.qualifier) {
|
|
210
|
-
path += "#".concat(dataModelObjectPath.targetObject.qualifier);
|
|
211
|
-
}
|
|
212
|
-
} else if (!dataModelObjectPath.targetObject) {
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
return path;
|
|
216
|
-
};
|
|
217
|
-
var isPathUpdatable = function (dataModelObjectPath, extractionParametersOnPath) {
|
|
218
|
-
return checkOnPath(dataModelObjectPath, function (annotationObject) {
|
|
219
|
-
var _annotationObject$Upd;
|
|
220
|
-
return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Upd = annotationObject.UpdateRestrictions) === null || _annotationObject$Upd === void 0 ? void 0 : _annotationObject$Upd.Updatable;
|
|
221
|
-
}, extractionParametersOnPath);
|
|
222
|
-
};
|
|
223
|
-
_exports.isPathUpdatable = isPathUpdatable;
|
|
224
|
-
var isPathSearchable = function (dataModelObjectPath, extractionParametersOnPath) {
|
|
225
|
-
return checkOnPath(dataModelObjectPath, function (annotationObject) {
|
|
226
|
-
var _annotationObject$Sea;
|
|
227
|
-
return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Sea = annotationObject.SearchRestrictions) === null || _annotationObject$Sea === void 0 ? void 0 : _annotationObject$Sea.Searchable;
|
|
228
|
-
}, extractionParametersOnPath);
|
|
229
|
-
};
|
|
230
|
-
_exports.isPathSearchable = isPathSearchable;
|
|
231
|
-
var isPathDeletable = function (dataModelObjectPath, extractionParametersOnPath) {
|
|
232
|
-
return checkOnPath(dataModelObjectPath, function (annotationObject) {
|
|
233
|
-
var _annotationObject$Del;
|
|
234
|
-
return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Del = annotationObject.DeleteRestrictions) === null || _annotationObject$Del === void 0 ? void 0 : _annotationObject$Del.Deletable;
|
|
235
|
-
}, extractionParametersOnPath);
|
|
236
|
-
};
|
|
237
|
-
_exports.isPathDeletable = isPathDeletable;
|
|
238
|
-
var isPathInsertable = function (dataModelObjectPath, extractionParametersOnPath) {
|
|
239
|
-
return checkOnPath(dataModelObjectPath, function (annotationObject) {
|
|
240
|
-
var _annotationObject$Ins;
|
|
241
|
-
return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Ins = annotationObject.InsertRestrictions) === null || _annotationObject$Ins === void 0 ? void 0 : _annotationObject$Ins.Insertable;
|
|
242
|
-
}, extractionParametersOnPath);
|
|
243
|
-
};
|
|
244
|
-
_exports.isPathInsertable = isPathInsertable;
|
|
245
|
-
var checkFilterExpressionRestrictions = function (dataModelObjectPath, allowedExpression) {
|
|
246
|
-
return checkOnPath(dataModelObjectPath, function (annotationObject) {
|
|
247
|
-
if (annotationObject && "FilterRestrictions" in annotationObject) {
|
|
248
|
-
var _annotationObject$Fil;
|
|
249
|
-
var filterExpressionRestrictions = (annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Fil = annotationObject.FilterRestrictions) === null || _annotationObject$Fil === void 0 ? void 0 : _annotationObject$Fil.FilterExpressionRestrictions) || [];
|
|
250
|
-
var currentObjectRestriction = filterExpressionRestrictions.find(function (restriction) {
|
|
251
|
-
return restriction.Property.$target === dataModelObjectPath.targetObject;
|
|
252
|
-
});
|
|
253
|
-
if (currentObjectRestriction) {
|
|
254
|
-
var _currentObjectRestric;
|
|
255
|
-
return allowedExpression.indexOf(currentObjectRestriction === null || currentObjectRestriction === void 0 ? void 0 : (_currentObjectRestric = currentObjectRestriction.AllowedExpressions) === null || _currentObjectRestric === void 0 ? void 0 : _currentObjectRestric.toString()) !== -1;
|
|
256
|
-
} else {
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
} else {
|
|
260
|
-
return false;
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
};
|
|
264
|
-
_exports.checkFilterExpressionRestrictions = checkFilterExpressionRestrictions;
|
|
265
|
-
var checkOnPath = function (dataModelObjectPath, checkFunction, extractionParametersOnPath) {
|
|
266
|
-
if (!dataModelObjectPath || !dataModelObjectPath.startingEntitySet) {
|
|
267
|
-
return constant(true);
|
|
268
|
-
}
|
|
269
|
-
dataModelObjectPath = enhanceDataModelPath(dataModelObjectPath, extractionParametersOnPath === null || extractionParametersOnPath === void 0 ? void 0 : extractionParametersOnPath.propertyPath);
|
|
270
|
-
var currentEntitySet = dataModelObjectPath.startingEntitySet;
|
|
271
|
-
var parentEntitySet = null;
|
|
272
|
-
var visitedNavigationPropsName = [];
|
|
273
|
-
var allVisitedNavigationProps = [];
|
|
274
|
-
var targetEntitySet = currentEntitySet;
|
|
275
|
-
var targetEntityType = dataModelObjectPath.targetEntityType;
|
|
276
|
-
var resetVisitedNavProps = false;
|
|
277
|
-
dataModelObjectPath.navigationProperties.forEach(function (navigationProperty) {
|
|
278
|
-
if (resetVisitedNavProps) {
|
|
279
|
-
visitedNavigationPropsName = [];
|
|
280
|
-
}
|
|
281
|
-
visitedNavigationPropsName.push(navigationProperty.name);
|
|
282
|
-
allVisitedNavigationProps.push(navigationProperty);
|
|
283
|
-
if (navigationProperty._type === "Property" || !navigationProperty.containsTarget) {
|
|
284
|
-
// We should have a navigationPropertyBinding associated with the path so far which can consist of ([ContainmentNavProp]/)*[NavProp]
|
|
285
|
-
var _fullNavigationPath = visitedNavigationPropsName.join("/");
|
|
286
|
-
if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(_fullNavigationPath)) {
|
|
287
|
-
parentEntitySet = currentEntitySet;
|
|
288
|
-
currentEntitySet = currentEntitySet.navigationPropertyBinding[_fullNavigationPath];
|
|
289
|
-
targetEntitySet = currentEntitySet;
|
|
290
|
-
// If we reached a navigation property with a navigationpropertybinding, we need to reset the visited path on the next iteration (if there is one)
|
|
291
|
-
resetVisitedNavProps = true;
|
|
292
|
-
} else {
|
|
293
|
-
// We really should not end up here but at least let's try to avoid incorrect behavior
|
|
294
|
-
parentEntitySet = currentEntitySet;
|
|
295
|
-
currentEntitySet = null;
|
|
296
|
-
resetVisitedNavProps = true;
|
|
297
|
-
}
|
|
298
|
-
} else {
|
|
299
|
-
parentEntitySet = currentEntitySet;
|
|
300
|
-
targetEntitySet = null;
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
// At this point we have navigated down all the nav prop and we should have
|
|
305
|
-
// The target entitySet pointing to either null (in case of containment navprop a last part), or the actual target (non containment as target)
|
|
306
|
-
// The parent entitySet pointing to the previous entitySet used in the path
|
|
307
|
-
// VisitedNavigationPath should contain the path up to this property
|
|
308
|
-
|
|
309
|
-
// Restrictions should then be evaluated as ParentEntitySet.NavRestrictions[NavPropertyPath] || TargetEntitySet.Restrictions
|
|
310
|
-
var fullNavigationPath = visitedNavigationPropsName.join("/");
|
|
311
|
-
var restrictions, visitedNavProps;
|
|
312
|
-
if (parentEntitySet !== null) {
|
|
313
|
-
var _parentEntitySet$anno, _parentEntitySet$anno2, _parentEntitySet$anno3;
|
|
314
|
-
var _parentEntitySet = parentEntitySet;
|
|
315
|
-
(_parentEntitySet$anno = _parentEntitySet.annotations) === null || _parentEntitySet$anno === void 0 ? void 0 : (_parentEntitySet$anno2 = _parentEntitySet$anno.Capabilities) === null || _parentEntitySet$anno2 === void 0 ? void 0 : (_parentEntitySet$anno3 = _parentEntitySet$anno2.NavigationRestrictions) === null || _parentEntitySet$anno3 === void 0 ? void 0 : _parentEntitySet$anno3.RestrictedProperties.forEach(function (restrictedNavProp) {
|
|
316
|
-
var _restrictedNavProp$Na;
|
|
317
|
-
if (((_restrictedNavProp$Na = restrictedNavProp.NavigationProperty) === null || _restrictedNavProp$Na === void 0 ? void 0 : _restrictedNavProp$Na.type) === "NavigationPropertyPath") {
|
|
318
|
-
var restrictionDefinition = checkFunction(restrictedNavProp);
|
|
319
|
-
if (fullNavigationPath === restrictedNavProp.NavigationProperty.value && restrictionDefinition !== undefined) {
|
|
320
|
-
var _dataModelObjectPath;
|
|
321
|
-
var _allVisitedNavigationProps = allVisitedNavigationProps.slice(0, -1);
|
|
322
|
-
visitedNavProps = _allVisitedNavigationProps;
|
|
323
|
-
var pathRelativeLocation = getPathRelativeLocation((_dataModelObjectPath = dataModelObjectPath) === null || _dataModelObjectPath === void 0 ? void 0 : _dataModelObjectPath.contextLocation, visitedNavProps).map(function (np) {
|
|
324
|
-
return np.name;
|
|
325
|
-
});
|
|
326
|
-
var pathVisitorFunction = extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.pathVisitor ? getPathVisitorForSingleton(extractionParametersOnPath.pathVisitor, pathRelativeLocation) : undefined; // send pathVisitor function only when it is defined and only send function or defined as a parameter
|
|
327
|
-
restrictions = equal(getExpressionFromAnnotation(restrictionDefinition, pathRelativeLocation, undefined, pathVisitorFunction), true);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
var targetRestrictions;
|
|
333
|
-
if (!(extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.ignoreTargetCollection)) {
|
|
334
|
-
var _targetEntitySet, _targetEntitySet$anno;
|
|
335
|
-
var restrictionDefinition = checkFunction((_targetEntitySet = targetEntitySet) === null || _targetEntitySet === void 0 ? void 0 : (_targetEntitySet$anno = _targetEntitySet.annotations) === null || _targetEntitySet$anno === void 0 ? void 0 : _targetEntitySet$anno.Capabilities);
|
|
336
|
-
if (targetEntitySet === null && restrictionDefinition === undefined) {
|
|
337
|
-
var _targetEntityType$ann;
|
|
338
|
-
restrictionDefinition = checkFunction(targetEntityType === null || targetEntityType === void 0 ? void 0 : (_targetEntityType$ann = targetEntityType.annotations) === null || _targetEntityType$ann === void 0 ? void 0 : _targetEntityType$ann.Capabilities);
|
|
339
|
-
}
|
|
340
|
-
if (restrictionDefinition !== undefined) {
|
|
341
|
-
var pathRelativeLocation = getPathRelativeLocation(dataModelObjectPath.contextLocation, allVisitedNavigationProps).map(function (np) {
|
|
342
|
-
return np.name;
|
|
343
|
-
});
|
|
344
|
-
var pathVisitorFunction = extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.pathVisitor ? getPathVisitorForSingleton(extractionParametersOnPath.pathVisitor, pathRelativeLocation) : undefined;
|
|
345
|
-
targetRestrictions = equal(getExpressionFromAnnotation(restrictionDefinition, pathRelativeLocation, undefined, pathVisitorFunction), true);
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
return restrictions || targetRestrictions || (extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.authorizeUnresolvable ? unresolveableExpression : constant(true));
|
|
349
|
-
};
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* Set a trailing slash to a path if not already set.
|
|
353
|
-
*
|
|
354
|
-
* @param path The path
|
|
355
|
-
* @returns The path with a trailing slash
|
|
356
|
-
*/
|
|
357
|
-
_exports.checkOnPath = checkOnPath;
|
|
358
|
-
var setTrailingSlash = function (path) {
|
|
359
|
-
if (path.length && !path.endsWith("/")) {
|
|
360
|
-
return "".concat(path, "/");
|
|
361
|
-
}
|
|
362
|
-
return path;
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
// This helper method is used to add relative path location argument to singletonPathVisitorFunction i.e. pathVisitor
|
|
366
|
-
// pathVisitor method is used later to get the correct bindings for singleton entity
|
|
367
|
-
// method is invoked later in pathInModel() method to get the correct binding.
|
|
368
|
-
var getPathVisitorForSingleton = function (pathVisitor, pathRelativeLocation) {
|
|
369
|
-
return function (path) {
|
|
370
|
-
return pathVisitor(path, pathRelativeLocation);
|
|
371
|
-
};
|
|
372
|
-
};
|
|
373
|
-
return _exports;
|
|
374
|
-
}, false);
|
|
375
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRSZWxhdGl2ZVBhdGhzIiwiY29udGV4dFBhdGgiLCJnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiIsImNvbnRleHRMb2NhdGlvbiIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibWFwIiwibnAiLCJuYW1lIiwidmlzaXRlZE5hdlByb3BzIiwibGVuZ3RoIiwicmVtYWluaW5nTmF2UHJvcHMiLCJmb3JFYWNoIiwibmF2UHJvcCIsIm5hdkluZGV4IiwicHVzaCIsImNvbmNhdCIsInNsaWNlIiwiY3VycmVudElkeCIsImN1cnJlbnROYXYiLCJuZXh0TmF2UHJvcCIsIl90eXBlIiwicGFydG5lciIsInNwbGljZSIsImV4dHJhTmF2UHJvcCIsInRhcmdldFR5cGUiLCJmaW5kIiwiZW5oYW5jZURhdGFNb2RlbFBhdGgiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwicHJvcGVydHlQYXRoIiwic1Byb3BlcnR5UGF0aCIsImlzUGF0aEV4cHJlc3Npb24iLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsInBhdGgiLCJvVGFyZ2V0IiwiJHRhcmdldCIsInRhcmdldEVudGl0eVR5cGUiLCJyZXNvbHZlUGF0aCIsInRhcmdldE9iamVjdCIsImFQYXRoU3BsaXQiLCJzcGxpdCIsImN1cnJlbnRFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsInJlZHVjZWRFbnRpdHlUeXBlIiwicGF0aFBhcnQiLCJwb3RlbnRpYWxOYXZQcm9wIiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImhhc093blByb3BlcnR5IiwicG90ZW50aWFsQ29tcGxleFR5cGUiLCJlbnRpdHlQcm9wZXJ0aWVzIiwidW5kZWZpbmVkIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJjb252ZXJ0ZWRUeXBlcyIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJ0YXJnZXRFbnRpdHlTZXRQYXRoIiwibmF2aWdhdGVkUGF0aHMiLCJqb2luIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImJSZWxhdGl2ZSIsInNldFRyYWlsaW5nU2xhc2giLCJ0ZXJtIiwicXVhbGlmaWVyIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsImZvckJpbmRpbmdFeHByZXNzaW9uIiwiX2dldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJuYXZQcm9wZXJ0aWVzIiwiaXNDb2xsZWN0aW9uIiwidHlwZSIsInZhbHVlIiwiaXNQYXRoVXBkYXRhYmxlIiwiZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgiLCJjaGVja09uUGF0aCIsImFubm90YXRpb25PYmplY3QiLCJVcGRhdGVSZXN0cmljdGlvbnMiLCJVcGRhdGFibGUiLCJpc1BhdGhTZWFyY2hhYmxlIiwiU2VhcmNoUmVzdHJpY3Rpb25zIiwiU2VhcmNoYWJsZSIsImlzUGF0aERlbGV0YWJsZSIsIkRlbGV0ZVJlc3RyaWN0aW9ucyIsIkRlbGV0YWJsZSIsImlzUGF0aEluc2VydGFibGUiLCJJbnNlcnRSZXN0cmljdGlvbnMiLCJJbnNlcnRhYmxlIiwiY2hlY2tGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIiwiYWxsb3dlZEV4cHJlc3Npb24iLCJmaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIiwiRmlsdGVyUmVzdHJpY3Rpb25zIiwiRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsImN1cnJlbnRPYmplY3RSZXN0cmljdGlvbiIsInJlc3RyaWN0aW9uIiwiUHJvcGVydHkiLCJpbmRleE9mIiwiQWxsb3dlZEV4cHJlc3Npb25zIiwidG9TdHJpbmciLCJjaGVja0Z1bmN0aW9uIiwiY29uc3RhbnQiLCJwYXJlbnRFbnRpdHlTZXQiLCJ2aXNpdGVkTmF2aWdhdGlvblByb3BzTmFtZSIsImFsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMiLCJyZXNldFZpc2l0ZWROYXZQcm9wcyIsIm5hdmlnYXRpb25Qcm9wZXJ0eSIsImNvbnRhaW5zVGFyZ2V0IiwiZnVsbE5hdmlnYXRpb25QYXRoIiwicmVzdHJpY3Rpb25zIiwiX3BhcmVudEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ2FwYWJpbGl0aWVzIiwiTmF2aWdhdGlvblJlc3RyaWN0aW9ucyIsIlJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwicmVzdHJpY3RlZE5hdlByb3AiLCJOYXZpZ2F0aW9uUHJvcGVydHkiLCJyZXN0cmljdGlvbkRlZmluaXRpb24iLCJfYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcyIsInBhdGhSZWxhdGl2ZUxvY2F0aW9uIiwicGF0aFZpc2l0b3JGdW5jdGlvbiIsInBhdGhWaXNpdG9yIiwiZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24iLCJlcXVhbCIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsInRhcmdldFJlc3RyaWN0aW9ucyIsImlnbm9yZVRhcmdldENvbGxlY3Rpb24iLCJhdXRob3JpemVVbnJlc29sdmFibGUiLCJ1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiIsImVuZHNXaXRoIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJEYXRhTW9kZWxQYXRoSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0Q29udmVydGVkTWV0YWRhdGEsXG5cdEVudGl0eVNldCxcblx0RW50aXR5VHlwZSxcblx0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRQcm9wZXJ0eSxcblx0UHJvcGVydHlQYXRoLFxuXHRTaW5nbGV0b25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvblR5cGVUeXBlcyxcblx0TmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24sXG5cdE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uVHlwZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9DYXBhYmlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHtcblx0RW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzLFxuXHRFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ2FwYWJpbGl0aWVzX0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29uc3RhbnQsIGVxdWFsLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlPclBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EaXNwbGF5TW9kZUZvcm1hdHRlclwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24sIGlzUGF0aEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuXG5leHBvcnQgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoID0ge1xuXHRzdGFydGluZ0VudGl0eVNldDogU2luZ2xldG9uIHwgRW50aXR5U2V0O1xuXHRjb250ZXh0TG9jYXRpb24/OiBEYXRhTW9kZWxPYmplY3RQYXRoO1xuXHRuYXZpZ2F0aW9uUHJvcGVydGllczogKE5hdmlnYXRpb25Qcm9wZXJ0eSB8IFByb3BlcnR5KVtdO1xuXHR0YXJnZXRFbnRpdHlTZXQ/OiBTaW5nbGV0b24gfCBFbnRpdHlTZXQ7XG5cdHRhcmdldEVudGl0eVR5cGU6IEVudGl0eVR5cGU7XG5cdHRhcmdldE9iamVjdDogYW55O1xuXHRjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGE7XG59O1xuXG50eXBlIEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoID0ge1xuXHRwcm9wZXJ0eVBhdGg/OiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT47XG5cdHBhdGhWaXNpdG9yPzogRnVuY3Rpb247XG5cdGlnbm9yZVRhcmdldENvbGxlY3Rpb24/OiBib29sZWFuO1xuXHRhdXRob3JpemVVbnJlc29sdmFibGU/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHByb3BlcnR5IGZyb20gdGhlIERhdGFNb2RlbE9iamVjdFBhdGguXG4gKlxuICogQHBhcmFtIGNvbnRleHRQYXRoIFRoZSBEYXRhTW9kZWxPYmplY3RQYXRoIG9iamVjdCB0byB0aGUgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBwYXRoIGZyb20gdGhlIHJvb3QgZW50aXR5IHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJlbGF0aXZlUGF0aHMgPSBmdW5jdGlvbiAoY29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpIHtcblx0cmV0dXJuIGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKGNvbnRleHRQYXRoPy5jb250ZXh0TG9jYXRpb24sIGNvbnRleHRQYXRoPy5uYXZpZ2F0aW9uUHJvcGVydGllcykubWFwKChucCkgPT4gbnAubmFtZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24gPSBmdW5jdGlvbiAoXG5cdGNvbnRleHRQYXRoPzogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0dmlzaXRlZE5hdlByb3BzOiAoTmF2aWdhdGlvblByb3BlcnR5IHwgUHJvcGVydHkpW10gPSBbXVxuKTogKE5hdmlnYXRpb25Qcm9wZXJ0eSB8IFByb3BlcnR5KVtdIHtcblx0aWYgKCFjb250ZXh0UGF0aCkge1xuXHRcdHJldHVybiB2aXNpdGVkTmF2UHJvcHM7XG5cdH0gZWxzZSBpZiAodmlzaXRlZE5hdlByb3BzLmxlbmd0aCA+PSBjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRsZXQgcmVtYWluaW5nTmF2UHJvcHM6IChOYXZpZ2F0aW9uUHJvcGVydHkgfCBQcm9wZXJ0eSlbXSA9IFtdO1xuXHRcdGNvbnRleHRQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goKG5hdlByb3AsIG5hdkluZGV4KSA9PiB7XG5cdFx0XHRpZiAodmlzaXRlZE5hdlByb3BzW25hdkluZGV4XSAhPT0gbmF2UHJvcCkge1xuXHRcdFx0XHRyZW1haW5pbmdOYXZQcm9wcy5wdXNoKHZpc2l0ZWROYXZQcm9wc1tuYXZJbmRleF0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJlbWFpbmluZ05hdlByb3BzID0gcmVtYWluaW5nTmF2UHJvcHMuY29uY2F0KHZpc2l0ZWROYXZQcm9wcy5zbGljZShjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGgpKTtcblx0XHQvLyBDbGVhbiB1cCBOYXZQcm9wIC0+IE93bmVyXG5cdFx0bGV0IGN1cnJlbnRJZHggPSAwO1xuXHRcdHdoaWxlIChyZW1haW5pbmdOYXZQcm9wcy5sZW5ndGggPiAxICYmIGN1cnJlbnRJZHggIT0gcmVtYWluaW5nTmF2UHJvcHMubGVuZ3RoIC0gMSkge1xuXHRcdFx0Y29uc3QgY3VycmVudE5hdiA9IHJlbWFpbmluZ05hdlByb3BzW2N1cnJlbnRJZHhdO1xuXHRcdFx0Y29uc3QgbmV4dE5hdlByb3AgPSByZW1haW5pbmdOYXZQcm9wc1tjdXJyZW50SWR4ICsgMV07XG5cdFx0XHRpZiAoY3VycmVudE5hdi5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJiBjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0cmVtYWluaW5nTmF2UHJvcHMuc3BsaWNlKDAsIDIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3VycmVudElkeCsrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVtYWluaW5nTmF2UHJvcHM7XG5cdH0gZWxzZSB7XG5cdFx0bGV0IGV4dHJhTmF2UHJvcDogKE5hdmlnYXRpb25Qcm9wZXJ0eSB8IFByb3BlcnR5KVtdID0gW107XG5cdFx0dmlzaXRlZE5hdlByb3BzLmZvckVhY2goKG5hdlByb3AsIG5hdkluZGV4KSA9PiB7XG5cdFx0XHRpZiAoY29udGV4dFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXNbbmF2SW5kZXhdICE9PSBuYXZQcm9wKSB7XG5cdFx0XHRcdGV4dHJhTmF2UHJvcC5wdXNoKHZpc2l0ZWROYXZQcm9wc1tuYXZJbmRleF0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGV4dHJhTmF2UHJvcCA9IGV4dHJhTmF2UHJvcC5jb25jYXQoY29udGV4dFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuc2xpY2UodmlzaXRlZE5hdlByb3BzLmxlbmd0aCkpO1xuXHRcdC8vIENsZWFuIHVwIE5hdlByb3AgLT4gT3duZXJcblx0XHRsZXQgY3VycmVudElkeCA9IDA7XG5cdFx0d2hpbGUgKGV4dHJhTmF2UHJvcC5sZW5ndGggPiAxICYmIGN1cnJlbnRJZHggIT0gZXh0cmFOYXZQcm9wLmxlbmd0aCAtIDEpIHtcblx0XHRcdGNvbnN0IGN1cnJlbnROYXYgPSBleHRyYU5hdlByb3BbY3VycmVudElkeF07XG5cdFx0XHRjb25zdCBuZXh0TmF2UHJvcCA9IGV4dHJhTmF2UHJvcFtjdXJyZW50SWR4ICsgMV07XG5cdFx0XHRpZiAoY3VycmVudE5hdi5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJiBjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0ZXh0cmFOYXZQcm9wLnNwbGljZSgwLCAyKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRJZHgrKztcblx0XHRcdH1cblx0XHR9XG5cdFx0ZXh0cmFOYXZQcm9wID0gZXh0cmFOYXZQcm9wLm1hcCgobmF2UHJvcCkgPT4ge1xuXHRcdFx0cmV0dXJuIG5hdlByb3AuX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCJcblx0XHRcdFx0PyAobmF2UHJvcC50YXJnZXRUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZpbmQoKG5wKSA9PiBucC5uYW1lID09PSBuYXZQcm9wLnBhcnRuZXIpIGFzIE5hdmlnYXRpb25Qcm9wZXJ0eSlcblx0XHRcdFx0OiBuYXZQcm9wO1xuXHRcdH0pO1xuXHRcdHJldHVybiBleHRyYU5hdlByb3A7XG5cdH1cbn07XG5cbmV4cG9ydCBjb25zdCBlbmhhbmNlRGF0YU1vZGVsUGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0cHJvcGVydHlQYXRoPzogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+XG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0bGV0IHNQcm9wZXJ0eVBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGlmICgoaXNQYXRoRXhwcmVzc2lvbihwcm9wZXJ0eVBhdGgpIHx8IGlzQW5ub3RhdGlvblBhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkpICYmIHByb3BlcnR5UGF0aC5wYXRoKSB7XG5cdFx0c1Byb3BlcnR5UGF0aCA9IHByb3BlcnR5UGF0aC5wYXRoO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBwcm9wZXJ0eVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRzUHJvcGVydHlQYXRoID0gcHJvcGVydHlQYXRoO1xuXHR9XG5cdGxldCBvVGFyZ2V0O1xuXHRpZiAoaXNQYXRoRXhwcmVzc2lvbihwcm9wZXJ0eVBhdGgpIHx8IGlzQW5ub3RhdGlvblBhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkpIHtcblx0XHRvVGFyZ2V0ID0gcHJvcGVydHlQYXRoLiR0YXJnZXQ7XG5cdH0gZWxzZSBpZiAoZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlKSB7XG5cdFx0b1RhcmdldCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZS5yZXNvbHZlUGF0aChzUHJvcGVydHlQYXRoKTtcblx0fSBlbHNlIHtcblx0XHRvVGFyZ2V0ID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q7XG5cdH1cblx0Y29uc3QgYVBhdGhTcGxpdCA9IHNQcm9wZXJ0eVBhdGguc3BsaXQoXCIvXCIpO1xuXHRsZXQgY3VycmVudEVudGl0eVNldCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5U2V0O1xuXHRsZXQgY3VycmVudEVudGl0eVR5cGUgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5jb25jYXQoKTtcblx0Ly8gUHJvY2VzcyBvbmx5IGlmIHdlIGhhdmUgdG8gZ28gdGhyb3VnaCBuYXZpZ2F0aW9uIHByb3BlcnRpZXNcblxuXHRsZXQgcmVkdWNlZEVudGl0eVR5cGU6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdGFQYXRoU3BsaXQuZm9yRWFjaCgocGF0aFBhcnQ6IHN0cmluZykgPT4ge1xuXHRcdGlmICghcmVkdWNlZEVudGl0eVR5cGUpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgcG90ZW50aWFsTmF2UHJvcCA9IHJlZHVjZWRFbnRpdHlUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZpbmQoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSA9PT0gcGF0aFBhcnQpO1xuXHRcdGlmIChwb3RlbnRpYWxOYXZQcm9wKSB7XG5cdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKHBvdGVudGlhbE5hdlByb3ApO1xuXHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSBwb3RlbnRpYWxOYXZQcm9wLnRhcmdldFR5cGU7XG5cdFx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkocGF0aFBhcnQpKSB7XG5cdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbcGF0aFBhcnRdIGFzIEVudGl0eVNldDtcblx0XHRcdH1cblx0XHRcdHJlZHVjZWRFbnRpdHlUeXBlID0gY3VycmVudEVudGl0eVR5cGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHBvdGVudGlhbENvbXBsZXhUeXBlID0gcmVkdWNlZEVudGl0eVR5cGUuZW50aXR5UHJvcGVydGllcy5maW5kKChuYXZQcm9wKSA9PiBuYXZQcm9wLm5hbWUgPT09IHBhdGhQYXJ0KTtcblx0XHRcdGlmIChwb3RlbnRpYWxDb21wbGV4VHlwZT8udGFyZ2V0VHlwZSkge1xuXHRcdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKHBvdGVudGlhbENvbXBsZXhUeXBlKTtcblx0XHRcdFx0cmVkdWNlZEVudGl0eVR5cGUgPSBjdXJyZW50RW50aXR5VHlwZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlZHVjZWRFbnRpdHlUeXBlID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIHtcblx0XHRzdGFydGluZ0VudGl0eVNldDogZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCxcblx0XHRuYXZpZ2F0aW9uUHJvcGVydGllczogbmF2aWdhdGlvblByb3BlcnRpZXMsXG5cdFx0Y29udGV4dExvY2F0aW9uOiBkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHR0YXJnZXRFbnRpdHlTZXQ6IGN1cnJlbnRFbnRpdHlTZXQsXG5cdFx0dGFyZ2V0RW50aXR5VHlwZTogY3VycmVudEVudGl0eVR5cGUsXG5cdFx0dGFyZ2V0T2JqZWN0OiBvVGFyZ2V0LFxuXHRcdGNvbnZlcnRlZFR5cGVzOiBkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnZlcnRlZFR5cGVzXG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFyZ2V0RW50aXR5U2V0UGF0aCA9IGZ1bmN0aW9uIChkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoKTogc3RyaW5nIHtcblx0bGV0IHRhcmdldEVudGl0eVNldFBhdGg6IHN0cmluZyA9IGAvJHtkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWV9YDtcblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0O1xuXHRsZXQgbmF2aWdhdGVkUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaCgobmF2UHJvcCkgPT4ge1xuXHRcdG5hdmlnYXRlZFBhdGhzLnB1c2gobmF2UHJvcC5uYW1lKTtcblx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkobmF2aWdhdGVkUGF0aHMuam9pbihcIi9cIikpKSB7XG5cdFx0XHR0YXJnZXRFbnRpdHlTZXRQYXRoICs9IGAvJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcvJHtuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKX0vJGA7XG5cdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW25hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpXSBhcyBFbnRpdHlTZXQ7XG5cdFx0XHRuYXZpZ2F0ZWRQYXRocyA9IFtdO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiB0YXJnZXRFbnRpdHlTZXRQYXRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRhcmdldE9iamVjdFBhdGggPSBmdW5jdGlvbiAoZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCwgYlJlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xuXHRsZXQgcGF0aCA9IFwiXCI7XG5cdGlmICghZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdHJldHVybiBcIi9cIjtcblx0fVxuXHRpZiAoIWJSZWxhdGl2ZSkge1xuXHRcdHBhdGggKz0gYC8ke2RhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQubmFtZX1gO1xuXHR9XG5cdGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcblx0XHRwYXRoID0gc2V0VHJhaWxpbmdTbGFzaChwYXRoKTtcblx0XHRwYXRoICs9IGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubWFwKChuYXZQcm9wKSA9PiBuYXZQcm9wLm5hbWUpLmpvaW4oXCIvXCIpO1xuXHR9XG5cblx0aWYgKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QubmFtZSAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiRW50aXR5VHlwZVwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiRW50aXR5U2V0XCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAhPT0gZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldFxuXHQpIHtcblx0XHRwYXRoID0gc2V0VHJhaWxpbmdTbGFzaChwYXRoKTtcblx0XHRwYXRoICs9IGAke2RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lm5hbWV9YDtcblx0fSBlbHNlIGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAmJiBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInRlcm1cIikpIHtcblx0XHRwYXRoID0gc2V0VHJhaWxpbmdTbGFzaChwYXRoKTtcblx0XHRwYXRoICs9IGBAJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50ZXJtfWA7XG5cdFx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lmhhc093blByb3BlcnR5KFwicXVhbGlmaWVyXCIpICYmICEhZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucXVhbGlmaWVyKSB7XG5cdFx0XHRwYXRoICs9IGAjJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5xdWFsaWZpZXJ9YDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0Zm9yQmluZGluZ0V4cHJlc3Npb246IGJvb2xlYW4gPSBmYWxzZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uPy5zdGFydGluZ0VudGl0eVNldCAhPT0gZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdHJldHVybiBnZXRUYXJnZXRPYmplY3RQYXRoKGRhdGFNb2RlbE9iamVjdFBhdGgpO1xuXHR9XG5cdHJldHVybiBfZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLCBmb3JCaW5kaW5nRXhwcmVzc2lvbik7XG59O1xuXG5jb25zdCBfZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0Zm9yQmluZGluZ0V4cHJlc3Npb246IGJvb2xlYW4gPSBmYWxzZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbmF2UHJvcGVydGllcyA9IGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uLCBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzKTtcblx0aWYgKGZvckJpbmRpbmdFeHByZXNzaW9uKSB7XG5cdFx0aWYgKG5hdlByb3BlcnRpZXMuZmluZCgobnApID0+IG5wLl90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmIG5wLmlzQ29sbGVjdGlvbikpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdGxldCBwYXRoID0gbmF2UHJvcGVydGllcy5tYXAoKG5wKSA9PiBucC5uYW1lKS5qb2luKFwiL1wiKTtcblx0aWYgKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICYmXG5cdFx0KGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lm5hbWUgfHxcblx0XHRcdChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiICYmIGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnZhbHVlKSkgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIkVudGl0eVR5cGVcIiAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIkVudGl0eVNldFwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgIT09IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXRcblx0KSB7XG5cdFx0cGF0aCA9IHNldFRyYWlsaW5nU2xhc2gocGF0aCk7XG5cdFx0cGF0aCArPVxuXHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudHlwZSA9PT0gXCJQcm9wZXJ0eVBhdGhcIlxuXHRcdFx0XHQ/IGAke2RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnZhbHVlfWBcblx0XHRcdFx0OiBgJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5uYW1lfWA7XG5cdH0gZWxzZSBpZiAoZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgJiYgZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuaGFzT3duUHJvcGVydHkoXCJ0ZXJtXCIpKSB7XG5cdFx0cGF0aCA9IHNldFRyYWlsaW5nU2xhc2gocGF0aCk7XG5cdFx0cGF0aCArPSBgQCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudGVybX1gO1xuXHRcdGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInF1YWxpZmllclwiKSAmJiAhIWRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnF1YWxpZmllcikge1xuXHRcdFx0cGF0aCArPSBgIyR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucXVhbGlmaWVyfWA7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCFkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoVXBkYXRhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5VcGRhdGVSZXN0cmljdGlvbnM/LlVwZGF0YWJsZTtcblx0XHR9LFxuXHRcdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoU2VhcmNoYWJsZSA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCB8IHVuZGVmaW5lZCxcblx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/OiBFeHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGNoZWNrT25QYXRoKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0KGFubm90YXRpb25PYmplY3Q6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uIHwgRW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzKSA9PiB7XG5cdFx0XHRyZXR1cm4gYW5ub3RhdGlvbk9iamVjdD8uU2VhcmNoUmVzdHJpY3Rpb25zPy5TZWFyY2hhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhEZWxldGFibGUgPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPzogRXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcykgPT4ge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25PYmplY3Q/LkRlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhJbnNlcnRhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5JbnNlcnRSZXN0cmljdGlvbnM/Lkluc2VydGFibGU7XG5cdFx0fSxcblx0XHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0YWxsb3dlZEV4cHJlc3Npb246IChzdHJpbmcgfCB1bmRlZmluZWQpW11cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcyB8IEVudGl0eVR5cGVBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ICYmIFwiRmlsdGVyUmVzdHJpY3Rpb25zXCIgaW4gYW5ub3RhdGlvbk9iamVjdCkge1xuXHRcdFx0XHRjb25zdCBmaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zOiBGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25UeXBlVHlwZXNbXSA9XG5cdFx0XHRcdFx0KGFubm90YXRpb25PYmplY3Q/LkZpbHRlclJlc3RyaWN0aW9ucz8uRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyBhcyBGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25UeXBlVHlwZXNbXSkgfHwgW107XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRPYmplY3RSZXN0cmljdGlvbiA9IGZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMuZmluZCgocmVzdHJpY3Rpb24pID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gKHJlc3RyaWN0aW9uLlByb3BlcnR5IGFzIFByb3BlcnR5UGF0aCkuJHRhcmdldCA9PT0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRpZiAoY3VycmVudE9iamVjdFJlc3RyaWN0aW9uKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGFsbG93ZWRFeHByZXNzaW9uLmluZGV4T2YoY3VycmVudE9iamVjdFJlc3RyaWN0aW9uPy5BbGxvd2VkRXhwcmVzc2lvbnM/LnRvU3RyaW5nKCkpICE9PSAtMTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tPblBhdGggPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGNoZWNrRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRpZiAoIWRhdGFNb2RlbE9iamVjdFBhdGggfHwgIWRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIHtcblx0XHRyZXR1cm4gY29uc3RhbnQodHJ1ZSk7XG5cdH1cblxuXHRkYXRhTW9kZWxPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgoZGF0YU1vZGVsT2JqZWN0UGF0aCwgZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnByb3BlcnR5UGF0aCk7XG5cblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IG51bGwgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0O1xuXHRsZXQgcGFyZW50RW50aXR5U2V0OiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCBudWxsID0gbnVsbDtcblx0bGV0IHZpc2l0ZWROYXZpZ2F0aW9uUHJvcHNOYW1lOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzOiAoTmF2aWdhdGlvblByb3BlcnR5IHwgUHJvcGVydHkpW10gPSBbXTtcblx0bGV0IHRhcmdldEVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgbnVsbCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdGNvbnN0IHRhcmdldEVudGl0eVR5cGU6IEVudGl0eVR5cGUgfCBudWxsID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlO1xuXHRsZXQgcmVzZXRWaXNpdGVkTmF2UHJvcHMgPSBmYWxzZTtcblxuXHRkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goKG5hdmlnYXRpb25Qcm9wZXJ0eSkgPT4ge1xuXHRcdGlmIChyZXNldFZpc2l0ZWROYXZQcm9wcykge1xuXHRcdFx0dmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUgPSBbXTtcblx0XHR9XG5cdFx0dmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUucHVzaChuYXZpZ2F0aW9uUHJvcGVydHkubmFtZSk7XG5cdFx0YWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcy5wdXNoKG5hdmlnYXRpb25Qcm9wZXJ0eSk7XG5cdFx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0eS5fdHlwZSA9PT0gXCJQcm9wZXJ0eVwiIHx8ICFuYXZpZ2F0aW9uUHJvcGVydHkuY29udGFpbnNUYXJnZXQpIHtcblx0XHRcdC8vIFdlIHNob3VsZCBoYXZlIGEgbmF2aWdhdGlvblByb3BlcnR5QmluZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHBhdGggc28gZmFyIHdoaWNoIGNhbiBjb25zaXN0IG9mIChbQ29udGFpbm1lbnROYXZQcm9wXS8pKltOYXZQcm9wXVxuXHRcdFx0Y29uc3QgZnVsbE5hdmlnYXRpb25QYXRoID0gdmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUuam9pbihcIi9cIik7XG5cdFx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkoZnVsbE5hdmlnYXRpb25QYXRoKSkge1xuXHRcdFx0XHRwYXJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW2Z1bGxOYXZpZ2F0aW9uUGF0aF07XG5cdFx0XHRcdHRhcmdldEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdC8vIElmIHdlIHJlYWNoZWQgYSBuYXZpZ2F0aW9uIHByb3BlcnR5IHdpdGggYSBuYXZpZ2F0aW9ucHJvcGVydHliaW5kaW5nLCB3ZSBuZWVkIHRvIHJlc2V0IHRoZSB2aXNpdGVkIHBhdGggb24gdGhlIG5leHQgaXRlcmF0aW9uIChpZiB0aGVyZSBpcyBvbmUpXG5cdFx0XHRcdHJlc2V0VmlzaXRlZE5hdlByb3BzID0gdHJ1ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFdlIHJlYWxseSBzaG91bGQgbm90IGVuZCB1cCBoZXJlIGJ1dCBhdCBsZWFzdCBsZXQncyB0cnkgdG8gYXZvaWQgaW5jb3JyZWN0IGJlaGF2aW9yXG5cdFx0XHRcdHBhcmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBudWxsO1xuXHRcdFx0XHRyZXNldFZpc2l0ZWROYXZQcm9wcyA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBhcmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQgPSBudWxsO1xuXHRcdH1cblx0fSk7XG5cblx0Ly8gQXQgdGhpcyBwb2ludCB3ZSBoYXZlIG5hdmlnYXRlZCBkb3duIGFsbCB0aGUgbmF2IHByb3AgYW5kIHdlIHNob3VsZCBoYXZlXG5cdC8vIFRoZSB0YXJnZXQgZW50aXR5U2V0IHBvaW50aW5nIHRvIGVpdGhlciBudWxsIChpbiBjYXNlIG9mIGNvbnRhaW5tZW50IG5hdnByb3AgYSBsYXN0IHBhcnQpLCBvciB0aGUgYWN0dWFsIHRhcmdldCAobm9uIGNvbnRhaW5tZW50IGFzIHRhcmdldClcblx0Ly8gVGhlIHBhcmVudCBlbnRpdHlTZXQgcG9pbnRpbmcgdG8gdGhlIHByZXZpb3VzIGVudGl0eVNldCB1c2VkIGluIHRoZSBwYXRoXG5cdC8vIFZpc2l0ZWROYXZpZ2F0aW9uUGF0aCBzaG91bGQgY29udGFpbiB0aGUgcGF0aCB1cCB0byB0aGlzIHByb3BlcnR5XG5cblx0Ly8gUmVzdHJpY3Rpb25zIHNob3VsZCB0aGVuIGJlIGV2YWx1YXRlZCBhcyBQYXJlbnRFbnRpdHlTZXQuTmF2UmVzdHJpY3Rpb25zW05hdlByb3BlcnR5UGF0aF0gfHwgVGFyZ2V0RW50aXR5U2V0LlJlc3RyaWN0aW9uc1xuXHRjb25zdCBmdWxsTmF2aWdhdGlvblBhdGggPSB2aXNpdGVkTmF2aWdhdGlvblByb3BzTmFtZS5qb2luKFwiL1wiKTtcblx0bGV0IHJlc3RyaWN0aW9ucywgdmlzaXRlZE5hdlByb3BzO1xuXHRpZiAocGFyZW50RW50aXR5U2V0ICE9PSBudWxsKSB7XG5cdFx0Y29uc3QgX3BhcmVudEVudGl0eVNldDogRW50aXR5U2V0ID0gcGFyZW50RW50aXR5U2V0O1xuXHRcdF9wYXJlbnRFbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uTmF2aWdhdGlvblJlc3RyaWN0aW9ucz8uUmVzdHJpY3RlZFByb3BlcnRpZXMuZm9yRWFjaChcblx0XHRcdChyZXN0cmljdGVkTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlcykgPT4ge1xuXHRcdFx0XHRpZiAocmVzdHJpY3RlZE5hdlByb3AuTmF2aWdhdGlvblByb3BlcnR5Py50eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIikge1xuXHRcdFx0XHRcdGNvbnN0IHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24ocmVzdHJpY3RlZE5hdlByb3ApO1xuXHRcdFx0XHRcdGlmIChmdWxsTmF2aWdhdGlvblBhdGggPT09IHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eS52YWx1ZSAmJiByZXN0cmljdGlvbkRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgX2FsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMgPSBhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzLnNsaWNlKDAsIC0xKTtcblx0XHRcdFx0XHRcdHZpc2l0ZWROYXZQcm9wcyA9IF9hbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzO1xuXHRcdFx0XHRcdFx0Y29uc3QgcGF0aFJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoPy5jb250ZXh0TG9jYXRpb24sIHZpc2l0ZWROYXZQcm9wcykubWFwKFxuXHRcdFx0XHRcdFx0XHQobnApID0+IG5wLm5hbWVcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRjb25zdCBwYXRoVmlzaXRvckZ1bmN0aW9uID0gZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnBhdGhWaXNpdG9yXG5cdFx0XHRcdFx0XHRcdD8gZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24oZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgucGF0aFZpc2l0b3IsIHBhdGhSZWxhdGl2ZUxvY2F0aW9uKVxuXHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZDsgLy8gc2VuZCBwYXRoVmlzaXRvciBmdW5jdGlvbiBvbmx5IHdoZW4gaXQgaXMgZGVmaW5lZCBhbmQgb25seSBzZW5kIGZ1bmN0aW9uIG9yIGRlZmluZWQgYXMgYSBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdHJlc3RyaWN0aW9ucyA9IGVxdWFsKFxuXHRcdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ocmVzdHJpY3Rpb25EZWZpbml0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbiwgdW5kZWZpbmVkLCBwYXRoVmlzaXRvckZ1bmN0aW9uKSxcblx0XHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cdGxldCB0YXJnZXRSZXN0cmljdGlvbnM7XG5cdGlmICghZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/Lmlnbm9yZVRhcmdldENvbGxlY3Rpb24pIHtcblx0XHRsZXQgcmVzdHJpY3Rpb25EZWZpbml0aW9uID0gY2hlY2tGdW5jdGlvbih0YXJnZXRFbnRpdHlTZXQ/LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXMpO1xuXHRcdGlmICh0YXJnZXRFbnRpdHlTZXQgPT09IG51bGwgJiYgcmVzdHJpY3Rpb25EZWZpbml0aW9uID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24odGFyZ2V0RW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcyk7XG5cdFx0fVxuXHRcdGlmIChyZXN0cmljdGlvbkRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgcGF0aFJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiwgYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcykubWFwKFxuXHRcdFx0XHQobnApID0+IG5wLm5hbWVcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBwYXRoVmlzaXRvckZ1bmN0aW9uID0gZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnBhdGhWaXNpdG9yXG5cdFx0XHRcdD8gZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24oZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgucGF0aFZpc2l0b3IsIHBhdGhSZWxhdGl2ZUxvY2F0aW9uKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdHRhcmdldFJlc3RyaWN0aW9ucyA9IGVxdWFsKFxuXHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ocmVzdHJpY3Rpb25EZWZpbml0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbiwgdW5kZWZpbmVkLCBwYXRoVmlzaXRvckZ1bmN0aW9uKSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gKFxuXHRcdHJlc3RyaWN0aW9ucyB8fCB0YXJnZXRSZXN0cmljdGlvbnMgfHwgKGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPy5hdXRob3JpemVVbnJlc29sdmFibGUgPyB1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiA6IGNvbnN0YW50KHRydWUpKVxuXHQpO1xufTtcblxuLyoqXG4gKiBTZXQgYSB0cmFpbGluZyBzbGFzaCB0byBhIHBhdGggaWYgbm90IGFscmVhZHkgc2V0LlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoXG4gKiBAcmV0dXJucyBUaGUgcGF0aCB3aXRoIGEgdHJhaWxpbmcgc2xhc2hcbiAqL1xuY29uc3Qgc2V0VHJhaWxpbmdTbGFzaCA9IGZ1bmN0aW9uIChwYXRoOiBzdHJpbmcpIHtcblx0aWYgKHBhdGgubGVuZ3RoICYmICFwYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdHJldHVybiBgJHtwYXRofS9gO1xuXHR9XG5cdHJldHVybiBwYXRoO1xufTtcblxuLy8gVGhpcyBoZWxwZXIgbWV0aG9kIGlzIHVzZWQgdG8gYWRkIHJlbGF0aXZlIHBhdGggbG9jYXRpb24gYXJndW1lbnQgdG8gc2luZ2xldG9uUGF0aFZpc2l0b3JGdW5jdGlvbiBpLmUuIHBhdGhWaXNpdG9yXG4vLyBwYXRoVmlzaXRvciBtZXRob2QgaXMgdXNlZCBsYXRlciB0byBnZXQgdGhlIGNvcnJlY3QgYmluZGluZ3MgZm9yIHNpbmdsZXRvbiBlbnRpdHlcbi8vIG1ldGhvZCBpcyBpbnZva2VkIGxhdGVyIGluIHBhdGhJbk1vZGVsKCkgbWV0aG9kIHRvIGdldCB0aGUgY29ycmVjdCBiaW5kaW5nLlxuY29uc3QgZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24gPSBmdW5jdGlvbiAocGF0aFZpc2l0b3I6IEZ1bmN0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbjogc3RyaW5nW10pIHtcblx0cmV0dXJuIGZ1bmN0aW9uIChwYXRoOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gcGF0aFZpc2l0b3IocGF0aCwgcGF0aFJlbGF0aXZlTG9jYXRpb24pO1xuXHR9O1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUF3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sSUFBTUEsZ0JBQWdCLEdBQUcsVUFBVUMsV0FBZ0MsRUFBRTtJQUMzRSxPQUFPQyx1QkFBdUIsQ0FBQ0QsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVFLGVBQWUsRUFBRUYsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVHLG9CQUFvQixDQUFDLENBQUNDLEdBQUcsQ0FBQyxVQUFDQyxFQUFFO01BQUEsT0FBS0EsRUFBRSxDQUFDQyxJQUFJO0lBQUEsRUFBQztFQUNySCxDQUFDO0VBQUM7RUFFSyxJQUFNTCx1QkFBdUIsR0FBRyxVQUN0Q0QsV0FBaUMsRUFFRztJQUFBLElBRHBDTyxlQUFrRCx1RUFBRyxFQUFFO0lBRXZELElBQUksQ0FBQ1AsV0FBVyxFQUFFO01BQ2pCLE9BQU9PLGVBQWU7SUFDdkIsQ0FBQyxNQUFNLElBQUlBLGVBQWUsQ0FBQ0MsTUFBTSxJQUFJUixXQUFXLENBQUNHLG9CQUFvQixDQUFDSyxNQUFNLEVBQUU7TUFDN0UsSUFBSUMsaUJBQW9ELEdBQUcsRUFBRTtNQUM3RFQsV0FBVyxDQUFDRyxvQkFBb0IsQ0FBQ08sT0FBTyxDQUFDLFVBQUNDLE9BQU8sRUFBRUMsUUFBUSxFQUFLO1FBQy9ELElBQUlMLGVBQWUsQ0FBQ0ssUUFBUSxDQUFDLEtBQUtELE9BQU8sRUFBRTtVQUMxQ0YsaUJBQWlCLENBQUNJLElBQUksQ0FBQ04sZUFBZSxDQUFDSyxRQUFRLENBQUMsQ0FBQztRQUNsRDtNQUNELENBQUMsQ0FBQztNQUNGSCxpQkFBaUIsR0FBR0Es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
|
|
5
|
+
sap.ui.define(["sap/fe/core/helpers/BindingToolkit","sap/fe/core/templating/PropertyHelper"],function(t,e){"use strict";var n={};var i=e.isPathExpression;var r=e.isAnnotationPathExpression;var a=t.unresolvableExpression;var o=t.getExpressionFromAnnotation;var l=t.equal;var s=t.constant;const c=function(t){return g(t===null||t===void 0?void 0:t.contextLocation,t===null||t===void 0?void 0:t.navigationProperties).map(t=>t.name)};n.getRelativePaths=c;const g=function(t){let e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];if(!t){return e}else if(e.length>=t.navigationProperties.length){let n=[];t.navigationProperties.forEach((t,i)=>{if(e[i]!==t){n.push(e[i])}});n=n.concat(e.slice(t.navigationProperties.length));let i=0;while(n.length>1&&i!=n.length-1){const t=n[i];const e=n[i+1];if(t._type==="NavigationProperty"&&t.partner===e.name){n.splice(0,2)}else{i++}}return n}else{let n=[];e.forEach((i,r)=>{if(t.navigationProperties[r]!==i){n.push(e[r])}});n=n.concat(t.navigationProperties.slice(e.length));let i=0;while(n.length>1&&i!=n.length-1){const t=n[i];const e=n[i+1];if(t._type==="NavigationProperty"&&t.partner===e.name){n.splice(0,2)}else{i++}}n=n.map(t=>t._type==="NavigationProperty"?t.targetType.navigationProperties.find(e=>e.name===t.partner):t);return n}};n.getPathRelativeLocation=g;const u=function(t,e){let n="";if((i(e)||r(e))&&e.path){n=e.path}else if(typeof e==="string"){n=e}let a;if(i(e)||r(e)){a=e.$target}else if(t.targetEntityType){a=t.targetEntityType.resolvePath(n)}else{a=t.targetObject}const o=n.split("/");let l=t.targetEntitySet;let s=t.targetEntityType;const c=t.navigationProperties.concat();let g=t.targetEntityType;o.forEach(t=>{if(!g){return}const e=g.navigationProperties.find(e=>e.name===t);if(e){c.push(e);s=e.targetType;if(l&&l.navigationPropertyBinding.hasOwnProperty(t)){l=l.navigationPropertyBinding[t]}g=s}else{const e=g.entityProperties.find(e=>e.name===t);if(e!==null&&e!==void 0&&e.targetType){c.push(e);g=s}else{g=undefined}}});return{startingEntitySet:t.startingEntitySet,navigationProperties:c,contextLocation:t.contextLocation,targetEntitySet:l,targetEntityType:s,targetObject:a,convertedTypes:t.convertedTypes}};n.enhanceDataModelPath=u;const p=function(t){let e=`/${t.startingEntitySet.name}`;let n=t.startingEntitySet;let i=[];t.navigationProperties.forEach(t=>{i.push(t.name);if(n&&n.navigationPropertyBinding.hasOwnProperty(i.join("/"))){e+=`/$NavigationPropertyBinding/${i.join("/")}/$`;n=n.navigationPropertyBinding[i.join("/")];i=[]}});return e};n.getTargetEntitySetPath=p;const v=function(t){var e;let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let i="";if(!t.startingEntitySet){return"/"}if(!n){i+=`/${t.startingEntitySet.name}`}if(t.navigationProperties.length>0){i=E(i);i+=t.navigationProperties.map(t=>t.name).join("/")}if((e=t.targetObject)!==null&&e!==void 0&&e.name&&t.targetObject._type!=="NavigationProperty"&&t.targetObject._type!=="EntityType"&&t.targetObject._type!=="EntitySet"&&t.targetObject!==t.startingEntitySet){i=E(i);i+=`${t.targetObject.name}`}else if(t.targetObject&&t.targetObject.hasOwnProperty("term")){i=E(i);i+=`@${t.targetObject.term}`;if(t.targetObject.hasOwnProperty("qualifier")&&!!t.targetObject.qualifier){i+=`#${t.targetObject.qualifier}`}}return i};n.getTargetObjectPath=v;const d=function(t){var e;let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(((e=t.contextLocation)===null||e===void 0?void 0:e.startingEntitySet)!==t.startingEntitySet){return v(t)}return f(t,n,i)};n.getContextRelativeTargetObjectPath=d;const f=function(t){let e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const i=g(t.contextLocation,t.navigationProperties);if(e){if(i.find(t=>t._type==="NavigationProperty"&&t.isCollection)){return undefined}}let r=n?i.map(t=>{const e=t._type==="NavigationProperty"&&t.isCollection;return e?`${t.name}*`:t.name}).join("/"):i.map(t=>t.name).join("/");if(t.targetObject&&(t.targetObject.name||t.targetObject.type==="PropertyPath"&&t.targetObject.value)&&t.targetObject._type!=="NavigationProperty"&&t.targetObject._type!=="EntityType"&&t.targetObject._type!=="EntitySet"&&t.targetObject!==t.startingEntitySet){r=E(r);r+=t.targetObject.type==="PropertyPath"?`${t.targetObject.value}`:`${t.targetObject.name}`}else if(t.targetObject&&t.targetObject.hasOwnProperty("term")){r=E(r);r+=`@${t.targetObject.term}`;if(t.targetObject.hasOwnProperty("qualifier")&&!!t.targetObject.qualifier){r+=`#${t.targetObject.qualifier}`}}else if(!t.targetObject){return undefined}return r};const y=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.UpdateRestrictions)===null||e===void 0?void 0:e.Updatable},e)};n.isPathUpdatable=y;const h=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.SearchRestrictions)===null||e===void 0?void 0:e.Searchable},e)};n.isPathSearchable=h;const P=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.DeleteRestrictions)===null||e===void 0?void 0:e.Deletable},e)};n.isPathDeletable=P;const b=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.InsertRestrictions)===null||e===void 0?void 0:e.Insertable},e)};n.isPathInsertable=b;const O=function(t,e){return j(t,n=>{if(n&&"FilterRestrictions"in n){var i;const a=(n===null||n===void 0?void 0:(i=n.FilterRestrictions)===null||i===void 0?void 0:i.FilterExpressionRestrictions)||[];const o=a.find(e=>e.Property.$target===t.targetObject);if(o){var r;return e.indexOf(o===null||o===void 0?void 0:(r=o.AllowedExpressions)===null||r===void 0?void 0:r.toString())!==-1}else{return false}}else{return false}})};n.checkFilterExpressionRestrictions=O;const j=function(t,e,n){if(!t||!t.startingEntitySet){return s(true)}t=u(t,n===null||n===void 0?void 0:n.propertyPath);let i=t.startingEntitySet;let r=null;let c=[];const p=[];let v=i;const d=t.targetEntityType;let f=false;t.navigationProperties.forEach(t=>{if(f){c=[]}c.push(t.name);p.push(t);if(t._type==="Property"||!t.containsTarget){const t=c.join("/");if(i&&i.navigationPropertyBinding.hasOwnProperty(t)){r=i;i=i.navigationPropertyBinding[t];v=i;f=true}else{r=i;i=null;f=true}}else{r=i;v=null}});const y=c.join("/");let h,P;if(r!==null){var b,O,j;const i=r;(b=i.annotations)===null||b===void 0?void 0:(O=b.Capabilities)===null||O===void 0?void 0:(j=O.NavigationRestrictions)===null||j===void 0?void 0:j.RestrictedProperties.forEach(i=>{var r;if(((r=i.NavigationProperty)===null||r===void 0?void 0:r.type)==="NavigationPropertyPath"){const r=e(i);if(y===i.NavigationProperty.value&&r!==undefined){var a;const e=p.slice(0,-1);P=e;const i=g((a=t)===null||a===void 0?void 0:a.contextLocation,P).map(t=>t.name);const s=n!==null&&n!==void 0&&n.pathVisitor?m(n.pathVisitor,i):undefined;h=l(o(r,i,undefined,s),true)}}})}let E;if(!(n!==null&&n!==void 0&&n.ignoreTargetCollection)){var S,T;let i=e((S=v)===null||S===void 0?void 0:(T=S.annotations)===null||T===void 0?void 0:T.Capabilities);if(v===null&&i===undefined){var x;i=e(d===null||d===void 0?void 0:(x=d.annotations)===null||x===void 0?void 0:x.Capabilities)}if(i!==undefined){const e=g(t.contextLocation,p).map(t=>t.name);const r=n!==null&&n!==void 0&&n.pathVisitor?m(n.pathVisitor,e):undefined;E=l(o(i,e,undefined,r),true)}}return h||E||(n!==null&&n!==void 0&&n.authorizeUnresolvable?a:s(true))};n.checkOnPath=j;const E=function(t){if(t.length&&!t.endsWith("/")){return`${t}/`}return t};const m=function(t,e){return function(n){return t(n,e)}};return n},false);
|
|
6
|
+
//# sourceMappingURL=DataModelPathHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataModelPathHelper.js","names":["sap","ui","define","BindingToolkit","PropertyHelper","_exports","isPathExpression","isAnnotationPathExpression","unresolvableExpression","getExpressionFromAnnotation","equal","constant","getRelativePaths","contextPath","getPathRelativeLocation","contextLocation","navigationProperties","map","np","name","visitedNavProps","arguments","length","undefined","remainingNavProps","forEach","navProp","navIndex","push","concat","slice","currentIdx","currentNav","nextNavProp","_type","partner","splice","extraNavProp","targetType","find","enhanceDataModelPath","dataModelObjectPath","propertyPath","sPropertyPath","path","oTarget","$target","targetEntityType","resolvePath","targetObject","aPathSplit","split","currentEntitySet","targetEntitySet","currentEntityType","reducedEntityType","pathPart","potentialNavProp","navigationPropertyBinding","hasOwnProperty","potentialComplexType","entityProperties","startingEntitySet","convertedTypes","getTargetEntitySetPath","targetEntitySetPath","navigatedPaths","join","getTargetObjectPath","_dataModelObjectPath$","bRelative","setTrailingSlash","term","qualifier","getContextRelativeTargetObjectPath","_dataModelObjectPath$2","forBindingExpression","forFilterConditionPath","_getContextRelativeTargetObjectPath","navProperties","isCollection","type","value","isPathUpdatable","extractionParametersOnPath","checkOnPath","annotationObject","_annotationObject$Upd","UpdateRestrictions","Updatable","isPathSearchable","_annotationObject$Sea","SearchRestrictions","Searchable","isPathDeletable","_annotationObject$Del","DeleteRestrictions","Deletable","isPathInsertable","_annotationObject$Ins","InsertRestrictions","Insertable","checkFilterExpressionRestrictions","allowedExpression","_annotationObject$Fil","filterExpressionRestrictions","FilterRestrictions","FilterExpressionRestrictions","currentObjectRestriction","restriction","Property","_currentObjectRestric","indexOf","AllowedExpressions","toString","checkFunction","parentEntitySet","visitedNavigationPropsName","allVisitedNavigationProps","resetVisitedNavProps","navigationProperty","containsTarget","fullNavigationPath","restrictions","_parentEntitySet$anno","_parentEntitySet$anno2","_parentEntitySet$anno3","_parentEntitySet","annotations","Capabilities","NavigationRestrictions","RestrictedProperties","restrictedNavProp","_restrictedNavProp$Na","NavigationProperty","restrictionDefinition","_dataModelObjectPath","_allVisitedNavigationProps","pathRelativeLocation","pathVisitorFunction","pathVisitor","getPathVisitorForSingleton","targetRestrictions","ignoreTargetCollection","_targetEntitySet","_targetEntitySet$anno","_targetEntityType$ann","authorizeUnresolvable","endsWith"],"sources":["DataModelPathHelper-dbg.js"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ import type {
|
|
|
17
17
|
EntityTypeAnnotations_Capabilities
|
|
18
18
|
} from "@sap-ux/vocabularies-types/vocabularies/Capabilities_Edm";
|
|
19
19
|
import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
20
|
-
import { constant, equal, getExpressionFromAnnotation,
|
|
20
|
+
import { constant, equal, getExpressionFromAnnotation, unresolvableExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
21
21
|
import type { PropertyOrPath } from "sap/fe/core/templating/DisplayModeFormatter";
|
|
22
22
|
import { isAnnotationPathExpression, isPathExpression } from "sap/fe/core/templating/PropertyHelper";
|
|
23
23
|
|
|
@@ -190,8 +190,7 @@ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjec
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
if (
|
|
193
|
-
dataModelObjectPath.targetObject &&
|
|
194
|
-
dataModelObjectPath.targetObject.name &&
|
|
193
|
+
dataModelObjectPath.targetObject?.name &&
|
|
195
194
|
dataModelObjectPath.targetObject._type !== "NavigationProperty" &&
|
|
196
195
|
dataModelObjectPath.targetObject._type !== "EntityType" &&
|
|
197
196
|
dataModelObjectPath.targetObject._type !== "EntitySet" &&
|
|
@@ -211,17 +210,19 @@ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjec
|
|
|
211
210
|
|
|
212
211
|
export const getContextRelativeTargetObjectPath = function (
|
|
213
212
|
dataModelObjectPath: DataModelObjectPath,
|
|
214
|
-
forBindingExpression: boolean = false
|
|
213
|
+
forBindingExpression: boolean = false,
|
|
214
|
+
forFilterConditionPath: boolean = false
|
|
215
215
|
): string | undefined {
|
|
216
216
|
if (dataModelObjectPath.contextLocation?.startingEntitySet !== dataModelObjectPath.startingEntitySet) {
|
|
217
217
|
return getTargetObjectPath(dataModelObjectPath);
|
|
218
218
|
}
|
|
219
|
-
return _getContextRelativeTargetObjectPath(dataModelObjectPath, forBindingExpression);
|
|
219
|
+
return _getContextRelativeTargetObjectPath(dataModelObjectPath, forBindingExpression, forFilterConditionPath);
|
|
220
220
|
};
|
|
221
221
|
|
|
222
222
|
const _getContextRelativeTargetObjectPath = function (
|
|
223
223
|
dataModelObjectPath: DataModelObjectPath,
|
|
224
|
-
forBindingExpression: boolean = false
|
|
224
|
+
forBindingExpression: boolean = false,
|
|
225
|
+
forFilterConditionPath: boolean = false
|
|
225
226
|
): string | undefined {
|
|
226
227
|
const navProperties = getPathRelativeLocation(dataModelObjectPath.contextLocation, dataModelObjectPath.navigationProperties);
|
|
227
228
|
if (forBindingExpression) {
|
|
@@ -229,7 +230,15 @@ const _getContextRelativeTargetObjectPath = function (
|
|
|
229
230
|
return undefined;
|
|
230
231
|
}
|
|
231
232
|
}
|
|
232
|
-
let path =
|
|
233
|
+
let path = forFilterConditionPath
|
|
234
|
+
? navProperties
|
|
235
|
+
.map((navProp) => {
|
|
236
|
+
const isCollection = navProp._type === "NavigationProperty" && navProp.isCollection;
|
|
237
|
+
return isCollection ? `${navProp.name}*` : navProp.name;
|
|
238
|
+
})
|
|
239
|
+
.join("/")
|
|
240
|
+
: navProperties.map((navProp) => navProp.name).join("/");
|
|
241
|
+
|
|
233
242
|
if (
|
|
234
243
|
dataModelObjectPath.targetObject &&
|
|
235
244
|
(dataModelObjectPath.targetObject.name ||
|
|
@@ -432,7 +441,7 @@ export const checkOnPath = function (
|
|
|
432
441
|
}
|
|
433
442
|
|
|
434
443
|
return (
|
|
435
|
-
restrictions || targetRestrictions || (extractionParametersOnPath?.authorizeUnresolvable ?
|
|
444
|
+
restrictions || targetRestrictions || (extractionParametersOnPath?.authorizeUnresolvable ? unresolvableExpression : constant(true))
|
|
436
445
|
);
|
|
437
446
|
};
|
|
438
447
|
|