@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,9 +2,11 @@
|
|
|
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(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UIFormatters", "path", "sap/fe/test/JestTemplatingHelper", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/BindingExpression"], function (FieldTemplating, UIFormatters, path, JestTemplatingHelper, MetaModelConverter, BindingExpression) {
|
|
5
|
+
sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UIFormatters", "path", "sap/fe/test/JestTemplatingHelper", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/BindingExpression", "sap/fe/test/UI5MockHelper"], function (FieldTemplating, UIFormatters, path, JestTemplatingHelper, MetaModelConverter, BindingExpression, UI5MockHelper) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
var MockModel = UI5MockHelper.MockModel;
|
|
9
|
+
var MockContext = UI5MockHelper.MockContext;
|
|
8
10
|
var ifElse = BindingExpression.ifElse;
|
|
9
11
|
var compileBinding = BindingExpression.compileBinding;
|
|
10
12
|
var bindingExpression = BindingExpression.bindingExpression;
|
|
@@ -15,6 +17,8 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
15
17
|
var getMetaModel = JestTemplatingHelper.getMetaModel;
|
|
16
18
|
var compileCDS = JestTemplatingHelper.compileCDS;
|
|
17
19
|
var formatWithTypeInformation = UIFormatters.formatWithTypeInformation;
|
|
20
|
+
var getBindingForDraftAdminBlockInline = FieldTemplating.getBindingForDraftAdminBlockInline;
|
|
21
|
+
var getMultipleLinesForDataField = FieldTemplating.getMultipleLinesForDataField;
|
|
18
22
|
var isUsedInNavigationWithQuickViewFacets = FieldTemplating.isUsedInNavigationWithQuickViewFacets;
|
|
19
23
|
var getSemanticObjects = FieldTemplating.getSemanticObjects;
|
|
20
24
|
var getSemanticObjectExpressionToResolve = FieldTemplating.getSemanticObjectExpressionToResolve;
|
|
@@ -63,28 +67,28 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
63
67
|
"ID": "2170237165"
|
|
64
68
|
}]
|
|
65
69
|
}, function () {
|
|
66
|
-
var textSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {});
|
|
70
|
+
var textSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textBinding"]), {});
|
|
67
71
|
expect(textSimpleBinding).toEqual("{path: 'textBinding', type: 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}}");
|
|
68
|
-
var textDeleteFormatterBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {
|
|
72
|
+
var textDeleteFormatterBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textBinding"]), {
|
|
69
73
|
textMaxLines: "10"
|
|
70
74
|
}, true, //ignoreUnit, it doesn't have unit, so doesn't matter. Tested a few lines later.
|
|
71
75
|
true);
|
|
72
76
|
expect(textDeleteFormatterBinding).toEqual("{textBinding}");
|
|
73
|
-
var textBindingParametter = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {
|
|
77
|
+
var textBindingParametter = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textBinding"]), {
|
|
74
78
|
textMaxLines: "10"
|
|
75
79
|
}, true, true, {
|
|
76
80
|
$$noPatch: true
|
|
77
81
|
});
|
|
78
82
|
expect(textBindingParametter).toEqual("{path: 'textBinding', parameters: {$$noPatch: true}}");
|
|
79
|
-
var textTypeAny = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {}, false, false, undefined, true);
|
|
83
|
+
var textTypeAny = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textBinding"]), {}, false, false, undefined, true);
|
|
80
84
|
expect(textTypeAny).toEqual("{path: 'textBinding', type: 'sap.ui.model.odata.type.String', targetType: 'any', formatOptions: {parseKeepsEmptyString: true}}");
|
|
81
|
-
var emailSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["emailBinding"]), {});
|
|
85
|
+
var emailSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["emailBinding"]), {});
|
|
82
86
|
expect(emailSimpleBinding).toEqual("{path: 'emailBinding', type: 'sap.fe.core.type.Email'}");
|
|
83
|
-
var unitWithCurrencyBindingSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["UnitWithCurrencyBinding"]), {});
|
|
87
|
+
var unitWithCurrencyBindingSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["UnitWithCurrencyBinding"]), {});
|
|
84
88
|
expect(unitWithCurrencyBindingSimpleBinding).toMatchInlineSnapshot("\"{mode:'TwoWay', parts:[{path: 'UnitWithCurrencyBinding', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}},{path: 'currency', type: 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}},{mode:'OneTime',path:'/##@@requestCurrencyCodes',targetType:'any'}],type:'sap.ui.model.odata.type.Currency', formatOptions: {parseAsString: false, emptyString: '', showMeasure: false}}\"");
|
|
85
|
-
var unitWithCurrencyBindingIgnoreUnit = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["UnitWithCurrencyBinding"]), {}, true);
|
|
89
|
+
var unitWithCurrencyBindingIgnoreUnit = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["UnitWithCurrencyBinding"]), {}, true);
|
|
86
90
|
expect(unitWithCurrencyBindingIgnoreUnit).toEqual("{path: 'UnitWithCurrencyBinding', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}}");
|
|
87
|
-
var unitWithCurrencyDescriptionBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["UnitWithCurrencyBinding"]), {}, false, false, undefined, true, true);
|
|
91
|
+
var unitWithCurrencyDescriptionBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["UnitWithCurrencyBinding"]), {}, false, false, undefined, true, true);
|
|
88
92
|
expect(unitWithCurrencyDescriptionBinding).toMatchInlineSnapshot("\"{mode:'TwoWay', parts:[{path: 'UnitWithCurrencyBinding', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}},{path: 'currency', type: 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}},{mode:'OneTime',path:'/##@@requestCurrencyCodes',targetType:'any'}],type:'sap.ui.model.odata.type.Currency', formatOptions: {parseAsString: false, emptyString: '', showNumber: false}}\"");
|
|
89
93
|
});
|
|
90
94
|
it("#getDisplayStyle", {
|
|
@@ -96,13 +100,13 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
96
100
|
var _entitySet$entityType;
|
|
97
101
|
|
|
98
102
|
var entitySetLineItem = (_entitySet$entityType = entitySet.entityType.annotations.UI) === null || _entitySet$entityType === void 0 ? void 0 : _entitySet$entityType.LineItem;
|
|
99
|
-
var dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[1]);
|
|
103
|
+
var dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[1]);
|
|
100
104
|
var formatOptions = {
|
|
101
105
|
valueFormat: "DescriptionValue",
|
|
102
106
|
textAlignMode: "Form",
|
|
103
107
|
retrieveTextFromValueList: false
|
|
104
108
|
};
|
|
105
|
-
var dataFieldConverted = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["propertyNoTextWithVH"]), {}); // displayStyle "LinkWithQuickViewForm"
|
|
109
|
+
var dataFieldConverted = getValueBinding(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["propertyNoTextWithVH"]), {}); // displayStyle "LinkWithQuickViewForm"
|
|
106
110
|
|
|
107
111
|
var semanticObject = "semanticObject";
|
|
108
112
|
var displayStyleLink = getDisplayStyle(properties["propertyNoTextWithVH"], dataFieldConverted, dataModelObjectPathForProperty, formatOptions, semanticObject);
|
|
@@ -115,21 +119,21 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
115
119
|
it("#getBindingWithTextArrangement", function () {
|
|
116
120
|
// Cases to consider
|
|
117
121
|
// TextOnly
|
|
118
|
-
var textOnlyBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, properties["textOnly"]), bindingExpression("textOnly"));
|
|
122
|
+
var textOnlyBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textOnly"]), bindingExpression("textOnly"));
|
|
119
123
|
expect(textOnlyBinding).toMatchSnapshot();
|
|
120
124
|
expect(compileBinding(textOnlyBinding)).toContain("targetText");
|
|
121
125
|
expect(evaluateBindingWithModel(compileBinding(textOnlyBinding), {
|
|
122
126
|
targetText: "Yolo"
|
|
123
127
|
})).toEqual("Yolo"); // No text arrangement
|
|
124
128
|
|
|
125
|
-
var noTextBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, properties["noText"]), bindingExpression("noText"));
|
|
129
|
+
var noTextBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["noText"]), bindingExpression("noText"));
|
|
126
130
|
expect(noTextBinding).toMatchSnapshot();
|
|
127
131
|
expect(compileBinding(noTextBinding)).toContain("noText");
|
|
128
132
|
expect(evaluateBindingWithModel(compileBinding(noTextBinding), {
|
|
129
133
|
noText: "Yolo"
|
|
130
134
|
})).toEqual("Yolo"); // TextFirst
|
|
131
135
|
|
|
132
|
-
var textFirstBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, properties["textFirst"]), bindingExpression("textFirst"));
|
|
136
|
+
var textFirstBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textFirst"]), bindingExpression("textFirst"));
|
|
133
137
|
expect(textFirstBinding).toMatchSnapshot();
|
|
134
138
|
expect(compileBinding(textFirstBinding)).toContain("textFirst");
|
|
135
139
|
expect(compileBinding(textFirstBinding)).toContain("targetText");
|
|
@@ -138,7 +142,7 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
138
142
|
targetText: "Yolo Description"
|
|
139
143
|
})).toEqual("Yolo Description (Yolo Last)"); // TextLast
|
|
140
144
|
|
|
141
|
-
var textLastBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, properties["textLast"]), bindingExpression("textLast"));
|
|
145
|
+
var textLastBinding = getBindingWithTextArrangement(getDataModelObjectPathForProperty(entitySet, convertedTypes, properties["textLast"]), bindingExpression("textLast"));
|
|
142
146
|
expect(textLastBinding).toMatchSnapshot();
|
|
143
147
|
expect(compileBinding(textLastBinding)).toContain("textLast");
|
|
144
148
|
expect(compileBinding(textLastBinding)).toContain("targetText");
|
|
@@ -148,7 +152,7 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
148
152
|
})).toEqual("Yolo First (Yolo Description)");
|
|
149
153
|
});
|
|
150
154
|
it("#addTextArrangementToBindingExpression", function () {
|
|
151
|
-
var fullContext = getDataModelObjectPathForProperty(entitySet);
|
|
155
|
+
var fullContext = getDataModelObjectPathForProperty(entitySet, convertedTypes);
|
|
152
156
|
var otherModelBinding = addTextArrangementToBindingExpression(bindingExpression("textLast", "otherModel"), fullContext);
|
|
153
157
|
expect(otherModelBinding).toMatchSnapshot();
|
|
154
158
|
expect(compileBinding(otherModelBinding)).toContain("textLast");
|
|
@@ -198,46 +202,46 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
198
202
|
var _entitySet$entityType2;
|
|
199
203
|
|
|
200
204
|
var entitySetLineItem = (_entitySet$entityType2 = entitySet.entityType.annotations.UI) === null || _entitySet$entityType2 === void 0 ? void 0 : _entitySet$entityType2.LineItem;
|
|
201
|
-
var dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[1] // staticHiddenProp
|
|
205
|
+
var dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[1] // staticHiddenProp
|
|
202
206
|
);
|
|
203
207
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("false");
|
|
204
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[2] // dynamicHiddenProp
|
|
208
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[2] // dynamicHiddenProp
|
|
205
209
|
);
|
|
206
210
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden} !== true}");
|
|
207
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[3] // textFirst with dataField statically hidden
|
|
211
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[3] // textFirst with dataField statically hidden
|
|
208
212
|
);
|
|
209
213
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("false");
|
|
210
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[4] // textOnly with dataField dynamically hidden
|
|
214
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[4] // textOnly with dataField dynamically hidden
|
|
211
215
|
);
|
|
212
216
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden} !== true}");
|
|
213
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[5] // dynamicHiddenProp2 with dynamic datafield hidden
|
|
217
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[5] // dynamicHiddenProp2 with dynamic datafield hidden
|
|
214
218
|
);
|
|
215
219
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden2} !== true && %{isHidden} !== true}");
|
|
216
220
|
expect(getVisibleExpression(dataModelObjectPathForProperty, {
|
|
217
221
|
isAnalytics: true
|
|
218
222
|
})).toEqual("{= %{isHidden2} !== true && %{isHidden} !== true && (%{@$ui5.node.isExpanded} !== true || %{@$ui5.node.level} === 0)}");
|
|
219
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[6] // hiddenWith11Nav with dynamic datafield hidden
|
|
223
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[6] // hiddenWith11Nav with dynamic datafield hidden
|
|
220
224
|
);
|
|
221
225
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden2} !== true && %{SpecialChild/isHidden} !== true}");
|
|
222
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[7] // hiddenWith1NNav with dynamic datafield hidden -> Doesn't make sense and model will complain but heh :(
|
|
226
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[7] // hiddenWith1NNav with dynamic datafield hidden -> Doesn't make sense and model will complain but heh :(
|
|
223
227
|
);
|
|
224
228
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden2} !== true && %{_Elements/isHidden} !== true}");
|
|
225
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[8] // Data Field For Action
|
|
229
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[8] // Data Field For Action
|
|
226
230
|
);
|
|
227
231
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
|
|
228
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[9] // DataFieldForAnnotation -> data point visible
|
|
232
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[9] // DataFieldForAnnotation -> data point visible
|
|
229
233
|
);
|
|
230
234
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
|
|
231
235
|
expect(getVisibleExpression(dataModelObjectPathForProperty, {
|
|
232
236
|
isAnalytics: true
|
|
233
237
|
})).toEqual("{= %{@$ui5.node.isExpanded} !== true || %{@$ui5.node.level} === 0}");
|
|
234
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[10] // DataFieldForAnnotation -> data point dynamic visible
|
|
238
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[10] // DataFieldForAnnotation -> data point dynamic visible
|
|
235
239
|
);
|
|
236
240
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden} !== true}");
|
|
237
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[11] // noHiddenProp
|
|
241
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[11] // noHiddenProp
|
|
238
242
|
);
|
|
239
243
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
|
|
240
|
-
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[12] // DataFieldForAnnotation -> FieldGroup -> Data
|
|
244
|
+
dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySetLineItem[12] // DataFieldForAnnotation -> FieldGroup -> Data
|
|
241
245
|
);
|
|
242
246
|
expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
|
|
243
247
|
});
|
|
@@ -286,6 +290,45 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
|
|
|
286
290
|
var oProperty = oDataModelPath === null || oDataModelPath === void 0 ? void 0 : oDataModelPath.targetObject.Value.$target;
|
|
287
291
|
expect(isUsedInNavigationWithQuickViewFacets(oDataModelPath, oProperty)).toEqual(false);
|
|
288
292
|
});
|
|
293
|
+
it("getMultipleLinesForDataField", function () {
|
|
294
|
+
var oThis = {
|
|
295
|
+
wrap: "undefined",
|
|
296
|
+
// or true/false
|
|
297
|
+
editMode: "dummyEditMode"
|
|
298
|
+
};
|
|
299
|
+
expect(getMultipleLinesForDataField(oThis, "Edm.String", false)).toEqual(false);
|
|
300
|
+
oThis.editMode = "{= %{ui>/isEditable} ? 'Editable' : 'Display'}";
|
|
301
|
+
expect(getMultipleLinesForDataField(oThis, "Edm.String", true)).toEqual("true");
|
|
302
|
+
oThis.editMode = "Display";
|
|
303
|
+
expect(getMultipleLinesForDataField(oThis, "Edm.String", true)).toEqual(true);
|
|
304
|
+
expect(getMultipleLinesForDataField(oThis, "dummyPropertyType", true)).toEqual(true);
|
|
305
|
+
oThis.wrap = "false";
|
|
306
|
+
expect(getMultipleLinesForDataField(oThis, "Edm.String", true)).toEqual(false);
|
|
307
|
+
});
|
|
308
|
+
it("getBindingForDraftAdminBlockInline", function () {
|
|
309
|
+
try {
|
|
310
|
+
var result;
|
|
311
|
+
var sEntityType = "fakeEntity";
|
|
312
|
+
var mockContext = new MockContext({});
|
|
313
|
+
var mockModel = new MockModel();
|
|
314
|
+
mockContext.getModel.mockReturnValue(mockModel);
|
|
315
|
+
mockModel.requestObject.mockReturnValue(Promise.resolve({}));
|
|
316
|
+
return Promise.resolve(getBindingForDraftAdminBlockInline(mockContext, sEntityType)).then(function (_getBindingForDraftAd) {
|
|
317
|
+
result = _getBindingForDraftAd;
|
|
318
|
+
expect(result).toEqual("{= %{HasDraftEntity} ? (%{DraftAdministrativeData/InProcessByUser} || %{DraftAdministrativeData/LastChangedByUser}) : ''}");
|
|
319
|
+
mockModel.requestObject.mockReturnValue(Promise.resolve({
|
|
320
|
+
InProcessByUserDescription: "fake",
|
|
321
|
+
LastChangedByUserDescription: "fake"
|
|
322
|
+
}));
|
|
323
|
+
return Promise.resolve(getBindingForDraftAdminBlockInline(mockContext, sEntityType)).then(function (_getBindingForDraftAd2) {
|
|
324
|
+
result = _getBindingForDraftAd2;
|
|
325
|
+
expect(result).toEqual("{= %{HasDraftEntity} ? (%{DraftAdministrativeData/InProcessByUserDescription} || %{DraftAdministrativeData/InProcessByUser} || %{DraftAdministrativeData/LastChangedByUserDescription} || %{DraftAdministrativeData/LastChangedByUser}) : ''}");
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
} catch (e) {
|
|
329
|
+
return Promise.reject(e);
|
|
330
|
+
}
|
|
331
|
+
});
|
|
289
332
|
});
|
|
290
333
|
}, false);
|
|
291
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkVGVtcGxhdGluZy5zcGVjLnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiY29udmVydGVkVHlwZXMiLCJtZXRhTW9kZWwiLCJlbnRpdHlTZXQiLCJlbnRpdHlUeXBlIiwicHJvcGVydGllcyIsImJlZm9yZUFsbCIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImdldE1ldGFNb2RlbCIsImNvbnZlcnRUeXBlcyIsIm1heWJlRW50aXR5U2V0IiwiZW50aXR5U2V0cyIsImZpbmQiLCJldCIsIm5hbWUiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3AiLCJFcnJvciIsImJlZm9yZUVhY2giLCJqZXN0IiwiY2xlYXJBbGxNb2NrcyIsIml0IiwidGV4dFNpbXBsZUJpbmRpbmciLCJnZXRWYWx1ZUJpbmRpbmciLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkiLCJleHBlY3QiLCJ0b0VxdWFsIiwidGV4dERlbGV0ZUZvcm1hdHRlckJpbmRpbmciLCJ0ZXh0TWF4TGluZXMiLCJ0ZXh0QmluZGluZ1BhcmFtZXR0ZXIiLCIkJG5vUGF0Y2giLCJ0ZXh0VHlwZUFueSIsInVuZGVmaW5lZCIsImVtYWlsU2ltcGxlQmluZGluZyIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZyIsInRvTWF0Y2hJbmxpbmVTbmFwc2hvdCIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nSWdub3JlVW5pdCIsInVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmciLCJlbnRpdHlTZXRMaW5lSXRlbSIsImFubm90YXRpb25zIiwiVUkiLCJMaW5lSXRlbSIsImRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSIsImZvcm1hdE9wdGlvbnMiLCJ2YWx1ZUZvcm1hdCIsInRleHRBbGlnbk1vZGUiLCJyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0IiwiZGF0YUZpZWxkQ29udmVydGVkIiwic2VtYW50aWNPYmplY3QiLCJkaXNwbGF5U3R5bGVMaW5rIiwiZ2V0RGlzcGxheVN0eWxlIiwibm9TZW1hbnRpY09iamVjdCIsImRpc3BsYXlTdHlsZVRleHQiLCJ0ZXh0T25seUJpbmRpbmciLCJnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsImJpbmRpbmdFeHByZXNzaW9uIiwidG9NYXRjaFNuYXBzaG90IiwiY29tcGlsZUJpbmRpbmciLCJ0b0NvbnRhaW4iLCJldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwiLCJ0YXJnZXRUZXh0Iiwibm9UZXh0QmluZGluZyIsIm5vVGV4dCIsInRleHRGaXJzdEJpbmRpbmciLCJ0ZXh0Rmlyc3QiLCJ0ZXh0TGFzdEJpbmRpbmciLCJ0ZXh0TGFzdCIsImZ1bGxDb250ZXh0Iiwib3RoZXJNb2RlbEJpbmRpbmciLCJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwibm90IiwiYWRkVGV4dExhc3RCaW5kaW5nIiwiY29tcGxleFRleHRCaW5kaW5nIiwiaWZFbHNlIiwibW9kZWxDb250ZW50IiwidGVzdFByb3AiLCJvUHJvcGVydHlUeXBlIiwiX3R5cGUiLCJ0eXBlIiwiZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiIsImdldFZpc2libGVFeHByZXNzaW9uIiwiaXNBbmFseXRpY3MiLCJvQW5ub3RhdGlvbnMiLCJMYWJlbCIsIlNlbWFudGljT2JqZWN0IiwiZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlIiwiYVNlbU9iakV4cHJUb1Jlc29sdmUiLCJrZXkiLCJ2YWx1ZSIsIm9TZW1hbnRpY09iamVjdENvbnRleHQiLCJnZXRTZW1hbnRpY09iamVjdHMiLCJnZXRPYmplY3QiLCJvQ29udGV4dFBhdGgiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm9NZXRhUGF0aCIsIm9EYXRhTW9kZWxQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwib1Byb3BlcnR5IiwidGFyZ2V0T2JqZWN0IiwiVmFsdWUiLCIkdGFy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c0YsWUFBTTtBQUM3RixVQUFNdUUsWUFBWSxHQUFHL0YsU0FBUyxDQUFDZ0csb0JBQVYsQ0FBK0IsYUFBL0IsQ0FBckI7QUFDQSxVQUFNQyxTQUFTLEdBQUdqRyxTQUFTLENBQUNnRyxvQkFBVixDQUErQixnRkFBL0IsQ0FBbEI7QUFDQSxVQUFNRSxjQUFjLEdBQUdDLDJCQUEyQixDQUFDRixTQUFELEVBQVlGLFlBQVosQ0FBbEQ7QUFDQSxVQUFNSyxTQUFtQixHQUFHRixjQUFILGFBQUdBLGNBQUgsdUJBQUdBLGNBQWMsQ0FBRUcsWUFBaEIsQ0FBNkJDLEtBQTdCLENBQW1DQyxPQUEvRDtBQUNBM0UsTUFBQUEsTUFBTSxDQUFDNEUscUNBQXFDLENBQUNOLGNBQUQsRUFBd0NFLFNBQXhDLENBQXRDLENBQU4sQ0FBNEd2RSxPQUE1RyxDQUFvSCxLQUFwSDtBQUNBLEtBTkMsQ0FBRjtBQU9BLEdBaFlPLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50LFxuXHRhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uLFxuXHRnZXRWaXNpYmxlRXhwcmVzc2lvbixcblx0RmllbGRGb3JtYXRPcHRpb25zLFxuXHRnZXRWYWx1ZUJpbmRpbmcsXG5cdGdldERpc3BsYXlTdHlsZSxcblx0Z2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlLFxuXHRnZXRTZW1hbnRpY09iamVjdHMsXG5cdGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHNcbn0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRUZW1wbGF0aW5nXCI7XG5pbXBvcnQgeyBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgY29tcGlsZUNEUywgZ2V0TWV0YU1vZGVsLCBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHksIGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbCB9IGZyb20gXCJzYXAvZmUvdGVzdC9KZXN0VGVtcGxhdGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBBbnlBbm5vdGF0aW9uLCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGJpbmRpbmdFeHByZXNzaW9uLCBjb21waWxlQmluZGluZywgaWZFbHNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IExpbmVJdGVtIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5cbmRlc2NyaWJlKFwiRmllbGQgVGVtcGxhdGluZyBUZXN0aW5nXCIsICgpID0+IHtcblx0bGV0IGNvbnZlcnRlZFR5cGVzO1xuXHRsZXQgbWV0YU1vZGVsOiBhbnk7XG5cdGxldCBlbnRpdHlTZXQ6IEVudGl0eVNldDtcblx0bGV0IGVudGl0eVR5cGU6IEVudGl0eVR5cGU7XG5cdGNvbnN0IHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIFByb3BlcnR5PiA9IHt9O1xuXHRiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHNNZXRhZGF0YVVybCA9IGNvbXBpbGVDRFMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuL0ZpZWxkVGVtcGxhdGluZy5jZHNcIikpO1xuXHRcdG1ldGFNb2RlbCA9IGF3YWl0IGdldE1ldGFNb2RlbChzTWV0YWRhdGFVcmwpO1xuXHRcdGNvbnZlcnRlZFR5cGVzID0gY29udmVydFR5cGVzKG1ldGFNb2RlbCk7XG5cdFx0Y29uc3QgbWF5YmVFbnRpdHlTZXQgPSBjb252ZXJ0ZWRUeXBlcy5lbnRpdHlTZXRzLmZpbmQoZXQgPT4gZXQubmFtZSA9PT0gXCJNYWluRW50aXR5XCIpO1xuXHRcdGlmIChtYXliZUVudGl0eVNldCkge1xuXHRcdFx0ZW50aXR5U2V0ID0gbWF5YmVFbnRpdHlTZXQ7XG5cdFx0XHRlbnRpdHlUeXBlID0gbWF5YmVFbnRpdHlTZXQuZW50aXR5VHlwZTtcblx0XHRcdGVudGl0eVR5cGUuZW50aXR5UHJvcGVydGllcy5mb3JFYWNoKHByb3AgPT4ge1xuXHRcdFx0XHRwcm9wZXJ0aWVzW3Byb3AubmFtZV0gPSBwcm9wO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkVycm9yIGluIHRlc3Qgc2V0dXBcIik7XG5cdFx0fVxuXHR9KTtcblx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0amVzdC5jbGVhckFsbE1vY2tzKCk7XG5cdH0pO1xuXG5cdGl0KFxuXHRcdFwiI2dldFZhbHVlQmluZGluZ1wiLFxuXHRcdHtcblx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInR5cGVcIjogXCJCQ1BcIixcblx0XHRcdFx0XHRcIklEXCI6IFwiMjE3MDIzNzE2NVwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IHRleHRTaW1wbGVCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksIHt9KTtcblx0XHRcdGV4cGVjdCh0ZXh0U2ltcGxlQmluZGluZykudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDogJ3RleHRCaW5kaW5nJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWV9fVwiXG5cdFx0XHQpO1xuXG5cdFx0XHRjb25zdCB0ZXh0RGVsZXRlRm9ybWF0dGVyQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcInRleHRCaW5kaW5nXCJdKSxcblx0XHRcdFx0eyB0ZXh0TWF4TGluZXM6IFwiMTBcIiB9LFxuXHRcdFx0XHR0cnVlLCAvL2lnbm9yZVVuaXQsIGl0IGRvZXNuJ3QgaGF2ZSB1bml0LCBzbyBkb2Vzbid0IG1hdHRlci4gVGVzdGVkIGEgZmV3IGxpbmVzIGxhdGVyLlxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHRleHREZWxldGVGb3JtYXR0ZXJCaW5kaW5nKS50b0VxdWFsKFwie3RleHRCaW5kaW5nfVwiKTtcblxuXHRcdFx0Y29uc3QgdGV4dEJpbmRpbmdQYXJhbWV0dGVyID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dEJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7IHRleHRNYXhMaW5lczogXCIxMFwiIH0sXG5cdFx0XHRcdHRydWUsXG5cdFx0XHRcdHRydWUsXG5cdFx0XHRcdHsgJCRub1BhdGNoOiB0cnVlIH1cblx0XHRcdCk7XG5cdFx0XHRleHBlY3QodGV4dEJpbmRpbmdQYXJhbWV0dGVyKS50b0VxdWFsKFwie3BhdGg6ICd0ZXh0QmluZGluZycsIHBhcmFtZXRlcnM6IHskJG5vUGF0Y2g6IHRydWV9fVwiKTtcblxuXHRcdFx0Y29uc3QgdGV4dFR5cGVBbnkgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh0ZXh0VHlwZUFueSkudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDogJ3RleHRCaW5kaW5nJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIHRhcmdldFR5cGU6ICdhbnknLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX1cIlxuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgZW1haWxTaW1wbGVCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJlbWFpbEJpbmRpbmdcIl0pLCB7fSk7XG5cdFx0XHRleHBlY3QoZW1haWxTaW1wbGVCaW5kaW5nKS50b0VxdWFsKFwie3BhdGg6ICdlbWFpbEJpbmRpbmcnLCB0eXBlOiAnc2FwLmZlLmNvcmUudHlwZS5FbWFpbCd9XCIpO1xuXG5cdFx0XHRjb25zdCB1bml0V2l0aEN1cnJlbmN5QmluZGluZ1NpbXBsZUJpbmRpbmcgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJVbml0V2l0aEN1cnJlbmN5QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9XG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZykudG9NYXRjaElubGluZVNuYXBzaG90KFxuXHRcdFx0XHRgXCJ7bW9kZTonVHdvV2F5JywgcGFydHM6W3twYXRoOiAnVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmcnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MzInLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319LHtwYXRoOiAnY3VycmVuY3knLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nJywgZm9ybWF0T3B0aW9uczoge3BhcnNlS2VlcHNFbXB0eVN0cmluZzogdHJ1ZX19LHttb2RlOidPbmVUaW1lJyxwYXRoOicvIyNAQHJlcXVlc3RDdXJyZW5jeUNvZGVzJyx0YXJnZXRUeXBlOidhbnknfV0sdHlwZTonc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQ3VycmVuY3knLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJywgc2hvd01lYXN1cmU6IGZhbHNlfX1cImBcblx0XHRcdCk7XG5cblx0XHRcdGNvbnN0IHVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nSWdub3JlVW5pdCA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcIlVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nXCJdKSxcblx0XHRcdFx0e30sXG5cdFx0XHRcdHRydWVcblx0XHRcdCk7XG5cdFx0XHRleHBlY3QodW5pdFdpdGhDdXJyZW5jeUJpbmRpbmdJZ25vcmVVbml0KS50b0VxdWFsKFxuXHRcdFx0XHRcIntwYXRoOiAnVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmcnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MzInLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319XCJcblx0XHRcdCk7XG5cblx0XHRcdGNvbnN0IHVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmcgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJVbml0V2l0aEN1cnJlbmN5QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh1bml0V2l0aEN1cnJlbmN5RGVzY3JpcHRpb25CaW5kaW5nKS50b01hdGNoSW5saW5lU25hcHNob3QoXG5cdFx0XHRcdGBcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6ICdVbml0V2l0aEN1cnJlbmN5QmluZGluZycsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX0se3BhdGg6ICdjdXJyZW5jeScsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmcnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX0se21vZGU6J09uZVRpbWUnLHBhdGg6Jy8jI0BAcmVxdWVzdEN1cnJlbmN5Q29kZXMnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5DdXJyZW5jeScsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnLCBzaG93TnVtYmVyOiBmYWxzZX19XCJgXG5cdFx0XHQpO1xuXHRcdH1cblx0KTtcblxuXHRpdChcblx0XHRcIiNnZXREaXNwbGF5U3R5bGVcIixcblx0XHR7XG5cdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTE3NlwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IGVudGl0eVNldExpbmVJdGVtID0gZW50aXR5U2V0LmVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkxpbmVJdGVtIGFzIExpbmVJdGVtO1xuXHRcdFx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgZW50aXR5U2V0TGluZUl0ZW1bMV0gYXMgQW55QW5ub3RhdGlvbik7XG5cdFx0XHRjb25zdCBmb3JtYXRPcHRpb25zID0ge1xuXHRcdFx0XHR2YWx1ZUZvcm1hdDogXCJEZXNjcmlwdGlvblZhbHVlXCIsXG5cdFx0XHRcdHRleHRBbGlnbk1vZGU6IFwiRm9ybVwiLFxuXHRcdFx0XHRyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0OiBmYWxzZVxuXHRcdFx0fSBhcyBGaWVsZEZvcm1hdE9wdGlvbnM7XG5cblx0XHRcdGNvbnN0IGRhdGFGaWVsZENvbnZlcnRlZCA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcInByb3BlcnR5Tm9UZXh0V2l0aFZIXCJdKSxcblx0XHRcdFx0e31cblx0XHRcdCk7XG5cblx0XHRcdC8vIGRpc3BsYXlTdHlsZSBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiXG5cdFx0XHRjb25zdCBzZW1hbnRpY09iamVjdDogc3RyaW5nID0gXCJzZW1hbnRpY09iamVjdFwiO1xuXHRcdFx0Y29uc3QgZGlzcGxheVN0eWxlTGluayA9IGdldERpc3BsYXlTdHlsZShcblx0XHRcdFx0cHJvcGVydGllc1tcInByb3BlcnR5Tm9UZXh0V2l0aFZIXCJdLFxuXHRcdFx0XHRkYXRhRmllbGRDb252ZXJ0ZWQsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSxcblx0XHRcdFx0Zm9ybWF0T3B0aW9ucyxcblx0XHRcdFx0c2VtYW50aWNPYmplY3Rcblx0XHRcdCk7XG5cdFx0XHRleHBlY3QoZGlzcGxheVN0eWxlTGluaykudG9FcXVhbChcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiKTtcblxuXHRcdFx0Ly8gZGlzcGxheVN0eWxlIFwiVGV4dFwiXG5cdFx0XHRjb25zdCBub1NlbWFudGljT2JqZWN0OiBzdHJpbmcgPSBcIlwiO1xuXHRcdFx0Y29uc3QgZGlzcGxheVN0eWxlVGV4dCA9IGdldERpc3BsYXlTdHlsZShcblx0XHRcdFx0cHJvcGVydGllc1tcInByb3BlcnR5Tm9UZXh0V2l0aFZIXCJdLFxuXHRcdFx0XHRkYXRhRmllbGRDb252ZXJ0ZWQsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSxcblx0XHRcdFx0Zm9ybWF0T3B0aW9ucyxcblx0XHRcdFx0bm9TZW1hbnRpY09iamVjdFxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdChkaXNwbGF5U3R5bGVUZXh0KS50b0VxdWFsKFwiVGV4dFwiKTtcblx0XHR9XG5cdCk7XG5cblx0aXQoXCIjZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnRcIiwgKCkgPT4ge1xuXHRcdC8vIENhc2VzIHRvIGNvbnNpZGVyXG5cblx0XHQvLyBUZXh0T25seVxuXHRcdGNvbnN0IHRleHRPbmx5QmluZGluZyA9IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KFxuXHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcInRleHRPbmx5XCJdKSxcblx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dE9ubHlcIilcblx0XHQpO1xuXHRcdGV4cGVjdCh0ZXh0T25seUJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0T25seUJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcodGV4dE9ubHlCaW5kaW5nKSwgeyB0YXJnZXRUZXh0OiBcIllvbG9cIiB9KSkudG9FcXVhbChcIllvbG9cIik7XG5cblx0XHQvLyBObyB0ZXh0IGFycmFuZ2VtZW50XG5cdFx0Y29uc3Qgbm9UZXh0QmluZGluZyA9IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KFxuXHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcIm5vVGV4dFwiXSksXG5cdFx0XHRiaW5kaW5nRXhwcmVzc2lvbihcIm5vVGV4dFwiKVxuXHRcdCk7XG5cdFx0ZXhwZWN0KG5vVGV4dEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub1RleHRCaW5kaW5nKSkudG9Db250YWluKFwibm9UZXh0XCIpO1xuXHRcdGV4cGVjdChldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcobm9UZXh0QmluZGluZyksIHsgbm9UZXh0OiBcIllvbG9cIiB9KSkudG9FcXVhbChcIllvbG9cIik7XG5cblx0XHQvLyBUZXh0Rmlyc3Rcblx0XHRjb25zdCB0ZXh0Rmlyc3RCaW5kaW5nID0gZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQoXG5cdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dEZpcnN0XCJdKSxcblx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dEZpcnN0XCIpXG5cdFx0KTtcblx0XHRleHBlY3QodGV4dEZpcnN0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHRleHRGaXJzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0ZXh0Rmlyc3RcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHRleHRGaXJzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyh0ZXh0Rmlyc3RCaW5kaW5nKSwgeyB0ZXh0Rmlyc3Q6IFwiWW9sbyBMYXN0XCIsIHRhcmdldFRleHQ6IFwiWW9sbyBEZXNjcmlwdGlvblwiIH0pXG5cdFx0KS50b0VxdWFsKFwiWW9sbyBEZXNjcmlwdGlvbiAoWW9sbyBMYXN0KVwiKTtcblxuXHRcdC8vIFRleHRMYXN0XG5cdFx0Y29uc3QgdGV4dExhc3RCaW5kaW5nID0gZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQoXG5cdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dExhc3RcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiKVxuXHRcdCk7XG5cdFx0ZXhwZWN0KHRleHRMYXN0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHRleHRMYXN0QmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0TGFzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyh0ZXh0TGFzdEJpbmRpbmcpLCB7IHRleHRMYXN0OiBcIllvbG8gRmlyc3RcIiwgdGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIgfSlcblx0XHQpLnRvRXF1YWwoXCJZb2xvIEZpcnN0IChZb2xvIERlc2NyaXB0aW9uKVwiKTtcblx0fSk7XG5cblx0aXQoXCIjYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZnVsbENvbnRleHQgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0KTtcblxuXHRcdGNvbnN0IG90aGVyTW9kZWxCaW5kaW5nID0gYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbihiaW5kaW5nRXhwcmVzc2lvbihcInRleHRMYXN0XCIsIFwib3RoZXJNb2RlbFwiKSwgZnVsbENvbnRleHQpO1xuXHRcdGV4cGVjdChvdGhlck1vZGVsQmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG90aGVyTW9kZWxCaW5kaW5nKSkudG9Db250YWluKFwidGV4dExhc3RcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG90aGVyTW9kZWxCaW5kaW5nKSkubm90LnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cblx0XHRjb25zdCBhZGRUZXh0TGFzdEJpbmRpbmcgPSBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uKGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dExhc3RcIiksIGZ1bGxDb250ZXh0KTtcblx0XHRleHBlY3QoYWRkVGV4dExhc3RCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYWRkVGV4dExhc3RCaW5kaW5nKSkudG9Db250YWluKFwidGV4dExhc3RcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFkZFRleHRMYXN0QmluZGluZykpLnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0ZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKGFkZFRleHRMYXN0QmluZGluZyksIHsgdGV4dExhc3Q6IFwiWW9sbyBGaXJzdFwiLCB0YXJnZXRUZXh0OiBcIllvbG8gRGVzY3JpcHRpb25cIiB9KVxuXHRcdCkudG9FcXVhbChcIllvbG8gRmlyc3QgKFlvbG8gRGVzY3JpcHRpb24pXCIpO1xuXG5cdFx0Y29uc3QgY29tcGxleFRleHRCaW5kaW5nID0gYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbihcblx0XHRcdGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcInRlc3RQcm9wXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcInRleHRMYXN0XCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIm5vVGV4dFwiKSksXG5cdFx0XHRmdWxsQ29udGV4dFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBsZXhUZXh0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGNvbXBsZXhUZXh0QmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb21wbGV4VGV4dEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGNvbnN0IG1vZGVsQ29udGVudCA9IHtcblx0XHRcdHRlc3RQcm9wOiB0cnVlLFxuXHRcdFx0dGV4dExhc3Q6IFwiWW9sbyBGaXJzdFwiLFxuXHRcdFx0dGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIsXG5cdFx0XHRub1RleHQ6IFwiTm90IFlvbG9cIlxuXHRcdH07XG5cdFx0ZXhwZWN0KGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyhjb21wbGV4VGV4dEJpbmRpbmcpLCBtb2RlbENvbnRlbnQpKS50b0VxdWFsKFwiWW9sbyBGaXJzdCAoWW9sbyBEZXNjcmlwdGlvbilcIik7XG5cblx0XHRtb2RlbENvbnRlbnQudGVzdFByb3AgPSBmYWxzZTtcblx0XHRleHBlY3QoZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKGNvbXBsZXhUZXh0QmluZGluZyksIG1vZGVsQ29udGVudCkpLnRvRXF1YWwoXCJOb3QgWW9sb1wiKTtcblx0fSk7XG5cblx0aXQoXCJmb3JtYXR0ZWQgSW50ZWdlciB0eXBlIGNhbGxcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Qcm9wZXJ0eVR5cGUgPSB7IF90eXBlOiBcIlByb3BlcnR5XCIsIHR5cGU6IFwiRWRtLkludDMyXCIgfSBhcyBQcm9wZXJ0eTtcblx0XHRyZXR1cm4gZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ob1Byb3BlcnR5VHlwZSwgYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7cGF0aDogJ3ZhbHVlJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDMyJywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJyd9fVwiXG5cdFx0KTtcblx0fSk7XG5cblx0aXQoXG5cdFx0XCJmb3JtYXR0ZWQgRG91YmxlIHR5cGUgY2FsbFwiLFxuXHRcdHtcblx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInR5cGVcIjogXCJCQ1BcIixcblx0XHRcdFx0XHRcIklEXCI6IFwiMjE4MDIxMjE0OFwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eVR5cGUgPSB7IF90eXBlOiBcIlByb3BlcnR5XCIsIHR5cGU6IFwiRWRtLkRvdWJsZVwiIH0gYXMgUHJvcGVydHk7XG5cdFx0XHRyZXR1cm4gZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ob1Byb3BlcnR5VHlwZSwgYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XHRcIntwYXRoOiAndmFsdWUnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRG91YmxlJywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJyd9fVwiXG5cdFx0XHQpO1xuXHRcdH1cblx0KTtcblxuXHRpdChcImNhbiBldmFsdWF0ZSB0aGUgdmlzaWJsZSBwYXJhbWV0ZXIgYmFzZWQgb24gVUkuSGlkZGVuXCIsICgpID0+IHtcblx0XHRjb25zdCBlbnRpdHlTZXRMaW5lSXRlbSA9IGVudGl0eVNldC5lbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5MaW5lSXRlbSBhcyBMaW5lSXRlbTtcblx0XHRsZXQgZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMV0gYXMgQW55QW5ub3RhdGlvbiAvLyBzdGF0aWNIaWRkZW5Qcm9wXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzJdIGFzIEFueUFubm90YXRpb24gLy8gZHluYW1pY0hpZGRlblByb3Bcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiez0gJXtpc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzNdIGFzIEFueUFubm90YXRpb24gLy8gdGV4dEZpcnN0IHdpdGggZGF0YUZpZWxkIHN0YXRpY2FsbHkgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzRdIGFzIEFueUFubm90YXRpb24gLy8gdGV4dE9ubHkgd2l0aCBkYXRhRmllbGQgZHluYW1pY2FsbHkgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcIns9ICV7aXNIaWRkZW59ICE9PSB0cnVlfVwiKTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs1XSBhcyBBbnlBbm5vdGF0aW9uIC8vIGR5bmFtaWNIaWRkZW5Qcm9wMiB3aXRoIGR5bmFtaWMgZGF0YWZpZWxkIGhpZGRlblxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVuMn0gIT09IHRydWUgJiYgJXtpc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHksIHsgaXNBbmFseXRpY3M6IHRydWUgfSBhcyBGaWVsZEZvcm1hdE9wdGlvbnMpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2lzSGlkZGVuMn0gIT09IHRydWUgJiYgJXtpc0hpZGRlbn0gIT09IHRydWUgJiYgKCV7QCR1aTUubm9kZS5pc0V4cGFuZGVkfSAhPT0gdHJ1ZSB8fCAle0AkdWk1Lm5vZGUubGV2ZWx9ID09PSAwKX1cIlxuXHRcdCk7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bNl0gYXMgQW55QW5ub3RhdGlvbiAvLyBoaWRkZW5XaXRoMTFOYXYgd2l0aCBkeW5hbWljIGRhdGFmaWVsZCBoaWRkZW5cblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2lzSGlkZGVuMn0gIT09IHRydWUgJiYgJXtTcGVjaWFsQ2hpbGQvaXNIaWRkZW59ICE9PSB0cnVlfVwiXG5cdFx0KTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs3XSBhcyBBbnlBbm5vdGF0aW9uIC8vIGhpZGRlbldpdGgxTk5hdiB3aXRoIGR5bmFtaWMgZGF0YWZpZWxkIGhpZGRlbiAtPiBEb2Vzbid0IG1ha2Ugc2Vuc2UgYW5kIG1vZGVsIHdpbGwgY29tcGxhaW4gYnV0IGhlaCA6KFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVuMn0gIT09IHRydWUgJiYgJXtfRWxlbWVudHMvaXNIaWRkZW59ICE9PSB0cnVlfVwiKTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs4XSBhcyBBbnlBbm5vdGF0aW9uIC8vIERhdGEgRmllbGQgRm9yIEFjdGlvblxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzldIGFzIEFueUFubm90YXRpb24gLy8gRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtPiBkYXRhIHBvaW50IHZpc2libGVcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LCB7IGlzQW5hbHl0aWNzOiB0cnVlIH0gYXMgRmllbGRGb3JtYXRPcHRpb25zKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtAJHVpNS5ub2RlLmlzRXhwYW5kZWR9ICE9PSB0cnVlIHx8ICV7QCR1aTUubm9kZS5sZXZlbH0gPT09IDB9XCJcblx0XHQpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzEwXSBhcyBBbnlBbm5vdGF0aW9uIC8vIERhdGFGaWVsZEZvckFubm90YXRpb24gLT4gZGF0YSBwb2ludCBkeW5hbWljIHZpc2libGVcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiez0gJXtpc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzExXSBhcyBBbnlBbm5vdGF0aW9uIC8vIG5vSGlkZGVuUHJvcFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzEyXSBhcyBBbnlBbm5vdGF0aW9uIC8vIERhdGFGaWVsZEZvckFubm90YXRpb24gLT4gRmllbGRHcm91cCAtPiBEYXRhXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlIHdpdGggYW5ub3RhdGlvbnNcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Bbm5vdGF0aW9ucyA9IHtcblx0XHRcdExhYmVsOiBcIlNlbWFudGljIE9iamVjdCBQcm9wZXJ0eVwiLFxuXHRcdFx0U2VtYW50aWNPYmplY3Q6IFwidjQtRnJlZXN0eWxlXCJcblx0XHR9O1xuXHRcdGV4cGVjdChnZXRTZW1hbnRpY09iamVjdEV4cHJlc3Npb25Ub1Jlc29sdmUob0Fubm90YXRpb25zKSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlIHdpdGggYW5ub3RhdGlvbnMgYW5kIHNlbWFudGljIG9iamVjdCBxdWFsaWZpZXJcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Bbm5vdGF0aW9ucyA9IHtcblx0XHRcdFwiTGFiZWxcIjogXCJTZW1hbnRpYyBPYmplY3QgUHJvcGVydHlcIixcblx0XHRcdFwiU2VtYW50aWNPYmplY3QjUXVhbGlmaWVyXCI6IFwidjQtRnJlZXN0eWxlXCJcblx0XHR9O1xuXHRcdGV4cGVjdChnZXRTZW1hbnRpY09iamVjdEV4cHJlc3Npb25Ub1Jlc29sdmUob0Fubm90YXRpb25zKSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlIHdpdGhvdXQgYW5ub3RhdGlvbnNcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Bbm5vdGF0aW9ucyA9IHt9O1xuXHRcdGV4cGVjdChnZXRTZW1hbnRpY09iamVjdEV4cHJlc3Npb25Ub1Jlc29sdmUob0Fubm90YXRpb25zKSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0U2VtYW50aWNPYmplY3RzIHdpdGggYVNlbU9iakV4cHJUb1Jlc29sdmVcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IGFTZW1PYmpFeHByVG9SZXNvbHZlID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRrZXk6IFwidjQtRnJlZXN0eWxlXCIsXG5cdFx0XHRcdHZhbHVlOiBcInY0LUZyZWVzdHlsZVwiXG5cdFx0XHR9XG5cdFx0XTtcblx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RDb250ZXh0ID0gZ2V0U2VtYW50aWNPYmplY3RzKGFTZW1PYmpFeHByVG9SZXNvbHZlKTtcblx0XHRleHBlY3Qob1NlbWFudGljT2JqZWN0Q29udGV4dC5nZXRPYmplY3QoKSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0U2VtYW50aWNPYmplY3RzIHdpdGhvdXQgYVNlbU9iakV4cHJUb1Jlc29sdmVcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IGFTZW1PYmpFeHByVG9SZXNvbHZlOiBhbnkgPSBbXTtcblx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RDb250ZXh0ID0gZ2V0U2VtYW50aWNPYmplY3RzKGFTZW1PYmpFeHByVG9SZXNvbHZlKTtcblx0XHRleHBlY3Qob1NlbWFudGljT2JqZWN0Q29udGV4dC5nZXRPYmplY3QoKSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyB3aXRoIGRhdGFwb2ludCBoYXZpbmcgUXVpY2tWaWV3RmFjZXRzXCIsICgpID0+IHtcblx0XHRjb25zdCBvQ29udGV4dFBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eVwiKTtcblx0XHRjb25zdCBvTWV0YVBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzIvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aC9cIik7XG5cdFx0Y29uc3Qgb0RhdGFNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob01ldGFQYXRoLCBvQ29udGV4dFBhdGgpO1xuXHRcdGNvbnN0IG9Qcm9wZXJ0eTogUHJvcGVydHkgPSBvRGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0LlZhbHVlLiR0YXJnZXQ7XG5cdFx0ZXhwZWN0KGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMob0RhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aCwgb1Byb3BlcnR5IGFzIFByb3BlcnR5KSkudG9FcXVhbCh0cnVlKTtcblx0fSk7XG5cblx0aXQoXCJpc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzIHdpdGggZGF0YXBvaW50IG5vdCBoYXZpbmcgUXVpY2sgVmlldyBGYWNldHNcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Db250ZXh0UGF0aCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9NYWluRW50aXR5XCIpO1xuXHRcdGNvbnN0IG9NZXRhUGF0aCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9NYWluRW50aXR5L0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMy9UYXJnZXQvJEFubm90YXRpb25QYXRoL1wiKTtcblx0XHRjb25zdCBvRGF0YU1vZGVsUGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhvTWV0YVBhdGgsIG9Db250ZXh0UGF0aCk7XG5cdFx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IG9EYXRhTW9kZWxQYXRoPy50YXJnZXRPYmplY3QuVmFsdWUuJHRhcmdldDtcblx0XHRleHBlY3QoaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyhvRGF0YU1vZGVsUGF0aCBhcyBEYXRhTW9kZWxPYmplY3RQYXRoLCBvUHJvcGVydHkgYXMgUHJvcGVydHkpKS50b0VxdWFsKGZhbHNlKTtcblx0fSk7XG59KTtcbiJdfQ==
|
|
334
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkVGVtcGxhdGluZy5zcGVjLnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiY29udmVydGVkVHlwZXMiLCJtZXRhTW9kZWwiLCJlbnRpdHlTZXQiLCJlbnRpdHlUeXBlIiwicHJvcGVydGllcyIsImJlZm9yZUFsbCIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImdldE1ldGFNb2RlbCIsImNvbnZlcnRUeXBlcyIsIm1heWJlRW50aXR5U2V0IiwiZW50aXR5U2V0cyIsImZpbmQiLCJldCIsIm5hbWUiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3AiLCJFcnJvciIsImJlZm9yZUVhY2giLCJqZXN0IiwiY2xlYXJBbGxNb2NrcyIsIml0IiwidGV4dFNpbXBsZUJpbmRpbmciLCJnZXRWYWx1ZUJpbmRpbmciLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkiLCJleHBlY3QiLCJ0b0VxdWFsIiwidGV4dERlbGV0ZUZvcm1hdHRlckJpbmRpbmciLCJ0ZXh0TWF4TGluZXMiLCJ0ZXh0QmluZGluZ1BhcmFtZXR0ZXIiLCIkJG5vUGF0Y2giLCJ0ZXh0VHlwZUFueSIsInVuZGVmaW5lZCIsImVtYWlsU2ltcGxlQmluZGluZyIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZyIsInRvTWF0Y2hJbmxpbmVTbmFwc2hvdCIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nSWdub3JlVW5pdCIsInVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmciLCJlbnRpdHlTZXRMaW5lSXRlbSIsImFubm90YXRpb25zIiwiVUkiLCJMaW5lSXRlbSIsImRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSIsImZvcm1hdE9wdGlvbnMiLCJ2YWx1ZUZvcm1hdCIsInRleHRBbGlnbk1vZGUiLCJyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0IiwiZGF0YUZpZWxkQ29udmVydGVkIiwic2VtYW50aWNPYmplY3QiLCJkaXNwbGF5U3R5bGVMaW5rIiwiZ2V0RGlzcGxheVN0eWxlIiwibm9TZW1hbnRpY09iamVjdCIsImRpc3BsYXlTdHlsZVRleHQiLCJ0ZXh0T25seUJpbmRpbmciLCJnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsImJpbmRpbmdFeHByZXNzaW9uIiwidG9NYXRjaFNuYXBzaG90IiwiY29tcGlsZUJpbmRpbmciLCJ0b0NvbnRhaW4iLCJldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwiLCJ0YXJnZXRUZXh0Iiwibm9UZXh0QmluZGluZyIsIm5vVGV4dCIsInRleHRGaXJzdEJpbmRpbmciLCJ0ZXh0Rmlyc3QiLCJ0ZXh0TGFzdEJpbmRpbmciLCJ0ZXh0TGFzdCIsImZ1bGxDb250ZXh0Iiwib3RoZXJNb2RlbEJpbmRpbmciLCJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwibm90IiwiYWRkVGV4dExhc3RCaW5kaW5nIiwiY29tcGxleFRleHRCaW5kaW5nIiwiaWZFbHNlIiwibW9kZWxDb250ZW50IiwidGVzdFByb3AiLCJvUHJvcGVydHlUeXBlIiwiX3R5cGUiLCJ0eXBlIiwiZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiIsImdldFZpc2libGVFeHByZXNzaW9uIiwiaXNBbmFseXRpY3MiLCJvQW5ub3RhdGlvbnMiLCJMYWJlbCIsIlNlbWFudGljT2JqZWN0IiwiZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlIiwiYVNlbU9iakV4cHJUb1Jlc29sdmUiLCJrZXkiLCJ2YWx1ZSIsIm9TZW1hbnRpY09iamVjdENvbnRleHQiLCJnZXRTZW1hbnRpY09iamVjdHMiLCJnZXRPYmplY3QiLCJvQ29udGV4dFBhdGgiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm9NZXRhUGF0aCIsIm9EYXRhTW9kZWxQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwib1Byb3BlcnR5IiwidGFyZ2V0T2JqZWN0IiwiVmFsdWUiLCIkdGFyZ2V0IiwiaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyIsIm9UaGlzIiwid3JhcCIsImVkaXRNb2RlIiwiZ2V0TXVsdGlwbGVMaW5lc0ZvckRhdGFGaWVsZCIsInJlc3VsdCIsInNFbnRpdHlUeXBlIiwibW9ja0NvbnRleHQiLCJNb2NrQ29udGV4dCIsIm1vY2tNb2RlbCIsIk1vY2tNb2RlbCIsImdldE1vZGVsIiwibW9ja1JldHVyblZhbHVlIiwicmVxdWVzdE9iamVjdCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZ2V0QmluZGluZ0ZvckRyYWZ0QWRtaW5CbG9ja0lubGluZSIsIkluUHJvY2Vzc0J5VXNlckRlc2NyaXB0aW9uIiwiTGFzdENoYW5nZWRCeVVzZXJEZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBQSxFQUFBQSxRQUFRLENBQUMsMEJBQUQsRUFBNkIsWUFBTTtBQUMxQyxRQUFJQyxjQUFKO0FBQ0EsUUFBSUMsU0FBSjtBQUNBLFFBQUlDLFNBQUo7QUFDQSxRQUFJQyxVQUFKO0FBQ0EsUUFBTUMsVUFBb0MsR0FBRyxFQUE3QztBQUNBQyxJQUFBQSxTQUFTO0FBQUEsVUFBYTtBQUNyQixZQUFNQyxZQUFZLEdBQUdDLFVBQVUsQ0FBQ0MsSUFBSSxDQUFDQyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsdUJBQXJCLENBQUQsQ0FBL0I7QUFEcUIsK0JBRUhDLFlBQVksQ0FBQ0wsWUFBRCxDQUZUO0FBRXJCTCxVQUFBQSxTQUFTLGdCQUFUO0FBQ0FELFVBQUFBLGNBQWMsR0FBR1ksWUFBWSxDQUFDWCxTQUFELENBQTdCO0FBQ0EsY0FBTVksY0FBYyxHQUFHYixjQUFjLENBQUNjLFVBQWYsQ0FBMEJDLElBQTFCLENBQStCLFVBQUFDLEVBQUU7QUFBQSxtQkFBSUEsRUFBRSxDQUFDQyxJQUFILEtBQVksWUFBaEI7QUFBQSxXQUFqQyxDQUF2Qjs7QUFKcUIsY0FLakJKLGNBTGlCO0FBTXBCWCxZQUFBQSxT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QUwsSUFBQUEsRUFBRSxDQUFDLG9DQUFEO0FBQUEsVUFBbUQ7QUFDcEQsWUFBSXFGLE1BQUo7QUFDQSxZQUFNQyxXQUFXLEdBQUcsWUFBcEI7QUFDQSxZQUFNQyxXQUFXLEdBQUcsSUFBSUMsV0FBSixDQUFnQixFQUFoQixDQUFwQjtBQUNBLFlBQU1DLFNBQVMsR0FBRyxJQUFJQyxTQUFKLEVBQWxCO0FBQ0FILFFBQUFBLFdBQVcsQ0FBQ0ksUUFBWixDQUFxQkMsZUFBckIsQ0FBcUNILFNBQXJDO0FBQ0FBLFFBQUFBLFNBQVMsQ0FBQ0ksYUFBVixDQUF3QkQsZUFBeEIsQ0FBd0NFLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQixFQUFoQixDQUF4QztBQU5vRCwrQkFPckNDLGtDQUFrQyxDQUFDVCxXQUFELEVBQWNELFdBQWQsQ0FQRztBQU9wREQsVUFBQUEsTUFBTSx3QkFBTjtBQUNBakYsVUFBQUEsTUFBTSxDQUFDaUYsTUFBRCxDQUFOLENBQWVoRixPQUFmLENBQ0MsMkhBREQ7QUFJQW9GLFVBQUFBLFNBQVMsQ0FBQ0ksYUFBVixDQUF3QkQsZUFBeEIsQ0FDQ0UsT0FBTyxDQUFDQyxPQUFSLENBQWdCO0FBQUVFLFlBQUFBLDBCQUEwQixFQUFFLE1BQTlCO0FBQXNDQyxZQUFBQSw0QkFBNEIsRUFBRTtBQUFwRSxXQUFoQixDQUREO0FBWm9ELGlDQWVyQ0Ysa0NBQWtDLENBQUNULFdBQUQsRUFBY0QsV0FBZCxDQWZHO0FBZXBERCxZQUFBQSxNQUFNLHlCQUFOO0FBQ0FqRixZQUFBQSxNQUFNLENBQUNpRixNQUFELENBQU4sQ0FBZWhGLE9BQWYsQ0FDQywrT0FERDtBQWhCb0Q7QUFBQTtBQW1CcEQsT0FuQkM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQW9CQSxHQS9iTyxDQUFSIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCxcblx0YWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbixcblx0Z2V0VmlzaWJsZUV4cHJlc3Npb24sXG5cdEZpZWxkRm9ybWF0T3B0aW9ucyxcblx0Z2V0VmFsdWVCaW5kaW5nLFxuXHRnZXREaXNwbGF5U3R5bGUsXG5cdGdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSxcblx0Z2V0U2VtYW50aWNPYmplY3RzLFxuXHRpc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzLFxuXHRnZXRNdWx0aXBsZUxpbmVzRm9yRGF0YUZpZWxkLFxuXHRnZXRCaW5kaW5nRm9yRHJhZnRBZG1pbkJsb2NrSW5saW5lLFxuXHRfZ2V0RHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFUeXBlXG59IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkVGVtcGxhdGluZ1wiO1xuaW1wb3J0IHsgZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGNvbXBpbGVDRFMsIGdldE1ldGFNb2RlbCwgZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LCBldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwgfSBmcm9tIFwic2FwL2ZlL3Rlc3QvSmVzdFRlbXBsYXRpbmdIZWxwZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRUeXBlcyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgQW55QW5ub3RhdGlvbiwgQ29udmVydGVyT3V0cHV0LCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGJpbmRpbmdFeHByZXNzaW9uLCBjb21waWxlQmluZGluZywgaWZFbHNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IExpbmVJdGVtIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBNb2NrQ29udGV4dCwgTW9ja01vZGVsIH0gZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvbWFjcm9zL1Jlc291cmNlTW9kZWxcIjtcblxuZGVzY3JpYmUoXCJGaWVsZCBUZW1wbGF0aW5nIFRlc3RpbmdcIiwgKCkgPT4ge1xuXHRsZXQgY29udmVydGVkVHlwZXM6IENvbnZlcnRlck91dHB1dDtcblx0bGV0IG1ldGFNb2RlbDogYW55O1xuXHRsZXQgZW50aXR5U2V0OiBFbnRpdHlTZXQ7XG5cdGxldCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlO1xuXHRjb25zdCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eT4gPSB7fTtcblx0YmVmb3JlQWxsKGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBzTWV0YWRhdGFVcmwgPSBjb21waWxlQ0RTKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9GaWVsZFRlbXBsYXRpbmcuY2RzXCIpKTtcblx0XHRtZXRhTW9kZWwgPSBhd2FpdCBnZXRNZXRhTW9kZWwoc01ldGFkYXRhVXJsKTtcblx0XHRjb252ZXJ0ZWRUeXBlcyA9IGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpO1xuXHRcdGNvbnN0IG1heWJlRW50aXR5U2V0ID0gY29udmVydGVkVHlwZXMuZW50aXR5U2V0cy5maW5kKGV0ID0+IGV0Lm5hbWUgPT09IFwiTWFpbkVudGl0eVwiKTtcblx0XHRpZiAobWF5YmVFbnRpdHlTZXQpIHtcblx0XHRcdGVudGl0eVNldCA9IG1heWJlRW50aXR5U2V0O1xuXHRcdFx0ZW50aXR5VHlwZSA9IG1heWJlRW50aXR5U2V0LmVudGl0eVR5cGU7XG5cdFx0XHRlbnRpdHlUeXBlLmVudGl0eVByb3BlcnRpZXMuZm9yRWFjaChwcm9wID0+IHtcblx0XHRcdFx0cHJvcGVydGllc1twcm9wLm5hbWVdID0gcHJvcDtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciBpbiB0ZXN0IHNldHVwXCIpO1xuXHRcdH1cblx0fSk7XG5cdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHR9KTtcblxuXHRpdChcblx0XHRcIiNnZXRWYWx1ZUJpbmRpbmdcIixcblx0XHR7XG5cdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJ0eXBlXCI6IFwiQkNQXCIsXG5cdFx0XHRcdFx0XCJJRFwiOiBcIjIxNzAyMzcxNjVcIlxuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB0ZXh0U2ltcGxlQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgY29udmVydGVkVHlwZXMsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9XG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHRleHRTaW1wbGVCaW5kaW5nKS50b0VxdWFsKFxuXHRcdFx0XHRcIntwYXRoOiAndGV4dEJpbmRpbmcnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nJywgZm9ybWF0T3B0aW9uczoge3BhcnNlS2VlcHNFbXB0eVN0cmluZzogdHJ1ZX19XCJcblx0XHRcdCk7XG5cblx0XHRcdGNvbnN0IHRleHREZWxldGVGb3JtYXR0ZXJCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBjb252ZXJ0ZWRUeXBlcywgcHJvcGVydGllc1tcInRleHRCaW5kaW5nXCJdKSxcblx0XHRcdFx0eyB0ZXh0TWF4TGluZXM6IFwiMTBcIiB9LFxuXHRcdFx0XHR0cnVlLCAvL2lnbm9yZVVuaXQsIGl0IGRvZXNuJ3QgaGF2ZSB1bml0LCBzbyBkb2Vzbid0IG1hdHRlci4gVGVzdGVkIGEgZmV3IGxpbmVzIGxhdGVyLlxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHRleHREZWxldGVGb3JtYXR0ZXJCaW5kaW5nKS50b0VxdWFsKFwie3RleHRCaW5kaW5nfVwiKTtcblxuXHRcdFx0Y29uc3QgdGV4dEJpbmRpbmdQYXJhbWV0dGVyID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBjb252ZXJ0ZWRUeXBlcywgcHJvcGVydGllc1tcInRleHRCaW5kaW5nXCJdKSxcblx0XHRcdFx0eyB0ZXh0TWF4TGluZXM6IFwiMTBcIiB9LFxuXHRcdFx0XHR0cnVlLFxuXHRcdFx0XHR0cnVlLFxuXHRcdFx0XHR7ICQkbm9QYXRjaDogdHJ1ZSB9XG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHRleHRCaW5kaW5nUGFyYW1ldHRlcikudG9FcXVhbChcIntwYXRoOiAndGV4dEJpbmRpbmcnLCBwYXJhbWV0ZXJzOiB7JCRub1BhdGNoOiB0cnVlfX1cIik7XG5cblx0XHRcdGNvbnN0IHRleHRUeXBlQW55ID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBjb252ZXJ0ZWRUeXBlcywgcHJvcGVydGllc1tcInRleHRCaW5kaW5nXCJdKSxcblx0XHRcdFx0e30sXG5cdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHRleHRUeXBlQW55KS50b0VxdWFsKFxuXHRcdFx0XHRcIntwYXRoOiAndGV4dEJpbmRpbmcnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nJywgdGFyZ2V0VHlwZTogJ2FueScsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWV9fVwiXG5cdFx0XHQpO1xuXG5cdFx0XHRjb25zdCBlbWFpbFNpbXBsZUJpbmRpbmcgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIGNvbnZlcnRlZFR5cGVzLCBwcm9wZXJ0aWVzW1wiZW1haWxCaW5kaW5nXCJdKSxcblx0XHRcdFx0e31cblx0XHRcdCk7XG5cdFx0XHRleHBlY3QoZW1haWxTaW1wbGVCaW5kaW5nKS50b0VxdWFsKFwie3BhdGg6ICdlbWFpbEJpbmRpbmcnLCB0eXBlOiAnc2FwLmZlLmNvcmUudHlwZS5FbWFpbCd9XCIpO1xuXG5cdFx0XHRjb25zdCB1bml0V2l0aEN1cnJlbmN5QmluZGluZ1NpbXBsZUJpbmRpbmcgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIGNvbnZlcnRlZFR5cGVzLCBwcm9wZXJ0aWVzW1wiVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7fVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh1bml0V2l0aEN1cnJlbmN5QmluZGluZ1NpbXBsZUJpbmRpbmcpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChcblx0XHRcdFx0YFwie21vZGU6J1R3b1dheScsIHBhcnRzOlt7cGF0aDogJ1VuaXRXaXRoQ3VycmVuY3lCaW5kaW5nJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDMyJywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJyd9fSx7cGF0aDogJ2N1cnJlbmN5JywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWV9fSx7bW9kZTonT25lVGltZScscGF0aDonLyMjQEByZXF1ZXN0Q3VycmVuY3lDb2RlcycsdGFyZ2V0VHlwZTonYW55J31dLHR5cGU6J3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5JywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJycsIHNob3dNZWFzdXJlOiBmYWxzZX19XCJgXG5cdFx0XHQpO1xuXG5cdFx0XHRjb25zdCB1bml0V2l0aEN1cnJlbmN5QmluZGluZ0lnbm9yZVVuaXQgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIGNvbnZlcnRlZFR5cGVzLCBwcm9wZXJ0aWVzW1wiVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7fSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh1bml0V2l0aEN1cnJlbmN5QmluZGluZ0lnbm9yZVVuaXQpLnRvRXF1YWwoXG5cdFx0XHRcdFwie3BhdGg6ICdVbml0V2l0aEN1cnJlbmN5QmluZGluZycsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX1cIlxuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgdW5pdFdpdGhDdXJyZW5jeURlc2NyaXB0aW9uQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgY29udmVydGVkVHlwZXMsIHByb3BlcnRpZXNbXCJVbml0V2l0aEN1cnJlbmN5QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh1bml0V2l0aEN1cnJlbmN5RGVzY3JpcHRpb25CaW5kaW5nKS50b01hdGNoSW5saW5lU25hcHNob3QoXG5cdFx0XHRcdGBcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6ICdVbml0V2l0aEN1cnJlbmN5QmluZGluZycsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX0se3BhdGg6ICdjdXJyZW5jeScsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmcnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX0se21vZGU6J09uZVRpbWUnLHBhdGg6Jy8jI0BAcmVxdWVzdEN1cnJlbmN5Q29kZXMnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5DdXJyZW5jeScsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnLCBzaG93TnVtYmVyOiBmYWxzZX19XCJgXG5cdFx0XHQpO1xuXHRcdH1cblx0KTtcblxuXHRpdChcblx0XHRcIiNnZXREaXNwbGF5U3R5bGVcIixcblx0XHR7XG5cdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTE3NlwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IGVudGl0eVNldExpbmVJdGVtID0gZW50aXR5U2V0LmVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkxpbmVJdGVtIGFzIExpbmVJdGVtO1xuXHRcdFx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRcdGNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVsxXSBhcyBBbnlBbm5vdGF0aW9uXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgZm9ybWF0T3B0aW9ucyA9IHtcblx0XHRcdFx0dmFsdWVGb3JtYXQ6IFwiRGVzY3JpcHRpb25WYWx1ZVwiLFxuXHRcdFx0XHR0ZXh0QWxpZ25Nb2RlOiBcIkZvcm1cIixcblx0XHRcdFx0cmV0cmlldmVUZXh0RnJvbVZhbHVlTGlzdDogZmFsc2Vcblx0XHRcdH0gYXMgRmllbGRGb3JtYXRPcHRpb25zO1xuXG5cdFx0XHRjb25zdCBkYXRhRmllbGRDb252ZXJ0ZWQgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIGNvbnZlcnRlZFR5cGVzLCBwcm9wZXJ0aWVzW1wicHJvcGVydHlOb1RleHRXaXRoVkhcIl0pLFxuXHRcdFx0XHR7fVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gZGlzcGxheVN0eWxlIFwiTGlua1dpdGhRdWlja1ZpZXdGb3JtXCJcblx0XHRcdGNvbnN0IHNlbWFudGljT2JqZWN0OiBzdHJpbmcgPSBcInNlbWFudGljT2JqZWN0XCI7XG5cdFx0XHRjb25zdCBkaXNwbGF5U3R5bGVMaW5rID0gZ2V0RGlzcGxheVN0eWxlKFxuXHRcdFx0XHRwcm9wZXJ0aWVzW1wicHJvcGVydHlOb1RleHRXaXRoVkhcIl0sXG5cdFx0XHRcdGRhdGFGaWVsZENvbnZlcnRlZCxcblx0XHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LFxuXHRcdFx0XHRmb3JtYXRPcHRpb25zLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdChkaXNwbGF5U3R5bGVMaW5rKS50b0VxdWFsKFwiTGlua1dpdGhRdWlja1ZpZXdGb3JtXCIpO1xuXG5cdFx0XHQvLyBkaXNwbGF5U3R5bGUgXCJUZXh0XCJcblx0XHRcdGNvbnN0IG5vU2VtYW50aWNPYmplY3Q6IHN0cmluZyA9IFwiXCI7XG5cdFx0XHRjb25zdCBkaXNwbGF5U3R5bGVUZXh0ID0gZ2V0RGlzcGxheVN0eWxlKFxuXHRcdFx0XHRwcm9wZXJ0aWVzW1wicHJvcGVydHlOb1RleHRXaXRoVkhcIl0sXG5cdFx0XHRcdGRhdGFGaWVsZENvbnZlcnRlZCxcblx0XHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LFxuXHRcdFx0XHRmb3JtYXRPcHRpb25zLFxuXHRcdFx0XHRub1NlbWFudGljT2JqZWN0XG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KGRpc3BsYXlTdHlsZVRleHQpLnRvRXF1YWwoXCJUZXh0XCIpO1xuXHRcdH1cblx0KTtcblxuXHRpdChcIiNnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudFwiLCAoKSA9PiB7XG5cdFx0Ly8gQ2FzZXMgdG8gY29uc2lkZXJcblxuXHRcdC8vIFRleHRPbmx5XG5cdFx0Y29uc3QgdGV4dE9ubHlCaW5kaW5nID0gZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQoXG5cdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBjb252ZXJ0ZWRUeXBlcywgcHJvcGVydGllc1tcInRleHRPbmx5XCJdKSxcblx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dE9ubHlcIilcblx0XHQpO1xuXHRcdGV4cGVjdCh0ZXh0T25seUJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0T25seUJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcodGV4dE9ubHlCaW5kaW5nKSwgeyB0YXJnZXRUZXh0OiBcIllvbG9cIiB9KSkudG9FcXVhbChcIllvbG9cIik7XG5cblx0XHQvLyBObyB0ZXh0IGFycmFuZ2VtZW50XG5cdFx0Y29uc3Qgbm9UZXh0QmluZGluZyA9IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KFxuXHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgY29udmVydGVkVHlwZXMsIHByb3BlcnRpZXNbXCJub1RleHRcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJub1RleHRcIilcblx0XHQpO1xuXHRcdGV4cGVjdChub1RleHRCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm9UZXh0QmluZGluZykpLnRvQ29udGFpbihcIm5vVGV4dFwiKTtcblx0XHRleHBlY3QoZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKG5vVGV4dEJpbmRpbmcpLCB7IG5vVGV4dDogXCJZb2xvXCIgfSkpLnRvRXF1YWwoXCJZb2xvXCIpO1xuXG5cdFx0Ly8gVGV4dEZpcnN0XG5cdFx0Y29uc3QgdGV4dEZpcnN0QmluZGluZyA9IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KFxuXHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgY29udmVydGVkVHlwZXMsIHByb3BlcnRpZXNbXCJ0ZXh0Rmlyc3RcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0Rmlyc3RcIilcblx0XHQpO1xuXHRcdGV4cGVjdCh0ZXh0Rmlyc3RCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dEZpcnN0QmluZGluZykpLnRvQ29udGFpbihcInRleHRGaXJzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dEZpcnN0QmluZGluZykpLnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0ZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKHRleHRGaXJzdEJpbmRpbmcpLCB7IHRleHRGaXJzdDogXCJZb2xvIExhc3RcIiwgdGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIgfSlcblx0XHQpLnRvRXF1YWwoXCJZb2xvIERlc2NyaXB0aW9uIChZb2xvIExhc3QpXCIpO1xuXG5cdFx0Ly8gVGV4dExhc3Rcblx0XHRjb25zdCB0ZXh0TGFzdEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChcblx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIGNvbnZlcnRlZFR5cGVzLCBwcm9wZXJ0aWVzW1widGV4dExhc3RcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiKVxuXHRcdCk7XG5cdFx0ZXhwZWN0KHRleHRMYXN0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHRleHRMYXN0QmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0TGFzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyh0ZXh0TGFzdEJpbmRpbmcpLCB7IHRleHRMYXN0OiBcIllvbG8gRmlyc3RcIiwgdGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIgfSlcblx0XHQpLnRvRXF1YWwoXCJZb2xvIEZpcnN0IChZb2xvIERlc2NyaXB0aW9uKVwiKTtcblx0fSk7XG5cblx0aXQoXCIjYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZnVsbENvbnRleHQgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBjb252ZXJ0ZWRUeXBlcyk7XG5cblx0XHRjb25zdCBvdGhlck1vZGVsQmluZGluZyA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24oYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiLCBcIm90aGVyTW9kZWxcIiksIGZ1bGxDb250ZXh0KTtcblx0XHRleHBlY3Qob3RoZXJNb2RlbEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvdGhlck1vZGVsQmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvdGhlck1vZGVsQmluZGluZykpLm5vdC50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXG5cdFx0Y29uc3QgYWRkVGV4dExhc3RCaW5kaW5nID0gYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbihiaW5kaW5nRXhwcmVzc2lvbihcInRleHRMYXN0XCIpLCBmdWxsQ29udGV4dCk7XG5cdFx0ZXhwZWN0KGFkZFRleHRMYXN0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFkZFRleHRMYXN0QmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhZGRUZXh0TGFzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyhhZGRUZXh0TGFzdEJpbmRpbmcpLCB7IHRleHRMYXN0OiBcIllvbG8gRmlyc3RcIiwgdGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIgfSlcblx0XHQpLnRvRXF1YWwoXCJZb2xvIEZpcnN0IChZb2xvIERlc2NyaXB0aW9uKVwiKTtcblxuXHRcdGNvbnN0IGNvbXBsZXhUZXh0QmluZGluZyA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24oXG5cdFx0XHRpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXN0UHJvcFwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJub1RleHRcIikpLFxuXHRcdFx0ZnVsbENvbnRleHRcblx0XHQpO1xuXHRcdGV4cGVjdChjb21wbGV4VGV4dEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb21wbGV4VGV4dEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0ZXh0TGFzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29tcGxleFRleHRCaW5kaW5nKSkudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblx0XHRjb25zdCBtb2RlbENvbnRlbnQgPSB7XG5cdFx0XHR0ZXN0UHJvcDogdHJ1ZSxcblx0XHRcdHRleHRMYXN0OiBcIllvbG8gRmlyc3RcIixcblx0XHRcdHRhcmdldFRleHQ6IFwiWW9sbyBEZXNjcmlwdGlvblwiLFxuXHRcdFx0bm9UZXh0OiBcIk5vdCBZb2xvXCJcblx0XHR9O1xuXHRcdGV4cGVjdChldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcoY29tcGxleFRleHRCaW5kaW5nKSwgbW9kZWxDb250ZW50KSkudG9FcXVhbChcIllvbG8gRmlyc3QgKFlvbG8gRGVzY3JpcHRpb24pXCIpO1xuXG5cdFx0bW9kZWxDb250ZW50LnRlc3RQcm9wID0gZmFsc2U7XG5cdFx0ZXhwZWN0KGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyhjb21wbGV4VGV4dEJpbmRpbmcpLCBtb2RlbENvbnRlbnQpKS50b0VxdWFsKFwiTm90IFlvbG9cIik7XG5cdH0pO1xuXG5cdGl0KFwiZm9ybWF0dGVkIEludGVnZXIgdHlwZSBjYWxsXCIsICgpID0+IHtcblx0XHRjb25zdCBvUHJvcGVydHlUeXBlID0geyBfdHlwZTogXCJQcm9wZXJ0eVwiLCB0eXBlOiBcIkVkbS5JbnQzMlwiIH0gYXMgUHJvcGVydHk7XG5cdFx0cmV0dXJuIGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uKG9Qcm9wZXJ0eVR5cGUsIGJpbmRpbmdFeHByZXNzaW9uKFwidmFsdWVcIikpKSkudG9FcXVhbChcblx0XHRcdFwie3BhdGg6ICd2YWx1ZScsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX1cIlxuXHRcdCk7XG5cdH0pO1xuXG5cdGl0KFxuXHRcdFwiZm9ybWF0dGVkIERvdWJsZSB0eXBlIGNhbGxcIixcblx0XHR7XG5cdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJ0eXBlXCI6IFwiQkNQXCIsXG5cdFx0XHRcdFx0XCJJRFwiOiBcIjIxODAyMTIxNDhcIlxuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlUeXBlID0geyBfdHlwZTogXCJQcm9wZXJ0eVwiLCB0eXBlOiBcIkVkbS5Eb3VibGVcIiB9IGFzIFByb3BlcnR5O1xuXHRcdFx0cmV0dXJuIGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uKG9Qcm9wZXJ0eVR5cGUsIGJpbmRpbmdFeHByZXNzaW9uKFwidmFsdWVcIikpKSkudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDogJ3ZhbHVlJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkRvdWJsZScsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX1cIlxuXHRcdFx0KTtcblx0XHR9XG5cdCk7XG5cblx0aXQoXCJjYW4gZXZhbHVhdGUgdGhlIHZpc2libGUgcGFyYW1ldGVyIGJhc2VkIG9uIFVJLkhpZGRlblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZW50aXR5U2V0TGluZUl0ZW0gPSBlbnRpdHlTZXQuZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uTGluZUl0ZW0gYXMgTGluZUl0ZW07XG5cdFx0bGV0IGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMV0gYXMgQW55QW5ub3RhdGlvbiAvLyBzdGF0aWNIaWRkZW5Qcm9wXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMl0gYXMgQW55QW5ub3RhdGlvbiAvLyBkeW5hbWljSGlkZGVuUHJvcFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0Y29udmVydGVkVHlwZXMsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVszXSBhcyBBbnlBbm5vdGF0aW9uIC8vIHRleHRGaXJzdCB3aXRoIGRhdGFGaWVsZCBzdGF0aWNhbGx5IGhpZGRlblxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRjb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzRdIGFzIEFueUFubm90YXRpb24gLy8gdGV4dE9ubHkgd2l0aCBkYXRhRmllbGQgZHluYW1pY2FsbHkgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcIns9ICV7aXNIaWRkZW59ICE9PSB0cnVlfVwiKTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRjb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzVdIGFzIEFueUFubm90YXRpb24gLy8gZHluYW1pY0hpZGRlblByb3AyIHdpdGggZHluYW1pYyBkYXRhZmllbGQgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcIns9ICV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSwgeyBpc0FuYWx5dGljczogdHJ1ZSB9IGFzIEZpZWxkRm9ybWF0T3B0aW9ucykpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle2lzSGlkZGVufSAhPT0gdHJ1ZSAmJiAoJXtAJHVpNS5ub2RlLmlzRXhwYW5kZWR9ICE9PSB0cnVlIHx8ICV7QCR1aTUubm9kZS5sZXZlbH0gPT09IDApfVwiXG5cdFx0KTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRjb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzZdIGFzIEFueUFubm90YXRpb24gLy8gaGlkZGVuV2l0aDExTmF2IHdpdGggZHluYW1pYyBkYXRhZmllbGQgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtpc0hpZGRlbjJ9ICE9PSB0cnVlICYmICV7U3BlY2lhbENoaWxkL2lzSGlkZGVufSAhPT0gdHJ1ZX1cIlxuXHRcdCk7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0Y29udmVydGVkVHlwZXMsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs3XSBhcyBBbnlBbm5vdGF0aW9uIC8vIGhpZGRlbldpdGgxTk5hdiB3aXRoIGR5bmFtaWMgZGF0YWZpZWxkIGhpZGRlbiAtPiBEb2Vzbid0IG1ha2Ugc2Vuc2UgYW5kIG1vZGVsIHdpbGwgY29tcGxhaW4gYnV0IGhlaCA6KFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVuMn0gIT09IHRydWUgJiYgJXtfRWxlbWVudHMvaXNIaWRkZW59ICE9PSB0cnVlfVwiKTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRjb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzhdIGFzIEFueUFubm90YXRpb24gLy8gRGF0YSBGaWVsZCBGb3IgQWN0aW9uXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0Y29udmVydGVkVHlwZXMsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs5XSBhcyBBbnlBbm5vdGF0aW9uIC8vIERhdGFGaWVsZEZvckFubm90YXRpb24gLT4gZGF0YSBwb2ludCB2aXNpYmxlXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSwgeyBpc0FuYWx5dGljczogdHJ1ZSB9IGFzIEZpZWxkRm9ybWF0T3B0aW9ucykpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7QCR1aTUubm9kZS5pc0V4cGFuZGVkfSAhPT0gdHJ1ZSB8fCAle0AkdWk1Lm5vZGUubGV2ZWx9ID09PSAwfVwiXG5cdFx0KTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRjb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzEwXSBhcyBBbnlBbm5vdGF0aW9uIC8vIERhdGFGaWVsZEZvckFubm90YXRpb24gLT4gZGF0YSBwb2ludCBkeW5hbWljIHZpc2libGVcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiez0gJXtpc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTFdIGFzIEFueUFubm90YXRpb24gLy8gbm9IaWRkZW5Qcm9wXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0Y29udmVydGVkVHlwZXMsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVsxMl0gYXMgQW55QW5ub3RhdGlvbiAvLyBEYXRhRmllbGRGb3JBbm5vdGF0aW9uIC0+IEZpZWxkR3JvdXAgLT4gRGF0YVxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSB3aXRoIGFubm90YXRpb25zXCIsICgpID0+IHtcblx0XHRjb25zdCBvQW5ub3RhdGlvbnMgPSB7XG5cdFx0XHRMYWJlbDogXCJTZW1hbnRpYyBPYmplY3QgUHJvcGVydHlcIixcblx0XHRcdFNlbWFudGljT2JqZWN0OiBcInY0LUZyZWVzdHlsZVwiXG5cdFx0fTtcblx0XHRleHBlY3QoZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlKG9Bbm5vdGF0aW9ucykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSB3aXRoIGFubm90YXRpb25zIGFuZCBzZW1hbnRpYyBvYmplY3QgcXVhbGlmaWVyXCIsICgpID0+IHtcblx0XHRjb25zdCBvQW5ub3RhdGlvbnMgPSB7XG5cdFx0XHRcIkxhYmVsXCI6IFwiU2VtYW50aWMgT2JqZWN0IFByb3BlcnR5XCIsXG5cdFx0XHRcIlNlbWFudGljT2JqZWN0I1F1YWxpZmllclwiOiBcInY0LUZyZWVzdHlsZVwiXG5cdFx0fTtcblx0XHRleHBlY3QoZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlKG9Bbm5vdGF0aW9ucykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSB3aXRob3V0IGFubm90YXRpb25zXCIsICgpID0+IHtcblx0XHRjb25zdCBvQW5ub3RhdGlvbnMgPSB7fTtcblx0XHRleHBlY3QoZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlKG9Bbm5vdGF0aW9ucykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0cyB3aXRoIGFTZW1PYmpFeHByVG9SZXNvbHZlXCIsICgpID0+IHtcblx0XHRjb25zdCBhU2VtT2JqRXhwclRvUmVzb2x2ZSA9IFtcblx0XHRcdHtcblx0XHRcdFx0a2V5OiBcInY0LUZyZWVzdHlsZVwiLFxuXHRcdFx0XHR2YWx1ZTogXCJ2NC1GcmVlc3R5bGVcIlxuXHRcdFx0fVxuXHRcdF07XG5cdFx0Y29uc3Qgb1NlbWFudGljT2JqZWN0Q29udGV4dCA9IGdldFNlbWFudGljT2JqZWN0cyhhU2VtT2JqRXhwclRvUmVzb2x2ZSk7XG5cdFx0ZXhwZWN0KG9TZW1hbnRpY09iamVjdENvbnRleHQuZ2V0T2JqZWN0KCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0cyB3aXRob3V0IGFTZW1PYmpFeHByVG9SZXNvbHZlXCIsICgpID0+IHtcblx0XHRjb25zdCBhU2VtT2JqRXhwclRvUmVzb2x2ZTogYW55ID0gW107XG5cdFx0Y29uc3Qgb1NlbWFudGljT2JqZWN0Q29udGV4dCA9IGdldFNlbWFudGljT2JqZWN0cyhhU2VtT2JqRXhwclRvUmVzb2x2ZSk7XG5cdFx0ZXhwZWN0KG9TZW1hbnRpY09iamVjdENvbnRleHQuZ2V0T2JqZWN0KCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMgd2l0aCBkYXRhcG9pbnQgaGF2aW5nIFF1aWNrVmlld0ZhY2V0c1wiLCAoKSA9PiB7XG5cdFx0Y29uc3Qgb0NvbnRleHRQYXRoID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL01haW5FbnRpdHlcIik7XG5cdFx0Y29uc3Qgb01ldGFQYXRoID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL01haW5FbnRpdHkvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0cy8yL1RhcmdldC8kQW5ub3RhdGlvblBhdGgvXCIpO1xuXHRcdGNvbnN0IG9EYXRhTW9kZWxQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG9NZXRhUGF0aCwgb0NvbnRleHRQYXRoKTtcblx0XHRjb25zdCBvUHJvcGVydHk6IFByb3BlcnR5ID0gb0RhdGFNb2RlbFBhdGg/LnRhcmdldE9iamVjdC5WYWx1ZS4kdGFyZ2V0O1xuXHRcdGV4cGVjdChpc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzKG9EYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGgsIG9Qcm9wZXJ0eSBhcyBQcm9wZXJ0eSkpLnRvRXF1YWwodHJ1ZSk7XG5cdH0pO1xuXG5cdGl0KFwiaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyB3aXRoIGRhdGFwb2ludCBub3QgaGF2aW5nIFF1aWNrIFZpZXcgRmFjZXRzXCIsICgpID0+IHtcblx0XHRjb25zdCBvQ29udGV4dFBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eVwiKTtcblx0XHRjb25zdCBvTWV0YVBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzMvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aC9cIik7XG5cdFx0Y29uc3Qgb0RhdGFNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob01ldGFQYXRoLCBvQ29udGV4dFBhdGgpO1xuXHRcdGNvbnN0IG9Qcm9wZXJ0eTogUHJvcGVydHkgPSBvRGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0LlZhbHVlLiR0YXJnZXQ7XG5cdFx0ZXhwZWN0KGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMob0RhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aCwgb1Byb3BlcnR5IGFzIFByb3BlcnR5KSkudG9FcXVhbChmYWxzZSk7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0TXVsdGlwbGVMaW5lc0ZvckRhdGFGaWVsZFwiLCAoKSA9PiB7XG5cdFx0Y29uc3Qgb1RoaXMgPSB7XG5cdFx0XHR3cmFwOiBcInVuZGVmaW5lZFwiLCAvLyBvciB0cnVlL2ZhbHNlXG5cdFx0XHRlZGl0TW9kZTogXCJkdW1teUVkaXRNb2RlXCJcblx0XHR9O1xuXG5cdFx0ZXhwZWN0KGdldE11bHRpcGxlTGluZXNGb3JEYXRhRmllbGQob1RoaXMsIFwiRWRtLlN0cmluZ1wiLCBmYWxzZSkpLnRvRXF1YWwoZmFsc2UpO1xuXG5cdFx0b1RoaXMuZWRpdE1vZGUgPSBcIns9ICV7dWk+L2lzRWRpdGFibGV9ID8gJ0VkaXRhYmxlJyA6ICdEaXNwbGF5J31cIjtcblx0XHRleHBlY3QoZ2V0TXVsdGlwbGVMaW5lc0ZvckRhdGFGaWVsZChvVGhpcywgXCJFZG0uU3RyaW5nXCIsIHRydWUpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblxuXHRcdG9UaGlzLmVkaXRNb2RlID0gXCJEaXNwbGF5XCI7XG5cdFx0ZXhwZWN0KGdldE11bHRpcGxlTGluZXNGb3JEYXRhRmllbGQob1RoaXMsIFwiRWRtLlN0cmluZ1wiLCB0cnVlKSkudG9FcXVhbCh0cnVlKTtcblxuXHRcdGV4cGVjdChnZXRNdWx0aXBsZUxpbmVzRm9yRGF0YUZpZWxkKG9UaGlzLCBcImR1bW15UHJvcGVydHlUeXBlXCIsIHRydWUpKS50b0VxdWFsKHRydWUpO1xuXG5cdFx0b1RoaXMud3JhcCA9IFwiZmFsc2VcIjtcblx0XHRleHBlY3QoZ2V0TXVsdGlwbGVMaW5lc0ZvckRhdGFGaWVsZChvVGhpcywgXCJFZG0uU3RyaW5nXCIsIHRydWUpKS50b0VxdWFsKGZhbHNlKTtcblx0fSk7XG5cblx0aXQoXCJnZXRCaW5kaW5nRm9yRHJhZnRBZG1pbkJsb2NrSW5saW5lXCIsIGFzeW5jICgpID0+IHtcblx0XHRsZXQgcmVzdWx0O1xuXHRcdGNvbnN0IHNFbnRpdHlUeXBlID0gXCJmYWtlRW50aXR5XCI7XG5cdFx0Y29uc3QgbW9ja0NvbnRleHQgPSBuZXcgTW9ja0NvbnRleHQoe30pO1xuXHRcdGNvbnN0IG1vY2tNb2RlbCA9IG5ldyBNb2NrTW9kZWwoKTtcblx0XHRtb2NrQ29udGV4dC5nZXRNb2RlbC5tb2NrUmV0dXJuVmFsdWUobW9ja01vZGVsIGFzIGFueSk7XG5cdFx0bW9ja01vZGVsLnJlcXVlc3RPYmplY3QubW9ja1JldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSh7fSkpO1xuXHRcdHJlc3VsdCA9IGF3YWl0IGdldEJpbmRpbmdGb3JEcmFmdEFkbWluQmxvY2tJbmxpbmUobW9ja0NvbnRleHQsIHNFbnRpdHlUeXBlKTtcblx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle0hhc0RyYWZ0RW50aXR5fSA/ICgle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0luUHJvY2Vzc0J5VXNlcn0gfHwgJXtEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9MYXN0Q2hhbmdlZEJ5VXNlcn0pIDogJyd9XCJcblx0XHQpO1xuXG5cdFx0bW9ja01vZGVsLnJlcXVlc3RPYmplY3QubW9ja1JldHVyblZhbHVlKFxuXHRcdFx0UHJvbWlzZS5yZXNvbHZlKHsgSW5Qcm9jZXNzQnlVc2VyRGVzY3JpcHRpb246IFwiZmFrZVwiLCBMYXN0Q2hhbmdlZEJ5VXNlckRlc2NyaXB0aW9uOiBcImZha2VcIiB9KVxuXHRcdCk7XG5cdFx0cmVzdWx0ID0gYXdhaXQgZ2V0QmluZGluZ0ZvckRyYWZ0QWRtaW5CbG9ja0lubGluZShtb2NrQ29udGV4dCwgc0VudGl0eVR5cGUpO1xuXHRcdGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7SGFzRHJhZnRFbnRpdHl9ID8gKCV7RHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvSW5Qcm9jZXNzQnlVc2VyRGVzY3JpcHRpb259IHx8ICV7RHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvSW5Qcm9jZXNzQnlVc2VyfSB8fCAle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0xhc3RDaGFuZ2VkQnlVc2VyRGVzY3JpcHRpb259IHx8ICV7RHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvTGFzdENoYW5nZWRCeVVzZXJ9KSA6ICcnfVwiXG5cdFx0KTtcblx0fSk7XG59KTtcbiJdfQ==
|