@sapui5/sap.fe.core 1.102.0 → 1.103.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 +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +62 -26
- package/src/sap/fe/core/AppComponent.ts +56 -40
- package/src/sap/fe/core/AppStateHandler.js +10 -10
- package/src/sap/fe/core/AppStateHandler.ts +9 -9
- package/src/sap/fe/core/BaseController.js +11 -9
- package/src/sap/fe/core/BaseController.ts +15 -13
- package/src/sap/fe/core/CommonUtils.js +236 -109
- package/src/sap/fe/core/CommonUtils.ts +252 -136
- package/src/sap/fe/core/ExtensionAPI.js +24 -27
- package/src/sap/fe/core/ExtensionAPI.ts +36 -38
- package/src/sap/fe/core/PageController.js +4 -4
- package/src/sap/fe/core/PageController.ts +4 -5
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +6 -6
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +8 -8
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
- package/src/sap/fe/core/controllerextensions/EditFlow.js +129 -118
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +31 -26
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
- package/src/sap/fe/core/controllerextensions/MassEdit.js +8 -8
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
- package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
- package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
- package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
- package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +22 -22
- package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
- package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
- package/src/sap/fe/core/controllerextensions/ViewState.js +65 -62
- package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +6 -6
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +184 -137
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -44
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
- package/src/sap/fe/core/controls/Any.js +9 -5
- package/src/sap/fe/core/controls/Any.ts +10 -4
- package/src/sap/fe/core/controls/CommandExecution.js +11 -25
- package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
- package/src/sap/fe/core/controls/FileWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.ts +11 -11
- package/src/sap/fe/core/controls/FilterBar.js +6 -2
- package/src/sap/fe/core/controls/FilterBar.ts +13 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +47 -47
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
- package/src/sap/fe/core/converters/ConverterContext.js +26 -33
- package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
- package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
- package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
- package/src/sap/fe/core/converters/MetaModelConverter.js +50 -32
- package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
- package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
- package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
- package/src/sap/fe/core/converters/annotations/DataField.js +54 -34
- package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
- package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
- package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
- package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -26
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
- package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
- package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
- package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
- package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +64 -57
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +73 -72
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
- package/src/sap/fe/core/converters/helpers/ID.js +46 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
- package/src/sap/fe/core/converters/helpers/Key.js +7 -7
- package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
- package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
- package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
- package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
- package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
- package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
- package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
- package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
- package/src/sap/fe/core/helpers/ClassSupport.ts +14 -10
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -6
- package/src/sap/fe/core/helpers/EditState.ts +5 -10
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
- package/src/sap/fe/core/helpers/MassEditHelper.js +281 -254
- package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
- package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
- package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
- package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
- package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
- package/src/sap/fe/core/library.js +42 -3
- package/src/sap/fe/core/library.ts +38 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
- package/src/sap/fe/core/messagebundle.properties +49 -35
- package/src/sap/fe/core/messagebundle_ar.properties +13 -5
- package/src/sap/fe/core/messagebundle_bg.properties +13 -5
- package/src/sap/fe/core/messagebundle_ca.properties +13 -5
- package/src/sap/fe/core/messagebundle_cs.properties +13 -5
- package/src/sap/fe/core/messagebundle_cy.properties +14 -6
- package/src/sap/fe/core/messagebundle_da.properties +13 -5
- package/src/sap/fe/core/messagebundle_de.properties +15 -7
- package/src/sap/fe/core/messagebundle_el.properties +14 -6
- package/src/sap/fe/core/messagebundle_en.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
- package/src/sap/fe/core/messagebundle_es.properties +13 -5
- package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
- package/src/sap/fe/core/messagebundle_et.properties +13 -5
- package/src/sap/fe/core/messagebundle_fi.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
- package/src/sap/fe/core/messagebundle_hi.properties +14 -6
- package/src/sap/fe/core/messagebundle_hr.properties +14 -6
- package/src/sap/fe/core/messagebundle_hu.properties +13 -5
- package/src/sap/fe/core/messagebundle_id.properties +13 -5
- package/src/sap/fe/core/messagebundle_it.properties +33 -25
- package/src/sap/fe/core/messagebundle_iw.properties +13 -5
- package/src/sap/fe/core/messagebundle_ja.properties +14 -6
- package/src/sap/fe/core/messagebundle_kk.properties +13 -5
- package/src/sap/fe/core/messagebundle_ko.properties +13 -5
- package/src/sap/fe/core/messagebundle_lt.properties +13 -5
- package/src/sap/fe/core/messagebundle_lv.properties +14 -6
- package/src/sap/fe/core/messagebundle_ms.properties +13 -5
- package/src/sap/fe/core/messagebundle_nl.properties +13 -5
- package/src/sap/fe/core/messagebundle_no.properties +13 -5
- package/src/sap/fe/core/messagebundle_pl.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
- package/src/sap/fe/core/messagebundle_ro.properties +13 -5
- package/src/sap/fe/core/messagebundle_ru.properties +13 -5
- package/src/sap/fe/core/messagebundle_sh.properties +13 -5
- package/src/sap/fe/core/messagebundle_sk.properties +13 -5
- package/src/sap/fe/core/messagebundle_sl.properties +17 -9
- package/src/sap/fe/core/messagebundle_sv.properties +14 -6
- package/src/sap/fe/core/messagebundle_th.properties +13 -5
- package/src/sap/fe/core/messagebundle_tr.properties +13 -5
- package/src/sap/fe/core/messagebundle_uk.properties +13 -5
- package/src/sap/fe/core/messagebundle_vi.properties +13 -5
- package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
- package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +53 -44
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
- package/src/sap/fe/core/services/ShellServicesFactory.js +72 -76
- package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +20 -15
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
- package/src/sap/fe/core/support/CommonHelper.js +3 -2
- package/src/sap/fe/core/support/CommonHelper.ts +9 -13
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -5
- package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
- package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
- package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
- package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
- package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
- package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
- package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
- package/src/sap/fe/core/templating/FilterHelper.js +10 -9
- package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
- package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
- package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
- package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
- package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
- package/src/sap/fe/core/templating/UIFormatters.js +148 -93
- package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
|
@@ -177,22 +177,22 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
177
177
|
var metaPaths = message === null || message === void 0 ? void 0 : (_message$clientConten = message.clientContent) === null || _message$clientConten === void 0 ? void 0 : _message$clientConten.split("|").map(function (path) {
|
|
178
178
|
return view.getModel().getMetaModel().getMetaPath(path);
|
|
179
179
|
});
|
|
180
|
-
metaPaths.forEach(function (
|
|
180
|
+
metaPaths.forEach(function (currentMetaPath, i) {
|
|
181
181
|
var _message$clientConten2, _currentActivities;
|
|
182
182
|
|
|
183
183
|
var nesteedMessage = _objectSpread(_objectSpread({}, message), {}, {
|
|
184
184
|
clientContent: message === null || message === void 0 ? void 0 : (_message$clientConten2 = message.clientContent) === null || _message$clientConten2 === void 0 ? void 0 : _message$clientConten2.split("|")[i]
|
|
185
185
|
});
|
|
186
186
|
|
|
187
|
-
var currentActivities = internalModel.getProperty(ACTIVITIES +
|
|
187
|
+
var currentActivities = internalModel.getProperty(ACTIVITIES + currentMetaPath) || [];
|
|
188
188
|
activityKey = getActivityKey(nesteedMessage.clientContent);
|
|
189
189
|
currentActivities = ((_currentActivities = currentActivities) === null || _currentActivities === void 0 ? void 0 : _currentActivities.filter) && currentActivities.filter(function (activity) {
|
|
190
190
|
return activity.key !== activityKey;
|
|
191
191
|
});
|
|
192
192
|
|
|
193
193
|
if (currentActivities) {
|
|
194
|
-
internalModel.setProperty(ACTIVITIES +
|
|
195
|
-
update(view, nesteedMessage,
|
|
194
|
+
internalModel.setProperty(ACTIVITIES + currentMetaPath, currentActivities);
|
|
195
|
+
update(view, nesteedMessage, currentMetaPath, Activity.Change);
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
198
|
break;
|
|
@@ -236,7 +236,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
236
236
|
var parts = metaPath.split("/");
|
|
237
237
|
|
|
238
238
|
for (var i = 1; i < parts.length - 1; i++) {
|
|
239
|
-
initJSONModel += "/"
|
|
239
|
+
initJSONModel += "/".concat(parts[i]);
|
|
240
240
|
|
|
241
241
|
if (!internalModel.getProperty(ACTIVITIES + initJSONModel)) {
|
|
242
242
|
internalModel.setProperty(ACTIVITIES + initJSONModel, {});
|
|
@@ -357,4 +357,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
357
357
|
send: send
|
|
358
358
|
};
|
|
359
359
|
}, false);
|
|
360
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjdGl2aXR5U3luYy50cyJdLCJuYW1lcyI6WyJNWUFDVElWSVRZIiwiQUNUSVZFVVNFUlMiLCJBQ1RJVklUSUVTIiwiaXNDb25uZWN0ZWQiLCJjb250cm9sIiwiaW50ZXJuYWxNb2RlbCIsImdldE1vZGVsIiwiaXNDb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwic2VuZCIsImFjdGlvbiIsImNvbnRlbnQiLCJjbGllbnRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsIm15QWN0aXZpdHkiLCJnZXRQcm9wZXJ0eSIsInNldFByb3BlcnR5IiwiYnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UiLCJnZXRXZWJTb2NrZXRCYXNlVVJMIiwiYmluZGluZ0NvbnRleHQiLCJnZXRNZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJpc0NvbGxhYm9yYXRpb25FbmFibGVkIiwidmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiY29ubmVjdCIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJ3ZWJTb2NrZXRCYXNlVVJMIiwicmVxdWVzdFByb3BlcnR5Iiwic0RyYWZ0VVVJRCIsImluaXRpYWxpemVDb2xsYWJvcmF0aW9uIiwibWVzc2FnZSIsIm1lc3NhZ2VSZWNlaXZlIiwiZGlzY29ubmVjdCIsImVuZENvbGxhYm9yYXRpb24iLCJhY3RpdmVVc2VycyIsImFjdGl2aXRpZXMiLCJhY3Rpdml0eUtleSIsIm1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJ1c2VyQWN0aW9uIiwiY2xpZW50QWN0aW9uIiwic2VuZGVyIiwiaWQiLCJ1c2VySUQiLCJuYW1lIiwidXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwiSm9pbiIsIkpvaW5FY2hvIiwiZmluZEluZGV4IiwidXNlciIsInB1c2giLCJMZWF2ZSIsImZpbHRlciIsImFsbEFjdGl2aXRpZXMiLCJyZW1vdmVVc2VyQWN0aXZpdGllcyIsImJhZyIsImFjdGl2aXR5IiwicCIsIkNoYW5nZSIsIm1ldGFQYXRocyIsInNwbGl0IiwibWFwIiwicGF0aCIsImZvckVhY2giLCJpIiwibmVzdGVlZE1lc3NhZ2UiLCJjdXJyZW50QWN0aXZpdGllcyIsImdldEFjdGl2aXR5S2V5Iiwia2V5IiwidXBkYXRlIiwiQ3JlYXRlIiwiRGVsZXRlIiwiQWN0aXZhdGUiLCJNZXNzYWdlQm94IiwiaW5mb3JtYXRpb24iLCJnZXRUZXh0IiwibmF2aWdhdGUiLCJEaXNjYXJkIiwiaW5pdEpTT05Nb2RlbCIsInBhcnRzIiwibGVuZ3RoIiwic2xpY2UiLCJVbmRvIiwiYSIsImFwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsIm1ldGFNb2RlbCIsImN1cnJlbnRQYWdlIiwiZ2V0Q3VycmVudFBhZ2UiLCJzaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJjdXJyZW50Q29udGV4dCIsImN1cnJlbnRQYXRoIiwiZ2V0UGF0aCIsImN1cnJlbnRNZXRhUGF0aCIsImNoYW5nZWREb2N1bWVudCIsImRlbGV0ZWRPYmplY3RzIiwicGFyZW50RGVsZXRlZEluZGV4IiwiZGVsZXRlZE9iamVjdCIsInN0YXJ0c1dpdGgiLCJvbkNsb3NlIiwidGFyZ2V0Q29udGV4dCIsImJpbmRDb250ZXh0IiwiZ2V0Qm91bmRDb250ZXh0IiwiZ2V0Q29udHJvbGxlciIsIl9yb3V0aW5nIiwibmF2aWdhdGVCYWNrRnJvbUNvbnRleHQiLCJhY3Rpdml0eVBhdGgiLCJyZXBsYWNlIiwic2lkZUVmZmVjdHMiLCIkUHJvcGVydHlQYXRoIiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGVGcm9tQ29udGV4dCIsImVudGl0eVR5cGVTaWRlRWZmZWN0cyIsImdldE9EYXRhRW50aXR5U2lkZUVmZmVjdHMiLCJvYmplY3QiLCJPYmplY3QiLCJyZWxldmFudFNpZGVFZmZlY3RzIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwieCIsIlNvdXJjZVByb3BlcnRpZXMiLCJzb3VyY2UiLCJ2YWx1ZSIsIlRhcmdldFByb3BlcnRpZXMiLCJ0YXJnZXRQcm9wZXJ0eSIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVkaXRGbG93IiwidXBkYXRlRG9jdW1lbnQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJvdXRpbmciLCJyb290Vmlld0NvbnRyb2xsZXIiLCJnZXRSb290Vmlld0NvbnRyb2xsZXIiLCJpc0ZjbEVuYWJsZWQiLCJnZXRSaWdodG1vc3RWaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwiZ2V0Um9vdENvbnRhaW5lciIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsTUFBTUEsVUFBVSxHQUFHLDJCQUFuQjtBQUNBLE1BQU1DLFdBQVcsR0FBRyw0QkFBcEI7QUFDQSxNQUFNQyxVQUFVLEdBQUcsMkJBQW5COztBQUVPLE1BQU1DLFdBQVcsR0FBRyxVQUFVQyxPQUFWLEVBQXFDO0FBQy9ELFFBQU1DLGFBQWEsR0FBR0QsT0FBTyxDQUFDRSxRQUFSLENBQWlCLFVBQWpCLENBQXRCO0FBQ0EsV0FBT0Msd0JBQXdCLENBQUNGLGFBQUQsQ0FBL0I7QUFDQSxHQUhNOzs7O0FBS0EsTUFBTUcsSUFBSSxHQUFHLFVBQVVKLE9BQVYsRUFBNEJLLE1BQTVCLEVBQThDQyxPQUE5QyxFQUFzRjtBQUN6RyxRQUFJUCxXQUFXLENBQUNDLE9BQUQsQ0FBZixFQUEwQjtBQUN6QixVQUFNQyxhQUFhLEdBQUdELE9BQU8sQ0FBQ0UsUUFBUixDQUFpQixVQUFqQixDQUF0QjtBQUNBLFVBQU1LLGFBQWEsR0FBR0MsS0FBSyxDQUFDQyxPQUFOLENBQWNILE9BQWQsSUFBeUJBLE9BQU8sQ0FBQ0ksSUFBUixDQUFhLEdBQWIsQ0FBekIsR0FBNkNKLE9BQW5FOztBQUVBLFVBQUlELE1BQU0sS0FBS00sUUFBUSxDQUFDQyxVQUF4QixFQUFvQztBQUNuQztBQUNBLFlB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QUFjLENBQUN4RSxJQUFELENBQWxDO0FBQ0EsUUFBTXFGLGFBQWEsR0FBR3JGLElBQUksQ0FBQ3BCLFFBQUwsR0FBZ0IwRyxXQUFoQixDQUE0QnhDLElBQTVCLEVBQWtDeUMsZUFBbEMsRUFBdEI7QUFDQWhCLElBQUFBLFdBQVcsQ0FBQ2lCLGFBQVosR0FBNEIyQixPQUE1QixDQUFvQ3ZELFFBQXBDLENBQTZDeUIsYUFBN0M7QUFDQTs7QUFFRCxXQUFTYixjQUFULENBQXdCeEUsSUFBeEIsRUFBb0M7QUFDbkMsUUFBTW9FLFlBQVksR0FBR2hFLGtCQUFrQixDQUFDaUUsZUFBbkIsQ0FBbUNyRSxJQUFuQyxDQUFyQjtBQUNBLFFBQU1vSCxrQkFBa0IsR0FBR2hELFlBQVksQ0FBQ2lELHFCQUFiLEVBQTNCO0FBQ0EsV0FBT0Qsa0JBQWtCLENBQUNFLFlBQW5CLEtBQ0pGLGtCQUFrQixDQUFDRyxnQkFBbkIsRUFESSxHQUVKQyxXQUFXLENBQUNDLGFBQVosQ0FBMkJyRCxZQUFZLENBQUNzRCxnQkFBYixFQUFELENBQXlDbEQsY0FBekMsRUFBMUIsQ0FGSDtBQUdBOztBQUVELFdBQVNyQixjQUFULENBQXdCcUQsQ0FBeEIsRUFBMkM7QUFDMUMsV0FBT0EsQ0FBQyxDQUFDbUIsU0FBRixDQUFZbkIsQ0FBQyxDQUFDb0IsV0FBRixDQUFjLEdBQWQsSUFBcUIsQ0FBakMsRUFBb0NwQixDQUFDLENBQUNvQixXQUFGLENBQWMsR0FBZCxDQUFwQyxDQUFQO0FBQ0E7O1NBRWM7QUFDZDFILElBQUFBLE9BQU8sRUFBRUEsT0FESztBQUVkVSxJQUFBQSxVQUFVLEVBQUVBLFVBRkU7QUFHZG5DLElBQUFBLFdBQVcsRUFBRUEsV0FIQztBQUlkc0IsSUFBQUEsc0JBQXNCLEVBQUVBLHNCQUpWO0FBS2RqQixJQUFBQSxJQUFJLEVBQUVBO0FBTFEsRyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHtcblx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UsXG5cdGVuZENvbGxhYm9yYXRpb24sXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uLFxuXHRpc0NvbGxhYm9yYXRpb25Db25uZWN0ZWRcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQWN0aXZpdHlCYXNlXCI7XG5pbXBvcnQge1xuXHRBY3Rpdml0eSxcblx0Q29sbGFib3JhdGlvblV0aWxzLFxuXHRNZXNzYWdlLFxuXHRVc2VyLFxuXHRVc2VyQWN0aXZpdHlcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSBcInNhcC9tL01lc3NhZ2VCb3hcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuXG5jb25zdCBNWUFDVElWSVRZID0gXCIvY29sbGFib3JhdGlvbi9teUFjdGl2aXR5XCI7XG5jb25zdCBBQ1RJVkVVU0VSUyA9IFwiL2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIjtcbmNvbnN0IEFDVElWSVRJRVMgPSBcIi9jb2xsYWJvcmF0aW9uL2FjdGl2aXRpZXNcIjtcblxuZXhwb3J0IGNvbnN0IGlzQ29ubmVjdGVkID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wpOiBib29sZWFuIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IGNvbnRyb2wuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdHJldHVybiBpc0NvbGxhYm9yYXRpb25Db25uZWN0ZWQoaW50ZXJuYWxNb2RlbCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VuZCA9IGZ1bmN0aW9uIChjb250cm9sOiBDb250cm9sLCBhY3Rpb246IEFjdGl2aXR5LCBjb250ZW50OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuXHRpZiAoaXNDb25uZWN0ZWQoY29udHJvbCkpIHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsID0gY29udHJvbC5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRjb25zdCBjbGllbnRDb250ZW50ID0gQXJyYXkuaXNBcnJheShjb250ZW50KSA/IGNvbnRlbnQuam9pbihcInxcIikgOiBjb250ZW50O1xuXG5cdFx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuTGl2ZUNoYW5nZSkge1xuXHRcdFx0Ly8gVG8gYXZvaWQgdW5uZWNlc3NhcnkgdHJhZmZpYyB3ZSBrZWVwIHRyYWNrIG9mIGxpdmUgY2hhbmdlcyBhbmQgc2VuZCBpdCBvbmx5IG9uY2Vcblx0XHRcdGNvbnN0IG15QWN0aXZpdHkgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KE1ZQUNUSVZJVFkpO1xuXHRcdFx0aWYgKG15QWN0aXZpdHkgPT09IGNsaWVudENvbnRlbnQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShNWUFDVElWSVRZLCBjbGllbnRDb250ZW50KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gdXNlciBmaW5pc2hlZCB0aGUgYWN0aXZpdHlcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoTVlBQ1RJVklUWSwgbnVsbCk7XG5cdFx0fVxuXG5cdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoYWN0aW9uLCBjbGllbnRDb250ZW50LCBpbnRlcm5hbE1vZGVsKTtcblx0fVxufTtcblxuY29uc3QgZ2V0V2ViU29ja2V0QmFzZVVSTCA9IGZ1bmN0aW9uIChiaW5kaW5nQ29udGV4dDogQ29udGV4dCk6IHN0cmluZyB7XG5cdHJldHVybiBiaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLldlYlNvY2tldEJhc2VVUkxcIik7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCA9IGZ1bmN0aW9uICh2aWV3OiBWaWV3KTogYm9vbGVhbiB7XG5cdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gdmlldz8uZ2V0QmluZGluZ0NvbnRleHQgJiYgKHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0KTtcblx0cmV0dXJuICEhKGJpbmRpbmdDb250ZXh0ICYmIGdldFdlYlNvY2tldEJhc2VVUkwoYmluZGluZ0NvbnRleHQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25uZWN0ID0gYXN5bmMgZnVuY3Rpb24gKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdGNvbnN0IG1lID0gQ29sbGFib3JhdGlvblV0aWxzLmdldE1lKHZpZXcpO1xuXG5cdC8vIFJldHJpZXZpbmcgTUUgZnJvbSBzaGVsbCBzZXJ2aWNlXG5cdGlmICghbWUpIHtcblx0XHQvLyBubyBtZSA9IG5vIHNoZWxsID0gbm90IHN1cmUgd2hhdCB0byBkb1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdGNvbnN0IHdlYlNvY2tldEJhc2VVUkwgPSBnZXRXZWJTb2NrZXRCYXNlVVJMKGJpbmRpbmdDb250ZXh0KTtcblxuXHRpZiAoIXdlYlNvY2tldEJhc2VVUkwpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBzRHJhZnRVVUlEID0gYXdhaXQgYmluZGluZ0NvbnRleHQucmVxdWVzdFByb3BlcnR5KFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRVVUlEXCIpO1xuXHRpZiAoIXNEcmFmdFVVSUQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpbml0aWFsaXplQ29sbGFib3JhdGlvbihtZSwgd2ViU29ja2V0QmFzZVVSTCwgc0RyYWZ0VVVJRCwgaW50ZXJuYWxNb2RlbCwgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcblx0XHRtZXNzYWdlUmVjZWl2ZShtZXNzYWdlLCB2aWV3KTtcblx0fSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGlzY29ubmVjdCA9IGZ1bmN0aW9uIChjb250cm9sOiBDb250cm9sKSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWwgPSBjb250cm9sLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRlbmRDb2xsYWJvcmF0aW9uKGludGVybmFsTW9kZWwpO1xufTtcblxuZnVuY3Rpb24gbWVzc2FnZVJlY2VpdmUobWVzc2FnZTogTWVzc2FnZSwgdmlldzogVmlldykge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsOiBhbnkgPSB2aWV3LmdldE1vZGVsKFwiaW50ZXJuYWxcIik7XG5cdGxldCBhY3RpdmVVc2VyczogVXNlcltdID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVkVVU0VSUyk7XG5cdGxldCBhY3Rpdml0aWVzOiBVc2VyQWN0aXZpdHlbXTtcblx0bGV0IGFjdGl2aXR5S2V5OiBzdHJpbmc7XG5cdGNvbnN0IG1ldGFQYXRoOiBzdHJpbmcgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQgJiYgKHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0TWV0YVBhdGgobWVzc2FnZS5jbGllbnRDb250ZW50KTtcblx0bWVzc2FnZS51c2VyQWN0aW9uID0gbWVzc2FnZS51c2VyQWN0aW9uIHx8IG1lc3NhZ2UuY2xpZW50QWN0aW9uO1xuXG5cdGNvbnN0IHNlbmRlcjogVXNlciA9IHtcblx0XHRpZDogbWVzc2FnZS51c2VySUQsXG5cdFx0bmFtZTogbWVzc2FnZS51c2VyRGVzY3JpcHRpb24sXG5cdFx0aW5pdGlhbHM6IENvbGxhYm9yYXRpb25VdGlscy5mb3JtYXRJbml0aWFscyhtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbiksXG5cdFx0Y29sb3I6IENvbGxhYm9yYXRpb25VdGlscy5nZXRVc2VyQ29sb3IobWVzc2FnZS51c2VySUQsIGFjdGl2ZVVzZXJzLCBbXSlcblx0fTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG5cdHN3aXRjaCAobWVzc2FnZS51c2VyQWN0aW9uKSB7XG5cdFx0Y2FzZSBBY3Rpdml0eS5Kb2luOlxuXHRcdGNhc2UgQWN0aXZpdHkuSm9pbkVjaG86XG5cdFx0XHRpZiAoYWN0aXZlVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBzZW5kZXIuaWQpID09PSAtMSkge1xuXHRcdFx0XHRhY3RpdmVVc2Vycy5wdXNoKHNlbmRlcik7XG5cdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZFVVNFUlMsIGFjdGl2ZVVzZXJzKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbikge1xuXHRcdFx0XHQvLyB3ZSBlY2hvIG91ciBleGlzdGVuY2UgdG8gdGhlIG5ld2x5IGVudGVyZWQgdXNlciBhbmQgYWxzbyBzZW5kIHRoZSBjdXJyZW50IGFjdGl2aXR5IGlmIHRoZXJlIGlzIGFueVxuXHRcdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShBY3Rpdml0eS5Kb2luRWNobywgaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShNWUFDVElWSVRZKSwgaW50ZXJuYWxNb2RlbCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtZXNzYWdlLnVzZXJBY3Rpb24gPT09IEFjdGl2aXR5LkpvaW5FY2hvKSB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLmNsaWVudENvbnRlbnQpIHtcblx0XHRcdFx0XHQvLyBhbm90aGVyIHVzZXIgd2FzIGFscmVhZHkgdHlwaW5nIHRoZXJlZm9yZSBJIHdhbnQgdG8gc2VlIGhpcyBhY3Rpdml0eSBpbW1lZGlhdGVseS4gQ2FsbGluZyBtZSBhZ2FpbiBhcyBhIGxpdmUgY2hhbmdlXG5cdFx0XHRcdFx0bWVzc2FnZS51c2VyQWN0aW9uID0gQWN0aXZpdHkuTGl2ZUNoYW5nZTtcblx0XHRcdFx0XHRtZXNzYWdlUmVjZWl2ZShtZXNzYWdlLCB2aWV3KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkxlYXZlOlxuXHRcdFx0Ly8gUmVtb3ZpbmcgdGhlIGFjdGl2ZSB1c2VyLiBOb3QgcmVtb3ZpbmcgXCJtZVwiIGlmIEkgaGFkIHRoZSBzY3JlZW4gb3BlbiBpbiBhbm90aGVyIHNlc3Npb25cblx0XHRcdGFjdGl2ZVVzZXJzID0gYWN0aXZlVXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSBzZW5kZXIuaWQgfHwgdXNlci5tZSk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWRVVTRVJTLCBhY3RpdmVVc2Vycyk7XG5cdFx0XHRjb25zdCBhbGxBY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTKSB8fCB7fTtcblx0XHRcdGNvbnN0IHJlbW92ZVVzZXJBY3Rpdml0aWVzID0gZnVuY3Rpb24gKGJhZzogYW55KSB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGJhZykpIHtcblx0XHRcdFx0XHRyZXR1cm4gYmFnLmZpbHRlcigoYWN0aXZpdHkpID0+IGFjdGl2aXR5LmlkICE9PSBzZW5kZXIuaWQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgcCBpbiBiYWcpIHtcblx0XHRcdFx0XHRcdGJhZ1twXSA9IHJlbW92ZVVzZXJBY3Rpdml0aWVzKGJhZ1twXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBiYWc7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRyZW1vdmVVc2VyQWN0aXZpdGllcyhhbGxBY3Rpdml0aWVzKTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUywgYWxsQWN0aXZpdGllcyk7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgQWN0aXZpdHkuQ2hhbmdlOlxuXHRcdFx0Y29uc3QgbWV0YVBhdGhzID0gbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpLm1hcCgocGF0aCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gKHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0bWV0YVBhdGhzLmZvckVhY2goKG1ldGFQYXRoLCBpKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG5lc3RlZWRNZXNzYWdlID0ge1xuXHRcdFx0XHRcdC4uLm1lc3NhZ2UsXG5cdFx0XHRcdFx0Y2xpZW50Q29udGVudDogbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpW2ldXG5cdFx0XHRcdH07XG5cdFx0XHRcdGxldCBjdXJyZW50QWN0aXZpdGllczogYW55W10gPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBtZXRhUGF0aCkgfHwgW107XG5cdFx0XHRcdGFjdGl2aXR5S2V5ID0gZ2V0QWN0aXZpdHlLZXkobmVzdGVlZE1lc3NhZ2UuY2xpZW50Q29udGVudCk7XG5cdFx0XHRcdGN1cnJlbnRBY3Rpdml0aWVzID0gY3VycmVudEFjdGl2aXRpZXM/LmZpbHRlciAmJiBjdXJyZW50QWN0aXZpdGllcy5maWx0ZXIoKGFjdGl2aXR5KSA9PiBhY3Rpdml0eS5rZXkgIT09IGFjdGl2aXR5S2V5KTtcblx0XHRcdFx0aWYgKGN1cnJlbnRBY3Rpdml0aWVzKSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgsIGN1cnJlbnRBY3Rpdml0aWVzKTtcblx0XHRcdFx0XHR1cGRhdGUodmlldywgbmVzdGVlZE1lc3NhZ2UsIG1ldGFQYXRoLCBBY3Rpdml0eS5DaGFuZ2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuQ3JlYXRlOlxuXHRcdFx0Ly8gRm9yIGNyZWF0ZSB3ZSBhY3R1YWxseSBqdXN0IG5lZWQgdG8gcmVmcmVzaCB0aGUgdGFibGVcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuQ3JlYXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuRGVsZXRlOlxuXHRcdFx0Ly8gRm9yIG5vdyBhbHNvIHJlZnJlc2ggdGhlIHBhZ2UgYnV0IGluIGNhc2Ugb2YgZGVsZXRpb24gd2UgbmVlZCB0byBpbmZvcm0gdGhlIHVzZXJcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuRGVsZXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuQWN0aXZhdGU6XG5cdFx0XHRkaXNjb25uZWN0KHZpZXcpO1xuXHRcdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0FDVElWQVRFXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBBY3Rpdml0eS5EaXNjYXJkOlxuXHRcdFx0ZGlzY29ubmVjdCh2aWV3KTtcblx0XHRcdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24oQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Lypcblx0XHQvLyBUT0RPOiBBY3Rpb24gdG8gYmUgaW1wbGVtZW50ZWRcblx0XHRjYXNlIEFjdGl2aXR5LkFjdGlvbjpcblx0XHRcdC8vIEp1c3QgZm9yIHRlc3QgcmVhc29ucyBzaG93IGEgdG9hc3QgLSB0byBiZSBjaGVja2VkIHdpdGggVVhcblx0XHRcdE1lc3NhZ2VUb2FzdC5zaG93KFwiVXNlciBcIiArIHNlbmRlci5uYW1lICsgXCIgaGFzIGV4ZWN1dGVkIGFjdGlvbiBcIiArIG1ldGFQYXRoLnNwbGl0KFwifFwiKVswXSk7XG5cdFx0XHQvL3VwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuRGVsZXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdCAqL1xuXHRcdGNhc2UgQWN0aXZpdHkuTGl2ZUNoYW5nZTpcblx0XHRcdGNvbnN0IGFjdGl2aXR5OiBVc2VyQWN0aXZpdHkgPSBzZW5kZXI7XG5cdFx0XHRhY3Rpdml0eS5rZXkgPSBnZXRBY3Rpdml0eUtleShtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXG5cdFx0XHQvLyBzdHVwaWQgSlNPTiBtb2RlbC4uLlxuXHRcdFx0bGV0IGluaXRKU09OTW9kZWw6IHN0cmluZyA9IFwiXCI7XG5cdFx0XHRjb25zdCBwYXJ0cyA9IG1ldGFQYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG5cdFx0XHRcdGluaXRKU09OTW9kZWwgKz0gXCIvXCIgKyBwYXJ0c1tpXTtcblx0XHRcdFx0aWYgKCFpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBpbml0SlNPTk1vZGVsKSkge1xuXHRcdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUyArIGluaXRKU09OTW9kZWwsIHt9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgpO1xuXHRcdFx0YWN0aXZpdGllcyA9IGFjdGl2aXRpZXM/LnNsaWNlID8gYWN0aXZpdGllcy5zbGljZSgpIDogW107XG5cdFx0XHRhY3Rpdml0aWVzLnB1c2goYWN0aXZpdHkpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgsIGFjdGl2aXRpZXMpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBBY3Rpdml0eS5VbmRvOlxuXHRcdFx0Ly8gVGhlIHVzZXIgZGlkIGEgY2hhbmdlIGJ1dCByZXZlcnRlZCBpdCwgdGhlcmVmb3JlIHVuYmxvY2sgdGhlIGNvbnRyb2xcblx0XHRcdGFjdGl2aXRpZXMgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBtZXRhUGF0aCk7XG5cdFx0XHRhY3Rpdml0eUtleSA9IGdldEFjdGl2aXR5S2V5KG1lc3NhZ2UuY2xpZW50Q29udGVudCk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KFxuXHRcdFx0XHRBQ1RJVklUSUVTICsgbWV0YVBhdGgsXG5cdFx0XHRcdGFjdGl2aXRpZXMuZmlsdGVyKChhKSA9PiBhLmtleSAhPT0gYWN0aXZpdHlLZXkpXG5cdFx0XHQpO1xuXHRcdFx0YnJlYWs7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlKHZpZXc6IFZpZXcsIG1lc3NhZ2U6IE1lc3NhZ2UsIG1ldGFQYXRoOiBzdHJpbmcsIGFjdGlvbjogQWN0aXZpdHkpIHtcblx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29sbGFib3JhdGlvblV0aWxzLmdldEFwcENvbXBvbmVudCh2aWV3KTtcblx0Y29uc3QgbWV0YU1vZGVsID0gdmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRjb25zdCBjdXJyZW50UGFnZSA9IGdldEN1cnJlbnRQYWdlKHZpZXcpO1xuXHRjb25zdCBzaWRlRWZmZWN0c1NlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cdGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gY3VycmVudFBhZ2UuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgY3VycmVudFBhdGggPSBjdXJyZW50Q29udGV4dC5nZXRQYXRoKCk7XG5cdGNvbnN0IGN1cnJlbnRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aChjdXJyZW50UGF0aCk7XG5cdGxldCBjaGFuZ2VkRG9jdW1lbnQgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQ7XG5cblx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuRGVsZXRlKSB7XG5cdFx0Ly8gY2hlY2sgaWYgdXNlciBjdXJyZW50bHkgZGlzcGxheXMgb25lIGRlbGV0ZWQgb2JqZWN0XG5cdFx0Y29uc3QgZGVsZXRlZE9iamVjdHMgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQuc3BsaXQoXCJ8XCIpO1xuXHRcdGNvbnN0IHBhcmVudERlbGV0ZWRJbmRleCA9IGRlbGV0ZWRPYmplY3RzLmZpbmRJbmRleCgoZGVsZXRlZE9iamVjdCkgPT4gY3VycmVudFBhdGguc3RhcnRzV2l0aChkZWxldGVkT2JqZWN0KSk7XG5cdFx0aWYgKHBhcmVudERlbGV0ZWRJbmRleCA+IC0xKSB7XG5cdFx0XHQvLyBhbnkgb3RoZXIgdXNlciBkZWxldGVkIHRoZSBvYmplY3QgSSdtIGN1cnJlbnRseSBsb29raW5nIGF0LiBJbmZvcm0gdGhlIHVzZXIgd2Ugd2lsbCBuYXZpZ2F0ZSB0byByb290IG5vd1xuXHRcdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RFTEVURVwiLCBtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbiksIHtcblx0XHRcdFx0b25DbG9zZTogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldENvbnRleHQgPSB2aWV3LmdldE1vZGVsKCkuYmluZENvbnRleHQoZGVsZXRlZE9iamVjdHNbcGFyZW50RGVsZXRlZEluZGV4XSkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRcdFx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLl9yb3V0aW5nLm5hdmlnYXRlQmFja0Zyb21Db250ZXh0KHRhcmdldENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0Ly8gVE9ETzogRm9yIG5vdyBqdXN0IHRha2UgdGhlIGZpcnN0IG9iamVjdCB0byBnZXQgdGhlIG1ldGEgcGF0aCBhbmQgZG8gYSBmdWxsIHJlZnJlc2ggb2YgdGhlIHRhYmxlXG5cdFx0Y2hhbmdlZERvY3VtZW50ID0gZGVsZXRlZE9iamVjdHNbMF07XG5cdH1cblxuXHRpZiAoY2hhbmdlZERvY3VtZW50LnN0YXJ0c1dpdGgoY3VycmVudFBhdGgpKSB7XG5cdFx0Ly8gRXhlY3V0ZSBTaWRlRWZmZWN0cyAoVE9ETyBmb3IgTWVldCB0aGVyZSBzaG91bGQgYmUgb25lIGNlbnRyYWwgbWV0aG9kKVxuXHRcdGNvbnN0IGFjdGl2aXR5UGF0aCA9IG1ldGFQYXRoLnJlcGxhY2UoY3VycmVudE1ldGFQYXRoLCBcIlwiKS5zbGljZSgxKTtcblx0XHRpZiAoYWN0aXZpdHlQYXRoKSB7XG5cdFx0XHQvLyBSZXF1ZXN0IGFsc28gdGhlIHByb3BlcnR5IGl0c2VsZlxuXHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHM6IGFueVtdID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogYWN0aXZpdHlQYXRoXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmdldEVudGl0eVR5cGVGcm9tQ29udGV4dChjdXJyZW50Q29udGV4dCk7XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlU2lkZUVmZmVjdHMgPSBzaWRlRWZmZWN0c1NlcnZpY2UuZ2V0T0RhdGFFbnRpdHlTaWRlRWZmZWN0cyhlbnRpdHlUeXBlISk7XG5cdFx0XHQvLyBQb29yIG1hbiBzb2x1dGlvbiB3aXRob3V0IGNoZWNraW5nIHNvdXJjZSB0YXJnZXRzLCBqdXN0IGZvciBQT0MsIHRoaXMgaXMgdGhyb3ctd2F5IGNvZGluZyBvbmx5XG5cdFx0XHRjb25zdCBvYmplY3Q6IGFueSA9IE9iamVjdDsgLy8ganVzdCB0byBvdmVyY29tZSBUUyBpc3N1ZXMsIHdpbGwgYmUgYW55d2F5IHJlcGxhY2VkXG5cdFx0XHRjb25zdCByZWxldmFudFNpZGVFZmZlY3RzID0gb2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRvYmplY3Rcblx0XHRcdFx0XHQuZW50cmllcyhlbnRpdHlUeXBlU2lkZUVmZmVjdHMpXG5cdFx0XHRcdFx0LmZpbHRlcigoeDogYW55W10pID0+IHhbMV0uU291cmNlUHJvcGVydGllcz8uZmluZEluZGV4KChzb3VyY2U6IGFueSkgPT4gc291cmNlLnZhbHVlID09PSBhY3Rpdml0eVBhdGgpID4gLTEpXG5cdFx0XHQpO1xuXHRcdFx0Zm9yIChjb25zdCBwIGluIHJlbGV2YW50U2lkZUVmZmVjdHMpIHtcblx0XHRcdFx0cmVsZXZhbnRTaWRlRWZmZWN0c1twXS5UYXJnZXRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHRhcmdldFByb3BlcnR5OiBhbnkpIHtcblx0XHRcdFx0XHRzaWRlRWZmZWN0cy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IHRhcmdldFByb3BlcnR5XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0c2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhzaWRlRWZmZWN0cywgY3VycmVudENvbnRleHQsIFwiJGF1dG9cIik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2ltdWxhdGUgYW55IGNoYW5nZSBzbyB0aGUgZWRpdCBmbG93IHNob3dzIHRoZSBkcmFmdCBpbmRpY2F0b3IgYW5kIHNldHMgdGhlIHBhZ2UgdG8gZGlydHlcblx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLmVkaXRGbG93LnVwZGF0ZURvY3VtZW50KGN1cnJlbnRDb250ZXh0LCBQcm9taXNlLnJlc29sdmUoKSk7XG59XG5cbmZ1bmN0aW9uIG5hdmlnYXRlKHBhdGg6IHN0cmluZywgdmlldzogVmlldykge1xuXHQvLyBUT0RPOiByb3V0aW5nLm5hdmlnYXRlIGRvZXNuJ3QgY29uc2lkZXIgc2VtYW50aWMgYm9va21hcmtpbmdcblx0Y29uc3QgY3VycmVudFBhZ2UgPSBnZXRDdXJyZW50UGFnZSh2aWV3KTtcblx0Y29uc3QgdGFyZ2V0Q29udGV4dCA9IHZpZXcuZ2V0TW9kZWwoKS5iaW5kQ29udGV4dChwYXRoKS5nZXRCb3VuZENvbnRleHQoKTtcblx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLnJvdXRpbmcubmF2aWdhdGUodGFyZ2V0Q29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRQYWdlKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29sbGFib3JhdGlvblV0aWxzLmdldEFwcENvbXBvbmVudCh2aWV3KTtcblx0Y29uc3Qgcm9vdFZpZXdDb250cm9sbGVyID0gYXBwQ29tcG9uZW50LmdldFJvb3RWaWV3Q29udHJvbGxlcigpIGFzIGFueTtcblx0cmV0dXJuIHJvb3RWaWV3Q29udHJvbGxlci5pc0ZjbEVuYWJsZWQoKVxuXHRcdD8gcm9vdFZpZXdDb250cm9sbGVyLmdldFJpZ2h0bW9zdFZpZXcoKVxuXHRcdDogQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldygoYXBwQ29tcG9uZW50LmdldFJvb3RDb250YWluZXIoKSBhcyBhbnkpLmdldEN1cnJlbnRQYWdlKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRBY3Rpdml0eUtleSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4geC5zdWJzdHJpbmcoeC5sYXN0SW5kZXhPZihcIihcIikgKyAxLCB4Lmxhc3RJbmRleE9mKFwiKVwiKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0Y29ubmVjdDogY29ubmVjdCxcblx0ZGlzY29ubmVjdDogZGlzY29ubmVjdCxcblx0aXNDb25uZWN0ZWQ6IGlzQ29ubmVjdGVkLFxuXHRpc0NvbGxhYm9yYXRpb25FbmFibGVkOiBpc0NvbGxhYm9yYXRpb25FbmFibGVkLFxuXHRzZW5kOiBzZW5kXG59O1xuIl19
|
|
360
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjdGl2aXR5U3luYy50cyJdLCJuYW1lcyI6WyJNWUFDVElWSVRZIiwiQUNUSVZFVVNFUlMiLCJBQ1RJVklUSUVTIiwiaXNDb25uZWN0ZWQiLCJjb250cm9sIiwiaW50ZXJuYWxNb2RlbCIsImdldE1vZGVsIiwiaXNDb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwic2VuZCIsImFjdGlvbiIsImNvbnRlbnQiLCJjbGllbnRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsIm15QWN0aXZpdHkiLCJnZXRQcm9wZXJ0eSIsInNldFByb3BlcnR5IiwiYnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UiLCJnZXRXZWJTb2NrZXRCYXNlVVJMIiwiYmluZGluZ0NvbnRleHQiLCJnZXRNZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJpc0NvbGxhYm9yYXRpb25FbmFibGVkIiwidmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiY29ubmVjdCIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJ3ZWJTb2NrZXRCYXNlVVJMIiwicmVxdWVzdFByb3BlcnR5Iiwic0RyYWZ0VVVJRCIsImluaXRpYWxpemVDb2xsYWJvcmF0aW9uIiwibWVzc2FnZSIsIm1lc3NhZ2VSZWNlaXZlIiwiZGlzY29ubmVjdCIsImVuZENvbGxhYm9yYXRpb24iLCJhY3RpdmVVc2VycyIsImFjdGl2aXRpZXMiLCJhY3Rpdml0eUtleSIsIm1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJ1c2VyQWN0aW9uIiwiY2xpZW50QWN0aW9uIiwic2VuZGVyIiwiaWQiLCJ1c2VySUQiLCJuYW1lIiwidXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwiSm9pbiIsIkpvaW5FY2hvIiwiZmluZEluZGV4IiwidXNlciIsInB1c2giLCJMZWF2ZSIsImZpbHRlciIsImFsbEFjdGl2aXRpZXMiLCJyZW1vdmVVc2VyQWN0aXZpdGllcyIsImJhZyIsImFjdGl2aXR5IiwicCIsIkNoYW5nZSIsIm1ldGFQYXRocyIsInNwbGl0IiwibWFwIiwicGF0aCIsImZvckVhY2giLCJjdXJyZW50TWV0YVBhdGgiLCJpIiwibmVzdGVlZE1lc3NhZ2UiLCJjdXJyZW50QWN0aXZpdGllcyIsImdldEFjdGl2aXR5S2V5Iiwia2V5IiwidXBkYXRlIiwiQ3JlYXRlIiwiRGVsZXRlIiwiQWN0aXZhdGUiLCJNZXNzYWdlQm94IiwiaW5mb3JtYXRpb24iLCJnZXRUZXh0IiwibmF2aWdhdGUiLCJEaXNjYXJkIiwiaW5pdEpTT05Nb2RlbCIsInBhcnRzIiwibGVuZ3RoIiwic2xpY2UiLCJVbmRvIiwiYSIsImFwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsIm1ldGFNb2RlbCIsImN1cnJlbnRQYWdlIiwiZ2V0Q3VycmVudFBhZ2UiLCJzaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJjdXJyZW50Q29udGV4dCIsImN1cnJlbnRQYXRoIiwiZ2V0UGF0aCIsImNoYW5nZWREb2N1bWVudCIsImRlbGV0ZWRPYmplY3RzIiwicGFyZW50RGVsZXRlZEluZGV4IiwiZGVsZXRlZE9iamVjdCIsInN0YXJ0c1dpdGgiLCJvbkNsb3NlIiwidGFyZ2V0Q29udGV4dCIsImJpbmRDb250ZXh0IiwiZ2V0Qm91bmRDb250ZXh0IiwiZ2V0Q29udHJvbGxlciIsIl9yb3V0aW5nIiwibmF2aWdhdGVCYWNrRnJvbUNvbnRleHQiLCJhY3Rpdml0eVBhdGgiLCJyZXBsYWNlIiwic2lkZUVmZmVjdHMiLCIkUHJvcGVydHlQYXRoIiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGVGcm9tQ29udGV4dCIsImVudGl0eVR5cGVTaWRlRWZmZWN0cyIsImdldE9EYXRhRW50aXR5U2lkZUVmZmVjdHMiLCJvYmplY3QiLCJPYmplY3QiLCJyZWxldmFudFNpZGVFZmZlY3RzIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwieCIsIlNvdXJjZVByb3BlcnRpZXMiLCJzb3VyY2UiLCJ2YWx1ZSIsIlRhcmdldFByb3BlcnRpZXMiLCJ0YXJnZXRQcm9wZXJ0eSIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVkaXRGbG93IiwidXBkYXRlRG9jdW1lbnQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJvdXRpbmciLCJyb290Vmlld0NvbnRyb2xsZXIiLCJnZXRSb290Vmlld0NvbnRyb2xsZXIiLCJpc0ZjbEVuYWJsZWQiLCJnZXRSaWdodG1vc3RWaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwiZ2V0Um9vdENvbnRhaW5lciIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxNQUFNQSxVQUFVLEdBQUcsMkJBQW5CO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLDRCQUFwQjtBQUNBLE1BQU1DLFVBQVUsR0FBRywyQkFBbkI7O0FBRU8sTUFBTUMsV0FBVyxHQUFHLFVBQVVDLE9BQVYsRUFBcUM7QUFDL0QsUUFBTUMsYUFBYSxHQUFHRCxPQUFPLENBQUNFLFFBQVIsQ0FBaUIsVUFBakIsQ0FBdEI7QUFDQSxXQUFPQyx3QkFBd0IsQ0FBQ0YsYUFBRCxDQUEvQjtBQUNBLEdBSE07Ozs7QUFLQSxNQUFNRyxJQUFJLEdBQUcsVUFBVUosT0FBVixFQUE0QkssTUFBNUIsRUFBOENDLE9BQTlDLEVBQXNGO0FBQ3pHLFFBQUlQLFdBQVcsQ0FBQ0MsT0FBRCxDQUFmLEVBQTBCO0FBQ3pCLFVBQU1DLGFBQWEsR0FBR0QsT0FBTyxDQUFDRSxRQUFSLENBQWlCLFVBQWpCLENBQXRCO0FBQ0EsVUFBTUssYUFBYSxHQUFHQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsT0FBZCxJQUF5QkEsT0FBTyxDQUFDSSxJQUFSLENBQWEsR0FBYixDQUF6QixHQUE2Q0osT0FBbkU7O0FBRUEsVUFBSUQsTUFBTSxLQUFLTSxRQUFRLENBQUNDLFVBQXhCLEVBQW9DO0FBQ25DO0FBQ0EsWUFB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QUFjLENBQUN6RSxJQUFELENBQWxDO0FBQ0EsUUFBTXFGLGFBQWEsR0FBR3JGLElBQUksQ0FBQ3BCLFFBQUwsR0FBZ0IwRyxXQUFoQixDQUE0QnhDLElBQTVCLEVBQWtDeUMsZUFBbEMsRUFBdEI7QUFDQWYsSUFBQUEsV0FBVyxDQUFDZ0IsYUFBWixHQUE0QjJCLE9BQTVCLENBQW9DdEQsUUFBcEMsQ0FBNkN3QixhQUE3QztBQUNBOztBQUVELFdBQVNaLGNBQVQsQ0FBd0J6RSxJQUF4QixFQUFvQztBQUNuQyxRQUFNcUUsWUFBWSxHQUFHakUsa0JBQWtCLENBQUNrRSxlQUFuQixDQUFtQ3RFLElBQW5DLENBQXJCO0FBQ0EsUUFBTW9ILGtCQUFrQixHQUFHL0MsWUFBWSxDQUFDZ0QscUJBQWIsRUFBM0I7QUFDQSxXQUFPRCxrQkFBa0IsQ0FBQ0UsWUFBbkIsS0FDSkYsa0JBQWtCLENBQUNHLGdCQUFuQixFQURJLEdBRUpDLFdBQVcsQ0FBQ0MsYUFBWixDQUEyQnBELFlBQVksQ0FBQ3FELGdCQUFiLEVBQUQsQ0FBeUNqRCxjQUF6QyxFQUExQixDQUZIO0FBR0E7O0FBRUQsV0FBU3JCLGNBQVQsQ0FBd0JvRCxDQUF4QixFQUEyQztBQUMxQyxXQUFPQSxDQUFDLENBQUNtQixTQUFGLENBQVluQixDQUFDLENBQUNvQixXQUFGLENBQWMsR0FBZCxJQUFxQixDQUFqQyxFQUFvQ3BCLENBQUMsQ0FBQ29CLFdBQUYsQ0FBYyxHQUFkLENBQXBDLENBQVA7QUFDQTs7U0FFYztBQUNkMUgsSUFBQUEsT0FBTyxFQUFFQSxPQURLO0FBRWRVLElBQUFBLFVBQVUsRUFBRUEsVUFGRTtBQUdkbkMsSUFBQUEsV0FBVyxFQUFFQSxXQUhDO0FBSWRzQixJQUFBQSxzQkFBc0IsRUFBRUEsc0JBSlY7QUFLZGpCLElBQUFBLElBQUksRUFBRUE7QUFMUSxHIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQge1xuXHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZSxcblx0ZW5kQ29sbGFib3JhdGlvbixcblx0aW5pdGlhbGl6ZUNvbGxhYm9yYXRpb24sXG5cdGlzQ29sbGFib3JhdGlvbkNvbm5lY3RlZFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9BY3Rpdml0eUJhc2VcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSwgVXNlciwgVXNlckFjdGl2aXR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IHsgQWN0aXZpdHksIENvbGxhYm9yYXRpb25VdGlscyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmNvbnN0IE1ZQUNUSVZJVFkgPSBcIi9jb2xsYWJvcmF0aW9uL215QWN0aXZpdHlcIjtcbmNvbnN0IEFDVElWRVVTRVJTID0gXCIvY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiO1xuY29uc3QgQUNUSVZJVElFUyA9IFwiL2NvbGxhYm9yYXRpb24vYWN0aXZpdGllc1wiO1xuXG5leHBvcnQgY29uc3QgaXNDb25uZWN0ZWQgPSBmdW5jdGlvbiAoY29udHJvbDogQ29udHJvbCk6IGJvb2xlYW4ge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsID0gY29udHJvbC5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0cmV0dXJuIGlzQ29sbGFib3JhdGlvbkNvbm5lY3RlZChpbnRlcm5hbE1vZGVsKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wsIGFjdGlvbjogQWN0aXZpdHksIGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG5cdGlmIChpc0Nvbm5lY3RlZChjb250cm9sKSkge1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWwgPSBjb250cm9sLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRcdGNvbnN0IGNsaWVudENvbnRlbnQgPSBBcnJheS5pc0FycmF5KGNvbnRlbnQpID8gY29udGVudC5qb2luKFwifFwiKSA6IGNvbnRlbnQ7XG5cblx0XHRpZiAoYWN0aW9uID09PSBBY3Rpdml0eS5MaXZlQ2hhbmdlKSB7XG5cdFx0XHQvLyBUbyBhdm9pZCB1bm5lY2Vzc2FyeSB0cmFmZmljIHdlIGtlZXAgdHJhY2sgb2YgbGl2ZSBjaGFuZ2VzIGFuZCBzZW5kIGl0IG9ubHkgb25jZVxuXHRcdFx0Y29uc3QgbXlBY3Rpdml0eSA9IGludGVybmFsTW9kZWwuZ2V0UHJvcGVydHkoTVlBQ1RJVklUWSk7XG5cdFx0XHRpZiAobXlBY3Rpdml0eSA9PT0gY2xpZW50Q29udGVudCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KE1ZQUNUSVZJVFksIGNsaWVudENvbnRlbnQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyB1c2VyIGZpbmlzaGVkIHRoZSBhY3Rpdml0eVxuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShNWUFDVElWSVRZLCBudWxsKTtcblx0XHR9XG5cblx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShhY3Rpb24sIGNsaWVudENvbnRlbnQsIGludGVybmFsTW9kZWwpO1xuXHR9XG59O1xuXG5jb25zdCBnZXRXZWJTb2NrZXRCYXNlVVJMID0gZnVuY3Rpb24gKGJpbmRpbmdDb250ZXh0OiBDb250ZXh0KTogc3RyaW5nIHtcblx0cmV0dXJuIGJpbmRpbmdDb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KFwiL0Bjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuV2ViU29ja2V0QmFzZVVSTFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxhYm9yYXRpb25FbmFibGVkID0gZnVuY3Rpb24gKHZpZXc6IFZpZXcpOiBib29sZWFuIHtcblx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3Py5nZXRCaW5kaW5nQ29udGV4dCAmJiAodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQpO1xuXHRyZXR1cm4gISEoYmluZGluZ0NvbnRleHQgJiYgZ2V0V2ViU29ja2V0QmFzZVVSTChiaW5kaW5nQ29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbm5lY3QgPSBhc3luYyBmdW5jdGlvbiAodmlldzogVmlldykge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsID0gdmlldy5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0Y29uc3QgbWUgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0TWUodmlldyk7XG5cblx0Ly8gUmV0cmlldmluZyBNRSBmcm9tIHNoZWxsIHNlcnZpY2Vcblx0aWYgKCFtZSkge1xuXHRcdC8vIG5vIG1lID0gbm8gc2hlbGwgPSBub3Qgc3VyZSB3aGF0IHRvIGRvXG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0Y29uc3Qgd2ViU29ja2V0QmFzZVVSTCA9IGdldFdlYlNvY2tldEJhc2VVUkwoYmluZGluZ0NvbnRleHQpO1xuXG5cdGlmICghd2ViU29ja2V0QmFzZVVSTCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHNEcmFmdFVVSUQgPSBhd2FpdCBiaW5kaW5nQ29udGV4dC5yZXF1ZXN0UHJvcGVydHkoXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdFVVSURcIik7XG5cdGlmICghc0RyYWZ0VVVJRCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uKG1lLCB3ZWJTb2NrZXRCYXNlVVJMLCBzRHJhZnRVVUlELCBpbnRlcm5hbE1vZGVsLCAobWVzc2FnZTogTWVzc2FnZSkgPT4ge1xuXHRcdG1lc3NhZ2VSZWNlaXZlKG1lc3NhZ2UsIHZpZXcpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNjb25uZWN0ID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wpIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IGNvbnRyb2wuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdGVuZENvbGxhYm9yYXRpb24oaW50ZXJuYWxNb2RlbCk7XG59O1xuXG5mdW5jdGlvbiBtZXNzYWdlUmVjZWl2ZShtZXNzYWdlOiBNZXNzYWdlLCB2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWw6IGFueSA9IHZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKTtcblx0bGV0IGFjdGl2ZVVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWRVVTRVJTKTtcblx0bGV0IGFjdGl2aXRpZXM6IFVzZXJBY3Rpdml0eVtdO1xuXHRsZXQgYWN0aXZpdHlLZXk6IHN0cmluZztcblx0Y29uc3QgbWV0YVBhdGg6IHN0cmluZyA9IG1lc3NhZ2UuY2xpZW50Q29udGVudCAmJiAodmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsKS5nZXRNZXRhUGF0aChtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXHRtZXNzYWdlLnVzZXJBY3Rpb24gPSBtZXNzYWdlLnVzZXJBY3Rpb24gfHwgbWVzc2FnZS5jbGllbnRBY3Rpb247XG5cblx0Y29uc3Qgc2VuZGVyOiBVc2VyID0ge1xuXHRcdGlkOiBtZXNzYWdlLnVzZXJJRCxcblx0XHRuYW1lOiBtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbixcblx0XHRpbml0aWFsczogQ29sbGFib3JhdGlvblV0aWxzLmZvcm1hdEluaXRpYWxzKG1lc3NhZ2UudXNlckRlc2NyaXB0aW9uKSxcblx0XHRjb2xvcjogQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcihtZXNzYWdlLnVzZXJJRCwgYWN0aXZlVXNlcnMsIFtdKVxuXHR9O1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2Vcblx0c3dpdGNoIChtZXNzYWdlLnVzZXJBY3Rpb24pIHtcblx0XHRjYXNlIEFjdGl2aXR5LkpvaW46XG5cdFx0Y2FzZSBBY3Rpdml0eS5Kb2luRWNobzpcblx0XHRcdGlmIChhY3RpdmVVc2Vycy5maW5kSW5kZXgoKHVzZXIpID0+IHVzZXIuaWQgPT09IHNlbmRlci5pZCkgPT09IC0xKSB7XG5cdFx0XHRcdGFjdGl2ZVVzZXJzLnB1c2goc2VuZGVyKTtcblx0XHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVkVVU0VSUywgYWN0aXZlVXNlcnMpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAobWVzc2FnZS51c2VyQWN0aW9uID09PSBBY3Rpdml0eS5Kb2luKSB7XG5cdFx0XHRcdC8vIHdlIGVjaG8gb3VyIGV4aXN0ZW5jZSB0byB0aGUgbmV3bHkgZW50ZXJlZCB1c2VyIGFuZCBhbHNvIHNlbmQgdGhlIGN1cnJlbnQgYWN0aXZpdHkgaWYgdGhlcmUgaXMgYW55XG5cdFx0XHRcdGJyb2FkY2FzdENvbGxhYm9yYXRpb25NZXNzYWdlKEFjdGl2aXR5LkpvaW5FY2hvLCBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KE1ZQUNUSVZJVFkpLCBpbnRlcm5hbE1vZGVsKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbkVjaG8pIHtcblx0XHRcdFx0aWYgKG1lc3NhZ2UuY2xpZW50Q29udGVudCkge1xuXHRcdFx0XHRcdC8vIGFub3RoZXIgdXNlciB3YXMgYWxyZWFkeSB0eXBpbmcgdGhlcmVmb3JlIEkgd2FudCB0byBzZWUgaGlzIGFjdGl2aXR5IGltbWVkaWF0ZWx5LiBDYWxsaW5nIG1lIGFnYWluIGFzIGEgbGl2ZSBjaGFuZ2Vcblx0XHRcdFx0XHRtZXNzYWdlLnVzZXJBY3Rpb24gPSBBY3Rpdml0eS5MaXZlQ2hhbmdlO1xuXHRcdFx0XHRcdG1lc3NhZ2VSZWNlaXZlKG1lc3NhZ2UsIHZpZXcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuTGVhdmU6XG5cdFx0XHQvLyBSZW1vdmluZyB0aGUgYWN0aXZlIHVzZXIuIE5vdCByZW1vdmluZyBcIm1lXCIgaWYgSSBoYWQgdGhlIHNjcmVlbiBvcGVuIGluIGFub3RoZXIgc2Vzc2lvblxuXHRcdFx0YWN0aXZlVXNlcnMgPSBhY3RpdmVVc2Vycy5maWx0ZXIoKHVzZXIpID0+IHVzZXIuaWQgIT09IHNlbmRlci5pZCB8fCB1c2VyLm1lKTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZFVVNFUlMsIGFjdGl2ZVVzZXJzKTtcblx0XHRcdGNvbnN0IGFsbEFjdGl2aXRpZXMgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMpIHx8IHt9O1xuXHRcdFx0Y29uc3QgcmVtb3ZlVXNlckFjdGl2aXRpZXMgPSBmdW5jdGlvbiAoYmFnOiBhbnkpIHtcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYmFnKSkge1xuXHRcdFx0XHRcdHJldHVybiBiYWcuZmlsdGVyKChhY3Rpdml0eSkgPT4gYWN0aXZpdHkuaWQgIT09IHNlbmRlci5pZCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwIGluIGJhZykge1xuXHRcdFx0XHRcdFx0YmFnW3BdID0gcmVtb3ZlVXNlckFjdGl2aXRpZXMoYmFnW3BdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGJhZztcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdHJlbW92ZVVzZXJBY3Rpdml0aWVzKGFsbEFjdGl2aXRpZXMpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTLCBhbGxBY3Rpdml0aWVzKTtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBBY3Rpdml0eS5DaGFuZ2U6XG5cdFx0XHRjb25zdCBtZXRhUGF0aHMgPSBtZXNzYWdlPy5jbGllbnRDb250ZW50Py5zcGxpdChcInxcIikubWFwKChwYXRoKSA9PiB7XG5cdFx0XHRcdHJldHVybiAodmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsKS5nZXRNZXRhUGF0aChwYXRoKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRtZXRhUGF0aHMuZm9yRWFjaCgoY3VycmVudE1ldGFQYXRoLCBpKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG5lc3RlZWRNZXNzYWdlID0ge1xuXHRcdFx0XHRcdC4uLm1lc3NhZ2UsXG5cdFx0XHRcdFx0Y2xpZW50Q29udGVudDogbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpW2ldXG5cdFx0XHRcdH07XG5cdFx0XHRcdGxldCBjdXJyZW50QWN0aXZpdGllczogYW55W10gPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBjdXJyZW50TWV0YVBhdGgpIHx8IFtdO1xuXHRcdFx0XHRhY3Rpdml0eUtleSA9IGdldEFjdGl2aXR5S2V5KG5lc3RlZWRNZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXHRcdFx0XHRjdXJyZW50QWN0aXZpdGllcyA9IGN1cnJlbnRBY3Rpdml0aWVzPy5maWx0ZXIgJiYgY3VycmVudEFjdGl2aXRpZXMuZmlsdGVyKChhY3Rpdml0eSkgPT4gYWN0aXZpdHkua2V5ICE9PSBhY3Rpdml0eUtleSk7XG5cdFx0XHRcdGlmIChjdXJyZW50QWN0aXZpdGllcykge1xuXHRcdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUyArIGN1cnJlbnRNZXRhUGF0aCwgY3VycmVudEFjdGl2aXRpZXMpO1xuXHRcdFx0XHRcdHVwZGF0ZSh2aWV3LCBuZXN0ZWVkTWVzc2FnZSwgY3VycmVudE1ldGFQYXRoLCBBY3Rpdml0eS5DaGFuZ2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuQ3JlYXRlOlxuXHRcdFx0Ly8gRm9yIGNyZWF0ZSB3ZSBhY3R1YWxseSBqdXN0IG5lZWQgdG8gcmVmcmVzaCB0aGUgdGFibGVcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuQ3JlYXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuRGVsZXRlOlxuXHRcdFx0Ly8gRm9yIG5vdyBhbHNvIHJlZnJlc2ggdGhlIHBhZ2UgYnV0IGluIGNhc2Ugb2YgZGVsZXRpb24gd2UgbmVlZCB0byBpbmZvcm0gdGhlIHVzZXJcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuRGVsZXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuQWN0aXZhdGU6XG5cdFx0XHRkaXNjb25uZWN0KHZpZXcpO1xuXHRcdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0FDVElWQVRFXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBBY3Rpdml0eS5EaXNjYXJkOlxuXHRcdFx0ZGlzY29ubmVjdCh2aWV3KTtcblx0XHRcdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24oQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Lypcblx0XHQvLyBUT0RPOiBBY3Rpb24gdG8gYmUgaW1wbGVtZW50ZWRcblx0XHRjYXNlIEFjdGl2aXR5LkFjdGlvbjpcblx0XHRcdC8vIEp1c3QgZm9yIHRlc3QgcmVhc29ucyBzaG93IGEgdG9hc3QgLSB0byBiZSBjaGVja2VkIHdpdGggVVhcblx0XHRcdE1lc3NhZ2VUb2FzdC5zaG93KFwiVXNlciBcIiArIHNlbmRlci5uYW1lICsgXCIgaGFzIGV4ZWN1dGVkIGFjdGlvbiBcIiArIG1ldGFQYXRoLnNwbGl0KFwifFwiKVswXSk7XG5cdFx0XHQvL3VwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuRGVsZXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdCAqL1xuXHRcdGNhc2UgQWN0aXZpdHkuTGl2ZUNoYW5nZTpcblx0XHRcdGNvbnN0IGFjdGl2aXR5OiBVc2VyQWN0aXZpdHkgPSBzZW5kZXI7XG5cdFx0XHRhY3Rpdml0eS5rZXkgPSBnZXRBY3Rpdml0eUtleShtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXG5cdFx0XHQvLyBzdHVwaWQgSlNPTiBtb2RlbC4uLlxuXHRcdFx0bGV0IGluaXRKU09OTW9kZWw6IHN0cmluZyA9IFwiXCI7XG5cdFx0XHRjb25zdCBwYXJ0cyA9IG1ldGFQYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG5cdFx0XHRcdGluaXRKU09OTW9kZWwgKz0gYC8ke3BhcnRzW2ldfWA7XG5cdFx0XHRcdGlmICghaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgaW5pdEpTT05Nb2RlbCkpIHtcblx0XHRcdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWSVRJRVMgKyBpbml0SlNPTk1vZGVsLCB7fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0YWN0aXZpdGllcyA9IGludGVybmFsTW9kZWwuZ2V0UHJvcGVydHkoQUNUSVZJVElFUyArIG1ldGFQYXRoKTtcblx0XHRcdGFjdGl2aXRpZXMgPSBhY3Rpdml0aWVzPy5zbGljZSA/IGFjdGl2aXRpZXMuc2xpY2UoKSA6IFtdO1xuXHRcdFx0YWN0aXZpdGllcy5wdXNoKGFjdGl2aXR5KTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUyArIG1ldGFQYXRoLCBhY3Rpdml0aWVzKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuVW5kbzpcblx0XHRcdC8vIFRoZSB1c2VyIGRpZCBhIGNoYW5nZSBidXQgcmV2ZXJ0ZWQgaXQsIHRoZXJlZm9yZSB1bmJsb2NrIHRoZSBjb250cm9sXG5cdFx0XHRhY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgpO1xuXHRcdFx0YWN0aXZpdHlLZXkgPSBnZXRBY3Rpdml0eUtleShtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShcblx0XHRcdFx0QUNUSVZJVElFUyArIG1ldGFQYXRoLFxuXHRcdFx0XHRhY3Rpdml0aWVzLmZpbHRlcigoYSkgPT4gYS5rZXkgIT09IGFjdGl2aXR5S2V5KVxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZSh2aWV3OiBWaWV3LCBtZXNzYWdlOiBNZXNzYWdlLCBtZXRhUGF0aDogc3RyaW5nLCBhY3Rpb246IEFjdGl2aXR5KSB7XG5cdGNvbnN0IGFwcENvbXBvbmVudCA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldyk7XG5cdGNvbnN0IG1ldGFNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0Y29uc3QgY3VycmVudFBhZ2UgPSBnZXRDdXJyZW50UGFnZSh2aWV3KTtcblx0Y29uc3Qgc2lkZUVmZmVjdHNTZXJ2aWNlID0gYXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpO1xuXHRjb25zdCBjdXJyZW50Q29udGV4dCA9IGN1cnJlbnRQYWdlLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdGNvbnN0IGN1cnJlbnRQYXRoID0gY3VycmVudENvbnRleHQuZ2V0UGF0aCgpO1xuXHRjb25zdCBjdXJyZW50TWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgoY3VycmVudFBhdGgpO1xuXHRsZXQgY2hhbmdlZERvY3VtZW50ID0gbWVzc2FnZS5jbGllbnRDb250ZW50O1xuXG5cdGlmIChhY3Rpb24gPT09IEFjdGl2aXR5LkRlbGV0ZSkge1xuXHRcdC8vIGNoZWNrIGlmIHVzZXIgY3VycmVudGx5IGRpc3BsYXlzIG9uZSBkZWxldGVkIG9iamVjdFxuXHRcdGNvbnN0IGRlbGV0ZWRPYmplY3RzID0gbWVzc2FnZS5jbGllbnRDb250ZW50LnNwbGl0KFwifFwiKTtcblx0XHRjb25zdCBwYXJlbnREZWxldGVkSW5kZXggPSBkZWxldGVkT2JqZWN0cy5maW5kSW5kZXgoKGRlbGV0ZWRPYmplY3QpID0+IGN1cnJlbnRQYXRoLnN0YXJ0c1dpdGgoZGVsZXRlZE9iamVjdCkpO1xuXHRcdGlmIChwYXJlbnREZWxldGVkSW5kZXggPiAtMSkge1xuXHRcdFx0Ly8gYW55IG90aGVyIHVzZXIgZGVsZXRlZCB0aGUgb2JqZWN0IEknbSBjdXJyZW50bHkgbG9va2luZyBhdC4gSW5mb3JtIHRoZSB1c2VyIHdlIHdpbGwgbmF2aWdhdGUgdG8gcm9vdCBub3dcblx0XHRcdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24oQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ERUxFVEVcIiwgbWVzc2FnZS51c2VyRGVzY3JpcHRpb24pLCB7XG5cdFx0XHRcdG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRNb2RlbCgpLmJpbmRDb250ZXh0KGRlbGV0ZWRPYmplY3RzW3BhcmVudERlbGV0ZWRJbmRleF0pLmdldEJvdW5kQ29udGV4dCgpO1xuXHRcdFx0XHRcdGN1cnJlbnRQYWdlLmdldENvbnRyb2xsZXIoKS5fcm91dGluZy5uYXZpZ2F0ZUJhY2tGcm9tQ29udGV4dCh0YXJnZXRDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdC8vIFRPRE86IEZvciBub3cganVzdCB0YWtlIHRoZSBmaXJzdCBvYmplY3QgdG8gZ2V0IHRoZSBtZXRhIHBhdGggYW5kIGRvIGEgZnVsbCByZWZyZXNoIG9mIHRoZSB0YWJsZVxuXHRcdGNoYW5nZWREb2N1bWVudCA9IGRlbGV0ZWRPYmplY3RzWzBdO1xuXHR9XG5cblx0aWYgKGNoYW5nZWREb2N1bWVudC5zdGFydHNXaXRoKGN1cnJlbnRQYXRoKSkge1xuXHRcdC8vIEV4ZWN1dGUgU2lkZUVmZmVjdHMgKFRPRE8gZm9yIE1lZXQgdGhlcmUgc2hvdWxkIGJlIG9uZSBjZW50cmFsIG1ldGhvZClcblx0XHRjb25zdCBhY3Rpdml0eVBhdGggPSBtZXRhUGF0aC5yZXBsYWNlKGN1cnJlbnRNZXRhUGF0aCwgXCJcIikuc2xpY2UoMSk7XG5cdFx0aWYgKGFjdGl2aXR5UGF0aCkge1xuXHRcdFx0Ly8gUmVxdWVzdCBhbHNvIHRoZSBwcm9wZXJ0eSBpdHNlbGZcblx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzOiBhbnlbXSA9IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IGFjdGl2aXR5UGF0aFxuXHRcdFx0XHR9XG5cdFx0XHRdO1xuXHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IHNpZGVFZmZlY3RzU2VydmljZS5nZXRFbnRpdHlUeXBlRnJvbUNvbnRleHQoY3VycmVudENvbnRleHQpO1xuXHRcdFx0Y29uc3QgZW50aXR5VHlwZVNpZGVFZmZlY3RzID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmdldE9EYXRhRW50aXR5U2lkZUVmZmVjdHMoZW50aXR5VHlwZSEpO1xuXHRcdFx0Ly8gUG9vciBtYW4gc29sdXRpb24gd2l0aG91dCBjaGVja2luZyBzb3VyY2UgdGFyZ2V0cywganVzdCBmb3IgUE9DLCB0aGlzIGlzIHRocm93LXdheSBjb2Rpbmcgb25seVxuXHRcdFx0Y29uc3Qgb2JqZWN0OiBhbnkgPSBPYmplY3Q7IC8vIGp1c3QgdG8gb3ZlcmNvbWUgVFMgaXNzdWVzLCB3aWxsIGJlIGFueXdheSByZXBsYWNlZFxuXHRcdFx0Y29uc3QgcmVsZXZhbnRTaWRlRWZmZWN0cyA9IG9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0b2JqZWN0XG5cdFx0XHRcdFx0LmVudHJpZXMoZW50aXR5VHlwZVNpZGVFZmZlY3RzKVxuXHRcdFx0XHRcdC5maWx0ZXIoKHg6IGFueVtdKSA9PiB4WzFdLlNvdXJjZVByb3BlcnRpZXM/LmZpbmRJbmRleCgoc291cmNlOiBhbnkpID0+IHNvdXJjZS52YWx1ZSA9PT0gYWN0aXZpdHlQYXRoKSA+IC0xKVxuXHRcdFx0KTtcblx0XHRcdGZvciAoY29uc3QgcCBpbiByZWxldmFudFNpZGVFZmZlY3RzKSB7XG5cdFx0XHRcdHJlbGV2YW50U2lkZUVmZmVjdHNbcF0uVGFyZ2V0UHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uICh0YXJnZXRQcm9wZXJ0eTogYW55KSB7XG5cdFx0XHRcdFx0c2lkZUVmZmVjdHMucHVzaCh7XG5cdFx0XHRcdFx0XHQkUHJvcGVydHlQYXRoOiB0YXJnZXRQcm9wZXJ0eVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdHNpZGVFZmZlY3RzU2VydmljZS5yZXF1ZXN0U2lkZUVmZmVjdHMoc2lkZUVmZmVjdHMsIGN1cnJlbnRDb250ZXh0LCBcIiRhdXRvXCIpO1xuXHRcdH1cblx0fVxuXG5cdC8vIFNpbXVsYXRlIGFueSBjaGFuZ2Ugc28gdGhlIGVkaXQgZmxvdyBzaG93cyB0aGUgZHJhZnQgaW5kaWNhdG9yIGFuZCBzZXRzIHRoZSBwYWdlIHRvIGRpcnR5XG5cdGN1cnJlbnRQYWdlLmdldENvbnRyb2xsZXIoKS5lZGl0Rmxvdy51cGRhdGVEb2N1bWVudChjdXJyZW50Q29udGV4dCwgUHJvbWlzZS5yZXNvbHZlKCkpO1xufVxuXG5mdW5jdGlvbiBuYXZpZ2F0ZShwYXRoOiBzdHJpbmcsIHZpZXc6IFZpZXcpIHtcblx0Ly8gVE9ETzogcm91dGluZy5uYXZpZ2F0ZSBkb2Vzbid0IGNvbnNpZGVyIHNlbWFudGljIGJvb2ttYXJraW5nXG5cdGNvbnN0IGN1cnJlbnRQYWdlID0gZ2V0Q3VycmVudFBhZ2Uodmlldyk7XG5cdGNvbnN0IHRhcmdldENvbnRleHQgPSB2aWV3LmdldE1vZGVsKCkuYmluZENvbnRleHQocGF0aCkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdGN1cnJlbnRQYWdlLmdldENvbnRyb2xsZXIoKS5yb3V0aW5nLm5hdmlnYXRlKHRhcmdldENvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50UGFnZSh2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IGFwcENvbXBvbmVudCA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldyk7XG5cdGNvbnN0IHJvb3RWaWV3Q29udHJvbGxlciA9IGFwcENvbXBvbmVudC5nZXRSb290Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnk7XG5cdHJldHVybiByb290Vmlld0NvbnRyb2xsZXIuaXNGY2xFbmFibGVkKClcblx0XHQ/IHJvb3RWaWV3Q29udHJvbGxlci5nZXRSaWdodG1vc3RWaWV3KClcblx0XHQ6IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcoKGFwcENvbXBvbmVudC5nZXRSb290Q29udGFpbmVyKCkgYXMgYW55KS5nZXRDdXJyZW50UGFnZSgpKTtcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aXZpdHlLZXkoeDogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHguc3Vic3RyaW5nKHgubGFzdEluZGV4T2YoXCIoXCIpICsgMSwgeC5sYXN0SW5kZXhPZihcIilcIikpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGNvbm5lY3Q6IGNvbm5lY3QsXG5cdGRpc2Nvbm5lY3Q6IGRpc2Nvbm5lY3QsXG5cdGlzQ29ubmVjdGVkOiBpc0Nvbm5lY3RlZCxcblx0aXNDb2xsYWJvcmF0aW9uRW5hYmxlZDogaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCxcblx0c2VuZDogc2VuZFxufTtcbiJdfQ==
|
|
@@ -5,19 +5,14 @@ import {
|
|
|
5
5
|
initializeCollaboration,
|
|
6
6
|
isCollaborationConnected
|
|
7
7
|
} from "sap/fe/core/controllerextensions/collaboration/ActivityBase";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
CollaborationUtils,
|
|
11
|
-
Message,
|
|
12
|
-
User,
|
|
13
|
-
UserActivity
|
|
14
|
-
} from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
8
|
+
import type { Message, User, UserActivity } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
9
|
+
import { Activity, CollaborationUtils } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
15
10
|
import MessageBox from "sap/m/MessageBox";
|
|
16
|
-
import Control from "sap/ui/core/Control";
|
|
17
|
-
import View from "sap/ui/core/mvc/View";
|
|
18
|
-
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
19
|
-
import Context from "sap/ui/model/odata/v4/Context";
|
|
20
|
-
import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
11
|
+
import type Control from "sap/ui/core/Control";
|
|
12
|
+
import type View from "sap/ui/core/mvc/View";
|
|
13
|
+
import type JSONModel from "sap/ui/model/json/JSONModel";
|
|
14
|
+
import type Context from "sap/ui/model/odata/v4/Context";
|
|
15
|
+
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
21
16
|
|
|
22
17
|
const MYACTIVITY = "/collaboration/myActivity";
|
|
23
18
|
const ACTIVEUSERS = "/collaboration/activeUsers";
|
|
@@ -153,17 +148,17 @@ function messageReceive(message: Message, view: View) {
|
|
|
153
148
|
return (view.getModel().getMetaModel() as ODataMetaModel).getMetaPath(path);
|
|
154
149
|
});
|
|
155
150
|
|
|
156
|
-
metaPaths.forEach((
|
|
151
|
+
metaPaths.forEach((currentMetaPath, i) => {
|
|
157
152
|
const nesteedMessage = {
|
|
158
153
|
...message,
|
|
159
154
|
clientContent: message?.clientContent?.split("|")[i]
|
|
160
155
|
};
|
|
161
|
-
let currentActivities: any[] = internalModel.getProperty(ACTIVITIES +
|
|
156
|
+
let currentActivities: any[] = internalModel.getProperty(ACTIVITIES + currentMetaPath) || [];
|
|
162
157
|
activityKey = getActivityKey(nesteedMessage.clientContent);
|
|
163
158
|
currentActivities = currentActivities?.filter && currentActivities.filter((activity) => activity.key !== activityKey);
|
|
164
159
|
if (currentActivities) {
|
|
165
|
-
internalModel.setProperty(ACTIVITIES +
|
|
166
|
-
update(view, nesteedMessage,
|
|
160
|
+
internalModel.setProperty(ACTIVITIES + currentMetaPath, currentActivities);
|
|
161
|
+
update(view, nesteedMessage, currentMetaPath, Activity.Change);
|
|
167
162
|
}
|
|
168
163
|
});
|
|
169
164
|
break;
|
|
@@ -201,7 +196,7 @@ function messageReceive(message: Message, view: View) {
|
|
|
201
196
|
let initJSONModel: string = "";
|
|
202
197
|
const parts = metaPath.split("/");
|
|
203
198
|
for (let i = 1; i < parts.length - 1; i++) {
|
|
204
|
-
initJSONModel +=
|
|
199
|
+
initJSONModel += `/${parts[i]}`;
|
|
205
200
|
if (!internalModel.getProperty(ACTIVITIES + initJSONModel)) {
|
|
206
201
|
internalModel.setProperty(ACTIVITIES + initJSONModel, {});
|
|
207
202
|
}
|
|
@@ -113,7 +113,7 @@ sap.ui.define(["sap/ui/core/Component", "sap/ui/core/Core"], function (Component
|
|
|
113
113
|
var me = {
|
|
114
114
|
initials: shellServiceHelper.getUser().getInitials(),
|
|
115
115
|
id: shellServiceHelper.getUser().getId(),
|
|
116
|
-
name: shellServiceHelper.getUser().getFullName()
|
|
116
|
+
name: "".concat(shellServiceHelper.getUser().getFullName(), " (").concat(getText("C_COLLABORATIONDRAFT_YOU"), ")"),
|
|
117
117
|
initialName: shellServiceHelper.getUser().getFullName(),
|
|
118
118
|
color: 6,
|
|
119
119
|
// same color as FLP...
|
|
@@ -143,4 +143,4 @@ sap.ui.define(["sap/ui/core/Component", "sap/ui/core/Core"], function (Component
|
|
|
143
143
|
_exports.CollaborationUtils = CollaborationUtils;
|
|
144
144
|
return _exports;
|
|
145
145
|
}, false);
|
|
146
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25Db21tb24udHMiXSwibmFtZXMiOlsiUm9sZSIsIkFjdGl2aXR5IiwiZm9ybWF0SW5pdGlhbHMiLCJmdWxsTmFtZSIsImFjYWRlbWljVGl0bGVzIiwiZm9yRWFjaCIsImFjYWRlbWljVGl0bGUiLCJyZXBsYWNlIiwiaW5pdGlhbHMiLCJwYXJ0cyIsInRyaW1TdGFydCIsInNwbGl0IiwibGVuZ3RoIiwic2hpZnQiLCJjaGFyQXQiLCJwb3AiLCJzdWJzdHJpbmciLCJ0b1VwcGVyQ2FzZSIsImdldFVzZXJDb2xvciIsIlVzZXJJRCIsImFjdGl2ZVVzZXJzIiwiaW52aXRlZFVzZXJzIiwidXNlciIsImZpbmQiLCJ1IiwiaWQiLCJjb2xvciIsImkiLCJmaW5kSW5kZXgiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29udHJvbCIsImlzQSIsIm9Pd25lciIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwiZ2V0TWUiLCJ2aWV3Iiwic2hlbGxTZXJ2aWNlSGVscGVyIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsImhhc1VTaGVsbCIsIm1lIiwiZ2V0VXNlciIsImdldEluaXRpYWxzIiwiZ2V0SWQiLCJuYW1lIiwiZ2V0RnVsbE5hbWUiLCJnZXRUZXh0IiwiaW5pdGlhbE5hbWUiLCJyb2xlIiwiT3duZXIiLCJ0ZXh0SWQiLCJvUmVzb3VyY2VNb2RlbCIsIkNvcmUiLCJnZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUiLCJhcmdzIiwiQ29sbGFib3JhdGlvblV0aWxzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7TUFtQllBLEk7O2FBQUFBLEk7QUFBQUEsSUFBQUEsSTtBQUFBQSxJQUFBQSxJO0tBQUFBLEksS0FBQUEsSTs7O01BS0FDLFE7O2FBQUFBLFE7QUFBQUEsSUFBQUEsUTtBQUFBQSxJQUFBQSxRO0FBQUFBLElBQUFBLFE7QUFBQUEsSUFBQUEsUTtBQUFBQSxJQUFBQSxRO0FBQUFBLElBQUFBLFE7QUFBQUEsSUFBQUEsUTtB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QSxLQUgwQjtBQUlqQ04sSUFBQUEsZUFBZSxFQUFFQSxlQUpnQjtBQUtqQ2lCLElBQUFBLE9BQU8sRUFBRUE7QUFMd0IsR0FBM0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgeyBDb3JlRXggfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIFVzZXIgPSB7XG5cdGlkOiBzdHJpbmc7XG5cdGluaXRpYWxzPzogc3RyaW5nO1xuXHRuYW1lOiBzdHJpbmc7XG5cdHJvbGU/OiBSb2xlO1xuXHRjb2xvcj86IG51bWJlcjtcblx0dHJhbnNpZW50PzogYm9vbGVhbjtcblx0bWU/OiBib29sZWFuO1xuXHRpbml0aWFsTmFtZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFVzZXJBY3Rpdml0eSA9IFVzZXIgJiB7XG5cdGtleT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBlbnVtIFJvbGUge1xuXHRPd25lciA9IFwiT1wiLFxuXHRFZGl0ID0gXCJFXCJcbn1cblxuZXhwb3J0IGVudW0gQWN0aXZpdHkge1xuXHRKb2luID0gXCJKT0lOXCIsXG5cdEpvaW5FY2hvID0gXCJKT0lORUNIT1wiLFxuXHRMZWF2ZSA9IFwiTEVBVkVcIixcblx0Q2hhbmdlID0gXCJDSEFOR0VcIixcblx0Q3JlYXRlID0gXCJDUkVBVEVcIixcblx0RGVsZXRlID0gXCJERUxFVEVcIixcblx0QWN0aW9uID0gXCJBQ1RJT05cIixcblx0TGl2ZUNoYW5nZSA9IFwiTElWRUNIQU5HRVwiLFxuXHRBY3RpdmF0ZSA9IFwiQUNUSVZBVEVcIixcblx0RGlzY2FyZCA9IFwiRElTQ0FSRFwiLFxuXHRVbmRvID0gXCJVTkRPXCJcbn1cblxuZXhwb3J0IHR5cGUgTWVzc2FnZSA9IHtcblx0dXNlckRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cdHVzZXJJRDogc3RyaW5nO1xuXHR1c2VyQWN0aW9uOiBzdHJpbmc7XG5cdGNsaWVudEFjdGlvbjogc3RyaW5nO1xuXHRjbGllbnRDb250ZW50OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBmb3JtYXRJbml0aWFscyhmdWxsTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Ly8gcmVtb3ZlIHRpdGxlcyAtIHRob3NlIGFyZSB0aGUgb25lcyBmcm9tIFMvNCB0byBiZSBjaGVja2VkIGlmIHRoZXJlIGFyZSBvdGhlcnNcblx0Y29uc3QgYWNhZGVtaWNUaXRsZXMgPSBbXCJEci5cIiwgXCJQcm9mLlwiLCBcIlByb2YuIERyLlwiLCBcIkIuQS5cIiwgXCJNQkFcIiwgXCJQaC5ELlwiXTtcblx0YWNhZGVtaWNUaXRsZXMuZm9yRWFjaChmdW5jdGlvbiAoYWNhZGVtaWNUaXRsZSkge1xuXHRcdGZ1bGxOYW1lID0gZnVsbE5hbWUucmVwbGFjZShhY2FkZW1pY1RpdGxlLCBcIlwiKTtcblx0fSk7XG5cblx0bGV0IGluaXRpYWxzOiBzdHJpbmc7XG5cdGNvbnN0IHBhcnRzID0gZnVsbE5hbWUudHJpbVN0YXJ0KCkuc3BsaXQoXCIgXCIpO1xuXG5cdGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG5cdFx0aW5pdGlhbHMgPSAocGFydHM/LnNoaWZ0KCk/LmNoYXJBdCgwKSB8fCBcIlwiKSArIHBhcnRzLnBvcCgpPy5jaGFyQXQoMCk7XG5cdH0gZWxzZSB7XG5cdFx0aW5pdGlhbHMgPSBmdWxsTmFtZS5zdWJzdHJpbmcoMCwgMik7XG5cdH1cblxuXHRyZXR1cm4gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gZ2V0VXNlckNvbG9yKFVzZXJJRDogc3RyaW5nLCBhY3RpdmVVc2VyczogVXNlcltdLCBpbnZpdGVkVXNlcnM6IFVzZXJbXSkge1xuXHQvLyBzZWFyY2ggaWYgdXNlciBpcyBrbm93blxuXHRjb25zdCB1c2VyID0gYWN0aXZlVXNlcnMuZmluZCgodSkgPT4gdS5pZCA9PT0gVXNlcklEKTtcblx0aWYgKHVzZXIpIHtcblx0XHRyZXR1cm4gdXNlci5jb2xvcjtcblx0fSBlbHNlIHtcblx0XHQvLyBzZWFyY2ggZm9yIG5leHQgZnJlZSBjb2xvclxuXHRcdGZvciAobGV0IGkgPSAxOyBpIDw9IDEwOyBpKyspIHtcblx0XHRcdGlmIChhY3RpdmVVc2Vycy5maW5kSW5kZXgoKHUpID0+IHUuY29sb3IgPT09IGkpID09PSAtMSAmJiBpbnZpdGVkVXNlcnMuZmluZEluZGV4KCh1KSA9PiB1LmNvbG9yID09PSBpKSA9PT0gLTEpIHtcblx0XHRcdFx0cmV0dXJuIGk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIHRoaXMgc2VlbXMgdG8gYmUgYSBwb3B1bGFyIG9iamVjdCA6KSBmb3Igbm93IGp1c3QgcmV0dXJuIDEwIGZvciBhbGwuXG5cdFx0Ly8gZm9yIGludml0ZWQgd2Ugc2hvdWxkIHN0YXJ0IGZyb20gMSBhZ2FpbiBzbyB0aGUgY29sb3JzIGFyZSBkaWZmZXJlbnRcblx0XHRyZXR1cm4gMTA7XG5cdH1cbn1cblxuLy8gY29waWVkIGZyb20gQ29tbW9uVXRpbHMuIER1ZSB0byBhIGN5Y2xlIGRlcGVuZGVuY3kgSSBjYW4ndCB1c2UgQ29tbW9uVXRpbHMgaGVyZS5cbi8vIFRoYXQncyB0byBiZSBmaXhlZC4gdGhlIGRpc2NhcmQgcG9wb3ZlciB0aGluZ3kgc2hvdWxkbid0IGJlIGluIHRoZSBjb21tb24gdXRpbHMgYXQgYWxsXG5mdW5jdGlvbiBnZXRBcHBDb21wb25lbnQob0NvbnRyb2w6IGFueSk6IEFwcENvbXBvbmVudCB7XG5cdGlmIChvQ29udHJvbC5pc0EoXCJzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcIikpIHtcblx0XHRyZXR1cm4gb0NvbnRyb2w7XG5cdH1cblx0Y29uc3Qgb093bmVyID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKG9Db250cm9sKTtcblx0aWYgKCFvT3duZXIpIHtcblx0XHRyZXR1cm4gb0NvbnRyb2w7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGdldEFwcENvbXBvbmVudChvT3duZXIpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGdldE1lKHZpZXc6IFZpZXcpOiBVc2VyIHtcblx0Y29uc3Qgc2hlbGxTZXJ2aWNlSGVscGVyID0gZ2V0QXBwQ29tcG9uZW50KHZpZXcpLmdldFNoZWxsU2VydmljZXMoKTtcblx0aWYgKCFzaGVsbFNlcnZpY2VIZWxwZXIgfHwgIXNoZWxsU2VydmljZUhlbHBlci5oYXNVU2hlbGwoKSkge1xuXHRcdHRocm93IFwiTm8gU2hlbGwuLi4gTm8gVXNlclwiO1xuXHR9XG5cdGNvbnN0IG1lOiBVc2VyID0ge1xuXHRcdGluaXRpYWxzOiBzaGVsbFNlcnZpY2VIZWxwZXIuZ2V0VXNlcigpLmdldEluaXRpYWxzKCksXG5cdFx0aWQ6IHNoZWxsU2VydmljZUhlbHBlci5nZXRVc2VyKCkuZ2V0SWQoKSxcblx0XHRuYW1lOiBzaGVsbFNlcnZpY2VIZWxwZXIuZ2V0VXNlcigpLmdldEZ1bGxOYW1lKCkgKyBcIiAoXCIgKyBnZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfWU9VXCIpICsgXCIpXCIsXG5cdFx0aW5pdGlhbE5hbWU6IHNoZWxsU2VydmljZUhlbHBlci5nZXRVc2VyKCkuZ2V0RnVsbE5hbWUoKSxcblx0XHRjb2xvcjogNiwgLy8gIHNhbWUgY29sb3IgYXMgRkxQLi4uXG5cdFx0cm9sZTogUm9sZS5Pd25lcixcblx0XHRtZTogdHJ1ZVxuXHR9O1xuXG5cdHJldHVybiBtZTtcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dCh0ZXh0SWQ6IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuXHRjb25zdCBvUmVzb3VyY2VNb2RlbCA9IChDb3JlIGFzIENvcmVFeCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIik7XG5cdHJldHVybiBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KHRleHRJZCwgYXJncyk7XG59XG5cbmV4cG9ydCBjb25zdCBDb2xsYWJvcmF0aW9uVXRpbHMgPSB7XG5cdGZvcm1hdEluaXRpYWxzOiBmb3JtYXRJbml0aWFscyxcblx0Z2V0VXNlckNvbG9yOiBnZXRVc2VyQ29sb3IsXG5cdGdldE1lOiBnZXRNZSxcblx0Z2V0QXBwQ29tcG9uZW50OiBnZXRBcHBDb21wb25lbnQsXG5cdGdldFRleHQ6IGdldFRleHRcbn07XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25Db21tb24udHMiXSwibmFtZXMiOlsiUm9sZSIsIkFjdGl2aXR5IiwiZm9ybWF0SW5pdGlhbHMiLCJmdWxsTmFtZSIsImFjYWRlbWljVGl0bGVzIiwiZm9yRWFjaCIsImFjYWRlbWljVGl0bGUiLCJyZXBsYWNlIiwiaW5pdGlhbHMiLCJwYXJ0cyIsInRyaW1TdGFydCIsInNwbGl0IiwibGVuZ3RoIiwic2hpZnQiLCJjaGFyQXQiLCJwb3AiLCJzdWJzdHJpbmciLCJ0b1VwcGVyQ2FzZSIsImdldFVzZXJDb2xvciIsIlVzZXJJRCIsImFjdGl2ZVVzZXJzIiwiaW52aXRlZFVzZXJzIiwidXNlciIsImZpbmQiLCJ1IiwiaWQiLCJjb2xvciIsImkiLCJmaW5kSW5kZXgiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29udHJvbCIsImlzQSIsIm9Pd25lciIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwiZ2V0TWUiLCJ2aWV3Iiwic2hlbGxTZXJ2aWNlSGVscGVyIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsImhhc1VTaGVsbCIsIm1lIiwiZ2V0VXNlciIsImdldEluaXRpYWxzIiwiZ2V0SWQiLCJuYW1lIiwiZ2V0RnVsbE5hbWUiLCJnZXRUZXh0IiwiaW5pdGlhbE5hbWUiLCJyb2xlIiwiT3duZXIiLCJ0ZXh0SWQiLCJvUmVzb3VyY2VNb2RlbCIsIkNvcmUiLCJnZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUiLCJhcmdzIiwiQ29sbGFib3JhdGlvblV0aWxzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7TUFtQllBLEk7O2FBQUFBLEk7QUFBQUEsSUFBQUEsSTtBQUFBQSxJQUFBQSxJO0tBQUFBLEksS0FBQUEsSTs7O01BS0FDLFE7O2FBQUFBLFE7QUFBQUEsSUFBQUEsUTtBQUFBQSxJQUFBQSxRO0FBQUFBLElBQUFBLFE7QUFBQUEsSUFBQUEsUTtBQUFBQSxJQUFBQSxRO0FBQUFBLElBQUFBLFE7QUFBQUEsSUFBQUEsUTtB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LElBQUFBLGVBQWUsRUFBRUEsZUFKZ0I7QUFLakNpQixJQUFBQSxPQUFPLEVBQUVBO0FBTHdCLEdBQTNCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIHsgQ29yZUV4IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBVc2VyID0ge1xuXHRpZDogc3RyaW5nO1xuXHRpbml0aWFscz86IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xuXHRyb2xlPzogUm9sZTtcblx0Y29sb3I/OiBudW1iZXI7XG5cdHRyYW5zaWVudD86IGJvb2xlYW47XG5cdG1lPzogYm9vbGVhbjtcblx0aW5pdGlhbE5hbWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVc2VyQWN0aXZpdHkgPSBVc2VyICYge1xuXHRrZXk/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSb2xlIHtcblx0T3duZXIgPSBcIk9cIixcblx0RWRpdCA9IFwiRVwiXG59XG5cbmV4cG9ydCBlbnVtIEFjdGl2aXR5IHtcblx0Sm9pbiA9IFwiSk9JTlwiLFxuXHRKb2luRWNobyA9IFwiSk9JTkVDSE9cIixcblx0TGVhdmUgPSBcIkxFQVZFXCIsXG5cdENoYW5nZSA9IFwiQ0hBTkdFXCIsXG5cdENyZWF0ZSA9IFwiQ1JFQVRFXCIsXG5cdERlbGV0ZSA9IFwiREVMRVRFXCIsXG5cdEFjdGlvbiA9IFwiQUNUSU9OXCIsXG5cdExpdmVDaGFuZ2UgPSBcIkxJVkVDSEFOR0VcIixcblx0QWN0aXZhdGUgPSBcIkFDVElWQVRFXCIsXG5cdERpc2NhcmQgPSBcIkRJU0NBUkRcIixcblx0VW5kbyA9IFwiVU5ET1wiXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG5cdHVzZXJEZXNjcmlwdGlvbjogc3RyaW5nO1xuXHR1c2VySUQ6IHN0cmluZztcblx0dXNlckFjdGlvbjogc3RyaW5nO1xuXHRjbGllbnRBY3Rpb246IHN0cmluZztcblx0Y2xpZW50Q29udGVudDogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gZm9ybWF0SW5pdGlhbHMoZnVsbE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdC8vIHJlbW92ZSB0aXRsZXMgLSB0aG9zZSBhcmUgdGhlIG9uZXMgZnJvbSBTLzQgdG8gYmUgY2hlY2tlZCBpZiB0aGVyZSBhcmUgb3RoZXJzXG5cdGNvbnN0IGFjYWRlbWljVGl0bGVzID0gW1wiRHIuXCIsIFwiUHJvZi5cIiwgXCJQcm9mLiBEci5cIiwgXCJCLkEuXCIsIFwiTUJBXCIsIFwiUGguRC5cIl07XG5cdGFjYWRlbWljVGl0bGVzLmZvckVhY2goZnVuY3Rpb24gKGFjYWRlbWljVGl0bGUpIHtcblx0XHRmdWxsTmFtZSA9IGZ1bGxOYW1lLnJlcGxhY2UoYWNhZGVtaWNUaXRsZSwgXCJcIik7XG5cdH0pO1xuXG5cdGxldCBpbml0aWFsczogc3RyaW5nO1xuXHRjb25zdCBwYXJ0cyA9IGZ1bGxOYW1lLnRyaW1TdGFydCgpLnNwbGl0KFwiIFwiKTtcblxuXHRpZiAocGFydHMubGVuZ3RoID4gMSkge1xuXHRcdGluaXRpYWxzID0gKHBhcnRzPy5zaGlmdCgpPy5jaGFyQXQoMCkgfHwgXCJcIikgKyBwYXJ0cy5wb3AoKT8uY2hhckF0KDApO1xuXHR9IGVsc2Uge1xuXHRcdGluaXRpYWxzID0gZnVsbE5hbWUuc3Vic3RyaW5nKDAsIDIpO1xuXHR9XG5cblx0cmV0dXJuIGluaXRpYWxzLnRvVXBwZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIGdldFVzZXJDb2xvcihVc2VySUQ6IHN0cmluZywgYWN0aXZlVXNlcnM6IFVzZXJbXSwgaW52aXRlZFVzZXJzOiBVc2VyW10pIHtcblx0Ly8gc2VhcmNoIGlmIHVzZXIgaXMga25vd25cblx0Y29uc3QgdXNlciA9IGFjdGl2ZVVzZXJzLmZpbmQoKHUpID0+IHUuaWQgPT09IFVzZXJJRCk7XG5cdGlmICh1c2VyKSB7XG5cdFx0cmV0dXJuIHVzZXIuY29sb3I7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gc2VhcmNoIGZvciBuZXh0IGZyZWUgY29sb3Jcblx0XHRmb3IgKGxldCBpID0gMTsgaSA8PSAxMDsgaSsrKSB7XG5cdFx0XHRpZiAoYWN0aXZlVXNlcnMuZmluZEluZGV4KCh1KSA9PiB1LmNvbG9yID09PSBpKSA9PT0gLTEgJiYgaW52aXRlZFVzZXJzLmZpbmRJbmRleCgodSkgPT4gdS5jb2xvciA9PT0gaSkgPT09IC0xKSB7XG5cdFx0XHRcdHJldHVybiBpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyB0aGlzIHNlZW1zIHRvIGJlIGEgcG9wdWxhciBvYmplY3QgOikgZm9yIG5vdyBqdXN0IHJldHVybiAxMCBmb3IgYWxsLlxuXHRcdC8vIGZvciBpbnZpdGVkIHdlIHNob3VsZCBzdGFydCBmcm9tIDEgYWdhaW4gc28gdGhlIGNvbG9ycyBhcmUgZGlmZmVyZW50XG5cdFx0cmV0dXJuIDEwO1xuXHR9XG59XG5cbi8vIGNvcGllZCBmcm9tIENvbW1vblV0aWxzLiBEdWUgdG8gYSBjeWNsZSBkZXBlbmRlbmN5IEkgY2FuJ3QgdXNlIENvbW1vblV0aWxzIGhlcmUuXG4vLyBUaGF0J3MgdG8gYmUgZml4ZWQuIHRoZSBkaXNjYXJkIHBvcG92ZXIgdGhpbmd5IHNob3VsZG4ndCBiZSBpbiB0aGUgY29tbW9uIHV0aWxzIGF0IGFsbFxuZnVuY3Rpb24gZ2V0QXBwQ29tcG9uZW50KG9Db250cm9sOiBhbnkpOiBBcHBDb21wb25lbnQge1xuXHRpZiAob0NvbnRyb2wuaXNBKFwic2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XCIpKSB7XG5cdFx0cmV0dXJuIG9Db250cm9sO1xuXHR9XG5cdGNvbnN0IG9Pd25lciA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihvQ29udHJvbCk7XG5cdGlmICghb093bmVyKSB7XG5cdFx0cmV0dXJuIG9Db250cm9sO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBnZXRBcHBDb21wb25lbnQob093bmVyKTtcblx0fVxufVxuXG5mdW5jdGlvbiBnZXRNZSh2aWV3OiBWaWV3KTogVXNlciB7XG5cdGNvbnN0IHNoZWxsU2VydmljZUhlbHBlciA9IGdldEFwcENvbXBvbmVudCh2aWV3KS5nZXRTaGVsbFNlcnZpY2VzKCk7XG5cdGlmICghc2hlbGxTZXJ2aWNlSGVscGVyIHx8ICFzaGVsbFNlcnZpY2VIZWxwZXIuaGFzVVNoZWxsKCkpIHtcblx0XHR0aHJvdyBcIk5vIFNoZWxsLi4uIE5vIFVzZXJcIjtcblx0fVxuXHRjb25zdCBtZTogVXNlciA9IHtcblx0XHRpbml0aWFsczogc2hlbGxTZXJ2aWNlSGVscGVyLmdldFVzZXIoKS5nZXRJbml0aWFscygpLFxuXHRcdGlkOiBzaGVsbFNlcnZpY2VIZWxwZXIuZ2V0VXNlcigpLmdldElkKCksXG5cdFx0bmFtZTogYCR7c2hlbGxTZXJ2aWNlSGVscGVyLmdldFVzZXIoKS5nZXRGdWxsTmFtZSgpfSAoJHtnZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfWU9VXCIpfSlgLFxuXHRcdGluaXRpYWxOYW1lOiBzaGVsbFNlcnZpY2VIZWxwZXIuZ2V0VXNlcigpLmdldEZ1bGxOYW1lKCksXG5cdFx0Y29sb3I6IDYsIC8vICBzYW1lIGNvbG9yIGFzIEZMUC4uLlxuXHRcdHJvbGU6IFJvbGUuT3duZXIsXG5cdFx0bWU6IHRydWVcblx0fTtcblxuXHRyZXR1cm4gbWU7XG59XG5cbmZ1bmN0aW9uIGdldFRleHQodGV4dElkOiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nIHtcblx0Y29uc3Qgb1Jlc291cmNlTW9kZWwgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpO1xuXHRyZXR1cm4gb1Jlc291cmNlTW9kZWwuZ2V0VGV4dCh0ZXh0SWQsIGFyZ3MpO1xufVxuXG5leHBvcnQgY29uc3QgQ29sbGFib3JhdGlvblV0aWxzID0ge1xuXHRmb3JtYXRJbml0aWFsczogZm9ybWF0SW5pdGlhbHMsXG5cdGdldFVzZXJDb2xvcjogZ2V0VXNlckNvbG9yLFxuXHRnZXRNZTogZ2V0TWUsXG5cdGdldEFwcENvbXBvbmVudDogZ2V0QXBwQ29tcG9uZW50LFxuXHRnZXRUZXh0OiBnZXRUZXh0XG59O1xuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import AppComponent from "sap/fe/core/AppComponent";
|
|
1
|
+
import type AppComponent from "sap/fe/core/AppComponent";
|
|
2
2
|
import Component from "sap/ui/core/Component";
|
|
3
3
|
import Core from "sap/ui/core/Core";
|
|
4
|
-
import View from "sap/ui/core/mvc/View";
|
|
5
|
-
import { CoreEx } from "../../../../../../../../types/extension_types";
|
|
4
|
+
import type View from "sap/ui/core/mvc/View";
|
|
5
|
+
import type { CoreEx } from "../../../../../../../../types/extension_types";
|
|
6
6
|
|
|
7
7
|
export type User = {
|
|
8
8
|
id: string;
|
|
@@ -105,7 +105,7 @@ function getMe(view: View): User {
|
|
|
105
105
|
const me: User = {
|
|
106
106
|
initials: shellServiceHelper.getUser().getInitials(),
|
|
107
107
|
id: shellServiceHelper.getUser().getId(),
|
|
108
|
-
name: shellServiceHelper.getUser().getFullName()
|
|
108
|
+
name: `${shellServiceHelper.getUser().getFullName()} (${getText("C_COLLABORATIONDRAFT_YOU")})`,
|
|
109
109
|
initialName: shellServiceHelper.getUser().getFullName(),
|
|
110
110
|
color: 6, // same color as FLP...
|
|
111
111
|
role: Role.Owner,
|
|
@@ -10,12 +10,12 @@ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationComm
|
|
|
10
10
|
|
|
11
11
|
var createUserDetailsPopover = function (view) {
|
|
12
12
|
try {
|
|
13
|
-
var
|
|
13
|
+
var popoverPromise = Fragment.load({
|
|
14
14
|
id: "manageCollaborationDraft",
|
|
15
15
|
// todo should be view id
|
|
16
16
|
name: "sap.fe.core.controllerextensions.collaboration.UserDetails"
|
|
17
17
|
});
|
|
18
|
-
return Promise.resolve(
|
|
18
|
+
return Promise.resolve(popoverPromise.then(function (popover) {
|
|
19
19
|
view.addDependent(popover);
|
|
20
20
|
return popover;
|
|
21
21
|
}).catch(function () {
|
|
@@ -126,7 +126,7 @@ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationComm
|
|
|
126
126
|
var isMe = (me === null || me === void 0 ? void 0 : me.id) === userData.UserID;
|
|
127
127
|
var userDescription = userData.UserDescription || userData.UserID;
|
|
128
128
|
var initials = CollaborationUtils.formatInitials(userDescription);
|
|
129
|
-
userDescription += isMe ? " ("
|
|
129
|
+
userDescription += isMe ? " (".concat(CollaborationUtils.getText("C_COLLABORATIONDRAFT_YOU"), ")") : "";
|
|
130
130
|
var user = {
|
|
131
131
|
id: userData.UserID,
|
|
132
132
|
name: userDescription,
|
|
@@ -161,11 +161,9 @@ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationComm
|
|
|
161
161
|
role: internalModelContext.getProperty("UserRole")
|
|
162
162
|
};
|
|
163
163
|
|
|
164
|
-
if (invitedUsers.findIndex(function (user) {
|
|
164
|
+
if (!(invitedUsers.findIndex(function (user) {
|
|
165
165
|
return user.id === newUser.id;
|
|
166
|
-
}) > -1 || newUser.id === newUser.name && newUser.id === "") {
|
|
167
|
-
return;
|
|
168
|
-
} else {
|
|
166
|
+
}) > -1 || newUser.id === newUser.name && newUser.id === "")) {
|
|
169
167
|
newUser.name = newUser.name || newUser.id;
|
|
170
168
|
newUser.initials = CollaborationUtils.formatInitials(newUser.name);
|
|
171
169
|
newUser.color = CollaborationUtils.getUserColor(newUser.id, activeUsers, invitedUsers);
|
|
@@ -220,7 +218,7 @@ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationComm
|
|
|
220
218
|
}
|
|
221
219
|
|
|
222
220
|
function byId(id) {
|
|
223
|
-
return Core.byId("manageCollaborationDraft--"
|
|
221
|
+
return Core.byId("manageCollaborationDraft--".concat(id));
|
|
224
222
|
}
|
|
225
223
|
|
|
226
224
|
function closeDialog() {
|
|
@@ -261,4 +259,4 @@ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationComm
|
|
|
261
259
|
|
|
262
260
|
return _exports;
|
|
263
261
|
}, false);
|
|
264
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hbmFnZS50cyJdLCJuYW1lcyI6WyJjcmVhdGVVc2VyRGV0YWlsc1BvcG92ZXIiLCJ2aWV3IiwicG9wb3ZlciIsIkZyYWdtZW50IiwibG9hZCIsImlkIiwibmFtZSIsInRoZW4iLCJhZGREZXBlbmRlbnQiLCJjYXRjaCIsInNob3dVc2VyRGV0YWlscyIsImV2ZW50Iiwic2V0QmluZGluZ0NvbnRleHQiLCJzb3VyY2UiLCJnZXRCaW5kaW5nQ29udGV4dCIsIm9wZW5CeSIsImdldFNvdXJjZSIsImJ5SWQiLCJjcmVhdGVNYW5hZ2VDb2xsYWJvcmF0aW9uRGlhbG9nIiwicERpYWxvZyIsImdldENvbnRyb2xsZXIiLCJnZXRFeHRlbnNpb25BUEkiLCJsb2FkRnJhZ21lbnQiLCJjb250cm9sbGVyIiwic2hhcmUiLCJhZGRVc2VyIiwicmVtb3ZlVXNlciIsInJlbW92ZVNlbGVjdGVkVXNlcnMiLCJ0YWJsZVNlbGVjdGlvbkNoYW5nZSIsImNsb3NlIiwiY2xvc2VEaWFsb2ciLCJhZGRVc2VyQ2hhbmdlZCIsImRpYWxvZyIsIm9wZW5NYW5hZ2VEaWFsb2ciLCJyZWFkSW52aXRlZFVzZXJzIiwic2V0UHJvcGVydHkiLCJvcGVuIiwibW9kZWwiLCJnZXRNb2RlbCIsInBhcmFtZXRlcnMiLCIkc2VsZWN0IiwiaW52aXRlZFVzZXJMaXN0IiwiYmluZExpc3QiLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsInJlcXVlc3RDb250ZXh0cyIsImFDb250ZXh0cyIsImludml0ZWRVc2VycyIsImFjdGl2ZVVzZXJzIiwiZ2V0UHJvcGVydHkiLCJtZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldE1lIiwibGVuZ3RoIiwiZm9yRWFjaCIsIm9Db250ZXh0IiwidXNlckRhdGEiLCJnZXRPYmplY3QiLCJpc01lIiwiVXNlcklEIiwidXNlckRlc2NyaXB0aW9uIiwiVXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImdldFRleHQiLCJ1c2VyIiwicm9sZSIsIlVzZXJBY2Nlc3NSb2xlIiwiY29sb3IiLCJnZXRVc2VyQ29sb3IiLCJwdXNoIiwiYWRkQnV0dG9uIiwibmV3VXNlciIsImZpbmRJbmRleCIsInVuc2hpZnQiLCJ1c2VySW5wdXQiLCJnZXRQYXJhbWV0ZXIiLCJuZXdVc2VySWQiLCJzZXRWYWx1ZVN0YXRlIiwic2V0VmFsdWVTdGF0ZVRleHQiLCJyZW1vdmVVc2VyRnJvbUxpc3QiLCJ1c2VyTGlzdCIsInNlbGVjdGVkSXRlbXMiLCJnZXRTZWxlY3RlZEl0ZW1zIiwiaXRlbSIsInJlbW92ZVNlbGVjdGlvbnMiLCJkZWxldGVVc2VySUQiLCJmaWx0ZXIiLCJDb3JlIiwidGFibGUiLCJvbmVVc2VyU2VsZWN0ZWQiLCJ1c2VycyIsImJpbmRpbmdDb250ZXh0Iiwib01ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImNvbnRleHRzIiwiZ2V0QmluZGluZyIsImdldENvbnRleHRzIiwiY29udGV4dCIsInNFbnRpdHlTZXQiLCJnZXRNZXRhUGF0aCIsInNoYXJlQWN0aW9uTmFtZSIsInNoYXJlQWN0aW9uIiwiYmluZENvbnRleHQiLCJzZXRQYXJhbWV0ZXIiLCJleGVjdXRlIiwiTWVzc2FnZVRvYXN0Iiwic2hvdyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztNQXNPZUEsd0IsYUFBeUJDLEk7UUFBWTtBQUNuRCxVQUFNQyxPQUFxQixHQUFHQyxRQUFRLENBQUNDLElBQVQsQ0FBYztBQUMzQ0MsUUFBQUEsRUFBRSxFQUFFLDBCQUR1QztBQUNYO0FBQ2hDQyxRQUFBQSxJQUFJLEVBQUU7QUFGcUMsT0FBZCxDQUE5QjtBQUlBLDZCQUFPSixPQUFPLENBQ1pLLElBREssQ0FDQSxVQUFVTCxPQUFWLEVBQXdCO0FBQzdCRCxRQUFBQSxJQUFJLENBQUNPLFlBQUwsQ0FBa0JOLE9BQWxCO0FBQ0EsZUFBT0EsT0FBUDtBQUNBLE9BSkssRUFLTE8sS0FMSyxDQUtDLFlBQVk7QUFDbEIsY0FBTSxlQUFOO0FBQ0EsT0FQSyxDQUFQO0FBUUEsSzs7Ozs7TUF6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RixHQUVFakcsSUFGRixDQUVPLFlBQVk7QUFDakJrRyxNQUFBQSxZQUFZLENBQUNDLElBQWIsQ0FBa0IsY0FBbEI7QUFDQSxLQUpGLEVBS0VqRyxLQUxGLENBS1EsWUFBWTtBQUNsQmdHLE1BQUFBLFlBQVksQ0FBQ0MsSUFBYixDQUFrQiw0Q0FBbEI7QUFDQSxLQVBGO0FBU0E1RSxJQUFBQSxXQUFXO0FBQ1giLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxhYm9yYXRpb25VdGlscywgVXNlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcInNhcC9tL0RpYWxvZ1wiO1xuaW1wb3J0IElucHV0IGZyb20gXCJzYXAvbS9JbnB1dFwiO1xuaW1wb3J0IE1lc3NhZ2VUb2FzdCBmcm9tIFwic2FwL20vTWVzc2FnZVRvYXN0XCI7XG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IFRhYmxlIGZyb20gXCJzYXAvbS9UYWJsZVwiO1xuaW1wb3J0IEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcblxuZXhwb3J0IGNvbnN0IG9wZW5NYW5hZ2VEaWFsb2cgPSBhc3luYyBmdW5jdGlvbiAodmlldzogVmlldykge1xuXHRsZXQgZGlhbG9nOiBhbnkgPSBieUlkKFwiZGlhbG9nXCIpO1xuXG5cdGlmICghZGlhbG9nKSB7XG5cdFx0ZGlhbG9nID0gYXdhaXQgY3JlYXRlTWFuYWdlQ29sbGFib3JhdGlvbkRpYWxvZyh2aWV3KTtcblx0fVxuXG5cdHJlYWRJbnZpdGVkVXNlcnModmlldyk7XG5cblx0ZGlhbG9nLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikuc2V0UHJvcGVydHkoXCJ1c2VyU2VsZWN0ZWRcIiwgZmFsc2UpO1xuXHRkaWFsb2cub3BlbigpO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlTWFuYWdlQ29sbGFib3JhdGlvbkRpYWxvZyh2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IHBEaWFsb2c6IFByb21pc2U8YW55PiA9ICh2aWV3LmdldENvbnRyb2xsZXIoKSBhcyBhbnkpLmdldEV4dGVuc2lvbkFQSSgpLmxvYWRGcmFnbWVudCh7XG5cdFx0bmFtZTogXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy5jb2xsYWJvcmF0aW9uLk1hbmFnZURpYWxvZ1wiLFxuXHRcdGlkOiBcIm1hbmFnZUNvbGxhYm9yYXRpb25EcmFmdFwiLFxuXHRcdGNvbnRyb2xsZXI6IHtcblx0XHRcdHNoYXJlOiBzaGFyZSxcblx0XHRcdGFkZFVzZXI6IGFkZFVzZXIsXG5cdFx0XHRyZW1vdmVVc2VyOiByZW1vdmVVc2VyLFxuXHRcdFx0cmVtb3ZlU2VsZWN0ZWRVc2VyczogcmVtb3ZlU2VsZWN0ZWRVc2Vycyxcblx0XHRcdHRhYmxlU2VsZWN0aW9uQ2hhbmdlOiB0YWJsZVNlbGVjdGlvbkNoYW5nZSxcblx0XHRcdGNsb3NlOiBjbG9zZURpYWxvZyxcblx0XHRcdGFkZFVzZXJDaGFuZ2VkOiBhZGRVc2VyQ2hhbmdlZFxuXHRcdH1cblx0fSk7XG5cdHJldHVybiBwRGlhbG9nXG5cdFx0LnRoZW4oZnVuY3Rpb24gKGRpYWxvZzogYW55KSB7XG5cdFx0XHR2aWV3LmFkZERlcGVuZGVudChkaWFsb2cpO1xuXHRcdFx0cmV0dXJuIGRpYWxvZztcblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHR0aHJvdyBcIm5vdCB0aGlzIHRpbWVcIjtcblx0XHR9KTtcbn1cblxuZnVuY3Rpb24gcmVhZEludml0ZWRVc2Vycyh2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IG1vZGVsID0gdmlldy5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdC8vIFRPRE86IGluZm9ybSBtb2RlbCBjb2xsZWFndWVzIG9uIG1pc3NpbmcgVFMgZGVmaW5pdGlvblxuXHRjb25zdCBwYXJhbWV0ZXJzOiBhbnkgPSB7XG5cdFx0JHNlbGVjdDogXCJVc2VySUQsVXNlckRlc2NyaXB0aW9uLFVzZXJBY2Nlc3NSb2xlLFVzZXJBY2Nlc3NSb2xlRGVzY3JpcHRpb25cIlxuXHR9O1xuXHRjb25zdCBpbnZpdGVkVXNlckxpc3QgPSBtb2RlbC5iaW5kTGlzdChcblx0XHRcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0QWRtaW5pc3RyYXRpdmVVc2VyXCIsXG5cdFx0dmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQsXG5cdFx0W10sXG5cdFx0W10sXG5cdFx0cGFyYW1ldGVyc1xuXHQpO1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblxuXHQvLyBUT0RPOiBsaW1pdD9cblx0aW52aXRlZFVzZXJMaXN0XG5cdFx0LnJlcXVlc3RDb250ZXh0cygwLCAxMDApXG5cdFx0LnRoZW4oZnVuY3Rpb24gKGFDb250ZXh0cykge1xuXHRcdFx0Ly8gdG9kbzogY29udmVydCB0byBVc2VyIHR5cGUgKGFsc28gY2hhbmdlIFhNTCBldGMuKVxuXHRcdFx0Y29uc3QgaW52aXRlZFVzZXJzOiBVc2VyW10gPSBbXTtcblx0XHRcdGNvbnN0IGFjdGl2ZVVzZXJzID0gdmlldy5nZXRNb2RlbChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiL2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIikgfHwgW107XG5cdFx0XHRjb25zdCBtZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRNZSh2aWV3KTtcblx0XHRcdGlmIChhQ29udGV4dHM/Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0YUNvbnRleHRzLmZvckVhY2goZnVuY3Rpb24gKG9Db250ZXh0KSB7XG5cdFx0XHRcdFx0Ly8gVE9ETzogY3JlYXRlIGFsc28gdHlwZSBmb3IgdGhpcyBmcmllbmRcblx0XHRcdFx0XHRjb25zdCB1c2VyRGF0YSA9IG9Db250ZXh0LmdldE9iamVjdCgpO1xuXHRcdFx0XHRcdGNvbnN0IGlzTWU6IGJvb2xlYW4gPSBtZT8uaWQgPT09IHVzZXJEYXRhLlVzZXJJRDtcblx0XHRcdFx0XHRsZXQgdXNlckRlc2NyaXB0aW9uID0gdXNlckRhdGEuVXNlckRlc2NyaXB0aW9uIHx8IHVzZXJEYXRhLlVzZXJJRDtcblx0XHRcdFx0XHRjb25zdCBpbml0aWFscyA9IENvbGxhYm9yYXRpb25VdGlscy5mb3JtYXRJbml0aWFscyh1c2VyRGVzY3JpcHRpb24pO1xuXHRcdFx0XHRcdHVzZXJEZXNjcmlwdGlvbiArPSBpc01lID8gXCIgKFwiICsgQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ZT1VcIikgKyBcIilcIiA6IFwiXCI7XG5cblx0XHRcdFx0XHRjb25zdCB1c2VyOiBVc2VyID0ge1xuXHRcdFx0XHRcdFx0aWQ6IHVzZXJEYXRhLlVzZXJJRCxcblx0XHRcdFx0XHRcdG5hbWU6IHVzZXJEZXNjcmlwdGlvbixcblx0XHRcdFx0XHRcdHJvbGU6IHVzZXJEYXRhLlVzZXJBY2Nlc3NSb2xlLFxuXHRcdFx0XHRcdFx0Y29sb3I6IENvbGxhYm9yYXRpb25VdGlscy5nZXRVc2VyQ29sb3IodXNlckRhdGEuVXNlcklELCBhY3RpdmVVc2VycywgaW52aXRlZFVzZXJzKSxcblx0XHRcdFx0XHRcdGluaXRpYWxzOiBpbml0aWFscyxcblx0XHRcdFx0XHRcdG1lOiBpc01lXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRpbnZpdGVkVXNlcnMucHVzaCh1c2VyKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBub3QgeWV0IHNoYXJlZCwganVzdCBhZGQgbWVcblx0XHRcdFx0aW52aXRlZFVzZXJzLnB1c2gobWUpO1xuXHRcdFx0fVxuXG5cdFx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vaW52aXRlZFVzZXJzXCIsIGludml0ZWRVc2Vycyk7XG5cdFx0fSlcblx0XHQuY2F0Y2goZnVuY3Rpb24gKCkge1xuXHRcdFx0Ly8gVE9ETzogaGFuZGxlIHRoaXMgY2FzZSwgY2xvc2UgZGlhbG9nP1xuXHRcdH0pO1xuXHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vVXNlcklEXCIsIFwiXCIpO1xuXHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vVXNlclJvbGVcIiwgXCJPXCIpO1xuXHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vVXNlckRlc2NyaXB0aW9uXCIsIFwiXCIpO1xufVxuXG5mdW5jdGlvbiBhZGRVc2VyKGV2ZW50OiBhbnkpIHtcblx0Y29uc3QgYWRkQnV0dG9uID0gZXZlbnQuZ2V0U291cmNlKCk7XG5cdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gYWRkQnV0dG9uLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik7XG5cdGNvbnN0IGludml0ZWRVc2VyczogVXNlcltdID0gaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJpbnZpdGVkVXNlcnNcIikgfHwgW107XG5cdGNvbnN0IGFjdGl2ZVVzZXJzID0gYWRkQnV0dG9uLmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiKTtcblx0Y29uc3QgbmV3VXNlcjogVXNlciA9IHtcblx0XHRpZDogaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJVc2VySURcIiksXG5cdFx0bmFtZTogaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJVc2VyRGVzY3JpcHRpb25cIiksXG5cdFx0cm9sZTogaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJVc2VyUm9sZVwiKVxuXHR9O1xuXG5cdGlmIChpbnZpdGVkVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBuZXdVc2VyLmlkKSA+IC0xIHx8IChuZXdVc2VyLmlkID09PSBuZXdVc2VyLm5hbWUgJiYgbmV3VXNlci5pZCA9PT0gXCJcIikpIHtcblx0XHRyZXR1cm47XG5cdH0gZWxzZSB7XG5cdFx0bmV3VXNlci5uYW1lID0gbmV3VXNlci5uYW1lIHx8IG5ld1VzZXIuaWQ7XG5cdFx0bmV3VXNlci5pbml0aWFscyA9IENvbGxhYm9yYXRpb25VdGlscy5mb3JtYXRJbml0aWFscyhuZXdVc2VyLm5hbWUpO1xuXHRcdG5ld1VzZXIuY29sb3IgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VXNlckNvbG9yKG5ld1VzZXIuaWQsIGFjdGl2ZVVzZXJzLCBpbnZpdGVkVXNlcnMpO1xuXHRcdGludml0ZWRVc2Vycy51bnNoaWZ0KG5ld1VzZXIpO1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiaW52aXRlZFVzZXJzXCIsIGludml0ZWRVc2Vycyk7XG5cdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJVc2VySURcIiwgXCJcIik7XG5cdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJVc2VyRGVzY3JpcHRpb25cIiwgXCJcIik7XG5cdH1cbn1cblxuZnVuY3Rpb24gYWRkVXNlckNoYW5nZWQoZXZlbnQ6IEV2ZW50KSB7XG5cdGNvbnN0IHVzZXJJbnB1dCA9IGV2ZW50LmdldFNvdXJjZSgpIGFzIElucHV0O1xuXHRldmVudFxuXHRcdC5nZXRQYXJhbWV0ZXIoXCJwcm9taXNlXCIpXG5cdFx0LnRoZW4oZnVuY3Rpb24gKG5ld1VzZXJJZDogc3RyaW5nKSB7XG5cdFx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHVzZXJJbnB1dC5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0Y29uc3QgaW52aXRlZFVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImludml0ZWRVc2Vyc1wiKSB8fCBbXTtcblx0XHRcdGlmIChpbnZpdGVkVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBuZXdVc2VySWQpID4gLTEpIHtcblx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGUoXCJFcnJvclwiKTtcblx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGVUZXh0KFwiVXNlciBpcyBhbHJlYWR5IGluIHRoZSBsaXN0IG9mIGludml0ZWQgdXNlcnNcIik7IC8vIFRPRE86IGkxOG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHVzZXJJbnB1dC5zZXRWYWx1ZVN0YXRlKFwiTm9uZVwiKTtcblx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGVUZXh0KFwiXCIpO1xuXHRcdFx0fVxuXHRcdH0pXG5cdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdHRocm93IFwiVXNlciBjb3VsZG4ndCBiZSBkZXRlcm1pbmVkIGF0IGFsbFwiO1xuXHRcdH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVVc2VyKGV2ZW50OiBFdmVudCkge1xuXHRyZW1vdmVVc2VyRnJvbUxpc3QoZXZlbnQuZ2V0U291cmNlKCkpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTZWxlY3RlZFVzZXJzKCkge1xuXHRjb25zdCB1c2VyTGlzdCA9IGJ5SWQoXCJ1c2VyTGlzdFwiKSBhcyBUYWJsZTtcblx0Y29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHVzZXJMaXN0LmdldFNlbGVjdGVkSXRlbXMoKSBhcyBhbnlbXTtcblx0c2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtOiBVc2VyKSB7XG5cdFx0cmVtb3ZlVXNlckZyb21MaXN0KGl0ZW0pO1xuXHR9KTtcblx0dXNlckxpc3QucmVtb3ZlU2VsZWN0aW9ucyhmYWxzZSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVVzZXJGcm9tTGlzdChpdGVtOiBhbnkpIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSBpdGVtLmdldEJpbmRpbmdDb250ZXh0KFwicGFnZUludGVybmFsXCIpO1xuXHRjb25zdCBkZWxldGVVc2VySUQgPSBpdGVtLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCJpZFwiKTtcblx0bGV0IGludml0ZWRVc2VyczogVXNlcltdID0gaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2ludml0ZWRVc2Vyc1wiKTtcblx0aW52aXRlZFVzZXJzID0gaW52aXRlZFVzZXJzLmZpbHRlcigodXNlcikgPT4gdXNlci5pZCAhPT0gZGVsZXRlVXNlcklEKTtcblx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2ludml0ZWRVc2Vyc1wiLCBpbnZpdGVkVXNlcnMpO1xufVxuXG5mdW5jdGlvbiBieUlkKGlkOiBzdHJpbmcpOiBhbnkge1xuXHRyZXR1cm4gQ29yZS5ieUlkKFwibWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0LS1cIiArIGlkKTtcbn1cblxuZnVuY3Rpb24gY2xvc2VEaWFsb2coKSB7XG5cdChieUlkKFwiZGlhbG9nXCIpIGFzIERpYWxvZykuY2xvc2UoKTtcbn1cblxuZnVuY3Rpb24gdGFibGVTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG5cdGNvbnN0IHRhYmxlID0gZXZlbnQuZ2V0U291cmNlKCkgYXMgVGFibGU7XG5cdGNvbnN0IG9uZVVzZXJTZWxlY3RlZCA9IHRhYmxlLmdldFNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwO1xuXG5cdCh0YWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0KS5zZXRQcm9wZXJ0eShcInVzZXJTZWxlY3RlZFwiLCBvbmVVc2VyU2VsZWN0ZWQpO1xufVxuXG5mdW5jdGlvbiBzaGFyZShldmVudDogRXZlbnQpIHtcblx0Y29uc3QgdXNlcnM6IGFueVtdID0gW107IC8vIFRPRE86IGNyZWF0ZSBEcmFmdEFkbWluVXNlclR5cGVcblx0Y29uc3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCkgYXMgQ29udHJvbDtcblx0Y29uc3QgbW9kZWwgPSBzb3VyY2UuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRjb25zdCBiaW5kaW5nQ29udGV4dCA9IHNvdXJjZS5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdGNvbnN0IG9NZXRhTW9kZWwgPSBtb2RlbC5nZXRNZXRhTW9kZWwoKTtcblx0Y29uc3QgY29udGV4dHMgPSAoKGJ5SWQoXCJ1c2VyTGlzdFwiKSBhcyBUYWJsZSkuZ2V0QmluZGluZyhcIml0ZW1zXCIpIGFzIE9EYXRhTGlzdEJpbmRpbmcpLmdldENvbnRleHRzKCk7XG5cblx0Y29udGV4dHMuZm9yRWFjaChmdW5jdGlvbiAoY29udGV4dDogYW55KSB7XG5cdFx0dXNlcnMucHVzaCh7XG5cdFx0XHRVc2VySUQ6IGNvbnRleHQuZ2V0UHJvcGVydHkoXCJpZFwiKSxcblx0XHRcdFVzZXJBY2Nlc3NSb2xlOiBjb250ZXh0LmdldFByb3BlcnR5KFwicm9sZVwiKVxuXHRcdH0pO1xuXHR9KTtcblx0Y29uc3Qgc0VudGl0eVNldCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpLmdldE1ldGFQYXRoKGJpbmRpbmdDb250ZXh0IGFzIGFueSk7XG5cdGNvbnN0IHNoYXJlQWN0aW9uTmFtZSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NFbnRpdHlTZXR9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3QvU2hhcmVBY3Rpb25gKTtcblx0Y29uc3Qgc2hhcmVBY3Rpb24gPSBtb2RlbC5iaW5kQ29udGV4dChgJHtzaGFyZUFjdGlvbk5hbWV9KC4uLilgLCBiaW5kaW5nQ29udGV4dCk7XG5cdHNoYXJlQWN0aW9uLnNldFBhcmFtZXRlcihcIlVzZXJzXCIsIHVzZXJzKTtcblx0c2hhcmVBY3Rpb25cblx0XHQuZXhlY3V0ZSgpXG5cdFx0LnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0TWVzc2FnZVRvYXN0LnNob3coXCJVc2VyIGludml0ZWRcIik7XG5cdFx0fSlcblx0XHQuY2F0Y2goZnVuY3Rpb24gKCkge1xuXHRcdFx0TWVzc2FnZVRvYXN0LnNob3coXCJJbnZpdGF0aW9uIGZhaWxlZCBkdWUgdG8gdGVjaG5pY2FsIHJlYXNvbnNcIik7XG5cdFx0fSk7XG5cblx0Y2xvc2VEaWFsb2coKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dVc2VyRGV0YWlscyhldmVudDogRXZlbnQsIHZpZXc6IFZpZXcpIHtcblx0Y29uc3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCkgYXMgQ29udHJvbDtcblx0bGV0IHBvcG92ZXIgPSBieUlkKFwidXNlckRldGFpbHNcIikgYXMgUG9wb3Zlcjtcblx0aWYgKCFwb3BvdmVyKSB7XG5cdFx0cG9wb3ZlciA9IGF3YWl0IGNyZWF0ZVVzZXJEZXRhaWxzUG9wb3Zlcih2aWV3KTtcblx0fVxuXG5cdHBvcG92ZXIuc2V0QmluZGluZ0NvbnRleHQoc291cmNlLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQsIFwiaW50ZXJuYWxcIik7XG5cblx0cG9wb3Zlci5vcGVuQnkoc291cmNlLCBmYWxzZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVVzZXJEZXRhaWxzUG9wb3Zlcih2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IHBvcG92ZXI6IFByb21pc2U8YW55PiA9IEZyYWdtZW50LmxvYWQoe1xuXHRcdGlkOiBcIm1hbmFnZUNvbGxhYm9yYXRpb25EcmFmdFwiLCAvLyB0b2RvIHNob3VsZCBiZSB2aWV3IGlkXG5cdFx0bmFtZTogXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy5jb2xsYWJvcmF0aW9uLlVzZXJEZXRhaWxzXCJcblx0fSk7XG5cdHJldHVybiBwb3BvdmVyXG5cdFx0LnRoZW4oZnVuY3Rpb24gKHBvcG92ZXI6IGFueSkge1xuXHRcdFx0dmlldy5hZGREZXBlbmRlbnQocG9wb3Zlcik7XG5cdFx0XHRyZXR1cm4gcG9wb3Zlcjtcblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHR0aHJvdyBcIm5vdCB0aGlzIHRpbWVcIjtcblx0XHR9KTtcbn1cbiJdfQ==
|
|
262
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hbmFnZS50cyJdLCJuYW1lcyI6WyJjcmVhdGVVc2VyRGV0YWlsc1BvcG92ZXIiLCJ2aWV3IiwicG9wb3ZlclByb21pc2UiLCJGcmFnbWVudCIsImxvYWQiLCJpZCIsIm5hbWUiLCJ0aGVuIiwicG9wb3ZlciIsImFkZERlcGVuZGVudCIsImNhdGNoIiwic2hvd1VzZXJEZXRhaWxzIiwiZXZlbnQiLCJzZXRCaW5kaW5nQ29udGV4dCIsInNvdXJjZSIsImdldEJpbmRpbmdDb250ZXh0Iiwib3BlbkJ5IiwiZ2V0U291cmNlIiwiYnlJZCIsImNyZWF0ZU1hbmFnZUNvbGxhYm9yYXRpb25EaWFsb2ciLCJwRGlhbG9nIiwiZ2V0Q29udHJvbGxlciIsImdldEV4dGVuc2lvbkFQSSIsImxvYWRGcmFnbWVudCIsImNvbnRyb2xsZXIiLCJzaGFyZSIsImFkZFVzZXIiLCJyZW1vdmVVc2VyIiwicmVtb3ZlU2VsZWN0ZWRVc2VycyIsInRhYmxlU2VsZWN0aW9uQ2hhbmdlIiwiY2xvc2UiLCJjbG9zZURpYWxvZyIsImFkZFVzZXJDaGFuZ2VkIiwiZGlhbG9nIiwib3Blbk1hbmFnZURpYWxvZyIsInJlYWRJbnZpdGVkVXNlcnMiLCJzZXRQcm9wZXJ0eSIsIm9wZW4iLCJtb2RlbCIsImdldE1vZGVsIiwicGFyYW1ldGVycyIsIiRzZWxlY3QiLCJpbnZpdGVkVXNlckxpc3QiLCJiaW5kTGlzdCIsImludGVybmFsTW9kZWxDb250ZXh0IiwicmVxdWVzdENvbnRleHRzIiwiYUNvbnRleHRzIiwiaW52aXRlZFVzZXJzIiwiYWN0aXZlVXNlcnMiLCJnZXRQcm9wZXJ0eSIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJsZW5ndGgiLCJmb3JFYWNoIiwib0NvbnRleHQiLCJ1c2VyRGF0YSIsImdldE9iamVjdCIsImlzTWUiLCJVc2VySUQiLCJ1c2VyRGVzY3JpcHRpb24iLCJVc2VyRGVzY3JpcHRpb24iLCJpbml0aWFscyIsImZvcm1hdEluaXRpYWxzIiwiZ2V0VGV4dCIsInVzZXIiLCJyb2xlIiwiVXNlckFjY2Vzc1JvbGUiLCJjb2xvciIsImdldFVzZXJDb2xvciIsInB1c2giLCJhZGRCdXR0b24iLCJuZXdVc2VyIiwiZmluZEluZGV4IiwidW5zaGlmdCIsInVzZXJJbnB1dCIsImdldFBhcmFtZXRlciIsIm5ld1VzZXJJZCIsInNldFZhbHVlU3RhdGUiLCJzZXRWYWx1ZVN0YXRlVGV4dCIsInJlbW92ZVVzZXJGcm9tTGlzdCIsInVzZXJMaXN0Iiwic2VsZWN0ZWRJdGVtcyIsImdldFNlbGVjdGVkSXRlbXMiLCJpdGVtIiwicmVtb3ZlU2VsZWN0aW9ucyIsImRlbGV0ZVVzZXJJRCIsImZpbHRlciIsIkNvcmUiLCJ0YWJsZSIsIm9uZVVzZXJTZWxlY3RlZCIsInVzZXJzIiwiYmluZGluZ0NvbnRleHQiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiY29udGV4dHMiLCJnZXRCaW5kaW5nIiwiZ2V0Q29udGV4dHMiLCJjb250ZXh0Iiwic0VudGl0eVNldCIsImdldE1ldGFQYXRoIiwic2hhcmVBY3Rpb25OYW1lIiwic2hhcmVBY3Rpb24iLCJiaW5kQ29udGV4dCIsInNldFBhcmFtZXRlciIsImV4ZWN1dGUiLCJNZXNzYWdlVG9hc3QiLCJzaG93Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7O01BcU9lQSx3QixhQUF5QkMsSTtRQUFZO0FBQ25ELFVBQU1DLGNBQTRCLEdBQUdDLFFBQVEsQ0FBQ0MsSUFBVCxDQUFjO0FBQ2xEQyxRQUFBQSxFQUFFLEVBQUUsMEJBRDhDO0FBQ2xCO0FBQ2hDQyxRQUFBQSxJQUFJLEVBQUU7QUFGNEMsT0FBZCxDQUFyQztBQUlBLDZCQUFPSixjQUFjLENBQ25CSyxJQURLLENBQ0EsVUFBVUMsT0FBVixFQUF3QjtBQUM3QlAsUUFBQUEsSUFBSSxDQUFDUSxZQUFMLENBQWtCRCxPQUFsQjtBQUNBLGVBQU9BLE9BQVA7QUFDQSxPQUpLLEVBS0xFLEtBTEssQ0FLQyxZQUFZO0FBQ2xCLGNBQU0sZUFBTjtBQUNBLE9BUEss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Q0FFTyxZQUFZO0FBQ2pCbUcsTUFBQUEsWUFBWSxDQUFDQyxJQUFiLENBQWtCLGNBQWxCO0FBQ0EsS0FKRixFQUtFakcsS0FMRixDQUtRLFlBQVk7QUFDbEJnRyxNQUFBQSxZQUFZLENBQUNDLElBQWIsQ0FBa0IsNENBQWxCO0FBQ0EsS0FQRjtBQVNBNUUsSUFBQUEsV0FBVztBQUNYIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0eXBlIERpYWxvZyBmcm9tIFwic2FwL20vRGlhbG9nXCI7XG5pbXBvcnQgdHlwZSBJbnB1dCBmcm9tIFwic2FwL20vSW5wdXRcIjtcbmltcG9ydCBNZXNzYWdlVG9hc3QgZnJvbSBcInNhcC9tL01lc3NhZ2VUb2FzdFwiO1xuaW1wb3J0IHR5cGUgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC9tL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgY29uc3Qgb3Blbk1hbmFnZURpYWxvZyA9IGFzeW5jIGZ1bmN0aW9uICh2aWV3OiBWaWV3KSB7XG5cdGxldCBkaWFsb2c6IGFueSA9IGJ5SWQoXCJkaWFsb2dcIik7XG5cblx0aWYgKCFkaWFsb2cpIHtcblx0XHRkaWFsb2cgPSBhd2FpdCBjcmVhdGVNYW5hZ2VDb2xsYWJvcmF0aW9uRGlhbG9nKHZpZXcpO1xuXHR9XG5cblx0cmVhZEludml0ZWRVc2Vycyh2aWV3KTtcblxuXHRkaWFsb2cuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKS5zZXRQcm9wZXJ0eShcInVzZXJTZWxlY3RlZFwiLCBmYWxzZSk7XG5cdGRpYWxvZy5vcGVuKCk7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVNYW5hZ2VDb2xsYWJvcmF0aW9uRGlhbG9nKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgcERpYWxvZzogUHJvbWlzZTxhbnk+ID0gKHZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIGFueSkuZ2V0RXh0ZW5zaW9uQVBJKCkubG9hZEZyYWdtZW50KHtcblx0XHRuYW1lOiBcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLmNvbGxhYm9yYXRpb24uTWFuYWdlRGlhbG9nXCIsXG5cdFx0aWQ6IFwibWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0XCIsXG5cdFx0Y29udHJvbGxlcjoge1xuXHRcdFx0c2hhcmU6IHNoYXJlLFxuXHRcdFx0YWRkVXNlcjogYWRkVXNlcixcblx0XHRcdHJlbW92ZVVzZXI6IHJlbW92ZVVzZXIsXG5cdFx0XHRyZW1vdmVTZWxlY3RlZFVzZXJzOiByZW1vdmVTZWxlY3RlZFVzZXJzLFxuXHRcdFx0dGFibGVTZWxlY3Rpb25DaGFuZ2U6IHRhYmxlU2VsZWN0aW9uQ2hhbmdlLFxuXHRcdFx0Y2xvc2U6IGNsb3NlRGlhbG9nLFxuXHRcdFx0YWRkVXNlckNoYW5nZWQ6IGFkZFVzZXJDaGFuZ2VkXG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIHBEaWFsb2dcblx0XHQudGhlbihmdW5jdGlvbiAoZGlhbG9nOiBhbnkpIHtcblx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KGRpYWxvZyk7XG5cdFx0XHRyZXR1cm4gZGlhbG9nO1xuXHRcdH0pXG5cdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdHRocm93IFwibm90IHRoaXMgdGltZVwiO1xuXHRcdH0pO1xufVxuXG5mdW5jdGlvbiByZWFkSW52aXRlZFVzZXJzKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgbW9kZWwgPSB2aWV3LmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0Ly8gVE9ETzogaW5mb3JtIG1vZGVsIGNvbGxlYWd1ZXMgb24gbWlzc2luZyBUUyBkZWZpbml0aW9uXG5cdGNvbnN0IHBhcmFtZXRlcnM6IGFueSA9IHtcblx0XHQkc2VsZWN0OiBcIlVzZXJJRCxVc2VyRGVzY3JpcHRpb24sVXNlckFjY2Vzc1JvbGUsVXNlckFjY2Vzc1JvbGVEZXNjcmlwdGlvblwiXG5cdH07XG5cdGNvbnN0IGludml0ZWRVc2VyTGlzdCA9IG1vZGVsLmJpbmRMaXN0KFxuXHRcdFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRBZG1pbmlzdHJhdGl2ZVVzZXJcIixcblx0XHR2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCxcblx0XHRbXSxcblx0XHRbXSxcblx0XHRwYXJhbWV0ZXJzXG5cdCk7XG5cdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXG5cdC8vIFRPRE86IGxpbWl0P1xuXHRpbnZpdGVkVXNlckxpc3Rcblx0XHQucmVxdWVzdENvbnRleHRzKDAsIDEwMClcblx0XHQudGhlbihmdW5jdGlvbiAoYUNvbnRleHRzKSB7XG5cdFx0XHQvLyB0b2RvOiBjb252ZXJ0IHRvIFVzZXIgdHlwZSAoYWxzbyBjaGFuZ2UgWE1MIGV0Yy4pXG5cdFx0XHRjb25zdCBpbnZpdGVkVXNlcnM6IFVzZXJbXSA9IFtdO1xuXHRcdFx0Y29uc3QgYWN0aXZlVXNlcnMgPSB2aWV3LmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiKSB8fCBbXTtcblx0XHRcdGNvbnN0IG1lID0gQ29sbGFib3JhdGlvblV0aWxzLmdldE1lKHZpZXcpO1xuXHRcdFx0aWYgKGFDb250ZXh0cz8ubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRhQ29udGV4dHMuZm9yRWFjaChmdW5jdGlvbiAob0NvbnRleHQpIHtcblx0XHRcdFx0XHQvLyBUT0RPOiBjcmVhdGUgYWxzbyB0eXBlIGZvciB0aGlzIGZyaWVuZFxuXHRcdFx0XHRcdGNvbnN0IHVzZXJEYXRhID0gb0NvbnRleHQuZ2V0T2JqZWN0KCk7XG5cdFx0XHRcdFx0Y29uc3QgaXNNZTogYm9vbGVhbiA9IG1lPy5pZCA9PT0gdXNlckRhdGEuVXNlcklEO1xuXHRcdFx0XHRcdGxldCB1c2VyRGVzY3JpcHRpb24gPSB1c2VyRGF0YS5Vc2VyRGVzY3JpcHRpb24gfHwgdXNlckRhdGEuVXNlcklEO1xuXHRcdFx0XHRcdGNvbnN0IGluaXRpYWxzID0gQ29sbGFib3JhdGlvblV0aWxzLmZvcm1hdEluaXRpYWxzKHVzZXJEZXNjcmlwdGlvbik7XG5cdFx0XHRcdFx0dXNlckRlc2NyaXB0aW9uICs9IGlzTWUgPyBgICgke0NvbGxhYm9yYXRpb25VdGlscy5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfWU9VXCIpfSlgIDogXCJcIjtcblxuXHRcdFx0XHRcdGNvbnN0IHVzZXI6IFVzZXIgPSB7XG5cdFx0XHRcdFx0XHRpZDogdXNlckRhdGEuVXNlcklELFxuXHRcdFx0XHRcdFx0bmFtZTogdXNlckRlc2NyaXB0aW9uLFxuXHRcdFx0XHRcdFx0cm9sZTogdXNlckRhdGEuVXNlckFjY2Vzc1JvbGUsXG5cdFx0XHRcdFx0XHRjb2xvcjogQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcih1c2VyRGF0YS5Vc2VySUQsIGFjdGl2ZVVzZXJzLCBpbnZpdGVkVXNlcnMpLFxuXHRcdFx0XHRcdFx0aW5pdGlhbHM6IGluaXRpYWxzLFxuXHRcdFx0XHRcdFx0bWU6IGlzTWVcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGludml0ZWRVc2Vycy5wdXNoKHVzZXIpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIG5vdCB5ZXQgc2hhcmVkLCBqdXN0IGFkZCBtZVxuXHRcdFx0XHRpbnZpdGVkVXNlcnMucHVzaChtZSk7XG5cdFx0XHR9XG5cblx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9pbnZpdGVkVXNlcnNcIiwgaW52aXRlZFVzZXJzKTtcblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHQvLyBUT0RPOiBoYW5kbGUgdGhpcyBjYXNlLCBjbG9zZSBkaWFsb2c/XG5cdFx0fSk7XG5cdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9Vc2VySURcIiwgXCJcIik7XG5cdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9Vc2VyUm9sZVwiLCBcIk9cIik7XG5cdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9Vc2VyRGVzY3JpcHRpb25cIiwgXCJcIik7XG59XG5cbmZ1bmN0aW9uIGFkZFVzZXIoZXZlbnQ6IGFueSkge1xuXHRjb25zdCBhZGRCdXR0b24gPSBldmVudC5nZXRTb3VyY2UoKTtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSBhZGRCdXR0b24uZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0Y29uc3QgaW52aXRlZFVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImludml0ZWRVc2Vyc1wiKSB8fCBbXTtcblx0Y29uc3QgYWN0aXZlVXNlcnMgPSBhZGRCdXR0b24uZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKS5nZXRQcm9wZXJ0eShcIi9jb2xsYWJvcmF0aW9uL2FjdGl2ZVVzZXJzXCIpO1xuXHRjb25zdCBuZXdVc2VyOiBVc2VyID0ge1xuXHRcdGlkOiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcIlVzZXJJRFwiKSxcblx0XHRuYW1lOiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcIlVzZXJEZXNjcmlwdGlvblwiKSxcblx0XHRyb2xlOiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcIlVzZXJSb2xlXCIpXG5cdH07XG5cblx0aWYgKCEoaW52aXRlZFVzZXJzLmZpbmRJbmRleCgodXNlcikgPT4gdXNlci5pZCA9PT0gbmV3VXNlci5pZCkgPiAtMSB8fCAobmV3VXNlci5pZCA9PT0gbmV3VXNlci5uYW1lICYmIG5ld1VzZXIuaWQgPT09IFwiXCIpKSkge1xuXHRcdG5ld1VzZXIubmFtZSA9IG5ld1VzZXIubmFtZSB8fCBuZXdVc2VyLmlkO1xuXHRcdG5ld1VzZXIuaW5pdGlhbHMgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZm9ybWF0SW5pdGlhbHMobmV3VXNlci5uYW1lKTtcblx0XHRuZXdVc2VyLmNvbG9yID0gQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcihuZXdVc2VyLmlkLCBhY3RpdmVVc2VycywgaW52aXRlZFVzZXJzKTtcblx0XHRpbnZpdGVkVXNlcnMudW5zaGlmdChuZXdVc2VyKTtcblx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImludml0ZWRVc2Vyc1wiLCBpbnZpdGVkVXNlcnMpO1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiVXNlcklEXCIsIFwiXCIpO1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiVXNlckRlc2NyaXB0aW9uXCIsIFwiXCIpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGFkZFVzZXJDaGFuZ2VkKGV2ZW50OiBFdmVudCkge1xuXHRjb25zdCB1c2VySW5wdXQgPSBldmVudC5nZXRTb3VyY2UoKSBhcyBJbnB1dDtcblx0ZXZlbnRcblx0XHQuZ2V0UGFyYW1ldGVyKFwicHJvbWlzZVwiKVxuXHRcdC50aGVuKGZ1bmN0aW9uIChuZXdVc2VySWQ6IHN0cmluZykge1xuXHRcdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB1c2VySW5wdXQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdGNvbnN0IGludml0ZWRVc2VyczogVXNlcltdID0gaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJpbnZpdGVkVXNlcnNcIikgfHwgW107XG5cdFx0XHRpZiAoaW52aXRlZFVzZXJzLmZpbmRJbmRleCgodXNlcikgPT4gdXNlci5pZCA9PT0gbmV3VXNlcklkKSA+IC0xKSB7XG5cdFx0XHRcdHVzZXJJbnB1dC5zZXRWYWx1ZVN0YXRlKFwiRXJyb3JcIik7XG5cdFx0XHRcdHVzZXJJbnB1dC5zZXRWYWx1ZVN0YXRlVGV4dChcIlVzZXIgaXMgYWxyZWFkeSBpbiB0aGUgbGlzdCBvZiBpbnZpdGVkIHVzZXJzXCIpOyAvLyBUT0RPOiBpMThuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR1c2VySW5wdXQuc2V0VmFsdWVTdGF0ZShcIk5vbmVcIik7XG5cdFx0XHRcdHVzZXJJbnB1dC5zZXRWYWx1ZVN0YXRlVGV4dChcIlwiKTtcblx0XHRcdH1cblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHR0aHJvdyBcIlVzZXIgY291bGRuJ3QgYmUgZGV0ZXJtaW5lZCBhdCBhbGxcIjtcblx0XHR9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVXNlcihldmVudDogRXZlbnQpIHtcblx0cmVtb3ZlVXNlckZyb21MaXN0KGV2ZW50LmdldFNvdXJjZSgpKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU2VsZWN0ZWRVc2VycygpIHtcblx0Y29uc3QgdXNlckxpc3QgPSBieUlkKFwidXNlckxpc3RcIikgYXMgVGFibGU7XG5cdGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB1c2VyTGlzdC5nZXRTZWxlY3RlZEl0ZW1zKCkgYXMgYW55W107XG5cdHNlbGVjdGVkSXRlbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbTogVXNlcikge1xuXHRcdHJlbW92ZVVzZXJGcm9tTGlzdChpdGVtKTtcblx0fSk7XG5cdHVzZXJMaXN0LnJlbW92ZVNlbGVjdGlvbnMoZmFsc2UpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVVc2VyRnJvbUxpc3QoaXRlbTogYW55KSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gaXRlbS5nZXRCaW5kaW5nQ29udGV4dChcInBhZ2VJbnRlcm5hbFwiKTtcblx0Y29uc3QgZGVsZXRlVXNlcklEID0gaXRlbS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiaWRcIik7XG5cdGxldCBpbnZpdGVkVXNlcnM6IFVzZXJbXSA9IGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9pbnZpdGVkVXNlcnNcIik7XG5cdGludml0ZWRVc2VycyA9IGludml0ZWRVc2Vycy5maWx0ZXIoKHVzZXIpID0+IHVzZXIuaWQgIT09IGRlbGV0ZVVzZXJJRCk7XG5cdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9pbnZpdGVkVXNlcnNcIiwgaW52aXRlZFVzZXJzKTtcbn1cblxuZnVuY3Rpb24gYnlJZChpZDogc3RyaW5nKTogYW55IHtcblx0cmV0dXJuIENvcmUuYnlJZChgbWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0LS0ke2lkfWApO1xufVxuXG5mdW5jdGlvbiBjbG9zZURpYWxvZygpIHtcblx0KGJ5SWQoXCJkaWFsb2dcIikgYXMgRGlhbG9nKS5jbG9zZSgpO1xufVxuXG5mdW5jdGlvbiB0YWJsZVNlbGVjdGlvbkNoYW5nZShldmVudDogRXZlbnQpIHtcblx0Y29uc3QgdGFibGUgPSBldmVudC5nZXRTb3VyY2UoKSBhcyBUYWJsZTtcblx0Y29uc3Qgb25lVXNlclNlbGVjdGVkID0gdGFibGUuZ2V0U2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDA7XG5cblx0KHRhYmxlLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpLnNldFByb3BlcnR5KFwidXNlclNlbGVjdGVkXCIsIG9uZVVzZXJTZWxlY3RlZCk7XG59XG5cbmZ1bmN0aW9uIHNoYXJlKGV2ZW50OiBFdmVudCkge1xuXHRjb25zdCB1c2VyczogYW55W10gPSBbXTsgLy8gVE9ETzogY3JlYXRlIERyYWZ0QWRtaW5Vc2VyVHlwZVxuXHRjb25zdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKSBhcyBDb250cm9sO1xuXHRjb25zdCBtb2RlbCA9IHNvdXJjZS5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gc291cmNlLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0Y29uc3Qgb01ldGFNb2RlbCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRjb25zdCBjb250ZXh0cyA9ICgoYnlJZChcInVzZXJMaXN0XCIpIGFzIFRhYmxlKS5nZXRCaW5kaW5nKFwiaXRlbXNcIikgYXMgT0RhdGFMaXN0QmluZGluZykuZ2V0Q29udGV4dHMoKTtcblxuXHRjb250ZXh0cy5mb3JFYWNoKGZ1bmN0aW9uIChjb250ZXh0OiBhbnkpIHtcblx0XHR1c2Vycy5wdXNoKHtcblx0XHRcdFVzZXJJRDogY29udGV4dC5nZXRQcm9wZXJ0eShcImlkXCIpLFxuXHRcdFx0VXNlckFjY2Vzc1JvbGU6IGNvbnRleHQuZ2V0UHJvcGVydHkoXCJyb2xlXCIpXG5cdFx0fSk7XG5cdH0pO1xuXHRjb25zdCBzRW50aXR5U2V0ID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgoYmluZGluZ0NvbnRleHQgYXMgYW55KTtcblx0Y29uc3Qgc2hhcmVBY3Rpb25OYW1lID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c0VudGl0eVNldH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdC9TaGFyZUFjdGlvbmApO1xuXHRjb25zdCBzaGFyZUFjdGlvbiA9IG1vZGVsLmJpbmRDb250ZXh0KGAke3NoYXJlQWN0aW9uTmFtZX0oLi4uKWAsIGJpbmRpbmdDb250ZXh0KTtcblx0c2hhcmVBY3Rpb24uc2V0UGFyYW1ldGVyKFwiVXNlcnNcIiwgdXNlcnMpO1xuXHRzaGFyZUFjdGlvblxuXHRcdC5leGVjdXRlKClcblx0XHQudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRNZXNzYWdlVG9hc3Quc2hvdyhcIlVzZXIgaW52aXRlZFwiKTtcblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRNZXNzYWdlVG9hc3Quc2hvdyhcIkludml0YXRpb24gZmFpbGVkIGR1ZSB0byB0ZWNobmljYWwgcmVhc29uc1wiKTtcblx0XHR9KTtcblxuXHRjbG9zZURpYWxvZygpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd1VzZXJEZXRhaWxzKGV2ZW50OiBFdmVudCwgdmlldzogVmlldykge1xuXHRjb25zdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKSBhcyBDb250cm9sO1xuXHRsZXQgcG9wb3ZlciA9IGJ5SWQoXCJ1c2VyRGV0YWlsc1wiKSBhcyBQb3BvdmVyO1xuXHRpZiAoIXBvcG92ZXIpIHtcblx0XHRwb3BvdmVyID0gYXdhaXQgY3JlYXRlVXNlckRldGFpbHNQb3BvdmVyKHZpZXcpO1xuXHR9XG5cblx0cG9wb3Zlci5zZXRCaW5kaW5nQ29udGV4dChzb3VyY2UuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCwgXCJpbnRlcm5hbFwiKTtcblxuXHRwb3BvdmVyLm9wZW5CeShzb3VyY2UsIGZhbHNlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlckRldGFpbHNQb3BvdmVyKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgcG9wb3ZlclByb21pc2U6IFByb21pc2U8YW55PiA9IEZyYWdtZW50LmxvYWQoe1xuXHRcdGlkOiBcIm1hbmFnZUNvbGxhYm9yYXRpb25EcmFmdFwiLCAvLyB0b2RvIHNob3VsZCBiZSB2aWV3IGlkXG5cdFx0bmFtZTogXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy5jb2xsYWJvcmF0aW9uLlVzZXJEZXRhaWxzXCJcblx0fSk7XG5cdHJldHVybiBwb3BvdmVyUHJvbWlzZVxuXHRcdC50aGVuKGZ1bmN0aW9uIChwb3BvdmVyOiBhbnkpIHtcblx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdFx0cmV0dXJuIHBvcG92ZXI7XG5cdFx0fSlcblx0XHQuY2F0Y2goZnVuY3Rpb24gKCkge1xuXHRcdFx0dGhyb3cgXCJub3QgdGhpcyB0aW1lXCI7XG5cdFx0fSk7XG59XG4iXX0=
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
1
|
+
import type { User } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
2
|
+
import { CollaborationUtils } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
3
|
+
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
4
|
+
import type Dialog from "sap/m/Dialog";
|
|
5
|
+
import type Input from "sap/m/Input";
|
|
5
6
|
import MessageToast from "sap/m/MessageToast";
|
|
6
|
-
import Popover from "sap/m/Popover";
|
|
7
|
-
import Table from "sap/m/Table";
|
|
8
|
-
import Event from "sap/ui/base/Event";
|
|
9
|
-
import Control from "sap/ui/core/Control";
|
|
7
|
+
import type Popover from "sap/m/Popover";
|
|
8
|
+
import type Table from "sap/m/Table";
|
|
9
|
+
import type Event from "sap/ui/base/Event";
|
|
10
|
+
import type Control from "sap/ui/core/Control";
|
|
10
11
|
import Core from "sap/ui/core/Core";
|
|
11
12
|
import Fragment from "sap/ui/core/Fragment";
|
|
12
|
-
import View from "sap/ui/core/mvc/View";
|
|
13
|
-
import Context from "sap/ui/model/odata/v4/Context";
|
|
14
|
-
import ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
15
|
-
import ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
13
|
+
import type View from "sap/ui/core/mvc/View";
|
|
14
|
+
import type Context from "sap/ui/model/odata/v4/Context";
|
|
15
|
+
import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
16
|
+
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
16
17
|
|
|
17
18
|
export const openManageDialog = async function (view: View) {
|
|
18
19
|
let dialog: any = byId("dialog");
|
|
@@ -81,7 +82,7 @@ function readInvitedUsers(view: View) {
|
|
|
81
82
|
const isMe: boolean = me?.id === userData.UserID;
|
|
82
83
|
let userDescription = userData.UserDescription || userData.UserID;
|
|
83
84
|
const initials = CollaborationUtils.formatInitials(userDescription);
|
|
84
|
-
userDescription += isMe ?
|
|
85
|
+
userDescription += isMe ? ` (${CollaborationUtils.getText("C_COLLABORATIONDRAFT_YOU")})` : "";
|
|
85
86
|
|
|
86
87
|
const user: User = {
|
|
87
88
|
id: userData.UserID,
|
|
@@ -119,9 +120,7 @@ function addUser(event: any) {
|
|
|
119
120
|
role: internalModelContext.getProperty("UserRole")
|
|
120
121
|
};
|
|
121
122
|
|
|
122
|
-
if (invitedUsers.findIndex((user) => user.id === newUser.id) > -1 || (newUser.id === newUser.name && newUser.id === "")) {
|
|
123
|
-
return;
|
|
124
|
-
} else {
|
|
123
|
+
if (!(invitedUsers.findIndex((user) => user.id === newUser.id) > -1 || (newUser.id === newUser.name && newUser.id === ""))) {
|
|
125
124
|
newUser.name = newUser.name || newUser.id;
|
|
126
125
|
newUser.initials = CollaborationUtils.formatInitials(newUser.name);
|
|
127
126
|
newUser.color = CollaborationUtils.getUserColor(newUser.id, activeUsers, invitedUsers);
|
|
@@ -174,7 +173,7 @@ function removeUserFromList(item: any) {
|
|
|
174
173
|
}
|
|
175
174
|
|
|
176
175
|
function byId(id: string): any {
|
|
177
|
-
return Core.byId(
|
|
176
|
+
return Core.byId(`manageCollaborationDraft--${id}`);
|
|
178
177
|
}
|
|
179
178
|
|
|
180
179
|
function closeDialog() {
|
|
@@ -231,11 +230,11 @@ export async function showUserDetails(event: Event, view: View) {
|
|
|
231
230
|
}
|
|
232
231
|
|
|
233
232
|
async function createUserDetailsPopover(view: View) {
|
|
234
|
-
const
|
|
233
|
+
const popoverPromise: Promise<any> = Fragment.load({
|
|
235
234
|
id: "manageCollaborationDraft", // todo should be view id
|
|
236
235
|
name: "sap.fe.core.controllerextensions.collaboration.UserDetails"
|
|
237
236
|
});
|
|
238
|
-
return
|
|
237
|
+
return popoverPromise
|
|
239
238
|
.then(function (popover: any) {
|
|
240
239
|
view.addDependent(popover);
|
|
241
240
|
return popover;
|