@sap/open.fe 1.99.0 → 1.100.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/package.json +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +1748 -1813
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +2 -3
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.ts +1801 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +77 -32
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +2 -3
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.ts +26 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +43 -53
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +2 -3
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.ts +39 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +31 -38
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +8 -9
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +23 -71
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +4 -4
- package/packages/sap.fe.common/src/sap/fe/common/library.js +4 -5
- package/packages/sap.fe.common/src/sap/fe/common/library.ts +35 -0
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +54 -32
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +1 -69
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +0 -70
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +388 -399
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent.ts +403 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +127 -158
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +82 -58
- package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/BaseController.ts +68 -0
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +111 -20
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +131 -32
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +278 -274
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.ts +250 -0
- package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +157 -29
- package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +60 -32
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +694 -756
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +11 -9
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +21 -31
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +10 -3
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +20 -38
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1354 -1370
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +33 -22
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync-dbg.js +392 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon-dbg.js +136 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage-dbg.js +262 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +30 -68
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +44 -71
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +55 -36
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +66 -46
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +34 -15
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +48 -18
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +17 -4
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +21 -4
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +69 -66
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1593 -1669
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +79 -54
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +718 -779
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +796 -816
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +1004 -1005
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +487 -521
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +141 -169
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +233 -244
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +301 -336
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +188 -175
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +157 -149
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +144 -125
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +7 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +230 -268
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +592 -633
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +788 -806
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +67 -66
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +90 -75
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +130 -125
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +103 -112
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +122 -135
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -159
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.ts +143 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +45 -39
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -42
- package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +126 -116
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +241 -255
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -141
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +335 -322
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +74 -74
- package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +348 -379
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +19 -16
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +12 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +354 -378
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +6 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +26 -12
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -23
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +118 -53
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +161 -207
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +115 -133
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +20 -6
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +12 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +42 -57
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +25 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +10 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +7 -5
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +92 -98
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +104 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +53 -2
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +50 -54
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.ts +48 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +7 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +323 -309
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +7 -7
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +186 -62
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +5 -4
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +601 -684
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +25 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +5 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +426 -451
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +36 -32
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +644 -738
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +24 -35
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/library.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/library.support.js +22 -33
- package/packages/sap.fe.core/src/sap/fe/core/library.support.ts +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/library.ts +420 -0
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +5 -3
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +22 -5
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +26 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +26 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +30 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +745 -384
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +45 -71
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +154 -192
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +66 -92
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +284 -339
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +67 -102
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +754 -814
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +649 -736
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +567 -592
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +354 -386
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +36 -48
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +93 -85
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +25 -32
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +36 -35
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +37 -24
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1664 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +59 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.controller.js +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.view.xml +18 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/Entities.json +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/service.cds +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldMessages.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +7 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.js +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.ts +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +11 -23
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/Component.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.controller.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.view.xml +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/RootEntity.json +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/service.cds +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/manifest.json +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableMessages.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +5 -4
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +3 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +1 -169
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +0 -212
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +2305 -119
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +2206 -67
- package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.ts +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.js +114 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.ts +114 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.js +113 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.ts +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +599 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +614 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +23 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +26 -14
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +87 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +82 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.js +124 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.ts +141 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +34768 -67
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.js +170 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.ts +155 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.ts +94 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.js +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.ts +77 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +7 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +7 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +104 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +96 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.js +83 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.ts +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.js +72 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.ts +64 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +619 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +668 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +297 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +276 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.js +149 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.ts +142 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.js +776 -182
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +181 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +19 -43
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +2 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +8 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +5 -27
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.js +86 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.ts +80 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.js +45 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.ts +29 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +51 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +47 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/__snapshots__/FilterBar.spec.ts.snap +3 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +25 -36
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +26 -36
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +3 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +6 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +133 -9
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +171 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +174 -210
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +294 -230
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +3 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.js +237 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.ts +246 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.js +9993 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.ts +11352 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.js +460 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.ts +543 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.js +616 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.ts +711 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/manifest.json +887 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.js +393 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.ts +434 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.js +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.ts +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +27 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/manifest.json +150 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata.xml +365 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_groupable_options.xml +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_textArrangement.xml +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_withPV.xml +359 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +89 -27
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.js +421 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.ts +413 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/aggregatedSD/metadata.xml +3767 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/manifest.json +185 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/metadata.xml +1534 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/manifest.json +887 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata_qunit.xml +4995 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.js +48 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.ts +48 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +131 -51
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +81 -31
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +13 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +12 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +17 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +24 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +61 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +59 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +3 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +4 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.ts +6 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +0 -73
- package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +11 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +15 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +30 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +49 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +60 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.js +384 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.ts +427 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +132 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +156 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.js +273 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.ts +402 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.js +45 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.ts +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -1
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -102
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.100.json +326 -0
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +0 -22
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +22 -43
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +14 -24
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +3 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +16 -18
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +162 -100
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +93 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +16 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +58 -83
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +16 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +112 -192
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +4 -20
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +10 -31
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +147 -162
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +32 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +56 -74
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +90 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +284 -251
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +126 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +38 -101
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +68 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +72 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +67 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +1 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +62 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +104 -50
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.ts +68 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +83 -35
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.ts +66 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +327 -216
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.ts +303 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollaborationAvatar.fragment.xml +15 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +14 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +18 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +12 -29
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +9 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +529 -533
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.ts +568 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +0 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +3 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +13 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +4 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +38 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +1 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +55 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +12 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +26 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +10 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +4 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +31 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +20 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +7 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +90 -118
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +13 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +185 -214
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +4 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +273 -199
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +2 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +13 -20
- package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +5 -110
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +98 -78
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +211 -10
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -45
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +0 -60
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.js +78 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.ts +71 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +35 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +44 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +0 -76
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +27 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +28 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +10 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +10 -10
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +129 -15
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +13 -39
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.js +119 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.ts +113 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +166 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +190 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +457 -389
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +504 -425
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +104 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +158 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +0 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +5 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +114 -25
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +40 -40
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +4 -8
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +19 -19
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +12 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +89 -90
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1314 -58
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableMacro.spec.ts.snap +459 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +18 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +6 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +107 -106
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableAPI.cds +197 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +33 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +30 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +72 -29
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +86 -18
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +51 -27
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +55 -9
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +46 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +28 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +170 -43
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +131 -15
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +90 -53
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +2 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +1 -99
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +15 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +265 -106
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +38 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.100.json +372 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +0 -11
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
- package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +8 -8
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +27 -27
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.less +400 -99
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.source.less +400 -99
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/resources.json +2 -2
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +7 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +22 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +13 -18
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +7 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +3 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +50 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +1 -12
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +50 -17
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +7 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +3 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +19 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +36 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +1 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +3 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +3 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +4 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +22 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +14 -14
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +115 -89
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +353 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.js +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +3 -3
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +4 -4
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +2 -2
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +2 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +2 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +7 -7
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +30 -61
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.100.json +192 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +0 -11
- package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +8 -8
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +6 -4
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +10 -6
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +126 -203
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +17 -2
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +9 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +2 -2
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +9 -18
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +18 -18
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +0 -271
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["../ManifestSettings","sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/helpers/BindingExpression","sap/fe/core/converters/helpers/Key","sap/fe/core/templating/DataModelPathHelper","../helpers/BindingHelper"],function(M,A,C,B,K,D,a){"use strict";var _={};var U=a.UI;var s=a.singletonPathVisitor;var b=a.Draft;var i=D.isPathDeletable;var c=K.KeyHelper;var d=B.constant;var e=B.ifElse;var f=B.and;var g=B.fn;var h=B.equal;var n=B.not;var j=B.compileBinding;var k=B.annotationExpression;var P=C.Placement;var l=A.getSemanticObjectMapping;var m=A.getEnabledForAnnotationAction;var o=A.ButtonType;var p=M.ActionType;function q(E,F){var G,H,J;return((G=E.annotations)===null||G===void 0?void 0:(H=G.UI)===null||H===void 0?void 0:(J=H.Identification)===null||J===void 0?void 0:J.filter(function(L){var N,O,Q;if((L===null||L===void 0?void 0:(N=L.annotations)===null||N===void 0?void 0:(O=N.UI)===null||O===void 0?void 0:(Q=O.Hidden)===null||Q===void 0?void 0:Q.valueOf())!==true){var R,S,T,V,W;if((L===null||L===void 0?void 0:L.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&!!L.Determining===F&&(!(L!==null&&L!==void 0&&(R=L.ActionTarget)!==null&&R!==void 0&&R.isBound)||(L===null||L===void 0?void 0:(S=L.ActionTarget)===null||S===void 0?void 0:(T=S.annotations)===null||T===void 0?void 0:(V=T.Core)===null||V===void 0?void 0:(W=V.OperationAvailable)===null||W===void 0?void 0:W.valueOf())!==false)){return true;}}return false;}))||[];}_.getIdentificationDataFieldForActions=q;function r(E,F){var G,H,J;return((G=E.annotations)===null||G===void 0?void 0:(H=G.UI)===null||H===void 0?void 0:(J=H.Identification)===null||J===void 0?void 0:J.filter(function(L){var N,O,Q;if((L===null||L===void 0?void 0:(N=L.annotations)===null||N===void 0?void 0:(O=N.UI)===null||O===void 0?void 0:(Q=O.Hidden)===null||Q===void 0?void 0:Q.valueOf())!==true){if((L===null||L===void 0?void 0:L.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&!!L.Determining===F){return true;}}return false;}))||[];}var I=["UI.CriticalityType/VeryPositive","UI.CriticalityType/Positive","UI.CriticalityType/Negative","UI.CriticalityType/VeryNegative"];function t(E,F){var G=E.getDataModelObjectPath(),H=G.navigationProperties.map(function(Q){return Q.name;}),J=k(F,H,undefined,function(Q){return s(Q,E,[]);}),L=E.getManifestWrapper(),N=L.getViewLevel(),O=N>1?U.IsEditable:n(U.IsEditable);return e(F===undefined||F.valueOf()===false,O,f(O,h(J,false)));}_.getDeleteButtonVisibility=t;function u(E,F){return e(F!==undefined,F,e(E!==undefined,h(E,true),d(true)));}_.getDeleteButtonEnabled=u;function v(E,F){var G;var H=E.getEntitySet(),J=H&&(G=H.annotations.Common)!==null&&G!==void 0&&G.DraftRoot?true:false,L=E.getDataModelObjectPath(),N=L.navigationProperties.map(function(S){return S.name;}),O=k(F,N,undefined,function(S){return s(S,E,N);}),Q=n(U.IsEditable);var R=e(F===undefined||F.valueOf()===false,Q,f(Q,h(O,false)));return e(J,f(R,b.HasNoDraftForCurrentUser),R);}_.getEditButtonVisibility=v;function w(E){var F,G;var H=E.getEntitySet(),J=H&&(F=H.annotations.Common)!==null&&F!==void 0&&F.DraftRoot?true:false,L=H&&(G=H.annotations.Session)!==null&&G!==void 0&&G.StickySessionSupported?true:false;var N;if(J){var O,Q;N=H===null||H===void 0?void 0:(O=H.annotations.Common)===null||O===void 0?void 0:(Q=O.DraftRoot)===null||Q===void 0?void 0:Q.EditAction;}else if(L){var R,S;N=H===null||H===void 0?void 0:(R=H.annotations.Session)===null||R===void 0?void 0:(S=R.StickySessionSupported)===null||S===void 0?void 0:S.EditAction;}if(N){var T,V;var W=E.getAbsoluteAnnotationPath(N),X=(T=E.getEntityTypeAnnotation(W))===null||T===void 0?void 0:(V=T.annotation)===null||V===void 0?void 0:V.actions;if(X!==null&&X!==void 0&&X.length){var Y,Z;var $=X[0];if(($===null||$===void 0?void 0:(Y=$.annotations)===null||Y===void 0?void 0:(Z=Y.Core)===null||Z===void 0?void 0:Z.OperationAvailable)===null){return"{= ${#"+N+"} ? true : false }";}else{return m(E,$);}}}return true;}_.getEditButtonEnabled=w;function x(E){var F,G,H,J,L,N,O,Q;var R=E.getEntitySet(),S=E.getEntityType(),T=R&&((F=R.annotations)===null||F===void 0?void 0:(G=F.Session)===null||G===void 0?void 0:G.StickySessionSupported),V=R&&((H=R.annotations.Common)===null||H===void 0?void 0:H.DraftRoot),W=R&&((J=R.annotations)===null||J===void 0?void 0:(L=J.Capabilities)===null||L===void 0?void 0:L.DeleteRestrictions),X=R&&((N=R.annotations.UI)===null||N===void 0?void 0:(O=N.UpdateHidden)===null||O===void 0?void 0:O.valueOf()),Y=E.getDataModelObjectPath(),Z=i(Y),$=Z?j(Z):Z,a1=q(E.getEntityType(),false);var b1=a1.filter(function(n1){return I.indexOf(n1===null||n1===void 0?void 0:n1.Criticality)>-1;}).map(function(n1){var o1,p1;return{type:p.DataFieldForAction,annotationPath:E.getEntitySetBasedAnnotationPath(n1.fullyQualifiedName),key:c.generateKeyFromDataField(n1),visible:j(n(h(k((o1=n1.annotations)===null||o1===void 0?void 0:(p1=o1.UI)===null||p1===void 0?void 0:p1.Hidden),true))),enabled:m(E,n1.ActionTarget),isNavigable:true};});if((V!==null&&V!==void 0&&V.EditAction||T!==null&&T!==void 0&&T.EditAction)&&X!==true){var c1,d1,e1,f1;var g1=(R===null||R===void 0?void 0:(c1=R.annotations.UI)===null||c1===void 0?void 0:(d1=c1.UpdateHidden)===null||d1===void 0?void 0:d1.valueOf())!==undefined?R===null||R===void 0?void 0:(e1=R.annotations.UI)===null||e1===void 0?void 0:e1.UpdateHidden:S===null||S===void 0?void 0:(f1=S.annotations.UI)===null||f1===void 0?void 0:f1.UpdateHidden;b1.push({type:p.Primary,key:"EditAction",visible:j(v(E,g1)),enabled:w(E)});}if($&&$!=="false"||(W===null||W===void 0?void 0:(Q=W.Deletable)===null||Q===void 0?void 0:Q.valueOf())!==false&&$!=="false"){var h1,i1,j1,k1;var l1=(R===null||R===void 0?void 0:(h1=R.annotations.UI)===null||h1===void 0?void 0:(i1=h1.DeleteHidden)===null||i1===void 0?void 0:i1.valueOf())!==undefined?R===null||R===void 0?void 0:(j1=R.annotations.UI)===null||j1===void 0?void 0:j1.DeleteHidden:S===null||S===void 0?void 0:(k1=S.annotations.UI)===null||k1===void 0?void 0:k1.DeleteHidden;b1.push({type:p.Secondary,key:"DeleteAction",visible:j(t(E,l1)),enabled:j(u(W===null||W===void 0?void 0:W.Deletable,Z)),parentEntityDeleteEnabled:$});}if(V!==null&&V!==void 0&&V.EditAction&&X!==true){b1.push({type:p.SwitchToActiveObject,key:"SwitchToActiveObject"});b1.push({type:p.SwitchToDraftObject,key:"SwitchToDraftObject"});}var m1=r(E.getEntityType(),false);m1.filter(function(n1){return I.indexOf(n1===null||n1===void 0?void 0:n1.Criticality)===-1;}).forEach(function(n1){var o1,p1,q1,r1,s1,t1,u1;var v1={semanticObjectMapping:n1.Mapping?l(n1.Mapping):[]};if(((o1=n1.RequiresContext)===null||o1===void 0?void 0:o1.valueOf())===true){throw new Error("RequiresContext property should not be true for header IBN action : "+n1.Label);}else if(((p1=n1.Inline)===null||p1===void 0?void 0:p1.valueOf())===true){throw new Error("Inline property should not be true for header IBN action : "+n1.Label);}b1.push({type:p.DataFieldForIntentBasedNavigation,text:(q1=n1.Label)===null||q1===void 0?void 0:q1.toString(),annotationPath:E.getEntitySetBasedAnnotationPath(n1.fullyQualifiedName),buttonType:o.Ghost,visible:j(n(h(k((r1=n1.annotations)===null||r1===void 0?void 0:(s1=r1.UI)===null||s1===void 0?void 0:(t1=s1.Hidden)===null||t1===void 0?void 0:t1.valueOf()),true))),enabled:n1.NavigationAvailable!==undefined?j(h(k((u1=n1.NavigationAvailable)===null||u1===void 0?void 0:u1.valueOf()),true)):true,key:c.generateKeyFromDataField(n1),isNavigable:true,press:j(g("._intentBasedNavigation.navigate",[k(n1.SemanticObject),k(n1.Action),v1])),customData:j({semanticObject:k(n1.SemanticObject),action:k(n1.Action)})});});a1.filter(function(n1){return I.indexOf(n1===null||n1===void 0?void 0:n1.Criticality)===-1;}).forEach(function(n1){var o1,p1;b1.push({type:p.DataFieldForAction,annotationPath:E.getEntitySetBasedAnnotationPath(n1.fullyQualifiedName),key:c.generateKeyFromDataField(n1),visible:j(n(h(k((o1=n1.annotations)===null||o1===void 0?void 0:(p1=o1.UI)===null||p1===void 0?void 0:p1.Hidden),true))),enabled:m(E,n1.ActionTarget),isNavigable:true});});return b1;}_.getHeaderDefaultActions=x;function y(E){var F,G,H;var J=E.getEntityType();var L=((F=J.annotations)===null||F===void 0?void 0:(G=F.UI)===null||G===void 0?void 0:(H=G.Identification)===null||H===void 0?void 0:H.filter(function(N){var O,Q,R;return(N===null||N===void 0?void 0:(O=N.annotations)===null||O===void 0?void 0:(Q=O.UI)===null||Q===void 0?void 0:(R=Q.Hidden)===null||R===void 0?void 0:R.valueOf())===true;}))||[];return L.map(function(N){return{type:p.Default,key:c.generateKeyFromDataField(N)};});}_.getHiddenHeaderActions=y;function z(E,F){var G,H,J,L,N,O,Q;var R=F.getEntitySet();var S=F.getEntityType();var T=R&&((G=R.annotations)===null||G===void 0?void 0:(H=G.Session)===null||H===void 0?void 0:H.StickySessionSupported),V=R&&(((J=R.annotations.Common)===null||J===void 0?void 0:(L=J.DraftRoot)===null||L===void 0?void 0:L.term)||((N=R.annotations)===null||N===void 0?void 0:(O=N.Session)===null||O===void 0?void 0:(Q=O.StickySessionSupported)===null||Q===void 0?void 0:Q.term)),W=V==="com.sap.vocabularies.Common.v1.DraftRoot"||T&&(T===null||T===void 0?void 0:T.SaveAction),X=E>1,Y=V==="com.sap.vocabularies.Common.v1.DraftRoot"||T&&(T===null||T===void 0?void 0:T.DiscardAction);var Z=q(F.getEntityType(),true);var $=Z.filter(function(a1){return I.indexOf(a1===null||a1===void 0?void 0:a1.Criticality)>-1;}).map(function(a1){var b1,c1;return{type:p.DataFieldForAction,annotationPath:F.getEntitySetBasedAnnotationPath(a1.fullyQualifiedName),key:c.generateKeyFromDataField(a1),visible:j(n(h(k((b1=a1.annotations)===null||b1===void 0?void 0:(c1=b1.UI)===null||c1===void 0?void 0:c1.Hidden),true))),enabled:m(F,a1.ActionTarget),isNavigable:true};});if((R===null||R===void 0?void 0:R.entityTypeName)===(S===null||S===void 0?void 0:S.fullyQualifiedName)&&W){$.push({type:p.Primary,key:"SaveAction"});}if(X){$.push({type:p.DefaultApply,key:"ApplyAction"});}Z.filter(function(a1){return I.indexOf(a1===null||a1===void 0?void 0:a1.Criticality)===-1;}).forEach(function(a1){var b1,c1;$.push({type:p.DataFieldForAction,annotationPath:F.getEntitySetBasedAnnotationPath(a1.fullyQualifiedName),key:c.generateKeyFromDataField(a1),visible:j(n(h(k((b1=a1.annotations)===null||b1===void 0?void 0:(c1=b1.UI)===null||c1===void 0?void 0:c1.Hidden),true))),enabled:m(F,a1.ActionTarget),isNavigable:true});});if(Y){$.push({type:p.Secondary,key:"CancelAction",position:{placement:P.End}});}return $;}_.getFooterDefaultActions=z;return _;},false);
|
|
5
|
+
sap.ui.define(["../ManifestSettings","sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/helpers/BindingExpression","sap/fe/core/converters/helpers/Key","sap/fe/core/templating/DataModelPathHelper","../helpers/BindingHelper"],function(M,A,C,B,K,D,a){"use strict";var _={};var U=a.UI;var s=a.singletonPathVisitor;var b=a.Draft;var i=D.isPathDeletable;var c=K.KeyHelper;var d=B.constant;var e=B.ifElse;var f=B.and;var g=B.fn;var h=B.equal;var n=B.not;var j=B.compileBinding;var k=B.annotationExpression;var P=C.Placement;var l=A.getSemanticObjectMapping;var m=A.getEnabledForAnnotationAction;var o=A.ButtonType;var p=M.ActionType;function q(E,F){var G,H,J;return((G=E.annotations)===null||G===void 0?void 0:(H=G.UI)===null||H===void 0?void 0:(J=H.Identification)===null||J===void 0?void 0:J.filter(function(L){var N,O,Q;if((L===null||L===void 0?void 0:(N=L.annotations)===null||N===void 0?void 0:(O=N.UI)===null||O===void 0?void 0:(Q=O.Hidden)===null||Q===void 0?void 0:Q.valueOf())!==true){var R,S,T,V,W;if((L===null||L===void 0?void 0:L.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&!!L.Determining===F&&(!(L!==null&&L!==void 0&&(R=L.ActionTarget)!==null&&R!==void 0&&R.isBound)||(L===null||L===void 0?void 0:(S=L.ActionTarget)===null||S===void 0?void 0:(T=S.annotations)===null||T===void 0?void 0:(V=T.Core)===null||V===void 0?void 0:(W=V.OperationAvailable)===null||W===void 0?void 0:W.valueOf())!==false)){return true;}}return false;}))||[];}_.getIdentificationDataFieldForActions=q;function r(E,F){var G,H,J;return((G=E.annotations)===null||G===void 0?void 0:(H=G.UI)===null||H===void 0?void 0:(J=H.Identification)===null||J===void 0?void 0:J.filter(function(L){var N,O,Q;if((L===null||L===void 0?void 0:(N=L.annotations)===null||N===void 0?void 0:(O=N.UI)===null||O===void 0?void 0:(Q=O.Hidden)===null||Q===void 0?void 0:Q.valueOf())!==true){if((L===null||L===void 0?void 0:L.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&!!L.Determining===F){return true;}}return false;}))||[];}var I=["UI.CriticalityType/VeryPositive","UI.CriticalityType/Positive","UI.CriticalityType/Negative","UI.CriticalityType/VeryNegative"];function t(E,F){var G=E.getDataModelObjectPath(),H=G.navigationProperties.map(function(Q){return Q.name;}),J=k(F,H,undefined,function(Q){return s(Q,E.getConvertedTypes(),[]);}),L=E.getManifestWrapper(),N=L.getViewLevel(),O=N>1?U.IsEditable:n(U.IsEditable);return e(F===undefined||F.valueOf()===false,O,f(O,h(J,false)));}_.getDeleteButtonVisibility=t;function u(E,F){return e(F!==undefined,F,e(E!==undefined,h(E,true),d(true)));}_.getDeleteButtonEnabled=u;function v(E,F){var G;var H=E.getEntitySet(),J=H&&(G=H.annotations.Common)!==null&&G!==void 0&&G.DraftRoot?true:false,L=E.getDataModelObjectPath(),N=L.navigationProperties.map(function(S){return S.name;}),O=k(F,N,undefined,function(S){return s(S,E.getConvertedTypes(),N);}),Q=n(U.IsEditable);var R=e(F===undefined||F.valueOf()===false,Q,f(Q,h(O,false)));return e(J,f(R,b.HasNoDraftForCurrentUser),R);}_.getEditButtonVisibility=v;function w(E){var F,G;var H=E.getEntitySet(),J=H&&(F=H.annotations.Common)!==null&&F!==void 0&&F.DraftRoot?true:false,L=H&&(G=H.annotations.Session)!==null&&G!==void 0&&G.StickySessionSupported?true:false;var N;if(J){var O,Q;N=H===null||H===void 0?void 0:(O=H.annotations.Common)===null||O===void 0?void 0:(Q=O.DraftRoot)===null||Q===void 0?void 0:Q.EditAction;}else if(L){var R,S;N=H===null||H===void 0?void 0:(R=H.annotations.Session)===null||R===void 0?void 0:(S=R.StickySessionSupported)===null||S===void 0?void 0:S.EditAction;}if(N){var T,V;var W=E.getAbsoluteAnnotationPath(N),X=(T=E.getEntityTypeAnnotation(W))===null||T===void 0?void 0:(V=T.annotation)===null||V===void 0?void 0:V.actions;if(X!==null&&X!==void 0&&X.length){var Y,Z;var $=X[0];if(($===null||$===void 0?void 0:(Y=$.annotations)===null||Y===void 0?void 0:(Z=Y.Core)===null||Z===void 0?void 0:Z.OperationAvailable)===null){return"{= ${#"+N+"} ? true : false }";}else{return m(E,$);}}}return true;}_.getEditButtonEnabled=w;function x(E){var F,G,H,J,L,N,O,Q;var R=E.getEntitySet(),S=E.getEntityType(),T=R&&((F=R.annotations)===null||F===void 0?void 0:(G=F.Session)===null||G===void 0?void 0:G.StickySessionSupported),V=R&&((H=R.annotations.Common)===null||H===void 0?void 0:H.DraftRoot),W=R&&((J=R.annotations)===null||J===void 0?void 0:(L=J.Capabilities)===null||L===void 0?void 0:L.DeleteRestrictions),X=R&&((N=R.annotations.UI)===null||N===void 0?void 0:(O=N.UpdateHidden)===null||O===void 0?void 0:O.valueOf()),Y=E.getDataModelObjectPath(),Z=i(Y,{pathVisitor:function(n1,o1){return s(n1,E.getConvertedTypes(),o1);}}),$=Z?j(Z):Z,a1=q(E.getEntityType(),false);var b1=a1.filter(function(n1){return I.indexOf(n1===null||n1===void 0?void 0:n1.Criticality)>-1;}).map(function(n1){var o1,p1;return{type:p.DataFieldForAction,annotationPath:E.getEntitySetBasedAnnotationPath(n1.fullyQualifiedName),key:c.generateKeyFromDataField(n1),visible:j(n(h(k((o1=n1.annotations)===null||o1===void 0?void 0:(p1=o1.UI)===null||p1===void 0?void 0:p1.Hidden),true))),enabled:m(E,n1.ActionTarget),isNavigable:true};});if((V!==null&&V!==void 0&&V.EditAction||T!==null&&T!==void 0&&T.EditAction)&&X!==true){var c1,d1,e1,f1;var g1=(R===null||R===void 0?void 0:(c1=R.annotations.UI)===null||c1===void 0?void 0:(d1=c1.UpdateHidden)===null||d1===void 0?void 0:d1.valueOf())!==undefined?R===null||R===void 0?void 0:(e1=R.annotations.UI)===null||e1===void 0?void 0:e1.UpdateHidden:S===null||S===void 0?void 0:(f1=S.annotations.UI)===null||f1===void 0?void 0:f1.UpdateHidden;b1.push({type:p.Primary,key:"EditAction",visible:j(v(E,g1)),enabled:w(E)});}if($&&$!=="false"||(W===null||W===void 0?void 0:(Q=W.Deletable)===null||Q===void 0?void 0:Q.valueOf())!==false&&$!=="false"){var h1,i1,j1,k1;var l1=(R===null||R===void 0?void 0:(h1=R.annotations.UI)===null||h1===void 0?void 0:(i1=h1.DeleteHidden)===null||i1===void 0?void 0:i1.valueOf())!==undefined?R===null||R===void 0?void 0:(j1=R.annotations.UI)===null||j1===void 0?void 0:j1.DeleteHidden:S===null||S===void 0?void 0:(k1=S.annotations.UI)===null||k1===void 0?void 0:k1.DeleteHidden;b1.push({type:p.Secondary,key:"DeleteAction",visible:j(t(E,l1)),enabled:j(u(W===null||W===void 0?void 0:W.Deletable,Z)),parentEntityDeleteEnabled:$});}if(V!==null&&V!==void 0&&V.EditAction&&X!==true){b1.push({type:p.SwitchToActiveObject,key:"SwitchToActiveObject"});b1.push({type:p.SwitchToDraftObject,key:"SwitchToDraftObject"});}var m1=r(E.getEntityType(),false);m1.filter(function(n1){return I.indexOf(n1===null||n1===void 0?void 0:n1.Criticality)===-1;}).forEach(function(n1){var o1,p1,q1,r1,s1,t1,u1;var v1={semanticObjectMapping:n1.Mapping?l(n1.Mapping):[]};if(((o1=n1.RequiresContext)===null||o1===void 0?void 0:o1.valueOf())===true){throw new Error("RequiresContext property should not be true for header IBN action : "+n1.Label);}else if(((p1=n1.Inline)===null||p1===void 0?void 0:p1.valueOf())===true){throw new Error("Inline property should not be true for header IBN action : "+n1.Label);}b1.push({type:p.DataFieldForIntentBasedNavigation,text:(q1=n1.Label)===null||q1===void 0?void 0:q1.toString(),annotationPath:E.getEntitySetBasedAnnotationPath(n1.fullyQualifiedName),buttonType:o.Ghost,visible:j(n(h(k((r1=n1.annotations)===null||r1===void 0?void 0:(s1=r1.UI)===null||s1===void 0?void 0:(t1=s1.Hidden)===null||t1===void 0?void 0:t1.valueOf()),true))),enabled:n1.NavigationAvailable!==undefined?j(h(k((u1=n1.NavigationAvailable)===null||u1===void 0?void 0:u1.valueOf()),true)):true,key:c.generateKeyFromDataField(n1),isNavigable:true,press:j(g("._intentBasedNavigation.navigate",[k(n1.SemanticObject),k(n1.Action),v1])),customData:j({semanticObject:k(n1.SemanticObject),action:k(n1.Action)})});});a1.filter(function(n1){return I.indexOf(n1===null||n1===void 0?void 0:n1.Criticality)===-1;}).forEach(function(n1){var o1,p1;b1.push({type:p.DataFieldForAction,annotationPath:E.getEntitySetBasedAnnotationPath(n1.fullyQualifiedName),key:c.generateKeyFromDataField(n1),visible:j(n(h(k((o1=n1.annotations)===null||o1===void 0?void 0:(p1=o1.UI)===null||p1===void 0?void 0:p1.Hidden),true))),enabled:m(E,n1.ActionTarget),isNavigable:true});});return b1;}_.getHeaderDefaultActions=x;function y(E){var F,G,H;var J=E.getEntityType();var L=((F=J.annotations)===null||F===void 0?void 0:(G=F.UI)===null||G===void 0?void 0:(H=G.Identification)===null||H===void 0?void 0:H.filter(function(N){var O,Q,R;return(N===null||N===void 0?void 0:(O=N.annotations)===null||O===void 0?void 0:(Q=O.UI)===null||Q===void 0?void 0:(R=Q.Hidden)===null||R===void 0?void 0:R.valueOf())===true;}))||[];return L.map(function(N){return{type:p.Default,key:c.generateKeyFromDataField(N)};});}_.getHiddenHeaderActions=y;function z(E,F){var G,H,J,L,N,O,Q;var R=F.getEntitySet();var S=F.getEntityType();var T=R&&((G=R.annotations)===null||G===void 0?void 0:(H=G.Session)===null||H===void 0?void 0:H.StickySessionSupported),V=R&&(((J=R.annotations.Common)===null||J===void 0?void 0:(L=J.DraftRoot)===null||L===void 0?void 0:L.term)||((N=R.annotations)===null||N===void 0?void 0:(O=N.Session)===null||O===void 0?void 0:(Q=O.StickySessionSupported)===null||Q===void 0?void 0:Q.term)),W=V==="com.sap.vocabularies.Common.v1.DraftRoot"||T&&(T===null||T===void 0?void 0:T.SaveAction),X=E>1,Y=V==="com.sap.vocabularies.Common.v1.DraftRoot"||T&&(T===null||T===void 0?void 0:T.DiscardAction);var Z=q(F.getEntityType(),true);var $=Z.filter(function(a1){return I.indexOf(a1===null||a1===void 0?void 0:a1.Criticality)>-1;}).map(function(a1){var b1,c1;return{type:p.DataFieldForAction,annotationPath:F.getEntitySetBasedAnnotationPath(a1.fullyQualifiedName),key:c.generateKeyFromDataField(a1),visible:j(n(h(k((b1=a1.annotations)===null||b1===void 0?void 0:(c1=b1.UI)===null||c1===void 0?void 0:c1.Hidden),true))),enabled:m(F,a1.ActionTarget),isNavigable:true};});if((R===null||R===void 0?void 0:R.entityTypeName)===(S===null||S===void 0?void 0:S.fullyQualifiedName)&&W){$.push({type:p.Primary,key:"SaveAction"});}if(X){$.push({type:p.DefaultApply,key:"ApplyAction"});}Z.filter(function(a1){return I.indexOf(a1===null||a1===void 0?void 0:a1.Criticality)===-1;}).forEach(function(a1){var b1,c1;$.push({type:p.DataFieldForAction,annotationPath:F.getEntitySetBasedAnnotationPath(a1.fullyQualifiedName),key:c.generateKeyFromDataField(a1),visible:j(n(h(k((b1=a1.annotations)===null||b1===void 0?void 0:(c1=b1.UI)===null||c1===void 0?void 0:c1.Hidden),true))),enabled:m(F,a1.ActionTarget),isNavigable:true});});if(Y){$.push({type:p.Secondary,key:"CancelAction",position:{placement:P.End}});}return $;}_.getFooterDefaultActions=z;return _;},false);
|
|
@@ -56,6 +56,7 @@ export function getIdentificationDataFieldForActions(entityType: EntityType, bDe
|
|
|
56
56
|
* Retrieve all the IBN actions for the identification annotation.
|
|
57
57
|
* They must be
|
|
58
58
|
* - Not statically hidden.
|
|
59
|
+
*
|
|
59
60
|
* @param {EntityType} entityType The current entitytype
|
|
60
61
|
* @param {boolean} bDetermining Whether or not the action should be determining
|
|
61
62
|
* @returns {DataFieldForIntentBasedNavigationTypes[]} An array of datafield for action respecting the bDetermining property.
|
|
@@ -101,7 +102,7 @@ export function getDeleteButtonVisibility(
|
|
|
101
102
|
deleteHidden,
|
|
102
103
|
visitedNavigationPaths,
|
|
103
104
|
undefined,
|
|
104
|
-
(path: string) => singletonPathVisitor(path, converterContext, [])
|
|
105
|
+
(path: string) => singletonPathVisitor(path, converterContext.getConvertedTypes(), [])
|
|
105
106
|
),
|
|
106
107
|
manifestWrapper = converterContext.getManifestWrapper(),
|
|
107
108
|
viewLevel = manifestWrapper.getViewLevel(),
|
|
@@ -160,7 +161,7 @@ export function getEditButtonVisibility(
|
|
|
160
161
|
updateHidden,
|
|
161
162
|
visitedNavigationPaths,
|
|
162
163
|
undefined,
|
|
163
|
-
(path: string) => singletonPathVisitor(path, converterContext, visitedNavigationPaths)
|
|
164
|
+
(path: string) => singletonPathVisitor(path, converterContext.getConvertedTypes(), visitedNavigationPaths)
|
|
164
165
|
),
|
|
165
166
|
notEditableExpression: Expression<boolean> = not(UI.IsEditable);
|
|
166
167
|
|
|
@@ -208,6 +209,10 @@ export function getEditButtonEnabled(converterContext: ConverterContext): Bindin
|
|
|
208
209
|
return true;
|
|
209
210
|
}
|
|
210
211
|
|
|
212
|
+
/**
|
|
213
|
+
* @param converterContext
|
|
214
|
+
* @returns {BaseAction[]}
|
|
215
|
+
*/
|
|
211
216
|
export function getHeaderDefaultActions(converterContext: ConverterContext): BaseAction[] {
|
|
212
217
|
const entitySet = converterContext.getEntitySet(),
|
|
213
218
|
entityType = converterContext.getEntityType(),
|
|
@@ -216,7 +221,10 @@ export function getHeaderDefaultActions(converterContext: ConverterContext): Bas
|
|
|
216
221
|
oEntityDeleteRestrictions = entitySet && entitySet.annotations?.Capabilities?.DeleteRestrictions,
|
|
217
222
|
bUpdateHidden = entitySet && entitySet.annotations.UI?.UpdateHidden?.valueOf(),
|
|
218
223
|
dataModelObjectPath = converterContext.getDataModelObjectPath(),
|
|
219
|
-
isParentDeletable = isPathDeletable(dataModelObjectPath
|
|
224
|
+
isParentDeletable = isPathDeletable(dataModelObjectPath, {
|
|
225
|
+
pathVisitor: (path: string, navigationPaths: string[]) =>
|
|
226
|
+
singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths)
|
|
227
|
+
}),
|
|
220
228
|
bParentEntitySetDeletable = isParentDeletable ? compileBinding(isParentDeletable) : isParentDeletable,
|
|
221
229
|
headerDataFieldForActions = getIdentificationDataFieldForActions(converterContext.getEntityType(), false);
|
|
222
230
|
|
|
@@ -330,6 +338,10 @@ export function getHeaderDefaultActions(converterContext: ConverterContext): Bas
|
|
|
330
338
|
return headerActions;
|
|
331
339
|
}
|
|
332
340
|
|
|
341
|
+
/**
|
|
342
|
+
* @param converterContext
|
|
343
|
+
* @returns {BaseAction[]}
|
|
344
|
+
*/
|
|
333
345
|
export function getHiddenHeaderActions(converterContext: ConverterContext): BaseAction[] {
|
|
334
346
|
const entityType = converterContext.getEntityType();
|
|
335
347
|
const hiddenActions = (entityType.annotations?.UI?.Identification?.filter(identificationDataField => {
|
|
@@ -343,6 +355,11 @@ export function getHiddenHeaderActions(converterContext: ConverterContext): Base
|
|
|
343
355
|
});
|
|
344
356
|
}
|
|
345
357
|
|
|
358
|
+
/**
|
|
359
|
+
* @param viewLevel
|
|
360
|
+
* @param converterContext
|
|
361
|
+
* @returns {BaseAction[]}
|
|
362
|
+
*/
|
|
346
363
|
export function getFooterDefaultActions(viewLevel: number, converterContext: ConverterContext): BaseAction[] {
|
|
347
364
|
const entitySet = converterContext.getEntitySet();
|
|
348
365
|
const entityType = converterContext.getEntityType();
|
package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js
CHANGED
|
@@ -6,7 +6,6 @@ sap.ui.define(["../ManifestSettings", "../controls/Common/DataVisualization", ".
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
-
var getPropertyInfoFields = FilterBar.getPropertyInfoFields;
|
|
10
9
|
var getFilterBarhideBasicSearch = FilterBar.getFilterBarhideBasicSearch;
|
|
11
10
|
var getManifestFilterFields = FilterBar.getManifestFilterFields;
|
|
12
11
|
var getSelectionFields = FilterBar.getSelectionFields;
|
|
@@ -513,8 +512,9 @@ sap.ui.define(["../ManifestSettings", "../controls/Common/DataVisualization", ".
|
|
|
513
512
|
|
|
514
513
|
|
|
515
514
|
var hideFilterBar = manifestWrapper.isFilterBarHidden() && singleChartId === "";
|
|
516
|
-
var
|
|
517
|
-
var
|
|
515
|
+
var lrFilterProperties = getSelectionFields(converterContext, lrTableVisualizations);
|
|
516
|
+
var selectionFields = lrFilterProperties.selectionFields;
|
|
517
|
+
var propertyInfoFields = lrFilterProperties.sPropertyInfo;
|
|
518
518
|
var hideBasicSearch = getFilterBarhideBasicSearch(lrTableVisualizations, lrChartVisualizations, converterContext);
|
|
519
519
|
var selectionVariant = getSelectionVariant(entityType, converterContext);
|
|
520
520
|
var defaultSemanticDates = useSemanticDateRange ? getDefaultSemanticDates(getManifestFilterFields(entityType, converterContext)) : {}; // Sort header actions according to position attributes in manifest
|
|
@@ -532,9 +532,15 @@ sap.ui.define(["../ManifestSettings", "../controls/Common/DataVisualization", ".
|
|
|
532
532
|
return visualization.id;
|
|
533
533
|
}));
|
|
534
534
|
var targetControlIds = [].concat(_toConsumableArray(hideFilterBar ? [] : [filterBarId]), _toConsumableArray(manifestWrapper.getVariantManagement() !== VariantManagementType.Control ? visualizationIds : []), _toConsumableArray(!hasMultiVisualizations && views.length > 1 ? [IconTabBarID()] : []));
|
|
535
|
+
var iconTabBarId = "fe::TabMultipleMode";
|
|
536
|
+
var displayMultiVisualizations = views.length > 1 && !hasMultiVisualizations;
|
|
537
|
+
var stickySubheaderProvider = displayMultiVisualizations && manifestWrapper.getStickyMultiTabHeaderConfiguration() ? iconTabBarId : undefined;
|
|
535
538
|
return {
|
|
536
539
|
mainEntitySet: sContextPath,
|
|
537
540
|
mainEntityType: sContextPath + "/",
|
|
541
|
+
displayMultiVisualizations: displayMultiVisualizations,
|
|
542
|
+
iconTabBarId: iconTabBarId,
|
|
543
|
+
stickySubheaderProvider: stickySubheaderProvider,
|
|
538
544
|
singleTableId: singleTableId,
|
|
539
545
|
singleChartId: singleChartId,
|
|
540
546
|
showTabCounts: showTabCounts,
|
|
@@ -632,4 +638,4 @@ sap.ui.define(["../ManifestSettings", "../controls/Common/DataVisualization", ".
|
|
|
632
638
|
|
|
633
639
|
return _exports;
|
|
634
640
|
}, false);
|
|
635
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxpc3RSZXBvcnRDb252ZXJ0ZXIudHMiXSwibmFtZXMiOlsiZ2V0VGFibGVWaXN1YWxpemF0aW9ucyIsInZpZXdzIiwidGFibGVzIiwiZm9yRWFjaCIsInZpZXciLCJ0eXBlIiwidmlzdWFsaXphdGlvbnMiLCJzZWNvbmRhcnlWaXN1YWxpemF0aW9uIiwicHJlc2VudGF0aW9uIiwidmlzdWFsaXphdGlvbiIsIlZpc3VhbGl6YXRpb25UeXBlIiwiVGFibGUiLCJwdXNoIiwiZ2V0Q2hhcnRWaXN1YWxpemF0aW9ucyIsImNoYXJ0cyIsInByaW1hcnlWaXN1YWxpemF0aW9uIiwiQ2hhcnQiLCJnZXREZWZhdWx0U2VtYW50aWNEYXRlcyIsImZpbHRlckZpZWxkcyIsImRlZmF1bHRTZW1hbnRpY0RhdGVzIiwiZmlsdGVyRmllbGQiLCJzZXR0aW5ncyIsImRlZmF1bHRWYWx1ZXMiLCJsZW5ndGgiLCJnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImVudGl0eVR5cGUiLCJjb252ZXJ0ZXJDb250ZXh0IiwiYklzQUxQIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJFcnJvciIsImJQVkNvbXBsYWludCIsImlzUHJlc2VudGF0aW9uQ29tcGxpYW50IiwidW5kZWZpbmVkIiwiaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImRlZmF1bHRMaW5lSXRlbSIsImdldERlZmF1bHRMaW5lSXRlbSIsImdldFZpZXciLCJ2aWV3Q29udmVydGVyQ29uZmlndXJhdGlvbiIsImNvbmZpZyIsImdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbiIsImFubm90YXRpb24iLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0RW50aXR5VHlwZSIsInRhYmxlQ29udHJvbElkIiwiY2hhcnRDb250cm9sSWQiLCJ0aXRsZSIsInNlbGVjdGlvblZhcmlhbnRQYXRoIiwiaXNNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIiwia2V5IiwiY3JlYXRlVmlzdWFsaXphdGlvbiIsImlzUHJpbWFyeSIsImRlZmF1bHRWaXN1YWxpemF0aW9uIiwicHJlc2VudGF0aW9uQ3JlYXRlZCIsIk9iamVjdCIsImFzc2lnbiIsImdldFByZXNlbnRhdGlvbiIsIml0ZW0iLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwidGFyZ2V0QW5ub3RhdGlvbiIsImNyZWF0ZUFscFZpZXciLCJwcmVzZW50YXRpb25zIiwiZGVmYXVsdFBhdGgiLCJpZCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Iiwidmlld0Fubm90YXRpb24iLCJjb21waWxlQmluZGluZyIsImFubm90YXRpb25FeHByZXNzaW9uIiwiVGV4dCIsInZpc3VhbGl6YXRpb25EZWZpbml0aW9uIiwiaW5kZXgiLCJ0YWJsZVZpc3VhbGl6YXRpb24iLCJmaWx0ZXJzIiwiY29udHJvbCIsImhpZGRlbkZpbHRlcnMiLCJwYXRocyIsImtlZXBQcmV2aW91c1ByZXNvbmFsaXphdGlvbiIsIlRhYmxlSUQiLCJ0ZXJtIiwiU2VsZWN0aW9uVmFyaWFudCIsInNwbGl0IiwiY2hhcnRWaXN1YWxpemF0aW9uIiwiQ2hhcnRJRCIsImxhYmVsIiwiZnJhZ21lbnQiLCJ0ZW1wbGF0ZSIsImN1c3RvbVRhYklkIiwiQ3VzdG9tVGFiSUQiLCJnZXRWaWV3cyIsInNldHRpbmdzVmlld3MiLCJ2aWV3Q29udmVydGVyQ29uZmlncyIsInBhdGgiLCJtYW5pZmVzdFdyYXBwZXIiLCJ2aWV3Q29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHRGb3IiLCJjb250ZXh0UGF0aCIsImVudGl0eVNldCIsImdldENvbnRleHRQYXRoIiwicmVzb2x2ZWRUYXJnZXRjb252ZXJ0ZXJDb250ZXh0IiwiZ2V0QWxwVmlld0NvbmZpZyIsIm1hcCIsInZpZXdDb252ZXJ0ZXJDb25maWciLCJ2aWV3Q29uZmlncyIsImNoYXJ0IiwidGFibGUiLCJnZXREZWZhdWx0Q2hhcnQiLCJnZXRIZWFkZXJBY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiY2hlY2tDaGFydEZpbHRlckJhcklkIiwiZmlsdGVyQmFySWQiLCJmaWx0ZXJJZCIsImNvbnZlcnRQYWdlIiwic0NvbnRleHRQYXRoIiwidmlld3NEZWZpbml0aW9uIiwiZ2V0Vmlld0NvbmZpZ3VyYXRpb24iLCJoYXNNdWx0aXBsZUVudGl0eVNldHMiLCJzaG93VGFiQ291bnRzIiwic2hvd0NvdW50cyIsImxyVGFibGVWaXN1YWxpemF0aW9ucyIsImxyQ2hhcnRWaXN1YWxpemF0aW9ucyIsInNob3dQaW5uYWJsZVRvZ2dsZSIsInNvbWUiLCJzaW5nbGVUYWJsZUlkIiwic2luZ2xlQ2hhcnRJZCIsIkZpbHRlckJhcklEIiwiZmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCIsIkZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQiLCJmYkNvbmZpZyIsImdldEZpbHRlckNvbmZpZ3VyYXRpb24iLCJmaWx0ZXJJbml0aWFsTGF5b3V0IiwiaW5pdGlhbExheW91dCIsInRvTG93ZXJDYXNlIiwiZmlsdGVyTGF5b3V0IiwibGF5b3V0IiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJvQ29uZmlnIiwiZ2V0Q29udGVudEFyZWFJZCIsImNoYXJ0SWQiLCJ0YWJsZUlkIiwiaGlkZUZpbHRlckJhciIsImlzRmlsdGVyQmFySGlkZGVuIiwic2VsZWN0aW9uRmllbGRzIiwiZ2V0U2VsZWN0aW9uRmllbGRzIiwicHJvcGVydHlJbmZvRmllbGRzIiwiZ2V0UHJvcGVydHlJbmZvRmllbGRzIiwiaGlkZUJhc2ljU2VhcmNoIiwiZ2V0RmlsdGVyQmFyaGlkZUJhc2ljU2VhcmNoIiwic2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXRNYW5pZmVzdEZpbHRlckZpZWxkcyIsImhlYWRlckFjdGlvbnMiLCJoYXNNdWx0aVZpc3VhbGl6YXRpb25zIiwidmlzdWFsaXphdGlvbklkcyIsImNvbmNhdCIsInRhcmdldENvbnRyb2xJZHMiLCJnZXRWYXJpYW50TWFuYWdlbWVudCIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvbnRyb2wiLCJJY29uVGFiQmFySUQiLCJtYWluRW50aXR5U2V0IiwibWFpbkVudGl0eVR5cGUiLCJmaWx0ZXJCYXIiLCJwcm9wZXJ0eUluZm8iLCJmaWx0ZXJDb25kaXRpb25zIiwidmFyaWFudE1hbmFnZW1lbnQiLCJqb2luIiwiaXNNdWx0aUVudGl0eVNldHMiLCJ0ZW1wbGF0ZVR5cGUiLCJrcGlEZWZpbml0aW9ucyIsImdldEtQSURlZmluaXRpb25zIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFTQSxzQkFBVCxDQUFnQ0MsS0FBaEMsRUFBeUY7QUFDeEYsUUFBTUMsTUFBNEIsR0FBRyxFQUFyQztBQUNBRCxJQUFBQSxLQUFLLENBQUNFLE9BQU4sQ0FBYyxVQUFTQyxJQUFULEVBQWU7QUFDNUIsVUFBSSxDQUFFQSxJQUFELENBQStCQyxJQUFwQyxFQUEwQztBQUN6QyxZQUFNQyxjQUFjLEdBQUlGLElBQUQsQ0FBaUNHLHNCQUFqQyxHQUNuQkgsSUFBRCxDQUFpQ0csc0JBQWpDLENBQXdERCxjQURwQyxHQUVuQkYsSUFBRCxDQUErQkksWUFBL0IsQ0FB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LGNBQUksQ0FBQ29JLGFBQUQsSUFBbUJwSSxNQUFELENBQW9DK0MsY0FBMUQsRUFBMEU7QUFDekVxRixZQUFBQSxhQUFhLEdBQUlwSSxNQUFELENBQW9DK0MsY0FBcEMsSUFBc0QsRUFBdEU7QUFDQTs7QUFDRCxjQUFJLENBQUNzRixhQUFELElBQW1CckksTUFBRCxDQUFvQ2dELGNBQTFELEVBQTBFO0FBQ3pFcUYsWUFBQUEsYUFBYSxHQUFJckksTUFBRCxDQUFvQ2dELGNBQXBDLElBQXNELEVBQXRFO0FBQ0E7O0FBQ0QsY0FBSXFGLGFBQWEsSUFBSUQsYUFBckIsRUFBb0M7QUFDbkM7QUFDQTtBQUNEO0FBWks7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFOOztBQUNELFFBQUlBLGFBQWEsSUFBSUMsYUFBckIsRUFBb0M7QUFDbkMsYUFBTztBQUNOYyxRQUFBQSxPQUFPLEVBQUVkLGFBREg7QUFFTmUsUUFBQUEsT0FBTyxFQUFFaEI7QUFGSCxPQUFQO0FBSUE7O0FBQ0QsV0FBT2xHLFNBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0TXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24sXG5cdFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0U2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRWaXN1YWxpemF0aW9uVHlwZSxcblx0VGVtcGxhdGVUeXBlLFxuXHRDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0Q3VzdG9tVmlld1RlbXBsYXRlQ29uZmlndXJhdGlvbixcblx0VmFyaWFudE1hbmFnZW1lbnRUeXBlXG59IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBFbnRpdHlUeXBlIH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7XG5cdERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbixcblx0Z2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uLFxuXHRnZXREZWZhdWx0Q2hhcnQsXG5cdGdldERlZmF1bHRMaW5lSXRlbSxcblx0Z2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQsXG5cdGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsXG5cdGlzUHJlc2VudGF0aW9uQ29tcGxpYW50LFxuXHRnZXRTZWxlY3Rpb25WYXJpYW50LFxuXHRpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudFxufSBmcm9tIFwiLi4vY29udHJvbHMvQ29tbW9uL0RhdGFWaXN1YWxpemF0aW9uXCI7XG5pbXBvcnQge1xuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9nZW5lcmF0ZWQvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDdXN0b21UYWJJRCwgRmlsdGVyQmFySUQsIEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQsIFRhYmxlSUQsIENoYXJ0SUQsIEljb25UYWJCYXJJRCB9IGZyb20gXCIuLi9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgeyBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB7IENoYXJ0VmlzdWFsaXphdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9DaGFydFwiO1xuaW1wb3J0IHsgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IENvbmZpZ3VyYWJsZU9iamVjdCwgaW5zZXJ0Q3VzdG9tRWxlbWVudHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgYW5ub3RhdGlvbkV4cHJlc3Npb24sIGNvbXBpbGVCaW5kaW5nIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IEtQSURlZmluaXRpb24sIGdldEtQSURlZmluaXRpb25zIH0gZnJvbSBcIi4uL2NvbnRyb2xzL0NvbW1vbi9LUElcIjtcbmltcG9ydCB7XG5cdGdldFNlbGVjdGlvbkZpZWxkcyxcblx0Z2V0TWFuaWZlc3RGaWx0ZXJGaWVsZHMsXG5cdGdldEZpbHRlckJhcmhpZGVCYXNpY1NlYXJjaCxcblx0RmlsdGVyRmllbGQsXG5cdEN1c3RvbUVsZW1lbnRGaWx0ZXJGaWVsZCxcblx0Z2V0UHJvcGVydHlJbmZvRmllbGRzXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5cbnR5cGUgVmlld0Fubm90YXRpb25zVHlwZVR5cGVzID0gU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXM7XG50eXBlIFZhcmlhbnRNYW5hZ2VtZW50RGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0dGFyZ2V0Q29udHJvbElkczogc3RyaW5nO1xufTtcblxudHlwZSBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uID0gVmlld1BhdGhDb25maWd1cmF0aW9uICYge1xuXHRhbm5vdGF0aW9uPzogRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbnR5cGUgU2luZ2xlVmlld0NvbmZpZ3VyYXRpb24gPSB7XG5cdGFubm90YXRpb24/OiBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xufTtcblxudHlwZSBDdXN0b21WaWV3Q29uZmlndXJhdGlvbiA9IEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24gJiB7XG5cdHR5cGU6IHN0cmluZztcbn07XG5cbnR5cGUgVmlld0NvbmZpZ3VyYXRpb24gPSBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIHwgU2luZ2xlVmlld0NvbmZpZ3VyYXRpb24gfCBDdXN0b21WaWV3Q29uZmlndXJhdGlvbjtcbnR5cGUgVmlld0Fubm90YXRpb25Db25maWd1cmF0aW9uID0gTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiB8IFNpbmdsZVZpZXdDb25maWd1cmF0aW9uO1xuXG50eXBlIFZpZXdDb252ZXJ0ZXJTZXR0aW5ncyA9IFZpZXdDb25maWd1cmF0aW9uICYge1xuXHRjb252ZXJ0ZXJDb250ZXh0PzogQ29udmVydGVyQ29udGV4dDtcbn07XG5cbnR5cGUgRGVmYXVsdFNlbWFudGljRGF0ZSA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0b3BlcmF0b3I6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIExpc3RSZXBvcnREZWZpbml0aW9uID0ge1xuXHRtYWluRW50aXR5U2V0OiBzdHJpbmc7XG5cdG1haW5FbnRpdHlUeXBlOiBzdHJpbmc7IC8vIGVudGl0eVR5cGU+IGF0IHRoZSBzdGFydCBvZiBMUiB0ZW1wbGF0aW5nXG5cdHNpbmdsZVRhYmxlSWQ/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBzaW5nbGUgVGFibGUgbW9kZVxuXHRzaW5nbGVDaGFydElkPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggc2luZ2xlIFRhYmxlIG1vZGVcblx0c2hvd1RhYkNvdW50cz86IGJvb2xlYW47IC8vIG9ubHkgd2l0aCBtdWx0aSBUYWJsZSBtb2RlXG5cdGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXTtcblx0c2hvd1Bpbm5hYmxlVG9nZ2xlPzogYm9vbGVhbjtcblx0ZmlsdGVyQmFyOiB7XG5cdFx0cHJvcGVydHlJbmZvOiBhbnk7XG5cdFx0c2VsZWN0aW9uRmllbGRzOiBGaWx0ZXJGaWVsZFtdO1xuXHRcdGhpZGVCYXNpY1NlYXJjaDogYm9vbGVhbjtcblx0fTtcblx0dmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdO1xuXHRmaWx0ZXJDb25kaXRpb25zOiBvYmplY3Q7XG5cdGlzTXVsdGlFbnRpdHlTZXRzOiBib29sZWFuO1xuXHRmaWx0ZXJCYXJJZDogc3RyaW5nO1xuXHR2YXJpYW50TWFuYWdlbWVudDogVmFyaWFudE1hbmFnZW1lbnREZWZpbml0aW9uO1xuXHRoYXNNdWx0aVZpc3VhbGl6YXRpb25zOiBib29sZWFuO1xuXHR0ZW1wbGF0ZVR5cGU6IFRlbXBsYXRlVHlwZTtcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2U/OiBib29sZWFuO1xuXHRmaWx0ZXJJbml0aWFsTGF5b3V0Pzogc3RyaW5nO1xuXHRmaWx0ZXJMYXlvdXQ/OiBzdHJpbmc7XG5cdGtwaURlZmluaXRpb25zOiBLUElEZWZpbml0aW9uW107XG5cdGhpZGVGaWx0ZXJCYXI6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb24gPSBTaW5nbGVWaWV3RGVmaW5pdGlvbiB8IEN1c3RvbVZpZXdEZWZpbml0aW9uIHwgQ29tYmluZWRWaWV3RGVmaW5pdGlvbjtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRWaWV3RGVmaW5pdGlvbiA9IHtcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBvbiBtdWx0aSBUYWJsZSBtb2RlXG5cdHRpdGxlPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRwcmltYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uO1xuXHRzZWNvbmRhcnlWaXN1YWxpemF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb247XG5cdHRhYmxlQ29udHJvbElkOiBzdHJpbmc7XG5cdGNoYXJ0Q29udHJvbElkOiBzdHJpbmc7XG5cdGRlZmF1bHRQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tVmlld0RlZmluaXRpb24gPSB7XG5cdHRpdGxlPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRmcmFnbWVudDogc3RyaW5nO1xuXHR0eXBlOiBzdHJpbmc7XG5cdGN1c3RvbVRhYklkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU2luZ2xlVmlld0RlZmluaXRpb24gPSBTaW5nbGVUYWJsZVZpZXdEZWZpbml0aW9uIHwgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbjtcblxuZXhwb3J0IHR5cGUgQmFzZVNpbmdsZVZpZXdEZWZpbml0aW9uID0ge1xuXHRzZWxlY3Rpb25WYXJpYW50UGF0aD86IHN0cmluZzsgLy8gb25seSB3aXRoIG9uIG11bHRpIFRhYmxlIG1vZGVcblx0dGl0bGU/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBtdWx0aSBUYWJsZSBtb2RlXG5cdHByZXNlbnRhdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgU2luZ2xlVGFibGVWaWV3RGVmaW5pdGlvbiA9IEJhc2VTaW5nbGVWaWV3RGVmaW5pdGlvbiAmIHtcblx0dGFibGVDb250cm9sSWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTaW5nbGVDaGFydFZpZXdEZWZpbml0aW9uID0gQmFzZVNpbmdsZVZpZXdEZWZpbml0aW9uICYge1xuXHRjaGFydENvbnRyb2xJZD86IHN0cmluZztcbn07XG5cbnR5cGUgQ29udGVudEFyZWFJRCA9IHtcblx0Y2hhcnRJZDogc3RyaW5nO1xuXHR0YWJsZUlkOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgbGlzdCByZXBvcnQgdGFibGVzLlxuICogQHBhcmFtIHtMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXX0gdmlld3MgVGhlIGxpc3QgcmVwb3J0IHZpZXdzIGNvbmZpZ3VyZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcmV0dXJucyB7VGFibGVWaXN1YWxpemF0aW9uW119IFRoZSBsaXN0IHJlcG9ydCB0YWJsZVxuICovXG5mdW5jdGlvbiBnZXRUYWJsZVZpc3VhbGl6YXRpb25zKHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSk6IFRhYmxlVmlzdWFsaXphdGlvbltdIHtcblx0Y29uc3QgdGFibGVzOiBUYWJsZVZpc3VhbGl6YXRpb25bXSA9IFtdO1xuXHR2aWV3cy5mb3JFYWNoKGZ1bmN0aW9uKHZpZXcpIHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9ICh2aWV3IGFzIENvbWJpbmVkVmlld0RlZmluaXRpb24pLnNlY29uZGFyeVZpc3VhbGl6YXRpb25cblx0XHRcdFx0PyAodmlldyBhcyBDb21iaW5lZFZpZXdEZWZpbml0aW9uKS5zZWNvbmRhcnlWaXN1YWxpemF0aW9uLnZpc3VhbGl6YXRpb25zXG5cdFx0XHRcdDogKHZpZXcgYXMgU2luZ2xlVmlld0RlZmluaXRpb24pLnByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucztcblxuXHRcdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaChmdW5jdGlvbih2aXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlKSB7XG5cdFx0XHRcdFx0dGFibGVzLnB1c2godmlzdWFsaXphdGlvbik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiB0YWJsZXM7XG59XG5cbmZ1bmN0aW9uIGdldENoYXJ0VmlzdWFsaXphdGlvbnModmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdKTogQ2hhcnRWaXN1YWxpemF0aW9uW10ge1xuXHRjb25zdCBjaGFydHM6IENoYXJ0VmlzdWFsaXphdGlvbltdID0gW107XG5cdHZpZXdzLmZvckVhY2goZnVuY3Rpb24odmlldykge1xuXHRcdGlmICghKHZpZXcgYXMgQ3VzdG9tVmlld0RlZmluaXRpb24pLnR5cGUpIHtcblx0XHRcdGNvbnN0IHZpc3VhbGl6YXRpb25zID0gKHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbikucHJpbWFyeVZpc3VhbGl6YXRpb25cblx0XHRcdFx0PyAodmlldyBhcyBDb21iaW5lZFZpZXdEZWZpbml0aW9uKS5wcmltYXJ5VmlzdWFsaXphdGlvbi52aXN1YWxpemF0aW9uc1xuXHRcdFx0XHQ6ICh2aWV3IGFzIFNpbmdsZVZpZXdEZWZpbml0aW9uKS5wcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnM7XG5cblx0XHRcdHZpc3VhbGl6YXRpb25zLmZvckVhY2goZnVuY3Rpb24odmlzdWFsaXphdGlvbikge1xuXHRcdFx0XHRpZiAodmlzdWFsaXphdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCkge1xuXHRcdFx0XHRcdGNoYXJ0cy5wdXNoKHZpc3VhbGl6YXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gY2hhcnRzO1xufVxuXG5jb25zdCBnZXREZWZhdWx0U2VtYW50aWNEYXRlcyA9IGZ1bmN0aW9uKGZpbHRlckZpZWxkczogUmVjb3JkPHN0cmluZywgQ3VzdG9tRWxlbWVudEZpbHRlckZpZWxkPik6IFJlY29yZDxzdHJpbmcsIERlZmF1bHRTZW1hbnRpY0RhdGU+IHtcblx0Y29uc3QgZGVmYXVsdFNlbWFudGljRGF0ZXM6IGFueSA9IHt9O1xuXHRmb3IgKGNvbnN0IGZpbHRlckZpZWxkIGluIGZpbHRlckZpZWxkcykge1xuXHRcdGlmIChmaWx0ZXJGaWVsZHNbZmlsdGVyRmllbGRdPy5zZXR0aW5ncz8uZGVmYXVsdFZhbHVlcz8ubGVuZ3RoKSB7XG5cdFx0XHRkZWZhdWx0U2VtYW50aWNEYXRlc1tmaWx0ZXJGaWVsZF0gPSBmaWx0ZXJGaWVsZHNbZmlsdGVyRmllbGRdPy5zZXR0aW5ncz8uZGVmYXVsdFZhbHVlcztcblx0XHR9XG5cdH1cblx0cmV0dXJuIGRlZmF1bHRTZW1hbnRpY0RhdGVzO1xufTtcblxuLyoqXG4gKiBGaW5kIGEgdmlzdWFsaXphdGlvbiBhbm5vdGF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgbGlzdCByZXBvcnQuXG4gKlxuICogQHBhcmFtIHtFbnRpdHlUeXBlfSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IEVudGl0eVR5cGVcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gYklzQUxQXG4gKiBAcmV0dXJucyB7TGluZUl0ZW0gfCBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkfSBBIGNvbXBsaWFudCBhbm5vdGF0aW9uIGZvciByZW5kZXJpbmcgdGhlIGxpc3QgcmVwb3J0XG4gKi9cbmZ1bmN0aW9uIGdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRiSXNBTFA6IEJvb2xlYW5cbik6IExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQge1xuXHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgoKTtcblx0Y29uc3Qgc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZSwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRpZiAoYW5ub3RhdGlvblBhdGggJiYgc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGNvbnN0IHByZXNlbnRhdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0aWYgKCFwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJQcmVzZW50YXRpb24gVmFyaWFudCBpcyBub3QgY29uZmlndXJlZCBpbiB0aGUgU1BWIG1lbnRpb25lZCBpbiB0aGUgbWFuaWZlc3RcIik7XG5cdFx0fVxuXHRcdGNvbnN0IGJQVkNvbXBsYWludCA9IGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuUHJlc2VudGF0aW9uVmFyaWFudCk7XG5cdFx0aWYgKCFiUFZDb21wbGFpbnQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmIChpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LCBiSXNBTFApKSB7XG5cdFx0XHRyZXR1cm4gc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHR9XG5cdH1cblx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRpZiAoaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCwgYklzQUxQKSkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IHByZXNlbnRhdGlvblZhcmlhbnQgPSBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlKTtcblx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRpZiAoaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudCwgYklzQUxQKSkge1xuXHRcdFx0cmV0dXJuIHByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9XG5cdGlmICghYklzQUxQKSB7XG5cdFx0Y29uc3QgZGVmYXVsdExpbmVJdGVtID0gZ2V0RGVmYXVsdExpbmVJdGVtKGVudGl0eVR5cGUpO1xuXHRcdGlmIChkZWZhdWx0TGluZUl0ZW0pIHtcblx0XHRcdHJldHVybiBkZWZhdWx0TGluZUl0ZW07XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IGdldFZpZXcgPSBmdW5jdGlvbih2aWV3Q29udmVydGVyQ29uZmlndXJhdGlvbjogVmlld0NvbnZlcnRlclNldHRpbmdzKTogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uIHtcblx0bGV0IGNvbmZpZyA9IHZpZXdDb252ZXJ0ZXJDb25maWd1cmF0aW9uO1xuXHRpZiAoY29uZmlnLmNvbnZlcnRlckNvbnRleHQpIHtcblx0XHRsZXQgY29udmVydGVyQ29udGV4dCA9IGNvbmZpZy5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3QW5ub3RhdGlvbkNvbmZpZ3VyYXRpb247XG5cdFx0bGV0IHByZXNlbnRhdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHRcdFx0Y29uZmlnLmFubm90YXRpb25cblx0XHRcdFx0PyBjb252ZXJ0ZXJDb250ZXh0LmdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgoY29uZmlnLmFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLCBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSlcblx0XHRcdFx0OiBcIlwiLFxuXHRcdFx0dHJ1ZSxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRjb25maWcgYXMgVmlld1BhdGhDb25maWd1cmF0aW9uXG5cdFx0KTtcblx0XHRsZXQgdGFibGVDb250cm9sSWQgPSBcIlwiO1xuXHRcdGxldCBjaGFydENvbnRyb2xJZCA9IFwiXCI7XG5cdFx0bGV0IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBcIlwiO1xuXHRcdGxldCBzZWxlY3Rpb25WYXJpYW50UGF0aCA9IFwiXCI7XG5cdFx0Y29uc3QgaXNNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uID0gZnVuY3Rpb24oY29uZmlnOiBWaWV3Q29uZmlndXJhdGlvbik6IGNvbmZpZyBpcyBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIHtcblx0XHRcdHJldHVybiAoY29uZmlnIGFzIE11bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24pLmtleSAhPT0gdW5kZWZpbmVkO1xuXHRcdH07XG5cdFx0Y29uc3QgY3JlYXRlVmlzdWFsaXphdGlvbiA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uLCBpc1ByaW1hcnk/OiBib29sZWFuKSB7XG5cdFx0XHRsZXQgZGVmYXVsdFZpc3VhbGl6YXRpb247XG5cdFx0XHRmb3IgKGNvbnN0IHZpc3VhbGl6YXRpb24gb2YgcHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRcdGlmIChpc1ByaW1hcnkgJiYgdmlzdWFsaXphdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCkge1xuXHRcdFx0XHRcdGRlZmF1bHRWaXN1YWxpemF0aW9uID0gdmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWlzUHJpbWFyeSAmJiB2aXN1YWxpemF0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlKSB7XG5cdFx0XHRcdFx0ZGVmYXVsdFZpc3VhbGl6YXRpb24gPSB2aXN1YWxpemF0aW9uO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBwcmVzZW50YXRpb25DcmVhdGVkID0gT2JqZWN0LmFzc2lnbih7fSwgcHJlc2VudGF0aW9uKTtcblx0XHRcdGlmIChkZWZhdWx0VmlzdWFsaXphdGlvbikge1xuXHRcdFx0XHRwcmVzZW50YXRpb25DcmVhdGVkLnZpc3VhbGl6YXRpb25zID0gW2RlZmF1bHRWaXN1YWxpemF0aW9uXTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBwcmVzZW50YXRpb25DcmVhdGVkO1xuXHRcdH07XG5cdFx0Y29uc3QgZ2V0UHJlc2VudGF0aW9uID0gZnVuY3Rpb24oaXRlbTogU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKSB7XG5cdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oaXRlbS5hbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRjb25zdCB0YXJnZXRBbm5vdGF0aW9uID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhcyBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xuXHRcdFx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cdFx0XHRjb25zdCBhbm5vdGF0aW9uID0gdGFyZ2V0QW5ub3RhdGlvbjtcblx0XHRcdHByZXNlbnRhdGlvbiA9IGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0XHRcdFx0YW5ub3RhdGlvblxuXHRcdFx0XHRcdD8gY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKGFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLCBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSlcblx0XHRcdFx0XHQ6IFwiXCIsXG5cdFx0XHRcdHRydWUsXG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb25cblx0XHRcdCk7XG5cdFx0XHRyZXR1cm4gcHJlc2VudGF0aW9uO1xuXHRcdH07XG5cdFx0Y29uc3QgY3JlYXRlQWxwVmlldyA9IGZ1bmN0aW9uKFxuXHRcdFx0cHJlc2VudGF0aW9uczogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uW10sXG5cdFx0XHRkZWZhdWx0UGF0aDogXCJib3RoXCIgfCBcInByaW1hcnlcIiB8IFwic2Vjb25kYXJ5XCIgfCB1bmRlZmluZWRcblx0XHQpIHtcblx0XHRcdGNvbnN0IHByaW1hcnlWaXN1YWxpemF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gfCB1bmRlZmluZWQgPSBjcmVhdGVWaXN1YWxpemF0aW9uKHByZXNlbnRhdGlvbnNbMF0sIHRydWUpO1xuXHRcdFx0Y2hhcnRDb250cm9sSWQgPSAocHJpbWFyeVZpc3VhbGl6YXRpb24/LnZpc3VhbGl6YXRpb25zWzBdIGFzIENoYXJ0VmlzdWFsaXphdGlvbikuaWQ7XG5cdFx0XHRjb25zdCBzZWNvbmRhcnlWaXN1YWxpemF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gfCB1bmRlZmluZWQgPSBjcmVhdGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRwcmVzZW50YXRpb25zWzFdID8gcHJlc2VudGF0aW9uc1sxXSA6IHByZXNlbnRhdGlvbnNbMF1cblx0XHRcdCk7XG5cdFx0XHR0YWJsZUNvbnRyb2xJZCA9IChzZWNvbmRhcnlWaXN1YWxpemF0aW9uPy52aXN1YWxpemF0aW9uc1swXSBhcyBUYWJsZVZpc3VhbGl6YXRpb24pLmFubm90YXRpb24uaWQ7XG5cdFx0XHRpZiAocHJpbWFyeVZpc3VhbGl6YXRpb24gJiYgc2Vjb25kYXJ5VmlzdWFsaXphdGlvbikge1xuXHRcdFx0XHRjb25zdCB2aWV3OiBDb21iaW5lZFZpZXdEZWZpbml0aW9uID0ge1xuXHRcdFx0XHRcdHByaW1hcnlWaXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdHNlY29uZGFyeVZpc3VhbGl6YXRpb24sXG5cdFx0XHRcdFx0dGFibGVDb250cm9sSWQsXG5cdFx0XHRcdFx0Y2hhcnRDb250cm9sSWQsXG5cdFx0XHRcdFx0ZGVmYXVsdFBhdGhcblx0XHRcdFx0fTtcblx0XHRcdFx0cmV0dXJuIHZpZXc7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRpZiAocHJlc2VudGF0aW9uPy52aXN1YWxpemF0aW9ucz8ubGVuZ3RoID09PSAyICYmIGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2UpIHtcblx0XHRcdGNvbnN0IHZpZXc6IENvbWJpbmVkVmlld0RlZmluaXRpb24gfCB1bmRlZmluZWQgPSBjcmVhdGVBbHBWaWV3KFtwcmVzZW50YXRpb25dLCBcImJvdGhcIik7XG5cdFx0XHRpZiAodmlldykge1xuXHRcdFx0XHRyZXR1cm4gdmlldztcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb24pIHx8XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdFx0KSB7XG5cdFx0XHRjb25zdCB7IHByaW1hcnksIHNlY29uZGFyeSB9ID0gY29uZmlnIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0aWYgKHByaW1hcnkgJiYgcHJpbWFyeS5sZW5ndGggJiYgc2Vjb25kYXJ5ICYmIHNlY29uZGFyeS5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgdmlldzogQ29tYmluZWRWaWV3RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCA9IGNyZWF0ZUFscFZpZXcoXG5cdFx0XHRcdFx0W2dldFByZXNlbnRhdGlvbihwcmltYXJ5WzBdKSwgZ2V0UHJlc2VudGF0aW9uKHNlY29uZGFyeVswXSldLFxuXHRcdFx0XHRcdChjb25maWcgYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmRlZmF1bHRQYXRoXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICh2aWV3KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHZpZXc7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlNlY29uZGFyeUl0ZW1zIGluIHRoZSBWaWV3cyBpcyBub3QgcHJlc2VudFwiKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGlzTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbihjb25maWcpKSB7XG5cdFx0XHQvLyBrZXkgZXhpc3RzIG9ubHkgb24gbXVsdGkgdGFibGVzIG1vZGVcblx0XHRcdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbigoY29uZmlnIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikuYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0Y29uc3Qgdmlld0Fubm90YXRpb246IFZpZXdBbm5vdGF0aW9uc1R5cGVUeXBlcyA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgVmlld0Fubm90YXRpb25zVHlwZVR5cGVzO1xuXHRcdFx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cdFx0XHR0aXRsZSA9IGNvbXBpbGVCaW5kaW5nKGFubm90YXRpb25FeHByZXNzaW9uKHZpZXdBbm5vdGF0aW9uLlRleHQpKTtcblx0XHRcdC8vIE5lZWQgdG8gbG9vcCBvbiB0YWJsZSBpbnRvIHZpZXdzIHNpbmNlIG11bHRpIHRhYmxlIG1vZGUgZ2V0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKGhpZGRlbiBmaWx0ZXJzIG9yIFRhYmxlIElkKVxuXHRcdFx0cHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zLmZvckVhY2goKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRzd2l0Y2ggKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUpIHtcblx0XHRcdFx0XHRjYXNlIFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlOlxuXHRcdFx0XHRcdFx0Y29uc3QgdGFibGVWaXN1YWxpemF0aW9uID0gcHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zW2luZGV4XSBhcyBUYWJsZVZpc3VhbGl6YXRpb247XG5cdFx0XHRcdFx0XHRjb25zdCBmaWx0ZXJzID0gdGFibGVWaXN1YWxpemF0aW9uLmNvbnRyb2wuZmlsdGVycyB8fCB7fTtcblx0XHRcdFx0XHRcdGZpbHRlcnMuaGlkZGVuRmlsdGVycyA9IGZpbHRlcnMuaGlkZGVuRmlsdGVycyB8fCB7IHBhdGhzOiBbXSB9O1xuXHRcdFx0XHRcdFx0aWYgKCEoY29uZmlnIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikua2VlcFByZXZpb3VzUHJlc29uYWxpemF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdC8vIE5lZWQgdG8gb3ZlcnJpZGUgVGFibGUgSWQgdG8gbWF0Y2ggd2l0aCBUYWIgS2V5IChjdXJyZW50bHkgb25seSB0YWJsZSBpcyBtYW5hZ2VkIGluIG11bHRpcGxlIHZpZXcgbW9kZSlcblx0XHRcdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uLmFubm90YXRpb24uaWQgPSBUYWJsZUlEKChjb25maWcgYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKS5rZXkgfHwgXCJcIiwgXCJMaW5lSXRlbVwiKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3QW5ub3RhdGlvbkNvbmZpZ3VyYXRpb247XG5cdFx0XHRcdFx0XHRpZiAoY29uZmlnICYmIGNvbmZpZy5hbm5vdGF0aW9uICYmIGNvbmZpZy5hbm5vdGF0aW9uLnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudFBhdGggPSAoY29uZmlnLmFubm90YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcykuU2VsZWN0aW9uVmFyaWFudC5mdWxseVF1YWxpZmllZE5hbWUuc3BsaXQoXG5cdFx0XHRcdFx0XHRcdFx0XCJAXCJcblx0XHRcdFx0XHRcdFx0KVsxXTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNlbGVjdGlvblZhcmlhbnRQYXRoID0gKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly9Qcm92aWRlIFNlbGVjdGlvbiBWYXJpYW50IHRvIGhpZGRlbkZpbHRlcnMgaW4gb3JkZXIgdG8gc2V0IHRoZSBTViBmaWx0ZXJzIHRvIHRoZSB0YWJsZS5cblx0XHRcdFx0XHRcdC8vTURDIFRhYmxlIG92ZXJyaWRlcyBiaW5kaW5nIEZpbHRlciBhbmQgZnJvbSBTQVAgRkUgdGhlIG9ubHkgbWV0aG9kIHdoZXJlIHdlIGFyZSBhYmxlIHRvIGFkZFxuXHRcdFx0XHRcdFx0Ly9hZGRpdGlvbmFsIGZpbHRlciBpcyAncmViaW5kVGFibGUnIGludG8gVGFibGUgZGVsZWdhdGUuXG5cdFx0XHRcdFx0XHQvL1RvIGF2b2lkIGltcGxlbWVudGluZyBzcGVjaWZpYyBMUiBmZWF0dXJlIHRvIFNBUCBGRSBNYWNybyBUYWJsZSwgdGhlIGZpbHRlcihzKSByZWxhdGVkIHRvIHRoZSBUYWIgKG11bHRpIHRhYmxlIG1vZGUpXG5cdFx0XHRcdFx0XHQvL2NhbiBiZSBwYXNzZWQgdG8gbWFjcm8gdGFibGUgdmlhIHBhcmFtZXRlci9jb250ZXh0IG5hbWVkIGZpbHRlcnMgYW5kIGtleSBoaWRkZW5GaWx0ZXJzLlxuXHRcdFx0XHRcdFx0ZmlsdGVycy5oaWRkZW5GaWx0ZXJzLnBhdGhzLnB1c2goeyBhbm5vdGF0aW9uUGF0aDogc2VsZWN0aW9uVmFyaWFudFBhdGggfSk7XG5cdFx0XHRcdFx0XHR0YWJsZVZpc3VhbGl6YXRpb24uY29udHJvbC5maWx0ZXJzID0gZmlsdGVycztcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQ6XG5cdFx0XHRcdFx0XHRjb25zdCBjaGFydFZpc3VhbGl6YXRpb24gPSBwcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnNbaW5kZXhdIGFzIENoYXJ0VmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRcdGNoYXJ0VmlzdWFsaXphdGlvbi5pZCA9IENoYXJ0SUQoKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmtleSB8fCBcIlwiLCBcIkNoYXJ0XCIpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zLmZvckVhY2godmlzdWFsaXphdGlvbkRlZmluaXRpb24gPT4ge1xuXHRcdFx0aWYgKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlKSB7XG5cdFx0XHRcdHRhYmxlQ29udHJvbElkID0gdmlzdWFsaXphdGlvbkRlZmluaXRpb24uYW5ub3RhdGlvbi5pZDtcblx0XHRcdH0gZWxzZSBpZiAodmlzdWFsaXphdGlvbkRlZmluaXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQpIHtcblx0XHRcdFx0Y2hhcnRDb250cm9sSWQgPSB2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi5pZDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0cHJlc2VudGF0aW9uLFxuXHRcdFx0dGFibGVDb250cm9sSWQsXG5cdFx0XHRjaGFydENvbnRyb2xJZCxcblx0XHRcdHRpdGxlLFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudFBhdGhcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBDdXN0b21WaWV3Q29uZmlndXJhdGlvbjtcblx0XHRjb25zdCB0aXRsZSA9IGNvbmZpZy5sYWJlbCxcblx0XHRcdGZyYWdtZW50ID0gY29uZmlnLnRlbXBsYXRlLFxuXHRcdFx0dHlwZSA9IGNvbmZpZy50eXBlLFxuXHRcdFx0Y3VzdG9tVGFiSWQgPSBDdXN0b21UYWJJRChjb25maWcua2V5IHx8IFwiXCIpO1xuXHRcdHJldHVybiB7XG5cdFx0XHR0aXRsZSxcblx0XHRcdGZyYWdtZW50LFxuXHRcdFx0dHlwZSxcblx0XHRcdGN1c3RvbVRhYklkXG5cdFx0fTtcblx0fVxufTtcblxuY29uc3QgZ2V0Vmlld3MgPSBmdW5jdGlvbihcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c2V0dGluZ3NWaWV3czogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWRcbik6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdIHtcblx0bGV0IHZpZXdDb252ZXJ0ZXJDb25maWdzOiBWaWV3Q29udmVydGVyU2V0dGluZ3NbXSA9IFtdO1xuXHRpZiAoc2V0dGluZ3NWaWV3cykge1xuXHRcdHNldHRpbmdzVmlld3MucGF0aHMuZm9yRWFjaCgocGF0aDogVmlld1BhdGhDb25maWd1cmF0aW9uIHwgQ3VzdG9tVmlld1RlbXBsYXRlQ29uZmlndXJhdGlvbikgPT4ge1xuXHRcdFx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyhwYXRoIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbikpIHtcblx0XHRcdFx0aWYgKHNldHRpbmdzVmlld3MucGF0aHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFMUCBmbGF2b3IgY2Fubm90IGhhdmUgbXVsdGlwbGUgdmlld3NcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cGF0aCA9IHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJpbWFyeTogcGF0aC5wcmltYXJ5LFxuXHRcdFx0XHRcdFx0c2Vjb25kYXJ5OiBwYXRoLnNlY29uZGFyeSxcblx0XHRcdFx0XHRcdGRlZmF1bHRQYXRoOiBwYXRoLmRlZmF1bHRQYXRoXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoKHBhdGggYXMgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb24pLnRlbXBsYXRlKSB7XG5cdFx0XHRcdHBhdGggPSBwYXRoIGFzIEN1c3RvbVZpZXdDb25maWd1cmF0aW9uO1xuXHRcdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0XHRrZXk6IHBhdGgua2V5LFxuXHRcdFx0XHRcdGxhYmVsOiBwYXRoLmxhYmVsLFxuXHRcdFx0XHRcdHRlbXBsYXRlOiBwYXRoLnRlbXBsYXRlLFxuXHRcdFx0XHRcdHR5cGU6IFwiQ3VzdG9tXCJcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXRoID0gcGF0aCBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRcdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCksXG5cdFx0XHRcdFx0dmlld0NvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXG5cdFx0XHRcdFx0XHRwYXRoLmNvbnRleHRQYXRoIHx8IChwYXRoLmVudGl0eVNldCAmJiBcIi9cIiArIHBhdGguZW50aXR5U2V0KSB8fCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKClcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGVudGl0eVR5cGUgPSB2aWV3Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cblx0XHRcdFx0aWYgKGVudGl0eVR5cGUgJiYgdmlld0NvbnZlcnRlckNvbnRleHQpIHtcblx0XHRcdFx0XHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IG1hbmlmZXN0V3JhcHBlci5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRcdFx0XHRcdGxldCBhbm5vdGF0aW9uO1xuXHRcdFx0XHRcdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gdmlld0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24ocGF0aC5hbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRcdFx0Y29uc3QgdGFyZ2V0QW5ub3RhdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0XHRcdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdFx0XHRcdGlmICh0YXJnZXRBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0XHRpZiAodGFyZ2V0QW5ub3RhdGlvbi50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25WYXJpYW50KSB7XG5cdFx0XHRcdFx0XHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb24gPSBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0dmlld0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdFx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlZFRhcmdldGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb24gPSBnZXREZWZhdWx0TGluZUl0ZW0odmlld0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpKSBhcyBMaW5lSXRlbTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbiA9IHRhcmdldEFubm90YXRpb247XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogdmlld0NvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBwYXRoLmFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0XHRrZWVwUHJldmlvdXNQcmVzb25hbGl6YXRpb246IHBhdGgua2VlcFByZXZpb3VzUHJlc29uYWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0XHRrZXk6IHBhdGgua2V5XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gVE9ETyBEaWFnbm9zdGljcyBtZXNzYWdlXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2UpIHtcblx0XHRcdHZpZXdDb252ZXJ0ZXJDb25maWdzID0gZ2V0QWxwVmlld0NvbmZpZyhjb252ZXJ0ZXJDb250ZXh0LCB2aWV3Q29udmVydGVyQ29uZmlncyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZpZXdDb252ZXJ0ZXJDb25maWdzLnB1c2goe1xuXHRcdFx0XHRhbm5vdGF0aW9uOiBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihlbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0LCBmYWxzZSksXG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdmlld0NvbnZlcnRlckNvbmZpZ3MubWFwKHZpZXdDb252ZXJ0ZXJDb25maWcgPT4ge1xuXHRcdHJldHVybiBnZXRWaWV3KHZpZXdDb252ZXJ0ZXJDb25maWcpO1xuXHR9KTtcbn07XG5cbmZ1bmN0aW9uIGdldEFscFZpZXdDb25maWcoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgdmlld0NvbmZpZ3M6IFZpZXdDb252ZXJ0ZXJTZXR0aW5nc1tdKTogVmlld0NvbnZlcnRlclNldHRpbmdzW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGFubm90YXRpb24gPSBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihlbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0LCB0cnVlKTtcblx0bGV0IGNoYXJ0LCB0YWJsZTtcblx0aWYgKGFubm90YXRpb24pIHtcblx0XHR2aWV3Q29uZmlncy5wdXNoKHtcblx0XHRcdGFubm90YXRpb246IGFubm90YXRpb24sXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0Y2hhcnQgPSBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZSk7XG5cdFx0dGFibGUgPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSk7XG5cdFx0aWYgKGNoYXJ0ICYmIHRhYmxlKSB7XG5cdFx0XHRjb25zdCBwcmltYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXSA9IFt7IGFubm90YXRpb25QYXRoOiBjaGFydC50ZXJtIH1dO1xuXHRcdFx0Y29uc3Qgc2Vjb25kYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXSA9IFt7IGFubm90YXRpb25QYXRoOiB0YWJsZS50ZXJtIH1dO1xuXHRcdFx0dmlld0NvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdHByaW1hcnk6IHByaW1hcnksXG5cdFx0XHRcdHNlY29uZGFyeTogc2Vjb25kYXJ5LFxuXHRcdFx0XHRkZWZhdWx0UGF0aDogXCJib3RoXCJcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdmlld0NvbmZpZ3M7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRIZWFkZXJBY3Rpb25zID0gZnVuY3Rpb24oY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEJhc2VBY3Rpb25bXSB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdHJldHVybiBpbnNlcnRDdXN0b21FbGVtZW50cyhbXSwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdChtYW5pZmVzdFdyYXBwZXIuZ2V0SGVhZGVyQWN0aW9ucygpLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tDaGFydEZpbHRlckJhcklkID0gZnVuY3Rpb24odmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdLCBmaWx0ZXJCYXJJZDogc3RyaW5nKSB7XG5cdHZpZXdzLmZvckVhY2godmlldyA9PiB7XG5cdFx0aWYgKCEodmlldyBhcyBDdXN0b21WaWV3RGVmaW5pdGlvbikudHlwZSkge1xuXHRcdFx0Y29uc3QgcHJlc2VudGF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gPSAodmlldyBhcyBTaW5nbGVWaWV3RGVmaW5pdGlvbikucHJlc2VudGF0aW9uO1xuXHRcdFx0cHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zLmZvckVhY2godmlzdWFsaXphdGlvbkRlZmluaXRpb24gPT4ge1xuXHRcdFx0XHRpZiAodmlzdWFsaXphdGlvbkRlZmluaXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQgJiYgdmlzdWFsaXphdGlvbkRlZmluaXRpb24uZmlsdGVySWQgIT09IGZpbHRlckJhcklkKSB7XG5cdFx0XHRcdFx0dmlzdWFsaXphdGlvbkRlZmluaXRpb24uZmlsdGVySWQgPSBmaWx0ZXJCYXJJZDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9KTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgTGlzdFJlcG9ydERlZmluaXRpb24gZm9yIG11bHRpcGxlIGVudGl0eSBzZXRzIChtdWx0aXBsZSB0YWJsZSBtb2RlKS5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEByZXR1cm5zIHtMaXN0UmVwb3J0RGVmaW5pdGlvbn0gVGhlIGxpc3QgcmVwb3J0IGRlZmluaXRpb24gYmFzZWQgb24gYW5ub3RhdGlvbiArIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0UGFnZSA9IGZ1bmN0aW9uKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBMaXN0UmVwb3J0RGVmaW5pdGlvbiB7XG5cdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0Y29uc3Qgc0NvbnRleHRQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpO1xuXG5cdGlmICghc0NvbnRleHRQYXRoKSB7XG5cdFx0Ly8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBlbnRpdHlTZXQgYXQgdGhpcyBwb2ludCB3ZSBoYXZlIGFuIGlzc3VlIEknZCBzYXlcblx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcIkFuIEVudGl0eVNldCBpcyByZXF1aXJlZCB0byBiZSBhYmxlIHRvIGRpc3BsYXkgYSBMaXN0UmVwb3J0LCBwbGVhc2UgYWRqdXN0IHlvdXIgYGVudGl0eVNldGAgcHJvcGVydHkgdG8gcG9pbnQgdG8gb25lLlwiXG5cdFx0KTtcblx0fVxuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCB2aWV3c0RlZmluaXRpb246IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkID0gbWFuaWZlc3RXcmFwcGVyLmdldFZpZXdDb25maWd1cmF0aW9uKCk7XG5cdGNvbnN0IGhhc011bHRpcGxlRW50aXR5U2V0cyA9IG1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZUVudGl0eVNldHMoKTtcblx0Y29uc3Qgdmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdID0gZ2V0Vmlld3MoY29udmVydGVyQ29udGV4dCwgdmlld3NEZWZpbml0aW9uKTtcblx0Y29uc3Qgc2hvd1RhYkNvdW50cyA9IHZpZXdzRGVmaW5pdGlvbiA/IHZpZXdzRGVmaW5pdGlvbj8uc2hvd0NvdW50cyB8fCBoYXNNdWx0aXBsZUVudGl0eVNldHMgOiB1bmRlZmluZWQ7IC8vIHdpdGggbXVsdGkgRW50aXR5U2V0cywgdGFiIGNvdW50cyBhcmUgZGlzcGxheWVkIGJ5IGRlZmF1bHRcblx0Y29uc3QgbHJUYWJsZVZpc3VhbGl6YXRpb25zID0gZ2V0VGFibGVWaXN1YWxpemF0aW9ucyh2aWV3cyk7XG5cdGNvbnN0IGxyQ2hhcnRWaXN1YWxpemF0aW9ucyA9IGdldENoYXJ0VmlzdWFsaXphdGlvbnModmlld3MpO1xuXHRjb25zdCBzaG93UGlubmFibGVUb2dnbGUgPSBsclRhYmxlVmlzdWFsaXphdGlvbnMuc29tZSh0YWJsZSA9PiB0YWJsZS5jb250cm9sLnR5cGUgPT09IFwiUmVzcG9uc2l2ZVRhYmxlXCIpO1xuXHRsZXQgc2luZ2xlVGFibGVJZCA9IFwiXCI7XG5cdGxldCBzaW5nbGVDaGFydElkID0gXCJcIjtcblx0Y29uc3QgZmlsdGVyQmFySWQgPSBGaWx0ZXJCYXJJRChzQ29udGV4dFBhdGgpO1xuXHRjb25zdCBmaWx0ZXJWYXJpYW50TWFuYWdlbWVudElEID0gRmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRChmaWx0ZXJCYXJJZCk7XG5cdGNvbnN0IGZiQ29uZmlnID0gbWFuaWZlc3RXcmFwcGVyLmdldEZpbHRlckNvbmZpZ3VyYXRpb24oKTtcblx0Y29uc3QgZmlsdGVySW5pdGlhbExheW91dCA9IGZiQ29uZmlnPy5pbml0aWFsTGF5b3V0ICE9PSB1bmRlZmluZWQgPyBmYkNvbmZpZz8uaW5pdGlhbExheW91dC50b0xvd2VyQ2FzZSgpIDogXCJjb21wYWN0XCI7XG5cdGNvbnN0IGZpbHRlckxheW91dCA9IGZiQ29uZmlnPy5sYXlvdXQgIT09IHVuZGVmaW5lZCA/IGZiQ29uZmlnPy5sYXlvdXQudG9Mb3dlckNhc2UoKSA6IFwiY29tcGFjdFwiO1xuXHRjb25zdCB1c2VTZW1hbnRpY0RhdGVSYW5nZSA9IGZiQ29uZmlnLnVzZVNlbWFudGljRGF0ZVJhbmdlICE9PSB1bmRlZmluZWQgPyBmYkNvbmZpZy51c2VTZW1hbnRpY0RhdGVSYW5nZSA6IHRydWU7XG5cblx0Y29uc3Qgb0NvbmZpZyA9IGdldENvbnRlbnRBcmVhSWQoY29udmVydGVyQ29udGV4dCwgdmlld3MpO1xuXHRpZiAob0NvbmZpZykge1xuXHRcdHNpbmdsZUNoYXJ0SWQgPSBvQ29uZmlnLmNoYXJ0SWQ7XG5cdFx0c2luZ2xlVGFibGVJZCA9IG9Db25maWcudGFibGVJZDtcblx0fVxuXG5cdC8vIENoYXJ0IGhhcyBhIGRlcGVuZGVuY3kgdG8gZmlsdGVyIGJhciAoaXNzdWUgd2l0aCBsb2FkaW5nIGRhdGEpLiBPbmNlIHJlc29sdmVkLCB0aGUgY2hlY2sgZm9yIGNoYXJ0IHNob3VsZCBiZSByZW1vdmVkIGhlcmUuXG5cdC8vIFVudGlsIHRoZW4sIGhpZGluZyBmaWx0ZXIgYmFyIGlzIG5vdyBhbGxvd2VkIGlmIGEgY2hhcnQgaXMgYmVpbmcgdXNlZCBvbiBMUi5cblx0Y29uc3QgaGlkZUZpbHRlckJhciA9IG1hbmlmZXN0V3JhcHBlci5pc0ZpbHRlckJhckhpZGRlbigpICYmIHNpbmdsZUNoYXJ0SWQgPT09IFwiXCI7XG5cdGNvbnN0IHNlbGVjdGlvbkZpZWxkcyA9IGdldFNlbGVjdGlvbkZpZWxkcyhjb252ZXJ0ZXJDb250ZXh0LCBsclRhYmxlVmlzdWFsaXphdGlvbnMpO1xuXHRjb25zdCBwcm9wZXJ0eUluZm9GaWVsZHMgPSBnZXRQcm9wZXJ0eUluZm9GaWVsZHMoY29udmVydGVyQ29udGV4dCwgbHJUYWJsZVZpc3VhbGl6YXRpb25zLCBsckNoYXJ0VmlzdWFsaXphdGlvbnMpO1xuXHRjb25zdCBoaWRlQmFzaWNTZWFyY2ggPSBnZXRGaWx0ZXJCYXJoaWRlQmFzaWNTZWFyY2gobHJUYWJsZVZpc3VhbGl6YXRpb25zLCBsckNoYXJ0VmlzdWFsaXphdGlvbnMsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRjb25zdCBzZWxlY3Rpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0Y29uc3QgZGVmYXVsdFNlbWFudGljRGF0ZXMgPSB1c2VTZW1hbnRpY0RhdGVSYW5nZSA/IGdldERlZmF1bHRTZW1hbnRpY0RhdGVzKGdldE1hbmlmZXN0RmlsdGVyRmllbGRzKGVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQpKSA6IHt9O1xuXG5cdC8vIFNvcnQgaGVhZGVyIGFjdGlvbnMgYWNjb3JkaW5nIHRvIHBvc2l0aW9uIGF0dHJpYnV0ZXMgaW4gbWFuaWZlc3Rcblx0Y29uc3QgaGVhZGVyQWN0aW9ucyA9IGdldEhlYWRlckFjdGlvbnMoY29udmVydGVyQ29udGV4dCk7XG5cdGNvbnN0IGhhc011bHRpVmlzdWFsaXphdGlvbnM6IGJvb2xlYW4gPVxuXHRcdG1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHwgY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZTtcblx0aWYgKGhhc011bHRpcGxlRW50aXR5U2V0cykge1xuXHRcdGNoZWNrQ2hhcnRGaWx0ZXJCYXJJZCh2aWV3cywgZmlsdGVyQmFySWQpO1xuXHR9XG5cblx0Y29uc3QgdmlzdWFsaXphdGlvbklkcyA9IGxyVGFibGVWaXN1YWxpemF0aW9uc1xuXHRcdC5tYXAodmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRyZXR1cm4gdmlzdWFsaXphdGlvbi5hbm5vdGF0aW9uLmlkO1xuXHRcdH0pXG5cdFx0LmNvbmNhdChcblx0XHRcdGxyQ2hhcnRWaXN1YWxpemF0aW9ucy5tYXAodmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRcdHJldHVybiB2aXN1YWxpemF0aW9uLmlkO1xuXHRcdFx0fSlcblx0XHQpO1xuXHRjb25zdCB0YXJnZXRDb250cm9sSWRzID0gW1xuXHRcdC4uLihoaWRlRmlsdGVyQmFyID8gW10gOiBbZmlsdGVyQmFySWRdKSxcblx0XHQuLi4obWFuaWZlc3RXcmFwcGVyLmdldFZhcmlhbnRNYW5hZ2VtZW50KCkgIT09IFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sID8gdmlzdWFsaXphdGlvbklkcyA6IFtdKSxcblx0XHQuLi4oIWhhc011bHRpVmlzdWFsaXphdGlvbnMgJiYgdmlld3MubGVuZ3RoID4gMSA/IFtJY29uVGFiQmFySUQoKV0gOiBbXSlcblx0XTtcblxuXHRyZXR1cm4ge1xuXHRcdG1haW5FbnRpdHlTZXQ6IHNDb250ZXh0UGF0aCxcblx0XHRtYWluRW50aXR5VHlwZTogc0NvbnRleHRQYXRoICsgXCIvXCIsXG5cdFx0c2luZ2xlVGFibGVJZCxcblx0XHRzaW5nbGVDaGFydElkLFxuXHRcdHNob3dUYWJDb3VudHMsXG5cdFx0aGVhZGVyQWN0aW9ucyxcblx0XHRzaG93UGlubmFibGVUb2dnbGU6IHNob3dQaW5uYWJsZVRvZ2dsZSxcblx0XHRmaWx0ZXJCYXI6IHtcblx0XHRcdHByb3BlcnR5SW5mbzogcHJvcGVydHlJbmZvRmllbGRzLFxuXHRcdFx0c2VsZWN0aW9uRmllbGRzLFxuXHRcdFx0aGlkZUJhc2ljU2VhcmNoXG5cdFx0fSxcblx0XHR2aWV3czogdmlld3MsXG5cdFx0ZmlsdGVyQmFySWQ6IGhpZGVGaWx0ZXJCYXIgPyBcIlwiIDogZmlsdGVyQmFySWQsXG5cdFx0ZmlsdGVyQ29uZGl0aW9uczoge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogc2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdGRlZmF1bHRTZW1hbnRpY0RhdGVzOiBkZWZhdWx0U2VtYW50aWNEYXRlc1xuXHRcdH0sXG5cdFx0dmFyaWFudE1hbmFnZW1lbnQ6IHtcblx0XHRcdGlkOiBmaWx0ZXJWYXJpYW50TWFuYWdlbWVudElELFxuXHRcdFx0dGFyZ2V0Q29udHJvbElkczogdGFyZ2V0Q29udHJvbElkcy5qb2luKFwiLFwiKVxuXHRcdH0sXG5cdFx0aXNNdWx0aUVudGl0eVNldHM6IGhhc011bHRpcGxlRW50aXR5U2V0cyxcblx0XHRoYXNNdWx0aVZpc3VhbGl6YXRpb25zOiBoYXNNdWx0aVZpc3VhbGl6YXRpb25zLFxuXHRcdHRlbXBsYXRlVHlwZTogbWFuaWZlc3RXcmFwcGVyLmdldFRlbXBsYXRlVHlwZSgpLFxuXHRcdHVzZVNlbWFudGljRGF0ZVJhbmdlLFxuXHRcdGZpbHRlckluaXRpYWxMYXlvdXQsXG5cdFx0ZmlsdGVyTGF5b3V0LFxuXHRcdGtwaURlZmluaXRpb25zOiBnZXRLUElEZWZpbml0aW9ucyhjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRoaWRlRmlsdGVyQmFyXG5cdH07XG59O1xuXG5mdW5jdGlvbiBnZXRDb250ZW50QXJlYUlkKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSk6IENvbnRlbnRBcmVhSUQgfCB1bmRlZmluZWQge1xuXHRsZXQgc2luZ2xlVGFibGVJZCA9IFwiXCIsXG5cdFx0c2luZ2xlQ2hhcnRJZCA9IFwiXCI7XG5cdGlmIChcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoKSB8fFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0KSB7XG5cdFx0Zm9yIChsZXQgdmlldyBvZiB2aWV3cykge1xuXHRcdFx0dmlldyA9IHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbjtcblx0XHRcdGlmICh2aWV3LmNoYXJ0Q29udHJvbElkICYmIHZpZXcudGFibGVDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlQ2hhcnRJZCA9IHZpZXcuY2hhcnRDb250cm9sSWQ7XG5cdFx0XHRcdHNpbmdsZVRhYmxlSWQgPSB2aWV3LnRhYmxlQ29udHJvbElkO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Zm9yIChsZXQgdmlldyBvZiB2aWV3cykge1xuXHRcdFx0dmlldyA9IHZpZXcgYXMgU2luZ2xlVmlld0RlZmluaXRpb247XG5cdFx0XHRpZiAoIXNpbmdsZVRhYmxlSWQgJiYgKHZpZXcgYXMgU2luZ2xlVGFibGVWaWV3RGVmaW5pdGlvbikudGFibGVDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlVGFibGVJZCA9ICh2aWV3IGFzIFNpbmdsZVRhYmxlVmlld0RlZmluaXRpb24pLnRhYmxlQ29udHJvbElkIHx8IFwiXCI7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXNpbmdsZUNoYXJ0SWQgJiYgKHZpZXcgYXMgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbikuY2hhcnRDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlQ2hhcnRJZCA9ICh2aWV3IGFzIFNpbmdsZUNoYXJ0Vmlld0RlZmluaXRpb24pLmNoYXJ0Q29udHJvbElkIHx8IFwiXCI7XG5cdFx0XHR9XG5cdFx0XHRpZiAoc2luZ2xlQ2hhcnRJZCAmJiBzaW5nbGVUYWJsZUlkKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRpZiAoc2luZ2xlVGFibGVJZCB8fCBzaW5nbGVDaGFydElkKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNoYXJ0SWQ6IHNpbmdsZUNoYXJ0SWQsXG5cdFx0XHR0YWJsZUlkOiBzaW5nbGVUYWJsZUlkXG5cdFx0fTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
641
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxpc3RSZXBvcnRDb252ZXJ0ZXIudHMiXSwibmFtZXMiOlsiZ2V0VGFibGVWaXN1YWxpemF0aW9ucyIsInZpZXdzIiwidGFibGVzIiwiZm9yRWFjaCIsInZpZXciLCJ0eXBlIiwidmlzdWFsaXphdGlvbnMiLCJzZWNvbmRhcnlWaXN1YWxpemF0aW9uIiwicHJlc2VudGF0aW9uIiwidmlzdWFsaXphdGlvbiIsIlZpc3VhbGl6YXRpb25UeXBlIiwiVGFibGUiLCJwdXNoIiwiZ2V0Q2hhcnRWaXN1YWxpemF0aW9ucyIsImNoYXJ0cyIsInByaW1hcnlWaXN1YWxpemF0aW9uIiwiQ2hhcnQiLCJnZXREZWZhdWx0U2VtYW50aWNEYXRlcyIsImZpbHRlckZpZWxkcyIsImRlZmF1bHRTZW1hbnRpY0RhdGVzIiwiZmlsdGVyRmllbGQiLCJzZXR0aW5ncyIsImRlZmF1bHRWYWx1ZXMiLCJsZW5ndGgiLCJnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImVudGl0eVR5cGUiLCJjb252ZXJ0ZXJDb250ZXh0IiwiYklzQUxQIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJFcnJvciIsImJQVkNvbXBsYWludCIsImlzUHJlc2VudGF0aW9uQ29tcGxpYW50IiwidW5kZWZpbmVkIiwiaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImRlZmF1bHRMaW5lSXRlbSIsImdldERlZmF1bHRMaW5lSXRlbSIsImdldFZpZXciLCJ2aWV3Q29udmVydGVyQ29uZmlndXJhdGlvbiIsImNvbmZpZyIsImdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbiIsImFubm90YXRpb24iLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0RW50aXR5VHlwZSIsInRhYmxlQ29udHJvbElkIiwiY2hhcnRDb250cm9sSWQiLCJ0aXRsZSIsInNlbGVjdGlvblZhcmlhbnRQYXRoIiwiaXNNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIiwia2V5IiwiY3JlYXRlVmlzdWFsaXphdGlvbiIsImlzUHJpbWFyeSIsImRlZmF1bHRWaXN1YWxpemF0aW9uIiwicHJlc2VudGF0aW9uQ3JlYXRlZCIsIk9iamVjdCIsImFzc2lnbiIsImdldFByZXNlbnRhdGlvbiIsIml0ZW0iLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwidGFyZ2V0QW5ub3RhdGlvbiIsImNyZWF0ZUFscFZpZXciLCJwcmVzZW50YXRpb25zIiwiZGVmYXVsdFBhdGgiLCJpZCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Iiwidmlld0Fubm90YXRpb24iLCJjb21waWxlQmluZGluZyIsImFubm90YXRpb25FeHByZXNzaW9uIiwiVGV4dCIsInZpc3VhbGl6YXRpb25EZWZpbml0aW9uIiwiaW5kZXgiLCJ0YWJsZVZpc3VhbGl6YXRpb24iLCJmaWx0ZXJzIiwiY29udHJvbCIsImhpZGRlbkZpbHRlcnMiLCJwYXRocyIsImtlZXBQcmV2aW91c1ByZXNvbmFsaXphdGlvbiIsIlRhYmxlSUQiLCJ0ZXJtIiwiU2VsZWN0aW9uVmFyaWFudCIsInNwbGl0IiwiY2hhcnRWaXN1YWxpemF0aW9uIiwiQ2hhcnRJRCIsImxhYmVsIiwiZnJhZ21lbnQiLCJ0ZW1wbGF0ZSIsImN1c3RvbVRhYklkIiwiQ3VzdG9tVGFiSUQiLCJnZXRWaWV3cyIsInNldHRpbmdzVmlld3MiLCJ2aWV3Q29udmVydGVyQ29uZmlncyIsInBhdGgiLCJtYW5pZmVzdFdyYXBwZXIiLCJ2aWV3Q29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHRGb3IiLCJjb250ZXh0UGF0aCIsImVudGl0eVNldCIsImdldENvbnRleHRQYXRoIiwicmVzb2x2ZWRUYXJnZXRjb252ZXJ0ZXJDb250ZXh0IiwiZ2V0QWxwVmlld0NvbmZpZyIsIm1hcCIsInZpZXdDb252ZXJ0ZXJDb25maWciLCJ2aWV3Q29uZmlncyIsImNoYXJ0IiwidGFibGUiLCJnZXREZWZhdWx0Q2hhcnQiLCJnZXRIZWFkZXJBY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiY2hlY2tDaGFydEZpbHRlckJhcklkIiwiZmlsdGVyQmFySWQiLCJmaWx0ZXJJZCIsImNvbnZlcnRQYWdlIiwic0NvbnRleHRQYXRoIiwidmlld3NEZWZpbml0aW9uIiwiZ2V0Vmlld0NvbmZpZ3VyYXRpb24iLCJoYXNNdWx0aXBsZUVudGl0eVNldHMiLCJzaG93VGFiQ291bnRzIiwic2hvd0NvdW50cyIsImxyVGFibGVWaXN1YWxpemF0aW9ucyIsImxyQ2hhcnRWaXN1YWxpemF0aW9ucyIsInNob3dQaW5uYWJsZVRvZ2dsZSIsInNvbWUiLCJzaW5nbGVUYWJsZUlkIiwic2luZ2xlQ2hhcnRJZCIsIkZpbHRlckJhcklEIiwiZmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCIsIkZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQiLCJmYkNvbmZpZyIsImdldEZpbHRlckNvbmZpZ3VyYXRpb24iLCJmaWx0ZXJJbml0aWFsTGF5b3V0IiwiaW5pdGlhbExheW91dCIsInRvTG93ZXJDYXNlIiwiZmlsdGVyTGF5b3V0IiwibGF5b3V0IiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJvQ29uZmlnIiwiZ2V0Q29udGVudEFyZWFJZCIsImNoYXJ0SWQiLCJ0YWJsZUlkIiwiaGlkZUZpbHRlckJhciIsImlzRmlsdGVyQmFySGlkZGVuIiwibHJGaWx0ZXJQcm9wZXJ0aWVzIiwiZ2V0U2VsZWN0aW9uRmllbGRzIiwic2VsZWN0aW9uRmllbGRzIiwicHJvcGVydHlJbmZvRmllbGRzIiwic1Byb3BlcnR5SW5mbyIsImhpZGVCYXNpY1NlYXJjaCIsImdldEZpbHRlckJhcmhpZGVCYXNpY1NlYXJjaCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXRTZWxlY3Rpb25WYXJpYW50IiwiZ2V0TWFuaWZlc3RGaWx0ZXJGaWVsZHMiLCJoZWFkZXJBY3Rpb25zIiwiaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsInZpc3VhbGl6YXRpb25JZHMiLCJjb25jYXQiLCJ0YXJnZXRDb250cm9sSWRzIiwiZ2V0VmFyaWFudE1hbmFnZW1lbnQiLCJWYXJpYW50TWFuYWdlbWVudFR5cGUiLCJDb250cm9sIiwiSWNvblRhYkJhcklEIiwiaWNvblRhYkJhcklkIiwiZGlzcGxheU11bHRpVmlzdWFsaXphdGlvbnMiLCJzdGlja3lTdWJoZWFkZXJQcm92aWRlciIsImdldFN0aWNreU11bHRpVGFiSGVhZGVyQ29uZmlndXJhdGlvbiIsIm1haW5FbnRpdHlTZXQiLCJtYWluRW50aXR5VHlwZSIsImZpbHRlckJhciIsInByb3BlcnR5SW5mbyIsImZpbHRlckNvbmRpdGlvbnMiLCJ2YXJpYW50TWFuYWdlbWVudCIsImpvaW4iLCJpc011bHRpRW50aXR5U2V0cyIsInRlbXBsYXRlVHlwZSIsImtwaURlZmluaXRpb25zIiwiZ2V0S1BJRGVmaW5pdGlvbnMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBU0Esc0JBQVQsQ0FBZ0NDLEtBQWhDLEVBQXlGO0FBQ3hGLFFBQU1DLE1BQTRCLEdBQUcsRUFBckM7QUFDQUQsSUFBQUEsS0FBSyxDQUFDRSxPQUFOLENBQWMsVUFBU0MsSUFBVCxFQUFlO0FBQzVCLFVBQUksQ0FBRUEsSUFBRCxDQUErQkMs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bnQiOlsiaW1wb3J0IHtcblx0TXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24sXG5cdFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0U2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRWaXN1YWxpemF0aW9uVHlwZSxcblx0VGVtcGxhdGVUeXBlLFxuXHRDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0Q3VzdG9tVmlld1RlbXBsYXRlQ29uZmlndXJhdGlvbixcblx0VmFyaWFudE1hbmFnZW1lbnRUeXBlXG59IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBFbnRpdHlUeXBlIH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7XG5cdERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbixcblx0Z2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uLFxuXHRnZXREZWZhdWx0Q2hhcnQsXG5cdGdldERlZmF1bHRMaW5lSXRlbSxcblx0Z2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQsXG5cdGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsXG5cdGlzUHJlc2VudGF0aW9uQ29tcGxpYW50LFxuXHRnZXRTZWxlY3Rpb25WYXJpYW50LFxuXHRpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudFxufSBmcm9tIFwiLi4vY29udHJvbHMvQ29tbW9uL0RhdGFWaXN1YWxpemF0aW9uXCI7XG5pbXBvcnQge1xuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9nZW5lcmF0ZWQvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDdXN0b21UYWJJRCwgRmlsdGVyQmFySUQsIEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQsIFRhYmxlSUQsIENoYXJ0SUQsIEljb25UYWJCYXJJRCB9IGZyb20gXCIuLi9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgeyBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB7IENoYXJ0VmlzdWFsaXphdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9DaGFydFwiO1xuaW1wb3J0IHsgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IENvbmZpZ3VyYWJsZU9iamVjdCwgaW5zZXJ0Q3VzdG9tRWxlbWVudHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgYW5ub3RhdGlvbkV4cHJlc3Npb24sIGNvbXBpbGVCaW5kaW5nIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IEtQSURlZmluaXRpb24sIGdldEtQSURlZmluaXRpb25zIH0gZnJvbSBcIi4uL2NvbnRyb2xzL0NvbW1vbi9LUElcIjtcbmltcG9ydCB7XG5cdGdldFNlbGVjdGlvbkZpZWxkcyxcblx0Z2V0TWFuaWZlc3RGaWx0ZXJGaWVsZHMsXG5cdGdldEZpbHRlckJhcmhpZGVCYXNpY1NlYXJjaCxcblx0RmlsdGVyRmllbGQsXG5cdEN1c3RvbUVsZW1lbnRGaWx0ZXJGaWVsZFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9MaXN0UmVwb3J0L0ZpbHRlckJhclwiO1xuXG50eXBlIFZpZXdBbm5vdGF0aW9uc1R5cGVUeXBlcyA9IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMgfCBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzO1xudHlwZSBWYXJpYW50TWFuYWdlbWVudERlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHRhcmdldENvbnRyb2xJZHM6IHN0cmluZztcbn07XG5cbnR5cGUgTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiA9IFZpZXdQYXRoQ29uZmlndXJhdGlvbiAmIHtcblx0YW5ub3RhdGlvbj86IERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG59O1xuXG50eXBlIFNpbmdsZVZpZXdDb25maWd1cmF0aW9uID0ge1xuXHRhbm5vdGF0aW9uPzogRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbnR5cGUgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb24gPSBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uICYge1xuXHR0eXBlOiBzdHJpbmc7XG59O1xuXG50eXBlIFZpZXdDb25maWd1cmF0aW9uID0gTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiB8IFNpbmdsZVZpZXdDb25maWd1cmF0aW9uIHwgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb247XG50eXBlIFZpZXdBbm5vdGF0aW9uQ29uZmlndXJhdGlvbiA9IE11bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24gfCBTaW5nbGVWaWV3Q29uZmlndXJhdGlvbjtcblxudHlwZSBWaWV3Q29udmVydGVyU2V0dGluZ3MgPSBWaWV3Q29uZmlndXJhdGlvbiAmIHtcblx0Y29udmVydGVyQ29udGV4dD86IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG50eXBlIERlZmF1bHRTZW1hbnRpY0RhdGUgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdG9wZXJhdG9yOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0UmVwb3J0RGVmaW5pdGlvbiA9IHtcblx0bWFpbkVudGl0eVNldDogc3RyaW5nO1xuXHRtYWluRW50aXR5VHlwZTogc3RyaW5nOyAvLyBlbnRpdHlUeXBlPiBhdCB0aGUgc3RhcnQgb2YgTFIgdGVtcGxhdGluZ1xuXHRzaW5nbGVUYWJsZUlkPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggc2luZ2xlIFRhYmxlIG1vZGVcblx0c2luZ2xlQ2hhcnRJZD86IHN0cmluZzsgLy8gb25seSB3aXRoIHNpbmdsZSBUYWJsZSBtb2RlXG5cdGRpc3BsYXlNdWx0aVZpc3VhbGl6YXRpb25zOiBib29sZWFuO1xuXHRpY29uVGFiQmFySWQ6IHN0cmluZztcblx0c3RpY2t5U3ViaGVhZGVyUHJvdmlkZXI/OiBzdHJpbmc7XG5cdHNob3dUYWJDb3VudHM/OiBib29sZWFuOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRoZWFkZXJBY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHNob3dQaW5uYWJsZVRvZ2dsZT86IGJvb2xlYW47XG5cdGZpbHRlckJhcjoge1xuXHRcdHByb3BlcnR5SW5mbzogYW55O1xuXHRcdHNlbGVjdGlvbkZpZWxkczogRmlsdGVyRmllbGRbXTtcblx0XHRoaWRlQmFzaWNTZWFyY2g6IGJvb2xlYW47XG5cdH07XG5cdHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXTtcblx0ZmlsdGVyQ29uZGl0aW9uczogb2JqZWN0O1xuXHRpc011bHRpRW50aXR5U2V0czogYm9vbGVhbjtcblx0ZmlsdGVyQmFySWQ6IHN0cmluZztcblx0dmFyaWFudE1hbmFnZW1lbnQ6IFZhcmlhbnRNYW5hZ2VtZW50RGVmaW5pdGlvbjtcblx0aGFzTXVsdGlWaXN1YWxpemF0aW9uczogYm9vbGVhbjtcblx0dGVtcGxhdGVUeXBlOiBUZW1wbGF0ZVR5cGU7XG5cdHVzZVNlbWFudGljRGF0ZVJhbmdlPzogYm9vbGVhbjtcblx0ZmlsdGVySW5pdGlhbExheW91dD86IHN0cmluZztcblx0ZmlsdGVyTGF5b3V0Pzogc3RyaW5nO1xuXHRrcGlEZWZpbml0aW9uczogS1BJRGVmaW5pdGlvbltdO1xuXHRoaWRlRmlsdGVyQmFyOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uID0gU2luZ2xlVmlld0RlZmluaXRpb24gfCBDdXN0b21WaWV3RGVmaW5pdGlvbiB8IENvbWJpbmVkVmlld0RlZmluaXRpb247XG5cbmV4cG9ydCB0eXBlIENvbWJpbmVkVmlld0RlZmluaXRpb24gPSB7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggb24gbXVsdGkgVGFibGUgbW9kZVxuXHR0aXRsZT86IHN0cmluZzsgLy8gb25seSB3aXRoIG11bHRpIFRhYmxlIG1vZGVcblx0cHJpbWFyeVZpc3VhbGl6YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbjtcblx0c2Vjb25kYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uO1xuXHR0YWJsZUNvbnRyb2xJZDogc3RyaW5nO1xuXHRjaGFydENvbnRyb2xJZDogc3RyaW5nO1xuXHRkZWZhdWx0UGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZpZXdEZWZpbml0aW9uID0ge1xuXHR0aXRsZT86IHN0cmluZzsgLy8gb25seSB3aXRoIG11bHRpIFRhYmxlIG1vZGVcblx0ZnJhZ21lbnQ6IHN0cmluZztcblx0dHlwZTogc3RyaW5nO1xuXHRjdXN0b21UYWJJZDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFNpbmdsZVZpZXdEZWZpbml0aW9uID0gU2luZ2xlVGFibGVWaWV3RGVmaW5pdGlvbiB8IFNpbmdsZUNoYXJ0Vmlld0RlZmluaXRpb247XG5cbmV4cG9ydCB0eXBlIEJhc2VTaW5nbGVWaWV3RGVmaW5pdGlvbiA9IHtcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBvbiBtdWx0aSBUYWJsZSBtb2RlXG5cdHRpdGxlPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVRhYmxlVmlld0RlZmluaXRpb24gPSBCYXNlU2luZ2xlVmlld0RlZmluaXRpb24gJiB7XG5cdHRhYmxlQ29udHJvbElkPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbiA9IEJhc2VTaW5nbGVWaWV3RGVmaW5pdGlvbiAmIHtcblx0Y2hhcnRDb250cm9sSWQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIENvbnRlbnRBcmVhSUQgPSB7XG5cdGNoYXJ0SWQ6IHN0cmluZztcblx0dGFibGVJZDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIGxpc3QgcmVwb3J0IHRhYmxlcy5cbiAqIEBwYXJhbSB7TGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uW119IHZpZXdzIFRoZSBsaXN0IHJlcG9ydCB2aWV3cyBjb25maWd1cmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHJldHVybnMge1RhYmxlVmlzdWFsaXphdGlvbltdfSBUaGUgbGlzdCByZXBvcnQgdGFibGVcbiAqL1xuZnVuY3Rpb24gZ2V0VGFibGVWaXN1YWxpemF0aW9ucyh2aWV3czogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uW10pOiBUYWJsZVZpc3VhbGl6YXRpb25bXSB7XG5cdGNvbnN0IHRhYmxlczogVGFibGVWaXN1YWxpemF0aW9uW10gPSBbXTtcblx0dmlld3MuZm9yRWFjaChmdW5jdGlvbih2aWV3KSB7XG5cdFx0aWYgKCEodmlldyBhcyBDdXN0b21WaWV3RGVmaW5pdGlvbikudHlwZSkge1xuXHRcdFx0Y29uc3QgdmlzdWFsaXphdGlvbnMgPSAodmlldyBhcyBDb21iaW5lZFZpZXdEZWZpbml0aW9uKS5zZWNvbmRhcnlWaXN1YWxpemF0aW9uXG5cdFx0XHRcdD8gKHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbikuc2Vjb25kYXJ5VmlzdWFsaXphdGlvbi52aXN1YWxpemF0aW9uc1xuXHRcdFx0XHQ6ICh2aWV3IGFzIFNpbmdsZVZpZXdEZWZpbml0aW9uKS5wcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnM7XG5cblx0XHRcdHZpc3VhbGl6YXRpb25zLmZvckVhY2goZnVuY3Rpb24odmlzdWFsaXphdGlvbikge1xuXHRcdFx0XHRpZiAodmlzdWFsaXphdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5UYWJsZSkge1xuXHRcdFx0XHRcdHRhYmxlcy5wdXNoKHZpc3VhbGl6YXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gdGFibGVzO1xufVxuXG5mdW5jdGlvbiBnZXRDaGFydFZpc3VhbGl6YXRpb25zKHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSk6IENoYXJ0VmlzdWFsaXphdGlvbltdIHtcblx0Y29uc3QgY2hhcnRzOiBDaGFydFZpc3VhbGl6YXRpb25bXSA9IFtdO1xuXHR2aWV3cy5mb3JFYWNoKGZ1bmN0aW9uKHZpZXcpIHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9ICh2aWV3IGFzIENvbWJpbmVkVmlld0RlZmluaXRpb24pLnByaW1hcnlWaXN1YWxpemF0aW9uXG5cdFx0XHRcdD8gKHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbikucHJpbWFyeVZpc3VhbGl6YXRpb24udmlzdWFsaXphdGlvbnNcblx0XHRcdFx0OiAodmlldyBhcyBTaW5nbGVWaWV3RGVmaW5pdGlvbikucHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zO1xuXG5cdFx0XHR2aXN1YWxpemF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0aWYgKHZpc3VhbGl6YXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQpIHtcblx0XHRcdFx0XHRjaGFydHMucHVzaCh2aXN1YWxpemF0aW9uKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGNoYXJ0cztcbn1cblxuY29uc3QgZ2V0RGVmYXVsdFNlbWFudGljRGF0ZXMgPSBmdW5jdGlvbihmaWx0ZXJGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUVsZW1lbnRGaWx0ZXJGaWVsZD4pOiBSZWNvcmQ8c3RyaW5nLCBEZWZhdWx0U2VtYW50aWNEYXRlPiB7XG5cdGNvbnN0IGRlZmF1bHRTZW1hbnRpY0RhdGVzOiBhbnkgPSB7fTtcblx0Zm9yIChjb25zdCBmaWx0ZXJGaWVsZCBpbiBmaWx0ZXJGaWVsZHMpIHtcblx0XHRpZiAoZmlsdGVyRmllbGRzW2ZpbHRlckZpZWxkXT8uc2V0dGluZ3M/LmRlZmF1bHRWYWx1ZXM/Lmxlbmd0aCkge1xuXHRcdFx0ZGVmYXVsdFNlbWFudGljRGF0ZXNbZmlsdGVyRmllbGRdID0gZmlsdGVyRmllbGRzW2ZpbHRlckZpZWxkXT8uc2V0dGluZ3M/LmRlZmF1bHRWYWx1ZXM7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBkZWZhdWx0U2VtYW50aWNEYXRlcztcbn07XG5cbi8qKlxuICogRmluZCBhIHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIGxpc3QgcmVwb3J0LlxuICpcbiAqIEBwYXJhbSB7RW50aXR5VHlwZX0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBFbnRpdHlUeXBlXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIGJJc0FMUFxuICogQHJldHVybnMge0xpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZH0gQSBjb21wbGlhbnQgYW5ub3RhdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSBsaXN0IHJlcG9ydFxuICovXG5mdW5jdGlvbiBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihcblx0ZW50aXR5VHlwZTogRW50aXR5VHlwZSxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YklzQUxQOiBCb29sZWFuXG4pOiBMaW5lSXRlbSB8IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMgfCBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoKCk7XG5cdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGUsIGFubm90YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0aWYgKGFubm90YXRpb25QYXRoICYmIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdGlmICghcHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IGNvbmZpZ3VyZWQgaW4gdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0XCIpO1xuXHRcdH1cblx0XHRjb25zdCBiUFZDb21wbGFpbnQgPSBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQpO1xuXHRcdGlmICghYlBWQ29tcGxhaW50KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCwgYklzQUxQKSkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9XG5cdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0aWYgKGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCkpIHtcblx0XHRcdHJldHVybiBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdH1cblx0fVxuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0aWYgKGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCkpIHtcblx0XHRcdHJldHVybiBwcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdH1cblx0fVxuXHRpZiAoIWJJc0FMUCkge1xuXHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbSA9IGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlKTtcblx0XHRpZiAoZGVmYXVsdExpbmVJdGVtKSB7XG5cdFx0XHRyZXR1cm4gZGVmYXVsdExpbmVJdGVtO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5jb25zdCBnZXRWaWV3ID0gZnVuY3Rpb24odmlld0NvbnZlcnRlckNvbmZpZ3VyYXRpb246IFZpZXdDb252ZXJ0ZXJTZXR0aW5ncyk6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbiB7XG5cdGxldCBjb25maWcgPSB2aWV3Q29udmVydGVyQ29uZmlndXJhdGlvbjtcblx0aWYgKGNvbmZpZy5jb252ZXJ0ZXJDb250ZXh0KSB7XG5cdFx0bGV0IGNvbnZlcnRlckNvbnRleHQgPSBjb25maWcuY29udmVydGVyQ29udGV4dDtcblx0XHRjb25maWcgPSBjb25maWcgYXMgVmlld0Fubm90YXRpb25Db25maWd1cmF0aW9uO1xuXHRcdGxldCBwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiA9IGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0XHRcdGNvbmZpZy5hbm5vdGF0aW9uXG5cdFx0XHRcdD8gY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKGNvbmZpZy5hbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkpXG5cdFx0XHRcdDogXCJcIixcblx0XHRcdHRydWUsXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0Y29uZmlnIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvblxuXHRcdCk7XG5cdFx0bGV0IHRhYmxlQ29udHJvbElkID0gXCJcIjtcblx0XHRsZXQgY2hhcnRDb250cm9sSWQgPSBcIlwiO1xuXHRcdGxldCB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gXCJcIjtcblx0XHRsZXQgc2VsZWN0aW9uVmFyaWFudFBhdGggPSBcIlwiO1xuXHRcdGNvbnN0IGlzTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiA9IGZ1bmN0aW9uKGNvbmZpZzogVmlld0NvbmZpZ3VyYXRpb24pOiBjb25maWcgaXMgTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiB7XG5cdFx0XHRyZXR1cm4gKGNvbmZpZyBhcyBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uKS5rZXkgIT09IHVuZGVmaW5lZDtcblx0XHR9O1xuXHRcdGNvbnN0IGNyZWF0ZVZpc3VhbGl6YXRpb24gPSBmdW5jdGlvbihwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiwgaXNQcmltYXJ5PzogYm9vbGVhbikge1xuXHRcdFx0bGV0IGRlZmF1bHRWaXN1YWxpemF0aW9uO1xuXHRcdFx0Zm9yIChjb25zdCB2aXN1YWxpemF0aW9uIG9mIHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucykge1xuXHRcdFx0XHRpZiAoaXNQcmltYXJ5ICYmIHZpc3VhbGl6YXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQpIHtcblx0XHRcdFx0XHRkZWZhdWx0VmlzdWFsaXphdGlvbiA9IHZpc3VhbGl6YXRpb247XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFpc1ByaW1hcnkgJiYgdmlzdWFsaXphdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5UYWJsZSkge1xuXHRcdFx0XHRcdGRlZmF1bHRWaXN1YWxpemF0aW9uID0gdmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcHJlc2VudGF0aW9uQ3JlYXRlZCA9IE9iamVjdC5hc3NpZ24oe30sIHByZXNlbnRhdGlvbik7XG5cdFx0XHRpZiAoZGVmYXVsdFZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0cHJlc2VudGF0aW9uQ3JlYXRlZC52aXN1YWxpemF0aW9ucyA9IFtkZWZhdWx0VmlzdWFsaXphdGlvbl07XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcHJlc2VudGF0aW9uQ3JlYXRlZDtcblx0XHR9O1xuXHRcdGNvbnN0IGdldFByZXNlbnRhdGlvbiA9IGZ1bmN0aW9uKGl0ZW06IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikge1xuXHRcdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGl0ZW0uYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0Y29uc3QgdGFyZ2V0QW5ub3RhdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0XHRcdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvbiA9IHRhcmdldEFubm90YXRpb247XG5cdFx0XHRwcmVzZW50YXRpb24gPSBnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24oXG5cdFx0XHRcdGFubm90YXRpb25cblx0XHRcdFx0XHQ/IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChhbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkpXG5cdFx0XHRcdFx0OiBcIlwiLFxuXHRcdFx0XHR0cnVlLFxuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRjb25maWcgYXMgVmlld1BhdGhDb25maWd1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuIHByZXNlbnRhdGlvbjtcblx0XHR9O1xuXHRcdGNvbnN0IGNyZWF0ZUFscFZpZXcgPSBmdW5jdGlvbihcblx0XHRcdHByZXNlbnRhdGlvbnM6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbltdLFxuXHRcdFx0ZGVmYXVsdFBhdGg6IFwiYm90aFwiIHwgXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgdW5kZWZpbmVkXG5cdFx0KSB7XG5cdFx0XHRjb25zdCBwcmltYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gY3JlYXRlVmlzdWFsaXphdGlvbihwcmVzZW50YXRpb25zWzBdLCB0cnVlKTtcblx0XHRcdGNoYXJ0Q29udHJvbElkID0gKHByaW1hcnlWaXN1YWxpemF0aW9uPy52aXN1YWxpemF0aW9uc1swXSBhcyBDaGFydFZpc3VhbGl6YXRpb24pLmlkO1xuXHRcdFx0Y29uc3Qgc2Vjb25kYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gY3JlYXRlVmlzdWFsaXphdGlvbihcblx0XHRcdFx0cHJlc2VudGF0aW9uc1sxXSA/IHByZXNlbnRhdGlvbnNbMV0gOiBwcmVzZW50YXRpb25zWzBdXG5cdFx0XHQpO1xuXHRcdFx0dGFibGVDb250cm9sSWQgPSAoc2Vjb25kYXJ5VmlzdWFsaXphdGlvbj8udmlzdWFsaXphdGlvbnNbMF0gYXMgVGFibGVWaXN1YWxpemF0aW9uKS5hbm5vdGF0aW9uLmlkO1xuXHRcdFx0aWYgKHByaW1hcnlWaXN1YWxpemF0aW9uICYmIHNlY29uZGFyeVZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0Y29uc3QgdmlldzogQ29tYmluZWRWaWV3RGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0XHRwcmltYXJ5VmlzdWFsaXphdGlvbixcblx0XHRcdFx0XHRzZWNvbmRhcnlWaXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdHRhYmxlQ29udHJvbElkLFxuXHRcdFx0XHRcdGNoYXJ0Q29udHJvbElkLFxuXHRcdFx0XHRcdGRlZmF1bHRQYXRoXG5cdFx0XHRcdH07XG5cdFx0XHRcdHJldHVybiB2aWV3O1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKHByZXNlbnRhdGlvbj8udmlzdWFsaXphdGlvbnM/Lmxlbmd0aCA9PT0gMiAmJiBjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlKSB7XG5cdFx0XHRjb25zdCB2aWV3OiBDb21iaW5lZFZpZXdEZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gY3JlYXRlQWxwVmlldyhbcHJlc2VudGF0aW9uXSwgXCJib3RoXCIpO1xuXHRcdFx0aWYgKHZpZXcpIHtcblx0XHRcdFx0cmV0dXJuIHZpZXc7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyhjb25maWcgYXMgVmlld1BhdGhDb25maWd1cmF0aW9uKSB8fFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZVxuXHRcdCkge1xuXHRcdFx0Y29uc3QgeyBwcmltYXJ5LCBzZWNvbmRhcnkgfSA9IGNvbmZpZyBhcyBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblx0XHRcdGlmIChwcmltYXJ5ICYmIHByaW1hcnkubGVuZ3RoICYmIHNlY29uZGFyeSAmJiBzZWNvbmRhcnkubGVuZ3RoKSB7XG5cdFx0XHRcdGNvbnN0IHZpZXc6IENvbWJpbmVkVmlld0RlZmluaXRpb24gfCB1bmRlZmluZWQgPSBjcmVhdGVBbHBWaWV3KFxuXHRcdFx0XHRcdFtnZXRQcmVzZW50YXRpb24ocHJpbWFyeVswXSksIGdldFByZXNlbnRhdGlvbihzZWNvbmRhcnlbMF0pXSxcblx0XHRcdFx0XHQoY29uZmlnIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uKS5kZWZhdWx0UGF0aFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAodmlldykge1xuXHRcdFx0XHRcdHJldHVybiB2aWV3O1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJTZWNvbmRhcnlJdGVtcyBpbiB0aGUgVmlld3MgaXMgbm90IHByZXNlbnRcIik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChpc011bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24oY29uZmlnKSkge1xuXHRcdFx0Ly8ga2V5IGV4aXN0cyBvbmx5IG9uIG11bHRpIHRhYmxlcyBtb2RlXG5cdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmFubm90YXRpb25QYXRoKTtcblx0XHRcdGNvbnN0IHZpZXdBbm5vdGF0aW9uOiBWaWV3QW5ub3RhdGlvbnNUeXBlVHlwZXMgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFZpZXdBbm5vdGF0aW9uc1R5cGVUeXBlcztcblx0XHRcdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdFx0dGl0bGUgPSBjb21waWxlQmluZGluZyhhbm5vdGF0aW9uRXhwcmVzc2lvbih2aWV3QW5ub3RhdGlvbi5UZXh0KSk7XG5cdFx0XHQvLyBOZWVkIHRvIGxvb3Agb24gdGFibGUgaW50byB2aWV3cyBzaW5jZSBtdWx0aSB0YWJsZSBtb2RlIGdldCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIChoaWRkZW4gZmlsdGVycyBvciBUYWJsZSBJZClcblx0XHRcdHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucy5mb3JFYWNoKCh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbiwgaW5kZXgpID0+IHtcblx0XHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi50eXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSBWaXN1YWxpemF0aW9uVHlwZS5UYWJsZTpcblx0XHRcdFx0XHRcdGNvbnN0IHRhYmxlVmlzdWFsaXphdGlvbiA9IHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9uc1tpbmRleF0gYXMgVGFibGVWaXN1YWxpemF0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc3QgZmlsdGVycyA9IHRhYmxlVmlzdWFsaXphdGlvbi5jb250cm9sLmZpbHRlcnMgfHwge307XG5cdFx0XHRcdFx0XHRmaWx0ZXJzLmhpZGRlbkZpbHRlcnMgPSBmaWx0ZXJzLmhpZGRlbkZpbHRlcnMgfHwgeyBwYXRoczogW10gfTtcblx0XHRcdFx0XHRcdGlmICghKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmtlZXBQcmV2aW91c1ByZXNvbmFsaXphdGlvbikge1xuXHRcdFx0XHRcdFx0XHQvLyBOZWVkIHRvIG92ZXJyaWRlIFRhYmxlIElkIHRvIG1hdGNoIHdpdGggVGFiIEtleSAoY3VycmVudGx5IG9ubHkgdGFibGUgaXMgbWFuYWdlZCBpbiBtdWx0aXBsZSB2aWV3IG1vZGUpXG5cdFx0XHRcdFx0XHRcdHRhYmxlVmlzdWFsaXphdGlvbi5hbm5vdGF0aW9uLmlkID0gVGFibGVJRCgoY29uZmlnIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikua2V5IHx8IFwiXCIsIFwiTGluZUl0ZW1cIik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25maWcgPSBjb25maWcgYXMgVmlld0Fubm90YXRpb25Db25maWd1cmF0aW9uO1xuXHRcdFx0XHRcdFx0aWYgKGNvbmZpZyAmJiBjb25maWcuYW5ub3RhdGlvbiAmJiBjb25maWcuYW5ub3RhdGlvbi50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRcdFx0XHRcdHNlbGVjdGlvblZhcmlhbnRQYXRoID0gKGNvbmZpZy5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMpLlNlbGVjdGlvblZhcmlhbnQuZnVsbHlRdWFsaWZpZWROYW1lLnNwbGl0KFxuXHRcdFx0XHRcdFx0XHRcdFwiQFwiXG5cdFx0XHRcdFx0XHRcdClbMV07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50UGF0aCA9IChjb25maWcgYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKS5hbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vUHJvdmlkZSBTZWxlY3Rpb24gVmFyaWFudCB0byBoaWRkZW5GaWx0ZXJzIGluIG9yZGVyIHRvIHNldCB0aGUgU1YgZmlsdGVycyB0byB0aGUgdGFibGUuXG5cdFx0XHRcdFx0XHQvL01EQyBUYWJsZSBvdmVycmlkZXMgYmluZGluZyBGaWx0ZXIgYW5kIGZyb20gU0FQIEZFIHRoZSBvbmx5IG1ldGhvZCB3aGVyZSB3ZSBhcmUgYWJsZSB0byBhZGRcblx0XHRcdFx0XHRcdC8vYWRkaXRpb25hbCBmaWx0ZXIgaXMgJ3JlYmluZFRhYmxlJyBpbnRvIFRhYmxlIGRlbGVnYXRlLlxuXHRcdFx0XHRcdFx0Ly9UbyBhdm9pZCBpbXBsZW1lbnRpbmcgc3BlY2lmaWMgTFIgZmVhdHVyZSB0byBTQVAgRkUgTWFjcm8gVGFibGUsIHRoZSBmaWx0ZXIocykgcmVsYXRlZCB0byB0aGUgVGFiIChtdWx0aSB0YWJsZSBtb2RlKVxuXHRcdFx0XHRcdFx0Ly9jYW4gYmUgcGFzc2VkIHRvIG1hY3JvIHRhYmxlIHZpYSBwYXJhbWV0ZXIvY29udGV4dCBuYW1lZCBmaWx0ZXJzIGFuZCBrZXkgaGlkZGVuRmlsdGVycy5cblx0XHRcdFx0XHRcdGZpbHRlcnMuaGlkZGVuRmlsdGVycy5wYXRocy5wdXNoKHsgYW5ub3RhdGlvblBhdGg6IHNlbGVjdGlvblZhcmlhbnRQYXRoIH0pO1xuXHRcdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uLmNvbnRyb2wuZmlsdGVycyA9IGZpbHRlcnM7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0OlxuXHRcdFx0XHRcdFx0Y29uc3QgY2hhcnRWaXN1YWxpemF0aW9uID0gcHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zW2luZGV4XSBhcyBDaGFydFZpc3VhbGl6YXRpb247XG5cdFx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24uaWQgPSBDaGFydElEKChjb25maWcgYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKS5rZXkgfHwgXCJcIiwgXCJDaGFydFwiKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucy5mb3JFYWNoKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0+IHtcblx0XHRcdGlmICh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5UYWJsZSkge1xuXHRcdFx0XHR0YWJsZUNvbnRyb2xJZCA9IHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmFubm90YXRpb24uaWQ7XG5cdFx0XHR9IGVsc2UgaWYgKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSB7XG5cdFx0XHRcdGNoYXJ0Q29udHJvbElkID0gdmlzdWFsaXphdGlvbkRlZmluaXRpb24uaWQ7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHByZXNlbnRhdGlvbixcblx0XHRcdHRhYmxlQ29udHJvbElkLFxuXHRcdFx0Y2hhcnRDb250cm9sSWQsXG5cdFx0XHR0aXRsZSxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnRQYXRoXG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRjb25maWcgPSBjb25maWcgYXMgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb247XG5cdFx0Y29uc3QgdGl0bGUgPSBjb25maWcubGFiZWwsXG5cdFx0XHRmcmFnbWVudCA9IGNvbmZpZy50ZW1wbGF0ZSxcblx0XHRcdHR5cGUgPSBjb25maWcudHlwZSxcblx0XHRcdGN1c3RvbVRhYklkID0gQ3VzdG9tVGFiSUQoY29uZmlnLmtleSB8fCBcIlwiKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dGl0bGUsXG5cdFx0XHRmcmFnbWVudCxcblx0XHRcdHR5cGUsXG5cdFx0XHRjdXN0b21UYWJJZFxuXHRcdH07XG5cdH1cbn07XG5cbmNvbnN0IGdldFZpZXdzID0gZnVuY3Rpb24oXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHNldHRpbmdzVmlld3M6IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkXG4pOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSB7XG5cdGxldCB2aWV3Q29udmVydGVyQ29uZmlnczogVmlld0NvbnZlcnRlclNldHRpbmdzW10gPSBbXTtcblx0aWYgKHNldHRpbmdzVmlld3MpIHtcblx0XHRzZXR0aW5nc1ZpZXdzLnBhdGhzLmZvckVhY2goKHBhdGg6IFZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24pID0+IHtcblx0XHRcdGlmIChjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMocGF0aCBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb24pKSB7XG5cdFx0XHRcdGlmIChzZXR0aW5nc1ZpZXdzLnBhdGhzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBTFAgZmxhdm9yIGNhbm5vdCBoYXZlIG11bHRpcGxlIHZpZXdzXCIpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHBhdGggPSBwYXRoIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0XHRcdHZpZXdDb252ZXJ0ZXJDb25maWdzLnB1c2goe1xuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByaW1hcnk6IHBhdGgucHJpbWFyeSxcblx0XHRcdFx0XHRcdHNlY29uZGFyeTogcGF0aC5zZWNvbmRhcnksXG5cdFx0XHRcdFx0XHRkZWZhdWx0UGF0aDogcGF0aC5kZWZhdWx0UGF0aFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKChwYXRoIGFzIEN1c3RvbVZpZXdDb25maWd1cmF0aW9uKS50ZW1wbGF0ZSkge1xuXHRcdFx0XHRwYXRoID0gcGF0aCBhcyBDdXN0b21WaWV3Q29uZmlndXJhdGlvbjtcblx0XHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdFx0a2V5OiBwYXRoLmtleSxcblx0XHRcdFx0XHRsYWJlbDogcGF0aC5sYWJlbCxcblx0XHRcdFx0XHR0ZW1wbGF0ZTogcGF0aC50ZW1wbGF0ZSxcblx0XHRcdFx0XHR0eXBlOiBcIkN1c3RvbVwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cGF0aCA9IHBhdGggYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0XHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLFxuXHRcdFx0XHRcdHZpZXdDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFxuXHRcdFx0XHRcdFx0cGF0aC5jb250ZXh0UGF0aCB8fCAocGF0aC5lbnRpdHlTZXQgJiYgXCIvXCIgKyBwYXRoLmVudGl0eVNldCkgfHwgY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRlbnRpdHlUeXBlID0gdmlld0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXG5cdFx0XHRcdGlmIChlbnRpdHlUeXBlICYmIHZpZXdDb252ZXJ0ZXJDb250ZXh0KSB7XG5cdFx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBtYW5pZmVzdFdyYXBwZXIuZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgoKTtcblx0XHRcdFx0XHRsZXQgYW5ub3RhdGlvbjtcblx0XHRcdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IHZpZXdDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKHBhdGguYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldEFubm90YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdFx0XHRcdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblx0XHRcdFx0XHRpZiAodGFyZ2V0QW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdFx0aWYgKHRhcmdldEFubm90YXRpb24udGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0XHRcdFx0XHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdFx0XHRcdHZpZXdDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZWRUYXJnZXRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uID0gZ2V0RGVmYXVsdExpbmVJdGVtKHZpZXdDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSkgYXMgTGluZUl0ZW07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24gPSB0YXJnZXRBbm5vdGF0aW9uO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IHZpZXdDb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogcGF0aC5hbm5vdGF0aW9uUGF0aCxcblx0XHRcdFx0XHRcdFx0a2VlcFByZXZpb3VzUHJlc29uYWxpemF0aW9uOiBwYXRoLmtlZXBQcmV2aW91c1ByZXNvbmFsaXphdGlvbixcblx0XHRcdFx0XHRcdFx0a2V5OiBwYXRoLmtleVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIFRPRE8gRGlhZ25vc3RpY3MgbWVzc2FnZVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdGlmIChjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlKSB7XG5cdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncyA9IGdldEFscFZpZXdDb25maWcoY29udmVydGVyQ29udGV4dCwgdmlld0NvbnZlcnRlckNvbmZpZ3MpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0YW5ub3RhdGlvbjogZ2V0Q29tcGxpYW50VmlzdWFsaXphdGlvbkFubm90YXRpb24oZW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dCwgZmFsc2UpLFxuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHZpZXdDb252ZXJ0ZXJDb25maWdzLm1hcCh2aWV3Q29udmVydGVyQ29uZmlnID0+IHtcblx0XHRyZXR1cm4gZ2V0Vmlldyh2aWV3Q29udmVydGVyQ29uZmlnKTtcblx0fSk7XG59O1xuXG5mdW5jdGlvbiBnZXRBbHBWaWV3Q29uZmlnKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHZpZXdDb25maWdzOiBWaWV3Q29udmVydGVyU2V0dGluZ3NbXSk6IFZpZXdDb252ZXJ0ZXJTZXR0aW5nc1tdIHtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBhbm5vdGF0aW9uID0gZ2V0Q29tcGxpYW50VmlzdWFsaXphdGlvbkFubm90YXRpb24oZW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dCwgdHJ1ZSk7XG5cdGxldCBjaGFydCwgdGFibGU7XG5cdGlmIChhbm5vdGF0aW9uKSB7XG5cdFx0dmlld0NvbmZpZ3MucHVzaCh7XG5cdFx0XHRhbm5vdGF0aW9uOiBhbm5vdGF0aW9uLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdGNoYXJ0ID0gZ2V0RGVmYXVsdENoYXJ0KGVudGl0eVR5cGUpO1xuXHRcdHRhYmxlID0gZ2V0RGVmYXVsdExpbmVJdGVtKGVudGl0eVR5cGUpO1xuXHRcdGlmIChjaGFydCAmJiB0YWJsZSkge1xuXHRcdFx0Y29uc3QgcHJpbWFyeTogU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uW10gPSBbeyBhbm5vdGF0aW9uUGF0aDogY2hhcnQudGVybSB9XTtcblx0XHRcdGNvbnN0IHNlY29uZGFyeTogU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uW10gPSBbeyBhbm5vdGF0aW9uUGF0aDogdGFibGUudGVybSB9XTtcblx0XHRcdHZpZXdDb25maWdzLnB1c2goe1xuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRwcmltYXJ5OiBwcmltYXJ5LFxuXHRcdFx0XHRzZWNvbmRhcnk6IHNlY29uZGFyeSxcblx0XHRcdFx0ZGVmYXVsdFBhdGg6IFwiYm90aFwiXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHZpZXdDb25maWdzO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyQWN0aW9ucyA9IGZ1bmN0aW9uKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRyZXR1cm4gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoW10sIGdldEFjdGlvbnNGcm9tTWFuaWZlc3QobWFuaWZlc3RXcmFwcGVyLmdldEhlYWRlckFjdGlvbnMoKSwgY29udmVydGVyQ29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrQ2hhcnRGaWx0ZXJCYXJJZCA9IGZ1bmN0aW9uKHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSwgZmlsdGVyQmFySWQ6IHN0cmluZykge1xuXHR2aWV3cy5mb3JFYWNoKHZpZXcgPT4ge1xuXHRcdGlmICghKHZpZXcgYXMgQ3VzdG9tVmlld0RlZmluaXRpb24pLnR5cGUpIHtcblx0XHRcdGNvbnN0IHByZXNlbnRhdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0gKHZpZXcgYXMgU2luZ2xlVmlld0RlZmluaXRpb24pLnByZXNlbnRhdGlvbjtcblx0XHRcdHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucy5mb3JFYWNoKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0+IHtcblx0XHRcdFx0aWYgKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0ICYmIHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmZpbHRlcklkICE9PSBmaWx0ZXJCYXJJZCkge1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmZpbHRlcklkID0gZmlsdGVyQmFySWQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIExpc3RSZXBvcnREZWZpbml0aW9uIGZvciBtdWx0aXBsZSBlbnRpdHkgc2V0cyAobXVsdGlwbGUgdGFibGUgbW9kZSkuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcmV0dXJucyB7TGlzdFJlcG9ydERlZmluaXRpb259IFRoZSBsaXN0IHJlcG9ydCBkZWZpbml0aW9uIGJhc2VkIG9uIGFubm90YXRpb24gKyBtYW5pZmVzdFxuICovXG5leHBvcnQgY29uc3QgY29udmVydFBhZ2UgPSBmdW5jdGlvbihjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogTGlzdFJlcG9ydERlZmluaXRpb24ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IHNDb250ZXh0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKTtcblxuXHRpZiAoIXNDb250ZXh0UGF0aCkge1xuXHRcdC8vIElmIHdlIGRvbid0IGhhdmUgYW4gZW50aXR5U2V0IGF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBhbiBpc3N1ZSBJJ2Qgc2F5XG5cdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XCJBbiBFbnRpdHlTZXQgaXMgcmVxdWlyZWQgdG8gYmUgYWJsZSB0byBkaXNwbGF5IGEgTGlzdFJlcG9ydCwgcGxlYXNlIGFkanVzdCB5b3VyIGBlbnRpdHlTZXRgIHByb3BlcnR5IHRvIHBvaW50IHRvIG9uZS5cIlxuXHRcdCk7XG5cdH1cblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKTtcblx0Y29uc3Qgdmlld3NEZWZpbml0aW9uOiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCA9IG1hbmlmZXN0V3JhcHBlci5nZXRWaWV3Q29uZmlndXJhdGlvbigpO1xuXHRjb25zdCBoYXNNdWx0aXBsZUVudGl0eVNldHMgPSBtYW5pZmVzdFdyYXBwZXIuaGFzTXVsdGlwbGVFbnRpdHlTZXRzKCk7XG5cdGNvbnN0IHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSA9IGdldFZpZXdzKGNvbnZlcnRlckNvbnRleHQsIHZpZXdzRGVmaW5pdGlvbik7XG5cdGNvbnN0IHNob3dUYWJDb3VudHMgPSB2aWV3c0RlZmluaXRpb24gPyB2aWV3c0RlZmluaXRpb24/LnNob3dDb3VudHMgfHwgaGFzTXVsdGlwbGVFbnRpdHlTZXRzIDogdW5kZWZpbmVkOyAvLyB3aXRoIG11bHRpIEVudGl0eVNldHMsIHRhYiBjb3VudHMgYXJlIGRpc3BsYXllZCBieSBkZWZhdWx0XG5cdGNvbnN0IGxyVGFibGVWaXN1YWxpemF0aW9ucyA9IGdldFRhYmxlVmlzdWFsaXphdGlvbnModmlld3MpO1xuXHRjb25zdCBsckNoYXJ0VmlzdWFsaXphdGlvbnMgPSBnZXRDaGFydFZpc3VhbGl6YXRpb25zKHZpZXdzKTtcblx0Y29uc3Qgc2hvd1Bpbm5hYmxlVG9nZ2xlID0gbHJUYWJsZVZpc3VhbGl6YXRpb25zLnNvbWUodGFibGUgPT4gdGFibGUuY29udHJvbC50eXBlID09PSBcIlJlc3BvbnNpdmVUYWJsZVwiKTtcblx0bGV0IHNpbmdsZVRhYmxlSWQgPSBcIlwiO1xuXHRsZXQgc2luZ2xlQ2hhcnRJZCA9IFwiXCI7XG5cdGNvbnN0IGZpbHRlckJhcklkID0gRmlsdGVyQmFySUQoc0NvbnRleHRQYXRoKTtcblx0Y29uc3QgZmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCA9IEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQoZmlsdGVyQmFySWQpO1xuXHRjb25zdCBmYkNvbmZpZyA9IG1hbmlmZXN0V3JhcHBlci5nZXRGaWx0ZXJDb25maWd1cmF0aW9uKCk7XG5cdGNvbnN0IGZpbHRlckluaXRpYWxMYXlvdXQgPSBmYkNvbmZpZz8uaW5pdGlhbExheW91dCAhPT0gdW5kZWZpbmVkID8gZmJDb25maWc/LmluaXRpYWxMYXlvdXQudG9Mb3dlckNhc2UoKSA6IFwiY29tcGFjdFwiO1xuXHRjb25zdCBmaWx0ZXJMYXlvdXQgPSBmYkNvbmZpZz8ubGF5b3V0ICE9PSB1bmRlZmluZWQgPyBmYkNvbmZpZz8ubGF5b3V0LnRvTG93ZXJDYXNlKCkgOiBcImNvbXBhY3RcIjtcblx0Y29uc3QgdXNlU2VtYW50aWNEYXRlUmFuZ2UgPSBmYkNvbmZpZy51c2VTZW1hbnRpY0RhdGVSYW5nZSAhPT0gdW5kZWZpbmVkID8gZmJDb25maWcudXNlU2VtYW50aWNEYXRlUmFuZ2UgOiB0cnVlO1xuXG5cdGNvbnN0IG9Db25maWcgPSBnZXRDb250ZW50QXJlYUlkKGNvbnZlcnRlckNvbnRleHQsIHZpZXdzKTtcblx0aWYgKG9Db25maWcpIHtcblx0XHRzaW5nbGVDaGFydElkID0gb0NvbmZpZy5jaGFydElkO1xuXHRcdHNpbmdsZVRhYmxlSWQgPSBvQ29uZmlnLnRhYmxlSWQ7XG5cdH1cblxuXHQvLyBDaGFydCBoYXMgYSBkZXBlbmRlbmN5IHRvIGZpbHRlciBiYXIgKGlzc3VlIHdpdGggbG9hZGluZyBkYXRhKS4gT25jZSByZXNvbHZlZCwgdGhlIGNoZWNrIGZvciBjaGFydCBzaG91bGQgYmUgcmVtb3ZlZCBoZXJlLlxuXHQvLyBVbnRpbCB0aGVuLCBoaWRpbmcgZmlsdGVyIGJhciBpcyBub3cgYWxsb3dlZCBpZiBhIGNoYXJ0IGlzIGJlaW5nIHVzZWQgb24gTFIuXG5cdGNvbnN0IGhpZGVGaWx0ZXJCYXIgPSBtYW5pZmVzdFdyYXBwZXIuaXNGaWx0ZXJCYXJIaWRkZW4oKSAmJiBzaW5nbGVDaGFydElkID09PSBcIlwiO1xuXHRjb25zdCBsckZpbHRlclByb3BlcnRpZXMgPSBnZXRTZWxlY3Rpb25GaWVsZHMoY29udmVydGVyQ29udGV4dCwgbHJUYWJsZVZpc3VhbGl6YXRpb25zKTtcblx0Y29uc3Qgc2VsZWN0aW9uRmllbGRzID0gbHJGaWx0ZXJQcm9wZXJ0aWVzLnNlbGVjdGlvbkZpZWxkcztcblx0Y29uc3QgcHJvcGVydHlJbmZvRmllbGRzID0gbHJGaWx0ZXJQcm9wZXJ0aWVzLnNQcm9wZXJ0eUluZm87XG5cdGNvbnN0IGhpZGVCYXNpY1NlYXJjaCA9IGdldEZpbHRlckJhcmhpZGVCYXNpY1NlYXJjaChsclRhYmxlVmlzdWFsaXphdGlvbnMsIGxyQ2hhcnRWaXN1YWxpemF0aW9ucywgY29udmVydGVyQ29udGV4dCk7XG5cdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBnZXRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRjb25zdCBkZWZhdWx0U2VtYW50aWNEYXRlcyA9IHVzZVNlbWFudGljRGF0ZVJhbmdlID8gZ2V0RGVmYXVsdFNlbWFudGljRGF0ZXMoZ2V0TWFuaWZlc3RGaWx0ZXJGaWVsZHMoZW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dCkpIDoge307XG5cblx0Ly8gU29ydCBoZWFkZXIgYWN0aW9ucyBhY2NvcmRpbmcgdG8gcG9zaXRpb24gYXR0cmlidXRlcyBpbiBtYW5pZmVzdFxuXHRjb25zdCBoZWFkZXJBY3Rpb25zID0gZ2V0SGVhZGVyQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0KTtcblx0Y29uc3QgaGFzTXVsdGlWaXN1YWxpemF0aW9uczogYm9vbGVhbiA9XG5cdFx0bWFuaWZlc3RXcmFwcGVyLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoKSB8fCBjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlO1xuXHRpZiAoaGFzTXVsdGlwbGVFbnRpdHlTZXRzKSB7XG5cdFx0Y2hlY2tDaGFydEZpbHRlckJhcklkKHZpZXdzLCBmaWx0ZXJCYXJJZCk7XG5cdH1cblxuXHRjb25zdCB2aXN1YWxpemF0aW9uSWRzID0gbHJUYWJsZVZpc3VhbGl6YXRpb25zXG5cdFx0Lm1hcCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdHJldHVybiB2aXN1YWxpemF0aW9uLmFubm90YXRpb24uaWQ7XG5cdFx0fSlcblx0XHQuY29uY2F0KFxuXHRcdFx0bHJDaGFydFZpc3VhbGl6YXRpb25zLm1hcCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0cmV0dXJuIHZpc3VhbGl6YXRpb24uaWQ7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdGNvbnN0IHRhcmdldENvbnRyb2xJZHMgPSBbXG5cdFx0Li4uKGhpZGVGaWx0ZXJCYXIgPyBbXSA6IFtmaWx0ZXJCYXJJZF0pLFxuXHRcdC4uLihtYW5pZmVzdFdyYXBwZXIuZ2V0VmFyaWFudE1hbmFnZW1lbnQoKSAhPT0gVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2wgPyB2aXN1YWxpemF0aW9uSWRzIDogW10pLFxuXHRcdC4uLighaGFzTXVsdGlWaXN1YWxpemF0aW9ucyAmJiB2aWV3cy5sZW5ndGggPiAxID8gW0ljb25UYWJCYXJJRCgpXSA6IFtdKVxuXHRdO1xuXG5cdGNvbnN0IGljb25UYWJCYXJJZCA9IFwiZmU6OlRhYk11bHRpcGxlTW9kZVwiO1xuXHRjb25zdCBkaXNwbGF5TXVsdGlWaXN1YWxpemF0aW9ucyA9IHZpZXdzLmxlbmd0aCA+IDEgJiYgIWhhc011bHRpVmlzdWFsaXphdGlvbnM7XG5cdGNvbnN0IHN0aWNreVN1YmhlYWRlclByb3ZpZGVyID1cblx0XHRkaXNwbGF5TXVsdGlWaXN1YWxpemF0aW9ucyAmJiBtYW5pZmVzdFdyYXBwZXIuZ2V0U3RpY2t5TXVsdGlUYWJIZWFkZXJDb25maWd1cmF0aW9uKCkgPyBpY29uVGFiQmFySWQgOiB1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHtcblx0XHRtYWluRW50aXR5U2V0OiBzQ29udGV4dFBhdGgsXG5cdFx0bWFpbkVudGl0eVR5cGU6IHNDb250ZXh0UGF0aCArIFwiL1wiLFxuXHRcdGRpc3BsYXlNdWx0aVZpc3VhbGl6YXRpb25zLFxuXHRcdGljb25UYWJCYXJJZCxcblx0XHRzdGlja3lTdWJoZWFkZXJQcm92aWRlcixcblx0XHRzaW5nbGVUYWJsZUlkLFxuXHRcdHNpbmdsZUNoYXJ0SWQsXG5cdFx0c2hvd1RhYkNvdW50cyxcblx0XHRoZWFkZXJBY3Rpb25zLFxuXHRcdHNob3dQaW5uYWJsZVRvZ2dsZTogc2hvd1Bpbm5hYmxlVG9nZ2xlLFxuXHRcdGZpbHRlckJhcjoge1xuXHRcdFx0cHJvcGVydHlJbmZvOiBwcm9wZXJ0eUluZm9GaWVsZHMsXG5cdFx0XHRzZWxlY3Rpb25GaWVsZHMsXG5cdFx0XHRoaWRlQmFzaWNTZWFyY2hcblx0XHR9LFxuXHRcdHZpZXdzOiB2aWV3cyxcblx0XHRmaWx0ZXJCYXJJZDogaGlkZUZpbHRlckJhciA/IFwiXCIgOiBmaWx0ZXJCYXJJZCxcblx0XHRmaWx0ZXJDb25kaXRpb25zOiB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBzZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0ZGVmYXVsdFNlbWFudGljRGF0ZXM6IGRlZmF1bHRTZW1hbnRpY0RhdGVzXG5cdFx0fSxcblx0XHR2YXJpYW50TWFuYWdlbWVudDoge1xuXHRcdFx0aWQ6IGZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQsXG5cdFx0XHR0YXJnZXRDb250cm9sSWRzOiB0YXJnZXRDb250cm9sSWRzLmpvaW4oXCIsXCIpXG5cdFx0fSxcblx0XHRpc011bHRpRW50aXR5U2V0czogaGFzTXVsdGlwbGVFbnRpdHlTZXRzLFxuXHRcdGhhc011bHRpVmlzdWFsaXphdGlvbnM6IGhhc011bHRpVmlzdWFsaXphdGlvbnMsXG5cdFx0dGVtcGxhdGVUeXBlOiBtYW5pZmVzdFdyYXBwZXIuZ2V0VGVtcGxhdGVUeXBlKCksXG5cdFx0dXNlU2VtYW50aWNEYXRlUmFuZ2UsXG5cdFx0ZmlsdGVySW5pdGlhbExheW91dCxcblx0XHRmaWx0ZXJMYXlvdXQsXG5cdFx0a3BpRGVmaW5pdGlvbnM6IGdldEtQSURlZmluaXRpb25zKGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdGhpZGVGaWx0ZXJCYXJcblx0fTtcbn07XG5cbmZ1bmN0aW9uIGdldENvbnRlbnRBcmVhSWQoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgdmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdKTogQ29udGVudEFyZWFJRCB8IHVuZGVmaW5lZCB7XG5cdGxldCBzaW5nbGVUYWJsZUlkID0gXCJcIixcblx0XHRzaW5nbGVDaGFydElkID0gXCJcIjtcblx0aWYgKFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucygpIHx8XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZVxuXHQpIHtcblx0XHRmb3IgKGxldCB2aWV3IG9mIHZpZXdzKSB7XG5cdFx0XHR2aWV3ID0gdmlldyBhcyBDb21iaW5lZFZpZXdEZWZpbml0aW9uO1xuXHRcdFx0aWYgKHZpZXcuY2hhcnRDb250cm9sSWQgJiYgdmlldy50YWJsZUNvbnRyb2xJZCkge1xuXHRcdFx0XHRzaW5nbGVDaGFydElkID0gdmlldy5jaGFydENvbnRyb2xJZDtcblx0XHRcdFx0c2luZ2xlVGFibGVJZCA9IHZpZXcudGFibGVDb250cm9sSWQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRmb3IgKGxldCB2aWV3IG9mIHZpZXdzKSB7XG5cdFx0XHR2aWV3ID0gdmlldyBhcyBTaW5nbGVWaWV3RGVmaW5pdGlvbjtcblx0XHRcdGlmICghc2luZ2xlVGFibGVJZCAmJiAodmlldyBhcyBTaW5nbGVUYWJsZVZpZXdEZWZpbml0aW9uKS50YWJsZUNvbnRyb2xJZCkge1xuXHRcdFx0XHRzaW5nbGVUYWJsZUlkID0gKHZpZXcgYXMgU2luZ2xlVGFibGVWaWV3RGVmaW5pdGlvbikudGFibGVDb250cm9sSWQgfHwgXCJcIjtcblx0XHRcdH1cblx0XHRcdGlmICghc2luZ2xlQ2hhcnRJZCAmJiAodmlldyBhcyBTaW5nbGVDaGFydFZpZXdEZWZpbml0aW9uKS5jaGFydENvbnRyb2xJZCkge1xuXHRcdFx0XHRzaW5nbGVDaGFydElkID0gKHZpZXcgYXMgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbikuY2hhcnRDb250cm9sSWQgfHwgXCJcIjtcblx0XHRcdH1cblx0XHRcdGlmIChzaW5nbGVDaGFydElkICYmIHNpbmdsZVRhYmxlSWQpIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGlmIChzaW5nbGVUYWJsZUlkIHx8IHNpbmdsZUNoYXJ0SWQpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y2hhcnRJZDogc2luZ2xlQ2hhcnRJZCxcblx0XHRcdHRhYmxlSWQ6IHNpbmdsZVRhYmxlSWRcblx0XHR9O1xuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["../ManifestSettings","../controls/Common/DataVisualization","../helpers/ID","sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/helpers/BindingExpression","../controls/Common/KPI","sap/fe/core/converters/controls/ListReport/FilterBar"],function(M,D,I,A,C,B,K,a){"use strict";var _={};var g=a.getPropertyInfoFields;var b=a.getFilterBarhideBasicSearch;var c=a.getManifestFilterFields;var d=a.getSelectionFields;var f=K.getKPIDefinitions;var h=B.compileBinding;var j=B.annotationExpression;var k=C.insertCustomElements;var l=A.getActionsFromManifest;var m=I.IconTabBarID;var p=I.ChartID;var T=I.TableID;var q=I.FilterVariantManagementID;var r=I.FilterBarID;var s=I.CustomTabID;var t=D.isSelectionPresentationCompliant;var u=D.getSelectionVariant;var v=D.isPresentationCompliant;var w=D.getSelectionPresentationVariant;var x=D.getDefaultPresentationVariant;var y=D.getDefaultLineItem;var z=D.getDefaultChart;var E=D.getDataVisualizationConfiguration;var V=M.VariantManagementType;var G=M.TemplateType;var H=M.VisualizationType;function J(e){return O(e)||N(e)||Q(e)||L();}function L(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function N(i){if(typeof Symbol!=="undefined"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i);}function O(e){if(Array.isArray(e))return R(e);}function P(o,n){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=Q(o))||n&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function(){};return{s:F,n:function(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function(e){throw e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var e1=true,f1=false,g1;return{s:function(){it=it.call(o);},n:function(){var e=it.next();e1=e.done;return e;},e:function(e){f1=true;g1=e;},f:function(){try{if(!e1&&it.return!=null)it.return();}finally{if(f1)throw g1;}}};}function Q(o,e){if(!o)return;if(typeof o==="string")return R(o,e);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R(o,e);}function R(e,n){if(n==null||n>e.length)n=e.length;for(var i=0,o=new Array(n);i<n;i++){o[i]=e[i];}return o;}function S(e){var i=[];e.forEach(function(n){if(!n.type){var o=n.secondaryVisualization?n.secondaryVisualization.visualizations:n.presentation.visualizations;o.forEach(function(F){if(F.type===H.Table){i.push(F);}});}});return i;}function U(e){var i=[];e.forEach(function(n){if(!n.type){var o=n.primaryVisualization?n.primaryVisualization.visualizations:n.presentation.visualizations;o.forEach(function(F){if(F.type===H.Chart){i.push(F);}});}});return i;}var W=function(e){var i={};for(var n in e){var o,F,e1;if((o=e[n])!==null&&o!==void 0&&(F=o.settings)!==null&&F!==void 0&&(e1=F.defaultValues)!==null&&e1!==void 0&&e1.length){var f1,g1;i[n]=(f1=e[n])===null||f1===void 0?void 0:(g1=f1.settings)===null||g1===void 0?void 0:g1.defaultValues;}}return i;};function X(e,i,n){var o=i.getManifestWrapper().getDefaultTemplateAnnotationPath();var F=w(e,o,i);if(o&&F){var e1=F.PresentationVariant;if(!e1){throw new Error("Presentation Variant is not configured in the SPV mentioned in the manifest");}var f1=v(F.PresentationVariant);if(!f1){return undefined;}if(t(F,n)){return F;}}if(F){if(t(F,n)){return F;}}var g1=x(e);if(g1){if(v(g1,n)){return g1;}}if(!n){var h1=y(e);if(h1){return h1;}}return undefined;}var Y=function(e){var i=e;if(i.converterContext){var n,o;var F=i.converterContext;i=i;var e1=E(i.annotation?F.getRelativeAnnotationPath(i.annotation.fullyQualifiedName,F.getEntityType()):"",true,F,i);var f1="";var g1="";var h1="";var i1="";var j1=function(i){return i.key!==undefined;};var k1=function(e1,y1){var z1;var A1=P(e1.visualizations),B1;try{for(A1.s();!(B1=A1.n()).done;){var C1=B1.value;if(y1&&C1.type===H.Chart){z1=C1;break;}if(!y1&&C1.type===H.Table){z1=C1;break;}}}catch(D1){A1.e(D1);}finally{A1.f();}var E1=Object.assign({},e1);if(z1){E1.visualizations=[z1];}return E1;};var l1=function(y1){var s1=F.getEntityTypeAnnotation(y1.annotationPath);var z1=s1.annotation;F=s1.converterContext;var A1=z1;e1=E(A1?F.getRelativeAnnotationPath(A1.fullyQualifiedName,F.getEntityType()):"",true,F,i);return e1;};var m1=function(y1,z1){var A1=k1(y1[0],true);g1=(A1===null||A1===void 0?void 0:A1.visualizations[0]).id;var B1=k1(y1[1]?y1[1]:y1[0]);f1=(B1===null||B1===void 0?void 0:B1.visualizations[0]).annotation.id;if(A1&&B1){var n1={primaryVisualization:A1,secondaryVisualization:B1,tableControlId:f1,chartControlId:g1,defaultPath:z1};return n1;}};if(((n=e1)===null||n===void 0?void 0:(o=n.visualizations)===null||o===void 0?void 0:o.length)===2&&F.getTemplateType()===G.AnalyticalListPage){var n1=m1([e1],"both");if(n1){return n1;}}else if(F.getManifestWrapper().hasMultipleVisualizations(i)||F.getTemplateType()===G.AnalyticalListPage){var o1=i,p1=o1.primary,q1=o1.secondary;if(p1&&p1.length&&q1&&q1.length){var r1=m1([l1(p1[0]),l1(q1[0])],i.defaultPath);if(r1){return r1;}}else{throw new Error("SecondaryItems in the Views is not present");}}else if(j1(i)){var s1=F.getEntityTypeAnnotation(i.annotationPath);var t1=s1.annotation;F=s1.converterContext;h1=h(j(t1.Text));e1.visualizations.forEach(function(y1,z1){switch(y1.type){case H.Table:var A1=e1.visualizations[z1];var B1=A1.control.filters||{};B1.hiddenFilters=B1.hiddenFilters||{paths:[]};if(!i.keepPreviousPresonalization){A1.annotation.id=T(i.key||"","LineItem");}i=i;if(i&&i.annotation&&i.annotation.term==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){i1=i.annotation.SelectionVariant.fullyQualifiedName.split("@")[1];}else{i1=i.annotationPath;}B1.hiddenFilters.paths.push({annotationPath:i1});A1.control.filters=B1;break;case H.Chart:var C1=e1.visualizations[z1];C1.id=p(i.key||"","Chart");break;default:break;}});}e1.visualizations.forEach(function(y1){if(y1.type===H.Table){f1=y1.annotation.id;}else if(y1.type===H.Chart){g1=y1.id;}});return{presentation:e1,tableControlId:f1,chartControlId:g1,title:h1,selectionVariantPath:i1};}else{i=i;var u1=i.label,v1=i.template,w1=i.type,x1=s(i.key||"");return{title:u1,fragment:v1,type:w1,customTabId:x1};}};var Z=function(e,i){var n=[];if(i){i.paths.forEach(function(F){if(e.getManifestWrapper().hasMultipleVisualizations(F)){if(i.paths.length>1){throw new Error("ALP flavor cannot have multiple views");}else{F=F;n.push({converterContext:e,primary:F.primary,secondary:F.secondary,defaultPath:F.defaultPath});}}else if(F.template){F=F;n.push({key:F.key,label:F.label,template:F.template,type:"Custom"});}else{F=F;var e1=e.getManifestWrapper(),f1=e.getConverterContextFor(F.contextPath||F.entitySet&&"/"+F.entitySet||e.getContextPath()),o=f1.getEntityType();if(o&&f1){var g1=e1.getDefaultTemplateAnnotationPath();var h1;var i1=f1.getEntityTypeAnnotation(F.annotationPath);var j1=i1.annotation;var k1=i1.converterContext;if(j1){if(j1.term==="com.sap.vocabularies.UI.v1.SelectionVariant"){if(g1){h1=w(f1.getEntityType(),g1,k1);}else{h1=y(f1.getEntityType());}}else{h1=j1;}n.push({converterContext:f1,annotation:h1,annotationPath:F.annotationPath,keepPreviousPresonalization:F.keepPreviousPresonalization,key:F.key});}}else{}}});}else{var o=e.getEntityType();if(e.getTemplateType()===G.AnalyticalListPage){n=$(e,n);}else{n.push({annotation:X(o,e,false),converterContext:e});}}return n.map(function(F){return Y(F);});};function $(e,i){var n=e.getEntityType();var o=X(n,e,true);var F,e1;if(o){i.push({annotation:o,converterContext:e});}else{F=z(n);e1=y(n);if(F&&e1){var f1=[{annotationPath:F.term}];var g1=[{annotationPath:e1.term}];i.push({converterContext:e,primary:f1,secondary:g1,defaultPath:"both"});}}return i;}var a1=function(e){var i=e.getManifestWrapper();return k([],l(i.getHeaderActions(),e));};_.getHeaderActions=a1;var b1=function(e,i){e.forEach(function(n){if(!n.type){var o=n.presentation;o.visualizations.forEach(function(F){if(F.type===H.Chart&&F.filterId!==i){F.filterId=i;}});}});};_.checkChartFilterBarId=b1;var c1=function(e){var i=e.getEntityType();var n=e.getContextPath();if(!n){throw new Error("An EntitySet is required to be able to display a ListReport, please adjust your `entitySet` property to point to one.");}var o=e.getManifestWrapper();var F=o.getViewConfiguration();var e1=o.hasMultipleEntitySets();var f1=Z(e,F);var g1=F?(F===null||F===void 0?void 0:F.showCounts)||e1:undefined;var h1=S(f1);var i1=U(f1);var j1=h1.some(function(D1){return D1.control.type==="ResponsiveTable";});var k1="";var l1="";var m1=r(n);var n1=q(m1);var o1=o.getFilterConfiguration();var p1=(o1===null||o1===void 0?void 0:o1.initialLayout)!==undefined?o1===null||o1===void 0?void 0:o1.initialLayout.toLowerCase():"compact";var q1=(o1===null||o1===void 0?void 0:o1.layout)!==undefined?o1===null||o1===void 0?void 0:o1.layout.toLowerCase():"compact";var r1=o1.useSemanticDateRange!==undefined?o1.useSemanticDateRange:true;var s1=d1(e,f1);if(s1){l1=s1.chartId;k1=s1.tableId;}var t1=o.isFilterBarHidden()&&l1==="";var u1=d(e,h1);var v1=g(e,h1,i1);var w1=b(h1,i1,e);var x1=u(i,e);var y1=r1?W(c(i,e)):{};var z1=a1(e);var A1=o.hasMultipleVisualizations()||e.getTemplateType()===G.AnalyticalListPage;if(e1){b1(f1,m1);}var B1=h1.map(function(D1){return D1.annotation.id;}).concat(i1.map(function(D1){return D1.id;}));var C1=[].concat(J(t1?[]:[m1]),J(o.getVariantManagement()!==V.Control?B1:[]),J(!A1&&f1.length>1?[m()]:[]));return{mainEntitySet:n,mainEntityType:n+"/",singleTableId:k1,singleChartId:l1,showTabCounts:g1,headerActions:z1,showPinnableToggle:j1,filterBar:{propertyInfo:v1,selectionFields:u1,hideBasicSearch:w1},views:f1,filterBarId:t1?"":m1,filterConditions:{selectionVariant:x1,defaultSemanticDates:y1},variantManagement:{id:n1,targetControlIds:C1.join(",")},isMultiEntitySets:e1,hasMultiVisualizations:A1,templateType:o.getTemplateType(),useSemanticDateRange:r1,filterInitialLayout:p1,filterLayout:q1,kpiDefinitions:f(e),hideFilterBar:t1};};_.convertPage=c1;function d1(e,i){var n="",o="";if(e.getManifestWrapper().hasMultipleVisualizations()||e.getTemplateType()===G.AnalyticalListPage){var F=P(i),e1;try{for(F.s();!(e1=F.n()).done;){var f1=e1.value;f1=f1;if(f1.chartControlId&&f1.tableControlId){o=f1.chartControlId;n=f1.tableControlId;break;}}}catch(g1){F.e(g1);}finally{F.f();}}else{var h1=P(i),i1;try{for(h1.s();!(i1=h1.n()).done;){var j1=i1.value;j1=j1;if(!n&&j1.tableControlId){n=j1.tableControlId||"";}if(!o&&j1.chartControlId){o=j1.chartControlId||"";}if(o&&n){break;}}}catch(g1){h1.e(g1);}finally{h1.f();}}if(n||o){return{chartId:o,tableId:n};}return undefined;}return _;},false);
|
|
5
|
+
sap.ui.define(["../ManifestSettings","../controls/Common/DataVisualization","../helpers/ID","sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/helpers/BindingExpression","../controls/Common/KPI","sap/fe/core/converters/controls/ListReport/FilterBar"],function(M,D,I,A,C,B,K,a){"use strict";var _={};var g=a.getFilterBarhideBasicSearch;var b=a.getManifestFilterFields;var c=a.getSelectionFields;var d=K.getKPIDefinitions;var f=B.compileBinding;var h=B.annotationExpression;var j=C.insertCustomElements;var k=A.getActionsFromManifest;var l=I.IconTabBarID;var m=I.ChartID;var T=I.TableID;var p=I.FilterVariantManagementID;var q=I.FilterBarID;var r=I.CustomTabID;var s=D.isSelectionPresentationCompliant;var t=D.getSelectionVariant;var u=D.isPresentationCompliant;var v=D.getSelectionPresentationVariant;var w=D.getDefaultPresentationVariant;var x=D.getDefaultLineItem;var y=D.getDefaultChart;var z=D.getDataVisualizationConfiguration;var V=M.VariantManagementType;var E=M.TemplateType;var G=M.VisualizationType;function H(e){return N(e)||L(e)||P(e)||J();}function J(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function L(i){if(typeof Symbol!=="undefined"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i);}function N(e){if(Array.isArray(e))return Q(e);}function O(o,n){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=P(o))||n&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function(){};return{s:F,n:function(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function(e){throw e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var d1=true,e1=false,f1;return{s:function(){it=it.call(o);},n:function(){var e=it.next();d1=e.done;return e;},e:function(e){e1=true;f1=e;},f:function(){try{if(!d1&&it.return!=null)it.return();}finally{if(e1)throw f1;}}};}function P(o,e){if(!o)return;if(typeof o==="string")return Q(o,e);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Q(o,e);}function Q(e,n){if(n==null||n>e.length)n=e.length;for(var i=0,o=new Array(n);i<n;i++){o[i]=e[i];}return o;}function R(e){var i=[];e.forEach(function(n){if(!n.type){var o=n.secondaryVisualization?n.secondaryVisualization.visualizations:n.presentation.visualizations;o.forEach(function(F){if(F.type===G.Table){i.push(F);}});}});return i;}function S(e){var i=[];e.forEach(function(n){if(!n.type){var o=n.primaryVisualization?n.primaryVisualization.visualizations:n.presentation.visualizations;o.forEach(function(F){if(F.type===G.Chart){i.push(F);}});}});return i;}var U=function(e){var i={};for(var n in e){var o,F,d1;if((o=e[n])!==null&&o!==void 0&&(F=o.settings)!==null&&F!==void 0&&(d1=F.defaultValues)!==null&&d1!==void 0&&d1.length){var e1,f1;i[n]=(e1=e[n])===null||e1===void 0?void 0:(f1=e1.settings)===null||f1===void 0?void 0:f1.defaultValues;}}return i;};function W(e,i,n){var o=i.getManifestWrapper().getDefaultTemplateAnnotationPath();var F=v(e,o,i);if(o&&F){var d1=F.PresentationVariant;if(!d1){throw new Error("Presentation Variant is not configured in the SPV mentioned in the manifest");}var e1=u(F.PresentationVariant);if(!e1){return undefined;}if(s(F,n)){return F;}}if(F){if(s(F,n)){return F;}}var f1=w(e);if(f1){if(u(f1,n)){return f1;}}if(!n){var g1=x(e);if(g1){return g1;}}return undefined;}var X=function(e){var i=e;if(i.converterContext){var n,o;var F=i.converterContext;i=i;var d1=z(i.annotation?F.getRelativeAnnotationPath(i.annotation.fullyQualifiedName,F.getEntityType()):"",true,F,i);var e1="";var f1="";var g1="";var h1="";var i1=function(i){return i.key!==undefined;};var j1=function(d1,x1){var y1;var z1=O(d1.visualizations),A1;try{for(z1.s();!(A1=z1.n()).done;){var B1=A1.value;if(x1&&B1.type===G.Chart){y1=B1;break;}if(!x1&&B1.type===G.Table){y1=B1;break;}}}catch(C1){z1.e(C1);}finally{z1.f();}var D1=Object.assign({},d1);if(y1){D1.visualizations=[y1];}return D1;};var k1=function(x1){var r1=F.getEntityTypeAnnotation(x1.annotationPath);var y1=r1.annotation;F=r1.converterContext;var z1=y1;d1=z(z1?F.getRelativeAnnotationPath(z1.fullyQualifiedName,F.getEntityType()):"",true,F,i);return d1;};var l1=function(x1,y1){var z1=j1(x1[0],true);f1=(z1===null||z1===void 0?void 0:z1.visualizations[0]).id;var A1=j1(x1[1]?x1[1]:x1[0]);e1=(A1===null||A1===void 0?void 0:A1.visualizations[0]).annotation.id;if(z1&&A1){var m1={primaryVisualization:z1,secondaryVisualization:A1,tableControlId:e1,chartControlId:f1,defaultPath:y1};return m1;}};if(((n=d1)===null||n===void 0?void 0:(o=n.visualizations)===null||o===void 0?void 0:o.length)===2&&F.getTemplateType()===E.AnalyticalListPage){var m1=l1([d1],"both");if(m1){return m1;}}else if(F.getManifestWrapper().hasMultipleVisualizations(i)||F.getTemplateType()===E.AnalyticalListPage){var n1=i,o1=n1.primary,p1=n1.secondary;if(o1&&o1.length&&p1&&p1.length){var q1=l1([k1(o1[0]),k1(p1[0])],i.defaultPath);if(q1){return q1;}}else{throw new Error("SecondaryItems in the Views is not present");}}else if(i1(i)){var r1=F.getEntityTypeAnnotation(i.annotationPath);var s1=r1.annotation;F=r1.converterContext;g1=f(h(s1.Text));d1.visualizations.forEach(function(x1,y1){switch(x1.type){case G.Table:var z1=d1.visualizations[y1];var A1=z1.control.filters||{};A1.hiddenFilters=A1.hiddenFilters||{paths:[]};if(!i.keepPreviousPresonalization){z1.annotation.id=T(i.key||"","LineItem");}i=i;if(i&&i.annotation&&i.annotation.term==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){h1=i.annotation.SelectionVariant.fullyQualifiedName.split("@")[1];}else{h1=i.annotationPath;}A1.hiddenFilters.paths.push({annotationPath:h1});z1.control.filters=A1;break;case G.Chart:var B1=d1.visualizations[y1];B1.id=m(i.key||"","Chart");break;default:break;}});}d1.visualizations.forEach(function(x1){if(x1.type===G.Table){e1=x1.annotation.id;}else if(x1.type===G.Chart){f1=x1.id;}});return{presentation:d1,tableControlId:e1,chartControlId:f1,title:g1,selectionVariantPath:h1};}else{i=i;var t1=i.label,u1=i.template,v1=i.type,w1=r(i.key||"");return{title:t1,fragment:u1,type:v1,customTabId:w1};}};var Y=function(e,i){var n=[];if(i){i.paths.forEach(function(F){if(e.getManifestWrapper().hasMultipleVisualizations(F)){if(i.paths.length>1){throw new Error("ALP flavor cannot have multiple views");}else{F=F;n.push({converterContext:e,primary:F.primary,secondary:F.secondary,defaultPath:F.defaultPath});}}else if(F.template){F=F;n.push({key:F.key,label:F.label,template:F.template,type:"Custom"});}else{F=F;var d1=e.getManifestWrapper(),e1=e.getConverterContextFor(F.contextPath||F.entitySet&&"/"+F.entitySet||e.getContextPath()),o=e1.getEntityType();if(o&&e1){var f1=d1.getDefaultTemplateAnnotationPath();var g1;var h1=e1.getEntityTypeAnnotation(F.annotationPath);var i1=h1.annotation;var j1=h1.converterContext;if(i1){if(i1.term==="com.sap.vocabularies.UI.v1.SelectionVariant"){if(f1){g1=v(e1.getEntityType(),f1,j1);}else{g1=x(e1.getEntityType());}}else{g1=i1;}n.push({converterContext:e1,annotation:g1,annotationPath:F.annotationPath,keepPreviousPresonalization:F.keepPreviousPresonalization,key:F.key});}}else{}}});}else{var o=e.getEntityType();if(e.getTemplateType()===E.AnalyticalListPage){n=Z(e,n);}else{n.push({annotation:W(o,e,false),converterContext:e});}}return n.map(function(F){return X(F);});};function Z(e,i){var n=e.getEntityType();var o=W(n,e,true);var F,d1;if(o){i.push({annotation:o,converterContext:e});}else{F=y(n);d1=x(n);if(F&&d1){var e1=[{annotationPath:F.term}];var f1=[{annotationPath:d1.term}];i.push({converterContext:e,primary:e1,secondary:f1,defaultPath:"both"});}}return i;}var $=function(e){var i=e.getManifestWrapper();return j([],k(i.getHeaderActions(),e));};_.getHeaderActions=$;var a1=function(e,i){e.forEach(function(n){if(!n.type){var o=n.presentation;o.visualizations.forEach(function(F){if(F.type===G.Chart&&F.filterId!==i){F.filterId=i;}});}});};_.checkChartFilterBarId=a1;var b1=function(e){var i=e.getEntityType();var n=e.getContextPath();if(!n){throw new Error("An EntitySet is required to be able to display a ListReport, please adjust your `entitySet` property to point to one.");}var o=e.getManifestWrapper();var F=o.getViewConfiguration();var d1=o.hasMultipleEntitySets();var e1=Y(e,F);var f1=F?(F===null||F===void 0?void 0:F.showCounts)||d1:undefined;var g1=R(e1);var h1=S(e1);var i1=g1.some(function(G1){return G1.control.type==="ResponsiveTable";});var j1="";var k1="";var l1=q(n);var m1=p(l1);var n1=o.getFilterConfiguration();var o1=(n1===null||n1===void 0?void 0:n1.initialLayout)!==undefined?n1===null||n1===void 0?void 0:n1.initialLayout.toLowerCase():"compact";var p1=(n1===null||n1===void 0?void 0:n1.layout)!==undefined?n1===null||n1===void 0?void 0:n1.layout.toLowerCase():"compact";var q1=n1.useSemanticDateRange!==undefined?n1.useSemanticDateRange:true;var r1=c1(e,e1);if(r1){k1=r1.chartId;j1=r1.tableId;}var s1=o.isFilterBarHidden()&&k1==="";var t1=c(e,g1);var u1=t1.selectionFields;var v1=t1.sPropertyInfo;var w1=g(g1,h1,e);var x1=t(i,e);var y1=q1?U(b(i,e)):{};var z1=$(e);var A1=o.hasMultipleVisualizations()||e.getTemplateType()===E.AnalyticalListPage;if(d1){a1(e1,l1);}var B1=g1.map(function(G1){return G1.annotation.id;}).concat(h1.map(function(G1){return G1.id;}));var C1=[].concat(H(s1?[]:[l1]),H(o.getVariantManagement()!==V.Control?B1:[]),H(!A1&&e1.length>1?[l()]:[]));var D1="fe::TabMultipleMode";var E1=e1.length>1&&!A1;var F1=E1&&o.getStickyMultiTabHeaderConfiguration()?D1:undefined;return{mainEntitySet:n,mainEntityType:n+"/",displayMultiVisualizations:E1,iconTabBarId:D1,stickySubheaderProvider:F1,singleTableId:j1,singleChartId:k1,showTabCounts:f1,headerActions:z1,showPinnableToggle:i1,filterBar:{propertyInfo:v1,selectionFields:u1,hideBasicSearch:w1},views:e1,filterBarId:s1?"":l1,filterConditions:{selectionVariant:x1,defaultSemanticDates:y1},variantManagement:{id:m1,targetControlIds:C1.join(",")},isMultiEntitySets:d1,hasMultiVisualizations:A1,templateType:o.getTemplateType(),useSemanticDateRange:q1,filterInitialLayout:o1,filterLayout:p1,kpiDefinitions:d(e),hideFilterBar:s1};};_.convertPage=b1;function c1(e,i){var n="",o="";if(e.getManifestWrapper().hasMultipleVisualizations()||e.getTemplateType()===E.AnalyticalListPage){var F=O(i),d1;try{for(F.s();!(d1=F.n()).done;){var e1=d1.value;e1=e1;if(e1.chartControlId&&e1.tableControlId){o=e1.chartControlId;n=e1.tableControlId;break;}}}catch(f1){F.e(f1);}finally{F.f();}}else{var g1=O(i),h1;try{for(g1.s();!(h1=g1.n()).done;){var i1=h1.value;i1=i1;if(!n&&i1.tableControlId){n=i1.tableControlId||"";}if(!o&&i1.chartControlId){o=i1.chartControlId||"";}if(o&&n){break;}}}catch(f1){g1.e(f1);}finally{g1.f();}}if(n||o){return{chartId:o,tableId:n};}return undefined;}return _;},false);
|
|
@@ -41,8 +41,7 @@ import {
|
|
|
41
41
|
getManifestFilterFields,
|
|
42
42
|
getFilterBarhideBasicSearch,
|
|
43
43
|
FilterField,
|
|
44
|
-
CustomElementFilterField
|
|
45
|
-
getPropertyInfoFields
|
|
44
|
+
CustomElementFilterField
|
|
46
45
|
} from "sap/fe/core/converters/controls/ListReport/FilterBar";
|
|
47
46
|
|
|
48
47
|
type ViewAnnotationsTypeTypes = SelectionPresentationVariantTypeTypes | SelectionVariantTypeTypes;
|
|
@@ -79,6 +78,9 @@ export type ListReportDefinition = {
|
|
|
79
78
|
mainEntityType: string; // entityType> at the start of LR templating
|
|
80
79
|
singleTableId?: string; // only with single Table mode
|
|
81
80
|
singleChartId?: string; // only with single Table mode
|
|
81
|
+
displayMultiVisualizations: boolean;
|
|
82
|
+
iconTabBarId: string;
|
|
83
|
+
stickySubheaderProvider?: string;
|
|
82
84
|
showTabCounts?: boolean; // only with multi Table mode
|
|
83
85
|
headerActions: BaseAction[];
|
|
84
86
|
showPinnableToggle?: boolean;
|
|
@@ -575,8 +577,9 @@ export const convertPage = function(converterContext: ConverterContext): ListRep
|
|
|
575
577
|
// Chart has a dependency to filter bar (issue with loading data). Once resolved, the check for chart should be removed here.
|
|
576
578
|
// Until then, hiding filter bar is now allowed if a chart is being used on LR.
|
|
577
579
|
const hideFilterBar = manifestWrapper.isFilterBarHidden() && singleChartId === "";
|
|
578
|
-
const
|
|
579
|
-
const
|
|
580
|
+
const lrFilterProperties = getSelectionFields(converterContext, lrTableVisualizations);
|
|
581
|
+
const selectionFields = lrFilterProperties.selectionFields;
|
|
582
|
+
const propertyInfoFields = lrFilterProperties.sPropertyInfo;
|
|
580
583
|
const hideBasicSearch = getFilterBarhideBasicSearch(lrTableVisualizations, lrChartVisualizations, converterContext);
|
|
581
584
|
const selectionVariant = getSelectionVariant(entityType, converterContext);
|
|
582
585
|
const defaultSemanticDates = useSemanticDateRange ? getDefaultSemanticDates(getManifestFilterFields(entityType, converterContext)) : {};
|
|
@@ -604,9 +607,17 @@ export const convertPage = function(converterContext: ConverterContext): ListRep
|
|
|
604
607
|
...(!hasMultiVisualizations && views.length > 1 ? [IconTabBarID()] : [])
|
|
605
608
|
];
|
|
606
609
|
|
|
610
|
+
const iconTabBarId = "fe::TabMultipleMode";
|
|
611
|
+
const displayMultiVisualizations = views.length > 1 && !hasMultiVisualizations;
|
|
612
|
+
const stickySubheaderProvider =
|
|
613
|
+
displayMultiVisualizations && manifestWrapper.getStickyMultiTabHeaderConfiguration() ? iconTabBarId : undefined;
|
|
614
|
+
|
|
607
615
|
return {
|
|
608
616
|
mainEntitySet: sContextPath,
|
|
609
617
|
mainEntityType: sContextPath + "/",
|
|
618
|
+
displayMultiVisualizations,
|
|
619
|
+
iconTabBarId,
|
|
620
|
+
stickySubheaderProvider,
|
|
610
621
|
singleTableId,
|
|
611
622
|
singleChartId,
|
|
612
623
|
showTabCounts,
|