@sapui5/sap.fe.core 1.100.0 → 1.102.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 +4 -4
- package/src/sap/fe/core/.library +2 -3
- package/src/sap/fe/core/AppComponent.js +23 -30
- package/src/sap/fe/core/AppComponent.ts +35 -40
- package/src/sap/fe/core/AppStateHandler.js +8 -8
- package/src/sap/fe/core/AppStateHandler.ts +11 -11
- package/src/sap/fe/core/BaseController.js +9 -9
- package/src/sap/fe/core/BaseController.ts +3 -4
- package/src/sap/fe/core/CommonUtils.js +122 -101
- package/src/sap/fe/core/CommonUtils.ts +239 -193
- package/src/sap/fe/core/ExtensionAPI.js +12 -13
- package/src/sap/fe/core/ExtensionAPI.ts +21 -31
- package/src/sap/fe/core/PageController.js +19 -13
- package/src/sap/fe/core/PageController.ts +40 -34
- package/src/sap/fe/core/TemplateComponent.js +198 -123
- package/src/sap/fe/core/TemplateComponent.ts +109 -121
- package/src/sap/fe/core/TemplateModel.js +7 -9
- package/src/sap/fe/core/TemplateModel.ts +3 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +935 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +837 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
- package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
- package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
- package/src/sap/fe/core/controllerextensions/EditFlow.js +660 -288
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +513 -331
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +43 -25
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +132 -103
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +16 -16
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +64 -55
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +166 -99
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +187 -149
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
- package/src/sap/fe/core/controllerextensions/MassEdit.js +13 -12
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +22 -22
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +14 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +20 -30
- package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
- package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
- package/src/sap/fe/core/controllerextensions/Paginator.js +24 -15
- package/src/sap/fe/core/controllerextensions/Paginator.ts +35 -20
- package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +34 -16
- package/src/sap/fe/core/controllerextensions/Share.ts +50 -32
- package/src/sap/fe/core/controllerextensions/SideEffects.js +15 -15
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +64 -65
- package/src/sap/fe/core/controllerextensions/ViewState.js +27 -31
- package/src/sap/fe/core/controllerextensions/ViewState.ts +103 -102
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +98 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +90 -132
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +146 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +18 -8
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +264 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +35 -33
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +100 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1584 -0
- package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +190 -159
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +780 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +329 -76
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1149 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +169 -97
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +190 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/sticky.ts +76 -12
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +592 -0
- package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +83 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +940 -0
- package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +52 -36
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
- package/src/sap/fe/core/controls/Any.js +28 -0
- package/src/sap/fe/core/controls/Any.ts +30 -0
- package/src/sap/fe/core/controls/CommandExecution.js +50 -16
- package/src/sap/fe/core/controls/CommandExecution.ts +31 -22
- package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +371 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +282 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +74 -36
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +23 -32
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +52 -5
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +127 -67
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +127 -67
- package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
- package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
- package/src/sap/fe/core/controls/FileWrapper.js +360 -0
- package/src/sap/fe/core/controls/FileWrapper.ts +202 -0
- package/src/sap/fe/core/controls/FilterBar.js +154 -119
- package/src/sap/fe/core/controls/FilterBar.ts +128 -123
- package/src/sap/fe/core/controls/FormElementWrapper.js +102 -37
- package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -35
- package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.ts +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +23 -28
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +41 -81
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +550 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +604 -35
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
- package/src/sap/fe/core/converters/MetaModelConverter.js +11 -40
- package/src/sap/fe/core/converters/MetaModelConverter.ts +56 -84
- package/src/sap/fe/core/converters/annotations/DataField.js +20 -5
- package/src/sap/fe/core/converters/annotations/DataField.ts +27 -6
- package/src/sap/fe/core/converters/controls/Common/Action.js +14 -21
- package/src/sap/fe/core/converters/controls/Common/Action.ts +23 -28
- package/src/sap/fe/core/converters/controls/Common/Chart.js +17 -10
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -14
- package/src/sap/fe/core/converters/controls/Common/Form.js +16 -18
- package/src/sap/fe/core/converters/controls/Common/Form.ts +20 -20
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
- package/src/sap/fe/core/converters/controls/Common/Table.js +389 -173
- package/src/sap/fe/core/converters/controls/Common/Table.ts +440 -244
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +26 -16
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -19
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +78 -47
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +146 -107
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +30 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +39 -34
- package/src/sap/fe/core/converters/helpers/Aggregation.js +10 -2
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +18 -13
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +6 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +28 -28
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +38 -45
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -3
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +8 -6
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +74 -13
- package/src/sap/fe/core/formatters/TableFormatter.ts +71 -16
- package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
- package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
- package/src/sap/fe/core/fpm/Component.js +46 -17
- package/src/sap/fe/core/fpm/Component.ts +11 -16
- package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
- package/src/sap/fe/core/helpers/BindingExpression.js +10 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +37 -35
- package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
- package/src/sap/fe/core/helpers/ClassSupport.ts +315 -237
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
- package/src/sap/fe/core/helpers/FPMHelper.ts +9 -8
- package/src/sap/fe/core/helpers/MassEditHelper.js +522 -147
- package/src/sap/fe/core/helpers/MassEditHelper.ts +563 -236
- package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +39 -26
- package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
- package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +5 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +8 -8
- package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
- package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
- package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
- package/src/sap/fe/core/library.js +13 -5
- package/src/sap/fe/core/library.ts +26 -17
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
- package/src/sap/fe/core/messagebundle.properties +135 -180
- package/src/sap/fe/core/messagebundle_ar.properties +31 -64
- package/src/sap/fe/core/messagebundle_bg.properties +31 -64
- package/src/sap/fe/core/messagebundle_ca.properties +31 -64
- package/src/sap/fe/core/messagebundle_cs.properties +31 -64
- package/src/sap/fe/core/messagebundle_cy.properties +32 -65
- package/src/sap/fe/core/messagebundle_da.properties +31 -64
- package/src/sap/fe/core/messagebundle_de.properties +29 -62
- package/src/sap/fe/core/messagebundle_el.properties +32 -65
- package/src/sap/fe/core/messagebundle_en.properties +32 -65
- package/src/sap/fe/core/messagebundle_en_GB.properties +29 -62
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -74
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +32 -65
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +20 -6
- package/src/sap/fe/core/messagebundle_es.properties +31 -64
- package/src/sap/fe/core/messagebundle_es_MX.properties +31 -64
- package/src/sap/fe/core/messagebundle_et.properties +31 -64
- package/src/sap/fe/core/messagebundle_fi.properties +29 -62
- package/src/sap/fe/core/messagebundle_fr.properties +36 -69
- package/src/sap/fe/core/messagebundle_fr_CA.properties +33 -66
- package/src/sap/fe/core/messagebundle_hi.properties +29 -62
- package/src/sap/fe/core/messagebundle_hr.properties +32 -65
- package/src/sap/fe/core/messagebundle_hu.properties +30 -63
- package/src/sap/fe/core/messagebundle_id.properties +32 -65
- package/src/sap/fe/core/messagebundle_it.properties +31 -64
- package/src/sap/fe/core/messagebundle_iw.properties +31 -64
- package/src/sap/fe/core/messagebundle_ja.properties +29 -62
- package/src/sap/fe/core/messagebundle_kk.properties +31 -64
- package/src/sap/fe/core/messagebundle_ko.properties +31 -64
- package/src/sap/fe/core/messagebundle_lt.properties +31 -64
- package/src/sap/fe/core/messagebundle_lv.properties +32 -65
- package/src/sap/fe/core/messagebundle_ms.properties +31 -64
- package/src/sap/fe/core/messagebundle_nl.properties +31 -64
- package/src/sap/fe/core/messagebundle_no.properties +31 -64
- package/src/sap/fe/core/messagebundle_pl.properties +34 -67
- package/src/sap/fe/core/messagebundle_pt.properties +32 -65
- package/src/sap/fe/core/messagebundle_pt_PT.properties +31 -64
- package/src/sap/fe/core/messagebundle_ro.properties +33 -66
- package/src/sap/fe/core/messagebundle_ru.properties +33 -66
- package/src/sap/fe/core/messagebundle_sh.properties +31 -64
- package/src/sap/fe/core/messagebundle_sk.properties +31 -64
- package/src/sap/fe/core/messagebundle_sl.properties +29 -62
- package/src/sap/fe/core/messagebundle_sv.properties +30 -63
- package/src/sap/fe/core/messagebundle_th.properties +31 -64
- package/src/sap/fe/core/messagebundle_tr.properties +31 -64
- package/src/sap/fe/core/messagebundle_uk.properties +32 -65
- package/src/sap/fe/core/messagebundle_vi.properties +31 -64
- package/src/sap/fe/core/messagebundle_zh_CN.properties +32 -65
- package/src/sap/fe/core/messagebundle_zh_TW.properties +34 -67
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +11 -8
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -13
- package/src/sap/fe/core/services/NavigationServiceFactory.js +5 -5
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +9 -5
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +105 -66
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +59 -49
- package/src/sap/fe/core/services/ShellServicesFactory.js +104 -29
- package/src/sap/fe/core/services/ShellServicesFactory.ts +64 -30
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -10
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +38 -51
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +0 -3
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +27 -6
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -9
- package/src/sap/fe/core/templating/EntitySetHelper.ts +11 -13
- package/src/sap/fe/core/templating/FilterHelper.js +4 -4
- package/src/sap/fe/core/templating/FilterHelper.ts +6 -5
- package/src/sap/fe/core/templating/PropertyHelper.js +70 -33
- package/src/sap/fe/core/templating/PropertyHelper.ts +49 -27
- package/src/sap/fe/core/templating/UIFormatters.js +133 -22
- package/src/sap/fe/core/templating/UIFormatters.ts +144 -50
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
- package/src/sap/fe/core/type/Email.js +26 -8
- package/src/sap/fe/core/type/Email.ts +8 -7
- package/src/sap/fe/core/AnnotationHelper.js +0 -312
- package/src/sap/fe/core/AnnotationHelper.ts +0 -315
- package/src/sap/fe/core/RouterProxy.js +0 -926
- package/src/sap/fe/core/TransactionHelper.js +0 -1562
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -392
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +0 -136
- package/src/sap/fe/core/actions/collaboration/Manage.js +0 -262
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +0 -103
- package/src/sap/fe/core/actions/draft.js +0 -523
- package/src/sap/fe/core/actions/messageHandling.js +0 -567
- package/src/sap/fe/core/actions/nonDraft.js +0 -20
- package/src/sap/fe/core/actions/nonDraft.ts +0 -12
- package/src/sap/fe/core/actions/operations.js +0 -1096
- package/src/sap/fe/core/actions/sticky.js +0 -130
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { FacetTypes } from "@sap-ux/vocabularies-types";
|
|
2
|
-
import { ManifestSection, ManifestSubSection, TemplateType } from "../ManifestSettings";
|
|
3
|
-
import { PageDefinition } from "../TemplateConverter";
|
|
4
1
|
import { EntityType } from "@sap-ux/annotation-converter";
|
|
5
|
-
import {
|
|
6
|
-
createCustomSubSections,
|
|
7
|
-
createSubSections,
|
|
8
|
-
createCustomHeaderFacetSubSections,
|
|
9
|
-
CustomObjectPageSection,
|
|
10
|
-
ObjectPageSection,
|
|
11
|
-
ObjectPageSubSection,
|
|
12
|
-
FormSubSection
|
|
13
|
-
} from "../controls/ObjectPage/SubSection";
|
|
14
|
-
import { getHeaderFacetsFromAnnotations, getHeaderFacetsFromManifest, ObjectPageHeaderFacet } from "../controls/ObjectPage/HeaderFacet";
|
|
15
|
-
import { CustomSectionID, EditableHeaderSectionID, SectionID } from "../helpers/ID";
|
|
16
|
-
import { ConfigurableRecord, insertCustomElements, Placement, Position } from "../helpers/ConfigurableObject";
|
|
2
|
+
import { FacetTypes } from "@sap-ux/vocabularies-types";
|
|
17
3
|
import { BaseAction, getActionsFromManifest, removeDuplicateActions } from "sap/fe/core/converters/controls/Common/Action";
|
|
18
4
|
import {
|
|
19
|
-
getHeaderDefaultActions,
|
|
20
5
|
getFooterDefaultActions,
|
|
6
|
+
getHeaderDefaultActions,
|
|
21
7
|
getHiddenHeaderActions
|
|
22
8
|
} from "sap/fe/core/converters/objectPage/HeaderAndFooterAction";
|
|
23
|
-
import { Avatar, getAvatar } from "../controls/ObjectPage/Avatar";
|
|
24
9
|
import {
|
|
25
10
|
annotationExpression,
|
|
26
|
-
|
|
11
|
+
BindingExpression,
|
|
27
12
|
compileBinding,
|
|
13
|
+
constant,
|
|
28
14
|
equal,
|
|
29
|
-
|
|
15
|
+
Expression,
|
|
30
16
|
ifElse,
|
|
31
|
-
|
|
32
|
-
BindingExpression,
|
|
33
|
-
Expression
|
|
17
|
+
not
|
|
34
18
|
} from "sap/fe/core/helpers/BindingExpression";
|
|
19
|
+
import { Avatar, getAvatar } from "../controls/ObjectPage/Avatar";
|
|
20
|
+
import { getHeaderFacetsFromAnnotations, getHeaderFacetsFromManifest, ObjectPageHeaderFacet } from "../controls/ObjectPage/HeaderFacet";
|
|
21
|
+
import {
|
|
22
|
+
createCustomHeaderFacetSubSections,
|
|
23
|
+
createCustomSubSections,
|
|
24
|
+
createSubSections,
|
|
25
|
+
CustomObjectPageSection,
|
|
26
|
+
FormSubSection,
|
|
27
|
+
ObjectPageSection,
|
|
28
|
+
ObjectPageSubSection
|
|
29
|
+
} from "../controls/ObjectPage/SubSection";
|
|
35
30
|
import ConverterContext from "../ConverterContext";
|
|
31
|
+
import { UI } from "../helpers/BindingHelper";
|
|
32
|
+
import { ConfigurableRecord, insertCustomElements, Placement, Position } from "../helpers/ConfigurableObject";
|
|
33
|
+
import { CustomSectionID, EditableHeaderSectionID, SectionID } from "../helpers/ID";
|
|
34
|
+
import { ManifestSection, ManifestSubSection, TemplateType } from "../ManifestSettings";
|
|
35
|
+
import { PageDefinition } from "../TemplateConverter";
|
|
36
36
|
|
|
37
37
|
export type ObjectPageDefinition = PageDefinition & {
|
|
38
38
|
header: {
|
|
@@ -46,7 +46,6 @@ export type ObjectPageDefinition = PageDefinition & {
|
|
|
46
46
|
title: {
|
|
47
47
|
expandedImageVisible: BindingExpression<string>;
|
|
48
48
|
};
|
|
49
|
-
situations: boolean;
|
|
50
49
|
};
|
|
51
50
|
sections: ObjectPageSection[];
|
|
52
51
|
footerActions: BaseAction[];
|
|
@@ -77,7 +76,7 @@ export function createEditableHeaderSection(
|
|
|
77
76
|
if (customHeaderFacetSubSections.length > 0) {
|
|
78
77
|
// merge annotation based header facets and custom header facets in the right order
|
|
79
78
|
let i = 0;
|
|
80
|
-
allHeaderFacets.forEach(function(item) {
|
|
79
|
+
allHeaderFacets.forEach(function (item) {
|
|
81
80
|
// hidden header facets are not included in allHeaderFacets array => add them anyway
|
|
82
81
|
while (headerfacetSubSections.length > i && headerfacetSubSections[i].visible === "false") {
|
|
83
82
|
allHeaderFacetsSubSections.push(headerfacetSubSections[i]);
|
|
@@ -93,7 +92,7 @@ export function createEditableHeaderSection(
|
|
|
93
92
|
allHeaderFacetsSubSections.push(headerfacetSubSections[i]);
|
|
94
93
|
i++;
|
|
95
94
|
} else {
|
|
96
|
-
customHeaderFacetSubSections.forEach(function(customItem) {
|
|
95
|
+
customHeaderFacetSubSections.forEach(function (customItem) {
|
|
97
96
|
if (item.key === customItem.key) {
|
|
98
97
|
allHeaderFacetsSubSections.push(customItem);
|
|
99
98
|
}
|
|
@@ -107,7 +106,7 @@ export function createEditableHeaderSection(
|
|
|
107
106
|
id: editableHeaderSectionID,
|
|
108
107
|
key: "EditableHeaderContent",
|
|
109
108
|
title: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_HEADER_SECTION}",
|
|
110
|
-
visible:
|
|
109
|
+
visible: compileBinding(UI.IsEditable),
|
|
111
110
|
subSections: allHeaderFacetsSubSections
|
|
112
111
|
};
|
|
113
112
|
return headerSection;
|
|
@@ -159,7 +158,7 @@ function getSectionsFromManifest(
|
|
|
159
158
|
converterContext: ConverterContext
|
|
160
159
|
): Record<string, CustomObjectPageSection> {
|
|
161
160
|
const sections: Record<string, CustomObjectPageSection> = {};
|
|
162
|
-
Object.keys(manifestSections).forEach(manifestSectionKey => {
|
|
161
|
+
Object.keys(manifestSections).forEach((manifestSectionKey) => {
|
|
163
162
|
sections[manifestSectionKey] = getSectionFromManifest(manifestSections[manifestSectionKey], manifestSectionKey, converterContext);
|
|
164
163
|
});
|
|
165
164
|
return sections;
|
|
@@ -218,7 +217,7 @@ function getSectionFromManifest(
|
|
|
218
217
|
* @param {ConverterContext} converterContext The converter context
|
|
219
218
|
* @returns An array containing all the actions for this ObjectPage header
|
|
220
219
|
*/
|
|
221
|
-
export const getHeaderActions = function(converterContext: ConverterContext): BaseAction[] {
|
|
220
|
+
export const getHeaderActions = function (converterContext: ConverterContext): BaseAction[] {
|
|
222
221
|
const aAnnotationHeaderActions: BaseAction[] = getHeaderDefaultActions(converterContext);
|
|
223
222
|
const manifestWrapper = converterContext.getManifestWrapper();
|
|
224
223
|
const headerActions = insertCustomElements(
|
|
@@ -231,7 +230,7 @@ export const getHeaderActions = function(converterContext: ConverterContext): Ba
|
|
|
231
230
|
undefined,
|
|
232
231
|
getHiddenHeaderActions(converterContext)
|
|
233
232
|
),
|
|
234
|
-
{ isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite" }
|
|
233
|
+
{ isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite", command: "overwrite" }
|
|
235
234
|
);
|
|
236
235
|
return removeDuplicateActions(headerActions);
|
|
237
236
|
};
|
|
@@ -242,13 +241,13 @@ export const getHeaderActions = function(converterContext: ConverterContext): Ba
|
|
|
242
241
|
* @param {ConverterContext} converterContext The converter context
|
|
243
242
|
* @returns An array containing all the actions for this ObjectPage footer
|
|
244
243
|
*/
|
|
245
|
-
export const getFooterActions = function(converterContext: ConverterContext): BaseAction[] {
|
|
244
|
+
export const getFooterActions = function (converterContext: ConverterContext): BaseAction[] {
|
|
246
245
|
const manifestWrapper = converterContext.getManifestWrapper();
|
|
247
246
|
const aAnnotationFooterActions: BaseAction[] = getFooterDefaultActions(manifestWrapper.getViewLevel(), converterContext);
|
|
248
247
|
const footerActions = insertCustomElements(
|
|
249
248
|
aAnnotationFooterActions,
|
|
250
249
|
getActionsFromManifest(manifestWrapper.getFooterActions(), converterContext, aAnnotationFooterActions),
|
|
251
|
-
{ isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite" }
|
|
250
|
+
{ isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite", command: "overwrite" }
|
|
252
251
|
);
|
|
253
252
|
return footerActions;
|
|
254
253
|
};
|
|
@@ -259,7 +258,7 @@ export const getFooterActions = function(converterContext: ConverterContext): Ba
|
|
|
259
258
|
* @param {ConverterContext} converterContext The converter context
|
|
260
259
|
* @returns An array of sections.
|
|
261
260
|
*/
|
|
262
|
-
export const getSections = function(converterContext: ConverterContext): ObjectPageSection[] {
|
|
261
|
+
export const getSections = function (converterContext: ConverterContext): ObjectPageSection[] {
|
|
263
262
|
const manifestWrapper = converterContext.getManifestWrapper();
|
|
264
263
|
const sections = insertCustomElements(
|
|
265
264
|
getSectionsFromAnnotation(converterContext),
|
|
@@ -282,8 +281,8 @@ export const getSections = function(converterContext: ConverterContext): ObjectP
|
|
|
282
281
|
// defining the side content and actions in the manifest at collection facet level; now, since the sideContent always needs
|
|
283
282
|
// to be assigned to a block, we need to move the sideContent of from a mixed collection facet to its first child reference facet.
|
|
284
283
|
// ==============================================
|
|
285
|
-
sections.forEach(function(section) {
|
|
286
|
-
section.subSections?.forEach(function(subSection) {
|
|
284
|
+
sections.forEach(function (section) {
|
|
285
|
+
section.subSections?.forEach(function (subSection) {
|
|
287
286
|
if (subSection.type === "Mixed" && subSection.sideContent != undefined && subSection.content && subSection.content.length > 0) {
|
|
288
287
|
// 1. Copy sideContent / actions to the SubSection's content
|
|
289
288
|
// 2. Delete sideContent / actions at the (invalid) manifest level
|
|
@@ -326,11 +325,7 @@ function getShowHeaderContentExpression(converterContext: ConverterContext): Exp
|
|
|
326
325
|
return ifElse(
|
|
327
326
|
!hasHeaderContent(converterContext),
|
|
328
327
|
constant(false),
|
|
329
|
-
ifElse(
|
|
330
|
-
equal(manifestWrapper.isHeaderEditable(), false),
|
|
331
|
-
constant(true),
|
|
332
|
-
not(equal(bindingExpression("/editMode", "ui"), "Editable"))
|
|
333
|
-
)
|
|
328
|
+
ifElse(equal(manifestWrapper.isHeaderEditable(), false), constant(true), not(UI.IsEditable))
|
|
334
329
|
);
|
|
335
330
|
}
|
|
336
331
|
|
|
@@ -340,7 +335,7 @@ function getShowHeaderContentExpression(converterContext: ConverterContext): Exp
|
|
|
340
335
|
* @param converterContext The instance of the converter context
|
|
341
336
|
* @returns {BindingExpression<boolean>} The binding expression for the Delete button
|
|
342
337
|
*/
|
|
343
|
-
export const getShowHeaderContent = function(converterContext: ConverterContext): BindingExpression<boolean> {
|
|
338
|
+
export const getShowHeaderContent = function (converterContext: ConverterContext): BindingExpression<boolean> {
|
|
344
339
|
return compileBinding(getShowHeaderContentExpression(converterContext));
|
|
345
340
|
};
|
|
346
341
|
|
|
@@ -350,16 +345,15 @@ export const getShowHeaderContent = function(converterContext: ConverterContext)
|
|
|
350
345
|
* @param converterContext The instance of the converter context
|
|
351
346
|
* @returns {BindingExpression<string>} The binding expression for the Delete button
|
|
352
347
|
*/
|
|
353
|
-
export const getExpandedImageVisible = function(converterContext: ConverterContext): BindingExpression<string> {
|
|
348
|
+
export const getExpandedImageVisible = function (converterContext: ConverterContext): BindingExpression<string> {
|
|
354
349
|
return compileBinding(not(getShowHeaderContentExpression(converterContext)));
|
|
355
350
|
};
|
|
356
351
|
|
|
357
|
-
export const convertPage = function(converterContext: ConverterContext): ObjectPageDefinition {
|
|
352
|
+
export const convertPage = function (converterContext: ConverterContext): ObjectPageDefinition {
|
|
358
353
|
const manifestWrapper = converterContext.getManifestWrapper();
|
|
359
354
|
let headerSection: ObjectPageSection | undefined;
|
|
360
355
|
const entityType: EntityType = converterContext.getEntityType();
|
|
361
356
|
|
|
362
|
-
const situationAnnotations = (entityType.annotations as any)?.FE?.Situations;
|
|
363
357
|
// Retrieve all header facets (from annotations & custom)
|
|
364
358
|
const headerFacets = insertCustomElements(
|
|
365
359
|
getHeaderFacetsFromAnnotations(converterContext),
|
|
@@ -390,8 +384,7 @@ export const convertPage = function(converterContext: ConverterContext): ObjectP
|
|
|
390
384
|
avatar: getAvatar(converterContext),
|
|
391
385
|
title: {
|
|
392
386
|
expandedImageVisible: getExpandedImageVisible(converterContext)
|
|
393
|
-
}
|
|
394
|
-
situations: situationAnnotations
|
|
387
|
+
}
|
|
395
388
|
},
|
|
396
389
|
sections: sections,
|
|
397
390
|
footerActions: footerActions,
|
|
@@ -84,13 +84,13 @@ sap.ui.define([], function () {
|
|
|
84
84
|
},
|
|
85
85
|
tool: {
|
|
86
86
|
start: function (oComponent) {
|
|
87
|
-
oComponent.
|
|
87
|
+
oComponent.getEnvironmentCapabilities().setCapability("AppState", false);
|
|
88
88
|
},
|
|
89
89
|
stop: function (oComponent) {
|
|
90
|
-
oComponent.
|
|
90
|
+
oComponent.getEnvironmentCapabilities().setCapability("AppState", true);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
};
|
|
94
94
|
return AppComponentDesignTime;
|
|
95
95
|
}, false);
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcENvbXBvbmVudC5kZXNpZ250aW1lLnRzIl0sIm5hbWVzIjpbIm9VcmxQYXJzZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRTZXJ2aWNlIiwib1VybFBhcmFtcyIsInBhcnNlUGFyYW1ldGVycyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwic0Zpb3JpVG9vbHNSdGFNb2RlIiwic0Zpb3JpVG9vbHNSdGFNb2RlVmFsdWUiLCJ0b0xvd2VyQ2FzZSIsIkFwcENvbXBvbmVudERlc2lnblRpbWUiLCJhY3Rpb25zIiwiYWdncmVnYXRpb25zIiwicm9vdENvbnRyb2wiLCJwcm9wYWdhdGVNZXRhZGF0YSIsIm9FbGVtZW50IiwibUFsbG93TGlzdCIsImlzT25EeW5hbWljUGFnZSIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJzUGFyZW50QWdncmVnYXRpb25OYW1lIiwiZ2V0SWQiLCJpbmRleE9mIiwidG9vbCIsInN0YXJ0Iiwib0NvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwic2V0Q2FwYWJpbGl0eSIsInN0b3AiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFBQSxNQUFNQSxVQUFVLEdBQUdDLEdBQUcsQ0FBQ0MsTUFBSixDQUFXQyxTQUFYLENBQXFCQyxVQUFyQixDQUFnQyxZQUFoQyxDQUFuQjtBQUNBLE1BQU1DLFVBQVUsR0FBR0wsVUFBVSxDQUFDTSxlQUFYLENBQTJCQyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLE1BQTNDLENBQW5CO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsc0JBQTNCO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUdOLFVBQVUsQ0FBQ0ssa0JBQUQsQ0FBVixJQUFrQ0wsVUFBVSxDQUFDSyxrQkFBRCxDQUFWLENBQStCLENBQS9CLEVBQWtDRSxXQUFsQyxFQUFsRSxDLENBQ0E7O0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUc7QUFDOUJDLElBQUFBLE9BQU8sRUFBRSxlQURxQjtBQUU5QkMsSUFBQUEsWUFBWSxFQUFFO0FBQ2JDLE1BQUFBLFdBQVcsRUFBRTtBQUNaRixRQUFBQSxPQUFPLEVBQUUsZUFERztBQUVaRyxRQUFBQSxpQkFBaUIsRUFBRSxVQUFVQyxRQUFWLEVBQXlCO0FBQzNDO0FBQ0EsY0FBSUMsVUFBbUMsR0FBRyxFQUExQzs7QUFDQSxjQUFNQyxlQUFlLEdBQUcsVUFBVUYsUUFBVixFQUFrQztBQUN6RCxnQkFBSUEsUUFBUSxDQUFDRyxXQUFULEdBQXVCQyxPQUF2QixPQUFxQyxtQkFBekMsRUFBOEQ7QUFDN0QscUJBQU8sSUFBUDtBQUNBLGFBRkQsTUFFTztBQUNOLGtCQUFNQyxPQUFPLEdBQUdMLFFBQVEsQ0FBQ00sU0FBVCxFQUFoQjtBQUNBLHFCQUFPRCxPQUFPLEdBQUdILGVBQWUsQ0FBQ0csT0FBRCxDQUFsQixHQUE4QixLQUE1QztBQUNBO0FBQ0QsV0FQRDs7QUFRQSxjQUFJWix1QkFBdUIsS0FBSyxNQUFoQyxFQUF3QztBQUN2QztBQUNBLGdCQUFJUyxlQUFlLENBQUNGLFFBQUQsQ0FBbkIsRUFBK0I7QUFDOUJDLGNBQUFBLFVBQVUsR0FBRztBQUNaLHdEQUF3QyxJQUQ1QjtBQUVaLGtEQUFrQyxJQUZ0QjtBQUdaLG9DQUFvQjtBQUhSLGVBQWI7QUFLQTtBQUNELFdBVEQsTUFTTztBQUNOO0FBQ0FBLFlBQUFBLFVBQVUsR0FBRztBQUNaLG9FQUFzRCxJQUQxQztBQUVaLG9FQUFzRCxJQUYxQztBQUdaLDJDQUE2QixJQUhqQjtBQUlaLG9DQUFzQixJQUpWO0FBS1osNENBQThCLElBTGxCO0FBTVosK0NBQWlDLElBTnJCO0FBT1osOEJBQWdCLElBUEo7QUFRWixrQ0FBb0IsSUFSUjtBQVNaLCtCQUFpQixJQVRMO0FBVVosdUNBQXlCLElBVmI7QUFXWix5Q0FBMkIsSUFYZjtBQVlaLGtEQUFvQyxJQVp4QjtBQWFaLGdEQUFrQyxJQWJ0QjtBQWNaLHNEQUF3QyxJQWQ1QjtBQWVaLGdEQUFrQyxJQWZ0QjtBQWdCWixrQ0FBb0IsSUFoQlI7QUFpQlosa0NBQW9CO0FBakJSLGFBQWI7O0FBbUJBLGdCQUNDRCxRQUFRLENBQUNHLFdBQVQsR0FBdUJDLE9BQXZCLE9BQXFDLGtCQUFyQyxJQUNBSixRQUFRLENBQUNNLFNBQVQsR0FBcUJDLHNCQUFyQixLQUFnRCxZQUZqRCxFQUdFO0FBQ0ROLGNBQUFBLFVBQVUsQ0FBQyxrQkFBRCxDQUFWLEdBQWlDLEtBQWpDO0FBQ0E7O0FBQ0QsZ0JBQ0NELFFBQVEsQ0FBQ0csV0FBVCxHQUF1QkMsT0FBdkIsT0FBcUMsY0FBckMsSUFDQUosUUFBUSxDQUFDTSxTQUFULEdBQXFCQyxzQkFBckIsS0FBZ0QsWUFGakQsRUFHRTtBQUNETixjQUFBQSxVQUFVLENBQUMsY0FBRCxDQUFWLEdBQTZCLEtBQTdCO0FBQ0E7O0FBQ0QsZ0JBQ0NELFFBQVEsQ0FBQ0csV0FBVCxHQUF1QkMsT0FBdkIsT0FBcUMsZUFBckMsSUFDQUosUUFBUSxDQUFDUSxLQUFULEdBQWlCQyxPQUFqQixDQUF5Qiw4QkFBekIsSUFBMkQsQ0FGNUQsRUFHRTtBQUNEUixjQUFBQSxVQUFVLENBQUMsZUFBRCxDQUFWLEdBQThCLEtBQTlCO0FBQ0E7QUFDRDs7QUFDRCxjQUFJQSxVQUFVLENBQUNELFFBQVEsQ0FBQ0csV0FBVCxHQUF1QkMsT0FBdkIsRUFBRCxDQUFkLEVBQWtEO0FBQ2pELG1CQUFPLEVBQVA7QUFDQSxXQUZELE1BRU87QUFDTixtQkFBTztBQUNOUixjQUFBQSxPQUFPLEVBQUU7QUFESCxhQUFQO0FBR0E7QUFDRDtBQXJFVztBQURBLEtBRmdCO0FBMkU5QmMsSUFBQUEsSUFBSSxFQUFFO0FBQ0xDLE1BQUFBLEtBQUssRUFBRSxVQUFVQyxVQUFWLEVBQW9DO0FBQzFDQSxRQUFBQSxVQUFVLENBQUNDLDBCQUFYLEdBQXdDQyxhQUF4QyxDQUFzRCxVQUF0RCxFQUFrRSxLQUFsRTtBQUNBLE9BSEk7QUFJTEMsTUFBQUEsSUFBSSxFQUFFLFVBQVVILFVBQVYsRUFBb0M7QUFDekNBLFFBQUFBLFVBQVUsQ0FBQ0MsMEJBQVgsR0FBd0NDLGFBQXhDLENBQXNELFVBQXRELEVBQWtFLElBQWxFO0FBQ0E7QUFOSTtBQTNFd0IsR0FBL0I7U0FxRmVuQixzQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5cbmNvbnN0IG9VcmxQYXJzZXIgPSBzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRTZXJ2aWNlKFwiVVJMUGFyc2luZ1wiKTtcbmNvbnN0IG9VcmxQYXJhbXMgPSBvVXJsUGFyc2VyLnBhcnNlUGFyYW1ldGVycyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbmNvbnN0IHNGaW9yaVRvb2xzUnRhTW9kZSA9IFwiZmlvcmktdG9vbHMtcnRhLW1vZGVcIjtcbmNvbnN0IHNGaW9yaVRvb2xzUnRhTW9kZVZhbHVlID0gb1VybFBhcmFtc1tzRmlvcmlUb29sc1J0YU1vZGVdICYmIG9VcmxQYXJhbXNbc0Zpb3JpVG9vbHNSdGFNb2RlXVswXS50b0xvd2VyQ2FzZSgpO1xuLy8gVG8gZW5hYmxlIGFsbCBhY3Rpb25zLCByZW1vdmUgdGhlIHByb3BhZ2F0ZU1ldGFkYXRhIGZ1bmN0aW9uLiBPciwgcmVtb3ZlIHRoaXMgZmlsZSBhbmQgaXRzIGVudHJ5IGluIEFwcENvbXBvbmVudC5qcyByZWZlcnJpbmcgJ2Rlc2lnblRpbWUnLlxuY29uc3QgQXBwQ29tcG9uZW50RGVzaWduVGltZSA9IHtcblx0YWN0aW9uczogXCJub3QtYWRhcHRhYmxlXCIsXG5cdGFnZ3JlZ2F0aW9uczoge1xuXHRcdHJvb3RDb250cm9sOiB7XG5cdFx0XHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIixcblx0XHRcdHByb3BhZ2F0ZU1ldGFkYXRhOiBmdW5jdGlvbiAob0VsZW1lbnQ6IGFueSkge1xuXHRcdFx0XHQvLyBhbGxvdyBsaXN0IG9mIGNvbnRyb2xzIGZvciB3aGljaCB3ZSB3YW50IHRvIGVuYWJsZSBEZXNpZ25UaW1lXG5cdFx0XHRcdGxldCBtQWxsb3dMaXN0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXHRcdFx0XHRjb25zdCBpc09uRHluYW1pY1BhZ2UgPSBmdW5jdGlvbiAob0VsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuXHRcdFx0XHRcdGlmIChvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAuZi5EeW5hbWljUGFnZVwiKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb1BhcmVudCA9IG9FbGVtZW50LmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9QYXJlbnQgPyBpc09uRHluYW1pY1BhZ2Uob1BhcmVudCkgOiBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHRcdGlmIChzRmlvcmlUb29sc1J0YU1vZGVWYWx1ZSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHQvLyBhbGxvdyBsaXN0IGZvciB0aGUgRmlvcmkgdG9vbHNcblx0XHRcdFx0XHRpZiAoaXNPbkR5bmFtaWNQYWdlKG9FbGVtZW50KSkge1xuXHRcdFx0XHRcdFx0bUFsbG93TGlzdCA9IHtcblx0XHRcdFx0XHRcdFx0XCJzYXAudWkuZmwudmFyaWFudHMuVmFyaWFudE1hbmFnZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XCJzYXAudWkubWRjLlRhYmxlXCI6IHRydWVcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGFsbG93IGxpc3QgZm9yIGtleSB1c2Vyc1xuXHRcdFx0XHRcdG1BbGxvd0xpc3QgPSB7XG5cdFx0XHRcdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVWQm94XCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVIQm94XCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51eGFwLk9iamVjdFBhZ2VMYXlvdXRcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnV4YXAuQW5jaG9yQmFyXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51eGFwLk9iamVjdFBhZ2VTZWN0aW9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51eGFwLk9iamVjdFBhZ2VTdWJTZWN0aW9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5tLkJ1dHRvblwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAubS5NZW51QnV0dG9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5tLkZsZXhCb3hcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnVpLmZsLnV0aWwuSUZyYW1lXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtQ29udGFpbmVyXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtRWxlbWVudFwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAudWkuZmwudmFyaWFudHMuVmFyaWFudE1hbmFnZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5tZGMuVGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLm0uSWNvblRhYkJhclwiOiB0cnVlXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAubS5NZW51QnV0dG9uXCIgJiZcblx0XHRcdFx0XHRcdG9FbGVtZW50LmdldFBhcmVudCgpLnNQYXJlbnRBZ2dyZWdhdGlvbk5hbWUgIT09IFwiX2FuY2hvckJhclwiXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRtQWxsb3dMaXN0W1wic2FwLm0uTWVudUJ1dHRvblwiXSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAubS5CdXR0b25cIiAmJlxuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZ2V0UGFyZW50KCkuc1BhcmVudEFnZ3JlZ2F0aW9uTmFtZSAhPT0gXCJfYW5jaG9yQmFyXCJcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG1BbGxvd0xpc3RbXCJzYXAubS5CdXR0b25cIl0gPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkgPT09IFwic2FwLm0uRmxleEJveFwiICYmXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRJZCgpLmluZGV4T2YoXCItLWZlOjpIZWFkZXJDb250ZW50Q29udGFpbmVyXCIpIDwgMFxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0bUFsbG93TGlzdFtcInNhcC5tLkZsZXhCb3hcIl0gPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG1BbGxvd0xpc3Rbb0VsZW1lbnQuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCldKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHRvb2w6IHtcblx0XHRzdGFydDogZnVuY3Rpb24gKG9Db21wb25lbnQ6IEFwcENvbXBvbmVudCkge1xuXHRcdFx0b0NvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLnNldENhcGFiaWxpdHkoXCJBcHBTdGF0ZVwiLCBmYWxzZSk7XG5cdFx0fSxcblx0XHRzdG9wOiBmdW5jdGlvbiAob0NvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0XHRvQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuc2V0Q2FwYWJpbGl0eShcIkFwcFN0YXRlXCIsIHRydWUpO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXBwQ29tcG9uZW50RGVzaWduVGltZTtcbiJdfQ==
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import AppComponent from "sap/fe/core/AppComponent";
|
|
2
|
+
|
|
1
3
|
const oUrlParser = sap.ushell.Container.getService("URLParsing");
|
|
2
4
|
const oUrlParams = oUrlParser.parseParameters(window.location.search);
|
|
3
5
|
const sFioriToolsRtaMode = "fiori-tools-rta-mode";
|
|
@@ -8,10 +10,10 @@ const AppComponentDesignTime = {
|
|
|
8
10
|
aggregations: {
|
|
9
11
|
rootControl: {
|
|
10
12
|
actions: "not-adaptable",
|
|
11
|
-
propagateMetadata: function(oElement: any) {
|
|
13
|
+
propagateMetadata: function (oElement: any) {
|
|
12
14
|
// allow list of controls for which we want to enable DesignTime
|
|
13
15
|
let mAllowList: Record<string, boolean> = {};
|
|
14
|
-
const isOnDynamicPage = function(oElement: any): boolean {
|
|
16
|
+
const isOnDynamicPage = function (oElement: any): boolean {
|
|
15
17
|
if (oElement.getMetadata().getName() === "sap.f.DynamicPage") {
|
|
16
18
|
return true;
|
|
17
19
|
} else {
|
|
@@ -79,11 +81,11 @@ const AppComponentDesignTime = {
|
|
|
79
81
|
}
|
|
80
82
|
},
|
|
81
83
|
tool: {
|
|
82
|
-
start: function(oComponent:
|
|
83
|
-
oComponent.
|
|
84
|
+
start: function (oComponent: AppComponent) {
|
|
85
|
+
oComponent.getEnvironmentCapabilities().setCapability("AppState", false);
|
|
84
86
|
},
|
|
85
|
-
stop: function(oComponent:
|
|
86
|
-
oComponent.
|
|
87
|
+
stop: function (oComponent: AppComponent) {
|
|
88
|
+
oComponent.getEnvironmentCapabilities().setCapability("AppState", true);
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
};
|
|
@@ -2,18 +2,9 @@
|
|
|
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([], function () {
|
|
5
|
+
sap.ui.define(["sap/ui/core/Core"], function (Core) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* KPI label formatting.
|
|
10
|
-
* The KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the KPI title.
|
|
11
|
-
* If there is only one word in the global KPI title, the first three letters of the word are displayed.
|
|
12
|
-
* If the KPI title has only two words, only the first letters of these two words are displayed.
|
|
13
|
-
*
|
|
14
|
-
* @param {string} kpiTitle KPI title value
|
|
15
|
-
* @returns {string} The formatted criticality
|
|
16
|
-
*/
|
|
17
8
|
var labelFormat = function (kpiTitle) {
|
|
18
9
|
if (kpiTitle) {
|
|
19
10
|
// Split the title in words
|
|
@@ -51,7 +42,7 @@ sap.ui.define([], function () {
|
|
|
51
42
|
*/
|
|
52
43
|
|
|
53
44
|
var tooltipFormat = function (kpiTitle, kpiValue, kpiUnit, kpiStatus, hasUnit) {
|
|
54
|
-
var resBundle =
|
|
45
|
+
var resBundle = Core.getLibraryResourceBundle("sap.fe.core");
|
|
55
46
|
var msgKey = kpiStatus ? "C_KPI_TOOLTIP_" + kpiStatus.toUpperCase() : "C_KPI_TOOLTIP_NONE";
|
|
56
47
|
var amountWithUnit;
|
|
57
48
|
|
|
@@ -100,4 +91,4 @@ sap.ui.define([], function () {
|
|
|
100
91
|
|
|
101
92
|
return kpiFormatters;
|
|
102
93
|
}, true);
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIktQSUZvcm1hdHRlci50cyJdLCJuYW1lcyI6WyJsYWJlbEZvcm1hdCIsImtwaVRpdGxlIiwidGl0bGVQYXJ0cyIsInNwbGl0Iiwia3BpTGFiZWwiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJ0b1VwcGVyQ2FzZSIsIl9fZnVuY3Rpb25OYW1lIiwidG9vbHRpcEZvcm1hdCIsImtwaVZhbHVlIiwia3BpVW5pdCIsImtwaVN0YXR1cyIsImhhc1VuaXQiLCJyZXNCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwibXNnS2V5IiwiYW1vdW50V2l0aFVuaXQiLCJnZXRUZXh0Iiwia3BpRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBV0EsTUFBTUEsV0FBVyxHQUFHLFVBQVNDLFFBQVQsRUFBbUM7QUFDdEQsUUFBSUEsUUFBSixFQUFjO0FBQ2I7QUFDQSxVQUFNQyxVQUFVLEdBQUdELFFBQVEsQ0FBQ0UsS0FBVCxDQUFlLEdBQWYsQ0FBbkI7QUFFQSxVQUFJQyxRQUFKOztBQUNBLFVBQUlGLFVBQVUsQ0FBQ0csTUFBWCxLQUFzQixDQUExQixFQUE2QjtBQUM1QjtBQUNBRCxRQUFBQSxRQUFRLEdBQUdGLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixFQUE4QkMsV0FBOUIsRUFBWDtBQUNBLE9BSEQsTUFHTyxJQUFJTCxVQUFVLENBQUNHLE1BQVgsS0FBc0IsQ0FBMUIsRUFBNkI7QUFDbkM7QUFDQUQsUUFBQUEsUUFBUSxHQUFHLENBQUNGLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixJQUFnQ0osVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLENBQWpDLEVBQWdFQyxXQUFoRSxFQUFYO0FBQ0EsT0FITSxNQUdBO0FBQ047QUFDQUgsUUFBQUEsUUFBUSxHQUFHLENBQUNGLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixJQUFnQ0osVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLENBQWhDLEdBQWdFSixVQUFVLENBQUMsQ0FBRCxDQUFWLENBQWNJLFNBQWQsQ0FBd0IsQ0FBeEIsRUFBMkIsQ0FBM0IsQ0FBakUsRUFBZ0dDLFdBQWhHLEVBQVg7QUFDQTs7QUFFRCxhQUFPSCxRQUFQO0FBQ0EsS0FqQkQsTUFpQk87QUFDTjtBQUNBLGFBQU8sRUFBUDtBQUNBO0FBQ0QsR0F0QkQ7O0FBdUJBSixFQUFBQSxXQUFXLENBQUNRLGNBQVosR0FBNkIsaURBQTdCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsYUFBYSxHQUFHLFVBQVNSLFFBQVQsRUFBMkJTLFFBQTNCLEVBQTZDQyxPQUE3QyxFQUE4REMsU0FBOUQsRUFBaUZDLE9BQWpGLEVBQTBHO0FBQy9ILFFBQU1DLFNBQVMsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGFBQTFDLENBQWxCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHTCxTQUFTLEdBQUcsbUJBQW1CQSxTQUFTLENBQUNMLFdBQVYsRUFBdEIsR0FBZ0Qsb0JBQXhFO0FBQ0EsUUFBSVcsY0FBSjs7QUFDQSxRQUFJTCxPQUFPLEtBQUssTUFBaEIsRUFBd0I7QUFDdkIsVUFBSSxDQUFDRixPQUFMLEVBQWM7QUFDYjtBQUNBTyxRQUFBQSxjQUFjLEdBQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQixnQ0FBbEIsQ0FBakI7QUFDQSxPQUhELE1BR087QUFDTkQsUUFBQUEsY0FBYyxHQUFHUixRQUFRLEdBQUcsR0FBWCxHQUFpQkMsT0FBbEM7QUFDQTtBQUNELEtBUEQsTUFPTztBQUNOTyxNQUFBQSxjQUFjLEdBQUdSLFFBQWpCO0FBQ0E7O0FBRUQsV0FBT0ksU0FBUyxDQUFDSyxPQUFWLENBQWtCRixNQUFsQixFQUEwQixDQUFDaEIsUUFBRCxFQUFXaUIsY0FBWCxDQUExQixDQUFQO0FBQ0EsR0FoQkQ7O0FBaUJBVCxFQUFBQSxhQUFhLENBQUNELGNBQWQsR0FBK0IsbURBQS9CLEMsQ0FFQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE1BQU1ZLGFBQWEsR0FBRyxVQUF1QkMsS0FBdkIsRUFBNEQ7QUFDakYsUUFBSUQsYUFBYSxDQUFDRSxjQUFkLENBQTZCRCxLQUE3QixDQUFKLEVBQXlDO0FBQUEsd0NBRHFCRSxLQUNyQjtBQURxQkEsUUFBQUEsS0FDckI7QUFBQTs7QUFDeEMsYUFBUUgsYUFBRCxDQUF1QkMsS0FBdkIsRUFBOEJHLEtBQTlCLENBQW9DLElBQXBDLEVBQTBDRCxLQUExQyxDQUFQO0FBQ0EsS0FGRCxNQUVPO0FBQ04sYUFBTyxFQUFQO0FBQ0E7QUFDRCxHQU5EOztBQVFBSCxFQUFBQSxhQUFhLENBQUNwQixXQUFkLEdBQTRCQSxXQUE1QjtBQUNBb0IsRUFBQUEsYUFBYSxDQUFDWCxhQUFkLEdBQThCQSxhQUE5QjtBQUVBO0FBQ0E7QUFDQTs7U0FDZVcsYSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBLUEkgbGFiZWwgZm9ybWF0dGluZy5cbiAqIFRoZSBLUEkgbGFiZWwgaXMgYW4gYWJicmV2aWF0aW9uIG9mIHRoZSBjb21wbGV0ZSBnbG9iYWwgS1BJIHRpdGxlLiBJdCBpcyBmb3JtZWQgdXNpbmcgdGhlIGZpcnN0IHRocmVlIGxldHRlcnMgb2YgdGhlIGZpcnN0IHRocmVlIHdvcmRzIG9mIHRoZSBLUEkgdGl0bGUuXG4gKiBJZiB0aGVyZSBpcyBvbmx5IG9uZSB3b3JkIGluIHRoZSBnbG9iYWwgS1BJIHRpdGxlLCB0aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiB0aGUgd29yZCBhcmUgZGlzcGxheWVkLlxuICogSWYgdGhlIEtQSSB0aXRsZSBoYXMgb25seSB0d28gd29yZHMsIG9ubHkgdGhlIGZpcnN0IGxldHRlcnMgb2YgdGhlc2UgdHdvIHdvcmRzIGFyZSBkaXNwbGF5ZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtwaVRpdGxlIEtQSSB0aXRsZSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcm1hdHRlZCBjcml0aWNhbGl0eVxuICovXG5cbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgeyBDb3JlRXggfSBmcm9tIFwidHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG5cbmNvbnN0IGxhYmVsRm9ybWF0ID0gZnVuY3Rpb24oa3BpVGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGlmIChrcGlUaXRsZSkge1xuXHRcdC8vIFNwbGl0IHRoZSB0aXRsZSBpbiB3b3Jkc1xuXHRcdGNvbnN0IHRpdGxlUGFydHMgPSBrcGlUaXRsZS5zcGxpdChcIiBcIik7XG5cblx0XHRsZXQga3BpTGFiZWw6IHN0cmluZztcblx0XHRpZiAodGl0bGVQYXJ0cy5sZW5ndGggPT09IDEpIHtcblx0XHRcdC8vIE9ubHkgMSB3b3JkIC0tPiBmaXJzdCAzIGNhcGl0YWxpemVkIGxldHRlcnMgb2YgdGhlIHdvcmRcblx0XHRcdGtwaUxhYmVsID0gdGl0bGVQYXJ0c1swXS5zdWJzdHJpbmcoMCwgMykudG9VcHBlckNhc2UoKTtcblx0XHR9IGVsc2UgaWYgKHRpdGxlUGFydHMubGVuZ3RoID09PSAyKSB7XG5cdFx0XHQvLyAyIHdvcmRzIC0tPiBmaXJzdCBjYXBpdGFsaXplZCBsZXR0ZXJzIG9mIHRoZXNlIHR3byB3b3Jkc1xuXHRcdFx0a3BpTGFiZWwgPSAodGl0bGVQYXJ0c1swXS5zdWJzdHJpbmcoMCwgMSkgKyB0aXRsZVBhcnRzWzFdLnN1YnN0cmluZygwLCAxKSkudG9VcHBlckNhc2UoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gMyB3b3JkcyBvciBtb3JlIC0tPiBmaXJzdCBjYXBpdGFsaXplZCBsZXR0ZXJzIG9mIHRoZSBmaXJzdCAzIHdvcmRzXG5cdFx0XHRrcGlMYWJlbCA9ICh0aXRsZVBhcnRzWzBdLnN1YnN0cmluZygwLCAxKSArIHRpdGxlUGFydHNbMV0uc3Vic3RyaW5nKDAsIDEpICsgdGl0bGVQYXJ0c1syXS5zdWJzdHJpbmcoMCwgMSkpLnRvVXBwZXJDYXNlKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGtwaUxhYmVsO1xuXHR9IGVsc2Uge1xuXHRcdC8vIE5vIEtQSSB0aXRsZSAtLT4gbm8gbGFiZWxcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxufTtcbmxhYmVsRm9ybWF0Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLktQSUZvcm1hdHRlciNsYWJlbEZvcm1hdFwiO1xuXG4vKipcbiAqIEtQSSB0b29sdGlwIGZvcm1hdHRpbmcuXG4gKlxuICogQHBhcmFtIGtwaVRpdGxlIEtQSSB0aXRsZVxuICogQHBhcmFtIGtwaVZhbHVlIEtQSSB2YWx1ZVxuICogQHBhcmFtIGtwaVVuaXQgS1BJIHVuaXQgb3IgY3VycmVuY3kgKGNhbiBiZSB1bmRlZmluZWQpXG4gKiBAcGFyYW0ga3BpU3RhdHVzIEtQSSBzdGF0dXNcbiAqIEBwYXJhbSBoYXNVbml0IElzIFwidHJ1ZVwiIGlmIHRoZSBLUEkgdmFsdWUgaGFzIGEgdW5pdCBvciBhIGN1cnJlbmN5XG4gKiBAcmV0dXJucyBSZXR1cm5zIHRoZSB0ZXh0IGZvciB0aGUgS1BJIHRvb2x0aXAuXG4gKi9cbmNvbnN0IHRvb2x0aXBGb3JtYXQgPSBmdW5jdGlvbihrcGlUaXRsZTogc3RyaW5nLCBrcGlWYWx1ZTogc3RyaW5nLCBrcGlVbml0OiBzdHJpbmcsIGtwaVN0YXR1czogc3RyaW5nLCBoYXNVbml0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCByZXNCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpO1xuXHRjb25zdCBtc2dLZXkgPSBrcGlTdGF0dXMgPyBcIkNfS1BJX1RPT0xUSVBfXCIgKyBrcGlTdGF0dXMudG9VcHBlckNhc2UoKSA6IFwiQ19LUElfVE9PTFRJUF9OT05FXCI7XG5cdGxldCBhbW91bnRXaXRoVW5pdDogc3RyaW5nO1xuXHRpZiAoaGFzVW5pdCA9PT0gXCJ0cnVlXCIpIHtcblx0XHRpZiAoIWtwaVVuaXQpIHtcblx0XHRcdC8vIE5vIHVuaXQgbWVhbnMgbXVsdGktdW5pdCBzaXR1YXRpb25cblx0XHRcdGFtb3VudFdpdGhVbml0ID0gcmVzQnVuZGxlLmdldFRleHQoXCJDX0tQSV9UT09MVElQX0FNT1VOVF9NVUxUSVVOSVRcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFtb3VudFdpdGhVbml0ID0ga3BpVmFsdWUgKyBcIiBcIiArIGtwaVVuaXQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGFtb3VudFdpdGhVbml0ID0ga3BpVmFsdWU7XG5cdH1cblxuXHRyZXR1cm4gcmVzQnVuZGxlLmdldFRleHQobXNnS2V5LCBba3BpVGl0bGUsIGFtb3VudFdpdGhVbml0XSk7XG59O1xudG9vbHRpcEZvcm1hdC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5LUElGb3JtYXR0ZXIjdG9vbHRpcEZvcm1hdFwiO1xuXG4vLyBTZWUgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svZnVuY3Rpb25zLmh0bWwjdGhpcy1wYXJhbWV0ZXJzIGZvciBtb3JlIGRldGFpbCBvbiB0aGlzIHdlaXJkIHN5bnRheFxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIHRhYmxlIGZvcm1hdHRlcnMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHRoaXMgVGhlIGNvbnRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBUaGUgaW5uZXIgZnVuY3Rpb24gbmFtZVxuICogQHBhcmFtIHtvYmplY3RbXX0gb0FyZ3MgVGhlIGlubmVyIGZ1bmN0aW9uIHBhcmFtZXRlcnNcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5jb25zdCBrcGlGb3JtYXR0ZXJzID0gZnVuY3Rpb24odGhpczogb2JqZWN0LCBzTmFtZTogc3RyaW5nLCAuLi5vQXJnczogYW55W10pOiBhbnkge1xuXHRpZiAoa3BpRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKGtwaUZvcm1hdHRlcnMgYXMgYW55KVtzTmFtZV0uYXBwbHkodGhpcywgb0FyZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG59O1xuXG5rcGlGb3JtYXR0ZXJzLmxhYmVsRm9ybWF0ID0gbGFiZWxGb3JtYXQ7XG5rcGlGb3JtYXR0ZXJzLnRvb2x0aXBGb3JtYXQgPSB0b29sdGlwRm9ybWF0O1xuXG4vKipcbiAqIEBnbG9iYWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQga3BpRm9ybWF0dGVycztcbiJdfQ==
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* @returns {string} The formatted criticality
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import
|
|
11
|
+
import Core from "sap/ui/core/Core";
|
|
12
|
+
import { CoreEx } from "types/extension_types";
|
|
12
13
|
|
|
13
14
|
const labelFormat = function(kpiTitle: string): string {
|
|
14
15
|
if (kpiTitle) {
|
|
@@ -46,7 +47,7 @@ labelFormat.__functionName = "sap.fe.core.formatters.KPIFormatter#labelFormat";
|
|
|
46
47
|
* @returns Returns the text for the KPI tooltip.
|
|
47
48
|
*/
|
|
48
49
|
const tooltipFormat = function(kpiTitle: string, kpiValue: string, kpiUnit: string, kpiStatus: string, hasUnit: string): string {
|
|
49
|
-
const resBundle =
|
|
50
|
+
const resBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core");
|
|
50
51
|
const msgKey = kpiStatus ? "C_KPI_TOOLTIP_" + kpiStatus.toUpperCase() : "C_KPI_TOOLTIP_NONE";
|
|
51
52
|
let amountWithUnit: string;
|
|
52
53
|
if (hasUnit === "true") {
|
|
@@ -47,7 +47,7 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatterTypes"], function (TableFor
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
validateCreationRowFields.__functionName = "sap.fe.core.formatters.TableFormatter#validateCreationRowFields";
|
|
50
|
-
/**
|
|
50
|
+
/**
|
|
51
51
|
* @param {object} this The context.
|
|
52
52
|
* @param {string} semanticKeyHasDraftIndicator The draft indicator property name.
|
|
53
53
|
* @param {Array} aFilteredMessages Array of messages.
|
|
@@ -149,7 +149,65 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatterTypes"], function (TableFor
|
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
-
navigatedRow.__functionName = "sap.fe.core.formatters.TableFormatter#navigatedRow";
|
|
152
|
+
navigatedRow.__functionName = "sap.fe.core.formatters.TableFormatter#navigatedRow";
|
|
153
|
+
|
|
154
|
+
function isRatingIndicator(oControl) {
|
|
155
|
+
if (oControl.isA("sap.fe.core.controls.FieldWrapper")) {
|
|
156
|
+
var vContentDisplay = Array.isArray(oControl.getContentDisplay()) ? oControl.getContentDisplay()[0] : oControl.getContentDisplay();
|
|
157
|
+
|
|
158
|
+
if (vContentDisplay && vContentDisplay.isA("sap.m.RatingIndicator")) {
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function _updateStyleClassForRatingIndicator(oFieldWrapper, bLast) {
|
|
167
|
+
var vContentDisplay = Array.isArray(oFieldWrapper.getContentDisplay()) ? oFieldWrapper.getContentDisplay()[0] : oFieldWrapper.getContentDisplay();
|
|
168
|
+
var vContentEdit = Array.isArray(oFieldWrapper.getContentEdit()) ? oFieldWrapper.getContentEdit()[0] : oFieldWrapper.getContentEdit();
|
|
169
|
+
|
|
170
|
+
if (bLast) {
|
|
171
|
+
vContentDisplay.addStyleClass("sapUiNoMarginBottom");
|
|
172
|
+
vContentDisplay.addStyleClass("sapUiNoMarginTop");
|
|
173
|
+
vContentEdit.removeStyleClass("sapUiTinyMarginBottom");
|
|
174
|
+
} else {
|
|
175
|
+
vContentDisplay.addStyleClass("sapUiNoMarginBottom");
|
|
176
|
+
vContentDisplay.removeStyleClass("sapUiNoMarginTop");
|
|
177
|
+
vContentEdit.addStyleClass("sapUiTinyMarginBottom");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function getVBoxVisibility() {
|
|
182
|
+
var aItems = this.getItems();
|
|
183
|
+
var bLastElementFound = false;
|
|
184
|
+
|
|
185
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
186
|
+
args[_key] = arguments[_key];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
for (var index = aItems.length - 1; index >= 0; index--) {
|
|
190
|
+
if (!bLastElementFound) {
|
|
191
|
+
if (args[index] !== true) {
|
|
192
|
+
bLastElementFound = true;
|
|
193
|
+
|
|
194
|
+
if (isRatingIndicator(aItems[index])) {
|
|
195
|
+
_updateStyleClassForRatingIndicator(aItems[index], true);
|
|
196
|
+
} else {
|
|
197
|
+
aItems[index].removeStyleClass("sapUiTinyMarginBottom");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
} else if (isRatingIndicator(aItems[index])) {
|
|
201
|
+
_updateStyleClassForRatingIndicator(aItems[index], false);
|
|
202
|
+
} else {
|
|
203
|
+
aItems[index].addStyleClass("sapUiTinyMarginBottom");
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
getVBoxVisibility.__functionName = "sap.fe.core.formatters.TableFormatter#getVBoxVisibility"; // See https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters for more detail on this weird syntax
|
|
153
211
|
|
|
154
212
|
/**
|
|
155
213
|
* Collection of table formatters.
|
|
@@ -160,26 +218,29 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatterTypes"], function (TableFor
|
|
|
160
218
|
* @returns {object} The value from the inner function
|
|
161
219
|
*/
|
|
162
220
|
|
|
163
|
-
var
|
|
164
|
-
if (
|
|
165
|
-
for (var
|
|
166
|
-
oArgs[
|
|
221
|
+
var tableFormatter = function (sName) {
|
|
222
|
+
if (tableFormatter.hasOwnProperty(sName)) {
|
|
223
|
+
for (var _len2 = arguments.length, oArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
224
|
+
oArgs[_key2 - 1] = arguments[_key2];
|
|
167
225
|
}
|
|
168
226
|
|
|
169
|
-
return
|
|
227
|
+
return tableFormatter[sName].apply(this, oArgs);
|
|
170
228
|
} else {
|
|
171
229
|
return "";
|
|
172
230
|
}
|
|
173
231
|
};
|
|
174
232
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
233
|
+
tableFormatter.validateCreationRowFields = validateCreationRowFields;
|
|
234
|
+
tableFormatter.rowHighlighting = rowHighlighting;
|
|
235
|
+
tableFormatter.navigatedRow = navigatedRow;
|
|
236
|
+
tableFormatter.getErrorStatusTextVisibilityFormatter = getErrorStatusTextVisibilityFormatter;
|
|
237
|
+
tableFormatter.getVBoxVisibility = getVBoxVisibility;
|
|
238
|
+
tableFormatter.isRatingIndicator = isRatingIndicator; // for unit tests
|
|
239
|
+
|
|
179
240
|
/**
|
|
180
241
|
* @global
|
|
181
242
|
*/
|
|
182
243
|
|
|
183
|
-
return
|
|
244
|
+
return tableFormatter;
|
|
184
245
|
}, true);
|
|
185
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2V0eXBlT3JkZXIiLCJtZXNzYWdlVHlwZSIsInZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMiLCJmaWVsZFZhbGlkaXR5T2JqZWN0IiwiZmllbGRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImV2ZXJ5Iiwia2V5IiwiX19mdW5jdGlvbk5hbWUiLCJnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyIiwic2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciIsImFGaWx0ZXJlZE1lc3NhZ2VzIiwiYlN0YXR1c1Zpc2liaWxpdHkiLCJhU2VtYW50aWNLZXlDb2x1bW5zIiwiZ2V0UGFyZW50IiwiZ2V0QWdncmVnYXRpb24iLCJzQ29sdW1uUHJvcGVydHkiLCJnZXRCaW5kaW5nIiwiZ2V0UGF0aCIsInNDdXJyZW50Q29udGV4dFBhdGgiLCJnZXRCaW5kaW5nQ29udGV4dCIsInVuZGVmaW5lZCIsImZvckVhY2giLCJvTWVzc2FnZSIsInR5cGUiLCJhVGFyZ2V0cyIsImluZGV4T2YiLCJyb3dIaWdobGlnaHRpbmciLCJjcml0aWNhbGl0eVZhbHVlIiwiaGFzQWN0aXZlRW50aXR5IiwiaXNBY3RpdmVFbnRpdHkiLCJpc0RyYWZ0Um9vdCIsImlzTmV3T2JqZWN0IiwiaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlIiwiTWVzc2FnZVR5cGUiLCJFcnJvciIsIldhcm5pbmciLCJTdWNjZXNzIiwiSW5mb3JtYXRpb24iLCJOb25lIiwibmF2aWdhdGVkUm93Iiwic0RlZXBlc3RQYXRoIiwic1BhdGgiLCJ0YWJsZUZvcm1hdHRlcnMiLCJzTmFtZSIsImhhc093blByb3BlcnR5Iiwib0FyZ3MiLCJhcHBseSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBQUEsTUFBTUEsbUJBQW1CLEdBQUcsVUFBU0MsV0FBVCxFQUFzQztBQUNqRSxZQUFRQSxXQUFSO0FBQ0MsV0FB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Q3hFLFFBQU1DLEtBQUssNkJBQUcsS0FBS3RCLGlCQUFMLEVBQUgsMkRBQUcsdUJBQTBCRixPQUExQixFQUFkOztBQUNBLFFBQUl3QixLQUFLLElBQUlELFlBQWIsRUFBMkI7QUFDMUIsYUFBT0EsWUFBWSxDQUFDZixPQUFiLENBQXFCZ0IsS0FBckIsTUFBZ0MsQ0FBdkM7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPLEtBQVA7QUFDQTtBQUNELEdBUEQ7O0FBUUFGLEVBQUFBLFlBQVksQ0FBQ2hDLGNBQWIsR0FBOEIsb0RBQTlCLEMsQ0FFQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE1BQU1tQyxlQUFlLEdBQUcsVUFBdUJDLEtBQXZCLEVBQTREO0FBQ25GLFFBQUlELGVBQWUsQ0FBQ0UsY0FBaEIsQ0FBK0JELEtBQS9CLENBQUosRUFBMkM7QUFBQSx3Q0FEcUJFLEtBQ3JCO0FBRHFCQSxRQUFBQSxLQUNyQjtBQUFBOztBQUMxQyxhQUFRSCxlQUFELENBQXlCQyxLQUF6QixFQUFnQ0csS0FBaEMsQ0FBc0MsSUFBdEMsRUFBNENELEtBQTVDLENBQVA7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPLEVBQVA7QUFDQTtBQUNELEdBTkQ7O0FBUUFILEVBQUFBLGVBQWUsQ0FBQzNDLHlCQUFoQixHQUE0Q0EseUJBQTVDO0FBQ0EyQyxFQUFBQSxlQUFlLENBQUNoQixlQUFoQixHQUFrQ0EsZUFBbEM7QUFDQWdCLEVBQUFBLGVBQWUsQ0FBQ0gsWUFBaEIsR0FBK0JBLFlBQS9CO0FBQ0FHLEVBQUFBLGVBQWUsQ0FBQ2xDLHFDQUFoQixHQUF3REEscUNBQXhEO0FBQ0E7QUFDQTtBQUNBOztTQUNla0MsZSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVGFibGVGb3JtYXR0ZXJUeXBlc1wiO1xuY29uc3QgZ2V0TWVzc2FnZXR5cGVPcmRlciA9IGZ1bmN0aW9uKG1lc3NhZ2VUeXBlOiBzdHJpbmcpOiBudW1iZXIge1xuXHRzd2l0Y2ggKG1lc3NhZ2VUeXBlKSB7XG5cdFx0Y2FzZSBcIkVycm9yXCI6XG5cdFx0XHRyZXR1cm4gNDtcblx0XHRjYXNlIFwiV2FybmluZ1wiOlxuXHRcdFx0cmV0dXJuIDM7XG5cdFx0Y2FzZSBcIkluZm9ybWF0aW9uXCI6XG5cdFx0XHRyZXR1cm4gMjtcblx0XHRjYXNlIFwiTm9uZVwiOlxuXHRcdFx0cmV0dXJuIDE7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAtMTtcblx0fVxufTtcblxuLyoqXG4gKiBHZXRzIHRoZSB2YWxpZGl0eSBvZiBjcmVhdGlvbiByb3cgZmllbGRzLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkc1xuICogQHBhcmFtIHtvYmplY3R9IGZpZWxkVmFsaWRpdHlPYmplY3QgT2JqZWN0IGhvbGRpbmcgdGhlIGZpZWxkc1xuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBhbGwgdGhlIGZpZWxkcyBpbiB0aGUgY3JlYXRpb24gcm93IGFyZSB2YWxpZCwgYGZhbHNlYCBvdGhlcndpc2VcbiAqL1xuY29uc3QgdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcyA9IGZ1bmN0aW9uKGZpZWxkVmFsaWRpdHlPYmplY3Q/OiBhbnkpIHtcblx0aWYgKCFmaWVsZFZhbGlkaXR5T2JqZWN0KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdGNvbnN0IGZpZWxkS2V5cyA9IE9iamVjdC5rZXlzKGZpZWxkVmFsaWRpdHlPYmplY3QpO1xuXHRyZXR1cm4gKFxuXHRcdGZpZWxkS2V5cy5sZW5ndGggPiAwICYmXG5cdFx0ZmllbGRLZXlzLmV2ZXJ5KGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0cmV0dXJuIGZpZWxkVmFsaWRpdHlPYmplY3Rba2V5XVtcInZhbGlkaXR5XCJdO1xuXHRcdH0pXG5cdCk7XG59O1xudmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciN2YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzXCI7XG5cbi8qKiBcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHNlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3IgVGhlIGRyYWZ0IGluZGljYXRvciBwcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHtBcnJheX0gYUZpbHRlcmVkTWVzc2FnZXMgQXJyYXkgb2YgbWVzc2FnZXMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVGhlIHZhbHVlIGZvciBPYmplY3QgU3RhdHVzIHZpc2liaWxpdHkgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIgPSBmdW5jdGlvbihcblx0dGhpczogTWFuYWdlZE9iamVjdCB8IGFueSxcblx0c2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvcjogc3RyaW5nLFxuXHRhRmlsdGVyZWRNZXNzYWdlczogYW55XG4pIHtcblx0bGV0IGJTdGF0dXNWaXNpYmlsaXR5ID0gZmFsc2U7XG5cdGNvbnN0IGFTZW1hbnRpY0tleUNvbHVtbnMgPSB0aGlzLmdldFBhcmVudCgpLmdldEFnZ3JlZ2F0aW9uKFwiaXRlbXNcIik7XG5cdGNvbnN0IHNDb2x1bW5Qcm9wZXJ0eSA9IGFTZW1hbnRpY0tleUNvbHVtbnNbMF0hLmdldEJpbmRpbmcoXCJ0aXRsZVwiKT8uZ2V0UGF0aCgpO1xuXHRpZiAoYUZpbHRlcmVkTWVzc2FnZXMgJiYgYUZpbHRlcmVkTWVzc2FnZXMubGVuZ3RoID4gMCAmJiBzQ29sdW1uUHJvcGVydHkgPT09IHNlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3IpIHtcblx0XHRjb25zdCBzQ3VycmVudENvbnRleHRQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpID8gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpLmdldFBhdGgoKSA6IHVuZGVmaW5lZDtcblx0XHRhRmlsdGVyZWRNZXNzYWdlcy5mb3JFYWNoKChvTWVzc2FnZTogYW55KSA9PiB7XG5cdFx0XHRpZiAob01lc3NhZ2UudHlwZSA9PT0gXCJFcnJvclwiICYmIG9NZXNzYWdlLmFUYXJnZXRzWzBdLmluZGV4T2Yoc0N1cnJlbnRDb250ZXh0UGF0aCkgPT09IDApIHtcblx0XHRcdFx0YlN0YXR1c1Zpc2liaWxpdHkgPSB0cnVlO1xuXHRcdFx0XHRyZXR1cm4gYlN0YXR1c1Zpc2liaWxpdHk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGJTdGF0dXNWaXNpYmlsaXR5O1xufTtcbmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVGFibGVGb3JtYXR0ZXIjZ2V0RXJyb3JTdGF0dXNUZXh0VmlzaWJpbGl0eUZvcm1hdHRlclwiO1xuXG4vKipcbiAqIHJvd0hpZ2hsaWdodGluZ1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IENyaXRpY2FsaXR5VmFsdWUgVGhlIGNyaXRpY2FsaXR5IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gbWVzc2FnZUxhc3RVcGRhdGUgVGltZXN0YW1wIG9mIHRoZSBsYXN0IG1lc3NhZ2UgdGhhdCB3YXMgY3JlYXRlZC4gSXQncyBkZWZpbmVkIGFzIGFuIGlucHV0IHZhbHVlLCBidXQgbm90IHVzZWQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uXG4gKiBJdCBpcyB1c2VkIHRvIHJlZnJlc2ggdGhlIGZvcm1hdHRpbmcgb2YgdGhlIHRhYmxlIGVhY2ggdGltZSBhIG5ldyBtZXNzYWdlIGlzIHVwZGF0ZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5cbmNvbnN0IHJvd0hpZ2hsaWdodGluZyA9IGZ1bmN0aW9uKFxuXHR0aGlzOiBNYW5hZ2VkT2JqZWN0LFxuXHRjcml0aWNhbGl0eVZhbHVlOiBzdHJpbmcgfCBudW1iZXIsXG5cdGFGaWx0ZXJlZE1lc3NhZ2VzOiBhbnlbXSxcblx0aGFzQWN0aXZlRW50aXR5OiBib29sZWFuLFxuXHRpc0FjdGl2ZUVudGl0eTogYm9vbGVhbixcblx0aXNEcmFmdFJvb3Q6IHN0cmluZyxcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHQuLi5hcmdzOiBhbnlbXVxuKTogTWVzc2FnZVR5cGUge1xuXHRjb25zdCBpc05ld09iamVjdCA9ICFoYXNBY3RpdmVFbnRpdHkgJiYgIWlzQWN0aXZlRW50aXR5O1xuXHRsZXQgaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlOiBudW1iZXIgPSAtMTtcblx0aWYgKGFGaWx0ZXJlZE1lc3NhZ2VzICYmIGFGaWx0ZXJlZE1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcblx0XHRjb25zdCBzQ3VycmVudENvbnRleHRQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpPy5nZXRQYXRoKCk7XG5cdFx0YUZpbHRlcmVkTWVzc2FnZXMuZm9yRWFjaCgob01lc3NhZ2U6IGFueSkgPT4ge1xuXHRcdFx0aWYgKG9NZXNzYWdlLmFUYXJnZXRzWzBdLmluZGV4T2Yoc0N1cnJlbnRDb250ZXh0UGF0aCkgPT09IDAgJiYgaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlIDwgZ2V0TWVzc2FnZXR5cGVPcmRlcihvTWVzc2FnZS50eXBlKSkge1xuXHRcdFx0XHRpSGlnaGVzdENyaXRpY2FsaXR5VmFsdWUgPSBnZXRNZXNzYWdldHlwZU9yZGVyKG9NZXNzYWdlLnR5cGUpO1xuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gb01lc3NhZ2UudHlwZTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRpZiAodHlwZW9mIGNyaXRpY2FsaXR5VmFsdWUgIT09IFwic3RyaW5nXCIpIHtcblx0XHRzd2l0Y2ggKGNyaXRpY2FsaXR5VmFsdWUpIHtcblx0XHRcdGNhc2UgMTpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLkVycm9yO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMjpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLldhcm5pbmc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAzOlxuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuU3VjY2Vzcztcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDU6XG5cdFx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5JbmZvcm1hdGlvbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuTm9uZTtcblx0XHR9XG5cdH1cblxuXHRpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gTWVzc2FnZVR5cGUuTm9uZSkge1xuXHRcdGlmIChpc0RyYWZ0Um9vdCA9PT0gXCJ0cnVlXCIgJiYgaXNOZXdPYmplY3QpIHtcblx0XHRcdHJldHVybiBNZXNzYWdlVHlwZS5JbmZvcm1hdGlvbjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIE1lc3NhZ2VUeXBlLk5vbmU7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBjcml0aWNhbGl0eVZhbHVlIGFzIE1lc3NhZ2VUeXBlO1xuXHR9XG59O1xucm93SGlnaGxpZ2h0aW5nLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlRhYmxlRm9ybWF0dGVyI3Jvd0hpZ2hsaWdodGluZ1wiO1xuXG5jb25zdCBuYXZpZ2F0ZWRSb3cgPSBmdW5jdGlvbih0aGlzOiBNYW5hZ2VkT2JqZWN0LCBzRGVlcGVzdFBhdGg6IHN0cmluZykge1xuXHRjb25zdCBzUGF0aCA9IHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpO1xuXHRpZiAoc1BhdGggJiYgc0RlZXBlc3RQYXRoKSB7XG5cdFx0cmV0dXJuIHNEZWVwZXN0UGF0aC5pbmRleE9mKHNQYXRoKSA9PT0gMDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn07XG5uYXZpZ2F0ZWRSb3cuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVGFibGVGb3JtYXR0ZXIjbmF2aWdhdGVkUm93XCI7XG5cbi8vIFNlZSBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9mdW5jdGlvbnMuaHRtbCN0aGlzLXBhcmFtZXRlcnMgZm9yIG1vcmUgZGV0YWlsIG9uIHRoaXMgd2VpcmQgc3ludGF4XG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHRhYmxlRm9ybWF0dGVycyA9IGZ1bmN0aW9uKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKHRhYmxlRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKHRhYmxlRm9ybWF0dGVycyBhcyBhbnkpW3NOYW1lXS5hcHBseSh0aGlzLCBvQXJncyk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cbn07XG5cbnRhYmxlRm9ybWF0dGVycy52YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzID0gdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcztcbnRhYmxlRm9ybWF0dGVycy5yb3dIaWdobGlnaHRpbmcgPSByb3dIaWdobGlnaHRpbmc7XG50YWJsZUZvcm1hdHRlcnMubmF2aWdhdGVkUm93ID0gbmF2aWdhdGVkUm93O1xudGFibGVGb3JtYXR0ZXJzLmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIgPSBnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyO1xuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHRhYmxlRm9ybWF0dGVycztcbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2V0eXBlT3JkZXIiLCJtZXNzYWdlVHlwZSIsInZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMiLCJmaWVsZFZhbGlkaXR5T2JqZWN0IiwiZmllbGRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImV2ZXJ5Iiwia2V5IiwiX19mdW5jdGlvbk5hbWUiLCJnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyIiwic2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciIsImFGaWx0ZXJlZE1lc3NhZ2VzIiwiYlN0YXR1c1Zpc2liaWxpdHkiLCJhU2VtYW50aWNLZXlDb2x1bW5zIiwiZ2V0UGFyZW50IiwiZ2V0QWdncmVnYXRpb24iLCJzQ29sdW1uUHJvcGVydHkiLCJnZXRCaW5kaW5nIiwiZ2V0UGF0aCIsInNDdXJyZW50Q29udGV4dFBhdGgiLCJnZXRCaW5kaW5nQ29udGV4dCIsInVuZGVmaW5lZCIsImZvckVhY2giLCJvTWVzc2FnZSIsInR5cGUiLCJhVGFyZ2V0cyIsImluZGV4T2YiLCJyb3dIaWdobGlnaHRpbmciLCJjcml0aWNhbGl0eVZhbHVlIiwiaGFzQWN0aXZlRW50aXR5IiwiaXNBY3RpdmVFbnRpdHkiLCJpc0RyYWZ0Um9vdCIsImlzTmV3T2JqZWN0IiwiaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlIiwiTWVzc2FnZVR5cGUiLCJFcnJvciIsIldhcm5pbmciLCJTdWNjZXNzIiwiSW5mb3JtYXRpb24iLCJOb25lIiwibmF2aWdhdGVkUm93Iiwic0RlZXBlc3RQYXRoIiwic1BhdGgiLCJpc1JhdGluZ0luZGljYXRvciIsIm9Db250cm9sIiwiaXNBIiwidkNvbnRlbnREaXNwbGF5IiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0Q29udGVudERpc3BsYXkiLCJfdXBkYXRlU3R5bGVDbGFzc0ZvclJhdGluZ0luZGljYXRvciIsIm9GaWVsZFdyYXBwZXIiLCJiTGFzdCIsInZDb250ZW50RWRpdCIsImdldENvbnRlbnRFZGl0IiwiYWRkU3R5bGVDbGFzcyIsInJlbW92ZVN0eWxlQ2xhc3MiLCJnZXRWQm94VmlzaWJpbGl0eSIsImFJdGVtcyIsImdldEl0ZW1zIiwiYkxhc3RFbGVtZW50Rm91bmQiLCJhcmdzIiwiaW5kZXgiLCJ0YWJsZUZvcm1hdHRlciIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7QUFFQSxNQUFNQSxtQkFBbUIsR0FBRyxVQUFVQyxXQUFWLEVBQXVDO0FBQ2xFLFlBQVFBLFdBQVI7QUFDQyxXQUFLLE9BQUw7QUFDQyxlQUFPLENBQVA7O0FBQ0QsV0FBSyxTQUFMO0FBQ0MsZUFBTyxDQUFQOztBQUNELFdBQUssYUFBTDtBQUNDLGVBQU8sQ0FBUDs7QUFDRCxXQUFLLE1BQUw7QUFDQyxlQUFPLENBQVA7O0FBQ0Q7QUFDQyxlQUFPLENBQUMsQ0FBUjtBQVZGO0FBWUEsR0FiRDtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1DLHlCQUF5QixHQUFHLFVBQVVDLG1CQUFWLEVBQXFDO0FBQ3RFLFFBQUksQ0FBQ0EsbUJBQUwsRUFBMEI7QUFDekIsYUFBTyxLQUFQO0FBQ0E7O0FBQ0QsUUFBTUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWUgsbUJBQVosQ0FBbEI7QUFDQSxXQUNDQyxTQUFTLENBQUNHLE1BQVYsR0FBbUIsQ0FBbkIsSUFDQUgsU0FBUyxDQUFDSSxLQUFWLENBQWdCLFVBQVVDLEdBQVYsRUFBZTtBQUM5QixhQUFPTixtQkFBbUIsQ0FBQ00sR0FBRCxDQUFuQixDQUF5QixVQUF6QixDQUFQO0FBQ0EsS0FGRCxDQUZEO0FBTUEsR0FYRDs7QUFZQVAsRUFBQUEseUJBQXlCLENBQUNRLGNBQTFCLEdBQTJDLGlFQUEzQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxxQ0FBcUMsR0FBRyxVQUU3Q0MsNEJBRjZDLEVBRzdDQyxpQkFINkMsRUFJNUM7QUFBQTs7QUFDRCxRQUFJQyxpQkFBaUIsR0FBRyxLQUF4QjtBQUNBLFFBQU1DLG1CQUFtQixHQUFHLEtBQUtDLFNBQUwsR0FBaUJDLGNBQWpCLENBQWdDLE9BQWhDLENBQTVCO0FBQ0EsUUFBTUMsZUFBZSxrQkFBR0gsbUJBQW1CLENBQUMsQ0FBRCxDQUFuQixDQUF3QkksVUFBeEIsQ0FBbUMsT0FBbkMsQ0FBSCxnREFBRyxZQUE2Q0MsT0FBN0MsRUFBeEI7O0FBQ0EsUUFBSVAsaUJBQWlCLElBQUlBLGlCQUFpQixDQUFDTixNQUFsQixHQUEyQixDQUFoRCxJQUFxRFcsZUFBZSxLQUFLTiw0QkFBN0UsRUFBMkc7QUFDMUcsVUFBTVMsbUJBQW1CLEdBQUcsS0FBS0MsaUJBQUwsS0FBMkIsS0FBS0EsaUJBQUwsR0FBeUJGLE9BQXpCLEVBQTNCLEdBQWdFRyxTQUE1RjtBQUNBVixNQUFBQSxpQkFBaUIsQ0FBQ1csT0FBbEIsQ0FBMEIsVUFBQ0MsUUFBRCxFQUFtQjtBQUM1QyxZQUFJQSxRQUFRLENBQUNDLElBQVQsS0FBa0IsT0FBbEIsSUFBNkJELFFBQVEsQ0FBQ0UsUUFBVCxDQUFrQixDQUFsQixFQUFxQkMsT0FBckIsQ0FBNkJQLG1CQUE3QixNQUFzRCxDQUF2RixFQUEwRjtBQUN6RlAsVUFBQUEsaUJBQWlCLEdBQUcsSUFBcEI7QUFDQSxpQkFBT0EsaUJBQVA7QUFDQTtBQUNELE9BTEQ7QUFNQTs7QUFDRCxXQUFPQSxpQkFBUDtBQUNBLEdBbEJEOztBQW1CQUgsRUFBQUEscUNBQXFDLENBQUNELGNBQXRDLEdBQXVELDZFQUF2RDtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNbUIsZUFBZSxHQUFHLFVBRXZCQyxnQkFGdUIsRUFHdkJqQixpQkFIdUIsRUFJdkJrQixlQUp1QixFQUt2QkMsY0FMdUIsRUFNdkJDLFdBTnVCLEVBU1Q7QUFDZCxRQUFNQyxXQUFXLEdBQUcsQ0FBQ0gsZUFBRCxJQUFvQixDQUFDQyxjQUF6QztBQUNBLFFBQUlHLHdCQUFnQyxHQUFHLENBQUMsQ0FBeEM7O0FBQ0EsUUFBSXRCLGlCQUFpQixJQUFJQSxpQkFBaUIsQ0FBQ04sTUFBbEIsR0FBMkIsQ0FBcEQsRUFBdUQ7QUFBQTs7QUFDdEQsVUFBTWMsbUJBQW1CLDRCQUFHLEtBQUtDLGlCQUFMLEVBQUgsMERBQUcsc0JBQTBCRixPQUExQixFQUE1QjtBQUNBUCxNQUFBQSxpQkFBaUIsQ0FBQ1csT0FBbEIsQ0FBMEIsVUFBQ0MsUUFBRCxFQUFtQjtBQUM1QyxZQUFJQSxRQUFRLENBQUNFLFFBQVQsQ0FBa0IsQ0FBbEIsRUFBcUJDLE9BQXJCLENBQTZCUCxtQkFBN0IsTUFBc0QsQ0FBdEQsSUFBMkRjLHdCQUF3QixHQUFHbkMsbUJBQW1CLENBQUN5QixRQUFRLENBQUNDLElBQVYsQ0FBN0csRUFBOEg7QUFDN0hTLFVBQUFBLHdCQUF3QixHQUFHbkMsbUJBQW1CLENBQUN5QixRQUFRLENBQUNDLElBQVYsQ0FBOUM7QUFDQUksVUFBQUEsZ0JBQWdCLEdBQUdMLFFBQVEsQ0FBQ0MsSUFBNUI7QUFDQTtBQUNELE9BTEQ7QUFNQTs7QUFDRCxRQUFJLE9BQU9JLGdCQUFQLEtBQTRCLFFBQWhDLEVBQTBDO0FBQ3pDLGNBQVFBLGdCQUFSO0FBQ0MsYUFBSyxDQUFMO0FBQ0NBLFVBQUFBLGdCQUFnQixHQUFHTSxXQUFXLENBQUNDLEtBQS9CO0FBQ0E7O0FBQ0QsYUFBSyxDQUFMO0FBQ0NQLFVBQUFBLGdCQUFnQixHQUFHTSxXQUFXLENBQUNFLE9BQS9CO0FBQ0E7O0FBQ0QsYUFBSyxDQUFMO0FBQ0NSLFVBQUFBLGdCQUFnQixHQUFHTSxXQUFXLENBQUNHLE9BQS9CO0FBQ0E7O0FBQ0QsYUFBSyxDQUFMO0FBQ0NULFVBQUFBLGdCQUFnQixHQUFHTSxXQUFXLENBQUNJLFdBQS9CO0FBQ0E7O0FBQ0Q7QUFDQ1YsVUFBQUEsZ0JBQWdCLEdBQUdNLFdBQVcsQ0FBQ0ssSUFBL0I7QUFkRjtBQWdCQTs7QUFFRCxRQUFJWCxnQkFBZ0IsS0FBS00sV0FBVyxDQUFDSyxJQUFyQyxFQUEyQztBQUMxQyxVQUFJUixXQUFXLEtBQUssTUFBaEIsSUFBMEJDLFdBQTlCLEVBQTJDO0FBQzFDLGVBQU9FLFdBQVcsQ0FBQ0ksV0FBbkI7QUFDQSxPQUZELE1BRU87QUFDTixlQUFPSixXQUFXLENBQUNLLElBQW5CO0FBQ0E7QUFDRCxLQU5ELE1BTU87QUFDTixhQUFPWCxnQkFBUDtBQUNBO0FBQ0QsR0FqREQ7O0FBa0RBRCxFQUFBQSxlQUFlLENBQUNuQixjQUFoQixHQUFpQyx1REFBakM7O0FBRUEsTUFBTWdDLFlBQVksR0FBRyxVQUErQkMsWUFBL0IsRUFBcUQ7QUFBQTs7QUFDekUsUUFBTUMsS0FBSyw2QkFBRyxLQUFLdEIsaUJBQUwsRUFBSCwyREFBRyx1QkFBMEJGLE9BQTFCLEVBQWQ7O0FBQ0EsUUFBSXdCLEtBQUssSUFBSUQsWUFBYixFQUEyQjtBQUMxQixhQUFPQSxZQUFZLENBQUNmLE9BQWIsQ0FBcUJnQixLQUFyQixNQUFnQyxDQUF2QztBQUNBLEtBRkQsTUFFTztBQUNOLGFBQU8sS0FBUDtBQUNBO0FBQ0QsR0FQRDs7QUFRQUYsRUFBQUEsWUFBWSxDQUFDaEMsY0FBYixHQUE4QixvREFBOUI7O0FBRUEsV0FBU21DLGlCQUFULENBQTJCQyxRQUEzQixFQUFtRDtBQUNsRCxRQUFJQSxRQUFRLENBQUNDLEdBQVQsQ0FBYSxtQ0FBYixDQUFKLEVBQXVEO0FBQ3RELFVBQU1DLGVBQWUsR0FBR0MsS0FBSyxDQUFDQyxPQUFOLENBQWNKLFFBQVEsQ0FBQ0ssaUJBQVQsRUFBZCxJQUNyQkwsUUFBUSxDQUFDSyxpQkFBVCxHQUE2QixDQUE3QixDQURxQixHQUVyQkwsUUFBUSxDQUFDSyxpQkFBVCxFQUZIOztBQUdBLFVBQUlILGVBQWUsSUFBSUEsZUFBZSxDQUFDRCxHQUFoQixDQUFvQix1QkFBcEIsQ0FBdkIsRUFBcUU7QUFDcEUsZUFBTyxJQUFQO0FBQ0E7QUFDRDs7QUFDRCxXQUFPLEtBQVA7QUFDQTs7QUFDRCxXQUFTSyxtQ0FBVCxDQUE2Q0MsYUFBN0MsRUFBaUVDLEtBQWpFLEVBQWlGO0FBQ2hGLFFBQU1OLGVBQWUsR0FBR0MsS0FBSyxDQUFDQyxPQUFOLENBQWNHLGFBQWEsQ0FBQ0YsaUJBQWQsRUFBZCxJQUNyQkUsYUFBYSxDQUFDRixpQkFBZCxHQUFrQyxDQUFsQyxDQURxQixHQUVyQkUsYUFBYSxDQUFDRixpQkFBZCxFQUZIO0FBR0EsUUFBTUksWUFBWSxHQUFHTixLQUFLLENBQUNDLE9BQU4sQ0FBY0csYUFBYSxDQUFDRyxjQUFkLEVBQWQsSUFBZ0RILGFBQWEsQ0FBQ0csY0FBZCxHQUErQixDQUEvQixDQUFoRCxHQUFvRkgsYUFBYSxDQUFDRyxjQUFkLEVBQXpHOztBQUVBLFFBQUlGLEtBQUosRUFBVztBQUNWTixNQUFBQSxlQUFlLENBQUNTLGFBQWhCLENBQThCLHFCQUE5QjtBQUNBVCxNQUFBQSxlQUFlLENBQUNTLGFBQWhCLENBQThCLGtCQUE5QjtBQUNBRixNQUFBQSxZQUFZLENBQUNHLGdCQUFiLENBQThCLHVCQUE5QjtBQUNBLEtBSkQsTUFJTztBQUNOVixNQUFBQSxlQUFlLENBQUNTLGFBQWhCLENBQThCLHFCQUE5QjtBQUNBVCxNQUFBQSxlQUFlLENBQUNVLGdCQUFoQixDQUFpQyxrQkFBakM7QUFDQUgsTUFBQUEsWUFBWSxDQUFDRSxhQUFiLENBQTJCLHVCQUEzQjtBQUNBO0FBQ0Q7O0FBQ0QsV0FBU0UsaUJBQVQsR0FBd0Q7QUFDdkQsUUFBTUMsTUFBTSxHQUFHLEtBQUtDLFFBQUwsRUFBZjtBQUNBLFFBQUlDLGlCQUFpQixHQUFHLEtBQXhCOztBQUZ1RCxzQ0FBYkMsSUFBYTtBQUFiQSxNQUFBQSxJQUFhO0FBQUE7O0FBR3ZELFNBQUssSUFBSUMsS0FBSyxHQUFHSixNQUFNLENBQUNyRCxNQUFQLEdBQWdCLENBQWpDLEVBQW9DeUQsS0FBSyxJQUFJLENBQTdDLEVBQWdEQSxLQUFLLEVBQXJELEVBQXlEO0FBQ3hELFVBQUksQ0FBQ0YsaUJBQUwsRUFBd0I7QUFDdkIsWUFBSUMsSUFBSSxDQUFDQyxLQUFELENBQUosS0FBZ0IsSUFBcEIsRUFBMEI7QUFDekJGLFVBQUFBLGlCQUFpQixHQUFHLElBQXBCOztBQUNBLGNBQUlqQixpQkFBaUIsQ0FBQ2UsTUFBTSxDQUFDSSxLQUFELENBQVAsQ0FBckIsRUFBc0M7QUFDckNaLFlBQUFBLG1DQUFtQyxDQUFDUSxNQUFNLENBQUNJLEtBQUQsQ0FBUCxFQUFnQixJQUFoQixDQUFuQztBQUNBLFdBRkQsTUFFTztBQUNOSixZQUFBQSxNQUFNLENBQUNJLEtBQUQsQ0FBTixDQUFjTixnQkFBZCxDQUErQix1QkFBL0I7QUFDQTtBQUNEO0FBQ0QsT0FURCxNQVNPLElBQUliLGlCQUFpQixDQUFDZSxNQUFNLENBQUNJLEtBQUQsQ0FBUCxDQUFyQixFQUFzQztBQUM1Q1osUUFBQUEsbUNBQW1DLENBQUNRLE1BQU0sQ0FBQ0ksS0FBRCxDQUFQLEVBQWdCLEtBQWhCLENBQW5DO0FBQ0EsT0FGTSxNQUVBO0FBQ05KLFFBQUFBLE1BQU0sQ0FBQ0ksS0FBRCxDQUFOLENBQWNQLGFBQWQsQ0FBNEIsdUJBQTVCO0FBQ0E7QUFDRDs7QUFDRCxXQUFPLElBQVA7QUFDQTs7QUFDREUsRUFBQUEsaUJBQWlCLENBQUNqRCxjQUFsQixHQUFtQyx5REFBbkMsQyxDQUVBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTXVELGNBQWMsR0FBRyxVQUF3QkMsS0FBeEIsRUFBNkQ7QUFDbkYsUUFBSUQsY0FBYyxDQUFDRSxjQUFmLENBQThCRCxLQUE5QixDQUFKLEVBQTBDO0FBQUEseUNBRHNCRSxLQUN0QjtBQURzQkEsUUFBQUEsS0FDdEI7QUFBQTs7QUFDekMsYUFBUUgsY0FBRCxDQUF3QkMsS0FBeEIsRUFBK0JHLEtBQS9CLENBQXFDLElBQXJDLEVBQTJDRCxLQUEzQyxDQUFQO0FBQ0EsS0FGRCxNQUVPO0FBQ04sYUFBTyxFQUFQO0FBQ0E7QUFDRCxHQU5EOztBQVFBSCxFQUFBQSxjQUFjLENBQUMvRCx5QkFBZixHQUEyQ0EseUJBQTNDO0FBQ0ErRCxFQUFBQSxjQUFjLENBQUNwQyxlQUFmLEdBQWlDQSxlQUFqQztBQUNBb0MsRUFBQUEsY0FBYyxDQUFDdkIsWUFBZixHQUE4QkEsWUFBOUI7QUFDQXVCLEVBQUFBLGNBQWMsQ0FBQ3RELHFDQUFmLEdBQXVEQSxxQ0FBdkQ7QUFDQXNELEVBQUFBLGNBQWMsQ0FBQ04saUJBQWYsR0FBbUNBLGlCQUFuQztBQUNBTSxFQUFBQSxjQUFjLENBQUNwQixpQkFBZixHQUFtQ0EsaUJBQW5DLEMsQ0FBc0Q7O0FBRXREO0FBQ0E7QUFDQTs7U0FDZW9CLGMiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVGFibGVGb3JtYXR0ZXJUeXBlc1wiO1xuaW1wb3J0IFRhYmxlIGZyb20gXCJzYXAvbS9UYWJsZVwiO1xuaW1wb3J0IE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcblxuY29uc3QgZ2V0TWVzc2FnZXR5cGVPcmRlciA9IGZ1bmN0aW9uIChtZXNzYWdlVHlwZTogc3RyaW5nKTogbnVtYmVyIHtcblx0c3dpdGNoIChtZXNzYWdlVHlwZSkge1xuXHRcdGNhc2UgXCJFcnJvclwiOlxuXHRcdFx0cmV0dXJuIDQ7XG5cdFx0Y2FzZSBcIldhcm5pbmdcIjpcblx0XHRcdHJldHVybiAzO1xuXHRcdGNhc2UgXCJJbmZvcm1hdGlvblwiOlxuXHRcdFx0cmV0dXJuIDI7XG5cdFx0Y2FzZSBcIk5vbmVcIjpcblx0XHRcdHJldHVybiAxO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gLTE7XG5cdH1cbn07XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsaWRpdHkgb2YgY3JlYXRpb24gcm93IGZpZWxkcy5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBuYW1lIHZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBmaWVsZFZhbGlkaXR5T2JqZWN0IE9iamVjdCBob2xkaW5nIHRoZSBmaWVsZHNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgYWxsIHRoZSBmaWVsZHMgaW4gdGhlIGNyZWF0aW9uIHJvdyBhcmUgdmFsaWQsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMgPSBmdW5jdGlvbiAoZmllbGRWYWxpZGl0eU9iamVjdD86IGFueSkge1xuXHRpZiAoIWZpZWxkVmFsaWRpdHlPYmplY3QpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Y29uc3QgZmllbGRLZXlzID0gT2JqZWN0LmtleXMoZmllbGRWYWxpZGl0eU9iamVjdCk7XG5cdHJldHVybiAoXG5cdFx0ZmllbGRLZXlzLmxlbmd0aCA+IDAgJiZcblx0XHRmaWVsZEtleXMuZXZlcnkoZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0cmV0dXJuIGZpZWxkVmFsaWRpdHlPYmplY3Rba2V5XVtcInZhbGlkaXR5XCJdO1xuXHRcdH0pXG5cdCk7XG59O1xudmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciN2YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzXCI7XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHRoaXMgVGhlIGNvbnRleHQuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciBUaGUgZHJhZnQgaW5kaWNhdG9yIHByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge0FycmF5fSBhRmlsdGVyZWRNZXNzYWdlcyBBcnJheSBvZiBtZXNzYWdlcy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBUaGUgdmFsdWUgZm9yIE9iamVjdCBTdGF0dXMgdmlzaWJpbGl0eSBwcm9wZXJ0eS5cbiAqL1xuY29uc3QgZ2V0RXJyb3JTdGF0dXNUZXh0VmlzaWJpbGl0eUZvcm1hdHRlciA9IGZ1bmN0aW9uIChcblx0dGhpczogTWFuYWdlZE9iamVjdCB8IGFueSxcblx0c2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvcjogc3RyaW5nLFxuXHRhRmlsdGVyZWRNZXNzYWdlczogYW55XG4pIHtcblx0bGV0IGJTdGF0dXNWaXNpYmlsaXR5ID0gZmFsc2U7XG5cdGNvbnN0IGFTZW1hbnRpY0tleUNvbHVtbnMgPSB0aGlzLmdldFBhcmVudCgpLmdldEFnZ3JlZ2F0aW9uKFwiaXRlbXNcIik7XG5cdGNvbnN0IHNDb2x1bW5Qcm9wZXJ0eSA9IGFTZW1hbnRpY0tleUNvbHVtbnNbMF0hLmdldEJpbmRpbmcoXCJ0aXRsZVwiKT8uZ2V0UGF0aCgpO1xuXHRpZiAoYUZpbHRlcmVkTWVzc2FnZXMgJiYgYUZpbHRlcmVkTWVzc2FnZXMubGVuZ3RoID4gMCAmJiBzQ29sdW1uUHJvcGVydHkgPT09IHNlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3IpIHtcblx0XHRjb25zdCBzQ3VycmVudENvbnRleHRQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpID8gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpLmdldFBhdGgoKSA6IHVuZGVmaW5lZDtcblx0XHRhRmlsdGVyZWRNZXNzYWdlcy5mb3JFYWNoKChvTWVzc2FnZTogYW55KSA9PiB7XG5cdFx0XHRpZiAob01lc3NhZ2UudHlwZSA9PT0gXCJFcnJvclwiICYmIG9NZXNzYWdlLmFUYXJnZXRzWzBdLmluZGV4T2Yoc0N1cnJlbnRDb250ZXh0UGF0aCkgPT09IDApIHtcblx0XHRcdFx0YlN0YXR1c1Zpc2liaWxpdHkgPSB0cnVlO1xuXHRcdFx0XHRyZXR1cm4gYlN0YXR1c1Zpc2liaWxpdHk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGJTdGF0dXNWaXNpYmlsaXR5O1xufTtcbmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVGFibGVGb3JtYXR0ZXIjZ2V0RXJyb3JTdGF0dXNUZXh0VmlzaWJpbGl0eUZvcm1hdHRlclwiO1xuXG4vKipcbiAqIHJvd0hpZ2hsaWdodGluZ1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IENyaXRpY2FsaXR5VmFsdWUgVGhlIGNyaXRpY2FsaXR5IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gbWVzc2FnZUxhc3RVcGRhdGUgVGltZXN0YW1wIG9mIHRoZSBsYXN0IG1lc3NhZ2UgdGhhdCB3YXMgY3JlYXRlZC4gSXQncyBkZWZpbmVkIGFzIGFuIGlucHV0IHZhbHVlLCBidXQgbm90IHVzZWQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uXG4gKiBJdCBpcyB1c2VkIHRvIHJlZnJlc2ggdGhlIGZvcm1hdHRpbmcgb2YgdGhlIHRhYmxlIGVhY2ggdGltZSBhIG5ldyBtZXNzYWdlIGlzIHVwZGF0ZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5cbmNvbnN0IHJvd0hpZ2hsaWdodGluZyA9IGZ1bmN0aW9uIChcblx0dGhpczogTWFuYWdlZE9iamVjdCxcblx0Y3JpdGljYWxpdHlWYWx1ZTogc3RyaW5nIHwgbnVtYmVyLFxuXHRhRmlsdGVyZWRNZXNzYWdlczogYW55W10sXG5cdGhhc0FjdGl2ZUVudGl0eTogYm9vbGVhbixcblx0aXNBY3RpdmVFbnRpdHk6IGJvb2xlYW4sXG5cdGlzRHJhZnRSb290OiBzdHJpbmcsXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0Li4uYXJnczogYW55W11cbik6IE1lc3NhZ2VUeXBlIHtcblx0Y29uc3QgaXNOZXdPYmplY3QgPSAhaGFzQWN0aXZlRW50aXR5ICYmICFpc0FjdGl2ZUVudGl0eTtcblx0bGV0IGlIaWdoZXN0Q3JpdGljYWxpdHlWYWx1ZTogbnVtYmVyID0gLTE7XG5cdGlmIChhRmlsdGVyZWRNZXNzYWdlcyAmJiBhRmlsdGVyZWRNZXNzYWdlcy5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc3Qgc0N1cnJlbnRDb250ZXh0UGF0aCA9IHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpO1xuXHRcdGFGaWx0ZXJlZE1lc3NhZ2VzLmZvckVhY2goKG9NZXNzYWdlOiBhbnkpID0+IHtcblx0XHRcdGlmIChvTWVzc2FnZS5hVGFyZ2V0c1swXS5pbmRleE9mKHNDdXJyZW50Q29udGV4dFBhdGgpID09PSAwICYmIGlIaWdoZXN0Q3JpdGljYWxpdHlWYWx1ZSA8IGdldE1lc3NhZ2V0eXBlT3JkZXIob01lc3NhZ2UudHlwZSkpIHtcblx0XHRcdFx0aUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlID0gZ2V0TWVzc2FnZXR5cGVPcmRlcihvTWVzc2FnZS50eXBlKTtcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IG9NZXNzYWdlLnR5cGU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0aWYgKHR5cGVvZiBjcml0aWNhbGl0eVZhbHVlICE9PSBcInN0cmluZ1wiKSB7XG5cdFx0c3dpdGNoIChjcml0aWNhbGl0eVZhbHVlKSB7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5FcnJvcjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5XYXJuaW5nO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMzpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLlN1Y2Nlc3M7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSA1OlxuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuSW5mb3JtYXRpb247XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLk5vbmU7XG5cdFx0fVxuXHR9XG5cblx0aWYgKGNyaXRpY2FsaXR5VmFsdWUgPT09IE1lc3NhZ2VUeXBlLk5vbmUpIHtcblx0XHRpZiAoaXNEcmFmdFJvb3QgPT09IFwidHJ1ZVwiICYmIGlzTmV3T2JqZWN0KSB7XG5cdFx0XHRyZXR1cm4gTWVzc2FnZVR5cGUuSW5mb3JtYXRpb247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBNZXNzYWdlVHlwZS5Ob25lO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY3JpdGljYWxpdHlWYWx1ZSBhcyBNZXNzYWdlVHlwZTtcblx0fVxufTtcbnJvd0hpZ2hsaWdodGluZy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciNyb3dIaWdobGlnaHRpbmdcIjtcblxuY29uc3QgbmF2aWdhdGVkUm93ID0gZnVuY3Rpb24gKHRoaXM6IE1hbmFnZWRPYmplY3QsIHNEZWVwZXN0UGF0aDogc3RyaW5nKSB7XG5cdGNvbnN0IHNQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpPy5nZXRQYXRoKCk7XG5cdGlmIChzUGF0aCAmJiBzRGVlcGVzdFBhdGgpIHtcblx0XHRyZXR1cm4gc0RlZXBlc3RQYXRoLmluZGV4T2Yoc1BhdGgpID09PSAwO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufTtcbm5hdmlnYXRlZFJvdy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciNuYXZpZ2F0ZWRSb3dcIjtcblxuZnVuY3Rpb24gaXNSYXRpbmdJbmRpY2F0b3Iob0NvbnRyb2w6IGFueSk6IGJvb2xlYW4ge1xuXHRpZiAob0NvbnRyb2wuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmllbGRXcmFwcGVyXCIpKSB7XG5cdFx0Y29uc3QgdkNvbnRlbnREaXNwbGF5ID0gQXJyYXkuaXNBcnJheShvQ29udHJvbC5nZXRDb250ZW50RGlzcGxheSgpKVxuXHRcdFx0PyBvQ29udHJvbC5nZXRDb250ZW50RGlzcGxheSgpWzBdXG5cdFx0XHQ6IG9Db250cm9sLmdldENvbnRlbnREaXNwbGF5KCk7XG5cdFx0aWYgKHZDb250ZW50RGlzcGxheSAmJiB2Q29udGVudERpc3BsYXkuaXNBKFwic2FwLm0uUmF0aW5nSW5kaWNhdG9yXCIpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gX3VwZGF0ZVN0eWxlQ2xhc3NGb3JSYXRpbmdJbmRpY2F0b3Iob0ZpZWxkV3JhcHBlcjogYW55LCBiTGFzdDogYm9vbGVhbikge1xuXHRjb25zdCB2Q29udGVudERpc3BsYXkgPSBBcnJheS5pc0FycmF5KG9GaWVsZFdyYXBwZXIuZ2V0Q29udGVudERpc3BsYXkoKSlcblx0XHQ/IG9GaWVsZFdyYXBwZXIuZ2V0Q29udGVudERpc3BsYXkoKVswXVxuXHRcdDogb0ZpZWxkV3JhcHBlci5nZXRDb250ZW50RGlzcGxheSgpO1xuXHRjb25zdCB2Q29udGVudEVkaXQgPSBBcnJheS5pc0FycmF5KG9GaWVsZFdyYXBwZXIuZ2V0Q29udGVudEVkaXQoKSkgPyBvRmllbGRXcmFwcGVyLmdldENvbnRlbnRFZGl0KClbMF0gOiBvRmllbGRXcmFwcGVyLmdldENvbnRlbnRFZGl0KCk7XG5cblx0aWYgKGJMYXN0KSB7XG5cdFx0dkNvbnRlbnREaXNwbGF5LmFkZFN0eWxlQ2xhc3MoXCJzYXBVaU5vTWFyZ2luQm90dG9tXCIpO1xuXHRcdHZDb250ZW50RGlzcGxheS5hZGRTdHlsZUNsYXNzKFwic2FwVWlOb01hcmdpblRvcFwiKTtcblx0XHR2Q29udGVudEVkaXQucmVtb3ZlU3R5bGVDbGFzcyhcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwiKTtcblx0fSBlbHNlIHtcblx0XHR2Q29udGVudERpc3BsYXkuYWRkU3R5bGVDbGFzcyhcInNhcFVpTm9NYXJnaW5Cb3R0b21cIik7XG5cdFx0dkNvbnRlbnREaXNwbGF5LnJlbW92ZVN0eWxlQ2xhc3MoXCJzYXBVaU5vTWFyZ2luVG9wXCIpO1xuXHRcdHZDb250ZW50RWRpdC5hZGRTdHlsZUNsYXNzKFwic2FwVWlUaW55TWFyZ2luQm90dG9tXCIpO1xuXHR9XG59XG5mdW5jdGlvbiBnZXRWQm94VmlzaWJpbGl0eSh0aGlzOiBUYWJsZSwgLi4uYXJnczogYW55W10pIHtcblx0Y29uc3QgYUl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuXHRsZXQgYkxhc3RFbGVtZW50Rm91bmQgPSBmYWxzZTtcblx0Zm9yIChsZXQgaW5kZXggPSBhSXRlbXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuXHRcdGlmICghYkxhc3RFbGVtZW50Rm91bmQpIHtcblx0XHRcdGlmIChhcmdzW2luZGV4XSAhPT0gdHJ1ZSkge1xuXHRcdFx0XHRiTGFzdEVsZW1lbnRGb3VuZCA9IHRydWU7XG5cdFx0XHRcdGlmIChpc1JhdGluZ0luZGljYXRvcihhSXRlbXNbaW5kZXhdKSkge1xuXHRcdFx0XHRcdF91cGRhdGVTdHlsZUNsYXNzRm9yUmF0aW5nSW5kaWNhdG9yKGFJdGVtc1tpbmRleF0sIHRydWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFJdGVtc1tpbmRleF0ucmVtb3ZlU3R5bGVDbGFzcyhcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoaXNSYXRpbmdJbmRpY2F0b3IoYUl0ZW1zW2luZGV4XSkpIHtcblx0XHRcdF91cGRhdGVTdHlsZUNsYXNzRm9yUmF0aW5nSW5kaWNhdG9yKGFJdGVtc1tpbmRleF0sIGZhbHNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YUl0ZW1zW2luZGV4XS5hZGRTdHlsZUNsYXNzKFwic2FwVWlUaW55TWFyZ2luQm90dG9tXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn1cbmdldFZCb3hWaXNpYmlsaXR5Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlRhYmxlRm9ybWF0dGVyI2dldFZCb3hWaXNpYmlsaXR5XCI7XG5cbi8vIFNlZSBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9mdW5jdGlvbnMuaHRtbCN0aGlzLXBhcmFtZXRlcnMgZm9yIG1vcmUgZGV0YWlsIG9uIHRoaXMgd2VpcmQgc3ludGF4XG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHRhYmxlRm9ybWF0dGVyID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKHRhYmxlRm9ybWF0dGVyLmhhc093blByb3BlcnR5KHNOYW1lKSkge1xuXHRcdHJldHVybiAodGFibGVGb3JtYXR0ZXIgYXMgYW55KVtzTmFtZV0uYXBwbHkodGhpcywgb0FyZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG59O1xuXG50YWJsZUZvcm1hdHRlci52YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzID0gdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcztcbnRhYmxlRm9ybWF0dGVyLnJvd0hpZ2hsaWdodGluZyA9IHJvd0hpZ2hsaWdodGluZztcbnRhYmxlRm9ybWF0dGVyLm5hdmlnYXRlZFJvdyA9IG5hdmlnYXRlZFJvdztcbnRhYmxlRm9ybWF0dGVyLmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIgPSBnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyO1xudGFibGVGb3JtYXR0ZXIuZ2V0VkJveFZpc2liaWxpdHkgPSBnZXRWQm94VmlzaWJpbGl0eTtcbnRhYmxlRm9ybWF0dGVyLmlzUmF0aW5nSW5kaWNhdG9yID0gaXNSYXRpbmdJbmRpY2F0b3I7IC8vIGZvciB1bml0IHRlc3RzXG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCB0YWJsZUZvcm1hdHRlcjtcbiJdfQ==
|