@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,506 +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/converters/MetaModelConverter"], function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _exports = {};
|
|
9
|
-
var TypeOfEntity;
|
|
10
|
-
(function (TypeOfEntity) {
|
|
11
|
-
TypeOfEntity["TypeSingleton"] = "Singleton";
|
|
12
|
-
TypeOfEntity["TypeEntity"] = "EntitySet";
|
|
13
|
-
})(TypeOfEntity || (TypeOfEntity = {}));
|
|
14
|
-
_exports.TypeOfEntity = TypeOfEntity;
|
|
15
|
-
var ModelHelper = {
|
|
16
|
-
/**
|
|
17
|
-
* Method to determine if the programming model is sticky.
|
|
18
|
-
*
|
|
19
|
-
* @function
|
|
20
|
-
* @name isStickySessionSupported
|
|
21
|
-
* @param oMetaModel ODataModelMetaModel to check for sticky enabled entity
|
|
22
|
-
* @returns Returns true if sticky, else false
|
|
23
|
-
*/
|
|
24
|
-
isStickySessionSupported: function (oMetaModel) {
|
|
25
|
-
var oEntityContainer = oMetaModel.getObject("/");
|
|
26
|
-
for (var sEntitySet in oEntityContainer) {
|
|
27
|
-
if (oEntityContainer[sEntitySet].$kind === "EntitySet" && oMetaModel.getObject("/".concat(sEntitySet, "@com.sap.vocabularies.Session.v1.StickySessionSupported"))) {
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
32
|
-
},
|
|
33
|
-
/**
|
|
34
|
-
* Method to determine if the programming model is draft.
|
|
35
|
-
*
|
|
36
|
-
* @function
|
|
37
|
-
* @name isDraftSupported
|
|
38
|
-
* @param oMetaModel ODataModelMetaModel of the context for which draft support shall be checked
|
|
39
|
-
* @param sPath Path for which draft support shall be checked
|
|
40
|
-
* @returns Returns true if draft, else false
|
|
41
|
-
*/
|
|
42
|
-
isDraftSupported: function (oMetaModel, sPath) {
|
|
43
|
-
var oMetaContext = oMetaModel.getMetaContext(sPath);
|
|
44
|
-
var sTargetEntitySet = this.getTargetEntitySet(oMetaContext),
|
|
45
|
-
oParentEntitySetContext,
|
|
46
|
-
aParts;
|
|
47
|
-
if (oMetaContext.getProperty && oMetaContext.getProperty() && oMetaContext.getProperty().$ContainsTarget === true) {
|
|
48
|
-
aParts = oMetaModel.getMetaPath(sPath).split("/").filter(Boolean);
|
|
49
|
-
if (aParts.length) {
|
|
50
|
-
for (var i = aParts.length - 1; i >= 0; i--) {
|
|
51
|
-
oParentEntitySetContext = oMetaModel.getMetaContext(oMetaModel.getMetaPath("/".concat(aParts[i])));
|
|
52
|
-
if (oParentEntitySetContext.getObject("$kind") === "EntitySet") {
|
|
53
|
-
sTargetEntitySet = this.getTargetEntitySet(oParentEntitySetContext);
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
} else {
|
|
59
|
-
sTargetEntitySet = this.getTargetEntitySet(oMetaContext);
|
|
60
|
-
}
|
|
61
|
-
var oEntityContext = oMetaModel.getMetaContext(sTargetEntitySet);
|
|
62
|
-
if (oEntityContext.getObject("@com.sap.vocabularies.Common.v1.DraftRoot") || oEntityContext.getObject("@com.sap.vocabularies.Common.v1.DraftNode")) {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
return false;
|
|
66
|
-
},
|
|
67
|
-
/**
|
|
68
|
-
* Checks if draft is supported for the data model object path.
|
|
69
|
-
*
|
|
70
|
-
* @param dataModelObjectPath
|
|
71
|
-
* @returns `true` if it is supported
|
|
72
|
-
*/
|
|
73
|
-
isObjectPathDraftSupported: function (dataModelObjectPath) {
|
|
74
|
-
var _dataModelObjectPath$, _dataModelObjectPath$2, _dataModelObjectPath$3, _dataModelObjectPath$4, _dataModelObjectPath$5, _dataModelObjectPath$6, _dataModelObjectPath$7;
|
|
75
|
-
var currentEntitySet = dataModelObjectPath.targetEntitySet;
|
|
76
|
-
var bIsDraftRoot = ModelHelper.isDraftRoot(currentEntitySet);
|
|
77
|
-
var bIsDraftNode = ModelHelper.isDraftNode(currentEntitySet);
|
|
78
|
-
var bIsDraftParentEntityForContainment = (_dataModelObjectPath$ = dataModelObjectPath.targetObject) !== null && _dataModelObjectPath$ !== void 0 && _dataModelObjectPath$.containsTarget && ((_dataModelObjectPath$2 = dataModelObjectPath.startingEntitySet) !== null && _dataModelObjectPath$2 !== void 0 && (_dataModelObjectPath$3 = _dataModelObjectPath$2.annotations) !== null && _dataModelObjectPath$3 !== void 0 && (_dataModelObjectPath$4 = _dataModelObjectPath$3.Common) !== null && _dataModelObjectPath$4 !== void 0 && _dataModelObjectPath$4.DraftRoot || (_dataModelObjectPath$5 = dataModelObjectPath.startingEntitySet) !== null && _dataModelObjectPath$5 !== void 0 && (_dataModelObjectPath$6 = _dataModelObjectPath$5.annotations) !== null && _dataModelObjectPath$6 !== void 0 && (_dataModelObjectPath$7 = _dataModelObjectPath$6.Common) !== null && _dataModelObjectPath$7 !== void 0 && _dataModelObjectPath$7.DraftNode) ? true : false;
|
|
79
|
-
return bIsDraftRoot || bIsDraftNode || !currentEntitySet && bIsDraftParentEntityForContainment;
|
|
80
|
-
},
|
|
81
|
-
/**
|
|
82
|
-
* Method to determine if the service, supports collaboration draft.
|
|
83
|
-
*
|
|
84
|
-
* @function
|
|
85
|
-
* @name isCollaborationDraftSupported
|
|
86
|
-
* @param metaObject MetaObject to be used for determination
|
|
87
|
-
* @param templateInterface API provided by UI5 templating if used
|
|
88
|
-
* @returns Returns true if the service supports collaboration draft, else false
|
|
89
|
-
*/
|
|
90
|
-
isCollaborationDraftSupported: function (metaObject, templateInterface) {
|
|
91
|
-
var _templateInterface$co;
|
|
92
|
-
var oMetaModel = (templateInterface === null || templateInterface === void 0 ? void 0 : (_templateInterface$co = templateInterface.context) === null || _templateInterface$co === void 0 ? void 0 : _templateInterface$co.getModel()) || metaObject;
|
|
93
|
-
var oEntityContainer = oMetaModel.getObject("/");
|
|
94
|
-
for (var sEntitySet in oEntityContainer) {
|
|
95
|
-
if (oEntityContainer[sEntitySet].$kind === "EntitySet" && oMetaModel.getObject("/".concat(sEntitySet, "@com.sap.vocabularies.Common.v1.DraftRoot/ShareAction"))) {
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return false;
|
|
100
|
-
},
|
|
101
|
-
/**
|
|
102
|
-
* Method to get the path of the DraftRoot path according to the provided context.
|
|
103
|
-
*
|
|
104
|
-
* @function
|
|
105
|
-
* @name getDraftRootPath
|
|
106
|
-
* @param oContext OdataModel context
|
|
107
|
-
* @returns Returns the path of the draftRoot entity, or undefined if no draftRoot is found
|
|
108
|
-
*/
|
|
109
|
-
getDraftRootPath: function (oContext) {
|
|
110
|
-
var oMetaModel = oContext.getModel().getMetaModel();
|
|
111
|
-
var getRootPath = function (sPath, model) {
|
|
112
|
-
var _RegExp$exec;
|
|
113
|
-
var firstIteration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
114
|
-
var sIterationPath = firstIteration ? sPath : (_RegExp$exec = new RegExp(/.*(?=\/)/).exec(sPath)) === null || _RegExp$exec === void 0 ? void 0 : _RegExp$exec[0]; // *Regex to get the ancestor
|
|
115
|
-
if (sIterationPath && sIterationPath !== "/") {
|
|
116
|
-
var _mDataModel$targetEnt, _mDataModel$targetEnt2;
|
|
117
|
-
var sEntityPath = oMetaModel.getMetaPath(sIterationPath);
|
|
118
|
-
var mDataModel = MetaModelConverter.getInvolvedDataModelObjects(oMetaModel.getContext(sEntityPath));
|
|
119
|
-
if ((_mDataModel$targetEnt = mDataModel.targetEntitySet) !== null && _mDataModel$targetEnt !== void 0 && (_mDataModel$targetEnt2 = _mDataModel$targetEnt.annotations.Common) !== null && _mDataModel$targetEnt2 !== void 0 && _mDataModel$targetEnt2.DraftRoot) {
|
|
120
|
-
return sIterationPath;
|
|
121
|
-
}
|
|
122
|
-
return getRootPath(sIterationPath, model, false);
|
|
123
|
-
}
|
|
124
|
-
return undefined;
|
|
125
|
-
};
|
|
126
|
-
return getRootPath(oContext.getPath(), oContext.getModel());
|
|
127
|
-
},
|
|
128
|
-
/**
|
|
129
|
-
* Method to get the path of the StickyRoot path according to the provided context.
|
|
130
|
-
*
|
|
131
|
-
* @function
|
|
132
|
-
* @name getStickyRootPath
|
|
133
|
-
* @param oContext OdataModel context
|
|
134
|
-
* @returns Returns the path of the StickyRoot entity, or undefined if no StickyRoot is found
|
|
135
|
-
*/
|
|
136
|
-
getStickyRootPath: function (oContext) {
|
|
137
|
-
var oMetaModel = oContext.getModel().getMetaModel();
|
|
138
|
-
var getRootPath = function (sPath, model) {
|
|
139
|
-
var _RegExp$exec2;
|
|
140
|
-
var firstIteration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
141
|
-
var sIterationPath = firstIteration ? sPath : (_RegExp$exec2 = new RegExp(/.*(?=\/)/).exec(sPath)) === null || _RegExp$exec2 === void 0 ? void 0 : _RegExp$exec2[0]; // *Regex to get the ancestor
|
|
142
|
-
if (sIterationPath && sIterationPath !== "/") {
|
|
143
|
-
var _mDataModel$targetEnt3, _mDataModel$targetEnt4, _mDataModel$targetEnt5;
|
|
144
|
-
var sEntityPath = oMetaModel.getMetaPath(sIterationPath);
|
|
145
|
-
var mDataModel = MetaModelConverter.getInvolvedDataModelObjects(oMetaModel.getContext(sEntityPath));
|
|
146
|
-
if ((_mDataModel$targetEnt3 = mDataModel.targetEntitySet) !== null && _mDataModel$targetEnt3 !== void 0 && (_mDataModel$targetEnt4 = _mDataModel$targetEnt3.annotations) !== null && _mDataModel$targetEnt4 !== void 0 && (_mDataModel$targetEnt5 = _mDataModel$targetEnt4.Session) !== null && _mDataModel$targetEnt5 !== void 0 && _mDataModel$targetEnt5.StickySessionSupported) {
|
|
147
|
-
return sIterationPath;
|
|
148
|
-
}
|
|
149
|
-
return getRootPath(sIterationPath, model, false);
|
|
150
|
-
}
|
|
151
|
-
return undefined;
|
|
152
|
-
};
|
|
153
|
-
return getRootPath(oContext.getPath(), oContext.getModel());
|
|
154
|
-
},
|
|
155
|
-
/**
|
|
156
|
-
* Returns the path to the target entity set via navigation property binding.
|
|
157
|
-
*
|
|
158
|
-
* @function
|
|
159
|
-
* @name getTargetEntitySet
|
|
160
|
-
* @param oContext Context for which the target entity set will be determined
|
|
161
|
-
* @returns Returns the path to the target entity set
|
|
162
|
-
*/
|
|
163
|
-
getTargetEntitySet: function (oContext) {
|
|
164
|
-
var sPath = oContext.getPath();
|
|
165
|
-
if (oContext.getObject("$kind") === "EntitySet" || oContext.getObject("$kind") === "Action" || oContext.getObject("0/$kind") === "Action") {
|
|
166
|
-
return sPath;
|
|
167
|
-
}
|
|
168
|
-
var sEntitySetPath = ModelHelper.getEntitySetPath(sPath);
|
|
169
|
-
return "/".concat(oContext.getObject(sEntitySetPath));
|
|
170
|
-
},
|
|
171
|
-
/**
|
|
172
|
-
* Returns complete path to the entity set via using navigation property binding. Note: To be used only after the metamodel has loaded.
|
|
173
|
-
*
|
|
174
|
-
* @function
|
|
175
|
-
* @name getEntitySetPath
|
|
176
|
-
* @param path Path for which complete entitySet path needs to be determined from entityType path
|
|
177
|
-
* @param odataMetaModel Metamodel to be used.(Optional in normal scenarios, but needed for parameterized service scenarios)
|
|
178
|
-
* @returns Returns complete path to the entity set
|
|
179
|
-
*/
|
|
180
|
-
getEntitySetPath: function (path, odataMetaModel) {
|
|
181
|
-
var entitySetPath = "";
|
|
182
|
-
if (!odataMetaModel) {
|
|
183
|
-
// Previous implementation for getting entitySetPath from entityTypePath
|
|
184
|
-
entitySetPath = "/".concat(path.split("/").filter(ModelHelper.filterOutNavPropBinding).join("/$NavigationPropertyBinding/"));
|
|
185
|
-
} else {
|
|
186
|
-
// Calculating the entitySetPath from MetaModel.
|
|
187
|
-
var pathParts = path.split("/").filter(ModelHelper.filterOutNavPropBinding);
|
|
188
|
-
if (pathParts.length > 1) {
|
|
189
|
-
var initialPathObject = {
|
|
190
|
-
growingPath: "/",
|
|
191
|
-
pendingNavPropBinding: ""
|
|
192
|
-
};
|
|
193
|
-
var pathObject = pathParts.reduce(function (pathUnderConstruction, pathPart, idx) {
|
|
194
|
-
var delimiter = !!idx && "/$NavigationPropertyBinding/" || "";
|
|
195
|
-
var growingPath = pathUnderConstruction.growingPath,
|
|
196
|
-
pendingNavPropBinding = pathUnderConstruction.pendingNavPropBinding;
|
|
197
|
-
var tempPath = growingPath + delimiter;
|
|
198
|
-
var navPropBindings = odataMetaModel.getObject(tempPath);
|
|
199
|
-
var navPropBindingToCheck = pendingNavPropBinding ? "".concat(pendingNavPropBinding, "/").concat(pathPart) : pathPart;
|
|
200
|
-
if (navPropBindings && Object.keys(navPropBindings).length > 0 && navPropBindings.hasOwnProperty(navPropBindingToCheck)) {
|
|
201
|
-
growingPath = tempPath + navPropBindingToCheck.replace("/", "%2F");
|
|
202
|
-
pendingNavPropBinding = "";
|
|
203
|
-
} else {
|
|
204
|
-
pendingNavPropBinding += pendingNavPropBinding ? "/".concat(pathPart) : pathPart;
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
growingPath: growingPath,
|
|
208
|
-
pendingNavPropBinding: pendingNavPropBinding
|
|
209
|
-
};
|
|
210
|
-
}, initialPathObject);
|
|
211
|
-
entitySetPath = pathObject.growingPath;
|
|
212
|
-
} else {
|
|
213
|
-
entitySetPath = "/".concat(pathParts[0]);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
return entitySetPath;
|
|
217
|
-
},
|
|
218
|
-
/**
|
|
219
|
-
* Gets the path for the items property of MultiValueField parameters.
|
|
220
|
-
*
|
|
221
|
-
* @function
|
|
222
|
-
* @name getActionParameterItemsModelPath
|
|
223
|
-
* @param oParameter Action Parameter
|
|
224
|
-
* @returns Returns the complete model path for the items property of MultiValueField parameters
|
|
225
|
-
*/
|
|
226
|
-
getActionParameterItemsModelPath: function (oParameter) {
|
|
227
|
-
return oParameter && oParameter.$Name ? "{path: 'mvfview>/".concat(oParameter.$Name, "'}") : undefined;
|
|
228
|
-
},
|
|
229
|
-
filterOutNavPropBinding: function (sPathPart) {
|
|
230
|
-
return sPathPart !== "" && sPathPart !== "$NavigationPropertyBinding";
|
|
231
|
-
},
|
|
232
|
-
/**
|
|
233
|
-
* Adds a setProperty to the created binding contexts of the internal JSON model.
|
|
234
|
-
*
|
|
235
|
-
* @function
|
|
236
|
-
* @name enhanceInternalJSONModel
|
|
237
|
-
* @param {sap.ui.model.json.JSONModel} Internal JSON Model which is enhanced
|
|
238
|
-
*/
|
|
239
|
-
|
|
240
|
-
enhanceInternalJSONModel: function (oInternalModel) {
|
|
241
|
-
var fnBindContext = oInternalModel.bindContext;
|
|
242
|
-
oInternalModel.bindContext = function (sPath, oContext, mParameters) {
|
|
243
|
-
for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
|
|
244
|
-
args[_key - 3] = arguments[_key];
|
|
245
|
-
}
|
|
246
|
-
oContext = fnBindContext.apply(this, [sPath, oContext, mParameters].concat(args));
|
|
247
|
-
var fnGetBoundContext = oContext.getBoundContext;
|
|
248
|
-
oContext.getBoundContext = function () {
|
|
249
|
-
for (var _len2 = arguments.length, subArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
250
|
-
subArgs[_key2] = arguments[_key2];
|
|
251
|
-
}
|
|
252
|
-
var oBoundContext = fnGetBoundContext.apply.apply(fnGetBoundContext, [this].concat(subArgs));
|
|
253
|
-
if (oBoundContext && !oBoundContext.setProperty) {
|
|
254
|
-
oBoundContext.setProperty = function (sSetPropPath, value) {
|
|
255
|
-
if (this.getObject() === undefined) {
|
|
256
|
-
// initialize
|
|
257
|
-
this.getModel().setProperty(this.getPath(), {});
|
|
258
|
-
}
|
|
259
|
-
this.getModel().setProperty(sSetPropPath, value, this);
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
return oBoundContext;
|
|
263
|
-
};
|
|
264
|
-
return oContext;
|
|
265
|
-
};
|
|
266
|
-
},
|
|
267
|
-
/**
|
|
268
|
-
* Adds an handler on propertyChange.
|
|
269
|
-
* The property "/editMode" is changed according to property '/isEditable' when this last one is set
|
|
270
|
-
* in order to be compliant with former versions where building blocks use the property "/editMode"
|
|
271
|
-
*
|
|
272
|
-
* @function
|
|
273
|
-
* @name enhanceUiJSONModel
|
|
274
|
-
* @param {sap.ui.model.json.JSONModel} uiModel JSON Model which is enhanced
|
|
275
|
-
* @param {object} library Core library of SAP Fiori elements
|
|
276
|
-
*/
|
|
277
|
-
|
|
278
|
-
enhanceUiJSONModel: function (uiModel, library) {
|
|
279
|
-
var fnSetProperty = uiModel.setProperty;
|
|
280
|
-
uiModel.setProperty = function () {
|
|
281
|
-
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
282
|
-
args[_key3] = arguments[_key3];
|
|
283
|
-
}
|
|
284
|
-
var value = args[1];
|
|
285
|
-
if (args[0] === "/isEditable") {
|
|
286
|
-
uiModel.setProperty("/editMode", value ? library.EditMode.Editable : library.EditMode.Display, args[2], args[3]);
|
|
287
|
-
}
|
|
288
|
-
return fnSetProperty.apply(this, [].concat(args));
|
|
289
|
-
};
|
|
290
|
-
},
|
|
291
|
-
/**
|
|
292
|
-
* Returns whether filtering on the table is case sensitive.
|
|
293
|
-
*
|
|
294
|
-
* @param oMetaModel The instance of the meta model
|
|
295
|
-
* @returns Returns 'false' if FilterFunctions annotation supports 'tolower', else 'true'
|
|
296
|
-
*/
|
|
297
|
-
isFilteringCaseSensitive: function (oMetaModel) {
|
|
298
|
-
if (!oMetaModel) {
|
|
299
|
-
return undefined;
|
|
300
|
-
}
|
|
301
|
-
var aFilterFunctions = oMetaModel.getObject("/@Org.OData.Capabilities.V1.FilterFunctions");
|
|
302
|
-
// Get filter functions defined at EntityContainer and check for existence of 'tolower'
|
|
303
|
-
return aFilterFunctions ? aFilterFunctions.indexOf("tolower") === -1 : true;
|
|
304
|
-
},
|
|
305
|
-
/**
|
|
306
|
-
* Get MetaPath for the context.
|
|
307
|
-
*
|
|
308
|
-
* @param oContext Context to be used
|
|
309
|
-
* @returns Returns the metapath for the context.
|
|
310
|
-
*/
|
|
311
|
-
getMetaPathForContext: function (oContext) {
|
|
312
|
-
var oModel = oContext.getModel(),
|
|
313
|
-
oMetaModel = oModel.getMetaModel(),
|
|
314
|
-
sPath = oContext.getPath();
|
|
315
|
-
return oMetaModel && sPath && oMetaModel.getMetaPath(sPath);
|
|
316
|
-
},
|
|
317
|
-
/**
|
|
318
|
-
* Get MetaPath for the context.
|
|
319
|
-
*
|
|
320
|
-
* @param contextPath MetaPath to be used
|
|
321
|
-
* @returns Returns the root entity set path.
|
|
322
|
-
*/
|
|
323
|
-
getRootEntitySetPath: function (contextPath) {
|
|
324
|
-
var rootEntitySetPath = "";
|
|
325
|
-
var aPaths = contextPath ? contextPath.split("/") : [];
|
|
326
|
-
if (aPaths.length > 1) {
|
|
327
|
-
rootEntitySetPath = aPaths[1];
|
|
328
|
-
}
|
|
329
|
-
return rootEntitySetPath;
|
|
330
|
-
},
|
|
331
|
-
/**
|
|
332
|
-
* Get MetaPath for the listBinding.
|
|
333
|
-
*
|
|
334
|
-
* @param oView View of the control using listBinding
|
|
335
|
-
* @param vListBinding ODataListBinding object or the binding path for a temporary list binding
|
|
336
|
-
* @returns Returns the metapath for the listbinding.
|
|
337
|
-
*/
|
|
338
|
-
getAbsoluteMetaPathForListBinding: function (oView, vListBinding) {
|
|
339
|
-
var oMetaModel = oView.getModel().getMetaModel();
|
|
340
|
-
var sMetaPath;
|
|
341
|
-
if (typeof vListBinding === "string") {
|
|
342
|
-
if (vListBinding.startsWith("/")) {
|
|
343
|
-
// absolute path
|
|
344
|
-
sMetaPath = oMetaModel.getMetaPath(vListBinding);
|
|
345
|
-
} else {
|
|
346
|
-
// relative path
|
|
347
|
-
var oBindingContext = oView.getBindingContext();
|
|
348
|
-
var sRootContextPath = oBindingContext.getPath();
|
|
349
|
-
sMetaPath = oMetaModel.getMetaPath("".concat(sRootContextPath, "/").concat(vListBinding));
|
|
350
|
-
}
|
|
351
|
-
} else {
|
|
352
|
-
// we already get a list binding use this one
|
|
353
|
-
var oBinding = vListBinding;
|
|
354
|
-
var oRootBinding = oBinding.getRootBinding();
|
|
355
|
-
if (oBinding === oRootBinding) {
|
|
356
|
-
// absolute path
|
|
357
|
-
sMetaPath = oMetaModel.getMetaPath(oBinding.getPath());
|
|
358
|
-
} else {
|
|
359
|
-
// relative path
|
|
360
|
-
var sRootBindingPath = oRootBinding.getPath();
|
|
361
|
-
var sRelativePath = oBinding.getPath();
|
|
362
|
-
sMetaPath = oMetaModel.getMetaPath("".concat(sRootBindingPath, "/").concat(sRelativePath));
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
return sMetaPath;
|
|
366
|
-
},
|
|
367
|
-
/**
|
|
368
|
-
* Method to determine if the draft root is supported or not.
|
|
369
|
-
*
|
|
370
|
-
* @function
|
|
371
|
-
* @name isSingleton
|
|
372
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
373
|
-
* @returns True if entity type is singleton
|
|
374
|
-
*/
|
|
375
|
-
isSingleton: function (entitySet) {
|
|
376
|
-
if ((entitySet === null || entitySet === void 0 ? void 0 : entitySet._type) === TypeOfEntity.TypeSingleton) {
|
|
377
|
-
return true;
|
|
378
|
-
}
|
|
379
|
-
return false;
|
|
380
|
-
},
|
|
381
|
-
/**
|
|
382
|
-
* Method to determine if the draft root is supported or not.
|
|
383
|
-
*
|
|
384
|
-
* @function
|
|
385
|
-
* @name isDraftRoot
|
|
386
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
387
|
-
* @returns True if draft root is present
|
|
388
|
-
*/
|
|
389
|
-
isDraftRoot: function (entitySet) {
|
|
390
|
-
var _annotations$Common;
|
|
391
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
392
|
-
return false;
|
|
393
|
-
}
|
|
394
|
-
return entitySet && (_annotations$Common = entitySet.annotations.Common) !== null && _annotations$Common !== void 0 && _annotations$Common.DraftRoot ? true : false;
|
|
395
|
-
},
|
|
396
|
-
/**
|
|
397
|
-
* Method to determine if the draft root is supported or not.
|
|
398
|
-
*
|
|
399
|
-
* @function
|
|
400
|
-
* @name isDraftNode
|
|
401
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
402
|
-
* @returns True if draft root is present
|
|
403
|
-
*/
|
|
404
|
-
isDraftNode: function (entitySet) {
|
|
405
|
-
var _annotations$Common2;
|
|
406
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
407
|
-
return false;
|
|
408
|
-
}
|
|
409
|
-
return entitySet && (_annotations$Common2 = entitySet.annotations.Common) !== null && _annotations$Common2 !== void 0 && _annotations$Common2.DraftNode ? true : false;
|
|
410
|
-
},
|
|
411
|
-
/**
|
|
412
|
-
* Method to determine if the draft root is supported or not.
|
|
413
|
-
*
|
|
414
|
-
* @function
|
|
415
|
-
* @name isSticky
|
|
416
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
417
|
-
* @returns True if sticky is supported else false
|
|
418
|
-
*/
|
|
419
|
-
isSticky: function (entitySet) {
|
|
420
|
-
var _annotations$Session;
|
|
421
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
422
|
-
return false;
|
|
423
|
-
}
|
|
424
|
-
return entitySet && (_annotations$Session = entitySet.annotations.Session) !== null && _annotations$Session !== void 0 && _annotations$Session.StickySessionSupported ? true : false;
|
|
425
|
-
},
|
|
426
|
-
/**
|
|
427
|
-
* Method to determine if entity is updatable or not.
|
|
428
|
-
*
|
|
429
|
-
* @function
|
|
430
|
-
* @name isUpdateHidden
|
|
431
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
432
|
-
* @param entityType EntityType
|
|
433
|
-
* @returns True if updatable else false
|
|
434
|
-
*/
|
|
435
|
-
isUpdateHidden: function (entitySet, entityType) {
|
|
436
|
-
var _annotations$UI, _annotations$UI$Updat, _annotations$UI2, _entityType$annotatio;
|
|
437
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
438
|
-
return false;
|
|
439
|
-
}
|
|
440
|
-
return (entitySet === null || entitySet === void 0 ? void 0 : (_annotations$UI = entitySet.annotations.UI) === null || _annotations$UI === void 0 ? void 0 : (_annotations$UI$Updat = _annotations$UI.UpdateHidden) === null || _annotations$UI$Updat === void 0 ? void 0 : _annotations$UI$Updat.valueOf()) !== undefined ? entitySet === null || entitySet === void 0 ? void 0 : (_annotations$UI2 = entitySet.annotations.UI) === null || _annotations$UI2 === void 0 ? void 0 : _annotations$UI2.UpdateHidden : entityType === null || entityType === void 0 ? void 0 : (_entityType$annotatio = entityType.annotations.UI) === null || _entityType$annotatio === void 0 ? void 0 : _entityType$annotatio.UpdateHidden;
|
|
441
|
-
},
|
|
442
|
-
/**
|
|
443
|
-
* Method to get draft root.
|
|
444
|
-
*
|
|
445
|
-
* @function
|
|
446
|
-
* @name getDraftRoot
|
|
447
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
448
|
-
* @returns DraftRoot
|
|
449
|
-
*/
|
|
450
|
-
getDraftRoot: function (entitySet) {
|
|
451
|
-
var _annotations$Common3;
|
|
452
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
453
|
-
return undefined;
|
|
454
|
-
}
|
|
455
|
-
return entitySet && ((_annotations$Common3 = entitySet.annotations.Common) === null || _annotations$Common3 === void 0 ? void 0 : _annotations$Common3.DraftRoot);
|
|
456
|
-
},
|
|
457
|
-
/**
|
|
458
|
-
* Method to get draft root.
|
|
459
|
-
*
|
|
460
|
-
* @function
|
|
461
|
-
* @name getDraftNode
|
|
462
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
463
|
-
* @returns DraftRoot
|
|
464
|
-
*/
|
|
465
|
-
getDraftNode: function (entitySet) {
|
|
466
|
-
var _annotations$Common4;
|
|
467
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
468
|
-
return undefined;
|
|
469
|
-
}
|
|
470
|
-
return entitySet && ((_annotations$Common4 = entitySet.annotations.Common) === null || _annotations$Common4 === void 0 ? void 0 : _annotations$Common4.DraftNode);
|
|
471
|
-
},
|
|
472
|
-
/**
|
|
473
|
-
* Helper method to get sticky session.
|
|
474
|
-
*
|
|
475
|
-
* @function
|
|
476
|
-
* @name getStickySession
|
|
477
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
478
|
-
* @returns Session StickySessionSupported
|
|
479
|
-
*/
|
|
480
|
-
getStickySession: function (entitySet) {
|
|
481
|
-
var _annotations, _annotations$Session2;
|
|
482
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
483
|
-
return undefined;
|
|
484
|
-
}
|
|
485
|
-
return entitySet && ((_annotations = entitySet.annotations) === null || _annotations === void 0 ? void 0 : (_annotations$Session2 = _annotations.Session) === null || _annotations$Session2 === void 0 ? void 0 : _annotations$Session2.StickySessionSupported);
|
|
486
|
-
},
|
|
487
|
-
/**
|
|
488
|
-
* Method to get the visibility state of delete button.
|
|
489
|
-
*
|
|
490
|
-
* @function
|
|
491
|
-
* @name getDeleteHidden
|
|
492
|
-
* @param entitySet EntitySet | Singleton | undefined
|
|
493
|
-
* @param entityType EntityType
|
|
494
|
-
* @returns True if delete button is hidden
|
|
495
|
-
*/
|
|
496
|
-
getDeleteHidden: function (entitySet, entityType) {
|
|
497
|
-
var _annotations$UI3, _annotations$UI3$Dele, _annotations$UI4, _entityType$annotatio2;
|
|
498
|
-
if (ModelHelper.isSingleton(entitySet)) {
|
|
499
|
-
return false;
|
|
500
|
-
}
|
|
501
|
-
return (entitySet === null || entitySet === void 0 ? void 0 : (_annotations$UI3 = entitySet.annotations.UI) === null || _annotations$UI3 === void 0 ? void 0 : (_annotations$UI3$Dele = _annotations$UI3.DeleteHidden) === null || _annotations$UI3$Dele === void 0 ? void 0 : _annotations$UI3$Dele.valueOf()) !== undefined ? entitySet === null || entitySet === void 0 ? void 0 : (_annotations$UI4 = entitySet.annotations.UI) === null || _annotations$UI4 === void 0 ? void 0 : _annotations$UI4.DeleteHidden : entityType === null || entityType === void 0 ? void 0 : (_entityType$annotatio2 = entityType.annotations.UI) === null || _entityType$annotatio2 === void 0 ? void 0 : _entityType$annotatio2.DeleteHidden;
|
|
502
|
-
}
|
|
503
|
-
};
|
|
504
|
-
return ModelHelper;
|
|
505
|
-
}, false);
|
|
506
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUeXBlT2ZFbnRpdHkiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIm9NZXRhTW9kZWwiLCJvRW50aXR5Q29udGFpbmVyIiwiZ2V0T2JqZWN0Iiwic0VudGl0eVNldCIsIiRraW5kIiwiaXNEcmFmdFN1cHBvcnRlZCIsInNQYXRoIiwib01ldGFDb250ZXh0IiwiZ2V0TWV0YUNvbnRleHQiLCJzVGFyZ2V0RW50aXR5U2V0IiwiZ2V0VGFyZ2V0RW50aXR5U2V0Iiwib1BhcmVudEVudGl0eVNldENvbnRleHQiLCJhUGFydHMiLCJnZXRQcm9wZXJ0eSIsIiRDb250YWluc1RhcmdldCIsImdldE1ldGFQYXRoIiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwiaSIsIm9FbnRpdHlDb250ZXh0IiwiaXNPYmplY3RQYXRoRHJhZnRTdXBwb3J0ZWQiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiY3VycmVudEVudGl0eVNldCIsInRhcmdldEVudGl0eVNldCIsImJJc0RyYWZ0Um9vdCIsImlzRHJhZnRSb290IiwiYklzRHJhZnROb2RlIiwiaXNEcmFmdE5vZGUiLCJiSXNEcmFmdFBhcmVudEVudGl0eUZvckNvbnRhaW5tZW50IiwidGFyZ2V0T2JqZWN0IiwiY29udGFpbnNUYXJnZXQiLCJzdGFydGluZ0VudGl0eVNldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRHJhZnROb2RlIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJtZXRhT2JqZWN0IiwidGVtcGxhdGVJbnRlcmZhY2UiLCJjb250ZXh0IiwiZ2V0TW9kZWwiLCJnZXREcmFmdFJvb3RQYXRoIiwib0NvbnRleHQiLCJnZXRNZXRhTW9kZWwiLCJnZXRSb290UGF0aCIsIm1vZGVsIiwiZmlyc3RJdGVyYXRpb24iLCJzSXRlcmF0aW9uUGF0aCIsIlJlZ0V4cCIsImV4ZWMiLCJzRW50aXR5UGF0aCIsIm1EYXRhTW9kZWwiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRDb250ZXh0IiwidW5kZWZpbmVkIiwiZ2V0UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwiU2Vzc2lvbiIsIlN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJzRW50aXR5U2V0UGF0aCIsImdldEVudGl0eVNldFBhdGgiLCJwYXRoIiwib2RhdGFNZXRhTW9kZWwiLCJlbnRpdHlTZXRQYXRoIiwiZmlsdGVyT3V0TmF2UHJvcEJpbmRpbmciLCJqb2luIiwicGF0aFBhcnRzIiwiaW5pdGlhbFBhdGhPYmplY3QiLCJncm93aW5nUGF0aCIsInBlbmRpbmdOYXZQcm9wQmluZGluZyIsInBhdGhPYmplY3QiLCJyZWR1Y2UiLCJwYXRoVW5kZXJDb25zdHJ1Y3Rpb24iLCJwYXRoUGFydCIsImlkeCIsImRlbGltaXRlciIsInRlbXBQYXRoIiwibmF2UHJvcEJpbmRpbmdzIiwibmF2UHJvcEJpbmRpbmdUb0NoZWNrIiwiT2JqZWN0Iiwia2V5cyIsImhhc093blByb3BlcnR5IiwicmVwbGFjZSIsImdldEFjdGlvblBhcmFtZXRlckl0ZW1zTW9kZWxQYXRoIiwib1BhcmFtZXRlciIsIiROYW1lIiwic1BhdGhQYXJ0IiwiZW5oYW5jZUludGVybmFsSlNPTk1vZGVsIiwib0ludGVybmFsTW9kZWwiLCJmbkJpbmRDb250ZXh0IiwiYmluZENvbnRleHQiLCJtUGFyYW1ldGVycyIsImFyZ3MiLCJhcHBseSIsImZuR2V0Qm91bmRDb250ZXh0IiwiZ2V0Qm91bmRDb250ZXh0Iiwic3ViQXJncyIsIm9Cb3VuZENvbnRleHQiLCJzZXRQcm9wZXJ0eSIsInNTZXRQcm9wUGF0aCIsInZhbHVlIiwiZW5oYW5jZVVpSlNPTk1vZGVsIiwidWlNb2RlbCIsImxpYnJhcnkiLCJmblNldFByb3BlcnR5IiwiRWRpdE1vZGUiLCJFZGl0YWJsZSIsIkRpc3BsYXkiLCJpc0ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUiLCJhRmlsdGVyRnVuY3Rpb25zIiwiaW5kZXhPZiIsImdldE1ldGFQYXRoRm9yQ29udGV4dCIsIm9Nb2RlbCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiY29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImFQYXRocyIsImdldEFic29sdXRlTWV0YVBhdGhGb3JMaXN0QmluZGluZyIsIm9WaWV3Iiwidkxpc3RCaW5kaW5nIiwic01ldGFQYXRoIiwic3RhcnRzV2l0aCIsIm9CaW5kaW5nQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwic1Jvb3RDb250ZXh0UGF0aCIsIm9CaW5kaW5nIiwib1Jvb3RCaW5kaW5nIiwiZ2V0Um9vdEJpbmRpbmciLCJzUm9vdEJpbmRpbmdQYXRoIiwic1JlbGF0aXZlUGF0aCIsImlzU2luZ2xldG9uIiwiZW50aXR5U2V0IiwiX3R5cGUiLCJUeXBlU2luZ2xldG9uIiwiaXNTdGlja3kiLCJpc1VwZGF0ZUhpZGRlbiIsImVudGl0eVR5cGUiLCJVSSIsIlVwZGF0ZUhpZGRlbiIsInZhbHVlT2YiLCJnZXREcmFmdFJvb3QiLCJnZXREcmFmdE5vZGUiLCJnZXRTdGlja3lTZXNzaW9uIiwiZ2V0RGVsZXRlSGlkZGVuIiwiRGVsZXRlSGlkZGVuIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNb2RlbEhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUaGlzIGNsYXNzIGNvbnRhaW5zIGhlbHBlcnMgdG8gYmUgdXNlZCBhdCBydW50aW1lIHRvIHJldHJpZXZlIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gdGhlIG1vZGVsICovXG5pbXBvcnQgdHlwZSB7IEVudGl0eVNldCwgRW50aXR5VHlwZSwgUHJvcGVydHlBbm5vdGF0aW9uVmFsdWUsIFNpbmdsZXRvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEcmFmdE5vZGUsIERyYWZ0Um9vdCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgdHlwZSB7IFN0aWNreVNlc3Npb25TdXBwb3J0ZWQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1Nlc3Npb25cIjtcbmltcG9ydCB0eXBlIHsgRGVsZXRlSGlkZGVuIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIEJhc2VDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPRGF0YU1vZGVsRXgsIFY0Q29udGV4dCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCIuLi90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcblxuZXhwb3J0IGNvbnN0IGVudW0gVHlwZU9mRW50aXR5IHtcblx0VHlwZVNpbmdsZXRvbiA9IFwiU2luZ2xldG9uXCIsXG5cdFR5cGVFbnRpdHkgPSBcIkVudGl0eVNldFwiXG59XG5jb25zdCBNb2RlbEhlbHBlciA9IHtcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBkZXRlcm1pbmUgaWYgdGhlIHByb2dyYW1taW5nIG1vZGVsIGlzIHN0aWNreS5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZFxuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBPRGF0YU1vZGVsTWV0YU1vZGVsIHRvIGNoZWNrIGZvciBzdGlja3kgZW5hYmxlZCBlbnRpdHlcblx0ICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHN0aWNreSwgZWxzZSBmYWxzZVxuXHQgKi9cblx0aXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkOiBmdW5jdGlvbiAob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwpIHtcblx0XHRjb25zdCBvRW50aXR5Q29udGFpbmVyID0gb01ldGFNb2RlbC5nZXRPYmplY3QoXCIvXCIpO1xuXHRcdGZvciAoY29uc3Qgc0VudGl0eVNldCBpbiBvRW50aXR5Q29udGFpbmVyKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG9FbnRpdHlDb250YWluZXJbc0VudGl0eVNldF0uJGtpbmQgPT09IFwiRW50aXR5U2V0XCIgJiZcblx0XHRcdFx0b01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke3NFbnRpdHlTZXR9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLlNlc3Npb24udjEuU3RpY2t5U2Vzc2lvblN1cHBvcnRlZGApXG5cdFx0XHQpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fSxcblxuXHQvKipcblx0ICogTWV0aG9kIHRvIGRldGVybWluZSBpZiB0aGUgcHJvZ3JhbW1pbmcgbW9kZWwgaXMgZHJhZnQuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBpc0RyYWZ0U3VwcG9ydGVkXG5cdCAqIEBwYXJhbSBvTWV0YU1vZGVsIE9EYXRhTW9kZWxNZXRhTW9kZWwgb2YgdGhlIGNvbnRleHQgZm9yIHdoaWNoIGRyYWZ0IHN1cHBvcnQgc2hhbGwgYmUgY2hlY2tlZFxuXHQgKiBAcGFyYW0gc1BhdGggUGF0aCBmb3Igd2hpY2ggZHJhZnQgc3VwcG9ydCBzaGFsbCBiZSBjaGVja2VkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSBpZiBkcmFmdCwgZWxzZSBmYWxzZVxuXHQgKi9cblx0aXNEcmFmdFN1cHBvcnRlZDogZnVuY3Rpb24gKG9NZXRhTW9kZWw6IGFueSwgc1BhdGg6IHN0cmluZykge1xuXHRcdGNvbnN0IG9NZXRhQ29udGV4dCA9IG9NZXRhTW9kZWwuZ2V0TWV0YUNvbnRleHQoc1BhdGgpO1xuXHRcdGxldCBzVGFyZ2V0RW50aXR5U2V0ID0gdGhpcy5nZXRUYXJnZXRFbnRpdHlTZXQob01ldGFDb250ZXh0KSxcblx0XHRcdG9QYXJlbnRFbnRpdHlTZXRDb250ZXh0LFxuXHRcdFx0YVBhcnRzO1xuXG5cdFx0aWYgKG9NZXRhQ29udGV4dC5nZXRQcm9wZXJ0eSAmJiBvTWV0YUNvbnRleHQuZ2V0UHJvcGVydHkoKSAmJiBvTWV0YUNvbnRleHQuZ2V0UHJvcGVydHkoKS4kQ29udGFpbnNUYXJnZXQgPT09IHRydWUpIHtcblx0XHRcdGFQYXJ0cyA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoc1BhdGgpLnNwbGl0KFwiL1wiKS5maWx0ZXIoQm9vbGVhbik7XG5cdFx0XHRpZiAoYVBhcnRzLmxlbmd0aCkge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gYVBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRcdFx0b1BhcmVudEVudGl0eVNldENvbnRleHQgPSBvTWV0YU1vZGVsLmdldE1ldGFDb250ZXh0KG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoYC8ke2FQYXJ0c1tpXX1gKSk7XG5cdFx0XHRcdFx0aWYgKG9QYXJlbnRFbnRpdHlTZXRDb250ZXh0LmdldE9iamVjdChcIiRraW5kXCIpID09PSBcIkVudGl0eVNldFwiKSB7XG5cdFx0XHRcdFx0XHRzVGFyZ2V0RW50aXR5U2V0ID0gdGhpcy5nZXRUYXJnZXRFbnRpdHlTZXQob1BhcmVudEVudGl0eVNldENvbnRleHQpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNUYXJnZXRFbnRpdHlTZXQgPSB0aGlzLmdldFRhcmdldEVudGl0eVNldChvTWV0YUNvbnRleHQpO1xuXHRcdH1cblx0XHRjb25zdCBvRW50aXR5Q29udGV4dCA9IG9NZXRhTW9kZWwuZ2V0TWV0YUNvbnRleHQoc1RhcmdldEVudGl0eVNldCk7XG5cdFx0aWYgKFxuXHRcdFx0b0VudGl0eUNvbnRleHQuZ2V0T2JqZWN0KFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIikgfHxcblx0XHRcdG9FbnRpdHlDb250ZXh0LmdldE9iamVjdChcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnROb2RlXCIpXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgZHJhZnQgaXMgc3VwcG9ydGVkIGZvciB0aGUgZGF0YSBtb2RlbCBvYmplY3QgcGF0aC5cblx0ICpcblx0ICogQHBhcmFtIGRhdGFNb2RlbE9iamVjdFBhdGhcblx0ICogQHJldHVybnMgYHRydWVgIGlmIGl0IGlzIHN1cHBvcnRlZFxuXHQgKi9cblx0aXNPYmplY3RQYXRoRHJhZnRTdXBwb3J0ZWQ6IGZ1bmN0aW9uIChkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgY3VycmVudEVudGl0eVNldCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5U2V0IGFzIEVudGl0eVNldDtcblx0XHRjb25zdCBiSXNEcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChjdXJyZW50RW50aXR5U2V0KTtcblx0XHRjb25zdCBiSXNEcmFmdE5vZGUgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Tm9kZShjdXJyZW50RW50aXR5U2V0KTtcblx0XHRjb25zdCBiSXNEcmFmdFBhcmVudEVudGl0eUZvckNvbnRhaW5tZW50ID1cblx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Py5jb250YWluc1RhcmdldCAmJlxuXHRcdFx0KChkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0IGFzIEVudGl0eVNldCk/LmFubm90YXRpb25zPy5Db21tb24/LkRyYWZ0Um9vdCB8fFxuXHRcdFx0XHQoZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5EcmFmdE5vZGUpXG5cdFx0XHRcdD8gdHJ1ZVxuXHRcdFx0XHQ6IGZhbHNlO1xuXG5cdFx0cmV0dXJuIGJJc0RyYWZ0Um9vdCB8fCBiSXNEcmFmdE5vZGUgfHwgKCFjdXJyZW50RW50aXR5U2V0ICYmIGJJc0RyYWZ0UGFyZW50RW50aXR5Rm9yQ29udGFpbm1lbnQpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gZGV0ZXJtaW5lIGlmIHRoZSBzZXJ2aWNlLCBzdXBwb3J0cyBjb2xsYWJvcmF0aW9uIGRyYWZ0LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWRcblx0ICogQHBhcmFtIG1ldGFPYmplY3QgTWV0YU9iamVjdCB0byBiZSB1c2VkIGZvciBkZXRlcm1pbmF0aW9uXG5cdCAqIEBwYXJhbSB0ZW1wbGF0ZUludGVyZmFjZSBBUEkgcHJvdmlkZWQgYnkgVUk1IHRlbXBsYXRpbmcgaWYgdXNlZFxuXHQgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIHNlcnZpY2Ugc3VwcG9ydHMgY29sbGFib3JhdGlvbiBkcmFmdCwgZWxzZSBmYWxzZVxuXHQgKi9cblx0aXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQ6IGZ1bmN0aW9uIChtZXRhT2JqZWN0OiBhbnksIHRlbXBsYXRlSW50ZXJmYWNlPzogYW55KSB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9ICh0ZW1wbGF0ZUludGVyZmFjZT8uY29udGV4dD8uZ2V0TW9kZWwoKSB8fCBtZXRhT2JqZWN0KSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0XHRjb25zdCBvRW50aXR5Q29udGFpbmVyID0gb01ldGFNb2RlbC5nZXRPYmplY3QoXCIvXCIpO1xuXHRcdGZvciAoY29uc3Qgc0VudGl0eVNldCBpbiBvRW50aXR5Q29udGFpbmVyKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG9FbnRpdHlDb250YWluZXJbc0VudGl0eVNldF0uJGtpbmQgPT09IFwiRW50aXR5U2V0XCIgJiZcblx0XHRcdFx0b01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke3NFbnRpdHlTZXR9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3QvU2hhcmVBY3Rpb25gKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0sXG5cblx0LyoqXG5cdCAqIE1ldGhvZCB0byBnZXQgdGhlIHBhdGggb2YgdGhlIERyYWZ0Um9vdCBwYXRoIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWQgY29udGV4dC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldERyYWZ0Um9vdFBhdGhcblx0ICogQHBhcmFtIG9Db250ZXh0IE9kYXRhTW9kZWwgY29udGV4dFxuXHQgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBwYXRoIG9mIHRoZSBkcmFmdFJvb3QgZW50aXR5LCBvciB1bmRlZmluZWQgaWYgbm8gZHJhZnRSb290IGlzIGZvdW5kXG5cdCAqL1xuXHRnZXREcmFmdFJvb3RQYXRoOiBmdW5jdGlvbiAob0NvbnRleHQ6IFY0Q29udGV4dCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Db250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3QgZ2V0Um9vdFBhdGggPSBmdW5jdGlvbiAoc1BhdGg6IHN0cmluZywgbW9kZWw6IE9EYXRhTW9kZWxFeCwgZmlyc3RJdGVyYXRpb24gPSB0cnVlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRcdGNvbnN0IHNJdGVyYXRpb25QYXRoID0gZmlyc3RJdGVyYXRpb24gPyBzUGF0aCA6IG5ldyBSZWdFeHAoLy4qKD89XFwvKS8pLmV4ZWMoc1BhdGgpPy5bMF07IC8vICpSZWdleCB0byBnZXQgdGhlIGFuY2VzdG9yXG5cdFx0XHRpZiAoc0l0ZXJhdGlvblBhdGggJiYgc0l0ZXJhdGlvblBhdGggIT09IFwiL1wiKSB7XG5cdFx0XHRcdGNvbnN0IHNFbnRpdHlQYXRoID0gb01ldGFNb2RlbC5nZXRNZXRhUGF0aChzSXRlcmF0aW9uUGF0aCk7XG5cdFx0XHRcdGNvbnN0IG1EYXRhTW9kZWwgPSBNZXRhTW9kZWxDb252ZXJ0ZXIuZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG9NZXRhTW9kZWwuZ2V0Q29udGV4dChzRW50aXR5UGF0aCkpO1xuXHRcdFx0XHRpZiAoKG1EYXRhTW9kZWwudGFyZ2V0RW50aXR5U2V0IGFzIEVudGl0eVNldCk/LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHNJdGVyYXRpb25QYXRoO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBnZXRSb290UGF0aChzSXRlcmF0aW9uUGF0aCwgbW9kZWwsIGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fTtcblx0XHRyZXR1cm4gZ2V0Um9vdFBhdGgob0NvbnRleHQuZ2V0UGF0aCgpLCBvQ29udGV4dC5nZXRNb2RlbCgpKTtcblx0fSxcblxuXHQvKipcblx0ICogTWV0aG9kIHRvIGdldCB0aGUgcGF0aCBvZiB0aGUgU3RpY2t5Um9vdCBwYXRoIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWQgY29udGV4dC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldFN0aWNreVJvb3RQYXRoXG5cdCAqIEBwYXJhbSBvQ29udGV4dCBPZGF0YU1vZGVsIGNvbnRleHRcblx0ICogQHJldHVybnMgUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgU3RpY2t5Um9vdCBlbnRpdHksIG9yIHVuZGVmaW5lZCBpZiBubyBTdGlja3lSb290IGlzIGZvdW5kXG5cdCAqL1xuXHRnZXRTdGlja3lSb290UGF0aDogZnVuY3Rpb24gKG9Db250ZXh0OiBWNENvbnRleHQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdGNvbnN0IGdldFJvb3RQYXRoID0gZnVuY3Rpb24gKHNQYXRoOiBzdHJpbmcsIG1vZGVsOiBPRGF0YU1vZGVsRXgsIGZpcnN0SXRlcmF0aW9uID0gdHJ1ZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0XHRjb25zdCBzSXRlcmF0aW9uUGF0aCA9IGZpcnN0SXRlcmF0aW9uID8gc1BhdGggOiBuZXcgUmVnRXhwKC8uKig/PVxcLykvKS5leGVjKHNQYXRoKT8uWzBdOyAvLyAqUmVnZXggdG8gZ2V0IHRoZSBhbmNlc3RvclxuXHRcdFx0aWYgKHNJdGVyYXRpb25QYXRoICYmIHNJdGVyYXRpb25QYXRoICE9PSBcIi9cIikge1xuXHRcdFx0XHRjb25zdCBzRW50aXR5UGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoc0l0ZXJhdGlvblBhdGgpO1xuXHRcdFx0XHRjb25zdCBtRGF0YU1vZGVsID0gTWV0YU1vZGVsQ29udmVydGVyLmdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhvTWV0YU1vZGVsLmdldENvbnRleHQoc0VudGl0eVBhdGgpKTtcblx0XHRcdFx0aWYgKChtRGF0YU1vZGVsLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCkge1xuXHRcdFx0XHRcdHJldHVybiBzSXRlcmF0aW9uUGF0aDtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZ2V0Um9vdFBhdGgoc0l0ZXJhdGlvblBhdGgsIG1vZGVsLCBmYWxzZSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH07XG5cdFx0cmV0dXJuIGdldFJvb3RQYXRoKG9Db250ZXh0LmdldFBhdGgoKSwgb0NvbnRleHQuZ2V0TW9kZWwoKSk7XG5cdH0sXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSB0YXJnZXQgZW50aXR5IHNldCB2aWEgbmF2aWdhdGlvbiBwcm9wZXJ0eSBiaW5kaW5nLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgZ2V0VGFyZ2V0RW50aXR5U2V0XG5cdCAqIEBwYXJhbSBvQ29udGV4dCBDb250ZXh0IGZvciB3aGljaCB0aGUgdGFyZ2V0IGVudGl0eSBzZXQgd2lsbCBiZSBkZXRlcm1pbmVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdGhlIHBhdGggdG8gdGhlIHRhcmdldCBlbnRpdHkgc2V0XG5cdCAqL1xuXHRnZXRUYXJnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uIChvQ29udGV4dDogQ29udGV4dCkge1xuXHRcdGNvbnN0IHNQYXRoID0gb0NvbnRleHQuZ2V0UGF0aCgpO1xuXHRcdGlmIChcblx0XHRcdG9Db250ZXh0LmdldE9iamVjdChcIiRraW5kXCIpID09PSBcIkVudGl0eVNldFwiIHx8XG5cdFx0XHRvQ29udGV4dC5nZXRPYmplY3QoXCIka2luZFwiKSA9PT0gXCJBY3Rpb25cIiB8fFxuXHRcdFx0b0NvbnRleHQuZ2V0T2JqZWN0KFwiMC8ka2luZFwiKSA9PT0gXCJBY3Rpb25cIlxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIHNQYXRoO1xuXHRcdH1cblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldEVudGl0eVNldFBhdGgoc1BhdGgpO1xuXHRcdHJldHVybiBgLyR7b0NvbnRleHQuZ2V0T2JqZWN0KHNFbnRpdHlTZXRQYXRoKX1gO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGNvbXBsZXRlIHBhdGggdG8gdGhlIGVudGl0eSBzZXQgdmlhIHVzaW5nIG5hdmlnYXRpb24gcHJvcGVydHkgYmluZGluZy4gTm90ZTogVG8gYmUgdXNlZCBvbmx5IGFmdGVyIHRoZSBtZXRhbW9kZWwgaGFzIGxvYWRlZC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldEVudGl0eVNldFBhdGhcblx0ICogQHBhcmFtIHBhdGggUGF0aCBmb3Igd2hpY2ggY29tcGxldGUgZW50aXR5U2V0IHBhdGggbmVlZHMgdG8gYmUgZGV0ZXJtaW5lZCBmcm9tIGVudGl0eVR5cGUgcGF0aFxuXHQgKiBAcGFyYW0gb2RhdGFNZXRhTW9kZWwgTWV0YW1vZGVsIHRvIGJlIHVzZWQuKE9wdGlvbmFsIGluIG5vcm1hbCBzY2VuYXJpb3MsIGJ1dCBuZWVkZWQgZm9yIHBhcmFtZXRlcml6ZWQgc2VydmljZSBzY2VuYXJpb3MpXG5cdCAqIEByZXR1cm5zIFJldHVybnMgY29tcGxldGUgcGF0aCB0byB0aGUgZW50aXR5IHNldFxuXHQgKi9cblx0Z2V0RW50aXR5U2V0UGF0aDogZnVuY3Rpb24gKHBhdGg6IHN0cmluZywgb2RhdGFNZXRhTW9kZWw/OiBPRGF0YU1ldGFNb2RlbCkge1xuXHRcdGxldCBlbnRpdHlTZXRQYXRoOiBzdHJpbmcgPSBcIlwiO1xuXHRcdGlmICghb2RhdGFNZXRhTW9kZWwpIHtcblx0XHRcdC8vIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIGZvciBnZXR0aW5nIGVudGl0eVNldFBhdGggZnJvbSBlbnRpdHlUeXBlUGF0aFxuXHRcdFx0ZW50aXR5U2V0UGF0aCA9IGAvJHtwYXRoLnNwbGl0KFwiL1wiKS5maWx0ZXIoTW9kZWxIZWxwZXIuZmlsdGVyT3V0TmF2UHJvcEJpbmRpbmcpLmpvaW4oXCIvJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcvXCIpfWA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIENhbGN1bGF0aW5nIHRoZSBlbnRpdHlTZXRQYXRoIGZyb20gTWV0YU1vZGVsLlxuXHRcdFx0Y29uc3QgcGF0aFBhcnRzID0gcGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKE1vZGVsSGVscGVyLmZpbHRlck91dE5hdlByb3BCaW5kaW5nKTtcblx0XHRcdGlmIChwYXRoUGFydHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRjb25zdCBpbml0aWFsUGF0aE9iamVjdCA9IHtcblx0XHRcdFx0XHRncm93aW5nUGF0aDogXCIvXCIsXG5cdFx0XHRcdFx0cGVuZGluZ05hdlByb3BCaW5kaW5nOiBcIlwiXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0Y29uc3QgcGF0aE9iamVjdCA9IHBhdGhQYXJ0cy5yZWR1Y2UoKHBhdGhVbmRlckNvbnN0cnVjdGlvbjogYW55LCBwYXRoUGFydDogc3RyaW5nLCBpZHg6IG51bWJlcikgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGRlbGltaXRlciA9ICghIWlkeCAmJiBcIi8kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZy9cIikgfHwgXCJcIjtcblx0XHRcdFx0XHRsZXQgeyBncm93aW5nUGF0aCwgcGVuZGluZ05hdlByb3BCaW5kaW5nIH0gPSBwYXRoVW5kZXJDb25zdHJ1Y3Rpb247XG5cdFx0XHRcdFx0Y29uc3QgdGVtcFBhdGggPSBncm93aW5nUGF0aCArIGRlbGltaXRlcjtcblx0XHRcdFx0XHRjb25zdCBuYXZQcm9wQmluZGluZ3MgPSBvZGF0YU1ldGFNb2RlbC5nZXRPYmplY3QodGVtcFBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IG5hdlByb3BCaW5kaW5nVG9DaGVjayA9IHBlbmRpbmdOYXZQcm9wQmluZGluZyA/IGAke3BlbmRpbmdOYXZQcm9wQmluZGluZ30vJHtwYXRoUGFydH1gIDogcGF0aFBhcnQ7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0bmF2UHJvcEJpbmRpbmdzICYmXG5cdFx0XHRcdFx0XHRPYmplY3Qua2V5cyhuYXZQcm9wQmluZGluZ3MpLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0XHRcdG5hdlByb3BCaW5kaW5ncy5oYXNPd25Qcm9wZXJ0eShuYXZQcm9wQmluZGluZ1RvQ2hlY2spXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRncm93aW5nUGF0aCA9IHRlbXBQYXRoICsgbmF2UHJvcEJpbmRpbmdUb0NoZWNrLnJlcGxhY2UoXCIvXCIsIFwiJTJGXCIpO1xuXHRcdFx0XHRcdFx0cGVuZGluZ05hdlByb3BCaW5kaW5nID0gXCJcIjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cGVuZGluZ05hdlByb3BCaW5kaW5nICs9IHBlbmRpbmdOYXZQcm9wQmluZGluZyA/IGAvJHtwYXRoUGFydH1gIDogcGF0aFBhcnQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB7IGdyb3dpbmdQYXRoLCBwZW5kaW5nTmF2UHJvcEJpbmRpbmcgfTtcblx0XHRcdFx0fSwgaW5pdGlhbFBhdGhPYmplY3QgYXMgYW55KTtcblxuXHRcdFx0XHRlbnRpdHlTZXRQYXRoID0gcGF0aE9iamVjdC5ncm93aW5nUGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVudGl0eVNldFBhdGggPSBgLyR7cGF0aFBhcnRzWzBdfWA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVudGl0eVNldFBhdGg7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHBhdGggZm9yIHRoZSBpdGVtcyBwcm9wZXJ0eSBvZiBNdWx0aVZhbHVlRmllbGQgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldEFjdGlvblBhcmFtZXRlckl0ZW1zTW9kZWxQYXRoXG5cdCAqIEBwYXJhbSBvUGFyYW1ldGVyIEFjdGlvbiBQYXJhbWV0ZXJcblx0ICogQHJldHVybnMgUmV0dXJucyB0aGUgY29tcGxldGUgbW9kZWwgcGF0aCBmb3IgdGhlIGl0ZW1zIHByb3BlcnR5IG9mIE11bHRpVmFsdWVGaWVsZCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aDogZnVuY3Rpb24gKG9QYXJhbWV0ZXI6IGFueSkge1xuXHRcdHJldHVybiBvUGFyYW1ldGVyICYmIG9QYXJhbWV0ZXIuJE5hbWUgPyBge3BhdGg6ICdtdmZ2aWV3Pi8ke29QYXJhbWV0ZXIuJE5hbWV9J31gIDogdW5kZWZpbmVkO1xuXHR9LFxuXG5cdGZpbHRlck91dE5hdlByb3BCaW5kaW5nOiBmdW5jdGlvbiAoc1BhdGhQYXJ0OiBhbnkpIHtcblx0XHRyZXR1cm4gc1BhdGhQYXJ0ICE9PSBcIlwiICYmIHNQYXRoUGFydCAhPT0gXCIkTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1wiO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgc2V0UHJvcGVydHkgdG8gdGhlIGNyZWF0ZWQgYmluZGluZyBjb250ZXh0cyBvZiB0aGUgaW50ZXJuYWwgSlNPTiBtb2RlbC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbFxuXHQgKiBAcGFyYW0ge3NhcC51aS5tb2RlbC5qc29uLkpTT05Nb2RlbH0gSW50ZXJuYWwgSlNPTiBNb2RlbCB3aGljaCBpcyBlbmhhbmNlZFxuXHQgKi9cblxuXHRlbmhhbmNlSW50ZXJuYWxKU09OTW9kZWw6IGZ1bmN0aW9uIChvSW50ZXJuYWxNb2RlbDogYW55KSB7XG5cdFx0Y29uc3QgZm5CaW5kQ29udGV4dCA9IG9JbnRlcm5hbE1vZGVsLmJpbmRDb250ZXh0O1xuXHRcdG9JbnRlcm5hbE1vZGVsLmJpbmRDb250ZXh0ID0gZnVuY3Rpb24gKHNQYXRoOiBhbnksIG9Db250ZXh0OiBhbnksIG1QYXJhbWV0ZXJzOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRvQ29udGV4dCA9IGZuQmluZENvbnRleHQuYXBwbHkodGhpcywgW3NQYXRoLCBvQ29udGV4dCwgbVBhcmFtZXRlcnMsIC4uLmFyZ3NdKTtcblx0XHRcdGNvbnN0IGZuR2V0Qm91bmRDb250ZXh0ID0gb0NvbnRleHQuZ2V0Qm91bmRDb250ZXh0O1xuXG5cdFx0XHRvQ29udGV4dC5nZXRCb3VuZENvbnRleHQgPSBmdW5jdGlvbiAoLi4uc3ViQXJnczogYW55W10pIHtcblx0XHRcdFx0Y29uc3Qgb0JvdW5kQ29udGV4dCA9IGZuR2V0Qm91bmRDb250ZXh0LmFwcGx5KHRoaXMsIC4uLnN1YkFyZ3MpO1xuXHRcdFx0XHRpZiAob0JvdW5kQ29udGV4dCAmJiAhb0JvdW5kQ29udGV4dC5zZXRQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdG9Cb3VuZENvbnRleHQuc2V0UHJvcGVydHkgPSBmdW5jdGlvbiAoc1NldFByb3BQYXRoOiBhbnksIHZhbHVlOiBhbnkpIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLmdldE9iamVjdCgpID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0Ly8gaW5pdGlhbGl6ZVxuXHRcdFx0XHRcdFx0XHR0aGlzLmdldE1vZGVsKCkuc2V0UHJvcGVydHkodGhpcy5nZXRQYXRoKCksIHt9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMuZ2V0TW9kZWwoKS5zZXRQcm9wZXJ0eShzU2V0UHJvcFBhdGgsIHZhbHVlLCB0aGlzKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBvQm91bmRDb250ZXh0O1xuXHRcdFx0fTtcblx0XHRcdHJldHVybiBvQ29udGV4dDtcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBBZGRzIGFuIGhhbmRsZXIgb24gcHJvcGVydHlDaGFuZ2UuXG5cdCAqIFRoZSBwcm9wZXJ0eSBcIi9lZGl0TW9kZVwiIGlzIGNoYW5nZWQgYWNjb3JkaW5nIHRvIHByb3BlcnR5ICcvaXNFZGl0YWJsZScgd2hlbiB0aGlzIGxhc3Qgb25lIGlzIHNldFxuXHQgKiBpbiBvcmRlciB0byBiZSBjb21wbGlhbnQgd2l0aCBmb3JtZXIgdmVyc2lvbnMgd2hlcmUgYnVpbGRpbmcgYmxvY2tzIHVzZSB0aGUgcHJvcGVydHkgXCIvZWRpdE1vZGVcIlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgZW5oYW5jZVVpSlNPTk1vZGVsXG5cdCAqIEBwYXJhbSB7c2FwLnVpLm1vZGVsLmpzb24uSlNPTk1vZGVsfSB1aU1vZGVsIEpTT04gTW9kZWwgd2hpY2ggaXMgZW5oYW5jZWRcblx0ICogQHBhcmFtIHtvYmplY3R9IGxpYnJhcnkgQ29yZSBsaWJyYXJ5IG9mIFNBUCBGaW9yaSBlbGVtZW50c1xuXHQgKi9cblxuXHRlbmhhbmNlVWlKU09OTW9kZWw6IGZ1bmN0aW9uICh1aU1vZGVsOiBKU09OTW9kZWwsIGxpYnJhcnk6IGFueSkge1xuXHRcdGNvbnN0IGZuU2V0UHJvcGVydHkgPSB1aU1vZGVsLnNldFByb3BlcnR5IGFzIGFueTtcblx0XHR1aU1vZGVsLnNldFByb3BlcnR5ID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IGFyZ3NbMV07XG5cdFx0XHRpZiAoYXJnc1swXSA9PT0gXCIvaXNFZGl0YWJsZVwiKSB7XG5cdFx0XHRcdHVpTW9kZWwuc2V0UHJvcGVydHkoXCIvZWRpdE1vZGVcIiwgdmFsdWUgPyBsaWJyYXJ5LkVkaXRNb2RlLkVkaXRhYmxlIDogbGlicmFyeS5FZGl0TW9kZS5EaXNwbGF5LCBhcmdzWzJdLCBhcmdzWzNdKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmblNldFByb3BlcnR5LmFwcGx5KHRoaXMsIFsuLi5hcmdzXSk7XG5cdFx0fTtcblx0fSxcblx0LyoqXG5cdCAqIFJldHVybnMgd2hldGhlciBmaWx0ZXJpbmcgb24gdGhlIHRhYmxlIGlzIGNhc2Ugc2Vuc2l0aXZlLlxuXHQgKlxuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBUaGUgaW5zdGFuY2Ugb2YgdGhlIG1ldGEgbW9kZWxcblx0ICogQHJldHVybnMgUmV0dXJucyAnZmFsc2UnIGlmIEZpbHRlckZ1bmN0aW9ucyBhbm5vdGF0aW9uIHN1cHBvcnRzICd0b2xvd2VyJywgZWxzZSAndHJ1ZSdcblx0ICovXG5cdGlzRmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZTogZnVuY3Rpb24gKG9NZXRhTW9kZWw6IGFueSkge1xuXHRcdGlmICghb01ldGFNb2RlbCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0Y29uc3QgYUZpbHRlckZ1bmN0aW9ucyA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KFwiL0BPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkZpbHRlckZ1bmN0aW9uc1wiKTtcblx0XHQvLyBHZXQgZmlsdGVyIGZ1bmN0aW9ucyBkZWZpbmVkIGF0IEVudGl0eUNvbnRhaW5lciBhbmQgY2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiAndG9sb3dlcidcblx0XHRyZXR1cm4gYUZpbHRlckZ1bmN0aW9ucyA/IGFGaWx0ZXJGdW5jdGlvbnMuaW5kZXhPZihcInRvbG93ZXJcIikgPT09IC0xIDogdHJ1ZTtcblx0fSxcblxuXHQvKipcblx0ICogR2V0IE1ldGFQYXRoIGZvciB0aGUgY29udGV4dC5cblx0ICpcblx0ICogQHBhcmFtIG9Db250ZXh0IENvbnRleHQgdG8gYmUgdXNlZFxuXHQgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBtZXRhcGF0aCBmb3IgdGhlIGNvbnRleHQuXG5cdCAqL1xuXHRnZXRNZXRhUGF0aEZvckNvbnRleHQ6IGZ1bmN0aW9uIChvQ29udGV4dDogYW55KSB7XG5cdFx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRcdG9NZXRhTW9kZWwgPSBvTW9kZWwuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRzUGF0aCA9IG9Db250ZXh0LmdldFBhdGgoKTtcblx0XHRyZXR1cm4gb01ldGFNb2RlbCAmJiBzUGF0aCAmJiBvTWV0YU1vZGVsLmdldE1ldGFQYXRoKHNQYXRoKTtcblx0fSxcblxuXHQvKipcblx0ICogR2V0IE1ldGFQYXRoIGZvciB0aGUgY29udGV4dC5cblx0ICpcblx0ICogQHBhcmFtIGNvbnRleHRQYXRoIE1ldGFQYXRoIHRvIGJlIHVzZWRcblx0ICogQHJldHVybnMgUmV0dXJucyB0aGUgcm9vdCBlbnRpdHkgc2V0IHBhdGguXG5cdCAqL1xuXHRnZXRSb290RW50aXR5U2V0UGF0aDogZnVuY3Rpb24gKGNvbnRleHRQYXRoOiBzdHJpbmcpIHtcblx0XHRsZXQgcm9vdEVudGl0eVNldFBhdGggPSBcIlwiO1xuXHRcdGNvbnN0IGFQYXRocyA9IGNvbnRleHRQYXRoID8gY29udGV4dFBhdGguc3BsaXQoXCIvXCIpIDogW107XG5cdFx0aWYgKGFQYXRocy5sZW5ndGggPiAxKSB7XG5cdFx0XHRyb290RW50aXR5U2V0UGF0aCA9IGFQYXRoc1sxXTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3RFbnRpdHlTZXRQYXRoO1xuXHR9LFxuXHQvKipcblx0ICogR2V0IE1ldGFQYXRoIGZvciB0aGUgbGlzdEJpbmRpbmcuXG5cdCAqXG5cdCAqIEBwYXJhbSBvVmlldyBWaWV3IG9mIHRoZSBjb250cm9sIHVzaW5nIGxpc3RCaW5kaW5nXG5cdCAqIEBwYXJhbSB2TGlzdEJpbmRpbmcgT0RhdGFMaXN0QmluZGluZyBvYmplY3Qgb3IgdGhlIGJpbmRpbmcgcGF0aCBmb3IgYSB0ZW1wb3JhcnkgbGlzdCBiaW5kaW5nXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdGhlIG1ldGFwYXRoIGZvciB0aGUgbGlzdGJpbmRpbmcuXG5cdCAqL1xuXHRnZXRBYnNvbHV0ZU1ldGFQYXRoRm9yTGlzdEJpbmRpbmc6IGZ1bmN0aW9uIChvVmlldzogVmlldywgdkxpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nIHwgc3RyaW5nKSB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9WaWV3LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkgYXMgT0RhdGFNZXRhTW9kZWw7XG5cdFx0bGV0IHNNZXRhUGF0aDtcblxuXHRcdGlmICh0eXBlb2Ygdkxpc3RCaW5kaW5nID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRpZiAodkxpc3RCaW5kaW5nLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRcdC8vIGFic29sdXRlIHBhdGhcblx0XHRcdFx0c01ldGFQYXRoID0gb01ldGFNb2RlbC5nZXRNZXRhUGF0aCh2TGlzdEJpbmRpbmcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gcmVsYXRpdmUgcGF0aFxuXHRcdFx0XHRjb25zdCBvQmluZGluZ0NvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdFx0XHRjb25zdCBzUm9vdENvbnRleHRQYXRoID0gb0JpbmRpbmdDb250ZXh0IS5nZXRQYXRoKCk7XG5cdFx0XHRcdHNNZXRhUGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgoYCR7c1Jvb3RDb250ZXh0UGF0aH0vJHt2TGlzdEJpbmRpbmd9YCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIHdlIGFscmVhZHkgZ2V0IGEgbGlzdCBiaW5kaW5nIHVzZSB0aGlzIG9uZVxuXHRcdFx0Y29uc3Qgb0JpbmRpbmcgPSB2TGlzdEJpbmRpbmc7XG5cdFx0XHRjb25zdCBvUm9vdEJpbmRpbmcgPSBvQmluZGluZy5nZXRSb290QmluZGluZygpO1xuXHRcdFx0aWYgKG9CaW5kaW5nID09PSBvUm9vdEJpbmRpbmcpIHtcblx0XHRcdFx0Ly8gYWJzb2x1dGUgcGF0aFxuXHRcdFx0XHRzTWV0YVBhdGggPSBvTWV0YU1vZGVsLmdldE1ldGFQYXRoKG9CaW5kaW5nLmdldFBhdGgoKSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyByZWxhdGl2ZSBwYXRoXG5cdFx0XHRcdGNvbnN0IHNSb290QmluZGluZ1BhdGggPSBvUm9vdEJpbmRpbmchLmdldFBhdGgoKTtcblx0XHRcdFx0Y29uc3Qgc1JlbGF0aXZlUGF0aCA9IG9CaW5kaW5nLmdldFBhdGgoKTtcblx0XHRcdFx0c01ldGFQYXRoID0gb01ldGFNb2RlbC5nZXRNZXRhUGF0aChgJHtzUm9vdEJpbmRpbmdQYXRofS8ke3NSZWxhdGl2ZVBhdGh9YCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzTWV0YVBhdGg7XG5cdH0sXG5cblx0LyoqXG5cdCAqIE1ldGhvZCB0byBkZXRlcm1pbmUgaWYgdGhlIGRyYWZ0IHJvb3QgaXMgc3VwcG9ydGVkIG9yIG5vdC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGlzU2luZ2xldG9uXG5cdCAqIEBwYXJhbSBlbnRpdHlTZXQgRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgZW50aXR5IHR5cGUgaXMgc2luZ2xldG9uXG5cdCAqL1xuXHRpc1NpbmdsZXRvbjogZnVuY3Rpb24gKGVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdFx0aWYgKGVudGl0eVNldD8uX3R5cGUgPT09IFR5cGVPZkVudGl0eS5UeXBlU2luZ2xldG9uKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9LFxuXHQvKipcblx0ICogTWV0aG9kIHRvIGRldGVybWluZSBpZiB0aGUgZHJhZnQgcm9vdCBpcyBzdXBwb3J0ZWQgb3Igbm90LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgaXNEcmFmdFJvb3Rcblx0ICogQHBhcmFtIGVudGl0eVNldCBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCB1bmRlZmluZWRcblx0ICogQHJldHVybnMgVHJ1ZSBpZiBkcmFmdCByb290IGlzIHByZXNlbnRcblx0ICovXG5cdGlzRHJhZnRSb290OiBmdW5jdGlvbiAoZW50aXR5U2V0OiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0XHRpZiAoTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gZW50aXR5U2V0ICYmIChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KS5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCA/IHRydWUgOiBmYWxzZTtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBkZXRlcm1pbmUgaWYgdGhlIGRyYWZ0IHJvb3QgaXMgc3VwcG9ydGVkIG9yIG5vdC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGlzRHJhZnROb2RlXG5cdCAqIEBwYXJhbSBlbnRpdHlTZXQgRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgZHJhZnQgcm9vdCBpcyBwcmVzZW50XG5cdCAqL1xuXHRpc0RyYWZ0Tm9kZTogZnVuY3Rpb24gKGVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdFx0aWYgKE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIGVudGl0eVNldCAmJiAoZW50aXR5U2V0IGFzIEVudGl0eVNldCkuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdE5vZGUgPyB0cnVlIDogZmFsc2U7XG5cdH0sXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gZGV0ZXJtaW5lIGlmIHRoZSBkcmFmdCByb290IGlzIHN1cHBvcnRlZCBvciBub3QuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBpc1N0aWNreVxuXHQgKiBAcGFyYW0gZW50aXR5U2V0IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZFxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHN0aWNreSBpcyBzdXBwb3J0ZWQgZWxzZSBmYWxzZVxuXHQgKi9cblx0aXNTdGlja3k6IGZ1bmN0aW9uIChlbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHRcdGlmIChNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXQpKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiBlbnRpdHlTZXQgJiYgKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpLmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQgPyB0cnVlIDogZmFsc2U7XG5cdH0sXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gZGV0ZXJtaW5lIGlmIGVudGl0eSBpcyB1cGRhdGFibGUgb3Igbm90LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgaXNVcGRhdGVIaWRkZW5cblx0ICogQHBhcmFtIGVudGl0eVNldCBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCB1bmRlZmluZWRcblx0ICogQHBhcmFtIGVudGl0eVR5cGUgRW50aXR5VHlwZVxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHVwZGF0YWJsZSBlbHNlIGZhbHNlXG5cdCAqL1xuXHRpc1VwZGF0ZUhpZGRlbjogZnVuY3Rpb24gKGVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkLCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4ge1xuXHRcdGlmIChNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXQpKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiAoXG5cdFx0XHQoZW50aXR5U2V0IGFzIEVudGl0eVNldCk/LmFubm90YXRpb25zLlVJPy5VcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSAhPT0gdW5kZWZpbmVkXG5cdFx0XHRcdD8gKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuXG5cdFx0XHRcdDogZW50aXR5VHlwZT8uYW5ub3RhdGlvbnMuVUk/LlVwZGF0ZUhpZGRlblxuXHRcdCkgYXMgUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj47XG5cdH0sXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gZ2V0IGRyYWZ0IHJvb3QuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBnZXREcmFmdFJvb3Rcblx0ICogQHBhcmFtIGVudGl0eVNldCBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCB1bmRlZmluZWRcblx0ICogQHJldHVybnMgRHJhZnRSb290XG5cdCAqL1xuXHRnZXREcmFmdFJvb3Q6IGZ1bmN0aW9uIChlbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZCk6IERyYWZ0Um9vdCB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHJldHVybiBlbnRpdHlTZXQgJiYgKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpLmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290O1xuXHR9LFxuXHQvKipcblx0ICogTWV0aG9kIHRvIGdldCBkcmFmdCByb290LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgZ2V0RHJhZnROb2RlXG5cdCAqIEBwYXJhbSBlbnRpdHlTZXQgRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkXG5cdCAqIEByZXR1cm5zIERyYWZ0Um9vdFxuXHQgKi9cblx0Z2V0RHJhZnROb2RlOiBmdW5jdGlvbiAoZW50aXR5U2V0OiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCB1bmRlZmluZWQpOiBEcmFmdE5vZGUgfCB1bmRlZmluZWQge1xuXHRcdGlmIChNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXQpKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRyZXR1cm4gZW50aXR5U2V0ICYmIChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KS5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Tm9kZTtcblx0fSxcblx0LyoqXG5cdCAqIEhlbHBlciBtZXRob2QgdG8gZ2V0IHN0aWNreSBzZXNzaW9uLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgZ2V0U3RpY2t5U2Vzc2lvblxuXHQgKiBAcGFyYW0gZW50aXR5U2V0IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZFxuXHQgKiBAcmV0dXJucyBTZXNzaW9uIFN0aWNreVNlc3Npb25TdXBwb3J0ZWRcblx0ICovXG5cdGdldFN0aWNreVNlc3Npb246IGZ1bmN0aW9uIChlbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZCk6IFN0aWNreVNlc3Npb25TdXBwb3J0ZWQgfCB1bmRlZmluZWQge1xuXHRcdGlmIChNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXQpKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRyZXR1cm4gZW50aXR5U2V0ICYmIChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KS5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZDtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBnZXQgdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgZGVsZXRlIGJ1dHRvbi5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIGdldERlbGV0ZUhpZGRlblxuXHQgKiBAcGFyYW0gZW50aXR5U2V0IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZFxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZSBFbnRpdHlUeXBlXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgZGVsZXRlIGJ1dHRvbiBpcyBoaWRkZW5cblx0ICovXG5cdGdldERlbGV0ZUhpZGRlbjogZnVuY3Rpb24gKGVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkLCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogRGVsZXRlSGlkZGVuIHwgQm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KT8uYW5ub3RhdGlvbnMuVUk/LkRlbGV0ZUhpZGRlbj8udmFsdWVPZigpICE9PSB1bmRlZmluZWRcblx0XHRcdD8gKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucy5VST8uRGVsZXRlSGlkZGVuXG5cdFx0XHQ6IGVudGl0eVR5cGU/LmFubm90YXRpb25zLlVJPy5EZWxldGVIaWRkZW47XG5cdH1cbn07XG5cbmV4cG9ydCB0eXBlIEludGVybmFsTW9kZWxDb250ZXh0ID0geyBnZXRNb2RlbCgpOiBKU09OTW9kZWwgfSAmIEJhc2VDb250ZXh0ICYge1xuXHRcdHNldFByb3BlcnR5KHNQYXRoOiBzdHJpbmcsIHZWYWx1ZTogYW55KTogdm9pZDtcblx0fTtcblxuZXhwb3J0IGRlZmF1bHQgTW9kZWxIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O01BZWtCQSxZQUFZO0VBQUEsV0FBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7RUFBQSxHQUFaQSxZQUFZLEtBQVpBLFlBQVk7RUFBQTtFQUk5QixJQUFNQyxXQUFXLEdBQUc7SUFDbkI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyx3QkFBd0IsRUFBRSxVQUFVQyxVQUEwQixFQUFFO01BQy9ELElBQU1DLGdCQUFnQixHQUFHRCxVQUFVLENBQUNFLFNBQVMsQ0FBQyxHQUFHLENBQUM7TUFDbEQsS0FBSyxJQUFNQyxVQUFVLElBQUlGLGdCQUFnQixFQUFFO1FBQzFDLElBQ0NBLGdCQUFnQixDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsS0FBSyxLQUFLLFdBQVcsSUFDbERKLFVBQVUsQ0FBQ0UsU0FBUyxZQUFLQyxVQUFVLDZEQUEwRCxFQUM1RjtVQUNELE9BQU8sSUFBSTtRQUNaO01BQ0Q7TUFDQSxPQUFPLEtBQUs7SUFDYixDQUFDO0lB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
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/MetaModelConverter"],function(t){"use strict";var n={};var e=t.getInvolvedDataModelObjects;let o;(function(t){t["TypeSingleton"]="Singleton";t["TypeEntity"]="EntitySet"})(o||(o={}));n.TypeOfEntity=o;const i={isStickySessionSupported:function(t){const n=t.getObject("/");for(const e in n){if(n[e].$kind==="EntitySet"&&t.getObject(`/${e}@com.sap.vocabularies.Session.v1.StickySessionSupported`)){return true}}return false},isDraftSupported:function(t,n){const o=t.getMetaContext(n);const i=e(o);return this.isObjectPathDraftSupported(i)},isObjectPathDraftSupported:function(t){var n,e,o,r,a,d,l;const s=t.targetEntitySet;const u=i.isDraftRoot(s);const c=i.isDraftNode(s);const f=(n=t.targetObject)!==null&&n!==void 0&&n.containsTarget&&((e=t.startingEntitySet)!==null&&e!==void 0&&(o=e.annotations)!==null&&o!==void 0&&(r=o.Common)!==null&&r!==void 0&&r.DraftRoot||(a=t.startingEntitySet)!==null&&a!==void 0&&(d=a.annotations)!==null&&d!==void 0&&(l=d.Common)!==null&&l!==void 0&&l.DraftNode)?true:false;return u||c||!s&&f},isCollaborationDraftSupported:function(t,n){var e;const o=(n===null||n===void 0?void 0:(e=n.context)===null||e===void 0?void 0:e.getModel())||t;const i=o.getObject("/");for(const t in i){if(i[t].$kind==="EntitySet"&&o.getObject(`/${t}@com.sap.vocabularies.Common.v1.DraftRoot/ShareAction`)){return true}}return false},getDraftRootPath:function(n){const e=n.getModel().getMetaModel();const o=function(n,i){var r;let a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;const d=a?n:(r=new RegExp(/.*(?=\/)/).exec(n))===null||r===void 0?void 0:r[0];if(d&&d!=="/"){var l,s;const n=e.getMetaPath(d);const r=t.getInvolvedDataModelObjects(e.getContext(n));if((l=r.targetEntitySet)!==null&&l!==void 0&&(s=l.annotations.Common)!==null&&s!==void 0&&s.DraftRoot){return d}return o(d,i,false)}return undefined};return o(n.getPath(),n.getModel())},getStickyRootPath:function(n){const e=n.getModel().getMetaModel();const o=function(n,i){var r;let a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;const d=a?n:(r=new RegExp(/.*(?=\/)/).exec(n))===null||r===void 0?void 0:r[0];if(d&&d!=="/"){var l,s,u;const n=e.getMetaPath(d);const r=t.getInvolvedDataModelObjects(e.getContext(n));if((l=r.targetEntitySet)!==null&&l!==void 0&&(s=l.annotations)!==null&&s!==void 0&&(u=s.Session)!==null&&u!==void 0&&u.StickySessionSupported){return d}return o(d,i,false)}return undefined};return o(n.getPath(),n.getModel())},getTargetEntitySet:function(t){const n=t.getPath();if(t.getObject("$kind")==="EntitySet"||t.getObject("$kind")==="Action"||t.getObject("0/$kind")==="Action"){return n}const e=i.getEntitySetPath(n);return`/${t.getObject(e)}`},getEntitySetPath:function(t,n){let e="";if(!n){e=`/${t.split("/").filter(i.filterOutNavPropBinding).join("/$NavigationPropertyBinding/")}`}else{const o=t.split("/").filter(i.filterOutNavPropBinding);if(o.length>1){const t={growingPath:"/",pendingNavPropBinding:""};const i=o.reduce((t,e,o)=>{const i=!!o&&"/$NavigationPropertyBinding/"||"";let{growingPath:r,pendingNavPropBinding:a}=t;const d=r+i;const l=n.getObject(d);const s=a?`${a}/${e}`:e;if(l&&Object.keys(l).length>0&&l.hasOwnProperty(s)){r=d+s.replace("/","%2F");a=""}else{a+=a?`/${e}`:e}return{growingPath:r,pendingNavPropBinding:a}},t);e=i.growingPath}else{e=`/${o[0]}`}}return e},getActionParameterItemsModelPath:function(t){return t&&t.$Name?`{path: 'mvfview>/${t.$Name}'}`:undefined},filterOutNavPropBinding:function(t){return t!==""&&t!=="$NavigationPropertyBinding"},enhanceInternalJSONModel:function(t){const n=t.bindContext;t.bindContext=function(t,e,o){for(var i=arguments.length,r=new Array(i>3?i-3:0),a=3;a<i;a++){r[a-3]=arguments[a]}e=n.apply(this,[t,e,o,...r]);const d=e.getBoundContext;e.getBoundContext=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++){n[e]=arguments[e]}const o=d.apply(this,...n);if(o&&!o.setProperty){o.setProperty=function(t,n){if(this.getObject()===undefined){this.getModel().setProperty(this.getPath(),{})}this.getModel().setProperty(t,n,this)}}return o};return e}},enhanceUiJSONModel:function(t,n){const e=t.setProperty;t.setProperty=function(){for(var o=arguments.length,i=new Array(o),r=0;r<o;r++){i[r]=arguments[r]}const a=i[1];if(i[0]==="/isEditable"){t.setProperty("/editMode",a?n.EditMode.Editable:n.EditMode.Display,i[2],i[3])}return e.apply(this,[...i])}},isFilteringCaseSensitive:function(t){if(!t){return undefined}const n=t.getObject("/@Org.OData.Capabilities.V1.FilterFunctions");return n?n.indexOf("tolower")===-1:true},getMetaPathForContext:function(t){const n=t.getModel(),e=n.getMetaModel(),o=t.getPath();return e&&o&&e.getMetaPath(o)},getRootEntitySetPath:function(t){let n="";const e=t?t.split("/"):[];if(e.length>1){n=e[1]}return n},getAbsoluteMetaPathForListBinding:function(t,n){const e=t.getModel().getMetaModel();let o;if(typeof n==="string"){if(n.startsWith("/")){o=e.getMetaPath(n)}else{const i=t.getBindingContext();const r=i.getPath();o=e.getMetaPath(`${r}/${n}`)}}else{const t=n;const i=t.getRootBinding();if(t===i){o=e.getMetaPath(t.getPath())}else{const n=i.getPath();const r=t.getPath();o=e.getMetaPath(`${n}/${r}`)}}return o},isSingleton:function(t){if((t===null||t===void 0?void 0:t._type)===o.TypeSingleton){return true}return false},isDraftRoot:function(t){var n;if(i.isSingleton(t)){return false}return t&&(n=t.annotations.Common)!==null&&n!==void 0&&n.DraftRoot?true:false},isDraftNode:function(t){var n;if(i.isSingleton(t)){return false}return t&&(n=t.annotations.Common)!==null&&n!==void 0&&n.DraftNode?true:false},isSticky:function(t){var n;if(i.isSingleton(t)){return false}return t&&(n=t.annotations.Session)!==null&&n!==void 0&&n.StickySessionSupported?true:false},isUpdateHidden:function(t,n){var e,o,r,a;if(i.isSingleton(t)){return false}return(t===null||t===void 0?void 0:(e=t.annotations.UI)===null||e===void 0?void 0:(o=e.UpdateHidden)===null||o===void 0?void 0:o.valueOf())!==undefined?t===null||t===void 0?void 0:(r=t.annotations.UI)===null||r===void 0?void 0:r.UpdateHidden:n===null||n===void 0?void 0:(a=n.annotations.UI)===null||a===void 0?void 0:a.UpdateHidden},getDraftRoot:function(t){var n;if(i.isSingleton(t)){return undefined}return t&&((n=t.annotations.Common)===null||n===void 0?void 0:n.DraftRoot)},getDraftNode:function(t){var n;if(i.isSingleton(t)){return undefined}return t&&((n=t.annotations.Common)===null||n===void 0?void 0:n.DraftNode)},getStickySession:function(t){var n,e;if(i.isSingleton(t)){return undefined}return t&&((n=t.annotations)===null||n===void 0?void 0:(e=n.Session)===null||e===void 0?void 0:e.StickySessionSupported)},getDeleteHidden:function(t,n){var e,o,r,a;if(i.isSingleton(t)){return false}return(t===null||t===void 0?void 0:(e=t.annotations.UI)===null||e===void 0?void 0:(o=e.DeleteHidden)===null||o===void 0?void 0:o.valueOf())!==undefined?t===null||t===void 0?void 0:(r=t.annotations.UI)===null||r===void 0?void 0:r.DeleteHidden:n===null||n===void 0?void 0:(a=n.annotations.UI)===null||a===void 0?void 0:a.DeleteHidden}};return i},false);
|
|
6
|
+
//# sourceMappingURL=ModelHelper.js.map
|