@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
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/collaboration/ActivityBase", "sap/fe/core/controllerextensions/collaboration/CollaborationCommon", "sap/m/MessageBox"], function (Log, CommonUtils, ActivityBase, CollaborationCommon, MessageBox) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var CollaborationUtils = CollaborationCommon.CollaborationUtils;
|
|
10
|
+
var Activity = CollaborationCommon.Activity;
|
|
11
|
+
var isCollaborationConnected = ActivityBase.isCollaborationConnected;
|
|
12
|
+
var initializeCollaboration = ActivityBase.initializeCollaboration;
|
|
13
|
+
var endCollaboration = ActivityBase.endCollaboration;
|
|
14
|
+
var broadcastCollaborationMessage = ActivityBase.broadcastCollaborationMessage;
|
|
15
|
+
const MYACTIVITY = "/collaboration/myActivity";
|
|
16
|
+
const ACTIVEUSERS = "/collaboration/activeUsers";
|
|
17
|
+
const ACTIVITIES = "/collaboration/activities";
|
|
18
|
+
const SYNCGROUPID = "$auto.sync";
|
|
19
|
+
const isConnected = function (control) {
|
|
20
|
+
const internalModel = control.getModel("internal");
|
|
21
|
+
return isCollaborationConnected(internalModel);
|
|
22
|
+
};
|
|
23
|
+
_exports.isConnected = isConnected;
|
|
24
|
+
const send = function (control, action, content, triggeredActionName) {
|
|
25
|
+
if (isConnected(control)) {
|
|
26
|
+
const internalModel = control.getModel("internal");
|
|
27
|
+
const clientContent = Array.isArray(content) ? content.join("|") : content;
|
|
28
|
+
const myActivity = internalModel.getProperty(MYACTIVITY);
|
|
29
|
+
if (action === Activity.LiveChange) {
|
|
30
|
+
// To avoid unnecessary traffic we keep track of live changes and send it only once
|
|
31
|
+
|
|
32
|
+
if (myActivity === clientContent) {
|
|
33
|
+
return;
|
|
34
|
+
} else {
|
|
35
|
+
internalModel.setProperty(MYACTIVITY, clientContent);
|
|
36
|
+
}
|
|
37
|
+
} else {
|
|
38
|
+
// No need to send an Undo message if there's no current activity
|
|
39
|
+
if (action === Activity.Undo && myActivity === null) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// user finished the activity
|
|
44
|
+
internalModel.setProperty(MYACTIVITY, null);
|
|
45
|
+
}
|
|
46
|
+
broadcastCollaborationMessage(action, clientContent, internalModel, triggeredActionName);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
_exports.send = send;
|
|
50
|
+
const getWebSocketBaseURL = function (bindingContext) {
|
|
51
|
+
return bindingContext.getModel().getMetaModel().getObject("/@com.sap.vocabularies.Common.v1.WebSocketBaseURL");
|
|
52
|
+
};
|
|
53
|
+
const isCollaborationEnabled = function (view) {
|
|
54
|
+
const bindingContext = (view === null || view === void 0 ? void 0 : view.getBindingContext) && view.getBindingContext();
|
|
55
|
+
return !!(bindingContext && getWebSocketBaseURL(bindingContext));
|
|
56
|
+
};
|
|
57
|
+
_exports.isCollaborationEnabled = isCollaborationEnabled;
|
|
58
|
+
const connect = async function (view) {
|
|
59
|
+
const internalModel = view.getModel("internal");
|
|
60
|
+
const me = CollaborationUtils.getMe(view);
|
|
61
|
+
|
|
62
|
+
// Retrieving ME from shell service
|
|
63
|
+
if (!me) {
|
|
64
|
+
// no me = no shell = not sure what to do
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const bindingContext = view.getBindingContext();
|
|
68
|
+
const webSocketBaseURL = getWebSocketBaseURL(bindingContext);
|
|
69
|
+
const serviceUrl = bindingContext.getModel().getServiceUrl();
|
|
70
|
+
if (!webSocketBaseURL) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const sDraftUUID = await bindingContext.requestProperty("DraftAdministrativeData/DraftUUID");
|
|
74
|
+
if (!sDraftUUID) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
initializeCollaboration(me, webSocketBaseURL, sDraftUUID, serviceUrl, internalModel, message => {
|
|
78
|
+
messageReceive(message, view);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
_exports.connect = connect;
|
|
82
|
+
const disconnect = function (control) {
|
|
83
|
+
const internalModel = control.getModel("internal");
|
|
84
|
+
endCollaboration(internalModel);
|
|
85
|
+
};
|
|
86
|
+
_exports.disconnect = disconnect;
|
|
87
|
+
function messageReceive(message, view) {
|
|
88
|
+
var _message$clientConten, _activities;
|
|
89
|
+
const internalModel = view.getModel("internal");
|
|
90
|
+
let activeUsers = internalModel.getProperty(ACTIVEUSERS);
|
|
91
|
+
let activities;
|
|
92
|
+
let activityKey;
|
|
93
|
+
const metaPath = calculateMetaPath(view, message.clientContent);
|
|
94
|
+
message.userAction = message.userAction || message.clientAction;
|
|
95
|
+
const sender = {
|
|
96
|
+
id: message.userID,
|
|
97
|
+
name: message.userDescription,
|
|
98
|
+
initials: CollaborationUtils.formatInitials(message.userDescription),
|
|
99
|
+
color: CollaborationUtils.getUserColor(message.userID, activeUsers, [])
|
|
100
|
+
};
|
|
101
|
+
let mactivity = sender;
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line default-case
|
|
104
|
+
switch (message.userAction) {
|
|
105
|
+
case Activity.Join:
|
|
106
|
+
case Activity.JoinEcho:
|
|
107
|
+
if (activeUsers.findIndex(user => user.id === sender.id) === -1) {
|
|
108
|
+
activeUsers.unshift(sender);
|
|
109
|
+
internalModel.setProperty(ACTIVEUSERS, activeUsers);
|
|
110
|
+
}
|
|
111
|
+
if (message.userAction === Activity.Join) {
|
|
112
|
+
// we echo our existence to the newly entered user and also send the current activity if there is any
|
|
113
|
+
broadcastCollaborationMessage(Activity.JoinEcho, internalModel.getProperty(MYACTIVITY), internalModel);
|
|
114
|
+
}
|
|
115
|
+
if (message.userAction === Activity.JoinEcho) {
|
|
116
|
+
if (message.clientContent) {
|
|
117
|
+
// another user was already typing therefore I want to see his activity immediately. Calling me again as a live change
|
|
118
|
+
message.userAction = Activity.LiveChange;
|
|
119
|
+
messageReceive(message, view);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
case Activity.Leave:
|
|
124
|
+
// Removing the active user. Not removing "me" if I had the screen open in another session
|
|
125
|
+
activeUsers = activeUsers.filter(user => user.id !== sender.id || user.me);
|
|
126
|
+
internalModel.setProperty(ACTIVEUSERS, activeUsers);
|
|
127
|
+
const allActivities = internalModel.getProperty(ACTIVITIES) || {};
|
|
128
|
+
const removeUserActivities = function (bag) {
|
|
129
|
+
if (Array.isArray(bag)) {
|
|
130
|
+
return bag.filter(activity => activity.id !== sender.id);
|
|
131
|
+
} else {
|
|
132
|
+
for (const p in bag) {
|
|
133
|
+
bag[p] = removeUserActivities(bag[p]);
|
|
134
|
+
}
|
|
135
|
+
return bag;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
removeUserActivities(allActivities);
|
|
139
|
+
internalModel.setProperty(ACTIVITIES, allActivities);
|
|
140
|
+
break;
|
|
141
|
+
case Activity.Change:
|
|
142
|
+
const metaPaths = message === null || message === void 0 ? void 0 : (_message$clientConten = message.clientContent) === null || _message$clientConten === void 0 ? void 0 : _message$clientConten.split("|").map(path => {
|
|
143
|
+
return view.getModel().getMetaModel().getMetaPath(path);
|
|
144
|
+
});
|
|
145
|
+
metaPaths.forEach((currentMetaPath, i) => {
|
|
146
|
+
var _message$clientConten2, _currentActivities;
|
|
147
|
+
const nesteedMessage = {
|
|
148
|
+
...message,
|
|
149
|
+
clientContent: message === null || message === void 0 ? void 0 : (_message$clientConten2 = message.clientContent) === null || _message$clientConten2 === void 0 ? void 0 : _message$clientConten2.split("|")[i]
|
|
150
|
+
};
|
|
151
|
+
let currentActivities = internalModel.getProperty(ACTIVITIES + currentMetaPath) || [];
|
|
152
|
+
activityKey = getActivityKey(nesteedMessage.clientContent);
|
|
153
|
+
currentActivities = ((_currentActivities = currentActivities) === null || _currentActivities === void 0 ? void 0 : _currentActivities.filter) && currentActivities.filter(activity => activity.key !== activityKey);
|
|
154
|
+
if (currentActivities) {
|
|
155
|
+
internalModel.setProperty(ACTIVITIES + currentMetaPath, currentActivities);
|
|
156
|
+
update(view, nesteedMessage, currentMetaPath, Activity.Change);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
break;
|
|
160
|
+
case Activity.Create:
|
|
161
|
+
// For create we actually just need to refresh the table
|
|
162
|
+
update(view, message, metaPath, Activity.Create);
|
|
163
|
+
break;
|
|
164
|
+
case Activity.Delete:
|
|
165
|
+
// For now also refresh the page but in case of deletion we need to inform the user
|
|
166
|
+
update(view, message, metaPath, Activity.Delete);
|
|
167
|
+
break;
|
|
168
|
+
case Activity.Activate:
|
|
169
|
+
draftClosedByOtherUser(view, message, CollaborationUtils.getText("C_COLLABORATIONDRAFT_ACTIVATE", sender.name));
|
|
170
|
+
break;
|
|
171
|
+
case Activity.Discard:
|
|
172
|
+
draftClosedByOtherUser(view, message, CollaborationUtils.getText("C_COLLABORATIONDRAFT_DISCARD", sender.name));
|
|
173
|
+
break;
|
|
174
|
+
case Activity.Action:
|
|
175
|
+
update(view, message, metaPath, Activity.Action);
|
|
176
|
+
break;
|
|
177
|
+
case Activity.LiveChange:
|
|
178
|
+
mactivity = sender;
|
|
179
|
+
mactivity.key = getActivityKey(message.clientContent);
|
|
180
|
+
|
|
181
|
+
// stupid JSON model...
|
|
182
|
+
let initJSONModel = "";
|
|
183
|
+
const parts = metaPath.split("/");
|
|
184
|
+
for (let i = 1; i < parts.length - 1; i++) {
|
|
185
|
+
initJSONModel += `/${parts[i]}`;
|
|
186
|
+
if (!internalModel.getProperty(ACTIVITIES + initJSONModel)) {
|
|
187
|
+
internalModel.setProperty(ACTIVITIES + initJSONModel, {});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
activities = internalModel.getProperty(ACTIVITIES + metaPath);
|
|
191
|
+
activities = (_activities = activities) !== null && _activities !== void 0 && _activities.slice ? activities.slice() : [];
|
|
192
|
+
activities.push(mactivity);
|
|
193
|
+
internalModel.setProperty(ACTIVITIES + metaPath, activities);
|
|
194
|
+
break;
|
|
195
|
+
case Activity.Undo:
|
|
196
|
+
// The user did a change but reverted it, therefore unblock the control
|
|
197
|
+
activities = internalModel.getProperty(ACTIVITIES + metaPath);
|
|
198
|
+
activityKey = getActivityKey(message.clientContent);
|
|
199
|
+
internalModel.setProperty(ACTIVITIES + metaPath, activities.filter(a => a.key !== activityKey));
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
function draftClosedByOtherUser(view, message, text) {
|
|
204
|
+
disconnect(view);
|
|
205
|
+
MessageBox.information(text);
|
|
206
|
+
view.getBindingContext().getBinding().resetChanges().then(function () {
|
|
207
|
+
navigate(message.clientContent, view);
|
|
208
|
+
}).catch(function () {
|
|
209
|
+
Log.error("Pending Changes could not be reset - still navigating to active instance");
|
|
210
|
+
navigate(message.clientContent, view);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
function update(view, message, metaPath, action) {
|
|
214
|
+
const appComponent = CollaborationUtils.getAppComponent(view);
|
|
215
|
+
const metaModel = view.getModel().getMetaModel();
|
|
216
|
+
const currentPage = getCurrentPage(view);
|
|
217
|
+
const sideEffectsService = appComponent.getSideEffectsService();
|
|
218
|
+
const currentContext = currentPage.getBindingContext();
|
|
219
|
+
const currentPath = currentContext.getPath();
|
|
220
|
+
const currentMetaPath = metaModel.getMetaPath(currentPath);
|
|
221
|
+
let changedDocument = message.clientContent;
|
|
222
|
+
if (action === Activity.Delete) {
|
|
223
|
+
// check if user currently displays one deleted object
|
|
224
|
+
const deletedObjects = message.clientContent.split("|");
|
|
225
|
+
const parentDeletedIndex = deletedObjects.findIndex(deletedObject => currentPath.startsWith(deletedObject));
|
|
226
|
+
if (parentDeletedIndex > -1) {
|
|
227
|
+
// any other user deleted the object I'm currently looking at. Inform the user we will navigate to root now
|
|
228
|
+
MessageBox.information(CollaborationUtils.getText("C_COLLABORATIONDRAFT_DELETE", message.userDescription), {
|
|
229
|
+
onClose: function () {
|
|
230
|
+
const targetContext = view.getModel().bindContext(deletedObjects[parentDeletedIndex]).getBoundContext();
|
|
231
|
+
currentPage.getController()._routing.navigateBackFromContext(targetContext);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
// TODO: For now just take the first object to get the meta path and do a full refresh of the table
|
|
236
|
+
changedDocument = deletedObjects[0];
|
|
237
|
+
}
|
|
238
|
+
if (action === Activity.Action) {
|
|
239
|
+
const actionName = message.clientTriggeredActionName,
|
|
240
|
+
bindingParameters = sideEffectsService.getODataActionSideEffects(actionName, currentContext),
|
|
241
|
+
targetPaths = bindingParameters === null || bindingParameters === void 0 ? void 0 : bindingParameters.pathExpressions;
|
|
242
|
+
if (targetPaths && targetPaths.length > 0) {
|
|
243
|
+
sideEffectsService.requestSideEffects(targetPaths, currentContext, SYNCGROUPID);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (changedDocument.startsWith(currentPath)) {
|
|
247
|
+
// Execute SideEffects (TODO for Meet there should be one central method)
|
|
248
|
+
const activityPath = metaPath.replace(currentMetaPath, "").slice(1);
|
|
249
|
+
if (activityPath) {
|
|
250
|
+
// Request also the property itself
|
|
251
|
+
const sideEffects = [{
|
|
252
|
+
$PropertyPath: activityPath
|
|
253
|
+
}];
|
|
254
|
+
const entityType = sideEffectsService.getEntityTypeFromContext(currentContext);
|
|
255
|
+
const entityTypeSideEffects = sideEffectsService.getODataEntitySideEffects(entityType);
|
|
256
|
+
// Poor man solution without checking source targets, just for POC, this is throw-way coding only
|
|
257
|
+
const object = Object; // just to overcome TS issues, will be anyway replaced
|
|
258
|
+
const relevantSideEffects = object.fromEntries(object.entries(entityTypeSideEffects).filter(x => {
|
|
259
|
+
var _x$1$SourceProperties;
|
|
260
|
+
return ((_x$1$SourceProperties = x[1].SourceProperties) === null || _x$1$SourceProperties === void 0 ? void 0 : _x$1$SourceProperties.findIndex(source => source.value === activityPath)) > -1;
|
|
261
|
+
}));
|
|
262
|
+
for (const p in relevantSideEffects) {
|
|
263
|
+
relevantSideEffects[p].TargetProperties.forEach(function (targetProperty) {
|
|
264
|
+
sideEffects.push({
|
|
265
|
+
$PropertyPath: targetProperty
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
sideEffectsService.requestSideEffects(sideEffects, currentContext, SYNCGROUPID);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Simulate any change so the edit flow shows the draft indicator and sets the page to dirty
|
|
274
|
+
currentPage.getController().editFlow.updateDocument(currentContext, Promise.resolve());
|
|
275
|
+
}
|
|
276
|
+
function navigate(path, view) {
|
|
277
|
+
// TODO: routing.navigate doesn't consider semantic bookmarking
|
|
278
|
+
const currentPage = getCurrentPage(view);
|
|
279
|
+
const targetContext = view.getModel().bindContext(path).getBoundContext();
|
|
280
|
+
currentPage.getController().routing.navigate(targetContext);
|
|
281
|
+
}
|
|
282
|
+
function getCurrentPage(view) {
|
|
283
|
+
const appComponent = CollaborationUtils.getAppComponent(view);
|
|
284
|
+
return CommonUtils.getCurrentPageView(appComponent);
|
|
285
|
+
}
|
|
286
|
+
function getActivityKey(x) {
|
|
287
|
+
return x.substring(x.lastIndexOf("(") + 1, x.lastIndexOf(")"));
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Calculates the metapath from one or more data path(s).
|
|
292
|
+
*
|
|
293
|
+
* @param view The current view
|
|
294
|
+
* @param path One ore more data path(s), in case of multiple paths separated by '|'
|
|
295
|
+
* @returns The calculated metaPath
|
|
296
|
+
*/
|
|
297
|
+
function calculateMetaPath(view, path) {
|
|
298
|
+
let metaPath = "";
|
|
299
|
+
if (path) {
|
|
300
|
+
// in case more than one path is sent all of them have to use the same metapath therefore we just consider the first one
|
|
301
|
+
const dataPath = path.split("|")[0];
|
|
302
|
+
metaPath = view.getModel().getMetaModel().getMetaPath(dataPath);
|
|
303
|
+
}
|
|
304
|
+
return metaPath;
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
connect: connect,
|
|
308
|
+
disconnect: disconnect,
|
|
309
|
+
isConnected: isConnected,
|
|
310
|
+
isCollaborationEnabled: isCollaborationEnabled,
|
|
311
|
+
send: send
|
|
312
|
+
};
|
|
313
|
+
}, false);
|
|
314
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNWUFDVElWSVRZIiwiQUNUSVZFVVNFUlMiLCJBQ1RJVklUSUVTIiwiU1lOQ0dST1VQSUQiLCJpc0Nvbm5lY3RlZCIsImNvbnRyb2wiLCJpbnRlcm5hbE1vZGVsIiwiZ2V0TW9kZWwiLCJpc0NvbGxhYm9yYXRpb25Db25uZWN0ZWQiLCJzZW5kIiwiYWN0aW9uIiwiY29udGVudCIsInRyaWdnZXJlZEFjdGlvbk5hbWUiLCJjbGllbnRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIm15QWN0aXZpdHkiLCJnZXRQcm9wZXJ0eSIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsInNldFByb3BlcnR5IiwiVW5kbyIsImJyb2FkY2FzdENvbGxhYm9yYXRpb25NZXNzYWdlIiwiZ2V0V2ViU29ja2V0QmFzZVVSTCIsImJpbmRpbmdDb250ZXh0IiwiZ2V0TWV0YU1vZGVsIiwiZ2V0T2JqZWN0IiwiaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCIsInZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsImNvbm5lY3QiLCJtZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldE1lIiwid2ViU29ja2V0QmFzZVVSTCIsInNlcnZpY2VVcmwiLCJnZXRTZXJ2aWNlVXJsIiwic0RyYWZ0VVVJRCIsInJlcXVlc3RQcm9wZXJ0eSIsImluaXRpYWxpemVDb2xsYWJvcmF0aW9uIiwibWVzc2FnZSIsIm1lc3NhZ2VSZWNlaXZlIiwiZGlzY29ubmVjdCIsImVuZENvbGxhYm9yYXRpb24iLCJhY3RpdmVVc2VycyIsImFjdGl2aXRpZXMiLCJhY3Rpdml0eUtleSIsIm1ldGFQYXRoIiwiY2FsY3VsYXRlTWV0YVBhdGgiLCJ1c2VyQWN0aW9uIiwiY2xpZW50QWN0aW9uIiwic2VuZGVyIiwiaWQiLCJ1c2VySUQiLCJuYW1lIiwidXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwibWFjdGl2aXR5IiwiSm9pbiIsIkpvaW5FY2hvIiwiZmluZEluZGV4IiwidXNlciIsInVuc2hpZnQiLCJMZWF2ZSIsImZpbHRlciIsImFsbEFjdGl2aXRpZXMiLCJyZW1vdmVVc2VyQWN0aXZpdGllcyIsImJhZyIsImFjdGl2aXR5IiwicCIsIkNoYW5nZSIsIm1ldGFQYXRocyIsInNwbGl0IiwibWFwIiwicGF0aCIsImdldE1ldGFQYXRoIiwiZm9yRWFjaCIsImN1cnJlbnRNZXRhUGF0aCIsImkiLCJuZXN0ZWVkTWVzc2FnZSIsImN1cnJlbnRBY3Rpdml0aWVzIiwiZ2V0QWN0aXZpdHlLZXkiLCJrZXkiLCJ1cGRhdGUiLCJDcmVhdGUiLCJEZWxldGUiLCJBY3RpdmF0ZSIsImRyYWZ0Q2xvc2VkQnlPdGhlclVzZXIiLCJnZXRUZXh0IiwiRGlzY2FyZCIsIkFjdGlvbiIsImluaXRKU09OTW9kZWwiLCJwYXJ0cyIsImxlbmd0aCIsInNsaWNlIiwicHVzaCIsImEiLCJ0ZXh0IiwiTWVzc2FnZUJveCIsImluZm9ybWF0aW9uIiwiZ2V0QmluZGluZyIsInJlc2V0Q2hhbmdlcyIsInRoZW4iLCJuYXZpZ2F0ZSIsImNhdGNoIiwiTG9nIiwiZXJyb3IiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJtZXRhTW9kZWwiLCJjdXJyZW50UGFnZSIsImdldEN1cnJlbnRQYWdlIiwic2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwiY3VycmVudENvbnRleHQiLCJjdXJyZW50UGF0aCIsImdldFBhdGgiLCJjaGFuZ2VkRG9jdW1lbnQiLCJkZWxldGVkT2JqZWN0cyIsInBhcmVudERlbGV0ZWRJbmRleCIsImRlbGV0ZWRPYmplY3QiLCJzdGFydHNXaXRoIiwib25DbG9zZSIsInRhcmdldENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsImdldENvbnRyb2xsZXIiLCJfcm91dGluZyIsIm5hdmlnYXRlQmFja0Zyb21Db250ZXh0IiwiYWN0aW9uTmFtZSIsImNsaWVudFRyaWdnZXJlZEFjdGlvbk5hbWUiLCJiaW5kaW5nUGFyYW1ldGVycyIsImdldE9EYXRhQWN0aW9uU2lkZUVmZmVjdHMiLCJ0YXJnZXRQYXRocyIsInBhdGhFeHByZXNzaW9ucyIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImFjdGl2aXR5UGF0aCIsInJlcGxhY2UiLCJzaWRlRWZmZWN0cyIsIiRQcm9wZXJ0eVBhdGgiLCJlbnRpdHlUeXBlIiwiZ2V0RW50aXR5VHlwZUZyb21Db250ZXh0IiwiZW50aXR5VHlwZVNpZGVFZmZlY3RzIiwiZ2V0T0RhdGFFbnRpdHlTaWRlRWZmZWN0cyIsIm9iamVjdCIsIk9iamVjdCIsInJlbGV2YW50U2lkZUVmZmVjdHMiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJ4IiwiU291cmNlUHJvcGVydGllcyIsInNvdXJjZSIsInZhbHVlIiwiVGFyZ2V0UHJvcGVydGllcyIsInRhcmdldFByb3BlcnR5IiwiZWRpdEZsb3ciLCJ1cGRhdGVEb2N1bWVudCIsIlByb21pc2UiLCJyZXNvbHZlIiwicm91dGluZyIsIkNvbW1vblV0aWxzIiwiZ2V0Q3VycmVudFBhZ2VWaWV3Iiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJkYXRhUGF0aCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWN0aXZpdHlTeW5jLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHtcblx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UsXG5cdGVuZENvbGxhYm9yYXRpb24sXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uLFxuXHRpc0NvbGxhYm9yYXRpb25Db25uZWN0ZWRcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQWN0aXZpdHlCYXNlXCI7XG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2UsIFVzZXIsIFVzZXJBY3Rpdml0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB7IEFjdGl2aXR5LCBDb2xsYWJvcmF0aW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgTWVzc2FnZUJveCBmcm9tIFwic2FwL20vTWVzc2FnZUJveFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFY0Q29udGV4dCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuY29uc3QgTVlBQ1RJVklUWSA9IFwiL2NvbGxhYm9yYXRpb24vbXlBY3Rpdml0eVwiO1xuY29uc3QgQUNUSVZFVVNFUlMgPSBcIi9jb2xsYWJvcmF0aW9uL2FjdGl2ZVVzZXJzXCI7XG5jb25zdCBBQ1RJVklUSUVTID0gXCIvY29sbGFib3JhdGlvbi9hY3Rpdml0aWVzXCI7XG5jb25zdCBTWU5DR1JPVVBJRCA9IFwiJGF1dG8uc3luY1wiO1xuXG5leHBvcnQgY29uc3QgaXNDb25uZWN0ZWQgPSBmdW5jdGlvbiAoY29udHJvbDogQ29udHJvbCk6IGJvb2xlYW4ge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsID0gY29udHJvbC5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0cmV0dXJuIGlzQ29sbGFib3JhdGlvbkNvbm5lY3RlZChpbnRlcm5hbE1vZGVsKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kID0gZnVuY3Rpb24gKFxuXHRjb250cm9sOiBDb250cm9sLFxuXHRhY3Rpb246IEFjdGl2aXR5LFxuXHRjb250ZW50OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcblx0dHJpZ2dlcmVkQWN0aW9uTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZFxuKSB7XG5cdGlmIChpc0Nvbm5lY3RlZChjb250cm9sKSkge1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWwgPSBjb250cm9sLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRcdGNvbnN0IGNsaWVudENvbnRlbnQgPSBBcnJheS5pc0FycmF5KGNvbnRlbnQpID8gY29udGVudC5qb2luKFwifFwiKSA6IGNvbnRlbnQ7XG5cblx0XHRjb25zdCBteUFjdGl2aXR5ID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShNWUFDVElWSVRZKTtcblx0XHRpZiAoYWN0aW9uID09PSBBY3Rpdml0eS5MaXZlQ2hhbmdlKSB7XG5cdFx0XHQvLyBUbyBhdm9pZCB1bm5lY2Vzc2FyeSB0cmFmZmljIHdlIGtlZXAgdHJhY2sgb2YgbGl2ZSBjaGFuZ2VzIGFuZCBzZW5kIGl0IG9ubHkgb25jZVxuXG5cdFx0XHRpZiAobXlBY3Rpdml0eSA9PT0gY2xpZW50Q29udGVudCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KE1ZQUNUSVZJVFksIGNsaWVudENvbnRlbnQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBObyBuZWVkIHRvIHNlbmQgYW4gVW5kbyBtZXNzYWdlIGlmIHRoZXJlJ3Mgbm8gY3VycmVudCBhY3Rpdml0eVxuXHRcdFx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuVW5kbyAmJiBteUFjdGl2aXR5ID09PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gdXNlciBmaW5pc2hlZCB0aGUgYWN0aXZpdHlcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoTVlBQ1RJVklUWSwgbnVsbCk7XG5cdFx0fVxuXG5cdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoYWN0aW9uLCBjbGllbnRDb250ZW50LCBpbnRlcm5hbE1vZGVsLCB0cmlnZ2VyZWRBY3Rpb25OYW1lKTtcblx0fVxufTtcblxuY29uc3QgZ2V0V2ViU29ja2V0QmFzZVVSTCA9IGZ1bmN0aW9uIChiaW5kaW5nQ29udGV4dDogVjRDb250ZXh0KTogc3RyaW5nIHtcblx0cmV0dXJuIGJpbmRpbmdDb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KFwiL0Bjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuV2ViU29ja2V0QmFzZVVSTFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxhYm9yYXRpb25FbmFibGVkID0gZnVuY3Rpb24gKHZpZXc6IFZpZXcpOiBib29sZWFuIHtcblx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3Py5nZXRCaW5kaW5nQ29udGV4dCAmJiAodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIFY0Q29udGV4dCk7XG5cdHJldHVybiAhIShiaW5kaW5nQ29udGV4dCAmJiBnZXRXZWJTb2NrZXRCYXNlVVJMKGJpbmRpbmdDb250ZXh0KSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29ubmVjdCA9IGFzeW5jIGZ1bmN0aW9uICh2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWwgPSB2aWV3LmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRjb25zdCBtZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRNZSh2aWV3KTtcblxuXHQvLyBSZXRyaWV2aW5nIE1FIGZyb20gc2hlbGwgc2VydmljZVxuXHRpZiAoIW1lKSB7XG5cdFx0Ly8gbm8gbWUgPSBubyBzaGVsbCA9IG5vdCBzdXJlIHdoYXQgdG8gZG9cblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBiaW5kaW5nQ29udGV4dCA9IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBWNENvbnRleHQ7XG5cdGNvbnN0IHdlYlNvY2tldEJhc2VVUkwgPSBnZXRXZWJTb2NrZXRCYXNlVVJMKGJpbmRpbmdDb250ZXh0KTtcblx0Y29uc3Qgc2VydmljZVVybCA9IGJpbmRpbmdDb250ZXh0LmdldE1vZGVsKCkuZ2V0U2VydmljZVVybCgpO1xuXG5cdGlmICghd2ViU29ja2V0QmFzZVVSTCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHNEcmFmdFVVSUQgPSBhd2FpdCBiaW5kaW5nQ29udGV4dC5yZXF1ZXN0UHJvcGVydHkoXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdFVVSURcIik7XG5cdGlmICghc0RyYWZ0VVVJRCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uKG1lLCB3ZWJTb2NrZXRCYXNlVVJMLCBzRHJhZnRVVUlELCBzZXJ2aWNlVXJsLCBpbnRlcm5hbE1vZGVsLCAobWVzc2FnZTogTWVzc2FnZSkgPT4ge1xuXHRcdG1lc3NhZ2VSZWNlaXZlKG1lc3NhZ2UsIHZpZXcpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNjb25uZWN0ID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wpIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IGNvbnRyb2wuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdGVuZENvbGxhYm9yYXRpb24oaW50ZXJuYWxNb2RlbCk7XG59O1xuXG5mdW5jdGlvbiBtZXNzYWdlUmVjZWl2ZShtZXNzYWdlOiBNZXNzYWdlLCB2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWw6IGFueSA9IHZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKTtcblx0bGV0IGFjdGl2ZVVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWRVVTRVJTKTtcblx0bGV0IGFjdGl2aXRpZXM6IFVzZXJBY3Rpdml0eVtdO1xuXHRsZXQgYWN0aXZpdHlLZXk6IHN0cmluZztcblx0Y29uc3QgbWV0YVBhdGggPSBjYWxjdWxhdGVNZXRhUGF0aCh2aWV3LCBtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXHRtZXNzYWdlLnVzZXJBY3Rpb24gPSBtZXNzYWdlLnVzZXJBY3Rpb24gfHwgbWVzc2FnZS5jbGllbnRBY3Rpb247XG5cblx0Y29uc3Qgc2VuZGVyOiBVc2VyID0ge1xuXHRcdGlkOiBtZXNzYWdlLnVzZXJJRCxcblx0XHRuYW1lOiBtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbixcblx0XHRpbml0aWFsczogQ29sbGFib3JhdGlvblV0aWxzLmZvcm1hdEluaXRpYWxzKG1lc3NhZ2UudXNlckRlc2NyaXB0aW9uKSxcblx0XHRjb2xvcjogQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcihtZXNzYWdlLnVzZXJJRCwgYWN0aXZlVXNlcnMsIFtdKVxuXHR9O1xuXG5cdGxldCBtYWN0aXZpdHk6IFVzZXJBY3Rpdml0eSA9IHNlbmRlcjtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG5cdHN3aXRjaCAobWVzc2FnZS51c2VyQWN0aW9uKSB7XG5cdFx0Y2FzZSBBY3Rpdml0eS5Kb2luOlxuXHRcdGNhc2UgQWN0aXZpdHkuSm9pbkVjaG86XG5cdFx0XHRpZiAoYWN0aXZlVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBzZW5kZXIuaWQpID09PSAtMSkge1xuXHRcdFx0XHRhY3RpdmVVc2Vycy51bnNoaWZ0KHNlbmRlcik7XG5cdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZFVVNFUlMsIGFjdGl2ZVVzZXJzKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbikge1xuXHRcdFx0XHQvLyB3ZSBlY2hvIG91ciBleGlzdGVuY2UgdG8gdGhlIG5ld2x5IGVudGVyZWQgdXNlciBhbmQgYWxzbyBzZW5kIHRoZSBjdXJyZW50IGFjdGl2aXR5IGlmIHRoZXJlIGlzIGFueVxuXHRcdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShBY3Rpdml0eS5Kb2luRWNobywgaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShNWUFDVElWSVRZKSwgaW50ZXJuYWxNb2RlbCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtZXNzYWdlLnVzZXJBY3Rpb24gPT09IEFjdGl2aXR5LkpvaW5FY2hvKSB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLmNsaWVudENvbnRlbnQpIHtcblx0XHRcdFx0XHQvLyBhbm90aGVyIHVzZXIgd2FzIGFscmVhZHkgdHlwaW5nIHRoZXJlZm9yZSBJIHdhbnQgdG8gc2VlIGhpcyBhY3Rpdml0eSBpbW1lZGlhdGVseS4gQ2FsbGluZyBtZSBhZ2FpbiBhcyBhIGxpdmUgY2hhbmdlXG5cdFx0XHRcdFx0bWVzc2FnZS51c2VyQWN0aW9uID0gQWN0aXZpdHkuTGl2ZUNoYW5nZTtcblx0XHRcdFx0XHRtZXNzYWdlUmVjZWl2ZShtZXNzYWdlLCB2aWV3KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkxlYXZlOlxuXHRcdFx0Ly8gUmVtb3ZpbmcgdGhlIGFjdGl2ZSB1c2VyLiBOb3QgcmVtb3ZpbmcgXCJtZVwiIGlmIEkgaGFkIHRoZSBzY3JlZW4gb3BlbiBpbiBhbm90aGVyIHNlc3Npb25cblx0XHRcdGFjdGl2ZVVzZXJzID0gYWN0aXZlVXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSBzZW5kZXIuaWQgfHwgdXNlci5tZSk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWRVVTRVJTLCBhY3RpdmVVc2Vycyk7XG5cdFx0XHRjb25zdCBhbGxBY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTKSB8fCB7fTtcblx0XHRcdGNvbnN0IHJlbW92ZVVzZXJBY3Rpdml0aWVzID0gZnVuY3Rpb24gKGJhZzogYW55KSB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGJhZykpIHtcblx0XHRcdFx0XHRyZXR1cm4gYmFnLmZpbHRlcigoYWN0aXZpdHkpID0+IGFjdGl2aXR5LmlkICE9PSBzZW5kZXIuaWQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgcCBpbiBiYWcpIHtcblx0XHRcdFx0XHRcdGJhZ1twXSA9IHJlbW92ZVVzZXJBY3Rpdml0aWVzKGJhZ1twXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBiYWc7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRyZW1vdmVVc2VyQWN0aXZpdGllcyhhbGxBY3Rpdml0aWVzKTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUywgYWxsQWN0aXZpdGllcyk7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgQWN0aXZpdHkuQ2hhbmdlOlxuXHRcdFx0Y29uc3QgbWV0YVBhdGhzID0gbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpLm1hcCgocGF0aCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gKHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0bWV0YVBhdGhzLmZvckVhY2goKGN1cnJlbnRNZXRhUGF0aCwgaSkgPT4ge1xuXHRcdFx0XHRjb25zdCBuZXN0ZWVkTWVzc2FnZSA9IHtcblx0XHRcdFx0XHQuLi5tZXNzYWdlLFxuXHRcdFx0XHRcdGNsaWVudENvbnRlbnQ6IG1lc3NhZ2U/LmNsaWVudENvbnRlbnQ/LnNwbGl0KFwifFwiKVtpXVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRsZXQgY3VycmVudEFjdGl2aXRpZXM6IGFueVtdID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgY3VycmVudE1ldGFQYXRoKSB8fCBbXTtcblx0XHRcdFx0YWN0aXZpdHlLZXkgPSBnZXRBY3Rpdml0eUtleShuZXN0ZWVkTWVzc2FnZS5jbGllbnRDb250ZW50KTtcblx0XHRcdFx0Y3VycmVudEFjdGl2aXRpZXMgPSBjdXJyZW50QWN0aXZpdGllcz8uZmlsdGVyICYmIGN1cnJlbnRBY3Rpdml0aWVzLmZpbHRlcigoYWN0aXZpdHkpID0+IGFjdGl2aXR5LmtleSAhPT0gYWN0aXZpdHlLZXkpO1xuXHRcdFx0XHRpZiAoY3VycmVudEFjdGl2aXRpZXMpIHtcblx0XHRcdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWSVRJRVMgKyBjdXJyZW50TWV0YVBhdGgsIGN1cnJlbnRBY3Rpdml0aWVzKTtcblx0XHRcdFx0XHR1cGRhdGUodmlldywgbmVzdGVlZE1lc3NhZ2UsIGN1cnJlbnRNZXRhUGF0aCwgQWN0aXZpdHkuQ2hhbmdlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkNyZWF0ZTpcblx0XHRcdC8vIEZvciBjcmVhdGUgd2UgYWN0dWFsbHkganVzdCBuZWVkIHRvIHJlZnJlc2ggdGhlIHRhYmxlXG5cdFx0XHR1cGRhdGUodmlldywgbWVzc2FnZSwgbWV0YVBhdGgsIEFjdGl2aXR5LkNyZWF0ZSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkRlbGV0ZTpcblx0XHRcdC8vIEZvciBub3cgYWxzbyByZWZyZXNoIHRoZSBwYWdlIGJ1dCBpbiBjYXNlIG9mIGRlbGV0aW9uIHdlIG5lZWQgdG8gaW5mb3JtIHRoZSB1c2VyXG5cdFx0XHR1cGRhdGUodmlldywgbWVzc2FnZSwgbWV0YVBhdGgsIEFjdGl2aXR5LkRlbGV0ZSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkFjdGl2YXRlOlxuXHRcdFx0ZHJhZnRDbG9zZWRCeU90aGVyVXNlcih2aWV3LCBtZXNzYWdlLCBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0FDVElWQVRFXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkRpc2NhcmQ6XG5cdFx0XHRkcmFmdENsb3NlZEJ5T3RoZXJVc2VyKHZpZXcsIG1lc3NhZ2UsIENvbGxhYm9yYXRpb25VdGlscy5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRFwiLCBzZW5kZXIubmFtZSkpO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIEFjdGl2aXR5LkFjdGlvbjpcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuQWN0aW9uKTtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBBY3Rpdml0eS5MaXZlQ2hhbmdlOlxuXHRcdFx0bWFjdGl2aXR5ID0gc2VuZGVyO1xuXHRcdFx0bWFjdGl2aXR5LmtleSA9IGdldEFjdGl2aXR5S2V5KG1lc3NhZ2UuY2xpZW50Q29udGVudCk7XG5cblx0XHRcdC8vIHN0dXBpZCBKU09OIG1vZGVsLi4uXG5cdFx0XHRsZXQgaW5pdEpTT05Nb2RlbDogc3RyaW5nID0gXCJcIjtcblx0XHRcdGNvbnN0IHBhcnRzID0gbWV0YVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDE7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHtcblx0XHRcdFx0aW5pdEpTT05Nb2RlbCArPSBgLyR7cGFydHNbaV19YDtcblx0XHRcdFx0aWYgKCFpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBpbml0SlNPTk1vZGVsKSkge1xuXHRcdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUyArIGluaXRKU09OTW9kZWwsIHt9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgpO1xuXHRcdFx0YWN0aXZpdGllcyA9IGFjdGl2aXRpZXM/LnNsaWNlID8gYWN0aXZpdGllcy5zbGljZSgpIDogW107XG5cdFx0XHRhY3Rpdml0aWVzLnB1c2gobWFjdGl2aXR5KTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUyArIG1ldGFQYXRoLCBhY3Rpdml0aWVzKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuVW5kbzpcblx0XHRcdC8vIFRoZSB1c2VyIGRpZCBhIGNoYW5nZSBidXQgcmV2ZXJ0ZWQgaXQsIHRoZXJlZm9yZSB1bmJsb2NrIHRoZSBjb250cm9sXG5cdFx0XHRhY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgpO1xuXHRcdFx0YWN0aXZpdHlLZXkgPSBnZXRBY3Rpdml0eUtleShtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShcblx0XHRcdFx0QUNUSVZJVElFUyArIG1ldGFQYXRoLFxuXHRcdFx0XHRhY3Rpdml0aWVzLmZpbHRlcigoYSkgPT4gYS5rZXkgIT09IGFjdGl2aXR5S2V5KVxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGRyYWZ0Q2xvc2VkQnlPdGhlclVzZXIodmlldzogVmlldywgbWVzc2FnZTogTWVzc2FnZSwgdGV4dDogc3RyaW5nKSB7XG5cdGRpc2Nvbm5lY3Qodmlldyk7XG5cdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24odGV4dCk7XG5cdCh2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgVjRDb250ZXh0KVxuXHRcdC5nZXRCaW5kaW5nKClcblx0XHQucmVzZXRDaGFuZ2VzKClcblx0XHQudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdH0pXG5cdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdExvZy5lcnJvcihcIlBlbmRpbmcgQ2hhbmdlcyBjb3VsZCBub3QgYmUgcmVzZXQgLSBzdGlsbCBuYXZpZ2F0aW5nIHRvIGFjdGl2ZSBpbnN0YW5jZVwiKTtcblx0XHRcdG5hdmlnYXRlKG1lc3NhZ2UuY2xpZW50Q29udGVudCwgdmlldyk7XG5cdFx0fSk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZSh2aWV3OiBWaWV3LCBtZXNzYWdlOiBNZXNzYWdlLCBtZXRhUGF0aDogc3RyaW5nLCBhY3Rpb246IEFjdGl2aXR5KSB7XG5cdGNvbnN0IGFwcENvbXBvbmVudCA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldyk7XG5cdGNvbnN0IG1ldGFNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0Y29uc3QgY3VycmVudFBhZ2UgPSBnZXRDdXJyZW50UGFnZSh2aWV3KTtcblx0Y29uc3Qgc2lkZUVmZmVjdHNTZXJ2aWNlID0gYXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpO1xuXHRjb25zdCBjdXJyZW50Q29udGV4dCA9IGN1cnJlbnRQYWdlLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdGNvbnN0IGN1cnJlbnRQYXRoID0gY3VycmVudENvbnRleHQuZ2V0UGF0aCgpO1xuXHRjb25zdCBjdXJyZW50TWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgoY3VycmVudFBhdGgpO1xuXHRsZXQgY2hhbmdlZERvY3VtZW50ID0gbWVzc2FnZS5jbGllbnRDb250ZW50O1xuXG5cdGlmIChhY3Rpb24gPT09IEFjdGl2aXR5LkRlbGV0ZSkge1xuXHRcdC8vIGNoZWNrIGlmIHVzZXIgY3VycmVudGx5IGRpc3BsYXlzIG9uZSBkZWxldGVkIG9iamVjdFxuXHRcdGNvbnN0IGRlbGV0ZWRPYmplY3RzID0gbWVzc2FnZS5jbGllbnRDb250ZW50LnNwbGl0KFwifFwiKTtcblx0XHRjb25zdCBwYXJlbnREZWxldGVkSW5kZXggPSBkZWxldGVkT2JqZWN0cy5maW5kSW5kZXgoKGRlbGV0ZWRPYmplY3QpID0+IGN1cnJlbnRQYXRoLnN0YXJ0c1dpdGgoZGVsZXRlZE9iamVjdCkpO1xuXHRcdGlmIChwYXJlbnREZWxldGVkSW5kZXggPiAtMSkge1xuXHRcdFx0Ly8gYW55IG90aGVyIHVzZXIgZGVsZXRlZCB0aGUgb2JqZWN0IEknbSBjdXJyZW50bHkgbG9va2luZyBhdC4gSW5mb3JtIHRoZSB1c2VyIHdlIHdpbGwgbmF2aWdhdGUgdG8gcm9vdCBub3dcblx0XHRcdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24oQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ERUxFVEVcIiwgbWVzc2FnZS51c2VyRGVzY3JpcHRpb24pLCB7XG5cdFx0XHRcdG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRNb2RlbCgpLmJpbmRDb250ZXh0KGRlbGV0ZWRPYmplY3RzW3BhcmVudERlbGV0ZWRJbmRleF0pLmdldEJvdW5kQ29udGV4dCgpO1xuXHRcdFx0XHRcdGN1cnJlbnRQYWdlLmdldENvbnRyb2xsZXIoKS5fcm91dGluZy5uYXZpZ2F0ZUJhY2tGcm9tQ29udGV4dCh0YXJnZXRDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdC8vIFRPRE86IEZvciBub3cganVzdCB0YWtlIHRoZSBmaXJzdCBvYmplY3QgdG8gZ2V0IHRoZSBtZXRhIHBhdGggYW5kIGRvIGEgZnVsbCByZWZyZXNoIG9mIHRoZSB0YWJsZVxuXHRcdGNoYW5nZWREb2N1bWVudCA9IGRlbGV0ZWRPYmplY3RzWzBdO1xuXHR9XG5cblx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuQWN0aW9uKSB7XG5cdFx0Y29uc3QgYWN0aW9uTmFtZSA9IG1lc3NhZ2UuY2xpZW50VHJpZ2dlcmVkQWN0aW9uTmFtZSxcblx0XHRcdGJpbmRpbmdQYXJhbWV0ZXJzID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmdldE9EYXRhQWN0aW9uU2lkZUVmZmVjdHMoYWN0aW9uTmFtZSEsIGN1cnJlbnRDb250ZXh0KSxcblx0XHRcdHRhcmdldFBhdGhzID0gYmluZGluZ1BhcmFtZXRlcnM/LnBhdGhFeHByZXNzaW9ucztcblx0XHRpZiAodGFyZ2V0UGF0aHMgJiYgdGFyZ2V0UGF0aHMubGVuZ3RoID4gMCkge1xuXHRcdFx0c2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyh0YXJnZXRQYXRocywgY3VycmVudENvbnRleHQsIFNZTkNHUk9VUElEKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoY2hhbmdlZERvY3VtZW50LnN0YXJ0c1dpdGgoY3VycmVudFBhdGgpKSB7XG5cdFx0Ly8gRXhlY3V0ZSBTaWRlRWZmZWN0cyAoVE9ETyBmb3IgTWVldCB0aGVyZSBzaG91bGQgYmUgb25lIGNlbnRyYWwgbWV0aG9kKVxuXHRcdGNvbnN0IGFjdGl2aXR5UGF0aCA9IG1ldGFQYXRoLnJlcGxhY2UoY3VycmVudE1ldGFQYXRoLCBcIlwiKS5zbGljZSgxKTtcblx0XHRpZiAoYWN0aXZpdHlQYXRoKSB7XG5cdFx0XHQvLyBSZXF1ZXN0IGFsc28gdGhlIHByb3BlcnR5IGl0c2VsZlxuXHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHM6IGFueVtdID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogYWN0aXZpdHlQYXRoXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmdldEVudGl0eVR5cGVGcm9tQ29udGV4dChjdXJyZW50Q29udGV4dCk7XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlU2lkZUVmZmVjdHMgPSBzaWRlRWZmZWN0c1NlcnZpY2UuZ2V0T0RhdGFFbnRpdHlTaWRlRWZmZWN0cyhlbnRpdHlUeXBlISk7XG5cdFx0XHQvLyBQb29yIG1hbiBzb2x1dGlvbiB3aXRob3V0IGNoZWNraW5nIHNvdXJjZSB0YXJnZXRzLCBqdXN0IGZvciBQT0MsIHRoaXMgaXMgdGhyb3ctd2F5IGNvZGluZyBvbmx5XG5cdFx0XHRjb25zdCBvYmplY3Q6IGFueSA9IE9iamVjdDsgLy8ganVzdCB0byBvdmVyY29tZSBUUyBpc3N1ZXMsIHdpbGwgYmUgYW55d2F5IHJlcGxhY2VkXG5cdFx0XHRjb25zdCByZWxldmFudFNpZGVFZmZlY3RzID0gb2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRvYmplY3Rcblx0XHRcdFx0XHQuZW50cmllcyhlbnRpdHlUeXBlU2lkZUVmZmVjdHMpXG5cdFx0XHRcdFx0LmZpbHRlcigoeDogYW55W10pID0+IHhbMV0uU291cmNlUHJvcGVydGllcz8uZmluZEluZGV4KChzb3VyY2U6IGFueSkgPT4gc291cmNlLnZhbHVlID09PSBhY3Rpdml0eVBhdGgpID4gLTEpXG5cdFx0XHQpO1xuXHRcdFx0Zm9yIChjb25zdCBwIGluIHJlbGV2YW50U2lkZUVmZmVjdHMpIHtcblx0XHRcdFx0cmVsZXZhbnRTaWRlRWZmZWN0c1twXS5UYXJnZXRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHRhcmdldFByb3BlcnR5OiBhbnkpIHtcblx0XHRcdFx0XHRzaWRlRWZmZWN0cy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IHRhcmdldFByb3BlcnR5XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0c2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhzaWRlRWZmZWN0cywgY3VycmVudENvbnRleHQsIFNZTkNHUk9VUElEKTtcblx0XHR9XG5cdH1cblxuXHQvLyBTaW11bGF0ZSBhbnkgY2hhbmdlIHNvIHRoZSBlZGl0IGZsb3cgc2hvd3MgdGhlIGRyYWZ0IGluZGljYXRvciBhbmQgc2V0cyB0aGUgcGFnZSB0byBkaXJ0eVxuXHRjdXJyZW50UGFnZS5nZXRDb250cm9sbGVyKCkuZWRpdEZsb3cudXBkYXRlRG9jdW1lbnQoY3VycmVudENvbnRleHQsIFByb21pc2UucmVzb2x2ZSgpKTtcbn1cblxuZnVuY3Rpb24gbmF2aWdhdGUocGF0aDogc3RyaW5nLCB2aWV3OiBWaWV3KSB7XG5cdC8vIFRPRE86IHJvdXRpbmcubmF2aWdhdGUgZG9lc24ndCBjb25zaWRlciBzZW1hbnRpYyBib29rbWFya2luZ1xuXHRjb25zdCBjdXJyZW50UGFnZSA9IGdldEN1cnJlbnRQYWdlKHZpZXcpO1xuXHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRNb2RlbCgpLmJpbmRDb250ZXh0KHBhdGgpLmdldEJvdW5kQ29udGV4dCgpO1xuXHRjdXJyZW50UGFnZS5nZXRDb250cm9sbGVyKCkucm91dGluZy5uYXZpZ2F0ZSh0YXJnZXRDb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudFBhZ2UodmlldzogVmlldykge1xuXHRjb25zdCBhcHBDb21wb25lbnQgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHZpZXcpO1xuXHRyZXR1cm4gQ29tbW9uVXRpbHMuZ2V0Q3VycmVudFBhZ2VWaWV3KGFwcENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2aXR5S2V5KHg6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiB4LnN1YnN0cmluZyh4Lmxhc3RJbmRleE9mKFwiKFwiKSArIDEsIHgubGFzdEluZGV4T2YoXCIpXCIpKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSBtZXRhcGF0aCBmcm9tIG9uZSBvciBtb3JlIGRhdGEgcGF0aChzKS5cbiAqXG4gKiBAcGFyYW0gdmlldyBUaGUgY3VycmVudCB2aWV3XG4gKiBAcGFyYW0gcGF0aCBPbmUgb3JlIG1vcmUgZGF0YSBwYXRoKHMpLCBpbiBjYXNlIG9mIG11bHRpcGxlIHBhdGhzIHNlcGFyYXRlZCBieSAnfCdcbiAqIEByZXR1cm5zIFRoZSBjYWxjdWxhdGVkIG1ldGFQYXRoXG4gKi9cbmZ1bmN0aW9uIGNhbGN1bGF0ZU1ldGFQYXRoKHZpZXc6IFZpZXcsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRsZXQgbWV0YVBhdGggPSBcIlwiO1xuXHRpZiAocGF0aCkge1xuXHRcdC8vIGluIGNhc2UgbW9yZSB0aGFuIG9uZSBwYXRoIGlzIHNlbnQgYWxsIG9mIHRoZW0gaGF2ZSB0byB1c2UgdGhlIHNhbWUgbWV0YXBhdGggdGhlcmVmb3JlIHdlIGp1c3QgY29uc2lkZXIgdGhlIGZpcnN0IG9uZVxuXHRcdGNvbnN0IGRhdGFQYXRoID0gcGF0aC5zcGxpdChcInxcIilbMF07XG5cdFx0bWV0YVBhdGggPSAodmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsKS5nZXRNZXRhUGF0aChkYXRhUGF0aCk7XG5cdH1cblx0cmV0dXJuIG1ldGFQYXRoO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGNvbm5lY3Q6IGNvbm5lY3QsXG5cdGRpc2Nvbm5lY3Q6IGRpc2Nvbm5lY3QsXG5cdGlzQ29ubmVjdGVkOiBpc0Nvbm5lY3RlZCxcblx0aXNDb2xsYWJvcmF0aW9uRW5hYmxlZDogaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCxcblx0c2VuZDogc2VuZFxufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUFpQkEsTUFBTUEsVUFBVSxHQUFHLDJCQUEyQjtFQUM5QyxNQUFNQyxXQUFXLEdBQUcsNEJBQTRCO0VBQ2hELE1BQU1DLFVBQVUsR0FBRywyQkFBMkI7RUFDOUMsTUFBTUMsV0FBVyxHQUFHLFlBQVk7RUFFekIsTUFBTUMsV0FBVyxHQUFHLFVBQVVDLE9BQWdCLEVBQVc7SUFDL0QsTUFBTUMsYUFBYSxHQUFHRCxPQUFPLENBQUNFLFFBQVEsQ0FBQyxVQUFVLENBQWM7SUFDL0QsT0FBT0Msd0JBQXdCLENBQUNGLGFBQWEsQ0FBQztFQUMvQyxDQUFDO0VBQUM7RUFFSyxNQUFNRyxJQUFJLEdBQUcsVUFDbkJKLE9BQWdCLEVBQ2hC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
|