@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
|
@@ -111,9 +111,30 @@ sap.ui.define([], function () {
|
|
|
111
111
|
|
|
112
112
|
_exports.isPathExpression = isPathExpression;
|
|
113
113
|
|
|
114
|
+
var isPropertyPathExpression = function (expression) {
|
|
115
|
+
return !!expression && expression.type !== undefined && expression.type === "PropertyPath";
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
_exports.isPropertyPathExpression = isPropertyPathExpression;
|
|
119
|
+
|
|
114
120
|
var isAnnotationPathExpression = function (expression) {
|
|
115
121
|
return !!expression && expression.type !== undefined && expression.type === "AnnotationPath";
|
|
116
122
|
};
|
|
123
|
+
/**
|
|
124
|
+
* Retrieves the timezone property associated to the property, if applicable.
|
|
125
|
+
*
|
|
126
|
+
* @param {Property} oProperty The target property
|
|
127
|
+
* @returns {Property | undefined} The timezone property, if it exists
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
_exports.isAnnotationPathExpression = isAnnotationPathExpression;
|
|
132
|
+
|
|
133
|
+
var getAssociatedTimezoneProperty = function (oProperty) {
|
|
134
|
+
var _oProperty$annotation12, _oProperty$annotation13, _oProperty$annotation14, _oProperty$annotation15;
|
|
135
|
+
|
|
136
|
+
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$annotation12 = oProperty.annotations) === null || _oProperty$annotation12 === void 0 ? void 0 : (_oProperty$annotation13 = _oProperty$annotation12.Common) === null || _oProperty$annotation13 === void 0 ? void 0 : _oProperty$annotation13.Timezone) ? (_oProperty$annotation14 = oProperty.annotations) === null || _oProperty$annotation14 === void 0 ? void 0 : (_oProperty$annotation15 = _oProperty$annotation14.Common) === null || _oProperty$annotation15 === void 0 ? void 0 : _oProperty$annotation15.Timezone.$target : undefined;
|
|
137
|
+
};
|
|
117
138
|
/**
|
|
118
139
|
* Retrieves the unit property associated to the property, if applicable.
|
|
119
140
|
*
|
|
@@ -122,20 +143,20 @@ sap.ui.define([], function () {
|
|
|
122
143
|
*/
|
|
123
144
|
|
|
124
145
|
|
|
125
|
-
_exports.
|
|
146
|
+
_exports.getAssociatedTimezoneProperty = getAssociatedTimezoneProperty;
|
|
126
147
|
|
|
127
148
|
var getAssociatedUnitProperty = function (oProperty) {
|
|
128
|
-
var _oProperty$
|
|
149
|
+
var _oProperty$annotation16, _oProperty$annotation17, _oProperty$annotation18, _oProperty$annotation19;
|
|
129
150
|
|
|
130
|
-
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$
|
|
151
|
+
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$annotation16 = oProperty.annotations) === null || _oProperty$annotation16 === void 0 ? void 0 : (_oProperty$annotation17 = _oProperty$annotation16.Measures) === null || _oProperty$annotation17 === void 0 ? void 0 : _oProperty$annotation17.Unit) ? (_oProperty$annotation18 = oProperty.annotations) === null || _oProperty$annotation18 === void 0 ? void 0 : (_oProperty$annotation19 = _oProperty$annotation18.Measures) === null || _oProperty$annotation19 === void 0 ? void 0 : _oProperty$annotation19.Unit.$target : undefined;
|
|
131
152
|
};
|
|
132
153
|
|
|
133
154
|
_exports.getAssociatedUnitProperty = getAssociatedUnitProperty;
|
|
134
155
|
|
|
135
156
|
var getAssociatedUnitPropertyPath = function (oProperty) {
|
|
136
|
-
var _oProperty$
|
|
157
|
+
var _oProperty$annotation20, _oProperty$annotation21, _oProperty$annotation22, _oProperty$annotation23;
|
|
137
158
|
|
|
138
|
-
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$
|
|
159
|
+
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$annotation20 = oProperty.annotations) === null || _oProperty$annotation20 === void 0 ? void 0 : (_oProperty$annotation21 = _oProperty$annotation20.Measures) === null || _oProperty$annotation21 === void 0 ? void 0 : _oProperty$annotation21.Unit) ? (_oProperty$annotation22 = oProperty.annotations) === null || _oProperty$annotation22 === void 0 ? void 0 : (_oProperty$annotation23 = _oProperty$annotation22.Measures) === null || _oProperty$annotation23 === void 0 ? void 0 : _oProperty$annotation23.Unit.path : undefined;
|
|
139
160
|
};
|
|
140
161
|
/**
|
|
141
162
|
* Retrieves the associated currency property for that property if it exists.
|
|
@@ -148,47 +169,47 @@ sap.ui.define([], function () {
|
|
|
148
169
|
_exports.getAssociatedUnitPropertyPath = getAssociatedUnitPropertyPath;
|
|
149
170
|
|
|
150
171
|
var getAssociatedCurrencyProperty = function (oProperty) {
|
|
151
|
-
var _oProperty$
|
|
172
|
+
var _oProperty$annotation24, _oProperty$annotation25, _oProperty$annotation26, _oProperty$annotation27;
|
|
152
173
|
|
|
153
|
-
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$
|
|
174
|
+
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$annotation24 = oProperty.annotations) === null || _oProperty$annotation24 === void 0 ? void 0 : (_oProperty$annotation25 = _oProperty$annotation24.Measures) === null || _oProperty$annotation25 === void 0 ? void 0 : _oProperty$annotation25.ISOCurrency) ? (_oProperty$annotation26 = oProperty.annotations) === null || _oProperty$annotation26 === void 0 ? void 0 : (_oProperty$annotation27 = _oProperty$annotation26.Measures) === null || _oProperty$annotation27 === void 0 ? void 0 : _oProperty$annotation27.ISOCurrency.$target : undefined;
|
|
154
175
|
};
|
|
155
176
|
|
|
156
177
|
_exports.getAssociatedCurrencyProperty = getAssociatedCurrencyProperty;
|
|
157
178
|
|
|
158
179
|
var getAssociatedCurrencyPropertyPath = function (oProperty) {
|
|
159
|
-
var _oProperty$
|
|
180
|
+
var _oProperty$annotation28, _oProperty$annotation29, _oProperty$annotation30, _oProperty$annotation31;
|
|
160
181
|
|
|
161
|
-
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$
|
|
182
|
+
return isPathExpression(oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$annotation28 = oProperty.annotations) === null || _oProperty$annotation28 === void 0 ? void 0 : (_oProperty$annotation29 = _oProperty$annotation28.Measures) === null || _oProperty$annotation29 === void 0 ? void 0 : _oProperty$annotation29.ISOCurrency) ? (_oProperty$annotation30 = oProperty.annotations) === null || _oProperty$annotation30 === void 0 ? void 0 : (_oProperty$annotation31 = _oProperty$annotation30.Measures) === null || _oProperty$annotation31 === void 0 ? void 0 : _oProperty$annotation31.ISOCurrency.path : undefined;
|
|
162
183
|
};
|
|
163
184
|
/**
|
|
164
185
|
* Retrieves the Common.Text property path if it exists.
|
|
165
186
|
*
|
|
166
187
|
* @param {Property} oProperty The target property
|
|
167
|
-
* @returns {string | undefined} The Common.Text property path or undefined if it does not
|
|
188
|
+
* @returns {string | undefined} The Common.Text property path or undefined if it does not exist
|
|
168
189
|
*/
|
|
169
190
|
|
|
170
191
|
|
|
171
192
|
_exports.getAssociatedCurrencyPropertyPath = getAssociatedCurrencyPropertyPath;
|
|
172
193
|
|
|
173
194
|
var getAssociatedTextPropertyPath = function (oProperty) {
|
|
174
|
-
var _oProperty$
|
|
195
|
+
var _oProperty$annotation32, _oProperty$annotation33, _oProperty$annotation34, _oProperty$annotation35;
|
|
175
196
|
|
|
176
|
-
return isPathExpression((_oProperty$
|
|
197
|
+
return isPathExpression((_oProperty$annotation32 = oProperty.annotations) === null || _oProperty$annotation32 === void 0 ? void 0 : (_oProperty$annotation33 = _oProperty$annotation32.Common) === null || _oProperty$annotation33 === void 0 ? void 0 : _oProperty$annotation33.Text) ? (_oProperty$annotation34 = oProperty.annotations) === null || _oProperty$annotation34 === void 0 ? void 0 : (_oProperty$annotation35 = _oProperty$annotation34.Common) === null || _oProperty$annotation35 === void 0 ? void 0 : _oProperty$annotation35.Text.path : undefined;
|
|
177
198
|
};
|
|
178
199
|
/**
|
|
179
|
-
* Retrieves the TargetValue from
|
|
200
|
+
* Retrieves the TargetValue from the DataPoint.
|
|
180
201
|
*
|
|
181
|
-
* @param {Property} oProperty the target property
|
|
182
|
-
* @returns {string | undefined}
|
|
202
|
+
* @param {Property} oProperty the target property or DataPoint
|
|
203
|
+
* @returns {string | undefined} The TargetValue
|
|
183
204
|
*/
|
|
184
205
|
|
|
185
206
|
|
|
186
207
|
_exports.getAssociatedTextPropertyPath = getAssociatedTextPropertyPath;
|
|
187
208
|
|
|
188
209
|
var getTargetValueOnDataPoint = function (oProperty) {
|
|
189
|
-
var _oProperty$
|
|
210
|
+
var _oProperty$annotation36, _oProperty$annotation37, _oProperty$annotation38, _oProperty$annotation39, _oProperty$annotation40, _oProperty$annotation41, _oProperty$TargetValu;
|
|
190
211
|
|
|
191
|
-
var sTargetValue = ((_oProperty$
|
|
212
|
+
var sTargetValue = ((_oProperty$annotation36 = oProperty.annotations) === null || _oProperty$annotation36 === void 0 ? void 0 : (_oProperty$annotation37 = _oProperty$annotation36.UI) === null || _oProperty$annotation37 === void 0 ? void 0 : (_oProperty$annotation38 = _oProperty$annotation37.DataFieldDefault) === null || _oProperty$annotation38 === void 0 ? void 0 : (_oProperty$annotation39 = _oProperty$annotation38.Target) === null || _oProperty$annotation39 === void 0 ? void 0 : (_oProperty$annotation40 = _oProperty$annotation39.$target) === null || _oProperty$annotation40 === void 0 ? void 0 : (_oProperty$annotation41 = _oProperty$annotation40.TargetValue) === null || _oProperty$annotation41 === void 0 ? void 0 : _oProperty$annotation41.toString()) || ((_oProperty$TargetValu = oProperty.TargetValue) === null || _oProperty$TargetValu === void 0 ? void 0 : _oProperty$TargetValu.toString());
|
|
192
213
|
return sTargetValue ? sTargetValue : undefined;
|
|
193
214
|
};
|
|
194
215
|
/**
|
|
@@ -202,9 +223,9 @@ sap.ui.define([], function () {
|
|
|
202
223
|
_exports.getTargetValueOnDataPoint = getTargetValueOnDataPoint;
|
|
203
224
|
|
|
204
225
|
var hasValueHelp = function (oProperty) {
|
|
205
|
-
var _oProperty$
|
|
226
|
+
var _oProperty$annotation42, _oProperty$annotation43, _oProperty$annotation44, _oProperty$annotation45, _oProperty$annotation46, _oProperty$annotation47, _oProperty$annotation48, _oProperty$annotation49;
|
|
206
227
|
|
|
207
|
-
return !!((_oProperty$
|
|
228
|
+
return !!((_oProperty$annotation42 = oProperty.annotations) !== null && _oProperty$annotation42 !== void 0 && (_oProperty$annotation43 = _oProperty$annotation42.Common) !== null && _oProperty$annotation43 !== void 0 && _oProperty$annotation43.ValueList) || !!((_oProperty$annotation44 = oProperty.annotations) !== null && _oProperty$annotation44 !== void 0 && (_oProperty$annotation45 = _oProperty$annotation44.Common) !== null && _oProperty$annotation45 !== void 0 && _oProperty$annotation45.ValueListReferences) || !!((_oProperty$annotation46 = oProperty.annotations) !== null && _oProperty$annotation46 !== void 0 && (_oProperty$annotation47 = _oProperty$annotation46.Common) !== null && _oProperty$annotation47 !== void 0 && _oProperty$annotation47.ValueListWithFixedValues) || !!((_oProperty$annotation48 = oProperty.annotations) !== null && _oProperty$annotation48 !== void 0 && (_oProperty$annotation49 = _oProperty$annotation48.Common) !== null && _oProperty$annotation49 !== void 0 && _oProperty$annotation49.ValueListMapping);
|
|
208
229
|
};
|
|
209
230
|
/**
|
|
210
231
|
* Check whether the property has a value help with fixed value annotation defined or not.
|
|
@@ -217,9 +238,9 @@ sap.ui.define([], function () {
|
|
|
217
238
|
_exports.hasValueHelp = hasValueHelp;
|
|
218
239
|
|
|
219
240
|
var hasValueHelpWithFixedValues = function (oProperty) {
|
|
220
|
-
var _oProperty$
|
|
241
|
+
var _oProperty$annotation50, _oProperty$annotation51, _oProperty$annotation52;
|
|
221
242
|
|
|
222
|
-
return !!(oProperty !== null && oProperty !== void 0 && (_oProperty$
|
|
243
|
+
return !!(oProperty !== null && oProperty !== void 0 && (_oProperty$annotation50 = oProperty.annotations) !== null && _oProperty$annotation50 !== void 0 && (_oProperty$annotation51 = _oProperty$annotation50.Common) !== null && _oProperty$annotation51 !== void 0 && (_oProperty$annotation52 = _oProperty$annotation51.ValueListWithFixedValues) !== null && _oProperty$annotation52 !== void 0 && _oProperty$annotation52.valueOf());
|
|
223
244
|
};
|
|
224
245
|
/**
|
|
225
246
|
* Check whether the property has a value help for validation annotation defined or not.
|
|
@@ -232,9 +253,17 @@ sap.ui.define([], function () {
|
|
|
232
253
|
_exports.hasValueHelpWithFixedValues = hasValueHelpWithFixedValues;
|
|
233
254
|
|
|
234
255
|
var hasValueListForValidation = function (oProperty) {
|
|
235
|
-
var _oProperty$
|
|
256
|
+
var _oProperty$annotation53, _oProperty$annotation54;
|
|
236
257
|
|
|
237
|
-
return ((_oProperty$
|
|
258
|
+
return ((_oProperty$annotation53 = oProperty.annotations) === null || _oProperty$annotation53 === void 0 ? void 0 : (_oProperty$annotation54 = _oProperty$annotation53.Common) === null || _oProperty$annotation54 === void 0 ? void 0 : _oProperty$annotation54.ValueListForValidation) !== undefined;
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
_exports.hasValueListForValidation = hasValueListForValidation;
|
|
262
|
+
|
|
263
|
+
var hasTimezone = function (oProperty) {
|
|
264
|
+
var _oProperty$annotation55, _oProperty$annotation56;
|
|
265
|
+
|
|
266
|
+
return ((_oProperty$annotation55 = oProperty.annotations) === null || _oProperty$annotation55 === void 0 ? void 0 : (_oProperty$annotation56 = _oProperty$annotation55.Common) === null || _oProperty$annotation56 === void 0 ? void 0 : _oProperty$annotation56.Timezone) !== undefined;
|
|
238
267
|
};
|
|
239
268
|
/**
|
|
240
269
|
* Checks whether the property is a unit property.
|
|
@@ -244,12 +273,12 @@ sap.ui.define([], function () {
|
|
|
244
273
|
*/
|
|
245
274
|
|
|
246
275
|
|
|
247
|
-
_exports.
|
|
276
|
+
_exports.hasTimezone = hasTimezone;
|
|
248
277
|
|
|
249
278
|
var isUnit = function (oProperty) {
|
|
250
|
-
var _oProperty$
|
|
279
|
+
var _oProperty$annotation57, _oProperty$annotation58, _oProperty$annotation59;
|
|
251
280
|
|
|
252
|
-
return !!((_oProperty$
|
|
281
|
+
return !!((_oProperty$annotation57 = oProperty.annotations) !== null && _oProperty$annotation57 !== void 0 && (_oProperty$annotation58 = _oProperty$annotation57.Common) !== null && _oProperty$annotation58 !== void 0 && (_oProperty$annotation59 = _oProperty$annotation58.IsUnit) !== null && _oProperty$annotation59 !== void 0 && _oProperty$annotation59.valueOf());
|
|
253
282
|
};
|
|
254
283
|
/**
|
|
255
284
|
* Checks whether the property has a unit property.
|
|
@@ -262,9 +291,9 @@ sap.ui.define([], function () {
|
|
|
262
291
|
_exports.isUnit = isUnit;
|
|
263
292
|
|
|
264
293
|
var hasUnit = function (oProperty) {
|
|
265
|
-
var _oProperty$
|
|
294
|
+
var _oProperty$annotation60, _oProperty$annotation61;
|
|
266
295
|
|
|
267
|
-
return ((_oProperty$
|
|
296
|
+
return ((_oProperty$annotation60 = oProperty.annotations) === null || _oProperty$annotation60 === void 0 ? void 0 : (_oProperty$annotation61 = _oProperty$annotation60.Measures) === null || _oProperty$annotation61 === void 0 ? void 0 : _oProperty$annotation61.Unit) !== undefined;
|
|
268
297
|
};
|
|
269
298
|
/**
|
|
270
299
|
* Checks whether the property is a currency property.
|
|
@@ -277,9 +306,9 @@ sap.ui.define([], function () {
|
|
|
277
306
|
_exports.hasUnit = hasUnit;
|
|
278
307
|
|
|
279
308
|
var isCurrency = function (oProperty) {
|
|
280
|
-
var _oProperty$
|
|
309
|
+
var _oProperty$annotation62, _oProperty$annotation63, _oProperty$annotation64;
|
|
281
310
|
|
|
282
|
-
return !!((_oProperty$
|
|
311
|
+
return !!((_oProperty$annotation62 = oProperty.annotations) !== null && _oProperty$annotation62 !== void 0 && (_oProperty$annotation63 = _oProperty$annotation62.Common) !== null && _oProperty$annotation63 !== void 0 && (_oProperty$annotation64 = _oProperty$annotation63.IsCurrency) !== null && _oProperty$annotation64 !== void 0 && _oProperty$annotation64.valueOf());
|
|
283
312
|
};
|
|
284
313
|
/**
|
|
285
314
|
* Checks whether the property has a currency property.
|
|
@@ -292,12 +321,20 @@ sap.ui.define([], function () {
|
|
|
292
321
|
_exports.isCurrency = isCurrency;
|
|
293
322
|
|
|
294
323
|
var hasCurrency = function (oProperty) {
|
|
295
|
-
var _oProperty$
|
|
324
|
+
var _oProperty$annotation65, _oProperty$annotation66;
|
|
296
325
|
|
|
297
|
-
return ((_oProperty$
|
|
326
|
+
return ((_oProperty$annotation65 = oProperty.annotations) === null || _oProperty$annotation65 === void 0 ? void 0 : (_oProperty$annotation66 = _oProperty$annotation65.Measures) === null || _oProperty$annotation66 === void 0 ? void 0 : _oProperty$annotation66.ISOCurrency) !== undefined;
|
|
298
327
|
};
|
|
299
328
|
|
|
300
329
|
_exports.hasCurrency = hasCurrency;
|
|
330
|
+
|
|
331
|
+
var hasStaticPercentUnit = function (oProperty) {
|
|
332
|
+
var _oProperty$annotation67, _oProperty$annotation68, _oProperty$annotation69;
|
|
333
|
+
|
|
334
|
+
return (oProperty === null || oProperty === void 0 ? void 0 : (_oProperty$annotation67 = oProperty.annotations) === null || _oProperty$annotation67 === void 0 ? void 0 : (_oProperty$annotation68 = _oProperty$annotation67.Measures) === null || _oProperty$annotation68 === void 0 ? void 0 : (_oProperty$annotation69 = _oProperty$annotation68.Unit) === null || _oProperty$annotation69 === void 0 ? void 0 : _oProperty$annotation69.toString()) === "%";
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
_exports.hasStaticPercentUnit = hasStaticPercentUnit;
|
|
301
338
|
return _exports;
|
|
302
339
|
}, false);
|
|
303
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlByb3BlcnR5SGVscGVyLnRzIl0sIm5hbWVzIjpbImlzUHJvcGVydHkiLCJwcm9wZXJ0eSIsImhhc093blByb3BlcnR5IiwiX3R5cGUiLCJpc0NvbXB1dGVkIiwib1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJDb3JlIiwiQ29tcHV0ZWQiLCJ2YWx1ZU9mIiwiaXNJbW11dGFibGUiLCJJbW11dGFibGUiLCJpc0tleSIsImhhc0RhdGVUeXBlIiwiaW5kZXhPZiIsInR5cGUiLCJnZXRMYWJlbCIsIkNvbW1vbiIsIkxhYmVsIiwidG9TdHJpbmciLCJoYXNTZW1hbnRpY09iamVjdCIsIlNlbWFudGljT2JqZWN0IiwiaXNQYXRoRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJ1bmRlZmluZWQiLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJNZWFzdXJlcyIsIlVuaXQiLCIkdGFyZ2V0IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJwYXRoIiwiZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkiLCJJU09DdXJyZW5jeSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRUZXh0UHJvcGVydHlQYXRoIiwiVGV4dCIsImdldFRhcmdldFZhbHVlT25EYXRhUG9pbnQiLCJzVGFyZ2V0VmFsdWUiLCJVSSIsIkRhdGFGaWVsZERlZmF1bHQiLCJUYXJnZXQiLCJUYXJnZXRWYWx1ZSIsImhhc1ZhbHVlSGVscCIsIlZhbHVlTGlzdCIsIlZhbHVlTGlzdFJlZmVyZW5jZXMiLCJWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMiLCJWYWx1ZUxpc3RNYXBwaW5nIiwiaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzIiwiaGFzVmFsdWVMaXN0Rm9yVmFsaWRhdGlvbiIsIlZhbHVlTGlzdEZvclZhbGlkYXRpb24iLCJpc1VuaXQiLCJJc1VuaXQiLCJoYXNVbml0IiwiaXND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Q0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTThCLFVBQVUsR0FBRyxVQUFTakQsU0FBVCxFQUF1QztBQUFBOztBQUNoRSxXQUFPLENBQUMsNkJBQUNBLFNBQVMsQ0FBQ0MsV0FBWCwrRUFBQyx3QkFBdUJXLE1BQXhCLCtFQUFDLHdCQUErQnNDLFVBQWhDLG9EQUFDLHdCQUEyQzlDLE9BQTNDLEVBQUQsQ0FBUjtBQUNBLEdBRk07QUFJUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTStDLFdBQVcsR0FBRyxVQUFTbkQsU0FBVCxFQUF1QztBQUFBOztBQUNqRSxXQUFPLDRCQUFBQSxTQUFTLENBQUNDLFdBQVYsK0dBQXVCcUIsUUFBdkIsb0ZBQWlDTSxXQUFqQyxNQUFpRFQsU0FBeEQ7QUFDQSxHQUZNIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyXCI7XG5pbXBvcnQgeyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuLyoqXG4gKiBJZGVudGlmeSBpZiB0aGUgZ2l2ZW4gcHJvcGVydHkgcGFzc2VkIGlzIGEgXCJQcm9wZXJ0eVwiIChoYXMgYSBfdHlwZSkuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gcHJvcGVydHkgQSB0YXJnZXQgcHJvcGVydHkgdG8gZXZhbHVhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSBWYWxpZGF0ZSB0aGF0IHByb3BlcnR5IGlzIGEgUHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvcGVydHkocHJvcGVydHk6IGFueSk6IHByb3BlcnR5IGlzIFByb3BlcnR5IHtcblx0cmV0dXJuIHByb3BlcnR5ICYmIChwcm9wZXJ0eSBhcyBQcm9wZXJ0eSkuaGFzT3duUHJvcGVydHkoXCJfdHlwZVwiKSAmJiAocHJvcGVydHkgYXMgUHJvcGVydHkpLl90eXBlID09PSBcIlByb3BlcnR5XCI7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIHRoZSBDb3JlLkNvbXB1dGVkIGFubm90YXRpb24gb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBpcyBjb21wdXRlZFxuICovXG5leHBvcnQgY29uc3QgaXNDb21wdXRlZCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db3JlPy5Db21wdXRlZD8udmFsdWVPZigpO1xufTtcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgdGhlIENvcmUuSW1tdXRhYmxlIGFubm90YXRpb24gb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0J3MgaW1tdXRhYmxlXG4gKi9cbmV4cG9ydCBjb25zdCBpc0ltbXV0YWJsZSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db3JlPy5JbW11dGFibGU/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSBrZXkgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0J3MgYSBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzS2V5ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuaXNLZXk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgYSBkYXRlIHRpbWUgb3Igbm90LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHlcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBpcyBvZiB0eXBlIGRhdGUgLyBkYXRldGltZSAvIGRhdGV0aW1lb2Zmc2V0XG4gKi9cbmV4cG9ydCBjb25zdCBoYXNEYXRlVHlwZSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuIFtcIkVkbS5EYXRlXCIsIFwiRWRtLkRhdGVUaW1lXCIsIFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCJdLmluZGV4T2Yob1Byb3BlcnR5LnR5cGUpICE9PSAtMTtcbn07XG5cbi8qKlxuICogUmV0cmlldmUgdGhlIGxhYmVsIGFubm90YXRpb24uXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyBUaGUgbGFiZWwgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRMYWJlbCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBzdHJpbmcge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpIHx8IFwiXCI7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHNlbWFudGljIG9iamVjdCBkZWZpbmVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBpdCBoYXMgYSBzZW1hbnRpYyBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1NlbWFudGljT2JqZWN0ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNPYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoRXhwcmVzc2lvbiA9IGZ1bmN0aW9uPFQ+KGV4cHJlc3Npb246IGFueSk6IGV4cHJlc3Npb24gaXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFQ+IHtcblx0cmV0dXJuICEhZXhwcmVzc2lvbiAmJiBleHByZXNzaW9uLnR5cGUgIT09IHVuZGVmaW5lZCAmJiBleHByZXNzaW9uLnR5cGUgPT09IFwiUGF0aFwiO1xufTtcbmV4cG9ydCBjb25zdCBpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiA9IGZ1bmN0aW9uPFQ+KGV4cHJlc3Npb246IGFueSk6IGV4cHJlc3Npb24gaXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFQ+IHtcblx0cmV0dXJuICEhZXhwcmVzc2lvbiAmJiBleHByZXNzaW9uLnR5cGUgIT09IHVuZGVmaW5lZCAmJiBleHByZXNzaW9uLnR5cGUgPT09IFwiQW5ub3RhdGlvblBhdGhcIjtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSB1bml0IHByb3BlcnR5IGFzc29jaWF0ZWQgdG8gdGhlIHByb3BlcnR5LCBpZiBhcHBsaWNhYmxlLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7UHJvcGVydHkgfCB1bmRlZmluZWR9IFRoZSB1bml0IHByb3BlcnR5LCBpZiBpdCBleGlzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogUHJvcGVydHkgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdClcblx0XHQ/ICgob1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdC4kdGFyZ2V0IGFzIHVua25vd24pIGFzIFByb3BlcnR5KVxuXHRcdDogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHlQYXRoID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0KSA/IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQucGF0aCA6IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhc3NvY2lhdGVkIGN1cnJlbmN5IHByb3BlcnR5IGZvciB0aGF0IHByb3BlcnR5IGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge1Byb3BlcnR5IHwgdW5kZWZpbmVkfSBUaGUgdW5pdCBwcm9wZXJ0eSwgaWYgaXQgZXhpc3RzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeSlcblx0XHQ/ICgob1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kuJHRhcmdldCBhcyB1bmtub3duKSBhcyBQcm9wZXJ0eSlcblx0XHQ6IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eVBhdGggPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5KSA/IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5LnBhdGggOiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgQ29tbW9uLlRleHQgcHJvcGVydHkgcGF0aCBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IFRoZSBDb21tb24uVGV4dCBwcm9wZXJ0eSBwYXRoIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2VzIG5vdCBleGl0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBc3NvY2lhdGVkVGV4dFByb3BlcnR5UGF0aCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dCkgPyBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dC5wYXRoIDogdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIFRhcmdldFZhbHVlIGZyb20gZGF0YXBvaW50LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSB0aGUgdGFyZ2V0IHByb3BlcnR5L2RhdGFQb2ludFxuICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gdGhlIFRhcmdldFZhbHVlXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFRhcmdldFZhbHVlT25EYXRhUG9pbnQgPSBmdW5jdGlvbihvUHJvcGVydHk6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHNUYXJnZXRWYWx1ZSA9XG5cdFx0b1Byb3BlcnR5LmFubm90YXRpb25zPy5VST8uRGF0YUZpZWxkRGVmYXVsdD8uVGFyZ2V0Py4kdGFyZ2V0Py5UYXJnZXRWYWx1ZT8udG9TdHJpbmcoKSB8fCBvUHJvcGVydHkuVGFyZ2V0VmFsdWU/LnRvU3RyaW5nKCk7XG5cdHJldHVybiBzVGFyZ2V0VmFsdWUgPyBzVGFyZ2V0VmFsdWUgOiB1bmRlZmluZWQ7XG59O1xuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgYSB2YWx1ZSBoZWxwIGFubm90YXRpb24gZGVmaW5lZCBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQgaGFzIGEgdmFsdWUgaGVscFxuICovXG5leHBvcnQgY29uc3QgaGFzVmFsdWVIZWxwID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gKFxuXHRcdCEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdCB8fFxuXHRcdCEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdFJlZmVyZW5jZXMgfHxcblx0XHQhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMgfHxcblx0XHQhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RNYXBwaW5nXG5cdCk7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHZhbHVlIGhlbHAgd2l0aCBmaXhlZCB2YWx1ZSBhbm5vdGF0aW9uIGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHZhbHVlIGhlbHBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCBmb3IgdmFsaWRhdGlvbiBhbm5vdGF0aW9uIGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHZhbHVlIGhlbHBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1ZhbHVlTGlzdEZvclZhbGlkYXRpb24gPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0Rm9yVmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSB1bml0IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaXMgYSB1bml0XG4gKi9cbmV4cG9ydCBjb25zdCBpc1VuaXQgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5Jc1VuaXQ/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHVuaXQgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBoYXMgYSB1bml0XG4gKi9cblxuZXhwb3J0IGNvbnN0IGhhc1VuaXQgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0ICE9PSB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBhIGN1cnJlbmN5IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaXMgYSBjdXJyZW5jeVxuICovXG5leHBvcnQgY29uc3QgaXNDdXJyZW5jeSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LklzQ3VycmVuY3k/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIGN1cnJlbmN5IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaGFzIGEgY3VycmVuY3lcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0N1cnJlbmN5ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kgIT09IHVuZGVmaW5lZDtcbn07XG4iXX0=
|
|
340
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlByb3BlcnR5SGVscGVyLnRzIl0sIm5hbWVzIjpbImlzUHJvcGVydHkiLCJwcm9wZXJ0eSIsImhhc093blByb3BlcnR5IiwiX3R5cGUiLCJpc0NvbXB1dGVkIiwib1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJDb3JlIiwiQ29tcHV0ZWQiLCJ2YWx1ZU9mIiwiaXNJbW11dGFibGUiLCJJbW11dGFibGUiLCJpc0tleSIsImhhc0RhdGVUeXBlIiwiaW5kZXhPZiIsInR5cGUiLCJnZXRMYWJlbCIsIkNvbW1vbiIsIkxhYmVsIiwidG9TdHJpbmciLCJoYXNTZW1hbnRpY09iamVjdCIsIlNlbWFudGljT2JqZWN0IiwiaXNQYXRoRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJ1bmRlZmluZWQiLCJpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24iLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsImdldEFzc29jaWF0ZWRUaW1lem9uZVByb3BlcnR5IiwiVGltZXpvbmUiLCIkdGFyZ2V0IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSIsIk1lYXN1cmVzIiwiVW5pdCIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHlQYXRoIiwicGF0aCIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5IiwiSVNPQ3VycmVuY3kiLCJnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eVBhdGgiLCJnZXRBc3NvY2lhdGVkVGV4dFByb3BlcnR5UGF0aCIsIlRleHQiLCJnZXRUYXJnZXRWYWx1ZU9uRGF0YVBvaW50Iiwic1RhcmdldFZhbHVlIiwiVUkiLCJEYXRhRmllbGREZWZhdWx0IiwiVGFyZ2V0IiwiVGFyZ2V0VmFsdWUiLCJoYXNWYWx1ZUhlbHAiLCJWYWx1ZUxpc3QiLCJWYWx1ZUxpc3RSZWZlcmVuY2VzIiwiVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIiwiVmFsdWVMaXN0TWFwcGluZyIsImhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyIsImhhc1ZhbHVlTGlzdEZvclZhbGlkYXRpb24iLCJWYWx1ZUxpc3RGb3JWYWxpZGF0aW9uIiwiaGFzVGltZXpvbmUiLCJpc1VuaXQiLCJJc1VuaXQiLCJoYXNVbml0IiwiaXNDdXJyZW5jeSIsIklzQ3VycmVuY3kiLCJoYXNDdXJyZW5jeSIsImhhc1N0YXRpY1BlcmNlbnRVbml0Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxXQUFTQSxVQUFULENBQW9CQyxRQUFwQixFQUF5RDtBQUMvRCxXQUFPQSxRQUFRLElBQUtBLFFBQUQsQ0FBdUJDLGNBQXZCLENBQXNDLE9BQXRDLENBQVosSUFBK0RELFFBQUQsQ0FBdUJFLEtBQXZCLEtBQWlDLFVBQXRHO0FBQ0E7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTUMsVUFBVSxHQUFHLFVBQVVDLFNBQVYsRUFBd0M7QUFBQTs7QUFDakUsV0FBTyxDQUFDLDJCQUFDQSxTQUFTLENBQUNDLFdBQVgsNEVBQUMsc0JBQXVCQyxJQUF4Qiw2RUFBQyx1QkFBNkJDLFFBQTlCLG1EQUFDLHVCQUF1Q0MsT0FBdkMsRUFBRCxDQUFSO0FBQ0EsR0FGTTtBQUlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFNQyxXQUFXLEdBQUcsVUFBVUwsU0FBVixFQUF3QztBQUFBOztBQUNsRSxXQUFPLENBQUMsNEJBQUNBLFNBQVMsQ0FBQ0MsV0FBWCw2RUFBQyx1QkFBdUJDLElBQXhCLDZFQUFDLHVCQUE2QkksU0FBOUIsbURBQUMsdUJBQXdDRixPQUF4QyxFQUFELENBQVI7QUFDQSxHQUZNO0FBSVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUNPLE1BQU1HLEtBQUssR0FBRyxVQUFVUCxTQUFWLEVBQXdDO0FBQzVELFdBQU8sQ0FBQyxDQUFDQSxTQUFTLENBQUNPLEtBQW5CO0FBQ0EsR0FGTTtBQUlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFN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QUFDQTs7Ozs7QUFDTyxNQUFNbUQsV0FBVyxHQUFHLFVBQVV2RCxTQUFWLEVBQXdDO0FBQUE7O0FBQ2xFLFdBQU8sNEJBQUFBLFNBQVMsQ0FBQ0MsV0FBViwrR0FBdUJ5QixRQUF2QixvRkFBaUNLLFdBQWpDLE1BQWlEWixTQUF4RDtBQUNBLEdBRk07Ozs7QUFJQSxNQUFNcUMsb0JBQW9CLEdBQUcsVUFBVXhELFNBQVYsRUFBd0M7QUFBQTs7QUFDM0UsV0FBTyxDQUFBQSxTQUFTLFNBQVQsSUFBQUEsU0FBUyxXQUFULHVDQUFBQSxTQUFTLENBQUVDLFdBQVgsK0dBQXdCeUIsUUFBeEIsK0dBQWtDQyxJQUFsQyxvRkFBd0NiLFFBQXhDLFFBQXVELEdBQTlEO0FBQ0EsR0FGTSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuaW1wb3J0IHsgUGF0aEFubm90YXRpb25FeHByZXNzaW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5cbi8qKlxuICogSWRlbnRpZnkgaWYgdGhlIGdpdmVuIHByb3BlcnR5IHBhc3NlZCBpcyBhIFwiUHJvcGVydHlcIiAoaGFzIGEgX3R5cGUpLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IHByb3BlcnR5IEEgdGFyZ2V0IHByb3BlcnR5IHRvIGV2YWx1YXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVmFsaWRhdGUgdGhhdCBwcm9wZXJ0eSBpcyBhIFByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5KHByb3BlcnR5OiBhbnkpOiBwcm9wZXJ0eSBpcyBQcm9wZXJ0eSB7XG5cdHJldHVybiBwcm9wZXJ0eSAmJiAocHJvcGVydHkgYXMgUHJvcGVydHkpLmhhc093blByb3BlcnR5KFwiX3R5cGVcIikgJiYgKHByb3BlcnR5IGFzIFByb3BlcnR5KS5fdHlwZSA9PT0gXCJQcm9wZXJ0eVwiO1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyB0aGUgQ29yZS5Db21wdXRlZCBhbm5vdGF0aW9uIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgaXMgY29tcHV0ZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29tcHV0ZWQgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvcmU/LkNvbXB1dGVkPy52YWx1ZU9mKCk7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyB0aGUgQ29yZS5JbW11dGFibGUgYW5ub3RhdGlvbiBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQncyBpbW11dGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzSW1tdXRhYmxlID0gZnVuY3Rpb24gKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db3JlPy5JbW11dGFibGU/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSBrZXkgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0J3MgYSBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzS2V5ID0gZnVuY3Rpb24gKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmlzS2V5O1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgZGF0ZSB0aW1lIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5XG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaXMgb2YgdHlwZSBkYXRlIC8gZGF0ZXRpbWUgLyBkYXRldGltZW9mZnNldFxuICovXG5leHBvcnQgY29uc3QgaGFzRGF0ZVR5cGUgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gW1wiRWRtLkRhdGVcIiwgXCJFZG0uRGF0ZVRpbWVcIiwgXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIl0uaW5kZXhPZihvUHJvcGVydHkudHlwZSkgIT09IC0xO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgbGFiZWwgYW5ub3RhdGlvbi5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBsYWJlbCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGdldExhYmVsID0gZnVuY3Rpb24gKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBzdHJpbmcge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpIHx8IFwiXCI7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHNlbWFudGljIG9iamVjdCBkZWZpbmVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBpdCBoYXMgYSBzZW1hbnRpYyBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1NlbWFudGljT2JqZWN0ID0gZnVuY3Rpb24gKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlNlbWFudGljT2JqZWN0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGF0aEV4cHJlc3Npb24gPSBmdW5jdGlvbiA8VD4oZXhwcmVzc2lvbjogYW55KTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gISFleHByZXNzaW9uICYmIGV4cHJlc3Npb24udHlwZSAhPT0gdW5kZWZpbmVkICYmIGV4cHJlc3Npb24udHlwZSA9PT0gXCJQYXRoXCI7XG59O1xuZXhwb3J0IGNvbnN0IGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIDxUPihleHByZXNzaW9uOiBhbnkpOiBleHByZXNzaW9uIGlzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUPiB7XG5cdHJldHVybiAhIWV4cHJlc3Npb24gJiYgZXhwcmVzc2lvbi50eXBlICE9PSB1bmRlZmluZWQgJiYgZXhwcmVzc2lvbi50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiO1xufTtcbmV4cG9ydCBjb25zdCBpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIDxUPihleHByZXNzaW9uOiBhbnkpOiBleHByZXNzaW9uIGlzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUPiB7XG5cdHJldHVybiAhIWV4cHJlc3Npb24gJiYgZXhwcmVzc2lvbi50eXBlICE9PSB1bmRlZmluZWQgJiYgZXhwcmVzc2lvbi50eXBlID09PSBcIkFubm90YXRpb25QYXRoXCI7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgdGltZXpvbmUgcHJvcGVydHkgYXNzb2NpYXRlZCB0byB0aGUgcHJvcGVydHksIGlmIGFwcGxpY2FibGUuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtQcm9wZXJ0eSB8IHVuZGVmaW5lZH0gVGhlIHRpbWV6b25lIHByb3BlcnR5LCBpZiBpdCBleGlzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRUaW1lem9uZVByb3BlcnR5ID0gZnVuY3Rpb24gKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGltZXpvbmUpXG5cdFx0PyAob1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlRpbWV6b25lLiR0YXJnZXQgYXMgdW5rbm93biBhcyBQcm9wZXJ0eSlcblx0XHQ6IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSB1bml0IHByb3BlcnR5IGFzc29jaWF0ZWQgdG8gdGhlIHByb3BlcnR5LCBpZiBhcHBsaWNhYmxlLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7UHJvcGVydHkgfCB1bmRlZmluZWR9IFRoZSB1bml0IHByb3BlcnR5LCBpZiBpdCBleGlzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQpXG5cdFx0PyAob1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdC4kdGFyZ2V0IGFzIHVua25vd24gYXMgUHJvcGVydHkpXG5cdFx0OiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGggPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0KSA/IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQucGF0aCA6IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhc3NvY2lhdGVkIGN1cnJlbmN5IHByb3BlcnR5IGZvciB0aGF0IHByb3BlcnR5IGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge1Byb3BlcnR5IHwgdW5kZWZpbmVkfSBUaGUgdW5pdCBwcm9wZXJ0eSwgaWYgaXQgZXhpc3RzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSA9IGZ1bmN0aW9uIChvUHJvcGVydHk6IFByb3BlcnR5KTogUHJvcGVydHkgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kpXG5cdFx0PyAob1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KVxuXHRcdDogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCA9IGZ1bmN0aW9uIChvUHJvcGVydHk6IFByb3BlcnR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5KSA/IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5LnBhdGggOiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgQ29tbW9uLlRleHQgcHJvcGVydHkgcGF0aCBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IFRoZSBDb21tb24uVGV4dCBwcm9wZXJ0eSBwYXRoIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2VzIG5vdCBleGlzdFxuICovXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFRleHRQcm9wZXJ0eVBhdGggPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0KSA/IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0LnBhdGggOiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVGFyZ2V0VmFsdWUgZnJvbSB0aGUgRGF0YVBvaW50LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSB0aGUgdGFyZ2V0IHByb3BlcnR5IG9yIERhdGFQb2ludFxuICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gVGhlIFRhcmdldFZhbHVlXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFRhcmdldFZhbHVlT25EYXRhUG9pbnQgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRjb25zdCBzVGFyZ2V0VmFsdWUgPVxuXHRcdG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkRhdGFGaWVsZERlZmF1bHQ/LlRhcmdldD8uJHRhcmdldD8uVGFyZ2V0VmFsdWU/LnRvU3RyaW5nKCkgfHwgb1Byb3BlcnR5LlRhcmdldFZhbHVlPy50b1N0cmluZygpO1xuXHRyZXR1cm4gc1RhcmdldFZhbHVlID8gc1RhcmdldFZhbHVlIDogdW5kZWZpbmVkO1xufTtcbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCBhbm5vdGF0aW9uIGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHZhbHVlIGhlbHBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1ZhbHVlSGVscCA9IGZ1bmN0aW9uIChvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAoXG5cdFx0ISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0IHx8XG5cdFx0ISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0UmVmZXJlbmNlcyB8fFxuXHRcdCEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyB8fFxuXHRcdCEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdE1hcHBpbmdcblx0KTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCB3aXRoIGZpeGVkIHZhbHVlIGFubm90YXRpb24gZGVmaW5lZCBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQgaGFzIGEgdmFsdWUgaGVscFxuICovXG5leHBvcnQgY29uc3QgaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzID0gZnVuY3Rpb24gKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCBmb3IgdmFsaWRhdGlvbiBhbm5vdGF0aW9uIGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHZhbHVlIGhlbHBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1ZhbHVlTGlzdEZvclZhbGlkYXRpb24gPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdEZvclZhbGlkYXRpb24gIT09IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNUaW1lem9uZSA9IGZ1bmN0aW9uIChvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGltZXpvbmUgIT09IHVuZGVmaW5lZDtcbn07XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBhIHVuaXQgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBpcyBhIHVuaXRcbiAqL1xuZXhwb3J0IGNvbnN0IGlzVW5pdCA9IGZ1bmN0aW9uIChvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5Jc1VuaXQ/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHVuaXQgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBoYXMgYSB1bml0XG4gKi9cblxuZXhwb3J0IGNvbnN0IGhhc1VuaXQgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdCAhPT0gdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSBjdXJyZW5jeSBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSBwcm9wZXJ0eSB0byBjaGVja1xuICogQHJldHVybnMgYHRydWVgIGlmIGl0IGlzIGEgY3VycmVuY3lcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ3VycmVuY3kgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uSXNDdXJyZW5jeT8udmFsdWVPZigpO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgY3VycmVuY3kgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBoYXMgYSBjdXJyZW5jeVxuICovXG5leHBvcnQgY29uc3QgaGFzQ3VycmVuY3kgPSBmdW5jdGlvbiAob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kgIT09IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNTdGF0aWNQZXJjZW50VW5pdCA9IGZ1bmN0aW9uIChvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBvUHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdD8udG9TdHJpbmcoKSA9PT0gXCIlXCI7XG59O1xuIl19
|
|
@@ -17,7 +17,7 @@ export function isProperty(property: any): property is Property {
|
|
|
17
17
|
* @param {Property} oProperty The target property
|
|
18
18
|
* @returns {boolean} `true` if the property is computed
|
|
19
19
|
*/
|
|
20
|
-
export const isComputed = function(oProperty: Property): boolean {
|
|
20
|
+
export const isComputed = function (oProperty: Property): boolean {
|
|
21
21
|
return !!oProperty.annotations?.Core?.Computed?.valueOf();
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -27,7 +27,7 @@ export const isComputed = function(oProperty: Property): boolean {
|
|
|
27
27
|
* @param {Property} oProperty The target property
|
|
28
28
|
* @returns {boolean} `true` if it's immutable
|
|
29
29
|
*/
|
|
30
|
-
export const isImmutable = function(oProperty: Property): boolean {
|
|
30
|
+
export const isImmutable = function (oProperty: Property): boolean {
|
|
31
31
|
return !!oProperty.annotations?.Core?.Immutable?.valueOf();
|
|
32
32
|
};
|
|
33
33
|
|
|
@@ -37,7 +37,7 @@ export const isImmutable = function(oProperty: Property): boolean {
|
|
|
37
37
|
* @param {Property} oProperty The target property
|
|
38
38
|
* @returns {boolean} `true` if it's a key
|
|
39
39
|
*/
|
|
40
|
-
export const isKey = function(oProperty: Property): boolean {
|
|
40
|
+
export const isKey = function (oProperty: Property): boolean {
|
|
41
41
|
return !!oProperty.isKey;
|
|
42
42
|
};
|
|
43
43
|
|
|
@@ -47,7 +47,7 @@ export const isKey = function(oProperty: Property): boolean {
|
|
|
47
47
|
* @param oProperty
|
|
48
48
|
* @returns `true` if it is of type date / datetime / datetimeoffset
|
|
49
49
|
*/
|
|
50
|
-
export const hasDateType = function(oProperty: Property): boolean {
|
|
50
|
+
export const hasDateType = function (oProperty: Property): boolean {
|
|
51
51
|
return ["Edm.Date", "Edm.DateTime", "Edm.DateTimeOffset"].indexOf(oProperty.type) !== -1;
|
|
52
52
|
};
|
|
53
53
|
|
|
@@ -57,7 +57,7 @@ export const hasDateType = function(oProperty: Property): boolean {
|
|
|
57
57
|
* @param oProperty The target property
|
|
58
58
|
* @returns The label string
|
|
59
59
|
*/
|
|
60
|
-
export const getLabel = function(oProperty: Property): string {
|
|
60
|
+
export const getLabel = function (oProperty: Property): string {
|
|
61
61
|
return oProperty.annotations?.Common?.Label?.toString() || "";
|
|
62
62
|
};
|
|
63
63
|
|
|
@@ -67,30 +67,45 @@ export const getLabel = function(oProperty: Property): string {
|
|
|
67
67
|
* @param {Property} oProperty The target property
|
|
68
68
|
* @returns {boolean} `true` if it has a semantic object
|
|
69
69
|
*/
|
|
70
|
-
export const hasSemanticObject = function(oProperty: Property): boolean {
|
|
70
|
+
export const hasSemanticObject = function (oProperty: Property): boolean {
|
|
71
71
|
return !!oProperty.annotations?.Common?.SemanticObject;
|
|
72
72
|
};
|
|
73
73
|
|
|
74
|
-
export const isPathExpression = function<T>(expression: any): expression is PathAnnotationExpression<T> {
|
|
74
|
+
export const isPathExpression = function <T>(expression: any): expression is PathAnnotationExpression<T> {
|
|
75
75
|
return !!expression && expression.type !== undefined && expression.type === "Path";
|
|
76
76
|
};
|
|
77
|
-
export const
|
|
77
|
+
export const isPropertyPathExpression = function <T>(expression: any): expression is PathAnnotationExpression<T> {
|
|
78
|
+
return !!expression && expression.type !== undefined && expression.type === "PropertyPath";
|
|
79
|
+
};
|
|
80
|
+
export const isAnnotationPathExpression = function <T>(expression: any): expression is PathAnnotationExpression<T> {
|
|
78
81
|
return !!expression && expression.type !== undefined && expression.type === "AnnotationPath";
|
|
79
82
|
};
|
|
80
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Retrieves the timezone property associated to the property, if applicable.
|
|
86
|
+
*
|
|
87
|
+
* @param {Property} oProperty The target property
|
|
88
|
+
* @returns {Property | undefined} The timezone property, if it exists
|
|
89
|
+
*/
|
|
90
|
+
export const getAssociatedTimezoneProperty = function (oProperty: Property): Property | undefined {
|
|
91
|
+
return isPathExpression(oProperty?.annotations?.Common?.Timezone)
|
|
92
|
+
? (oProperty.annotations?.Common?.Timezone.$target as unknown as Property)
|
|
93
|
+
: undefined;
|
|
94
|
+
};
|
|
95
|
+
|
|
81
96
|
/**
|
|
82
97
|
* Retrieves the unit property associated to the property, if applicable.
|
|
83
98
|
*
|
|
84
99
|
* @param {Property} oProperty The target property
|
|
85
100
|
* @returns {Property | undefined} The unit property, if it exists
|
|
86
101
|
*/
|
|
87
|
-
export const getAssociatedUnitProperty = function(oProperty: Property): Property | undefined {
|
|
102
|
+
export const getAssociatedUnitProperty = function (oProperty: Property): Property | undefined {
|
|
88
103
|
return isPathExpression(oProperty?.annotations?.Measures?.Unit)
|
|
89
|
-
? (
|
|
104
|
+
? (oProperty.annotations?.Measures?.Unit.$target as unknown as Property)
|
|
90
105
|
: undefined;
|
|
91
106
|
};
|
|
92
107
|
|
|
93
|
-
export const getAssociatedUnitPropertyPath = function(oProperty: Property): string | undefined {
|
|
108
|
+
export const getAssociatedUnitPropertyPath = function (oProperty: Property): string | undefined {
|
|
94
109
|
return isPathExpression(oProperty?.annotations?.Measures?.Unit) ? oProperty.annotations?.Measures?.Unit.path : undefined;
|
|
95
110
|
};
|
|
96
111
|
|
|
@@ -100,13 +115,13 @@ export const getAssociatedUnitPropertyPath = function(oProperty: Property): stri
|
|
|
100
115
|
* @param {Property} oProperty The target property
|
|
101
116
|
* @returns {Property | undefined} The unit property, if it exists
|
|
102
117
|
*/
|
|
103
|
-
export const getAssociatedCurrencyProperty = function(oProperty: Property): Property | undefined {
|
|
118
|
+
export const getAssociatedCurrencyProperty = function (oProperty: Property): Property | undefined {
|
|
104
119
|
return isPathExpression(oProperty?.annotations?.Measures?.ISOCurrency)
|
|
105
|
-
? (
|
|
120
|
+
? (oProperty.annotations?.Measures?.ISOCurrency.$target as unknown as Property)
|
|
106
121
|
: undefined;
|
|
107
122
|
};
|
|
108
123
|
|
|
109
|
-
export const getAssociatedCurrencyPropertyPath = function(oProperty: Property): string | undefined {
|
|
124
|
+
export const getAssociatedCurrencyPropertyPath = function (oProperty: Property): string | undefined {
|
|
110
125
|
return isPathExpression(oProperty?.annotations?.Measures?.ISOCurrency) ? oProperty.annotations?.Measures?.ISOCurrency.path : undefined;
|
|
111
126
|
};
|
|
112
127
|
|
|
@@ -114,20 +129,20 @@ export const getAssociatedCurrencyPropertyPath = function(oProperty: Property):
|
|
|
114
129
|
* Retrieves the Common.Text property path if it exists.
|
|
115
130
|
*
|
|
116
131
|
* @param {Property} oProperty The target property
|
|
117
|
-
* @returns {string | undefined} The Common.Text property path or undefined if it does not
|
|
132
|
+
* @returns {string | undefined} The Common.Text property path or undefined if it does not exist
|
|
118
133
|
*/
|
|
119
|
-
export const getAssociatedTextPropertyPath = function(oProperty: Property): string | undefined {
|
|
134
|
+
export const getAssociatedTextPropertyPath = function (oProperty: Property): string | undefined {
|
|
120
135
|
return isPathExpression(oProperty.annotations?.Common?.Text) ? oProperty.annotations?.Common?.Text.path : undefined;
|
|
121
136
|
};
|
|
122
137
|
|
|
123
138
|
/**
|
|
124
|
-
* Retrieves the TargetValue from
|
|
139
|
+
* Retrieves the TargetValue from the DataPoint.
|
|
125
140
|
*
|
|
126
|
-
* @param {Property} oProperty the target property
|
|
127
|
-
* @returns {string | undefined}
|
|
141
|
+
* @param {Property} oProperty the target property or DataPoint
|
|
142
|
+
* @returns {string | undefined} The TargetValue
|
|
128
143
|
*/
|
|
129
144
|
|
|
130
|
-
export const getTargetValueOnDataPoint = function(oProperty: any): string | undefined {
|
|
145
|
+
export const getTargetValueOnDataPoint = function (oProperty: any): string | undefined {
|
|
131
146
|
const sTargetValue =
|
|
132
147
|
oProperty.annotations?.UI?.DataFieldDefault?.Target?.$target?.TargetValue?.toString() || oProperty.TargetValue?.toString();
|
|
133
148
|
return sTargetValue ? sTargetValue : undefined;
|
|
@@ -138,7 +153,7 @@ export const getTargetValueOnDataPoint = function(oProperty: any): string | unde
|
|
|
138
153
|
* @param {Property} oProperty The target property
|
|
139
154
|
* @returns {boolean} `true` if it has a value help
|
|
140
155
|
*/
|
|
141
|
-
export const hasValueHelp = function(oProperty: Property): boolean {
|
|
156
|
+
export const hasValueHelp = function (oProperty: Property): boolean {
|
|
142
157
|
return (
|
|
143
158
|
!!oProperty.annotations?.Common?.ValueList ||
|
|
144
159
|
!!oProperty.annotations?.Common?.ValueListReferences ||
|
|
@@ -153,7 +168,7 @@ export const hasValueHelp = function(oProperty: Property): boolean {
|
|
|
153
168
|
* @param {Property} oProperty The target property
|
|
154
169
|
* @returns {boolean} `true` if it has a value help
|
|
155
170
|
*/
|
|
156
|
-
export const hasValueHelpWithFixedValues = function(oProperty: Property): boolean {
|
|
171
|
+
export const hasValueHelpWithFixedValues = function (oProperty: Property): boolean {
|
|
157
172
|
return !!oProperty?.annotations?.Common?.ValueListWithFixedValues?.valueOf();
|
|
158
173
|
};
|
|
159
174
|
|
|
@@ -163,17 +178,20 @@ export const hasValueHelpWithFixedValues = function(oProperty: Property): boolea
|
|
|
163
178
|
* @param {Property} oProperty The target property
|
|
164
179
|
* @returns {boolean} `true` if it has a value help
|
|
165
180
|
*/
|
|
166
|
-
export const hasValueListForValidation = function(oProperty: Property): boolean {
|
|
181
|
+
export const hasValueListForValidation = function (oProperty: Property): boolean {
|
|
167
182
|
return oProperty.annotations?.Common?.ValueListForValidation !== undefined;
|
|
168
183
|
};
|
|
169
184
|
|
|
185
|
+
export const hasTimezone = function (oProperty: Property): boolean {
|
|
186
|
+
return oProperty.annotations?.Common?.Timezone !== undefined;
|
|
187
|
+
};
|
|
170
188
|
/**
|
|
171
189
|
* Checks whether the property is a unit property.
|
|
172
190
|
*
|
|
173
191
|
* @param oProperty The property to check
|
|
174
192
|
* @returns `true` if it is a unit
|
|
175
193
|
*/
|
|
176
|
-
export const isUnit = function(oProperty: Property): boolean {
|
|
194
|
+
export const isUnit = function (oProperty: Property): boolean {
|
|
177
195
|
return !!oProperty.annotations?.Common?.IsUnit?.valueOf();
|
|
178
196
|
};
|
|
179
197
|
|
|
@@ -184,7 +202,7 @@ export const isUnit = function(oProperty: Property): boolean {
|
|
|
184
202
|
* @returns `true` if it has a unit
|
|
185
203
|
*/
|
|
186
204
|
|
|
187
|
-
export const hasUnit = function(oProperty: Property): boolean {
|
|
205
|
+
export const hasUnit = function (oProperty: Property): boolean {
|
|
188
206
|
return oProperty.annotations?.Measures?.Unit !== undefined;
|
|
189
207
|
};
|
|
190
208
|
|
|
@@ -194,7 +212,7 @@ export const hasUnit = function(oProperty: Property): boolean {
|
|
|
194
212
|
* @param oProperty The property to check
|
|
195
213
|
* @returns `true` if it is a currency
|
|
196
214
|
*/
|
|
197
|
-
export const isCurrency = function(oProperty: Property): boolean {
|
|
215
|
+
export const isCurrency = function (oProperty: Property): boolean {
|
|
198
216
|
return !!oProperty.annotations?.Common?.IsCurrency?.valueOf();
|
|
199
217
|
};
|
|
200
218
|
|
|
@@ -204,6 +222,10 @@ export const isCurrency = function(oProperty: Property): boolean {
|
|
|
204
222
|
* @param oProperty The property to check
|
|
205
223
|
* @returns `true` if it has a currency
|
|
206
224
|
*/
|
|
207
|
-
export const hasCurrency = function(oProperty: Property): boolean {
|
|
225
|
+
export const hasCurrency = function (oProperty: Property): boolean {
|
|
208
226
|
return oProperty.annotations?.Measures?.ISOCurrency !== undefined;
|
|
209
227
|
};
|
|
228
|
+
|
|
229
|
+
export const hasStaticPercentUnit = function (oProperty: Property): boolean {
|
|
230
|
+
return oProperty?.annotations?.Measures?.Unit?.toString() === "%";
|
|
231
|
+
};
|