@sapui5/sap.fe.core 1.102.2 → 1.104.1
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 +6 -6
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +73 -30
- package/src/sap/fe/core/AppComponent.ts +65 -43
- package/src/sap/fe/core/AppStateHandler.js +82 -70
- package/src/sap/fe/core/AppStateHandler.ts +32 -37
- 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 +227 -126
- package/src/sap/fe/core/CommonUtils.ts +240 -163
- 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/BuildingBlock.js +181 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +150 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +585 -210
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +246 -96
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +30 -30
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +32 -29
- package/src/sap/fe/core/controllerextensions/EditFlow.js +379 -330
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +253 -245
- 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 +101 -74
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +69 -79
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +67 -67
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +76 -76
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +85 -77
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +103 -99
- 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 +9 -9
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +20 -27
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
- package/src/sap/fe/core/controllerextensions/PageReady.ts +98 -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 +170 -139
- package/src/sap/fe/core/controllerextensions/Share.ts +117 -118
- 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 +200 -131
- package/src/sap/fe/core/controllerextensions/ViewState.ts +141 -148
- 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 +11 -10
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +17 -20
- 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 +190 -141
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +258 -210
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +183 -125
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +213 -156
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +164 -140
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +180 -150
- 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 +71 -41
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +102 -82
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +61 -71
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +56 -64
- 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 +7 -2
- package/src/sap/fe/core/controls/FileWrapper.ts +15 -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 +49 -49
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +54 -54
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- 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 +52 -61
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +17 -15
- 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 +64 -35
- package/src/sap/fe/core/converters/MetaModelConverter.ts +154 -129
- 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 +58 -35
- package/src/sap/fe/core/converters/annotations/DataField.ts +102 -76
- 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 +26 -33
- 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 +30 -28
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -61
- package/src/sap/fe/core/converters/controls/Common/Form.js +27 -28
- package/src/sap/fe/core/converters/controls/Common/Form.ts +44 -57
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +49 -52
- package/src/sap/fe/core/converters/controls/Common/Table.js +181 -197
- package/src/sap/fe/core/converters/controls/Common/Table.ts +251 -280
- 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 +65 -59
- 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 +77 -73
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +101 -97
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +12 -15
- 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 +48 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +26 -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 -5
- 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 +55 -42
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +81 -66
- 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 +96 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +70 -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 +1832 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +396 -269
- package/src/sap/fe/core/helpers/ClassSupport.js +49 -12
- package/src/sap/fe/core/helpers/ClassSupport.ts +37 -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 +306 -280
- package/src/sap/fe/core/helpers/MassEditHelper.ts +380 -360
- package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
- package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
- 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/helpers/ToES6Promise.js +32 -0
- package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +99 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +82 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
- package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
- package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
- 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 +39 -63
- package/src/sap/fe/core/messagebundle_ar.properties +25 -39
- package/src/sap/fe/core/messagebundle_bg.properties +25 -39
- package/src/sap/fe/core/messagebundle_ca.properties +25 -39
- package/src/sap/fe/core/messagebundle_cs.properties +25 -39
- package/src/sap/fe/core/messagebundle_cy.properties +25 -39
- package/src/sap/fe/core/messagebundle_da.properties +25 -39
- package/src/sap/fe/core/messagebundle_de.properties +25 -39
- package/src/sap/fe/core/messagebundle_el.properties +26 -40
- package/src/sap/fe/core/messagebundle_en.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_GB.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +25 -39
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +26 -18
- package/src/sap/fe/core/messagebundle_es.properties +27 -41
- package/src/sap/fe/core/messagebundle_es_MX.properties +25 -39
- package/src/sap/fe/core/messagebundle_et.properties +25 -39
- package/src/sap/fe/core/messagebundle_fi.properties +25 -39
- package/src/sap/fe/core/messagebundle_fr.properties +26 -40
- package/src/sap/fe/core/messagebundle_fr_CA.properties +25 -39
- package/src/sap/fe/core/messagebundle_hi.properties +25 -39
- package/src/sap/fe/core/messagebundle_hr.properties +25 -39
- package/src/sap/fe/core/messagebundle_hu.properties +25 -39
- package/src/sap/fe/core/messagebundle_id.properties +25 -39
- package/src/sap/fe/core/messagebundle_it.properties +41 -55
- package/src/sap/fe/core/messagebundle_iw.properties +25 -39
- package/src/sap/fe/core/messagebundle_ja.properties +25 -39
- package/src/sap/fe/core/messagebundle_kk.properties +25 -39
- package/src/sap/fe/core/messagebundle_ko.properties +30 -44
- package/src/sap/fe/core/messagebundle_lt.properties +25 -39
- package/src/sap/fe/core/messagebundle_lv.properties +25 -39
- package/src/sap/fe/core/messagebundle_ms.properties +25 -39
- package/src/sap/fe/core/messagebundle_nl.properties +27 -41
- package/src/sap/fe/core/messagebundle_no.properties +25 -39
- package/src/sap/fe/core/messagebundle_pl.properties +26 -40
- package/src/sap/fe/core/messagebundle_pt.properties +26 -40
- package/src/sap/fe/core/messagebundle_pt_PT.properties +25 -39
- package/src/sap/fe/core/messagebundle_ro.properties +25 -39
- package/src/sap/fe/core/messagebundle_ru.properties +25 -39
- package/src/sap/fe/core/messagebundle_sh.properties +25 -39
- package/src/sap/fe/core/messagebundle_sk.properties +25 -39
- package/src/sap/fe/core/messagebundle_sl.properties +25 -39
- package/src/sap/fe/core/messagebundle_sv.properties +25 -39
- package/src/sap/fe/core/messagebundle_th.properties +25 -39
- package/src/sap/fe/core/messagebundle_tr.properties +25 -39
- package/src/sap/fe/core/messagebundle_uk.properties +25 -39
- package/src/sap/fe/core/messagebundle_vi.properties +25 -39
- package/src/sap/fe/core/messagebundle_zh_CN.properties +25 -39
- package/src/sap/fe/core/messagebundle_zh_TW.properties +25 -39
- 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 +97 -69
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +68 -69
- 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 +61 -49
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +63 -52
- 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 +92 -76
- package/src/sap/fe/core/services/ShellServicesFactory.ts +95 -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 +224 -198
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +138 -139
- 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 +16 -15
- package/src/sap/fe/core/templating/FilterHelper.ts +18 -18
- 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 +152 -95
- package/src/sap/fe/core/templating/UIFormatters.ts +202 -128
- 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
|
@@ -120,7 +120,8 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
120
120
|
name: message.userDescription,
|
|
121
121
|
initials: CollaborationUtils.formatInitials(message.userDescription),
|
|
122
122
|
color: CollaborationUtils.getUserColor(message.userID, activeUsers, [])
|
|
123
|
-
};
|
|
123
|
+
};
|
|
124
|
+
var mactivity = sender; // eslint-disable-next-line default-case
|
|
124
125
|
|
|
125
126
|
switch (message.userAction) {
|
|
126
127
|
case Activity.Join:
|
|
@@ -177,22 +178,22 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
177
178
|
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
179
|
return view.getModel().getMetaModel().getMetaPath(path);
|
|
179
180
|
});
|
|
180
|
-
metaPaths.forEach(function (
|
|
181
|
+
metaPaths.forEach(function (currentMetaPath, i) {
|
|
181
182
|
var _message$clientConten2, _currentActivities;
|
|
182
183
|
|
|
183
184
|
var nesteedMessage = _objectSpread(_objectSpread({}, message), {}, {
|
|
184
185
|
clientContent: message === null || message === void 0 ? void 0 : (_message$clientConten2 = message.clientContent) === null || _message$clientConten2 === void 0 ? void 0 : _message$clientConten2.split("|")[i]
|
|
185
186
|
});
|
|
186
187
|
|
|
187
|
-
var currentActivities = internalModel.getProperty(ACTIVITIES +
|
|
188
|
+
var currentActivities = internalModel.getProperty(ACTIVITIES + currentMetaPath) || [];
|
|
188
189
|
activityKey = getActivityKey(nesteedMessage.clientContent);
|
|
189
190
|
currentActivities = ((_currentActivities = currentActivities) === null || _currentActivities === void 0 ? void 0 : _currentActivities.filter) && currentActivities.filter(function (activity) {
|
|
190
191
|
return activity.key !== activityKey;
|
|
191
192
|
});
|
|
192
193
|
|
|
193
194
|
if (currentActivities) {
|
|
194
|
-
internalModel.setProperty(ACTIVITIES +
|
|
195
|
-
update(view, nesteedMessage,
|
|
195
|
+
internalModel.setProperty(ACTIVITIES + currentMetaPath, currentActivities);
|
|
196
|
+
update(view, nesteedMessage, currentMetaPath, Activity.Change);
|
|
196
197
|
}
|
|
197
198
|
});
|
|
198
199
|
break;
|
|
@@ -229,14 +230,14 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
229
230
|
*/
|
|
230
231
|
|
|
231
232
|
case Activity.LiveChange:
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
mactivity = sender;
|
|
234
|
+
mactivity.key = getActivityKey(message.clientContent); // stupid JSON model...
|
|
234
235
|
|
|
235
236
|
var initJSONModel = "";
|
|
236
237
|
var parts = metaPath.split("/");
|
|
237
238
|
|
|
238
239
|
for (var i = 1; i < parts.length - 1; i++) {
|
|
239
|
-
initJSONModel += "/"
|
|
240
|
+
initJSONModel += "/".concat(parts[i]);
|
|
240
241
|
|
|
241
242
|
if (!internalModel.getProperty(ACTIVITIES + initJSONModel)) {
|
|
242
243
|
internalModel.setProperty(ACTIVITIES + initJSONModel, {});
|
|
@@ -245,7 +246,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
245
246
|
|
|
246
247
|
activities = internalModel.getProperty(ACTIVITIES + metaPath);
|
|
247
248
|
activities = (_activities = activities) !== null && _activities !== void 0 && _activities.slice ? activities.slice() : [];
|
|
248
|
-
activities.push(
|
|
249
|
+
activities.push(mactivity);
|
|
249
250
|
internalModel.setProperty(ACTIVITIES + metaPath, activities);
|
|
250
251
|
break;
|
|
251
252
|
|
|
@@ -357,4 +358,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
357
358
|
send: send
|
|
358
359
|
};
|
|
359
360
|
}, false);
|
|
360
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjdGl2aXR5U3luYy50cyJdLCJuYW1lcyI6WyJNWUFDVElWSVRZIiwiQUNUSVZFVVNFUlMiLCJBQ1RJVklUSUVTIiwiaXNDb25uZWN0ZWQiLCJjb250cm9sIiwiaW50ZXJuYWxNb2RlbCIsImdldE1vZGVsIiwiaXNDb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwic2VuZCIsImFjdGlvbiIsImNvbnRlbnQiLCJjbGllbnRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsIm15QWN0aXZpdHkiLCJnZXRQcm9wZXJ0eSIsInNldFByb3BlcnR5IiwiYnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UiLCJnZXRXZWJTb2NrZXRCYXNlVVJMIiwiYmluZGluZ0NvbnRleHQiLCJnZXRNZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJpc0NvbGxhYm9yYXRpb25FbmFibGVkIiwidmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiY29ubmVjdCIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJ3ZWJTb2NrZXRCYXNlVVJMIiwicmVxdWVzdFByb3BlcnR5Iiwic0RyYWZ0VVVJRCIsImluaXRpYWxpemVDb2xsYWJvcmF0aW9uIiwibWVzc2FnZSIsIm1lc3NhZ2VSZWNlaXZlIiwiZGlzY29ubmVjdCIsImVuZENvbGxhYm9yYXRpb24iLCJhY3RpdmVVc2VycyIsImFjdGl2aXRpZXMiLCJhY3Rpdml0eUtleSIsIm1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJ1c2VyQWN0aW9uIiwiY2xpZW50QWN0aW9uIiwic2VuZGVyIiwiaWQiLCJ1c2VySUQiLCJuYW1lIiwidXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwiSm9pbiIsIkpvaW5FY2hvIiwiZmluZEluZGV4IiwidXNlciIsInB1c2giLCJMZWF2ZSIsImZpbHRlciIsImFsbEFjdGl2aXRpZXMiLCJyZW1vdmVVc2VyQWN0aXZpdGllcyIsImJhZyIsImFjdGl2aXR5IiwicCIsIkNoYW5nZSIsIm1ldGFQYXRocyIsInNwbGl0IiwibWFwIiwicGF0aCIsImZvckVhY2giLCJpIiwibmVzdGVlZE1lc3NhZ2UiLCJjdXJyZW50QWN0aXZpdGllcyIsImdldEFjdGl2aXR5S2V5Iiwia2V5IiwidXBkYXRlIiwiQ3JlYXRlIiwiRGVsZXRlIiwiQWN0aXZhdGUiLCJNZXNzYWdlQm94IiwiaW5mb3JtYXRpb24iLCJnZXRUZXh0IiwibmF2aWdhdGUiLCJEaXNjYXJkIiwiaW5pdEpTT05Nb2RlbCIsInBhcnRzIiwibGVuZ3RoIiwic2xpY2UiLCJVbmRvIiwiYSIsImFwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsIm1ldGFNb2RlbCIsImN1cnJlbnRQYWdlIiwiZ2V0Q3VycmVudFBhZ2UiLCJzaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJjdXJyZW50Q29udGV4dCIsImN1cnJlbnRQYXRoIiwiZ2V0UGF0aCIsImN1cnJlbnRNZXRhUGF0aCIsImNoYW5nZWREb2N1bWVudCIsImRlbGV0ZWRPYmplY3RzIiwicGFyZW50RGVsZXRlZEluZGV4IiwiZGVsZXRlZE9iamVjdCIsInN0YXJ0c1dpdGgiLCJvbkNsb3NlIiwidGFyZ2V0Q29udGV4dCIsImJpbmRDb250ZXh0IiwiZ2V0Qm91bmRDb250ZXh0IiwiZ2V0Q29udHJvbGxlciIsIl9yb3V0aW5nIiwibmF2aWdhdGVCYWNrRnJvbUNvbnRleHQiLCJhY3Rpdml0eVBhdGgiLCJyZXBsYWNlIiwic2lkZUVmZmVjdHMiLCIkUHJvcGVydHlQYXRoIiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGVGcm9tQ29udGV4dCIsImVudGl0eVR5cGVTaWRlRWZmZWN0cyIsImdldE9EYXRhRW50aXR5U2lkZUVmZmVjdHMiLCJvYmplY3QiLCJPYmplY3QiLCJyZWxldmFudFNpZGVFZmZlY3RzIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwieCIsIlNvdXJjZVByb3BlcnRpZXMiLCJzb3VyY2UiLCJ2YWx1ZSIsIlRhcmdldFByb3BlcnRpZXMiLCJ0YXJnZXRQcm9wZXJ0eSIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVkaXRGbG93IiwidXBkYXRlRG9jdW1lbnQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJvdXRpbmciLCJyb290Vmlld0NvbnRyb2xsZXIiLCJnZXRSb290Vmlld0NvbnRyb2xsZXIiLCJpc0ZjbEVuYWJsZWQiLCJnZXRSaWdodG1vc3RWaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwiZ2V0Um9vdENvbnRhaW5lciIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsTUFBTUEsVUFBVSxHQUFHLDJCQUFuQjtBQUNBLE1BQU1DLFdBQVcsR0FBRyw0QkFBcEI7QUFDQSxNQUFNQyxVQUFVLEdBQUcsMkJBQW5COztBQUVPLE1BQU1DLFdBQVcsR0FBRyxVQUFVQyxPQUFWLEVBQXFDO0FBQy9ELFFBQU1DLGFBQWEsR0FBR0QsT0FBTyxDQUFDRSxRQUFSLENBQWlCLFVBQWpCLENBQXRCO0FBQ0EsV0FBT0Msd0JBQXdCLENBQUNGLGFBQUQsQ0FBL0I7QUFDQSxHQUhNOzs7O0FBS0EsTUFBTUcsSUFBSSxHQUFHLFVBQVVKLE9BQVYsRUFBNEJLLE1BQTVCLEVBQThDQyxPQUE5QyxFQUFzRjtBQUN6RyxRQUFJUCxXQUFXLENBQUNDLE9BQUQsQ0FBZixFQUEwQjtBQUN6QixVQUFNQyxhQUFhLEdBQUdELE9BQU8sQ0FBQ0UsUUFBUixDQUFpQixVQUFqQixDQUF0QjtBQUNBLFVBQU1LLGFBQWEsR0FBR0MsS0FBSyxDQUFDQyxPQUFOLENBQWNILE9BQWQsSUFBeUJBLE9BQU8sQ0FBQ0ksSUFBUixDQUFhLEdBQWIsQ0FBekIsR0FBNkNKLE9BQW5FOztBQUVBLFVBQUlELE1BQU0sS0FBS00sUUFBUSxDQUFDQyxVQUF4QixFQUFvQztBQUNuQztBQUNBLFlB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QUFjLENBQUN4RSxJQUFELENBQWxDO0FBQ0EsUUFBTXFGLGFBQWEsR0FBR3JGLElBQUksQ0FBQ3BCLFFBQUwsR0FBZ0IwRyxXQUFoQixDQUE0QnhDLElBQTVCLEVBQWtDeUMsZUFBbEMsRUFBdEI7QUFDQWhCLElBQUFBLFdBQVcsQ0FBQ2lCLGFBQVosR0FBNEIyQixPQUE1QixDQUFvQ3ZELFFBQXBDLENBQTZDeUIsYUFBN0M7QUFDQTs7QUFFRCxXQUFTYixjQUFULENBQXdCeEUsSUFBeEIsRUFBb0M7QUFDbkMsUUFBTW9FLFlBQVksR0FBR2hFLGtCQUFrQixDQUFDaUUsZUFBbkIsQ0FBbUNyRSxJQUFuQyxDQUFyQjtBQUNBLFFBQU1vSCxrQkFBa0IsR0FBR2hELFlBQVksQ0FBQ2lELHFCQUFiLEVBQTNCO0FBQ0EsV0FBT0Qsa0JBQWtCLENBQUNFLFlBQW5CLEtBQ0pGLGtCQUFrQixDQUFDRyxnQkFBbkIsRUFESSxHQUVKQyxXQUFXLENBQUNDLGFBQVosQ0FBMkJyRCxZQUFZLENBQUNzRCxnQkFBYixFQUFELENBQXlDbEQsY0FBekMsRUFBMUIsQ0FGSDtBQUdBOztBQUVELFdBQVNyQixjQUFULENBQXdCcUQsQ0FBeEIsRUFBMkM7QUFDMUMsV0FBT0EsQ0FBQyxDQUFDbUIsU0FBRixDQUFZbkIsQ0FBQyxDQUFDb0IsV0FBRixDQUFjLEdBQWQsSUFBcUIsQ0FBakMsRUFBb0NwQixDQUFDLENBQUNvQixXQUFGLENBQWMsR0FBZCxDQUFwQyxDQUFQO0FBQ0E7O1NBRWM7QUFDZDFILElBQUFBLE9BQU8sRUFBRUEsT0FESztBQUVkVSxJQUFBQSxVQUFVLEVBQUVBLFVBRkU7QUFHZG5DLElBQUFBLFdBQVcsRUFBRUEsV0FIQztBQUlkc0IsSUFBQUEsc0JBQXNCLEVBQUVBLHNCQUpWO0FBS2RqQixJQUFBQSxJQUFJLEVBQUVBO0FBTFEsRyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHtcblx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UsXG5cdGVuZENvbGxhYm9yYXRpb24sXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uLFxuXHRpc0NvbGxhYm9yYXRpb25Db25uZWN0ZWRcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQWN0aXZpdHlCYXNlXCI7XG5pbXBvcnQge1xuXHRBY3Rpdml0eSxcblx0Q29sbGFib3JhdGlvblV0aWxzLFxuXHRNZXNzYWdlLFxuXHRVc2VyLFxuXHRVc2VyQWN0aXZpdHlcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSBcInNhcC9tL01lc3NhZ2VCb3hcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuXG5jb25zdCBNWUFDVElWSVRZID0gXCIvY29sbGFib3JhdGlvbi9teUFjdGl2aXR5XCI7XG5jb25zdCBBQ1RJVkVVU0VSUyA9IFwiL2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIjtcbmNvbnN0IEFDVElWSVRJRVMgPSBcIi9jb2xsYWJvcmF0aW9uL2FjdGl2aXRpZXNcIjtcblxuZXhwb3J0IGNvbnN0IGlzQ29ubmVjdGVkID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wpOiBib29sZWFuIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IGNvbnRyb2wuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdHJldHVybiBpc0NvbGxhYm9yYXRpb25Db25uZWN0ZWQoaW50ZXJuYWxNb2RlbCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VuZCA9IGZ1bmN0aW9uIChjb250cm9sOiBDb250cm9sLCBhY3Rpb246IEFjdGl2aXR5LCBjb250ZW50OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuXHRpZiAoaXNDb25uZWN0ZWQoY29udHJvbCkpIHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsID0gY29udHJvbC5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRjb25zdCBjbGllbnRDb250ZW50ID0gQXJyYXkuaXNBcnJheShjb250ZW50KSA/IGNvbnRlbnQuam9pbihcInxcIikgOiBjb250ZW50O1xuXG5cdFx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuTGl2ZUNoYW5nZSkge1xuXHRcdFx0Ly8gVG8gYXZvaWQgdW5uZWNlc3NhcnkgdHJhZmZpYyB3ZSBrZWVwIHRyYWNrIG9mIGxpdmUgY2hhbmdlcyBhbmQgc2VuZCBpdCBvbmx5IG9uY2Vcblx0XHRcdGNvbnN0IG15QWN0aXZpdHkgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KE1ZQUNUSVZJVFkpO1xuXHRcdFx0aWYgKG15QWN0aXZpdHkgPT09IGNsaWVudENvbnRlbnQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShNWUFDVElWSVRZLCBjbGllbnRDb250ZW50KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gdXNlciBmaW5pc2hlZCB0aGUgYWN0aXZpdHlcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoTVlBQ1RJVklUWSwgbnVsbCk7XG5cdFx0fVxuXG5cdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoYWN0aW9uLCBjbGllbnRDb250ZW50LCBpbnRlcm5hbE1vZGVsKTtcblx0fVxufTtcblxuY29uc3QgZ2V0V2ViU29ja2V0QmFzZVVSTCA9IGZ1bmN0aW9uIChiaW5kaW5nQ29udGV4dDogQ29udGV4dCk6IHN0cmluZyB7XG5cdHJldHVybiBiaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLldlYlNvY2tldEJhc2VVUkxcIik7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCA9IGZ1bmN0aW9uICh2aWV3OiBWaWV3KTogYm9vbGVhbiB7XG5cdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gdmlldz8uZ2V0QmluZGluZ0NvbnRleHQgJiYgKHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0KTtcblx0cmV0dXJuICEhKGJpbmRpbmdDb250ZXh0ICYmIGdldFdlYlNvY2tldEJhc2VVUkwoYmluZGluZ0NvbnRleHQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25uZWN0ID0gYXN5bmMgZnVuY3Rpb24gKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdGNvbnN0IG1lID0gQ29sbGFib3JhdGlvblV0aWxzLmdldE1lKHZpZXcpO1xuXG5cdC8vIFJldHJpZXZpbmcgTUUgZnJvbSBzaGVsbCBzZXJ2aWNlXG5cdGlmICghbWUpIHtcblx0XHQvLyBubyBtZSA9IG5vIHNoZWxsID0gbm90IHN1cmUgd2hhdCB0byBkb1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdGNvbnN0IHdlYlNvY2tldEJhc2VVUkwgPSBnZXRXZWJTb2NrZXRCYXNlVVJMKGJpbmRpbmdDb250ZXh0KTtcblxuXHRpZiAoIXdlYlNvY2tldEJhc2VVUkwpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBzRHJhZnRVVUlEID0gYXdhaXQgYmluZGluZ0NvbnRleHQucmVxdWVzdFByb3BlcnR5KFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRVVUlEXCIpO1xuXHRpZiAoIXNEcmFmdFVVSUQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpbml0aWFsaXplQ29sbGFib3JhdGlvbihtZSwgd2ViU29ja2V0QmFzZVVSTCwgc0RyYWZ0VVVJRCwgaW50ZXJuYWxNb2RlbCwgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcblx0XHRtZXNzYWdlUmVjZWl2ZShtZXNzYWdlLCB2aWV3KTtcblx0fSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGlzY29ubmVjdCA9IGZ1bmN0aW9uIChjb250cm9sOiBDb250cm9sKSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWwgPSBjb250cm9sLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRlbmRDb2xsYWJvcmF0aW9uKGludGVybmFsTW9kZWwpO1xufTtcblxuZnVuY3Rpb24gbWVzc2FnZVJlY2VpdmUobWVzc2FnZTogTWVzc2FnZSwgdmlldzogVmlldykge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsOiBhbnkgPSB2aWV3LmdldE1vZGVsKFwiaW50ZXJuYWxcIik7XG5cdGxldCBhY3RpdmVVc2VyczogVXNlcltdID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVkVVU0VSUyk7XG5cdGxldCBhY3Rpdml0aWVzOiBVc2VyQWN0aXZpdHlbXTtcblx0bGV0IGFjdGl2aXR5S2V5OiBzdHJpbmc7XG5cdGNvbnN0IG1ldGFQYXRoOiBzdHJpbmcgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQgJiYgKHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0TWV0YVBhdGgobWVzc2FnZS5jbGllbnRDb250ZW50KTtcblx0bWVzc2FnZS51c2VyQWN0aW9uID0gbWVzc2FnZS51c2VyQWN0aW9uIHx8IG1lc3NhZ2UuY2xpZW50QWN0aW9uO1xuXG5cdGNvbnN0IHNlbmRlcjogVXNlciA9IHtcblx0XHRpZDogbWVzc2FnZS51c2VySUQsXG5cdFx0bmFtZTogbWVzc2FnZS51c2VyRGVzY3JpcHRpb24sXG5cdFx0aW5pdGlhbHM6IENvbGxhYm9yYXRpb25VdGlscy5mb3JtYXRJbml0aWFscyhtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbiksXG5cdFx0Y29sb3I6IENvbGxhYm9yYXRpb25VdGlscy5nZXRVc2VyQ29sb3IobWVzc2FnZS51c2VySUQsIGFjdGl2ZVVzZXJzLCBbXSlcblx0fTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG5cdHN3aXRjaCAobWVzc2FnZS51c2VyQWN0aW9uKSB7XG5cdFx0Y2FzZSBBY3Rpdml0eS5Kb2luOlxuXHRcdGNhc2UgQWN0aXZpdHkuSm9pbkVjaG86XG5cdFx0XHRpZiAoYWN0aXZlVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBzZW5kZXIuaWQpID09PSAtMSkge1xuXHRcdFx0XHRhY3RpdmVVc2Vycy5wdXNoKHNlbmRlcik7XG5cdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZFVVNFUlMsIGFjdGl2ZVVzZXJzKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbikge1xuXHRcdFx0XHQvLyB3ZSBlY2hvIG91ciBleGlzdGVuY2UgdG8gdGhlIG5ld2x5IGVudGVyZWQgdXNlciBhbmQgYWxzbyBzZW5kIHRoZSBjdXJyZW50IGFjdGl2aXR5IGlmIHRoZXJlIGlzIGFueVxuXHRcdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShBY3Rpdml0eS5Kb2luRWNobywgaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShNWUFDVElWSVRZKSwgaW50ZXJuYWxNb2RlbCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtZXNzYWdlLnVzZXJBY3Rpb24gPT09IEFjdGl2aXR5LkpvaW5FY2hvKSB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLmNsaWVudENvbnRlbnQpIHtcblx0XHRcdFx0XHQvLyBhbm90aGVyIHVzZXIgd2FzIGFscmVhZHkgdHlwaW5nIHRoZXJlZm9yZSBJIHdhbnQgdG8gc2VlIGhpcyBhY3Rpdml0eSBpbW1lZGlhdGVseS4gQ2FsbGluZyBtZSBhZ2FpbiBhcyBhIGxpdmUgY2hhbmdlXG5cdFx0XHRcdFx0bWVzc2FnZS51c2VyQWN0aW9uID0gQWN0aXZpdHkuTGl2ZUNoYW5nZTtcblx0XHRcdFx0XHRtZXNzYWdlUmVjZWl2ZShtZXNzYWdlLCB2aWV3KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkxlYXZlOlxuXHRcdFx0Ly8gUmVtb3ZpbmcgdGhlIGFjdGl2ZSB1c2VyLiBOb3QgcmVtb3ZpbmcgXCJtZVwiIGlmIEkgaGFkIHRoZSBzY3JlZW4gb3BlbiBpbiBhbm90aGVyIHNlc3Npb25cblx0XHRcdGFjdGl2ZVVzZXJzID0gYWN0aXZlVXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSBzZW5kZXIuaWQgfHwgdXNlci5tZSk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWRVVTRVJTLCBhY3RpdmVVc2Vycyk7XG5cdFx0XHRjb25zdCBhbGxBY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTKSB8fCB7fTtcblx0XHRcdGNvbnN0IHJlbW92ZVVzZXJBY3Rpdml0aWVzID0gZnVuY3Rpb24gKGJhZzogYW55KSB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGJhZykpIHtcblx0XHRcdFx0XHRyZXR1cm4gYmFnLmZpbHRlcigoYWN0aXZpdHkpID0+IGFjdGl2aXR5LmlkICE9PSBzZW5kZXIuaWQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgcCBpbiBiYWcpIHtcblx0XHRcdFx0XHRcdGJhZ1twXSA9IHJlbW92ZVVzZXJBY3Rpdml0aWVzKGJhZ1twXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBiYWc7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRyZW1vdmVVc2VyQWN0aXZpdGllcyhhbGxBY3Rpdml0aWVzKTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUywgYWxsQWN0aXZpdGllcyk7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgQWN0aXZpdHkuQ2hhbmdlOlxuXHRcdFx0Y29uc3QgbWV0YVBhdGhzID0gbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpLm1hcCgocGF0aCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gKHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0bWV0YVBhdGhzLmZvckVhY2goKG1ldGFQYXRoLCBpKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG5lc3RlZWRNZXNzYWdlID0ge1xuXHRcdFx0XHRcdC4uLm1lc3NhZ2UsXG5cdFx0XHRcdFx0Y2xpZW50Q29udGVudDogbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpW2ldXG5cdFx0XHRcdH07XG5cdFx0XHRcdGxldCBjdXJyZW50QWN0aXZpdGllczogYW55W10gPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBtZXRhUGF0aCkgfHwgW107XG5cdFx0XHRcdGFjdGl2aXR5S2V5ID0gZ2V0QWN0aXZpdHlLZXkobmVzdGVlZE1lc3NhZ2UuY2xpZW50Q29udGVudCk7XG5cdFx0XHRcdGN1cnJlbnRBY3Rpdml0aWVzID0gY3VycmVudEFjdGl2aXRpZXM/LmZpbHRlciAmJiBjdXJyZW50QWN0aXZpdGllcy5maWx0ZXIoKGFjdGl2aXR5KSA9PiBhY3Rpdml0eS5rZXkgIT09IGFjdGl2aXR5S2V5KTtcblx0XHRcdFx0aWYgKGN1cnJlbnRBY3Rpdml0aWVzKSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgsIGN1cnJlbnRBY3Rpdml0aWVzKTtcblx0XHRcdFx0XHR1cGRhdGUodmlldywgbmVzdGVlZE1lc3NhZ2UsIG1ldGFQYXRoLCBBY3Rpdml0eS5DaGFuZ2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuQ3JlYXRlOlxuXHRcdFx0Ly8gRm9yIGNyZWF0ZSB3ZSBhY3R1YWxseSBqdXN0IG5lZWQgdG8gcmVmcmVzaCB0aGUgdGFibGVcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuQ3JlYXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuRGVsZXRlOlxuXHRcdFx0Ly8gRm9yIG5vdyBhbHNvIHJlZnJlc2ggdGhlIHBhZ2UgYnV0IGluIGNhc2Ugb2YgZGVsZXRpb24gd2UgbmVlZCB0byBpbmZvcm0gdGhlIHVzZXJcblx0XHRcdHVwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuRGVsZXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuQWN0aXZhdGU6XG5cdFx0XHRkaXNjb25uZWN0KHZpZXcpO1xuXHRcdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0FDVElWQVRFXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBBY3Rpdml0eS5EaXNjYXJkOlxuXHRcdFx0ZGlzY29ubmVjdCh2aWV3KTtcblx0XHRcdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24oQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEXCIsIHNlbmRlci5uYW1lKSk7XG5cdFx0XHRuYXZpZ2F0ZShtZXNzYWdlLmNsaWVudENvbnRlbnQsIHZpZXcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Lypcblx0XHQvLyBUT0RPOiBBY3Rpb24gdG8gYmUgaW1wbGVtZW50ZWRcblx0XHRjYXNlIEFjdGl2aXR5LkFjdGlvbjpcblx0XHRcdC8vIEp1c3QgZm9yIHRlc3QgcmVhc29ucyBzaG93IGEgdG9hc3QgLSB0byBiZSBjaGVja2VkIHdpdGggVVhcblx0XHRcdE1lc3NhZ2VUb2FzdC5zaG93KFwiVXNlciBcIiArIHNlbmRlci5uYW1lICsgXCIgaGFzIGV4ZWN1dGVkIGFjdGlvbiBcIiArIG1ldGFQYXRoLnNwbGl0KFwifFwiKVswXSk7XG5cdFx0XHQvL3VwZGF0ZSh2aWV3LCBtZXNzYWdlLCBtZXRhUGF0aCwgQWN0aXZpdHkuRGVsZXRlKTtcblx0XHRcdGJyZWFrO1xuXHRcdCAqL1xuXHRcdGNhc2UgQWN0aXZpdHkuTGl2ZUNoYW5nZTpcblx0XHRcdGNvbnN0IGFjdGl2aXR5OiBVc2VyQWN0aXZpdHkgPSBzZW5kZXI7XG5cdFx0XHRhY3Rpdml0eS5rZXkgPSBnZXRBY3Rpdml0eUtleShtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXG5cdFx0XHQvLyBzdHVwaWQgSlNPTiBtb2RlbC4uLlxuXHRcdFx0bGV0IGluaXRKU09OTW9kZWw6IHN0cmluZyA9IFwiXCI7XG5cdFx0XHRjb25zdCBwYXJ0cyA9IG1ldGFQYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG5cdFx0XHRcdGluaXRKU09OTW9kZWwgKz0gXCIvXCIgKyBwYXJ0c1tpXTtcblx0XHRcdFx0aWYgKCFpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBpbml0SlNPTk1vZGVsKSkge1xuXHRcdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUyArIGluaXRKU09OTW9kZWwsIHt9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgpO1xuXHRcdFx0YWN0aXZpdGllcyA9IGFjdGl2aXRpZXM/LnNsaWNlID8gYWN0aXZpdGllcy5zbGljZSgpIDogW107XG5cdFx0XHRhY3Rpdml0aWVzLnB1c2goYWN0aXZpdHkpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgsIGFjdGl2aXRpZXMpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBBY3Rpdml0eS5VbmRvOlxuXHRcdFx0Ly8gVGhlIHVzZXIgZGlkIGEgY2hhbmdlIGJ1dCByZXZlcnRlZCBpdCwgdGhlcmVmb3JlIHVuYmxvY2sgdGhlIGNvbnRyb2xcblx0XHRcdGFjdGl2aXRpZXMgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBtZXRhUGF0aCk7XG5cdFx0XHRhY3Rpdml0eUtleSA9IGdldEFjdGl2aXR5S2V5KG1lc3NhZ2UuY2xpZW50Q29udGVudCk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KFxuXHRcdFx0XHRBQ1RJVklUSUVTICsgbWV0YVBhdGgsXG5cdFx0XHRcdGFjdGl2aXRpZXMuZmlsdGVyKChhKSA9PiBhLmtleSAhPT0gYWN0aXZpdHlLZXkpXG5cdFx0XHQpO1xuXHRcdFx0YnJlYWs7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlKHZpZXc6IFZpZXcsIG1lc3NhZ2U6IE1lc3NhZ2UsIG1ldGFQYXRoOiBzdHJpbmcsIGFjdGlvbjogQWN0aXZpdHkpIHtcblx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29sbGFib3JhdGlvblV0aWxzLmdldEFwcENvbXBvbmVudCh2aWV3KTtcblx0Y29uc3QgbWV0YU1vZGVsID0gdmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRjb25zdCBjdXJyZW50UGFnZSA9IGdldEN1cnJlbnRQYWdlKHZpZXcpO1xuXHRjb25zdCBzaWRlRWZmZWN0c1NlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cdGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gY3VycmVudFBhZ2UuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgY3VycmVudFBhdGggPSBjdXJyZW50Q29udGV4dC5nZXRQYXRoKCk7XG5cdGNvbnN0IGN1cnJlbnRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aChjdXJyZW50UGF0aCk7XG5cdGxldCBjaGFuZ2VkRG9jdW1lbnQgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQ7XG5cblx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuRGVsZXRlKSB7XG5cdFx0Ly8gY2hlY2sgaWYgdXNlciBjdXJyZW50bHkgZGlzcGxheXMgb25lIGRlbGV0ZWQgb2JqZWN0XG5cdFx0Y29uc3QgZGVsZXRlZE9iamVjdHMgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQuc3BsaXQoXCJ8XCIpO1xuXHRcdGNvbnN0IHBhcmVudERlbGV0ZWRJbmRleCA9IGRlbGV0ZWRPYmplY3RzLmZpbmRJbmRleCgoZGVsZXRlZE9iamVjdCkgPT4gY3VycmVudFBhdGguc3RhcnRzV2l0aChkZWxldGVkT2JqZWN0KSk7XG5cdFx0aWYgKHBhcmVudERlbGV0ZWRJbmRleCA+IC0xKSB7XG5cdFx0XHQvLyBhbnkgb3RoZXIgdXNlciBkZWxldGVkIHRoZSBvYmplY3QgSSdtIGN1cnJlbnRseSBsb29raW5nIGF0LiBJbmZvcm0gdGhlIHVzZXIgd2Ugd2lsbCBuYXZpZ2F0ZSB0byByb290IG5vd1xuXHRcdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RFTEVURVwiLCBtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbiksIHtcblx0XHRcdFx0b25DbG9zZTogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldENvbnRleHQgPSB2aWV3LmdldE1vZGVsKCkuYmluZENvbnRleHQoZGVsZXRlZE9iamVjdHNbcGFyZW50RGVsZXRlZEluZGV4XSkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRcdFx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLl9yb3V0aW5nLm5hdmlnYXRlQmFja0Zyb21Db250ZXh0KHRhcmdldENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0Ly8gVE9ETzogRm9yIG5vdyBqdXN0IHRha2UgdGhlIGZpcnN0IG9iamVjdCB0byBnZXQgdGhlIG1ldGEgcGF0aCBhbmQgZG8gYSBmdWxsIHJlZnJlc2ggb2YgdGhlIHRhYmxlXG5cdFx0Y2hhbmdlZERvY3VtZW50ID0gZGVsZXRlZE9iamVjdHNbMF07XG5cdH1cblxuXHRpZiAoY2hhbmdlZERvY3VtZW50LnN0YXJ0c1dpdGgoY3VycmVudFBhdGgpKSB7XG5cdFx0Ly8gRXhlY3V0ZSBTaWRlRWZmZWN0cyAoVE9ETyBmb3IgTWVldCB0aGVyZSBzaG91bGQgYmUgb25lIGNlbnRyYWwgbWV0aG9kKVxuXHRcdGNvbnN0IGFjdGl2aXR5UGF0aCA9IG1ldGFQYXRoLnJlcGxhY2UoY3VycmVudE1ldGFQYXRoLCBcIlwiKS5zbGljZSgxKTtcblx0XHRpZiAoYWN0aXZpdHlQYXRoKSB7XG5cdFx0XHQvLyBSZXF1ZXN0IGFsc28gdGhlIHByb3BlcnR5IGl0c2VsZlxuXHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHM6IGFueVtdID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogYWN0aXZpdHlQYXRoXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmdldEVudGl0eVR5cGVGcm9tQ29udGV4dChjdXJyZW50Q29udGV4dCk7XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlU2lkZUVmZmVjdHMgPSBzaWRlRWZmZWN0c1NlcnZpY2UuZ2V0T0RhdGFFbnRpdHlTaWRlRWZmZWN0cyhlbnRpdHlUeXBlISk7XG5cdFx0XHQvLyBQb29yIG1hbiBzb2x1dGlvbiB3aXRob3V0IGNoZWNraW5nIHNvdXJjZSB0YXJnZXRzLCBqdXN0IGZvciBQT0MsIHRoaXMgaXMgdGhyb3ctd2F5IGNvZGluZyBvbmx5XG5cdFx0XHRjb25zdCBvYmplY3Q6IGFueSA9IE9iamVjdDsgLy8ganVzdCB0byBvdmVyY29tZSBUUyBpc3N1ZXMsIHdpbGwgYmUgYW55d2F5IHJlcGxhY2VkXG5cdFx0XHRjb25zdCByZWxldmFudFNpZGVFZmZlY3RzID0gb2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRvYmplY3Rcblx0XHRcdFx0XHQuZW50cmllcyhlbnRpdHlUeXBlU2lkZUVmZmVjdHMpXG5cdFx0XHRcdFx0LmZpbHRlcigoeDogYW55W10pID0+IHhbMV0uU291cmNlUHJvcGVydGllcz8uZmluZEluZGV4KChzb3VyY2U6IGFueSkgPT4gc291cmNlLnZhbHVlID09PSBhY3Rpdml0eVBhdGgpID4gLTEpXG5cdFx0XHQpO1xuXHRcdFx0Zm9yIChjb25zdCBwIGluIHJlbGV2YW50U2lkZUVmZmVjdHMpIHtcblx0XHRcdFx0cmVsZXZhbnRTaWRlRWZmZWN0c1twXS5UYXJnZXRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHRhcmdldFByb3BlcnR5OiBhbnkpIHtcblx0XHRcdFx0XHRzaWRlRWZmZWN0cy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IHRhcmdldFByb3BlcnR5XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0c2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhzaWRlRWZmZWN0cywgY3VycmVudENvbnRleHQsIFwiJGF1dG9cIik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2ltdWxhdGUgYW55IGNoYW5nZSBzbyB0aGUgZWRpdCBmbG93IHNob3dzIHRoZSBkcmFmdCBpbmRpY2F0b3IgYW5kIHNldHMgdGhlIHBhZ2UgdG8gZGlydHlcblx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLmVkaXRGbG93LnVwZGF0ZURvY3VtZW50KGN1cnJlbnRDb250ZXh0LCBQcm9taXNlLnJlc29sdmUoKSk7XG59XG5cbmZ1bmN0aW9uIG5hdmlnYXRlKHBhdGg6IHN0cmluZywgdmlldzogVmlldykge1xuXHQvLyBUT0RPOiByb3V0aW5nLm5hdmlnYXRlIGRvZXNuJ3QgY29uc2lkZXIgc2VtYW50aWMgYm9va21hcmtpbmdcblx0Y29uc3QgY3VycmVudFBhZ2UgPSBnZXRDdXJyZW50UGFnZSh2aWV3KTtcblx0Y29uc3QgdGFyZ2V0Q29udGV4dCA9IHZpZXcuZ2V0TW9kZWwoKS5iaW5kQ29udGV4dChwYXRoKS5nZXRCb3VuZENvbnRleHQoKTtcblx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLnJvdXRpbmcubmF2aWdhdGUodGFyZ2V0Q29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRQYWdlKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29sbGFib3JhdGlvblV0aWxzLmdldEFwcENvbXBvbmVudCh2aWV3KTtcblx0Y29uc3Qgcm9vdFZpZXdDb250cm9sbGVyID0gYXBwQ29tcG9uZW50LmdldFJvb3RWaWV3Q29udHJvbGxlcigpIGFzIGFueTtcblx0cmV0dXJuIHJvb3RWaWV3Q29udHJvbGxlci5pc0ZjbEVuYWJsZWQoKVxuXHRcdD8gcm9vdFZpZXdDb250cm9sbGVyLmdldFJpZ2h0bW9zdFZpZXcoKVxuXHRcdDogQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldygoYXBwQ29tcG9uZW50LmdldFJvb3RDb250YWluZXIoKSBhcyBhbnkpLmdldEN1cnJlbnRQYWdlKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRBY3Rpdml0eUtleSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4geC5zdWJzdHJpbmcoeC5sYXN0SW5kZXhPZihcIihcIikgKyAxLCB4Lmxhc3RJbmRleE9mKFwiKVwiKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0Y29ubmVjdDogY29ubmVjdCxcblx0ZGlzY29ubmVjdDogZGlzY29ubmVjdCxcblx0aXNDb25uZWN0ZWQ6IGlzQ29ubmVjdGVkLFxuXHRpc0NvbGxhYm9yYXRpb25FbmFibGVkOiBpc0NvbGxhYm9yYXRpb25FbmFibGVkLFxuXHRzZW5kOiBzZW5kXG59O1xuIl19
|
|
361
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjdGl2aXR5U3luYy50cyJdLCJuYW1lcyI6WyJNWUFDVElWSVRZIiwiQUNUSVZFVVNFUlMiLCJBQ1RJVklUSUVTIiwiaXNDb25uZWN0ZWQiLCJjb250cm9sIiwiaW50ZXJuYWxNb2RlbCIsImdldE1vZGVsIiwiaXNDb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwic2VuZCIsImFjdGlvbiIsImNvbnRlbnQiLCJjbGllbnRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsIm15QWN0aXZpdHkiLCJnZXRQcm9wZXJ0eSIsInNldFByb3BlcnR5IiwiYnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UiLCJnZXRXZWJTb2NrZXRCYXNlVVJMIiwiYmluZGluZ0NvbnRleHQiLCJnZXRNZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJpc0NvbGxhYm9yYXRpb25FbmFibGVkIiwidmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiY29ubmVjdCIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJ3ZWJTb2NrZXRCYXNlVVJMIiwicmVxdWVzdFByb3BlcnR5Iiwic0RyYWZ0VVVJRCIsImluaXRpYWxpemVDb2xsYWJvcmF0aW9uIiwibWVzc2FnZSIsIm1lc3NhZ2VSZWNlaXZlIiwiZGlzY29ubmVjdCIsImVuZENvbGxhYm9yYXRpb24iLCJhY3RpdmVVc2VycyIsImFjdGl2aXRpZXMiLCJhY3Rpdml0eUtleSIsIm1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJ1c2VyQWN0aW9uIiwiY2xpZW50QWN0aW9uIiwic2VuZGVyIiwiaWQiLCJ1c2VySUQiLCJuYW1lIiwidXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwibWFjdGl2aXR5IiwiSm9pbiIsIkpvaW5FY2hvIiwiZmluZEluZGV4IiwidXNlciIsInB1c2giLCJMZWF2ZSIsImZpbHRlciIsImFsbEFjdGl2aXRpZXMiLCJyZW1vdmVVc2VyQWN0aXZpdGllcyIsImJhZyIsImFjdGl2aXR5IiwicCIsIkNoYW5nZSIsIm1ldGFQYXRocyIsInNwbGl0IiwibWFwIiwicGF0aCIsImZvckVhY2giLCJjdXJyZW50TWV0YVBhdGgiLCJpIiwibmVzdGVlZE1lc3NhZ2UiLCJjdXJyZW50QWN0aXZpdGllcyIsImdldEFjdGl2aXR5S2V5Iiwia2V5IiwidXBkYXRlIiwiQ3JlYXRlIiwiRGVsZXRlIiwiQWN0aXZhdGUiLCJNZXNzYWdlQm94IiwiaW5mb3JtYXRpb24iLCJnZXRUZXh0IiwibmF2aWdhdGUiLCJEaXNjYXJkIiwiaW5pdEpTT05Nb2RlbCIsInBhcnRzIiwibGVuZ3RoIiwic2xpY2UiLCJVbmRvIiwiYSIsImFwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsIm1ldGFNb2RlbCIsImN1cnJlbnRQYWdlIiwiZ2V0Q3VycmVudFBhZ2UiLCJzaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJjdXJyZW50Q29udGV4dCIsImN1cnJlbnRQYXRoIiwiZ2V0UGF0aCIsImNoYW5nZWREb2N1bWVudCIsImRlbGV0ZWRPYmplY3RzIiwicGFyZW50RGVsZXRlZEluZGV4IiwiZGVsZXRlZE9iamVjdCIsInN0YXJ0c1dpdGgiLCJvbkNsb3NlIiwidGFyZ2V0Q29udGV4dCIsImJpbmRDb250ZXh0IiwiZ2V0Qm91bmRDb250ZXh0IiwiZ2V0Q29udHJvbGxlciIsIl9yb3V0aW5nIiwibmF2aWdhdGVCYWNrRnJvbUNvbnRleHQiLCJhY3Rpdml0eVBhdGgiLCJyZXBsYWNlIiwic2lkZUVmZmVjdHMiLCIkUHJvcGVydHlQYXRoIiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGVGcm9tQ29udGV4dCIsImVudGl0eVR5cGVTaWRlRWZmZWN0cyIsImdldE9EYXRhRW50aXR5U2lkZUVmZmVjdHMiLCJvYmplY3QiLCJPYmplY3QiLCJyZWxldmFudFNpZGVFZmZlY3RzIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwieCIsIlNvdXJjZVByb3BlcnRpZXMiLCJzb3VyY2UiLCJ2YWx1ZSIsIlRhcmdldFByb3BlcnRpZXMiLCJ0YXJnZXRQcm9wZXJ0eSIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVkaXRGbG93IiwidXBkYXRlRG9jdW1lbnQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJvdXRpbmciLCJyb290Vmlld0NvbnRyb2xsZXIiLCJnZXRSb290Vmlld0NvbnRyb2xsZXIiLCJpc0ZjbEVuYWJsZWQiLCJnZXRSaWdodG1vc3RWaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwiZ2V0Um9vdENvbnRhaW5lciIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxNQUFNQSxVQUFVLEdBQUcsMkJBQW5CO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLDRCQUFwQjtBQUNBLE1BQU1DLFVBQVUsR0FBRywyQkFBbkI7O0FBRU8sTUFBTUMsV0FBVyxHQUFHLFVBQVVDLE9BQVYsRUFBcUM7QUFDL0QsUUFBTUMsYUFBYSxHQUFHRCxPQUFPLENBQUNFLFFBQVIsQ0FBaUIsVUFBakIsQ0FBdEI7QUFDQSxXQUFPQyx3QkFBd0IsQ0FBQ0YsYUFBRCxDQUEvQjtBQUNBLEdBSE07Ozs7QUFLQSxNQUFNRyxJQUFJLEdBQUcsVUFBVUosT0FBVixFQUE0QkssTUFBNUIsRUFBOENDLE9BQTlDLEVBQXNGO0FBQ3pHLFFBQUlQLFdBQVcsQ0FBQ0MsT0FBRCxDQUFmLEVBQTBCO0FBQ3pCLFVBQU1DLGFBQWEsR0FBR0QsT0FBTyxDQUFDRSxRQUFSLENBQWlCLFVBQWpCLENBQXRCO0FBQ0EsVUFBTUssYUFBYSxHQUFHQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsT0FBZCxJQUF5QkEsT0FBTyxDQUFDSSxJQUFSLENBQWEsR0FBYixDQUF6QixHQUE2Q0osT0FBbkU7O0FBRUEsVUFBSUQsTUFBTSxLQUFLTSxRQUFRLENBQUNDLFVBQXhCLEVBQW9DO0FB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ZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQge1xuXHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZSxcblx0ZW5kQ29sbGFib3JhdGlvbixcblx0aW5pdGlhbGl6ZUNvbGxhYm9yYXRpb24sXG5cdGlzQ29sbGFib3JhdGlvbkNvbm5lY3RlZFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9BY3Rpdml0eUJhc2VcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSwgVXNlciwgVXNlckFjdGl2aXR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IHsgQWN0aXZpdHksIENvbGxhYm9yYXRpb25VdGlscyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmNvbnN0IE1ZQUNUSVZJVFkgPSBcIi9jb2xsYWJvcmF0aW9uL215QWN0aXZpdHlcIjtcbmNvbnN0IEFDVElWRVVTRVJTID0gXCIvY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiO1xuY29uc3QgQUNUSVZJVElFUyA9IFwiL2NvbGxhYm9yYXRpb24vYWN0aXZpdGllc1wiO1xuXG5leHBvcnQgY29uc3QgaXNDb25uZWN0ZWQgPSBmdW5jdGlvbiAoY29udHJvbDogQ29udHJvbCk6IGJvb2xlYW4ge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsID0gY29udHJvbC5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0cmV0dXJuIGlzQ29sbGFib3JhdGlvbkNvbm5lY3RlZChpbnRlcm5hbE1vZGVsKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wsIGFjdGlvbjogQWN0aXZpdHksIGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG5cdGlmIChpc0Nvbm5lY3RlZChjb250cm9sKSkge1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWwgPSBjb250cm9sLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRcdGNvbnN0IGNsaWVudENvbnRlbnQgPSBBcnJheS5pc0FycmF5KGNvbnRlbnQpID8gY29udGVudC5qb2luKFwifFwiKSA6IGNvbnRlbnQ7XG5cblx0XHRpZiAoYWN0aW9uID09PSBBY3Rpdml0eS5MaXZlQ2hhbmdlKSB7XG5cdFx0XHQvLyBUbyBhdm9pZCB1bm5lY2Vzc2FyeSB0cmFmZmljIHdlIGtlZXAgdHJhY2sgb2YgbGl2ZSBjaGFuZ2VzIGFuZCBzZW5kIGl0IG9ubHkgb25jZVxuXHRcdFx0Y29uc3QgbXlBY3Rpdml0eSA9IGludGVybmFsTW9kZWwuZ2V0UHJvcGVydHkoTVlBQ1RJVklUWSk7XG5cdFx0XHRpZiAobXlBY3Rpdml0eSA9PT0gY2xpZW50Q29udGVudCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KE1ZQUNUSVZJVFksIGNsaWVudENvbnRlbnQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyB1c2VyIGZpbmlzaGVkIHRoZSBhY3Rpdml0eVxuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShNWUFDVElWSVRZLCBudWxsKTtcblx0XHR9XG5cblx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShhY3Rpb24sIGNsaWVudENvbnRlbnQsIGludGVybmFsTW9kZWwpO1xuXHR9XG59O1xuXG5jb25zdCBnZXRXZWJTb2NrZXRCYXNlVVJMID0gZnVuY3Rpb24gKGJpbmRpbmdDb250ZXh0OiBDb250ZXh0KTogc3RyaW5nIHtcblx0cmV0dXJuIGJpbmRpbmdDb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KFwiL0Bjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuV2ViU29ja2V0QmFzZVVSTFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxhYm9yYXRpb25FbmFibGVkID0gZnVuY3Rpb24gKHZpZXc6IFZpZXcpOiBib29sZWFuIHtcblx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3Py5nZXRCaW5kaW5nQ29udGV4dCAmJiAodmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQpO1xuXHRyZXR1cm4gISEoYmluZGluZ0NvbnRleHQgJiYgZ2V0V2ViU29ja2V0QmFzZVVSTChiaW5kaW5nQ29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbm5lY3QgPSBhc3luYyBmdW5jdGlvbiAodmlldzogVmlldykge1xuXHRjb25zdCBpbnRlcm5hbE1vZGVsID0gdmlldy5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0Y29uc3QgbWUgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0TWUodmlldyk7XG5cblx0Ly8gUmV0cmlldmluZyBNRSBmcm9tIHNoZWxsIHNlcnZpY2Vcblx0aWYgKCFtZSkge1xuXHRcdC8vIG5vIG1lID0gbm8gc2hlbGwgPSBub3Qgc3VyZSB3aGF0IHRvIGRvXG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0Y29uc3Qgd2ViU29ja2V0QmFzZVVSTCA9IGdldFdlYlNvY2tldEJhc2VVUkwoYmluZGluZ0NvbnRleHQpO1xuXG5cdGlmICghd2ViU29ja2V0QmFzZVVSTCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHNEcmFmdFVVSUQgPSBhd2FpdCBiaW5kaW5nQ29udGV4dC5yZXF1ZXN0UHJvcGVydHkoXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdFVVSURcIik7XG5cdGlmICghc0RyYWZ0VVVJRCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uKG1lLCB3ZWJTb2NrZXRCYXNlVVJMLCBzRHJhZnRVVUlELCBpbnRlcm5hbE1vZGVsLCAobWVzc2FnZTogTWVzc2FnZSkgPT4ge1xuXHRcdG1lc3NhZ2VSZWNlaXZlKG1lc3NhZ2UsIHZpZXcpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNjb25uZWN0ID0gZnVuY3Rpb24gKGNvbnRyb2w6IENvbnRyb2wpIHtcblx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IGNvbnRyb2wuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWw7XG5cdGVuZENvbGxhYm9yYXRpb24oaW50ZXJuYWxNb2RlbCk7XG59O1xuXG5mdW5jdGlvbiBtZXNzYWdlUmVjZWl2ZShtZXNzYWdlOiBNZXNzYWdlLCB2aWV3OiBWaWV3KSB7XG5cdGNvbnN0IGludGVybmFsTW9kZWw6IGFueSA9IHZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKTtcblx0bGV0IGFjdGl2ZVVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWRVVTRVJTKTtcblx0bGV0IGFjdGl2aXRpZXM6IFVzZXJBY3Rpdml0eVtdO1xuXHRsZXQgYWN0aXZpdHlLZXk6IHN0cmluZztcblx0Y29uc3QgbWV0YVBhdGg6IHN0cmluZyA9IG1lc3NhZ2UuY2xpZW50Q29udGVudCAmJiAodmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsKS5nZXRNZXRhUGF0aChtZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXHRtZXNzYWdlLnVzZXJBY3Rpb24gPSBtZXNzYWdlLnVzZXJBY3Rpb24gfHwgbWVzc2FnZS5jbGllbnRBY3Rpb247XG5cblx0Y29uc3Qgc2VuZGVyOiBVc2VyID0ge1xuXHRcdGlkOiBtZXNzYWdlLnVzZXJJRCxcblx0XHRuYW1lOiBtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbixcblx0XHRpbml0aWFsczogQ29sbGFib3JhdGlvblV0aWxzLmZvcm1hdEluaXRpYWxzKG1lc3NhZ2UudXNlckRlc2NyaXB0aW9uKSxcblx0XHRjb2xvcjogQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcihtZXNzYWdlLnVzZXJJRCwgYWN0aXZlVXNlcnMsIFtdKVxuXHR9O1xuXG5cdGxldCBtYWN0aXZpdHk6IFVzZXJBY3Rpdml0eSA9IHNlbmRlcjtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG5cdHN3aXRjaCAobWVzc2FnZS51c2VyQWN0aW9uKSB7XG5cdFx0Y2FzZSBBY3Rpdml0eS5Kb2luOlxuXHRcdGNhc2UgQWN0aXZpdHkuSm9pbkVjaG86XG5cdFx0XHRpZiAoYWN0aXZlVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBzZW5kZXIuaWQpID09PSAtMSkge1xuXHRcdFx0XHRhY3RpdmVVc2Vycy5wdXNoKHNlbmRlcik7XG5cdFx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZFVVNFUlMsIGFjdGl2ZVVzZXJzKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbikge1xuXHRcdFx0XHQvLyB3ZSBlY2hvIG91ciBleGlzdGVuY2UgdG8gdGhlIG5ld2x5IGVudGVyZWQgdXNlciBhbmQgYWxzbyBzZW5kIHRoZSBjdXJyZW50IGFjdGl2aXR5IGlmIHRoZXJlIGlzIGFueVxuXHRcdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShBY3Rpdml0eS5Kb2luRWNobywgaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShNWUFDVElWSVRZKSwgaW50ZXJuYWxNb2RlbCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtZXNzYWdlLnVzZXJBY3Rpb24gPT09IEFjdGl2aXR5LkpvaW5FY2hvKSB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLmNsaWVudENvbnRlbnQpIHtcblx0XHRcdFx0XHQvLyBhbm90aGVyIHVzZXIgd2FzIGFscmVhZHkgdHlwaW5nIHRoZXJlZm9yZSBJIHdhbnQgdG8gc2VlIGhpcyBhY3Rpdml0eSBpbW1lZGlhdGVseS4gQ2FsbGluZyBtZSBhZ2FpbiBhcyBhIGxpdmUgY2hhbmdlXG5cdFx0XHRcdFx0bWVzc2FnZS51c2VyQWN0aW9uID0gQWN0aXZpdHkuTGl2ZUNoYW5nZTtcblx0XHRcdFx0XHRtZXNzYWdlUmVjZWl2ZShtZXNzYWdlLCB2aWV3KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkxlYXZlOlxuXHRcdFx0Ly8gUmVtb3ZpbmcgdGhlIGFjdGl2ZSB1c2VyLiBOb3QgcmVtb3ZpbmcgXCJtZVwiIGlmIEkgaGFkIHRoZSBzY3JlZW4gb3BlbiBpbiBhbm90aGVyIHNlc3Npb25cblx0XHRcdGFjdGl2ZVVzZXJzID0gYWN0aXZlVXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSBzZW5kZXIuaWQgfHwgdXNlci5tZSk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWRVVTRVJTLCBhY3RpdmVVc2Vycyk7XG5cdFx0XHRjb25zdCBhbGxBY3Rpdml0aWVzID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTKSB8fCB7fTtcblx0XHRcdGNvbnN0IHJlbW92ZVVzZXJBY3Rpdml0aWVzID0gZnVuY3Rpb24gKGJhZzogYW55KSB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGJhZykpIHtcblx0XHRcdFx0XHRyZXR1cm4gYmFnLmZpbHRlcigoYWN0aXZpdHkpID0+IGFjdGl2aXR5LmlkICE9PSBzZW5kZXIuaWQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgcCBpbiBiYWcpIHtcblx0XHRcdFx0XHRcdGJhZ1twXSA9IHJlbW92ZVVzZXJBY3Rpdml0aWVzKGJhZ1twXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBiYWc7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRyZW1vdmVVc2VyQWN0aXZpdGllcyhhbGxBY3Rpdml0aWVzKTtcblx0XHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoQUNUSVZJVElFUywgYWxsQWN0aXZpdGllcyk7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgQWN0aXZpdHkuQ2hhbmdlOlxuXHRcdFx0Y29uc3QgbWV0YVBhdGhzID0gbWVzc2FnZT8uY2xpZW50Q29udGVudD8uc3BsaXQoXCJ8XCIpLm1hcCgocGF0aCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gKHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0bWV0YVBhdGhzLmZvckVhY2goKGN1cnJlbnRNZXRhUGF0aCwgaSkgPT4ge1xuXHRcdFx0XHRjb25zdCBuZXN0ZWVkTWVzc2FnZSA9IHtcblx0XHRcdFx0XHQuLi5tZXNzYWdlLFxuXHRcdFx0XHRcdGNsaWVudENvbnRlbnQ6IG1lc3NhZ2U/LmNsaWVudENvbnRlbnQ/LnNwbGl0KFwifFwiKVtpXVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRsZXQgY3VycmVudEFjdGl2aXRpZXM6IGFueVtdID0gaW50ZXJuYWxNb2RlbC5nZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgY3VycmVudE1ldGFQYXRoKSB8fCBbXTtcblx0XHRcdFx0YWN0aXZpdHlLZXkgPSBnZXRBY3Rpdml0eUtleShuZXN0ZWVkTWVzc2FnZS5jbGllbnRDb250ZW50KTtcblx0XHRcdFx0Y3VycmVudEFjdGl2aXRpZXMgPSBjdXJyZW50QWN0aXZpdGllcz8uZmlsdGVyICYmIGN1cnJlbnRBY3Rpdml0aWVzLmZpbHRlcigoYWN0aXZpdHkpID0+IGFjdGl2aXR5LmtleSAhPT0gYWN0aXZpdHlLZXkpO1xuXHRcdFx0XHRpZiAoY3VycmVudEFjdGl2aXRpZXMpIHtcblx0XHRcdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KEFDVElWSVRJRVMgKyBjdXJyZW50TWV0YVBhdGgsIGN1cnJlbnRBY3Rpdml0aWVzKTtcblx0XHRcdFx0XHR1cGRhdGUodmlldywgbmVzdGVlZE1lc3NhZ2UsIGN1cnJlbnRNZXRhUGF0aCwgQWN0aXZpdHkuQ2hhbmdlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkNyZWF0ZTpcblx0XHRcdC8vIEZvciBjcmVhdGUgd2UgYWN0dWFsbHkganVzdCBuZWVkIHRvIHJlZnJlc2ggdGhlIHRhYmxlXG5cdFx0XHR1cGRhdGUodmlldywgbWVzc2FnZSwgbWV0YVBhdGgsIEFjdGl2aXR5LkNyZWF0ZSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkRlbGV0ZTpcblx0XHRcdC8vIEZvciBub3cgYWxzbyByZWZyZXNoIHRoZSBwYWdlIGJ1dCBpbiBjYXNlIG9mIGRlbGV0aW9uIHdlIG5lZWQgdG8gaW5mb3JtIHRoZSB1c2VyXG5cdFx0XHR1cGRhdGUodmlldywgbWVzc2FnZSwgbWV0YVBhdGgsIEFjdGl2aXR5LkRlbGV0ZSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIEFjdGl2aXR5LkFjdGl2YXRlOlxuXHRcdFx0ZGlzY29ubmVjdCh2aWV3KTtcblx0XHRcdE1lc3NhZ2VCb3guaW5mb3JtYXRpb24oQ29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9BQ1RJVkFURVwiLCBzZW5kZXIubmFtZSkpO1xuXHRcdFx0bmF2aWdhdGUobWVzc2FnZS5jbGllbnRDb250ZW50LCB2aWV3KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQWN0aXZpdHkuRGlzY2FyZDpcblx0XHRcdGRpc2Nvbm5lY3Qodmlldyk7XG5cdFx0XHRNZXNzYWdlQm94LmluZm9ybWF0aW9uKENvbGxhYm9yYXRpb25VdGlscy5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRFwiLCBzZW5kZXIubmFtZSkpO1xuXHRcdFx0bmF2aWdhdGUobWVzc2FnZS5jbGllbnRDb250ZW50LCB2aWV3KTtcblx0XHRcdGJyZWFrO1xuXHRcdC8qXG5cdFx0Ly8gVE9ETzogQWN0aW9uIHRvIGJlIGltcGxlbWVudGVkXG5cdFx0Y2FzZSBBY3Rpdml0eS5BY3Rpb246XG5cdFx0XHQvLyBKdXN0IGZvciB0ZXN0IHJlYXNvbnMgc2hvdyBhIHRvYXN0IC0gdG8gYmUgY2hlY2tlZCB3aXRoIFVYXG5cdFx0XHRNZXNzYWdlVG9hc3Quc2hvdyhcIlVzZXIgXCIgKyBzZW5kZXIubmFtZSArIFwiIGhhcyBleGVjdXRlZCBhY3Rpb24gXCIgKyBtZXRhUGF0aC5zcGxpdChcInxcIilbMF0pO1xuXHRcdFx0Ly91cGRhdGUodmlldywgbWVzc2FnZSwgbWV0YVBhdGgsIEFjdGl2aXR5LkRlbGV0ZSk7XG5cdFx0XHRicmVhaztcblx0XHQgKi9cblx0XHRjYXNlIEFjdGl2aXR5LkxpdmVDaGFuZ2U6XG5cdFx0XHRtYWN0aXZpdHkgPSBzZW5kZXI7XG5cdFx0XHRtYWN0aXZpdHkua2V5ID0gZ2V0QWN0aXZpdHlLZXkobWVzc2FnZS5jbGllbnRDb250ZW50KTtcblxuXHRcdFx0Ly8gc3R1cGlkIEpTT04gbW9kZWwuLi5cblx0XHRcdGxldCBpbml0SlNPTk1vZGVsOiBzdHJpbmcgPSBcIlwiO1xuXHRcdFx0Y29uc3QgcGFydHMgPSBtZXRhUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0XHRmb3IgKGxldCBpID0gMTsgaSA8IHBhcnRzLmxlbmd0aCAtIDE7IGkrKykge1xuXHRcdFx0XHRpbml0SlNPTk1vZGVsICs9IGAvJHtwYXJ0c1tpXX1gO1xuXHRcdFx0XHRpZiAoIWludGVybmFsTW9kZWwuZ2V0UHJvcGVydHkoQUNUSVZJVElFUyArIGluaXRKU09OTW9kZWwpKSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgaW5pdEpTT05Nb2RlbCwge30pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGFjdGl2aXRpZXMgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBtZXRhUGF0aCk7XG5cdFx0XHRhY3Rpdml0aWVzID0gYWN0aXZpdGllcz8uc2xpY2UgPyBhY3Rpdml0aWVzLnNsaWNlKCkgOiBbXTtcblx0XHRcdGFjdGl2aXRpZXMucHVzaChtYWN0aXZpdHkpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShBQ1RJVklUSUVTICsgbWV0YVBhdGgsIGFjdGl2aXRpZXMpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBBY3Rpdml0eS5VbmRvOlxuXHRcdFx0Ly8gVGhlIHVzZXIgZGlkIGEgY2hhbmdlIGJ1dCByZXZlcnRlZCBpdCwgdGhlcmVmb3JlIHVuYmxvY2sgdGhlIGNvbnRyb2xcblx0XHRcdGFjdGl2aXRpZXMgPSBpbnRlcm5hbE1vZGVsLmdldFByb3BlcnR5KEFDVElWSVRJRVMgKyBtZXRhUGF0aCk7XG5cdFx0XHRhY3Rpdml0eUtleSA9IGdldEFjdGl2aXR5S2V5KG1lc3NhZ2UuY2xpZW50Q29udGVudCk7XG5cdFx0XHRpbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KFxuXHRcdFx0XHRBQ1RJVklUSUVTICsgbWV0YVBhdGgsXG5cdFx0XHRcdGFjdGl2aXRpZXMuZmlsdGVyKChhKSA9PiBhLmtleSAhPT0gYWN0aXZpdHlLZXkpXG5cdFx0XHQpO1xuXHRcdFx0YnJlYWs7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlKHZpZXc6IFZpZXcsIG1lc3NhZ2U6IE1lc3NhZ2UsIG1ldGFQYXRoOiBzdHJpbmcsIGFjdGlvbjogQWN0aXZpdHkpIHtcblx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29sbGFib3JhdGlvblV0aWxzLmdldEFwcENvbXBvbmVudCh2aWV3KTtcblx0Y29uc3QgbWV0YU1vZGVsID0gdmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRjb25zdCBjdXJyZW50UGFnZSA9IGdldEN1cnJlbnRQYWdlKHZpZXcpO1xuXHRjb25zdCBzaWRlRWZmZWN0c1NlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cdGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gY3VycmVudFBhZ2UuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgY3VycmVudFBhdGggPSBjdXJyZW50Q29udGV4dC5nZXRQYXRoKCk7XG5cdGNvbnN0IGN1cnJlbnRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aChjdXJyZW50UGF0aCk7XG5cdGxldCBjaGFuZ2VkRG9jdW1lbnQgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQ7XG5cblx0aWYgKGFjdGlvbiA9PT0gQWN0aXZpdHkuRGVsZXRlKSB7XG5cdFx0Ly8gY2hlY2sgaWYgdXNlciBjdXJyZW50bHkgZGlzcGxheXMgb25lIGRlbGV0ZWQgb2JqZWN0XG5cdFx0Y29uc3QgZGVsZXRlZE9iamVjdHMgPSBtZXNzYWdlLmNsaWVudENvbnRlbnQuc3BsaXQoXCJ8XCIpO1xuXHRcdGNvbnN0IHBhcmVudERlbGV0ZWRJbmRleCA9IGRlbGV0ZWRPYmplY3RzLmZpbmRJbmRleCgoZGVsZXRlZE9iamVjdCkgPT4gY3VycmVudFBhdGguc3RhcnRzV2l0aChkZWxldGVkT2JqZWN0KSk7XG5cdFx0aWYgKHBhcmVudERlbGV0ZWRJbmRleCA+IC0xKSB7XG5cdFx0XHQvLyBhbnkgb3RoZXIgdXNlciBkZWxldGVkIHRoZSBvYmplY3QgSSdtIGN1cnJlbnRseSBsb29raW5nIGF0LiBJbmZvcm0gdGhlIHVzZXIgd2Ugd2lsbCBuYXZpZ2F0ZSB0byByb290IG5vd1xuXHRcdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RFTEVURVwiLCBtZXNzYWdlLnVzZXJEZXNjcmlwdGlvbiksIHtcblx0XHRcdFx0b25DbG9zZTogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldENvbnRleHQgPSB2aWV3LmdldE1vZGVsKCkuYmluZENvbnRleHQoZGVsZXRlZE9iamVjdHNbcGFyZW50RGVsZXRlZEluZGV4XSkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRcdFx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLl9yb3V0aW5nLm5hdmlnYXRlQmFja0Zyb21Db250ZXh0KHRhcmdldENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0Ly8gVE9ETzogRm9yIG5vdyBqdXN0IHRha2UgdGhlIGZpcnN0IG9iamVjdCB0byBnZXQgdGhlIG1ldGEgcGF0aCBhbmQgZG8gYSBmdWxsIHJlZnJlc2ggb2YgdGhlIHRhYmxlXG5cdFx0Y2hhbmdlZERvY3VtZW50ID0gZGVsZXRlZE9iamVjdHNbMF07XG5cdH1cblxuXHRpZiAoY2hhbmdlZERvY3VtZW50LnN0YXJ0c1dpdGgoY3VycmVudFBhdGgpKSB7XG5cdFx0Ly8gRXhlY3V0ZSBTaWRlRWZmZWN0cyAoVE9ETyBmb3IgTWVldCB0aGVyZSBzaG91bGQgYmUgb25lIGNlbnRyYWwgbWV0aG9kKVxuXHRcdGNvbnN0IGFjdGl2aXR5UGF0aCA9IG1ldGFQYXRoLnJlcGxhY2UoY3VycmVudE1ldGFQYXRoLCBcIlwiKS5zbGljZSgxKTtcblx0XHRpZiAoYWN0aXZpdHlQYXRoKSB7XG5cdFx0XHQvLyBSZXF1ZXN0IGFsc28gdGhlIHByb3BlcnR5IGl0c2VsZlxuXHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHM6IGFueVtdID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogYWN0aXZpdHlQYXRoXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmdldEVudGl0eVR5cGVGcm9tQ29udGV4dChjdXJyZW50Q29udGV4dCk7XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlU2lkZUVmZmVjdHMgPSBzaWRlRWZmZWN0c1NlcnZpY2UuZ2V0T0RhdGFFbnRpdHlTaWRlRWZmZWN0cyhlbnRpdHlUeXBlISk7XG5cdFx0XHQvLyBQb29yIG1hbiBzb2x1dGlvbiB3aXRob3V0IGNoZWNraW5nIHNvdXJjZSB0YXJnZXRzLCBqdXN0IGZvciBQT0MsIHRoaXMgaXMgdGhyb3ctd2F5IGNvZGluZyBvbmx5XG5cdFx0XHRjb25zdCBvYmplY3Q6IGFueSA9IE9iamVjdDsgLy8ganVzdCB0byBvdmVyY29tZSBUUyBpc3N1ZXMsIHdpbGwgYmUgYW55d2F5IHJlcGxhY2VkXG5cdFx0XHRjb25zdCByZWxldmFudFNpZGVFZmZlY3RzID0gb2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRvYmplY3Rcblx0XHRcdFx0XHQuZW50cmllcyhlbnRpdHlUeXBlU2lkZUVmZmVjdHMpXG5cdFx0XHRcdFx0LmZpbHRlcigoeDogYW55W10pID0+IHhbMV0uU291cmNlUHJvcGVydGllcz8uZmluZEluZGV4KChzb3VyY2U6IGFueSkgPT4gc291cmNlLnZhbHVlID09PSBhY3Rpdml0eVBhdGgpID4gLTEpXG5cdFx0XHQpO1xuXHRcdFx0Zm9yIChjb25zdCBwIGluIHJlbGV2YW50U2lkZUVmZmVjdHMpIHtcblx0XHRcdFx0cmVsZXZhbnRTaWRlRWZmZWN0c1twXS5UYXJnZXRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHRhcmdldFByb3BlcnR5OiBhbnkpIHtcblx0XHRcdFx0XHRzaWRlRWZmZWN0cy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IHRhcmdldFByb3BlcnR5XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0c2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhzaWRlRWZmZWN0cywgY3VycmVudENvbnRleHQsIFwiJGF1dG9cIik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2ltdWxhdGUgYW55IGNoYW5nZSBzbyB0aGUgZWRpdCBmbG93IHNob3dzIHRoZSBkcmFmdCBpbmRpY2F0b3IgYW5kIHNldHMgdGhlIHBhZ2UgdG8gZGlydHlcblx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLmVkaXRGbG93LnVwZGF0ZURvY3VtZW50KGN1cnJlbnRDb250ZXh0LCBQcm9taXNlLnJlc29sdmUoKSk7XG59XG5cbmZ1bmN0aW9uIG5hdmlnYXRlKHBhdGg6IHN0cmluZywgdmlldzogVmlldykge1xuXHQvLyBUT0RPOiByb3V0aW5nLm5hdmlnYXRlIGRvZXNuJ3QgY29uc2lkZXIgc2VtYW50aWMgYm9va21hcmtpbmdcblx0Y29uc3QgY3VycmVudFBhZ2UgPSBnZXRDdXJyZW50UGFnZSh2aWV3KTtcblx0Y29uc3QgdGFyZ2V0Q29udGV4dCA9IHZpZXcuZ2V0TW9kZWwoKS5iaW5kQ29udGV4dChwYXRoKS5nZXRCb3VuZENvbnRleHQoKTtcblx0Y3VycmVudFBhZ2UuZ2V0Q29udHJvbGxlcigpLnJvdXRpbmcubmF2aWdhdGUodGFyZ2V0Q29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRQYWdlKHZpZXc6IFZpZXcpIHtcblx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29sbGFib3JhdGlvblV0aWxzLmdldEFwcENvbXBvbmVudCh2aWV3KTtcblx0Y29uc3Qgcm9vdFZpZXdDb250cm9sbGVyID0gYXBwQ29tcG9uZW50LmdldFJvb3RWaWV3Q29udHJvbGxlcigpIGFzIGFueTtcblx0cmV0dXJuIHJvb3RWaWV3Q29udHJvbGxlci5pc0ZjbEVuYWJsZWQoKVxuXHRcdD8gcm9vdFZpZXdDb250cm9sbGVyLmdldFJpZ2h0bW9zdFZpZXcoKVxuXHRcdDogQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldygoYXBwQ29tcG9uZW50LmdldFJvb3RDb250YWluZXIoKSBhcyBhbnkpLmdldEN1cnJlbnRQYWdlKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRBY3Rpdml0eUtleSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4geC5zdWJzdHJpbmcoeC5sYXN0SW5kZXhPZihcIihcIikgKyAxLCB4Lmxhc3RJbmRleE9mKFwiKVwiKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0Y29ubmVjdDogY29ubmVjdCxcblx0ZGlzY29ubmVjdDogZGlzY29ubmVjdCxcblx0aXNDb25uZWN0ZWQ6IGlzQ29ubmVjdGVkLFxuXHRpc0NvbGxhYm9yYXRpb25FbmFibGVkOiBpc0NvbGxhYm9yYXRpb25FbmFibGVkLFxuXHRzZW5kOiBzZW5kXG59O1xuIl19
|
|
@@ -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";
|
|
@@ -106,6 +101,8 @@ function messageReceive(message: Message, view: View) {
|
|
|
106
101
|
color: CollaborationUtils.getUserColor(message.userID, activeUsers, [])
|
|
107
102
|
};
|
|
108
103
|
|
|
104
|
+
let mactivity: UserActivity = sender;
|
|
105
|
+
|
|
109
106
|
// eslint-disable-next-line default-case
|
|
110
107
|
switch (message.userAction) {
|
|
111
108
|
case Activity.Join:
|
|
@@ -153,17 +150,17 @@ function messageReceive(message: Message, view: View) {
|
|
|
153
150
|
return (view.getModel().getMetaModel() as ODataMetaModel).getMetaPath(path);
|
|
154
151
|
});
|
|
155
152
|
|
|
156
|
-
metaPaths.forEach((
|
|
153
|
+
metaPaths.forEach((currentMetaPath, i) => {
|
|
157
154
|
const nesteedMessage = {
|
|
158
155
|
...message,
|
|
159
156
|
clientContent: message?.clientContent?.split("|")[i]
|
|
160
157
|
};
|
|
161
|
-
let currentActivities: any[] = internalModel.getProperty(ACTIVITIES +
|
|
158
|
+
let currentActivities: any[] = internalModel.getProperty(ACTIVITIES + currentMetaPath) || [];
|
|
162
159
|
activityKey = getActivityKey(nesteedMessage.clientContent);
|
|
163
160
|
currentActivities = currentActivities?.filter && currentActivities.filter((activity) => activity.key !== activityKey);
|
|
164
161
|
if (currentActivities) {
|
|
165
|
-
internalModel.setProperty(ACTIVITIES +
|
|
166
|
-
update(view, nesteedMessage,
|
|
162
|
+
internalModel.setProperty(ACTIVITIES + currentMetaPath, currentActivities);
|
|
163
|
+
update(view, nesteedMessage, currentMetaPath, Activity.Change);
|
|
167
164
|
}
|
|
168
165
|
});
|
|
169
166
|
break;
|
|
@@ -194,14 +191,14 @@ function messageReceive(message: Message, view: View) {
|
|
|
194
191
|
break;
|
|
195
192
|
*/
|
|
196
193
|
case Activity.LiveChange:
|
|
197
|
-
|
|
198
|
-
|
|
194
|
+
mactivity = sender;
|
|
195
|
+
mactivity.key = getActivityKey(message.clientContent);
|
|
199
196
|
|
|
200
197
|
// stupid JSON model...
|
|
201
198
|
let initJSONModel: string = "";
|
|
202
199
|
const parts = metaPath.split("/");
|
|
203
200
|
for (let i = 1; i < parts.length - 1; i++) {
|
|
204
|
-
initJSONModel +=
|
|
201
|
+
initJSONModel += `/${parts[i]}`;
|
|
205
202
|
if (!internalModel.getProperty(ACTIVITIES + initJSONModel)) {
|
|
206
203
|
internalModel.setProperty(ACTIVITIES + initJSONModel, {});
|
|
207
204
|
}
|
|
@@ -209,7 +206,7 @@ function messageReceive(message: Message, view: View) {
|
|
|
209
206
|
|
|
210
207
|
activities = internalModel.getProperty(ACTIVITIES + metaPath);
|
|
211
208
|
activities = activities?.slice ? activities.slice() : [];
|
|
212
|
-
activities.push(
|
|
209
|
+
activities.push(mactivity);
|
|
213
210
|
internalModel.setProperty(ACTIVITIES + metaPath, activities);
|
|
214
211
|
break;
|
|
215
212
|
case Activity.Undo:
|
|
@@ -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=
|