@sapui5/sap.fe.core 1.102.0 → 1.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +62 -26
- package/src/sap/fe/core/AppComponent.ts +56 -40
- package/src/sap/fe/core/AppStateHandler.js +10 -10
- package/src/sap/fe/core/AppStateHandler.ts +9 -9
- package/src/sap/fe/core/BaseController.js +11 -9
- package/src/sap/fe/core/BaseController.ts +15 -13
- package/src/sap/fe/core/CommonUtils.js +236 -109
- package/src/sap/fe/core/CommonUtils.ts +252 -136
- package/src/sap/fe/core/ExtensionAPI.js +24 -27
- package/src/sap/fe/core/ExtensionAPI.ts +36 -38
- package/src/sap/fe/core/PageController.js +4 -4
- package/src/sap/fe/core/PageController.ts +4 -5
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +6 -6
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +8 -8
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
- package/src/sap/fe/core/controllerextensions/EditFlow.js +129 -118
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +31 -26
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
- package/src/sap/fe/core/controllerextensions/MassEdit.js +8 -8
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
- package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
- package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
- package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
- package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +22 -22
- package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
- package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
- package/src/sap/fe/core/controllerextensions/ViewState.js +65 -62
- package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +6 -6
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +184 -137
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -44
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
- package/src/sap/fe/core/controls/Any.js +9 -5
- package/src/sap/fe/core/controls/Any.ts +10 -4
- package/src/sap/fe/core/controls/CommandExecution.js +11 -25
- package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
- package/src/sap/fe/core/controls/FileWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.ts +11 -11
- package/src/sap/fe/core/controls/FilterBar.js +6 -2
- package/src/sap/fe/core/controls/FilterBar.ts +13 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +47 -47
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
- package/src/sap/fe/core/converters/ConverterContext.js +26 -33
- package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
- package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
- package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
- package/src/sap/fe/core/converters/MetaModelConverter.js +50 -32
- package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
- package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
- package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
- package/src/sap/fe/core/converters/annotations/DataField.js +54 -34
- package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
- package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
- package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
- package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -26
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
- package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
- package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
- package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
- package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +64 -57
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +73 -72
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
- package/src/sap/fe/core/converters/helpers/ID.js +46 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
- package/src/sap/fe/core/converters/helpers/Key.js +7 -7
- package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
- package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
- package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
- package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
- package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
- package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
- package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
- package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
- package/src/sap/fe/core/helpers/ClassSupport.ts +14 -10
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -6
- package/src/sap/fe/core/helpers/EditState.ts +5 -10
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
- package/src/sap/fe/core/helpers/MassEditHelper.js +281 -254
- package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
- package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
- package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
- package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
- package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
- package/src/sap/fe/core/library.js +42 -3
- package/src/sap/fe/core/library.ts +38 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
- package/src/sap/fe/core/messagebundle.properties +49 -35
- package/src/sap/fe/core/messagebundle_ar.properties +13 -5
- package/src/sap/fe/core/messagebundle_bg.properties +13 -5
- package/src/sap/fe/core/messagebundle_ca.properties +13 -5
- package/src/sap/fe/core/messagebundle_cs.properties +13 -5
- package/src/sap/fe/core/messagebundle_cy.properties +14 -6
- package/src/sap/fe/core/messagebundle_da.properties +13 -5
- package/src/sap/fe/core/messagebundle_de.properties +15 -7
- package/src/sap/fe/core/messagebundle_el.properties +14 -6
- package/src/sap/fe/core/messagebundle_en.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
- package/src/sap/fe/core/messagebundle_es.properties +13 -5
- package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
- package/src/sap/fe/core/messagebundle_et.properties +13 -5
- package/src/sap/fe/core/messagebundle_fi.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
- package/src/sap/fe/core/messagebundle_hi.properties +14 -6
- package/src/sap/fe/core/messagebundle_hr.properties +14 -6
- package/src/sap/fe/core/messagebundle_hu.properties +13 -5
- package/src/sap/fe/core/messagebundle_id.properties +13 -5
- package/src/sap/fe/core/messagebundle_it.properties +33 -25
- package/src/sap/fe/core/messagebundle_iw.properties +13 -5
- package/src/sap/fe/core/messagebundle_ja.properties +14 -6
- package/src/sap/fe/core/messagebundle_kk.properties +13 -5
- package/src/sap/fe/core/messagebundle_ko.properties +13 -5
- package/src/sap/fe/core/messagebundle_lt.properties +13 -5
- package/src/sap/fe/core/messagebundle_lv.properties +14 -6
- package/src/sap/fe/core/messagebundle_ms.properties +13 -5
- package/src/sap/fe/core/messagebundle_nl.properties +13 -5
- package/src/sap/fe/core/messagebundle_no.properties +13 -5
- package/src/sap/fe/core/messagebundle_pl.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
- package/src/sap/fe/core/messagebundle_ro.properties +13 -5
- package/src/sap/fe/core/messagebundle_ru.properties +13 -5
- package/src/sap/fe/core/messagebundle_sh.properties +13 -5
- package/src/sap/fe/core/messagebundle_sk.properties +13 -5
- package/src/sap/fe/core/messagebundle_sl.properties +17 -9
- package/src/sap/fe/core/messagebundle_sv.properties +14 -6
- package/src/sap/fe/core/messagebundle_th.properties +13 -5
- package/src/sap/fe/core/messagebundle_tr.properties +13 -5
- package/src/sap/fe/core/messagebundle_uk.properties +13 -5
- package/src/sap/fe/core/messagebundle_vi.properties +13 -5
- package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
- package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +53 -44
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
- package/src/sap/fe/core/services/ShellServicesFactory.js +72 -76
- package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +20 -15
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
- package/src/sap/fe/core/support/CommonHelper.js +3 -2
- package/src/sap/fe/core/support/CommonHelper.ts +9 -13
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -5
- package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
- package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
- package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
- package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
- package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
- package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
- package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
- package/src/sap/fe/core/templating/FilterHelper.js +10 -9
- package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
- package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
- package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
- package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
- package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
- package/src/sap/fe/core/templating/UIFormatters.js +148 -93
- package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IssueCategory, IssueSeverity } from "sap/fe/core/converters/helpers/IssueManager";
|
|
1
|
+
import type { IssueCategory, IssueSeverity } from "sap/fe/core/converters/helpers/IssueManager";
|
|
2
2
|
|
|
3
3
|
export type IssueDefinition = {
|
|
4
4
|
category: IssueCategory;
|
|
@@ -33,9 +33,9 @@ class Diagnostics {
|
|
|
33
33
|
}
|
|
34
34
|
getIssuesByCategory(inCategory: IssueCategory, subCategory?: string): IssueDefinition[] {
|
|
35
35
|
if (subCategory) {
|
|
36
|
-
return this._issues.filter(issue => issue.category === inCategory && issue.subCategory === subCategory);
|
|
36
|
+
return this._issues.filter((issue) => issue.category === inCategory && issue.subCategory === subCategory);
|
|
37
37
|
} else {
|
|
38
|
-
return this._issues.filter(issue => issue.category === inCategory);
|
|
38
|
+
return this._issues.filter((issue) => issue.category === inCategory);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
checkIfIssueExists(
|
|
@@ -47,7 +47,7 @@ class Diagnostics {
|
|
|
47
47
|
): boolean {
|
|
48
48
|
if (issueCategoryType && issueCategoryType[inCategory] && issueSubCategory) {
|
|
49
49
|
return this._issues.some(
|
|
50
|
-
issue =>
|
|
50
|
+
(issue) =>
|
|
51
51
|
issue.category === inCategory &&
|
|
52
52
|
issue.severity === severity &&
|
|
53
53
|
issue.details.replace(/\n/g, "") === details.replace(/\n/g, "") &&
|
|
@@ -55,7 +55,7 @@ class Diagnostics {
|
|
|
55
55
|
);
|
|
56
56
|
}
|
|
57
57
|
return this._issues.some(
|
|
58
|
-
issue =>
|
|
58
|
+
(issue) =>
|
|
59
59
|
issue.category === inCategory &&
|
|
60
60
|
issue.severity === severity &&
|
|
61
61
|
issue.details.replace(/\n/g, "") === details.replace(/\n/g, "")
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/formatters/ValueFormatter", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/templating/PropertyHelper", "sap/fe/core/templating/UIFormatters"], function (valueFormatters, BindingToolkit, DataModelPathHelper, PropertyHelper, UIFormatters) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var getPathRelativeLocation = DataModelPathHelper.getPathRelativeLocation;
|
|
10
|
+
var getContextRelativeTargetObjectPath = DataModelPathHelper.getContextRelativeTargetObjectPath;
|
|
11
|
+
var enhanceDataModelPath = DataModelPathHelper.enhanceDataModelPath;
|
|
12
|
+
var pathInModel = BindingToolkit.pathInModel;
|
|
13
|
+
var getExpressionFromAnnotation = BindingToolkit.getExpressionFromAnnotation;
|
|
14
|
+
var formatResult = BindingToolkit.formatResult;
|
|
15
|
+
var compileExpression = BindingToolkit.compileExpression;
|
|
16
|
+
|
|
17
|
+
// Import-export methods related to the common annotations used by the converter to use them in the templating through the Common Formatters.
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves the expressionBinding created out of a binding expression.
|
|
21
|
+
*
|
|
22
|
+
* @param expression The expression which needs to be compiled
|
|
23
|
+
* @returns The expression-binding string
|
|
24
|
+
*/
|
|
25
|
+
var getExpressionBinding = function (expression) {
|
|
26
|
+
return compileExpression(expression);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
_exports.getExpressionBinding = getExpressionBinding;
|
|
30
|
+
|
|
31
|
+
var getBindingWithTextArrangement = function (oPropertyDataModelPath, propertyBindingExpression, fieldFormatOptions) {
|
|
32
|
+
var _oPropertyDefinition$, _oPropertyDefinition$2;
|
|
33
|
+
|
|
34
|
+
var targetDisplayModeOverride = fieldFormatOptions === null || fieldFormatOptions === void 0 ? void 0 : fieldFormatOptions.displayMode;
|
|
35
|
+
var outExpression = propertyBindingExpression;
|
|
36
|
+
var oPropertyDefinition = oPropertyDataModelPath.targetObject.type === "PropertyPath" ? oPropertyDataModelPath.targetObject.$target : oPropertyDataModelPath.targetObject;
|
|
37
|
+
var targetDisplayMode = targetDisplayModeOverride || UIFormatters.getDisplayMode(oPropertyDataModelPath);
|
|
38
|
+
var commonText = (_oPropertyDefinition$ = oPropertyDefinition.annotations) === null || _oPropertyDefinition$ === void 0 ? void 0 : (_oPropertyDefinition$2 = _oPropertyDefinition$.Common) === null || _oPropertyDefinition$2 === void 0 ? void 0 : _oPropertyDefinition$2.Text;
|
|
39
|
+
var relativeLocation = getPathRelativeLocation(oPropertyDataModelPath.contextLocation, oPropertyDataModelPath.navigationProperties).map(function (np) {
|
|
40
|
+
return np.name;
|
|
41
|
+
});
|
|
42
|
+
propertyBindingExpression = UIFormatters.formatWithTypeInformation(oPropertyDefinition, propertyBindingExpression);
|
|
43
|
+
|
|
44
|
+
if (targetDisplayMode !== "Value" && commonText) {
|
|
45
|
+
switch (targetDisplayMode) {
|
|
46
|
+
case "Description":
|
|
47
|
+
outExpression = getExpressionFromAnnotation(commonText, relativeLocation);
|
|
48
|
+
break;
|
|
49
|
+
|
|
50
|
+
case "DescriptionValue":
|
|
51
|
+
outExpression = formatResult([getExpressionFromAnnotation(commonText, relativeLocation), propertyBindingExpression], valueFormatters.formatWithBrackets);
|
|
52
|
+
break;
|
|
53
|
+
|
|
54
|
+
case "ValueDescription":
|
|
55
|
+
outExpression = formatResult([propertyBindingExpression, getExpressionFromAnnotation(commonText, relativeLocation)], valueFormatters.formatWithBrackets);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return outExpression;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
_exports.getBindingWithTextArrangement = getBindingWithTextArrangement;
|
|
64
|
+
|
|
65
|
+
var getBindingWithText = function (targetDataModelPath) {
|
|
66
|
+
var propertyDataModelPath = targetDataModelPath;
|
|
67
|
+
|
|
68
|
+
if (PropertyHelper.isPathExpression(targetDataModelPath === null || targetDataModelPath === void 0 ? void 0 : targetDataModelPath.targetObject)) {
|
|
69
|
+
var _targetDataModelPath$;
|
|
70
|
+
|
|
71
|
+
propertyDataModelPath = enhanceDataModelPath(targetDataModelPath, (_targetDataModelPath$ = targetDataModelPath.targetObject) === null || _targetDataModelPath$ === void 0 ? void 0 : _targetDataModelPath$.path);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var propertyDefinition = propertyDataModelPath.targetObject;
|
|
75
|
+
var propertyBindingExpression = pathInModel(getContextRelativeTargetObjectPath(propertyDataModelPath));
|
|
76
|
+
propertyBindingExpression = UIFormatters.formatWithTypeInformation(propertyDefinition, propertyBindingExpression, true);
|
|
77
|
+
var textArrangementBinding = getBindingWithTextArrangement(propertyDataModelPath, propertyBindingExpression);
|
|
78
|
+
return compileExpression(textArrangementBinding);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
_exports.getBindingWithText = getBindingWithText;
|
|
82
|
+
return _exports;
|
|
83
|
+
}, false);
|
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbW1vbkZvcm1hdHRlcnMudHMiXSwibmFtZXMiOlsiZ2V0RXhwcmVzc2lvbkJpbmRpbmciLCJleHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsIm9Qcm9wZXJ0eURhdGFNb2RlbFBhdGgiLCJwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uIiwiZmllbGRGb3JtYXRPcHRpb25zIiwidGFyZ2V0RGlzcGxheU1vZGVPdmVycmlkZSIsImRpc3BsYXlNb2RlIiwib3V0RXhwcmVzc2lvbiIsIm9Qcm9wZXJ0eURlZmluaXRpb24iLCJ0YXJnZXRPYmplY3QiLCJ0eXBlIiwiJHRhcmdldCIsInRhcmdldERpc3BsYXlNb2RlIiwiVUlGb3JtYXR0ZXJzIiwiZ2V0RGlzcGxheU1vZGUiLCJjb21tb25UZXh0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwicmVsYXRpdmVMb2NhdGlvbiIsImdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uIiwiY29udGV4dExvY2F0aW9uIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJucCIsIm5hbWUiLCJmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiZm9ybWF0UmVzdWx0IiwidmFsdWVGb3JtYXR0ZXJzIiwiZm9ybWF0V2l0aEJyYWNrZXRzIiwiZ2V0QmluZGluZ1dpdGhUZXh0IiwidGFyZ2V0RGF0YU1vZGVsUGF0aCIsInByb3BlcnR5RGF0YU1vZGVsUGF0aCIsIlByb3BlcnR5SGVscGVyIiwiaXNQYXRoRXhwcmVzc2lvbiIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwicGF0aCIsInByb3BlcnR5RGVmaW5pdGlvbiIsInBhdGhJbk1vZGVsIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsInRleHRBcnJhbmdlbWVudEJpbmRpbmciXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7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RCxFQUFzRixJQUF0RixDQUE1QjtBQUNBLFFBQU1zQyxzQkFBc0IsR0FBR3hDLDZCQUE2QixDQUFDZ0MscUJBQUQsRUFBd0I5Qix5QkFBeEIsQ0FBNUQ7QUFDQSxXQUFPSCxpQkFBaUIsQ0FBQ3lDLHNCQUFELENBQXhCO0FBQ0EsR0FkTSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHZhbHVlRm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9WYWx1ZUZvcm1hdHRlclwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBmb3JtYXRSZXN1bHQsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgcGF0aEluTW9kZWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHtcblx0ZW5oYW5jZURhdGFNb2RlbFBhdGgsXG5cdGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgsXG5cdGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlICogYXMgRGlzcGxheU1vZGVGb3JtYXR0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGlzcGxheU1vZGVGb3JtYXR0ZXJcIjtcbmltcG9ydCAqIGFzIFByb3BlcnR5SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgKiBhcyBVSUZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5leHBvcnQgdHlwZSBEaXNwbGF5TW9kZSA9IERpc3BsYXlNb2RlRm9ybWF0dGVyLkRpc3BsYXlNb2RlO1xuXG4vLyBJbXBvcnQtZXhwb3J0IG1ldGhvZHMgcmVsYXRlZCB0byB0aGUgY29tbW9uIGFubm90YXRpb25zIHVzZWQgYnkgdGhlIGNvbnZlcnRlciB0byB1c2UgdGhlbSBpbiB0aGUgdGVtcGxhdGluZyB0aHJvdWdoIHRoZSBDb21tb24gRm9ybWF0dGVycy5cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4cHJlc3Npb25CaW5kaW5nIGNyZWF0ZWQgb3V0IG9mIGEgYmluZGluZyBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHdoaWNoIG5lZWRzIHRvIGJlIGNvbXBpbGVkXG4gKiBAcmV0dXJucyBUaGUgZXhwcmVzc2lvbi1iaW5kaW5nIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkJpbmRpbmcgPSBmdW5jdGlvbiAoZXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGFueT4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbn07XG5leHBvcnQgY29uc3QgZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQgPSBmdW5jdGlvbiAoXG5cdG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+LFxuXHRmaWVsZEZvcm1hdE9wdGlvbnM/OiB7IGRpc3BsYXlNb2RlPzogRGlzcGxheU1vZGUgfVxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0YXJnZXREaXNwbGF5TW9kZU92ZXJyaWRlID0gZmllbGRGb3JtYXRPcHRpb25zPy5kaXNwbGF5TW9kZTtcblx0bGV0IG91dEV4cHJlc3Npb24gPSBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uO1xuXHRjb25zdCBvUHJvcGVydHlEZWZpbml0aW9uID1cblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiXG5cdFx0XHQ/IChvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0IGFzIFByb3BlcnR5KVxuXHRcdFx0OiAob1Byb3BlcnR5RGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QgYXMgUHJvcGVydHkpO1xuXHRjb25zdCB0YXJnZXREaXNwbGF5TW9kZSA9IHRhcmdldERpc3BsYXlNb2RlT3ZlcnJpZGUgfHwgVUlGb3JtYXR0ZXJzLmdldERpc3BsYXlNb2RlKG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGgpO1xuXHRjb25zdCBjb21tb25UZXh0ID0gb1Byb3BlcnR5RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0O1xuXHRjb25zdCByZWxhdGl2ZUxvY2F0aW9uID0gZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24oXG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsUGF0aC5jb250ZXh0TG9jYXRpb24sXG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsUGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllc1xuXHQpLm1hcCgobnApID0+IG5wLm5hbWUpO1xuXHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gVUlGb3JtYXR0ZXJzLmZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ob1Byb3BlcnR5RGVmaW5pdGlvbiwgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbik7XG5cdGlmICh0YXJnZXREaXNwbGF5TW9kZSAhPT0gXCJWYWx1ZVwiICYmIGNvbW1vblRleHQpIHtcblx0XHRzd2l0Y2ggKHRhcmdldERpc3BsYXlNb2RlKSB7XG5cdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0b3V0RXhwcmVzc2lvbiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihjb21tb25UZXh0LCByZWxhdGl2ZUxvY2F0aW9uKSBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25WYWx1ZVwiOlxuXHRcdFx0XHRvdXRFeHByZXNzaW9uID0gZm9ybWF0UmVzdWx0KFxuXHRcdFx0XHRcdFtcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihjb21tb25UZXh0LCByZWxhdGl2ZUxvY2F0aW9uKSBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPixcblx0XHRcdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb25cblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdHZhbHVlRm9ybWF0dGVycy5mb3JtYXRXaXRoQnJhY2tldHNcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiVmFsdWVEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRvdXRFeHByZXNzaW9uID0gZm9ybWF0UmVzdWx0KFxuXHRcdFx0XHRcdFtcblx0XHRcdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sXG5cdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oY29tbW9uVGV4dCwgcmVsYXRpdmVMb2NhdGlvbikgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz5cblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdHZhbHVlRm9ybWF0dGVycy5mb3JtYXRXaXRoQnJhY2tldHNcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvdXRFeHByZXNzaW9uO1xufTtcbmV4cG9ydCBjb25zdCBnZXRCaW5kaW5nV2l0aFRleHQgPSBmdW5jdGlvbiAodGFyZ2V0RGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0bGV0IHByb3BlcnR5RGF0YU1vZGVsUGF0aCA9IHRhcmdldERhdGFNb2RlbFBhdGg7XG5cdGlmIChQcm9wZXJ0eUhlbHBlci5pc1BhdGhFeHByZXNzaW9uKHRhcmdldERhdGFNb2RlbFBhdGg/LnRhcmdldE9iamVjdCkpIHtcblx0XHRwcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aCh0YXJnZXREYXRhTW9kZWxQYXRoLCB0YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdD8ucGF0aCk7XG5cdH1cblx0Y29uc3QgcHJvcGVydHlEZWZpbml0aW9uID0gcHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdCBhcyBQcm9wZXJ0eTtcblxuXHRsZXQgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiA9IHBhdGhJbk1vZGVsKFxuXHRcdGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgocHJvcGVydHlEYXRhTW9kZWxQYXRoKVxuXHQpIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+O1xuXG5cdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24gPSBVSUZvcm1hdHRlcnMuZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihwcm9wZXJ0eURlZmluaXRpb24sIHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sIHRydWUpO1xuXHRjb25zdCB0ZXh0QXJyYW5nZW1lbnRCaW5kaW5nID0gZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQocHJvcGVydHlEYXRhTW9kZWxQYXRoLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uKTtcblx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHRleHRBcnJhbmdlbWVudEJpbmRpbmcpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { Property } from "@sap-ux/vocabularies-types";
|
|
2
|
+
import valueFormatters from "sap/fe/core/formatters/ValueFormatter";
|
|
3
|
+
import type { BindingToolkitExpression, CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
4
|
+
import { compileExpression, formatResult, getExpressionFromAnnotation, pathInModel } from "sap/fe/core/helpers/BindingToolkit";
|
|
5
|
+
import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
6
|
+
import {
|
|
7
|
+
enhanceDataModelPath,
|
|
8
|
+
getContextRelativeTargetObjectPath,
|
|
9
|
+
getPathRelativeLocation
|
|
10
|
+
} from "sap/fe/core/templating/DataModelPathHelper";
|
|
11
|
+
import type * as DisplayModeFormatter from "sap/fe/core/templating/DisplayModeFormatter";
|
|
12
|
+
import * as PropertyHelper from "sap/fe/core/templating/PropertyHelper";
|
|
13
|
+
import * as UIFormatters from "sap/fe/core/templating/UIFormatters";
|
|
14
|
+
export type DisplayMode = DisplayModeFormatter.DisplayMode;
|
|
15
|
+
|
|
16
|
+
// Import-export methods related to the common annotations used by the converter to use them in the templating through the Common Formatters.
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the expressionBinding created out of a binding expression.
|
|
20
|
+
*
|
|
21
|
+
* @param expression The expression which needs to be compiled
|
|
22
|
+
* @returns The expression-binding string
|
|
23
|
+
*/
|
|
24
|
+
export const getExpressionBinding = function (expression: BindingToolkitExpression<any>): CompiledBindingToolkitExpression {
|
|
25
|
+
return compileExpression(expression);
|
|
26
|
+
};
|
|
27
|
+
export const getBindingWithTextArrangement = function (
|
|
28
|
+
oPropertyDataModelPath: DataModelObjectPath,
|
|
29
|
+
propertyBindingExpression: BindingToolkitExpression<string>,
|
|
30
|
+
fieldFormatOptions?: { displayMode?: DisplayMode }
|
|
31
|
+
): BindingToolkitExpression<string> {
|
|
32
|
+
const targetDisplayModeOverride = fieldFormatOptions?.displayMode;
|
|
33
|
+
let outExpression = propertyBindingExpression;
|
|
34
|
+
const oPropertyDefinition =
|
|
35
|
+
oPropertyDataModelPath.targetObject.type === "PropertyPath"
|
|
36
|
+
? (oPropertyDataModelPath.targetObject.$target as Property)
|
|
37
|
+
: (oPropertyDataModelPath.targetObject as Property);
|
|
38
|
+
const targetDisplayMode = targetDisplayModeOverride || UIFormatters.getDisplayMode(oPropertyDataModelPath);
|
|
39
|
+
const commonText = oPropertyDefinition.annotations?.Common?.Text;
|
|
40
|
+
const relativeLocation = getPathRelativeLocation(
|
|
41
|
+
oPropertyDataModelPath.contextLocation,
|
|
42
|
+
oPropertyDataModelPath.navigationProperties
|
|
43
|
+
).map((np) => np.name);
|
|
44
|
+
propertyBindingExpression = UIFormatters.formatWithTypeInformation(oPropertyDefinition, propertyBindingExpression);
|
|
45
|
+
if (targetDisplayMode !== "Value" && commonText) {
|
|
46
|
+
switch (targetDisplayMode) {
|
|
47
|
+
case "Description":
|
|
48
|
+
outExpression = getExpressionFromAnnotation(commonText, relativeLocation) as BindingToolkitExpression<string>;
|
|
49
|
+
break;
|
|
50
|
+
case "DescriptionValue":
|
|
51
|
+
outExpression = formatResult(
|
|
52
|
+
[
|
|
53
|
+
getExpressionFromAnnotation(commonText, relativeLocation) as BindingToolkitExpression<string>,
|
|
54
|
+
propertyBindingExpression
|
|
55
|
+
],
|
|
56
|
+
valueFormatters.formatWithBrackets
|
|
57
|
+
);
|
|
58
|
+
break;
|
|
59
|
+
case "ValueDescription":
|
|
60
|
+
outExpression = formatResult(
|
|
61
|
+
[
|
|
62
|
+
propertyBindingExpression,
|
|
63
|
+
getExpressionFromAnnotation(commonText, relativeLocation) as BindingToolkitExpression<string>
|
|
64
|
+
],
|
|
65
|
+
valueFormatters.formatWithBrackets
|
|
66
|
+
);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return outExpression;
|
|
71
|
+
};
|
|
72
|
+
export const getBindingWithText = function (targetDataModelPath: DataModelObjectPath): CompiledBindingToolkitExpression {
|
|
73
|
+
let propertyDataModelPath = targetDataModelPath;
|
|
74
|
+
if (PropertyHelper.isPathExpression(targetDataModelPath?.targetObject)) {
|
|
75
|
+
propertyDataModelPath = enhanceDataModelPath(targetDataModelPath, targetDataModelPath.targetObject?.path);
|
|
76
|
+
}
|
|
77
|
+
const propertyDefinition = propertyDataModelPath.targetObject as Property;
|
|
78
|
+
|
|
79
|
+
let propertyBindingExpression = pathInModel(
|
|
80
|
+
getContextRelativeTargetObjectPath(propertyDataModelPath)
|
|
81
|
+
) as BindingToolkitExpression<string>;
|
|
82
|
+
|
|
83
|
+
propertyBindingExpression = UIFormatters.formatWithTypeInformation(propertyDefinition, propertyBindingExpression, true);
|
|
84
|
+
const textArrangementBinding = getBindingWithTextArrangement(propertyDataModelPath, propertyBindingExpression);
|
|
85
|
+
return compileExpression(textArrangementBinding);
|
|
86
|
+
};
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/helpers/
|
|
5
|
+
sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "sap/fe/core/templating/DataModelPathHelper"], function (BindingToolkit, DataModelPathHelper) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
var getPathRelativeLocation = DataModelPathHelper.getPathRelativeLocation;
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var constant =
|
|
15
|
-
var
|
|
10
|
+
var or = BindingToolkit.or;
|
|
11
|
+
var ifElse = BindingToolkit.ifElse;
|
|
12
|
+
var getExpressionFromAnnotation = BindingToolkit.getExpressionFromAnnotation;
|
|
13
|
+
var equal = BindingToolkit.equal;
|
|
14
|
+
var constant = BindingToolkit.constant;
|
|
15
|
+
var compileExpression = BindingToolkit.compileExpression;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Returns an expression to set button type based on Criticality
|
|
@@ -22,29 +22,29 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
22
22
|
* @static
|
|
23
23
|
* @name sap.fe.core.CriticalityFormatters.buildExpressionForCriticalityColor
|
|
24
24
|
* @memberof sap.fe.core.CriticalityFormatters
|
|
25
|
-
* @param
|
|
26
|
-
* @param
|
|
27
|
-
* @returns
|
|
25
|
+
* @param oTarget A DataField a DataPoint or a DataModelObjectPath.
|
|
26
|
+
* @param [oPropertyDataModelPath] DataModelObjectPath.
|
|
27
|
+
* @returns An expression to deduce the state of an objectStatus.
|
|
28
28
|
* @private
|
|
29
29
|
* @ui5-restricted
|
|
30
|
-
|
|
30
|
+
*/
|
|
31
31
|
var buildExpressionForCriticalityColor = function (oTarget, oPropertyDataModelPath) {
|
|
32
32
|
var oAnnotationTarget = oTarget.targetObject ? oTarget.targetObject : oTarget;
|
|
33
33
|
var oCriticalityProperty = oAnnotationTarget === null || oAnnotationTarget === void 0 ? void 0 : oAnnotationTarget.Criticality;
|
|
34
34
|
var relativeLocation = oPropertyDataModelPath ? getPathRelativeLocation(oPropertyDataModelPath.contextLocation, oPropertyDataModelPath.navigationProperties).map(function (np) {
|
|
35
35
|
return np.name;
|
|
36
36
|
}) : undefined;
|
|
37
|
-
var oCriticalityExpression =
|
|
37
|
+
var oCriticalityExpression = getExpressionFromAnnotation(oCriticalityProperty, relativeLocation);
|
|
38
38
|
var sValueStateExpression;
|
|
39
39
|
|
|
40
40
|
if (oCriticalityProperty) {
|
|
41
|
-
sValueStateExpression = ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Negative")), equal(oCriticalityExpression, constant(1)), equal(oCriticalityExpression, constant("1"))), constant("Error"), ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Critical")), equal(oCriticalityExpression, constant(2)), equal(oCriticalityExpression, constant("2"))), constant("Warning"), ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Positive")), equal(oCriticalityExpression, constant(3)), equal(oCriticalityExpression, constant("3"))), constant("Success"), ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Information")), equal(oCriticalityExpression, constant(5)), equal(oCriticalityExpression, constant("5"))), constant("
|
|
41
|
+
sValueStateExpression = ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Negative")), equal(oCriticalityExpression, constant(1)), equal(oCriticalityExpression, constant("1"))), constant("Error"), ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Critical")), equal(oCriticalityExpression, constant(2)), equal(oCriticalityExpression, constant("2"))), constant("Warning"), ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Positive")), equal(oCriticalityExpression, constant(3)), equal(oCriticalityExpression, constant("3"))), constant("Success"), ifElse(or(equal(oCriticalityExpression, constant("UI.CriticalityType/Information")), equal(oCriticalityExpression, constant(5)), equal(oCriticalityExpression, constant("5"))), constant("Information"), constant("None")))));
|
|
42
42
|
} else {
|
|
43
43
|
// Any other cases are not valid, the default value of 'None' will be returned
|
|
44
44
|
sValueStateExpression = constant("None");
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
return
|
|
47
|
+
return compileExpression(sValueStateExpression);
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
50
|
* Returns an expression to set icon type based on Criticality
|
|
@@ -54,12 +54,12 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
54
54
|
* @static
|
|
55
55
|
* @name sap.fe.core.CriticalityFormatters.buildExpressionForCriticalityIcon
|
|
56
56
|
* @memberof sap.fe.core.CriticalityFormatters
|
|
57
|
-
* @param
|
|
58
|
-
* @param
|
|
59
|
-
* @returns
|
|
57
|
+
* @param oTarget A DataField a DataPoint or a DataModelObjectPath.
|
|
58
|
+
* @param [oPropertyDataModelPath] DataModelObjectPath.
|
|
59
|
+
* @returns An expression to deduce the icon of an objectStatus.
|
|
60
60
|
* @private
|
|
61
61
|
* @ui5-restricted
|
|
62
|
-
|
|
62
|
+
*/
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
_exports.buildExpressionForCriticalityColor = buildExpressionForCriticalityColor;
|
|
@@ -70,7 +70,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
70
70
|
var relativeLocation = oPropertyDataModelPath ? getPathRelativeLocation(oPropertyDataModelPath.contextLocation, oPropertyDataModelPath.navigationProperties).map(function (np) {
|
|
71
71
|
return np.name;
|
|
72
72
|
}) : undefined;
|
|
73
|
-
var oCriticalityExpression =
|
|
73
|
+
var oCriticalityExpression = getExpressionFromAnnotation(oCriticalityProperty, relativeLocation);
|
|
74
74
|
var bCondition = (oAnnotationTarget === null || oAnnotationTarget === void 0 ? void 0 : oAnnotationTarget.CriticalityRepresentation) && (oAnnotationTarget === null || oAnnotationTarget === void 0 ? void 0 : oAnnotationTarget.CriticalityRepresentation) === "UI.CriticalityRepresentationType/WithoutIcon";
|
|
75
75
|
var sIconPath;
|
|
76
76
|
|
|
@@ -84,7 +84,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
84
84
|
sIconPath = constant("");
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
return
|
|
87
|
+
return compileExpression(sIconPath);
|
|
88
88
|
};
|
|
89
89
|
/**
|
|
90
90
|
* Returns an expression to set button type based on Criticality
|
|
@@ -94,11 +94,11 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
94
94
|
* @static
|
|
95
95
|
* @name sap.fe.core.CriticalityFormatters.buildExpressionForCriticalityButtonType
|
|
96
96
|
* @memberof sap.fe.core.CriticalityFormatters
|
|
97
|
-
* @param
|
|
98
|
-
* @returns
|
|
97
|
+
* @param oTarget A DataField, DataPoint, DataModelObjectPath.
|
|
98
|
+
* @returns An expression to deduce button type.
|
|
99
99
|
* @private
|
|
100
100
|
* @ui5-restricted
|
|
101
|
-
|
|
101
|
+
*/
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
_exports.buildExpressionForCriticalityIcon = buildExpressionForCriticalityIcon;
|
|
@@ -106,7 +106,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
106
106
|
var buildExpressionForCriticalityButtonType = function (oTarget) {
|
|
107
107
|
var oAnnotationTarget = oTarget !== null && oTarget !== void 0 && oTarget.targetObject ? oTarget.targetObject : oTarget;
|
|
108
108
|
var oCriticalityProperty = oAnnotationTarget === null || oAnnotationTarget === void 0 ? void 0 : oAnnotationTarget.Criticality;
|
|
109
|
-
var oCriticalityExpression =
|
|
109
|
+
var oCriticalityExpression = getExpressionFromAnnotation(oCriticalityProperty);
|
|
110
110
|
var sButtonTypeExpression;
|
|
111
111
|
|
|
112
112
|
if (oCriticalityProperty) {
|
|
@@ -116,7 +116,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
116
116
|
sButtonTypeExpression = constant("Default");
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
return
|
|
119
|
+
return compileExpression(sButtonTypeExpression);
|
|
120
120
|
};
|
|
121
121
|
/**
|
|
122
122
|
* Returns an expression to set color in MicroCharts based on Criticality
|
|
@@ -126,11 +126,11 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
126
126
|
* @static
|
|
127
127
|
* @name sap.fe.core.CriticalityFormatters.buildExpressionForCriticalityColorMicroChart
|
|
128
128
|
* @memberof sap.fe.core.CriticalityFormatters
|
|
129
|
-
* @param
|
|
130
|
-
* @returns
|
|
129
|
+
* @param oTarget A DataField, DataPoint, DataModelObjectPath
|
|
130
|
+
* @returns An expression to deduce colors in Microcharts
|
|
131
131
|
* @private
|
|
132
132
|
* @ui5-restricted
|
|
133
|
-
|
|
133
|
+
*/
|
|
134
134
|
|
|
135
135
|
|
|
136
136
|
_exports.buildExpressionForCriticalityButtonType = buildExpressionForCriticalityButtonType;
|
|
@@ -138,7 +138,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
138
138
|
var buildExpressionForCriticalityColorMicroChart = function (oTarget) {
|
|
139
139
|
var oAnnotationTarget = oTarget !== null && oTarget !== void 0 && oTarget.targetObject ? oTarget.targetObject : oTarget;
|
|
140
140
|
var oCriticalityProperty = oAnnotationTarget === null || oAnnotationTarget === void 0 ? void 0 : oAnnotationTarget.Criticality;
|
|
141
|
-
var oCriticalityExpression =
|
|
141
|
+
var oCriticalityExpression = getExpressionFromAnnotation(oCriticalityProperty);
|
|
142
142
|
var sColorExpression;
|
|
143
143
|
|
|
144
144
|
if (oCriticalityProperty) {
|
|
@@ -147,10 +147,10 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/
|
|
|
147
147
|
sColorExpression = constant("Neutral");
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
return
|
|
150
|
+
return compileExpression(sColorExpression);
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
_exports.buildExpressionForCriticalityColorMicroChart = buildExpressionForCriticalityColorMicroChart;
|
|
154
154
|
return _exports;
|
|
155
155
|
}, false);
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNyaXRpY2FsaXR5Rm9ybWF0dGVycy50cyJdLCJuYW1lcyI6WyJidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yIiwib1RhcmdldCIsIm9Qcm9wZXJ0eURhdGFNb2RlbFBhdGgiLCJvQW5ub3RhdGlvblRhcmdldCIsInRhcmdldE9iamVjdCIsIm9Dcml0aWNhbGl0eVByb3BlcnR5IiwiQ3JpdGljYWxpdHkiLCJyZWxhdGl2ZUxvY2F0aW9uIiwiZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24iLCJjb250ZXh0TG9jYXRpb24iLCJuYXZpZ2F0aW9uUHJvcGVydGllcyIsIm1hcCIsIm5wIiwibmFtZSIsInVuZGVmaW5lZCIsIm9Dcml0aWNhbGl0eUV4cHJlc3Npb24iLCJhbm5vdGF0aW9uRXhwcmVzc2lvbiIsInNWYWx1ZVN0YXRlRXhwcmVzc2lvbiIsImlmRWxzZSIsIm9yIiwiZXF1YWwiLCJjb25zdGFudCIsImNvbXBpbGVCaW5kaW5nIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uIiwiYkNvbmRpdGlvbiIsIkNyaXRpY2FsaXR5UmVwcmVzZW50YXRpb24iLCJzSWNvblBhdGgiLCJidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUJ1dHRvblR5cGUiLCJzQnV0dG9uVHlwZUV4cHJlc3Npb24iLCJidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydCIsInNDb2xvckV4cHJlc3Npb24iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEsa0NBQWtDLEdBQUcsVUFBQ0MsT0FBRCxFQUFlQyxzQkFBZixFQUFtRjtBQUNwSSxRQUFNQyxpQkFBaUIsR0FBR0YsT0FBTyxDQUFDRyxZQUFSLEdBQXVCSCxPQUFPLENBQUNHLFlBQS9CLEdBQThDSCxP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QUQsRUFBeUJNLFFBQVEsQ0FBQyxHQUFELENBQWpDLENBSEosQ0FERyxFQU1MQSxRQUFRLENBQUMsTUFBRCxDQU5ILEVBT0xBLFFBQVEsQ0FBQyxTQUFELENBUEgsQ0FQRCxDQVBrQixDQUF6QjtBQXlCQSxLQTFCRCxNQTBCTztBQUNOUyxNQUFBQSxnQkFBZ0IsR0FBR1QsUUFBUSxDQUFDLFNBQUQsQ0FBM0I7QUFDQTs7QUFDRCxXQUFPQyxjQUFjLENBQUNRLGdCQUFELENBQXJCO0FBQ0EsR0FuQ00iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGVCaW5kaW5nLCBjb25zdGFudCwgRXhwcmVzc2lvbiwgYW5ub3RhdGlvbkV4cHJlc3Npb24sIG9yLCBlcXVhbCwgaWZFbHNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IERhdGFNb2RlbE9iamVjdFBhdGgsIGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuLyoqXG4gKiBSZXR1cm5zIGFuIGV4cHJlc3Npb24gdG8gc2V0IGJ1dHRvbiB0eXBlIGJhc2VkIG9uIENyaXRpY2FsaXR5XG4gKiBTdXBwb3J0ZWQgQ3JpdGljYWxpdHk6IFBvc2l0aXZlLCBOZWdhdGl2ZSwgQ3JpdGljYWwgYW5kIEluZm9ybWF0aW9uIGxlYWRpbmcgdG8gU3VjY2VzcywgRXJyb3IsIFdhcm5pbmcgYW5kIE5vbmUgc3RhdGUgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBmdW5jdGlvblxuICogQHN0YXRpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQ3JpdGljYWxpdHlGb3JtYXR0ZXJzLmJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3JcbiAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5Dcml0aWNhbGl0eUZvcm1hdHRlcnNcbiAqIEBwYXJhbSB7b2JqZWN0fSBvVGFyZ2V0IEEgRGF0YUZpZWxkIGEgRGF0YVBvaW50IG9yIGEgRGF0YU1vZGVsT2JqZWN0UGF0aC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb1Byb3BlcnR5RGF0YU1vZGVsUGF0aF0gRGF0YU1vZGVsT2JqZWN0UGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEFuIGV4cHJlc3Npb24gdG8gZGVkdWNlIHRoZSBzdGF0ZSBvZiBhbiBvYmplY3RTdGF0dXMuXG4gKiBAcHJpdmF0ZVxuICogQHVpNS1yZXN0cmljdGVkXG4gKiovXG5leHBvcnQgY29uc3QgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlDb2xvciA9IChvVGFyZ2V0OiBhbnksIG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRjb25zdCBvQW5ub3RhdGlvblRhcmdldCA9IG9UYXJnZXQudGFyZ2V0T2JqZWN0ID8gb1RhcmdldC50YXJnZXRPYmplY3QgOiBvVGFyZ2V0O1xuXHRjb25zdCBvQ3JpdGljYWxpdHlQcm9wZXJ0eSA9IG9Bbm5vdGF0aW9uVGFyZ2V0Py5Dcml0aWNhbGl0eTtcblx0Y29uc3QgcmVsYXRpdmVMb2NhdGlvbiA9IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGhcblx0XHQ/IGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uLCBvUHJvcGVydHlEYXRhTW9kZWxQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzKS5tYXAobnAgPT4gbnAubmFtZSlcblx0XHQ6IHVuZGVmaW5lZDtcblx0Y29uc3Qgb0NyaXRpY2FsaXR5RXhwcmVzc2lvbjogRXhwcmVzc2lvbjxzdHJpbmc+ID0gYW5ub3RhdGlvbkV4cHJlc3Npb24ob0NyaXRpY2FsaXR5UHJvcGVydHksIHJlbGF0aXZlTG9jYXRpb24pO1xuXHRsZXQgc1ZhbHVlU3RhdGVFeHByZXNzaW9uO1xuXHRpZiAob0NyaXRpY2FsaXR5UHJvcGVydHkpIHtcblx0XHRzVmFsdWVTdGF0ZUV4cHJlc3Npb24gPSBpZkVsc2UoXG5cdFx0XHRvcihcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIikpLFxuXHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoMSkpLFxuXHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIjFcIikpXG5cdFx0XHQpLFxuXHRcdFx0Y29uc3RhbnQoXCJFcnJvclwiKSxcblx0XHRcdGlmRWxzZShcblx0XHRcdFx0b3IoXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIikpLFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24gYXMgRXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgyKSksXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIyXCIpKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjb25zdGFudChcIldhcm5pbmdcIiksXG5cdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRvcihcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIpKSxcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24gYXMgRXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgzKSksXG5cdFx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIjNcIikpXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRjb25zdGFudChcIlN1Y2Nlc3NcIiksXG5cdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0b3IoXG5cdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL0luZm9ybWF0aW9uXCIpKSxcblx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDUpKSxcblx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCI1XCIpKVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdGNvbnN0YW50KFwiSW5kaWNhdGlvbjA1XCIpLFxuXHRcdFx0XHRcdFx0Y29uc3RhbnQoXCJOb25lXCIpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fSBlbHNlIHtcblx0XHQvLyBBbnkgb3RoZXIgY2FzZXMgYXJlIG5vdCB2YWxpZCwgdGhlIGRlZmF1bHQgdmFsdWUgb2YgJ05vbmUnIHdpbGwgYmUgcmV0dXJuZWRcblx0XHRzVmFsdWVTdGF0ZUV4cHJlc3Npb24gPSBjb25zdGFudChcIk5vbmVcIik7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKHNWYWx1ZVN0YXRlRXhwcmVzc2lvbik7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gZXhwcmVzc2lvbiB0byBzZXQgaWNvbiB0eXBlIGJhc2VkIG9uIENyaXRpY2FsaXR5XG4gKiBTdXBwb3J0ZWQgQ3JpdGljYWxpdHk6IFBvc2l0aXZlLCBOZWdhdGl2ZSwgQ3JpdGljYWwgYW5kIEluZm9ybWF0aW9uLlxuICpcbiAqIEBmdW5jdGlvblxuICogQHN0YXRpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQ3JpdGljYWxpdHlGb3JtYXR0ZXJzLmJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5SWNvblxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVyc1xuICogQHBhcmFtIHtvYmplY3R9IG9UYXJnZXQgQSBEYXRhRmllbGQgYSBEYXRhUG9pbnQgb3IgYSBEYXRhTW9kZWxPYmplY3RQYXRoLlxuICogQHBhcmFtIHtvYmplY3R9IFtvUHJvcGVydHlEYXRhTW9kZWxQYXRoXSBEYXRhTW9kZWxPYmplY3RQYXRoLlxuICogQHJldHVybnMge3N0cmluZ30gQW4gZXhwcmVzc2lvbiB0byBkZWR1Y2UgdGhlIGljb24gb2YgYW4gb2JqZWN0U3RhdHVzLlxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICoqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5SWNvbiA9IChvVGFyZ2V0OiBhbnksIG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRjb25zdCBvQW5ub3RhdGlvblRhcmdldCA9IG9UYXJnZXQ/LnRhcmdldE9iamVjdCA/IG9UYXJnZXQudGFyZ2V0T2JqZWN0IDogb1RhcmdldDtcblx0Y29uc3Qgb0NyaXRpY2FsaXR5UHJvcGVydHkgPSBvQW5ub3RhdGlvblRhcmdldD8uQ3JpdGljYWxpdHk7XG5cdGNvbnN0IHJlbGF0aXZlTG9jYXRpb24gPSBvUHJvcGVydHlEYXRhTW9kZWxQYXRoXG5cdFx0PyBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihvUHJvcGVydHlEYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbiwgb1Byb3BlcnR5RGF0YU1vZGVsUGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcykubWFwKG5wID0+IG5wLm5hbWUpXG5cdFx0OiB1bmRlZmluZWQ7XG5cdGNvbnN0IG9Dcml0aWNhbGl0eUV4cHJlc3Npb246IEV4cHJlc3Npb248c3RyaW5nPiA9IGFubm90YXRpb25FeHByZXNzaW9uKG9Dcml0aWNhbGl0eVByb3BlcnR5LCByZWxhdGl2ZUxvY2F0aW9uKTtcblx0Y29uc3QgYkNvbmRpdGlvbiA9XG5cdFx0b0Fubm90YXRpb25UYXJnZXQ/LkNyaXRpY2FsaXR5UmVwcmVzZW50YXRpb24gJiZcblx0XHRvQW5ub3RhdGlvblRhcmdldD8uQ3JpdGljYWxpdHlSZXByZXNlbnRhdGlvbiA9PT0gXCJVSS5Dcml0aWNhbGl0eVJlcHJlc2VudGF0aW9uVHlwZS9XaXRob3V0SWNvblwiO1xuXHRsZXQgc0ljb25QYXRoO1xuXHRpZiAoIWJDb25kaXRpb24pIHtcblx0XHRpZiAob0NyaXRpY2FsaXR5UHJvcGVydHkpIHtcblx0XHRcdHNJY29uUGF0aCA9IGlmRWxzZShcblx0XHRcdFx0b3IoXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIikpLFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24gYXMgRXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgxKSksXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIxXCIpKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjb25zdGFudChcInNhcC1pY29uOi8vbWVzc2FnZS1lcnJvclwiKSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdG9yKFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIikpLFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDIpKSxcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiMlwiKSlcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGNvbnN0YW50KFwic2FwLWljb246Ly9tZXNzYWdlLXdhcm5pbmdcIiksXG5cdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0b3IoXG5cdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIpKSxcblx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDMpKSxcblx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIzXCIpKVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdGNvbnN0YW50KFwic2FwLWljb246Ly9tZXNzYWdlLXN1Y2Nlc3NcIiksXG5cdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdG9yKFxuXHRcdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL0luZm9ybWF0aW9uXCIpKSxcblx0XHRcdFx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoNSkpLFxuXHRcdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiNVwiKSlcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0Y29uc3RhbnQoXCJzYXAtaWNvbjovL21lc3NhZ2UtaW5mb3JtYXRpb25cIiksXG5cdFx0XHRcdFx0XHRcdGNvbnN0YW50KFwiXCIpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzSWNvblBhdGggPSBjb25zdGFudChcIlwiKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0c0ljb25QYXRoID0gY29uc3RhbnQoXCJcIik7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKHNJY29uUGF0aCk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gZXhwcmVzc2lvbiB0byBzZXQgYnV0dG9uIHR5cGUgYmFzZWQgb24gQ3JpdGljYWxpdHlcbiAqIFN1cHBvcnRlZCBDcml0aWNhbGl0eTogUG9zaXRpdmUgYW5kIE5lZ2F0aXZlIGxlYWRpbmcgdG8gQWNjZXB0IGFuZCBSZWplY3QgYnV0dG9uIHR5cGUgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBmdW5jdGlvblxuICogQHN0YXRpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQ3JpdGljYWxpdHlGb3JtYXR0ZXJzLmJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5QnV0dG9uVHlwZVxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVyc1xuICogQHBhcmFtIHtvYmplY3R9IG9UYXJnZXQgQSBEYXRhRmllbGQsIERhdGFQb2ludCwgRGF0YU1vZGVsT2JqZWN0UGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEFuIGV4cHJlc3Npb24gdG8gZGVkdWNlIGJ1dHRvbiB0eXBlLlxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICoqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5QnV0dG9uVHlwZSA9IChvVGFyZ2V0OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRjb25zdCBvQW5ub3RhdGlvblRhcmdldCA9IG9UYXJnZXQ/LnRhcmdldE9iamVjdCA/IG9UYXJnZXQudGFyZ2V0T2JqZWN0IDogb1RhcmdldDtcblx0Y29uc3Qgb0NyaXRpY2FsaXR5UHJvcGVydHkgPSBvQW5ub3RhdGlvblRhcmdldD8uQ3JpdGljYWxpdHk7XG5cdGNvbnN0IG9Dcml0aWNhbGl0eUV4cHJlc3Npb246IEV4cHJlc3Npb248c3RyaW5nPiA9IGFubm90YXRpb25FeHByZXNzaW9uKG9Dcml0aWNhbGl0eVByb3BlcnR5KTtcblx0bGV0IHNCdXR0b25UeXBlRXhwcmVzc2lvbjtcblx0aWYgKG9Dcml0aWNhbGl0eVByb3BlcnR5KSB7XG5cdFx0c0J1dHRvblR5cGVFeHByZXNzaW9uID0gaWZFbHNlKFxuXHRcdFx0b3IoXG5cdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIpKSxcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDEpKSxcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIxXCIpKVxuXHRcdFx0KSxcblx0XHRcdGNvbnN0YW50KFwiUmVqZWN0XCIpLFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRvcihcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiKSksXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDMpKSxcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIjNcIikpXG5cdFx0XHRcdCksXG5cdFx0XHRcdGNvbnN0YW50KFwiQWNjZXB0XCIpLFxuXHRcdFx0XHRjb25zdGFudChcIkRlZmF1bHRcIilcblx0XHRcdClcblx0XHQpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIEFueSBvdGhlciBjYXNlcyBhcmUgbm90IHZhbGlkLCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAnRGVmYXVsdCcgd2lsbCBiZSByZXR1cm5lZFxuXHRcdHNCdXR0b25UeXBlRXhwcmVzc2lvbiA9IGNvbnN0YW50KFwiRGVmYXVsdFwiKTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoc0J1dHRvblR5cGVFeHByZXNzaW9uKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBleHByZXNzaW9uIHRvIHNldCBjb2xvciBpbiBNaWNyb0NoYXJ0cyBiYXNlZCBvbiBDcml0aWNhbGl0eVxuICogU3VwcG9ydGVkIENyaXRpY2FsaXR5OiBQb3NpdGl2ZSwgTmVnYXRpdmUgYW5kIENyaXRpY2FsIGxlYWRpbmcgdG8gR29vZCwgRXJyb3IgYW5kIENyaXRpY2FsIGNvbG9yIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBzdGF0aWNcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVycy5idWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydFxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVyc1xuICogQHBhcmFtIHtvYmplY3R9IG9UYXJnZXQgQSBEYXRhRmllbGQsIERhdGFQb2ludCwgRGF0YU1vZGVsT2JqZWN0UGF0aFxuICogQHJldHVybnMge3N0cmluZ30gQW4gZXhwcmVzc2lvbiB0byBkZWR1Y2UgY29sb3JzIGluIE1pY3JvY2hhcnRzXG4gKiBAcHJpdmF0ZVxuICogQHVpNS1yZXN0cmljdGVkXG4gKiovXG5leHBvcnQgY29uc3QgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQgPSAob1RhcmdldDogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcblx0Y29uc3Qgb0Fubm90YXRpb25UYXJnZXQgPSBvVGFyZ2V0Py50YXJnZXRPYmplY3QgPyBvVGFyZ2V0LnRhcmdldE9iamVjdCA6IG9UYXJnZXQ7XG5cdGNvbnN0IG9Dcml0aWNhbGl0eVByb3BlcnR5ID0gb0Fubm90YXRpb25UYXJnZXQ/LkNyaXRpY2FsaXR5O1xuXHRjb25zdCBvQ3JpdGljYWxpdHlFeHByZXNzaW9uOiBFeHByZXNzaW9uPHN0cmluZz4gPSBhbm5vdGF0aW9uRXhwcmVzc2lvbihvQ3JpdGljYWxpdHlQcm9wZXJ0eSk7XG5cdGxldCBzQ29sb3JFeHByZXNzaW9uO1xuXHRpZiAob0NyaXRpY2FsaXR5UHJvcGVydHkpIHtcblx0XHRzQ29sb3JFeHByZXNzaW9uID0gaWZFbHNlKFxuXHRcdFx0b3IoXG5cdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIpKSxcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDEpKSxcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIxXCIpKVxuXHRcdFx0KSxcblx0XHRcdGNvbnN0YW50KFwiRXJyb3JcIiksXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdG9yKFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL0NyaXRpY2FsXCIpKSxcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoMikpLFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiMlwiKSlcblx0XHRcdFx0KSxcblx0XHRcdFx0Y29uc3RhbnQoXCJDcml0aWNhbFwiKSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdG9yKFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIikpLFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDMpKSxcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiM1wiKSlcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGNvbnN0YW50KFwiR29vZFwiKSxcblx0XHRcdFx0XHRjb25zdGFudChcIk5ldXRyYWxcIilcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0c0NvbG9yRXhwcmVzc2lvbiA9IGNvbnN0YW50KFwiTmV1dHJhbFwiKTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoc0NvbG9yRXhwcmVzc2lvbik7XG59O1xuIl19
|
|
156
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNyaXRpY2FsaXR5Rm9ybWF0dGVycy50cyJdLCJuYW1lcyI6WyJidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yIiwib1RhcmdldCIsIm9Qcm9wZXJ0eURhdGFNb2RlbFBhdGgiLCJvQW5ub3RhdGlvblRhcmdldCIsInRhcmdldE9iamVjdCIsIm9Dcml0aWNhbGl0eVByb3BlcnR5IiwiQ3JpdGljYWxpdHkiLCJyZWxhdGl2ZUxvY2F0aW9uIiwiZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24iLCJjb250ZXh0TG9jYXRpb24iLCJuYXZpZ2F0aW9uUHJvcGVydGllcyIsIm1hcCIsIm5wIiwibmFtZSIsInVuZGVmaW5lZCIsIm9Dcml0aWNhbGl0eUV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJzVmFsdWVTdGF0ZUV4cHJlc3Npb24iLCJpZkVsc2UiLCJvciIsImVxdWFsIiwiY29uc3RhbnQiLCJjb21waWxlRXhwcmVzc2lvbiIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5SWNvbiIsImJDb25kaXRpb24iLCJDcml0aWNhbGl0eVJlcHJlc2VudGF0aW9uIiwic0ljb25QYXRoIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlCdXR0b25UeXBlIiwic0J1dHRvblR5cGVFeHByZXNzaW9uIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQiLCJzQ29sb3JFeHByZXNzaW9uIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLGtDQUFrQyxHQUFHLFVBQUNDLE9BQUQsRUFBZUMsc0JBQWYsRUFBbUY7QUFDcEksUUFBTUMsaUJBQWlCLEdBQUdGLE9BQU8sQ0FBQ0csWUFBUixHQUF1QkgsT0FBTyxDQUFDRyxZQUEv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RCxLQUFLLENBQUNMLHNCQUFELEVBQXlCTSxRQUFRLENBQUMsR0FBRCxDQUFqQyxDQUhKLENBREcsRUFNTEEsUUFBUSxDQUFDLE1BQUQsQ0FOSCxFQU9MQSxRQUFRLENBQUMsU0FBRCxDQVBILENBUEQsQ0FQa0IsQ0FBekI7QUF5QkEsS0ExQkQsTUEwQk87QUFDTlMsTUFBQUEsZ0JBQWdCLEdBQUdULFFBQVEsQ0FBQyxTQUFELENBQTNCO0FBQ0E7O0FBQ0QsV0FBT0MsaUJBQWlCLENBQUNRLGdCQUFELENBQXhCO0FBQ0EsR0FuQ00iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBjb25zdGFudCwgZXF1YWwsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgaWZFbHNlLCBvciB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbi8qKlxuICogUmV0dXJucyBhbiBleHByZXNzaW9uIHRvIHNldCBidXR0b24gdHlwZSBiYXNlZCBvbiBDcml0aWNhbGl0eVxuICogU3VwcG9ydGVkIENyaXRpY2FsaXR5OiBQb3NpdGl2ZSwgTmVnYXRpdmUsIENyaXRpY2FsIGFuZCBJbmZvcm1hdGlvbiBsZWFkaW5nIHRvIFN1Y2Nlc3MsIEVycm9yLCBXYXJuaW5nIGFuZCBOb25lIHN0YXRlIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBzdGF0aWNcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVycy5idWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yXG4gKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQ3JpdGljYWxpdHlGb3JtYXR0ZXJzXG4gKiBAcGFyYW0gb1RhcmdldCBBIERhdGFGaWVsZCBhIERhdGFQb2ludCBvciBhIERhdGFNb2RlbE9iamVjdFBhdGguXG4gKiBAcGFyYW0gW29Qcm9wZXJ0eURhdGFNb2RlbFBhdGhdIERhdGFNb2RlbE9iamVjdFBhdGguXG4gKiBAcmV0dXJucyBBbiBleHByZXNzaW9uIHRvIGRlZHVjZSB0aGUgc3RhdGUgb2YgYW4gb2JqZWN0U3RhdHVzLlxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlDb2xvciA9IChvVGFyZ2V0OiBhbnksIG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRjb25zdCBvQW5ub3RhdGlvblRhcmdldCA9IG9UYXJnZXQudGFyZ2V0T2JqZWN0ID8gb1RhcmdldC50YXJnZXRPYmplY3QgOiBvVGFyZ2V0O1xuXHRjb25zdCBvQ3JpdGljYWxpdHlQcm9wZXJ0eSA9IG9Bbm5vdGF0aW9uVGFyZ2V0Py5Dcml0aWNhbGl0eTtcblx0Y29uc3QgcmVsYXRpdmVMb2NhdGlvbiA9IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGhcblx0XHQ/IGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uLCBvUHJvcGVydHlEYXRhTW9kZWxQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzKS5tYXAoKG5wKSA9PiBucC5uYW1lKVxuXHRcdDogdW5kZWZpbmVkO1xuXHRjb25zdCBvQ3JpdGljYWxpdHlFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihvQ3JpdGljYWxpdHlQcm9wZXJ0eSwgcmVsYXRpdmVMb2NhdGlvbik7XG5cdGxldCBzVmFsdWVTdGF0ZUV4cHJlc3Npb247XG5cdGlmIChvQ3JpdGljYWxpdHlQcm9wZXJ0eSkge1xuXHRcdHNWYWx1ZVN0YXRlRXhwcmVzc2lvbiA9IGlmRWxzZShcblx0XHRcdG9yKFxuXHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiKSksXG5cdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24gYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDEpKSxcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIxXCIpKVxuXHRcdFx0KSxcblx0XHRcdGNvbnN0YW50KFwiRXJyb3JcIiksXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdG9yKFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL0NyaXRpY2FsXCIpKSxcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgyKSksXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIyXCIpKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjb25zdGFudChcIldhcm5pbmdcIiksXG5cdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRvcihcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIpKSxcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24gYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDMpKSxcblx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiM1wiKSlcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGNvbnN0YW50KFwiU3VjY2Vzc1wiKSxcblx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRvcihcblx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvSW5mb3JtYXRpb25cIikpLFxuXHRcdFx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCg1KSksXG5cdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiNVwiKSlcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRjb25zdGFudChcIkluZm9ybWF0aW9uXCIpLFxuXHRcdFx0XHRcdFx0Y29uc3RhbnQoXCJOb25lXCIpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fSBlbHNlIHtcblx0XHQvLyBBbnkgb3RoZXIgY2FzZXMgYXJlIG5vdCB2YWxpZCwgdGhlIGRlZmF1bHQgdmFsdWUgb2YgJ05vbmUnIHdpbGwgYmUgcmV0dXJuZWRcblx0XHRzVmFsdWVTdGF0ZUV4cHJlc3Npb24gPSBjb25zdGFudChcIk5vbmVcIik7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHNWYWx1ZVN0YXRlRXhwcmVzc2lvbik7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gZXhwcmVzc2lvbiB0byBzZXQgaWNvbiB0eXBlIGJhc2VkIG9uIENyaXRpY2FsaXR5XG4gKiBTdXBwb3J0ZWQgQ3JpdGljYWxpdHk6IFBvc2l0aXZlLCBOZWdhdGl2ZSwgQ3JpdGljYWwgYW5kIEluZm9ybWF0aW9uLlxuICpcbiAqIEBmdW5jdGlvblxuICogQHN0YXRpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQ3JpdGljYWxpdHlGb3JtYXR0ZXJzLmJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5SWNvblxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVyc1xuICogQHBhcmFtIG9UYXJnZXQgQSBEYXRhRmllbGQgYSBEYXRhUG9pbnQgb3IgYSBEYXRhTW9kZWxPYmplY3RQYXRoLlxuICogQHBhcmFtIFtvUHJvcGVydHlEYXRhTW9kZWxQYXRoXSBEYXRhTW9kZWxPYmplY3RQYXRoLlxuICogQHJldHVybnMgQW4gZXhwcmVzc2lvbiB0byBkZWR1Y2UgdGhlIGljb24gb2YgYW4gb2JqZWN0U3RhdHVzLlxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uID0gKG9UYXJnZXQ6IGFueSwgb1Byb3BlcnR5RGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGNvbnN0IG9Bbm5vdGF0aW9uVGFyZ2V0ID0gb1RhcmdldD8udGFyZ2V0T2JqZWN0ID8gb1RhcmdldC50YXJnZXRPYmplY3QgOiBvVGFyZ2V0O1xuXHRjb25zdCBvQ3JpdGljYWxpdHlQcm9wZXJ0eSA9IG9Bbm5vdGF0aW9uVGFyZ2V0Py5Dcml0aWNhbGl0eTtcblx0Y29uc3QgcmVsYXRpdmVMb2NhdGlvbiA9IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGhcblx0XHQ/IGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uLCBvUHJvcGVydHlEYXRhTW9kZWxQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzKS5tYXAoKG5wKSA9PiBucC5uYW1lKVxuXHRcdDogdW5kZWZpbmVkO1xuXHRjb25zdCBvQ3JpdGljYWxpdHlFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihvQ3JpdGljYWxpdHlQcm9wZXJ0eSwgcmVsYXRpdmVMb2NhdGlvbik7XG5cdGNvbnN0IGJDb25kaXRpb24gPVxuXHRcdG9Bbm5vdGF0aW9uVGFyZ2V0Py5Dcml0aWNhbGl0eVJlcHJlc2VudGF0aW9uICYmXG5cdFx0b0Fubm90YXRpb25UYXJnZXQ/LkNyaXRpY2FsaXR5UmVwcmVzZW50YXRpb24gPT09IFwiVUkuQ3JpdGljYWxpdHlSZXByZXNlbnRhdGlvblR5cGUvV2l0aG91dEljb25cIjtcblx0bGV0IHNJY29uUGF0aDtcblx0aWYgKCFiQ29uZGl0aW9uKSB7XG5cdFx0aWYgKG9Dcml0aWNhbGl0eVByb3BlcnR5KSB7XG5cdFx0XHRzSWNvblBhdGggPSBpZkVsc2UoXG5cdFx0XHRcdG9yKFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIpKSxcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgxKSksXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIxXCIpKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjb25zdGFudChcInNhcC1pY29uOi8vbWVzc2FnZS1lcnJvclwiKSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdG9yKFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIikpLFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoMikpLFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIyXCIpKVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0Y29uc3RhbnQoXCJzYXAtaWNvbjovL21lc3NhZ2Utd2FybmluZ1wiKSxcblx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRvcihcblx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIikpLFxuXHRcdFx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgzKSksXG5cdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiM1wiKSlcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRjb25zdGFudChcInNhcC1pY29uOi8vbWVzc2FnZS1zdWNjZXNzXCIpLFxuXHRcdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0XHRvcihcblx0XHRcdFx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIlVJLkNyaXRpY2FsaXR5VHlwZS9JbmZvcm1hdGlvblwiKSksXG5cdFx0XHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoNSkpLFxuXHRcdFx0XHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiNVwiKSlcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0Y29uc3RhbnQoXCJzYXAtaWNvbjovL21lc3NhZ2UtaW5mb3JtYXRpb25cIiksXG5cdFx0XHRcdFx0XHRcdGNvbnN0YW50KFwiXCIpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzSWNvblBhdGggPSBjb25zdGFudChcIlwiKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0c0ljb25QYXRoID0gY29uc3RhbnQoXCJcIik7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHNJY29uUGF0aCk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gZXhwcmVzc2lvbiB0byBzZXQgYnV0dG9uIHR5cGUgYmFzZWQgb24gQ3JpdGljYWxpdHlcbiAqIFN1cHBvcnRlZCBDcml0aWNhbGl0eTogUG9zaXRpdmUgYW5kIE5lZ2F0aXZlIGxlYWRpbmcgdG8gQWNjZXB0IGFuZCBSZWplY3QgYnV0dG9uIHR5cGUgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBmdW5jdGlvblxuICogQHN0YXRpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQ3JpdGljYWxpdHlGb3JtYXR0ZXJzLmJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5QnV0dG9uVHlwZVxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVyc1xuICogQHBhcmFtIG9UYXJnZXQgQSBEYXRhRmllbGQsIERhdGFQb2ludCwgRGF0YU1vZGVsT2JqZWN0UGF0aC5cbiAqIEByZXR1cm5zIEFuIGV4cHJlc3Npb24gdG8gZGVkdWNlIGJ1dHRvbiB0eXBlLlxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlCdXR0b25UeXBlID0gKG9UYXJnZXQ6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGNvbnN0IG9Bbm5vdGF0aW9uVGFyZ2V0ID0gb1RhcmdldD8udGFyZ2V0T2JqZWN0ID8gb1RhcmdldC50YXJnZXRPYmplY3QgOiBvVGFyZ2V0O1xuXHRjb25zdCBvQ3JpdGljYWxpdHlQcm9wZXJ0eSA9IG9Bbm5vdGF0aW9uVGFyZ2V0Py5Dcml0aWNhbGl0eTtcblx0Y29uc3Qgb0NyaXRpY2FsaXR5RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ob0NyaXRpY2FsaXR5UHJvcGVydHkpO1xuXHRsZXQgc0J1dHRvblR5cGVFeHByZXNzaW9uO1xuXHRpZiAob0NyaXRpY2FsaXR5UHJvcGVydHkpIHtcblx0XHRzQnV0dG9uVHlwZUV4cHJlc3Npb24gPSBpZkVsc2UoXG5cdFx0XHRvcihcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIikpLFxuXHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgxKSksXG5cdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiMVwiKSlcblx0XHRcdCksXG5cdFx0XHRjb25zdGFudChcIlJlamVjdFwiKSxcblx0XHRcdGlmRWxzZShcblx0XHRcdFx0b3IoXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIikpLFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24gYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPE51bWJlcj4sIGNvbnN0YW50KDMpKSxcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIjNcIikpXG5cdFx0XHRcdCksXG5cdFx0XHRcdGNvbnN0YW50KFwiQWNjZXB0XCIpLFxuXHRcdFx0XHRjb25zdGFudChcIkRlZmF1bHRcIilcblx0XHRcdClcblx0XHQpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIEFueSBvdGhlciBjYXNlcyBhcmUgbm90IHZhbGlkLCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAnRGVmYXVsdCcgd2lsbCBiZSByZXR1cm5lZFxuXHRcdHNCdXR0b25UeXBlRXhwcmVzc2lvbiA9IGNvbnN0YW50KFwiRGVmYXVsdFwiKTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oc0J1dHRvblR5cGVFeHByZXNzaW9uKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBleHByZXNzaW9uIHRvIHNldCBjb2xvciBpbiBNaWNyb0NoYXJ0cyBiYXNlZCBvbiBDcml0aWNhbGl0eVxuICogU3VwcG9ydGVkIENyaXRpY2FsaXR5OiBQb3NpdGl2ZSwgTmVnYXRpdmUgYW5kIENyaXRpY2FsIGxlYWRpbmcgdG8gR29vZCwgRXJyb3IgYW5kIENyaXRpY2FsIGNvbG9yIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBzdGF0aWNcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVycy5idWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydFxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkNyaXRpY2FsaXR5Rm9ybWF0dGVyc1xuICogQHBhcmFtIG9UYXJnZXQgQSBEYXRhRmllbGQsIERhdGFQb2ludCwgRGF0YU1vZGVsT2JqZWN0UGF0aFxuICogQHJldHVybnMgQW4gZXhwcmVzc2lvbiB0byBkZWR1Y2UgY29sb3JzIGluIE1pY3JvY2hhcnRzXG4gKiBAcHJpdmF0ZVxuICogQHVpNS1yZXN0cmljdGVkXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydCA9IChvVGFyZ2V0OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRjb25zdCBvQW5ub3RhdGlvblRhcmdldCA9IG9UYXJnZXQ/LnRhcmdldE9iamVjdCA/IG9UYXJnZXQudGFyZ2V0T2JqZWN0IDogb1RhcmdldDtcblx0Y29uc3Qgb0NyaXRpY2FsaXR5UHJvcGVydHkgPSBvQW5ub3RhdGlvblRhcmdldD8uQ3JpdGljYWxpdHk7XG5cdGNvbnN0IG9Dcml0aWNhbGl0eUV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+ID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKG9Dcml0aWNhbGl0eVByb3BlcnR5KTtcblx0bGV0IHNDb2xvckV4cHJlc3Npb247XG5cdGlmIChvQ3JpdGljYWxpdHlQcm9wZXJ0eSkge1xuXHRcdHNDb2xvckV4cHJlc3Npb24gPSBpZkVsc2UoXG5cdFx0XHRvcihcblx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIikpLFxuXHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxOdW1iZXI+LCBjb25zdGFudCgxKSksXG5cdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiMVwiKSlcblx0XHRcdCksXG5cdFx0XHRjb25zdGFudChcIkVycm9yXCIpLFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRvcihcblx0XHRcdFx0XHRlcXVhbChvQ3JpdGljYWxpdHlFeHByZXNzaW9uLCBjb25zdGFudChcIlVJLkNyaXRpY2FsaXR5VHlwZS9Dcml0aWNhbFwiKSksXG5cdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoMikpLFxuXHRcdFx0XHRcdGVxdWFsKG9Dcml0aWNhbGl0eUV4cHJlc3Npb24sIGNvbnN0YW50KFwiMlwiKSlcblx0XHRcdFx0KSxcblx0XHRcdFx0Y29uc3RhbnQoXCJDcml0aWNhbFwiKSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdG9yKFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIikpLFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248TnVtYmVyPiwgY29uc3RhbnQoMykpLFxuXHRcdFx0XHRcdFx0ZXF1YWwob0NyaXRpY2FsaXR5RXhwcmVzc2lvbiwgY29uc3RhbnQoXCIzXCIpKVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0Y29uc3RhbnQoXCJHb29kXCIpLFxuXHRcdFx0XHRcdGNvbnN0YW50KFwiTmV1dHJhbFwiKVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fSBlbHNlIHtcblx0XHRzQ29sb3JFeHByZXNzaW9uID0gY29uc3RhbnQoXCJOZXV0cmFsXCIpO1xuXHR9XG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihzQ29sb3JFeHByZXNzaW9uKTtcbn07XG4iXX0=
|