@sapui5/sap.fe.core 1.97.0 → 1.100.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 +7 -4
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +309 -405
- package/src/sap/fe/core/AnnotationHelper.ts +315 -0
- package/src/sap/fe/core/AppComponent.js +389 -397
- package/src/sap/fe/core/AppComponent.ts +403 -0
- package/src/sap/fe/core/AppStateHandler.js +198 -181
- package/src/sap/fe/core/AppStateHandler.ts +171 -0
- package/src/sap/fe/core/BaseController.js +83 -58
- package/src/sap/fe/core/BaseController.ts +68 -0
- package/src/sap/fe/core/BusyLocker.js +105 -121
- package/src/sap/fe/core/BusyLocker.ts +98 -0
- package/src/sap/fe/core/CommonUtils.js +2164 -2379
- package/src/sap/fe/core/CommonUtils.ts +2177 -0
- package/src/sap/fe/core/ExtensionAPI.js +279 -266
- package/src/sap/fe/core/ExtensionAPI.ts +250 -0
- package/src/sap/fe/core/PageController.js +218 -125
- package/src/sap/fe/core/PageController.ts +129 -0
- package/src/sap/fe/core/RouterProxy.js +924 -807
- package/src/sap/fe/core/RouterProxy.ts +840 -0
- package/src/sap/fe/core/Synchronization.js +41 -35
- package/src/sap/fe/core/Synchronization.ts +29 -0
- package/src/sap/fe/core/TemplateComponent.js +173 -155
- package/src/sap/fe/core/TemplateComponent.ts +173 -0
- package/src/sap/fe/core/TemplateModel.js +79 -54
- package/src/sap/fe/core/TemplateModel.ts +63 -0
- package/src/sap/fe/core/TransactionHelper.js +1560 -1579
- package/src/sap/fe/core/TransactionHelper.ts +1717 -0
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
- package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
- package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
- package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
- package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/src/sap/fe/core/actions/draft.js +521 -581
- package/src/sap/fe/core/actions/draft.ts +566 -0
- package/src/sap/fe/core/actions/messageHandling.js +564 -511
- package/src/sap/fe/core/actions/messageHandling.ts +552 -0
- package/src/sap/fe/core/actions/nonDraft.js +17 -19
- package/src/sap/fe/core/actions/nonDraft.ts +12 -0
- package/src/sap/fe/core/actions/operations.js +1093 -1211
- package/src/sap/fe/core/actions/operations.ts +1192 -0
- package/src/sap/fe/core/actions/sticky.js +114 -104
- package/src/sap/fe/core/actions/sticky.ts +119 -0
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +70 -66
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1594 -1701
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +80 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +719 -505
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +797 -813
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1005 -973
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +530 -476
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +137 -46
- package/src/sap/fe/core/controllerextensions/MassEdit.js +144 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +234 -232
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +302 -337
- package/src/sap/fe/core/controllerextensions/PageReady.ts +23 -17
- package/src/sap/fe/core/controllerextensions/Paginator.js +189 -148
- package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +158 -146
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +145 -106
- package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +8 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/src/sap/fe/core/controllerextensions/Share.js +220 -244
- package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +593 -634
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +29 -27
- package/src/sap/fe/core/controllerextensions/ViewState.js +789 -806
- package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -3
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- package/src/sap/fe/core/controls/CommandExecution.js +68 -66
- package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +91 -75
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +131 -125
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +105 -110
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +122 -140
- package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
- package/src/sap/fe/core/controls/FilterBar.js +163 -159
- package/src/sap/fe/core/controls/FilterBar.ts +143 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +46 -44
- package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +38 -42
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +2 -1
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +127 -116
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -255
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +151 -141
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +336 -322
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +79 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
- package/src/sap/fe/core/converters/ConverterContext.js +348 -367
- package/src/sap/fe/core/converters/ConverterContext.ts +33 -19
- package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +16 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +354 -354
- package/src/sap/fe/core/converters/ManifestWrapper.ts +34 -6
- package/src/sap/fe/core/converters/MetaModelConverter.js +72 -9
- package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -16
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +4 -3
- package/src/sap/fe/core/converters/annotations/DataField.js +28 -14
- package/src/sap/fe/core/converters/annotations/DataField.ts +38 -14
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +33 -21
- package/src/sap/fe/core/converters/controls/Common/Action.js +11 -2
- package/src/sap/fe/core/converters/controls/Common/Action.ts +8 -2
- package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.js +21 -11
- package/src/sap/fe/core/converters/controls/Common/Form.ts +28 -6
- package/src/sap/fe/core/converters/controls/Common/KPI.js +69 -4
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +75 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +507 -408
- package/src/sap/fe/core/converters/controls/Common/Table.ts +618 -500
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +592 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +718 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +465 -59
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +462 -72
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +24 -9
- package/src/sap/fe/core/converters/helpers/Aggregation.js +118 -121
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -5
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -0
- package/src/sap/fe/core/converters/helpers/Key.js +42 -57
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +28 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +23 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +20 -7
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -14
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +93 -90
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
- package/src/sap/fe/core/formatters/TableFormatter.js +91 -29
- package/src/sap/fe/core/formatters/TableFormatter.ts +94 -28
- package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
- package/src/sap/fe/core/formatters/ValueFormatter.ts +30 -7
- package/src/sap/fe/core/fpm/Component.js +51 -54
- package/src/sap/fe/core/fpm/Component.ts +48 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +373 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +417 -0
- package/src/sap/fe/core/helpers/BindingExpression.js +489 -442
- package/src/sap/fe/core/helpers/BindingExpression.ts +486 -469
- package/src/sap/fe/core/helpers/ClassSupport.js +212 -76
- package/src/sap/fe/core/helpers/ClassSupport.ts +198 -71
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +64 -59
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +52 -0
- package/src/sap/fe/core/helpers/EditState.js +81 -84
- package/src/sap/fe/core/helpers/EditState.ts +81 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
- package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +4 -5
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +10 -10
- package/src/sap/fe/core/helpers/MassEditHelper.js +604 -0
- package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +253 -225
- package/src/sap/fe/core/helpers/ModelHelper.ts +250 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
- package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +336 -313
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +334 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
- package/src/sap/fe/core/library.js +427 -425
- package/src/sap/fe/core/library.support.js +23 -27
- package/src/sap/fe/core/library.support.ts +23 -0
- package/src/sap/fe/core/library.ts +420 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +64 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +69 -0
- package/src/sap/fe/core/messagebundle.properties +78 -13
- package/src/sap/fe/core/messagebundle_ar.properties +58 -7
- package/src/sap/fe/core/messagebundle_bg.properties +58 -7
- package/src/sap/fe/core/messagebundle_ca.properties +58 -7
- package/src/sap/fe/core/messagebundle_cs.properties +59 -8
- package/src/sap/fe/core/messagebundle_cy.properties +58 -7
- package/src/sap/fe/core/messagebundle_da.properties +58 -7
- package/src/sap/fe/core/messagebundle_de.properties +58 -7
- package/src/sap/fe/core/messagebundle_el.properties +58 -7
- package/src/sap/fe/core/messagebundle_en.properties +57 -6
- package/src/sap/fe/core/messagebundle_en_GB.properties +57 -6
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +61 -6
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +58 -7
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +58 -7
- package/src/sap/fe/core/messagebundle_es.properties +58 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +58 -7
- package/src/sap/fe/core/messagebundle_et.properties +58 -7
- package/src/sap/fe/core/messagebundle_fi.properties +60 -9
- package/src/sap/fe/core/messagebundle_fr.properties +64 -13
- package/src/sap/fe/core/messagebundle_fr_CA.properties +59 -8
- package/src/sap/fe/core/messagebundle_hi.properties +58 -7
- package/src/sap/fe/core/messagebundle_hr.properties +58 -7
- package/src/sap/fe/core/messagebundle_hu.properties +59 -8
- package/src/sap/fe/core/messagebundle_id.properties +61 -10
- package/src/sap/fe/core/messagebundle_it.properties +58 -7
- package/src/sap/fe/core/messagebundle_iw.properties +58 -7
- package/src/sap/fe/core/messagebundle_ja.properties +58 -7
- package/src/sap/fe/core/messagebundle_kk.properties +58 -7
- package/src/sap/fe/core/messagebundle_ko.properties +58 -7
- package/src/sap/fe/core/messagebundle_lt.properties +58 -7
- package/src/sap/fe/core/messagebundle_lv.properties +59 -8
- package/src/sap/fe/core/messagebundle_ms.properties +58 -7
- package/src/sap/fe/core/messagebundle_nl.properties +58 -7
- package/src/sap/fe/core/messagebundle_no.properties +58 -7
- package/src/sap/fe/core/messagebundle_pl.properties +58 -7
- package/src/sap/fe/core/messagebundle_pt.properties +59 -8
- package/src/sap/fe/core/messagebundle_pt_PT.properties +58 -7
- package/src/sap/fe/core/messagebundle_ro.properties +58 -7
- package/src/sap/fe/core/messagebundle_ru.properties +58 -7
- package/src/sap/fe/core/messagebundle_sh.properties +58 -7
- package/src/sap/fe/core/messagebundle_sk.properties +58 -7
- package/src/sap/fe/core/messagebundle_sl.properties +58 -7
- package/src/sap/fe/core/messagebundle_sv.properties +59 -8
- package/src/sap/fe/core/messagebundle_th.properties +58 -7
- package/src/sap/fe/core/messagebundle_tr.properties +60 -9
- package/src/sap/fe/core/messagebundle_uk.properties +58 -7
- package/src/sap/fe/core/messagebundle_vi.properties +58 -7
- package/src/sap/fe/core/messagebundle_zh_CN.properties +58 -7
- package/src/sap/fe/core/messagebundle_zh_TW.properties +58 -7
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +231 -202
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +67 -92
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +10 -6
- package/src/sap/fe/core/services/NavigationServiceFactory.js +351 -300
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +313 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +114 -81
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +83 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +927 -1152
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +649 -707
- package/src/sap/fe/core/services/ShellServicesFactory.ts +52 -15
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +569 -637
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +78 -102
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +429 -478
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +460 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
- package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +36 -48
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.js +97 -127
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +112 -135
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
- package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
- package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
- package/src/sap/fe/core/templating/FilterHelper.js +140 -78
- package/src/sap/fe/core/templating/FilterHelper.ts +149 -78
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
- package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters.js +76 -135
- package/src/sap/fe/core/templating/UIFormatters.ts +76 -99
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +4 -6
- package/ui5.yaml +0 -3
- package/src/sap/fe/core/controls/filterbar.d.js +0 -8
- package/src/sap/fe/core/controls/filterbar.d.ts +0 -0
|
@@ -75,6 +75,7 @@ type BaseSubSection = {
|
|
|
75
75
|
annotationPath: string;
|
|
76
76
|
type: SubSectionType;
|
|
77
77
|
visible: BindingExpression<boolean>;
|
|
78
|
+
isVisibilityDynamic?: boolean | "";
|
|
78
79
|
flexSettings?: FlexSettings;
|
|
79
80
|
stashed?: boolean;
|
|
80
81
|
level: number;
|
|
@@ -90,9 +91,10 @@ type DataVisualizationSubSection = BaseSubSection & {
|
|
|
90
91
|
type: SubSectionType.DataVisualization;
|
|
91
92
|
presentation: DataVisualizationDefinition;
|
|
92
93
|
showTitle: boolean;
|
|
94
|
+
titleVisible?: string | boolean;
|
|
93
95
|
};
|
|
94
96
|
|
|
95
|
-
type ContactSubSection = UnsupportedSubSection
|
|
97
|
+
type ContactSubSection = UnsupportedSubSection;
|
|
96
98
|
|
|
97
99
|
type XMLFragmentSubSection = Omit<BaseSubSection, "annotationPath"> & {
|
|
98
100
|
type: SubSectionType.XMLFragment;
|
|
@@ -203,7 +205,7 @@ export function createCustomHeaderFacetSubSections(converterContext: ConverterCo
|
|
|
203
205
|
converterContext.getManifestWrapper().getHeaderFacets()
|
|
204
206
|
);
|
|
205
207
|
const aCustomHeaderFacets: CustomObjectPageHeaderFacet[] = [];
|
|
206
|
-
Object.keys(customHeaderFacets).
|
|
208
|
+
Object.keys(customHeaderFacets).forEach(function(key) {
|
|
207
209
|
aCustomHeaderFacets.push(customHeaderFacets[key]);
|
|
208
210
|
return aCustomHeaderFacets;
|
|
209
211
|
});
|
|
@@ -324,13 +326,21 @@ export function createSubSection(
|
|
|
324
326
|
isHeaderSection?: boolean
|
|
325
327
|
): ObjectPageSubSection {
|
|
326
328
|
const subSectionID = SubSectionID({ Facet: facetDefinition });
|
|
329
|
+
const oHiddenAnnotation: any = facetDefinition.annotations?.UI?.Hidden;
|
|
330
|
+
const isVisible = compileBinding(not(equal(true, annotationExpression(oHiddenAnnotation))));
|
|
331
|
+
const isDynamicExpression =
|
|
332
|
+
isVisible && typeof isVisible === "string" && isVisible.indexOf("{=") === 0 && oHiddenAnnotation?.type !== "Path";
|
|
333
|
+
const isVisibleDynamicExpression =
|
|
334
|
+
isVisible && isDynamicExpression ? isVisible.substring(isVisible.indexOf("{=") + 2, isVisible.lastIndexOf("}")) : false;
|
|
335
|
+
const title = compileBinding(annotationExpression(facetDefinition.Label));
|
|
327
336
|
const subSection: BaseSubSection = {
|
|
328
337
|
id: subSectionID,
|
|
329
338
|
key: getSubSectionKey(facetDefinition, subSectionID),
|
|
330
|
-
title:
|
|
339
|
+
title: title,
|
|
331
340
|
type: SubSectionType.Unknown,
|
|
332
341
|
annotationPath: converterContext.getEntitySetBasedAnnotationPath(facetDefinition.fullyQualifiedName),
|
|
333
|
-
visible:
|
|
342
|
+
visible: isVisible,
|
|
343
|
+
isVisibilityDynamic: isDynamicExpression,
|
|
334
344
|
level: level,
|
|
335
345
|
sideContent: undefined
|
|
336
346
|
};
|
|
@@ -379,7 +389,7 @@ export function createSubSection(
|
|
|
379
389
|
formCollectionSubSection: FormSubSection = {
|
|
380
390
|
...subSection,
|
|
381
391
|
type: SubSectionType.Form,
|
|
382
|
-
formDefinition: createFormDefinition(facetDefinition, converterContext, actions),
|
|
392
|
+
formDefinition: createFormDefinition(facetDefinition, isVisible, converterContext, actions),
|
|
383
393
|
level: level,
|
|
384
394
|
actions: actions.filter(action => action.facetName === undefined)
|
|
385
395
|
};
|
|
@@ -401,14 +411,19 @@ export function createSubSection(
|
|
|
401
411
|
undefined,
|
|
402
412
|
isHeaderSection
|
|
403
413
|
);
|
|
404
|
-
|
|
405
|
-
|
|
414
|
+
const controlTitle =
|
|
415
|
+
(presentation.visualizations[0] as any)?.annotation?.title || (presentation.visualizations[0] as any)?.title;
|
|
416
|
+
const showTitle = isSubsectionTitleShown(hasSingleContent, subSection.title, controlTitle);
|
|
417
|
+
const titleVisibleExpression = isVisible && title !== "undefined" && (title ? isVisible : false);
|
|
406
418
|
const dataVisualizationSubSection: DataVisualizationSubSection = {
|
|
407
419
|
...subSection,
|
|
408
420
|
type: SubSectionType.DataVisualization,
|
|
409
421
|
level: level,
|
|
410
422
|
presentation: presentation,
|
|
411
|
-
showTitle:
|
|
423
|
+
showTitle: showTitle,
|
|
424
|
+
titleVisible: isDynamicExpression
|
|
425
|
+
? `{= (${isVisibleDynamicExpression}) && ('${title}' !=='undefined') && (${showTitle} ? true : false) }`
|
|
426
|
+
: titleVisibleExpression
|
|
412
427
|
};
|
|
413
428
|
return dataVisualizationSubSection;
|
|
414
429
|
|
|
@@ -423,7 +438,7 @@ export function createSubSection(
|
|
|
423
438
|
...subSection,
|
|
424
439
|
type: SubSectionType.Form,
|
|
425
440
|
level: level,
|
|
426
|
-
formDefinition: createFormDefinition(facetDefinition, converterContext, actions),
|
|
441
|
+
formDefinition: createFormDefinition(facetDefinition, isVisible, converterContext, actions),
|
|
427
442
|
actions: actions.filter(action => action.facetName === undefined)
|
|
428
443
|
};
|
|
429
444
|
return formElementSubSection;
|
|
@@ -7,12 +7,6 @@ sap.ui.define([], function () {
|
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
|
|
10
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
|
-
|
|
12
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
13
|
-
|
|
14
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
15
|
-
|
|
16
10
|
/**
|
|
17
11
|
* helper class for Aggregation annotations.
|
|
18
12
|
*/
|
|
@@ -26,8 +20,6 @@ sap.ui.define([], function () {
|
|
|
26
20
|
function AggregationHelper(entityType, converterContext) {
|
|
27
21
|
var _this$_oAggregationAn, _this$_oAggregationAn4, _this$_oAggregationAn7, _this$oTargetAggregat;
|
|
28
22
|
|
|
29
|
-
_classCallCheck(this, AggregationHelper);
|
|
30
|
-
|
|
31
23
|
this._entityType = entityType;
|
|
32
24
|
this._converterContext = converterContext;
|
|
33
25
|
this._oAggregationAnnotationTarget = this._determineAggregationAnnotationTarget();
|
|
@@ -53,135 +45,140 @@ sap.ui.define([], function () {
|
|
|
53
45
|
|
|
54
46
|
this._aGroupableProperties = (_this$oTargetAggregat2 = this.oTargetAggregationAnnotations) === null || _this$oTargetAggregat2 === void 0 ? void 0 : (_this$oTargetAggregat3 = _this$oTargetAggregat2.ApplySupported) === null || _this$oTargetAggregat3 === void 0 ? void 0 : _this$oTargetAggregat3.GroupableProperties;
|
|
55
47
|
this._aAggregatableProperties = (_this$oTargetAggregat4 = this.oTargetAggregationAnnotations) === null || _this$oTargetAggregat4 === void 0 ? void 0 : (_this$oTargetAggregat5 = _this$oTargetAggregat4.ApplySupported) === null || _this$oTargetAggregat5 === void 0 ? void 0 : _this$oTargetAggregat5.AggregatableProperties;
|
|
48
|
+
this.oContainerAggregationAnnotation = converterContext.getEntityContainer().annotations.Aggregation;
|
|
56
49
|
}
|
|
57
50
|
}
|
|
58
51
|
/**
|
|
59
|
-
*
|
|
52
|
+
* Determines the most appropriate target for the aggregation annotations.
|
|
60
53
|
*
|
|
61
|
-
* @returns EntityType
|
|
54
|
+
* @returns EntityType, EntitySet or NavigationProperty where aggregation annotations should be read from.
|
|
62
55
|
*/
|
|
63
56
|
|
|
64
57
|
|
|
65
58
|
_exports.AggregationHelper = AggregationHelper;
|
|
59
|
+
var _proto = AggregationHelper.prototype;
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
value: function _determineAggregationAnnotationTarget() {
|
|
70
|
-
var _this$_converterConte, _this$_converterConte2, _this$_converterConte3, _this$_converterConte4, _this$_converterConte5;
|
|
71
|
-
|
|
72
|
-
var bIsParameterized = (_this$_converterConte = this._converterContext.getDataModelObjectPath()) !== null && _this$_converterConte !== void 0 && (_this$_converterConte2 = _this$_converterConte.targetEntitySet) !== null && _this$_converterConte2 !== void 0 && (_this$_converterConte3 = _this$_converterConte2.entityType) !== null && _this$_converterConte3 !== void 0 && (_this$_converterConte4 = _this$_converterConte3.annotations) !== null && _this$_converterConte4 !== void 0 && (_this$_converterConte5 = _this$_converterConte4.Common) !== null && _this$_converterConte5 !== void 0 && _this$_converterConte5.ResultContext ? true : false;
|
|
73
|
-
var oAggregationAnnotationSource; // find ApplySupported
|
|
74
|
-
|
|
75
|
-
if (bIsParameterized) {
|
|
76
|
-
var _oNavigationPropertyO, _oNavigationPropertyO2, _oEntityTypeObject$an, _oEntityTypeObject$an2;
|
|
77
|
-
|
|
78
|
-
// if this is a parameterized view then applysupported can be found at either the navProp pointing to the result set or entityType.
|
|
79
|
-
// If applySupported is present at both the navProp and the entityType then navProp is more specific so take annotations from there
|
|
80
|
-
// targetObject in the converter context for a parameterized view is the navigation property pointing to th result set
|
|
81
|
-
var oDataModelObjectPath = this._converterContext.getDataModelObjectPath();
|
|
82
|
-
|
|
83
|
-
var oNavigationPropertyObject = oDataModelObjectPath === null || oDataModelObjectPath === void 0 ? void 0 : oDataModelObjectPath.targetObject;
|
|
84
|
-
var oEntityTypeObject = oDataModelObjectPath === null || oDataModelObjectPath === void 0 ? void 0 : oDataModelObjectPath.targetEntityType;
|
|
85
|
-
|
|
86
|
-
if (oNavigationPropertyObject !== null && oNavigationPropertyObject !== void 0 && (_oNavigationPropertyO = oNavigationPropertyObject.annotations) !== null && _oNavigationPropertyO !== void 0 && (_oNavigationPropertyO2 = _oNavigationPropertyO.Aggregation) !== null && _oNavigationPropertyO2 !== void 0 && _oNavigationPropertyO2.ApplySupported) {
|
|
87
|
-
oAggregationAnnotationSource = oNavigationPropertyObject;
|
|
88
|
-
} else if (oEntityTypeObject !== null && oEntityTypeObject !== void 0 && (_oEntityTypeObject$an = oEntityTypeObject.annotations) !== null && _oEntityTypeObject$an !== void 0 && (_oEntityTypeObject$an2 = _oEntityTypeObject$an.Aggregation) !== null && _oEntityTypeObject$an2 !== void 0 && _oEntityTypeObject$an2.ApplySupported) {
|
|
89
|
-
oAggregationAnnotationSource = oEntityTypeObject;
|
|
90
|
-
}
|
|
91
|
-
} else {
|
|
92
|
-
// For the time being, we ignore annotations at the container level, until the vocabulary is stabilized
|
|
93
|
-
oAggregationAnnotationSource = this._converterContext.getEntitySet();
|
|
94
|
-
}
|
|
61
|
+
_proto._determineAggregationAnnotationTarget = function _determineAggregationAnnotationTarget() {
|
|
62
|
+
var _this$_converterConte, _this$_converterConte2, _this$_converterConte3, _this$_converterConte4, _this$_converterConte5;
|
|
95
63
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
*/
|
|
115
|
-
|
|
116
|
-
}, {
|
|
117
|
-
key: "isPropertyGroupable",
|
|
118
|
-
value: function isPropertyGroupable(property) {
|
|
119
|
-
if (!this._bApplySupported) {
|
|
120
|
-
return undefined;
|
|
121
|
-
} else if (!this._aGroupableProperties || this._aGroupableProperties.length === 0) {
|
|
122
|
-
// No groupableProperties --> all properties are groupable
|
|
123
|
-
return true;
|
|
124
|
-
} else {
|
|
125
|
-
return this._aGroupableProperties.findIndex(function (path) {
|
|
126
|
-
return path.$target.fullyQualifiedName === property.fullyQualifiedName;
|
|
127
|
-
}) >= 0;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Checks if a property is aggregatable.
|
|
132
|
-
*
|
|
133
|
-
* @param property The property to check
|
|
134
|
-
* @returns `undefined` if the entity doesn't support analytical queries, true or false otherwise
|
|
135
|
-
*/
|
|
136
|
-
|
|
137
|
-
}, {
|
|
138
|
-
key: "isPropertyAggregatable",
|
|
139
|
-
value: function isPropertyAggregatable(property) {
|
|
140
|
-
if (!this._bApplySupported) {
|
|
141
|
-
return undefined;
|
|
142
|
-
} else {
|
|
143
|
-
// Get the custom aggregates
|
|
144
|
-
var aCustomAggregateAnnotations = this._converterContext.getAnnotationsByTerm("Aggregation", "Org.OData.Aggregation.V1.CustomAggregate", [this._oAggregationAnnotationTarget]); // Check if a custom aggregate has a qualifier that corresponds to the property name
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return aCustomAggregateAnnotations.some(function (annotation) {
|
|
148
|
-
return property.name === annotation.qualifier;
|
|
149
|
-
});
|
|
64
|
+
var bIsParameterized = (_this$_converterConte = this._converterContext.getDataModelObjectPath()) !== null && _this$_converterConte !== void 0 && (_this$_converterConte2 = _this$_converterConte.targetEntitySet) !== null && _this$_converterConte2 !== void 0 && (_this$_converterConte3 = _this$_converterConte2.entityType) !== null && _this$_converterConte3 !== void 0 && (_this$_converterConte4 = _this$_converterConte3.annotations) !== null && _this$_converterConte4 !== void 0 && (_this$_converterConte5 = _this$_converterConte4.Common) !== null && _this$_converterConte5 !== void 0 && _this$_converterConte5.ResultContext ? true : false;
|
|
65
|
+
var oAggregationAnnotationSource; // find ApplySupported
|
|
66
|
+
|
|
67
|
+
if (bIsParameterized) {
|
|
68
|
+
var _oNavigationPropertyO, _oNavigationPropertyO2, _oEntityTypeObject$an, _oEntityTypeObject$an2;
|
|
69
|
+
|
|
70
|
+
// if this is a parameterized view then applysupported can be found at either the navProp pointing to the result set or entityType.
|
|
71
|
+
// If applySupported is present at both the navProp and the entityType then navProp is more specific so take annotations from there
|
|
72
|
+
// targetObject in the converter context for a parameterized view is the navigation property pointing to th result set
|
|
73
|
+
var oDataModelObjectPath = this._converterContext.getDataModelObjectPath();
|
|
74
|
+
|
|
75
|
+
var oNavigationPropertyObject = oDataModelObjectPath === null || oDataModelObjectPath === void 0 ? void 0 : oDataModelObjectPath.targetObject;
|
|
76
|
+
var oEntityTypeObject = oDataModelObjectPath === null || oDataModelObjectPath === void 0 ? void 0 : oDataModelObjectPath.targetEntityType;
|
|
77
|
+
|
|
78
|
+
if (oNavigationPropertyObject !== null && oNavigationPropertyObject !== void 0 && (_oNavigationPropertyO = oNavigationPropertyObject.annotations) !== null && _oNavigationPropertyO !== void 0 && (_oNavigationPropertyO2 = _oNavigationPropertyO.Aggregation) !== null && _oNavigationPropertyO2 !== void 0 && _oNavigationPropertyO2.ApplySupported) {
|
|
79
|
+
oAggregationAnnotationSource = oNavigationPropertyObject;
|
|
80
|
+
} else if (oEntityTypeObject !== null && oEntityTypeObject !== void 0 && (_oEntityTypeObject$an = oEntityTypeObject.annotations) !== null && _oEntityTypeObject$an !== void 0 && (_oEntityTypeObject$an2 = _oEntityTypeObject$an.Aggregation) !== null && _oEntityTypeObject$an2 !== void 0 && _oEntityTypeObject$an2.ApplySupported) {
|
|
81
|
+
oAggregationAnnotationSource = oEntityTypeObject;
|
|
150
82
|
}
|
|
83
|
+
} else {
|
|
84
|
+
// For the time being, we ignore annotations at the container level, until the vocabulary is stabilized
|
|
85
|
+
oAggregationAnnotationSource = this._converterContext.getEntitySet();
|
|
151
86
|
}
|
|
152
|
-
}, {
|
|
153
|
-
key: "getGroupableProperties",
|
|
154
|
-
value: function getGroupableProperties() {
|
|
155
|
-
return this._aGroupableProperties;
|
|
156
|
-
}
|
|
157
|
-
}, {
|
|
158
|
-
key: "getAggregatableProperties",
|
|
159
|
-
value: function getAggregatableProperties() {
|
|
160
|
-
return this._aAggregatableProperties;
|
|
161
|
-
}
|
|
162
|
-
}, {
|
|
163
|
-
key: "getTransAggregations",
|
|
164
|
-
value: function getTransAggregations() {
|
|
165
|
-
var aTransAggregationAnnotations = this._converterContext.getAnnotationsByTerm("Analytics", "com.sap.vocabularies.Analytics.v1.AggregatedProperties", [this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]);
|
|
166
87
|
|
|
167
|
-
|
|
88
|
+
return oAggregationAnnotationSource;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Checks if the entity supports analytical queries.
|
|
92
|
+
*
|
|
93
|
+
* @returns `true` if analytical queries are supported, false otherwise.
|
|
94
|
+
*/
|
|
95
|
+
;
|
|
96
|
+
|
|
97
|
+
_proto.isAnalyticsSupported = function isAnalyticsSupported() {
|
|
98
|
+
return this._bApplySupported;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Checks if a property is groupable.
|
|
102
|
+
*
|
|
103
|
+
* @param property The property to check
|
|
104
|
+
* @returns `undefined` if the entity doesn't support analytical queries, true or false otherwise
|
|
105
|
+
*/
|
|
106
|
+
;
|
|
107
|
+
|
|
108
|
+
_proto.isPropertyGroupable = function isPropertyGroupable(property) {
|
|
109
|
+
if (!this._bApplySupported) {
|
|
110
|
+
return undefined;
|
|
111
|
+
} else if (!this._aGroupableProperties || this._aGroupableProperties.length === 0) {
|
|
112
|
+
// No groupableProperties --> all properties are groupable
|
|
113
|
+
return true;
|
|
114
|
+
} else {
|
|
115
|
+
return this._aGroupableProperties.findIndex(function (path) {
|
|
116
|
+
return path.$target.fullyQualifiedName === property.fullyQualifiedName;
|
|
117
|
+
}) >= 0;
|
|
168
118
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Checks if a property is aggregatable.
|
|
122
|
+
*
|
|
123
|
+
* @param property The property to check
|
|
124
|
+
* @returns `undefined` if the entity doesn't support analytical queries, true or false otherwise
|
|
125
|
+
*/
|
|
126
|
+
;
|
|
127
|
+
|
|
128
|
+
_proto.isPropertyAggregatable = function isPropertyAggregatable(property) {
|
|
129
|
+
if (!this._bApplySupported) {
|
|
130
|
+
return undefined;
|
|
131
|
+
} else {
|
|
179
132
|
// Get the custom aggregates
|
|
180
|
-
var aCustomAggregateAnnotations = this._converterContext.getAnnotationsByTerm("Aggregation", "Org.OData.Aggregation.V1.CustomAggregate", [this._oAggregationAnnotationTarget]);
|
|
133
|
+
var aCustomAggregateAnnotations = this._converterContext.getAnnotationsByTerm("Aggregation", "Org.OData.Aggregation.V1.CustomAggregate", [this._oAggregationAnnotationTarget]); // Check if a custom aggregate has a qualifier that corresponds to the property name
|
|
181
134
|
|
|
182
|
-
|
|
135
|
+
|
|
136
|
+
return aCustomAggregateAnnotations.some(function (annotation) {
|
|
137
|
+
return property.name === annotation.qualifier;
|
|
138
|
+
});
|
|
183
139
|
}
|
|
184
|
-
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
_proto.getGroupableProperties = function getGroupableProperties() {
|
|
143
|
+
return this._aGroupableProperties;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
_proto.getAggregatableProperties = function getAggregatableProperties() {
|
|
147
|
+
return this._aAggregatableProperties;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
_proto.getTransAggregations = function getTransAggregations() {
|
|
151
|
+
var aTransAggregationAnnotations = this._converterContext.getAnnotationsByTerm("Analytics", "com.sap.vocabularies.Analytics.v1.AggregatedProperties", [this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]);
|
|
152
|
+
|
|
153
|
+
return aTransAggregationAnnotations;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Returns the list of custom aggregate definitions for the entity type.
|
|
157
|
+
*
|
|
158
|
+
* @returns A map (propertyName --> array of context-defining property names) for each custom aggregate corresponding to a property. The array of
|
|
159
|
+
* context-defining property names is empty if the custom aggregate doesn't have any context-defining property.
|
|
160
|
+
*/
|
|
161
|
+
;
|
|
162
|
+
|
|
163
|
+
_proto.getCustomAggregateDefinitions = function getCustomAggregateDefinitions() {
|
|
164
|
+
// Get the custom aggregates
|
|
165
|
+
var aCustomAggregateAnnotations = this._converterContext.getAnnotationsByTerm("Aggregation", "Org.OData.Aggregation.V1.CustomAggregate", [this._oAggregationAnnotationTarget]);
|
|
166
|
+
|
|
167
|
+
return aCustomAggregateAnnotations;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Returns the list of allowed transformations in the $apply.
|
|
171
|
+
* First look at the current EntitySet, then look at the default values provided at the container level.
|
|
172
|
+
*
|
|
173
|
+
* @returns The list of transformations, or undefined if no list is found
|
|
174
|
+
*/
|
|
175
|
+
;
|
|
176
|
+
|
|
177
|
+
_proto.getAllowedTransformations = function getAllowedTransformations() {
|
|
178
|
+
var _this$oTargetAggregat6, _this$oTargetAggregat7, _this$oContainerAggre, _this$oContainerAggre2;
|
|
179
|
+
|
|
180
|
+
return ((_this$oTargetAggregat6 = this.oTargetAggregationAnnotations) === null || _this$oTargetAggregat6 === void 0 ? void 0 : (_this$oTargetAggregat7 = _this$oTargetAggregat6.ApplySupported) === null || _this$oTargetAggregat7 === void 0 ? void 0 : _this$oTargetAggregat7.Transformations) || ((_this$oContainerAggre = this.oContainerAggregationAnnotation) === null || _this$oContainerAggre === void 0 ? void 0 : (_this$oContainerAggre2 = _this$oContainerAggre.ApplySupportedDefaults) === null || _this$oContainerAggre2 === void 0 ? void 0 : _this$oContainerAggre2.Transformations);
|
|
181
|
+
};
|
|
185
182
|
|
|
186
183
|
return AggregationHelper;
|
|
187
184
|
}();
|
|
@@ -189,4 +186,4 @@ sap.ui.define([], function () {
|
|
|
189
186
|
_exports.AggregationHelper = AggregationHelper;
|
|
190
187
|
return _exports;
|
|
191
188
|
}, false);
|
|
192
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJfZW50aXR5VHlwZSIsIl9jb252ZXJ0ZXJDb250ZXh0IiwiX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQiLCJfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0IiwiX3R5cGUiLCJvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyIsImFubm90YXRpb25zIiwiQWdncmVnYXRpb24iLCJfYkFwcGx5U3VwcG9ydGVkIiwiQXBwbHlTdXBwb3J0ZWQiLCJfYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJHcm91cGFibGVQcm9wZXJ0aWVzIiwiX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsImJJc1BhcmFtZXRlcml6ZWQiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0RW50aXR5U2V0IiwiQ29tbW9uIiwiUmVzdWx0Q29udGV4dCIsIm9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UiLCJvRGF0YU1vZGVsT2JqZWN0UGF0aCIsIm9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3QiLCJ0YXJnZXRPYmplY3QiLCJvRW50aXR5VHlwZU9iamVjdCIsInRhcmdldEVudGl0eVR5cGUiLCJnZXRFbnRpdHlTZXQiLCJwcm9wZXJ0eSIsInVuZGVmaW5lZCIsImxlbmd0aCIsImZpbmRJbmRleCIsInBhdGgiLCIkdGFyZ2V0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zIiwiZ2V0QW5ub3RhdGlvbnNCeVRlcm0iLCJzb21lIiwiYW5ub3RhdGlvbiIsIm5hbWUiLCJxdWFsaWZpZXIiLCJhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zIiwiZ2V0RW50aXR5Q29udGFpbmVyIiwiZ2V0RW50aXR5VHlwZSJdLCJtYXBwaW5n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RCxxQ0FBbUM7QUFDbEMsZUFBTyxLQUFLRSx3QkFBWjtBQUNBOzs7YUFFRCxnQ0FBOEI7QUFDN0IsWUFBTTJCLDRCQUE0QixHQUFHLEtBQUt0QyxpQkFBTCxDQUF1QmlDLG9CQUF2QixDQUNwQyxXQURvQyxFQUVwQyx3REFGb0MsRUFHcEMsQ0FBQyxLQUFLakMsaUJBQUwsQ0FBdUJ1QyxrQkFBdkIsRUFBRCxFQUE4QyxLQUFLdkMsaUJBQUwsQ0FBdUJ3QyxhQUF2QixFQUE5QyxDQUhvQyxDQUFyQzs7QUFLQSxlQUFPRiw0QkFBUDtBQUNBO0FBQ0Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O2FBQ0MseUNBQXVDO0FBQ3RDO0FBQ0EsWUFBTU4sMkJBQThELEdBQUcsS0FBS2hDLGlCQUFMLENBQXVCaUMsb0JBQXZCLENBQ3RFLGFBRHNFLDhDQUd0RSxDQUFDLEtBQUtoQyw2QkFBTixDQUhzRSxDQUF2RTs7QUFNQSxlQUFPK0IsMkJBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5VHlwZSwgUHJvcGVydHksIEVudGl0eVNldCwgTmF2aWdhdGlvblByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IEFubm90YXRpb25UZXJtIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcywgQ3VzdG9tQWdncmVnYXRlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL2Rpc3QvZ2VuZXJhdGVkL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9FZG1cIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQge1xuXHRDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb24sXG5cdEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbixcblx0RW50aXR5U2V0QW5ub3RhdGlvbnNfQWdncmVnYXRpb25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3R5cGVzL2dlbmVyYXRlZC9BZ2dyZWdhdGlvbl9FZG1cIjtcblxuLyoqXG4gKiBoZWxwZXIgY2xhc3MgZm9yIEFnZ3JlZ2F0aW9uIGFubm90YXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25IZWxwZXIge1xuXHRfZW50aXR5VHlwZTogRW50aXR5VHlwZTtcblx0X2NvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG5cdF9iQXBwbHlTdXBwb3J0ZWQ6IGJvb2xlYW47XG5cdF9hR3JvdXBhYmxlUHJvcGVydGllcz86IFByb3BlcnR5UGF0aFtdO1xuXHRfYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM/O1xuXHRfb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldDogRW50aXR5VHlwZSB8IEVudGl0eVNldCB8IE5hdmlnYXRpb25Qcm9wZXJ0eTtcblx0b1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM6IGFueTtcblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBoZWxwZXIgZm9yIGEgc3BlY2lmaWMgZW50aXR5IHR5cGUgYW5kIGEgY29udmVydGVyIGNvbnRleHQuXG5cdCAqXG5cdCAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBFbnRpdHlUeXBlXG5cdCAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBDb252ZXJ0ZXJDb250ZXh0XG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KSB7XG5cdFx0dGhpcy5fZW50aXR5VHlwZSA9IGVudGl0eVR5cGU7XG5cdFx0dGhpcy5fY29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQ7XG5cblx0XHR0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0ID0gdGhpcy5fZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk7XG5cdFx0aWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJFbnRpdHlUeXBlXCIpIHtcblx0XHRcdHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMgPSB0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5hbm5vdGF0aW9uc1xuXHRcdFx0XHQ/LkFnZ3JlZ2F0aW9uIGFzIEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIkVudGl0eVNldFwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9XG5cdFx0dGhpcy5fYkFwcGx5U3VwcG9ydGVkID0gdGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz8uQXBwbHlTdXBwb3J0ZWQgPyB0cnVlIDogZmFsc2U7XG5cblx0XHRpZiAodGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHR0aGlzLl9hR3JvdXBhYmxlUHJvcGVydGllcyA9IHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/LkFwcGx5U3VwcG9ydGVkPy5Hcm91cGFibGVQcm9wZXJ0aWVzIGFzIFByb3BlcnR5UGF0aFtdO1xuXHRcdFx0dGhpcy5fYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMgPSB0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uQWdncmVnYXRhYmxlUHJvcGVydGllcztcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIERldGVybWluZSB0aGUgbW9zdCBhcHByb3ByaWF0ZSB0YXJnZXQgZm9yIHRoZSBhZ2dyZWdhdGlvbiBhbm5vdGF0aW9ucy5cblx0ICpcblx0ICogQHJldHVybnMgIEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkgd2hlcmUgYWdncmVnYXRpb24gYW5ub3RhdGlvbnMgc2hvdWxkIGJlIGZvdW5kLlxuXHQgKi9cblx0cHJpdmF0ZSBfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk6IEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRcdGNvbnN0IGJJc1BhcmFtZXRlcml6ZWQgPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKT8udGFyZ2V0RW50aXR5U2V0Py5lbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uQ29tbW9uXG5cdFx0XHQ/LlJlc3VsdENvbnRleHRcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0XHRsZXQgb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZTtcblxuXHRcdC8vIGZpbmQgQXBwbHlTdXBwb3J0ZWRcblx0XHRpZiAoYklzUGFyYW1ldGVyaXplZCkge1xuXHRcdFx0Ly8gaWYgdGhpcyBpcyBhIHBhcmFtZXRlcml6ZWQgdmlldyB0aGVuIGFwcGx5c3VwcG9ydGVkIGNhbiBiZSBmb3VuZCBhdCBlaXRoZXIgdGhlIG5hdlByb3AgcG9pbnRpbmcgdG8gdGhlIHJlc3VsdCBzZXQgb3IgZW50aXR5VHlwZS5cblx0XHRcdC8vIElmIGFwcGx5U3VwcG9ydGVkIGlzIHByZXNlbnQgYXQgYm90aCB0aGUgbmF2UHJvcCBhbmQgdGhlIGVudGl0eVR5cGUgdGhlbiBuYXZQcm9wIGlzIG1vcmUgc3BlY2lmaWMgc28gdGFrZSBhbm5vdGF0aW9ucyBmcm9tIHRoZXJlXG5cdFx0XHQvLyB0YXJnZXRPYmplY3QgaW4gdGhlIGNvbnZlcnRlciBjb250ZXh0IGZvciBhIHBhcmFtZXRlcml6ZWQgdmlldyBpcyB0aGUgbmF2aWdhdGlvbiBwcm9wZXJ0eSBwb2ludGluZyB0byB0aCByZXN1bHQgc2V0XG5cdFx0XHRjb25zdCBvRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRPYmplY3Q7XG5cdFx0XHRjb25zdCBvRW50aXR5VHlwZU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRFbnRpdHlUeXBlO1xuXHRcdFx0aWYgKG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q/LmFubm90YXRpb25zPy5BZ2dyZWdhdGlvbj8uQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q7XG5cdFx0XHR9IGVsc2UgaWYgKG9FbnRpdHlUeXBlT2JqZWN0Py5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRcdG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UgPSBvRW50aXR5VHlwZU9iamVjdDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRm9yIHRoZSB0aW1lIGJlaW5nLCB3ZSBpZ25vcmUgYW5ub3RhdGlvbnMgYXQgdGhlIGNvbnRhaW5lciBsZXZlbCwgdW50aWwgdGhlIHZvY2FidWxhcnkgaXMgc3RhYmlsaXplZFxuXHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZW50aXR5IHN1cHBvcnRzIGFuYWx5dGljYWwgcXVlcmllcy5cblx0ICpcblx0ICogQHJldHVybnMgYHRydWVgIGlmIGFuYWx5dGljYWwgcXVlcmllcyBhcmUgc3VwcG9ydGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgaXNBbmFseXRpY3NTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2JBcHBseVN1cHBvcnRlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBncm91cGFibGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcblx0ICogQHJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzLCB0cnVlIG9yIGZhbHNlIG90aGVyd2lzZVxuXHQgKi9cblx0cHVibGljIGlzUHJvcGVydHlHcm91cGFibGUocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCF0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMgfHwgdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvLyBObyBncm91cGFibGVQcm9wZXJ0aWVzIC0tPiBhbGwgcHJvcGVydGllcyBhcmUgZ3JvdXBhYmxlXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzLmZpbmRJbmRleChwYXRoID0+IHBhdGguJHRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUgPT09IHByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZSkgPj0gMDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllcywgdHJ1ZSBvciBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdHB1YmxpYyBpc1Byb3BlcnR5QWdncmVnYXRhYmxlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0XHRjb25zdCBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM6IEFubm90YXRpb25UZXJtPFxuXHRcdFx0XHRDdXN0b21BZ2dyZWdhdGVcblx0XHRcdD5bXSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJBZ2dyZWdhdGlvblwiLCBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcy5DdXN0b21BZ2dyZWdhdGUsIFtcblx0XHRcdFx0dGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldFxuXHRcdFx0XSk7XG5cblx0XHRcdC8vIENoZWNrIGlmIGEgY3VzdG9tIGFnZ3JlZ2F0ZSBoYXMgYSBxdWFsaWZpZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcGVydHkgbmFtZVxuXHRcdFx0cmV0dXJuIGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucy5zb21lKGFubm90YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gcHJvcGVydHkubmFtZSA9PT0gYW5ub3RhdGlvbi5xdWFsaWZpZXI7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0R3JvdXBhYmxlUHJvcGVydGllcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VHJhbnNBZ2dyZWdhdGlvbnMoKSB7XG5cdFx0Y29uc3QgYVRyYW5zQWdncmVnYXRpb25Bbm5vdGF0aW9ucyA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIkFuYWx5dGljc1wiLFxuXHRcdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5BbmFseXRpY3MudjEuQWdncmVnYXRlZFByb3BlcnRpZXNcIixcblx0XHRcdFt0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eUNvbnRhaW5lcigpLCB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKV1cblx0XHQpO1xuXHRcdHJldHVybiBhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGN1c3RvbSBhZ2dyZWdhdGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBlbnRpdHkgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgQSBtYXAgKHByb3BlcnR5TmFtZSAtLT4gYXJyYXkgb2YgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eSBuYW1lcykgZm9yIGVhY2ggY3VzdG9tIGFnZ3JlZ2F0ZSBjb3JyZXNwb25kaW5nIHRvIGEgcHJvcGVydHkuIFRoZSBhcnJheSBvZlxuXHQgKiBjb250ZXh0LWRlZmluaW5nIHByb3BlcnR5IG5hbWVzIGlzIGVtcHR5IGlmIHRoZSBjdXN0b20gYWdncmVnYXRlIGRvZXNuJ3QgaGF2ZSBhbnkgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eS5cblx0ICovXG5cdHB1YmxpYyBnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpIHtcblx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zOiBBbm5vdGF0aW9uVGVybTxDdXN0b21BZ2dyZWdhdGU+W10gPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEFubm90YXRpb25zQnlUZXJtKFxuXHRcdFx0XCJBZ2dyZWdhdGlvblwiLFxuXHRcdFx0QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuQ3VzdG9tQWdncmVnYXRlLFxuXHRcdFx0W3RoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXRdXG5cdFx0KTtcblxuXHRcdHJldHVybiBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM7XG5cdH1cbn1cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJfZW50aXR5VHlwZSIsIl9jb252ZXJ0ZXJDb250ZXh0IiwiX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQiLCJfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0IiwiX3R5cGUiLCJvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyIsImFubm90YXRpb25zIiwiQWdncmVnYXRpb24iLCJfYkFwcGx5U3VwcG9ydGVkIiwiQXBwbHlTdXBwb3J0ZWQiLCJfYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJHcm91cGFibGVQcm9wZXJ0aWVzIiwiX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIm9Db250YWluZXJBZ2dyZWdhdGlvbkFubm90YXRpb24iLCJnZXRFbnRpdHlDb250YWluZXIiLCJiSXNQYXJhbWV0ZXJpemVkIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVNldCIsIkNvbW1vbiIsIlJlc3VsdENvbnRleHQiLCJvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlIiwib0RhdGFNb2RlbE9iamVjdFBhdGgiLCJvTmF2aWdhdGlvblByb3BlcnR5T2JqZWN0IiwidGFyZ2V0T2JqZWN0Iiwib0VudGl0eVR5cGVPYmplY3QiLCJ0YXJnZXRFbnRpdHlUeXBlIiwiZ2V0RW50aXR5U2V0IiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJpc1Byb3BlcnR5R3JvdXBhYmxlIiwicHJvcGVydHkiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJmaW5kSW5kZXgiLCJwYXRoIiwiJHRhcmdldCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImlzUHJvcGVydHlBZ2dyZWdhdGFibGUiLCJhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnMiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInNvbWUiLCJhbm5vdGF0aW9uIiwibmFtZSIsInF1YWxpZmllciIsImdldEdyb3VwYWJsZVByb3BlcnRpZXMiLCJnZXRBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzIiwiZ2V0VHJhbnNBZ2dyZWdhdGlvbnMiLCJhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zIiwiZ2V0RW50aXR5VHlwZSIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwiZ2V0QWxsb3dlZFRyYW5zZm9ybWF0aW9ucyIsIlRyYW5zZm9ybWF0aW9ucyIsIkFwcGx5U3VwcG9ydGVkRGVmYXVsdHMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQVVBO0FBQ0E7QUFDQTtNQUNhQSxpQjtBQWNaO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDLCtCQUFZQyxVQUFaLEVBQW9DQyxnQkFBcEMsRUFBd0U7QUFBQTs7QUFDdkUsV0FBS0MsV0FBTCxHQUFtQkYsVUFBbkI7QUFDQSxXQUFLRyxpQkFBTCxHQUF5QkYsZ0JBQXpCO0FBRUEsV0FBS0csNkJBQUwsR0FBcUMsS0FBS0MscUNBQUwsRUFBckM7O0FBQ0EsVUFBSSwrQkFBS0QsNkJBQUwsZ0ZBQW9DRSxLQUFwQyxNQUE4QyxvQkFBbEQsRUFBd0U7QUFBQTs7QUFDdkUsYUFBS0MsNkJBQUwsNkJBQXFDLEtBQUtILDZCQUExQyxxRkFBcUMsdUJBQW9DSSxXQUF6RSwyREFBcUMsdUJBQ2xDQyxXQURIO0FBRUEsT0FIRCxNQUdPLElBQUksZ0NBQUtMLDZCQUFMLGtGQUFvQ0UsS0FBcEMsTUFBOEMsWUFBbEQsRUFBZ0U7QUFBQTs7QUFDdEUsYUFBS0MsNkJBQUwsNkJBQXFDLEtBQUtILDZCQUExQyxxRkFBcUMsdUJBQW9DSSxXQUF6RSwyREFBcUMsdUJBQ2xDQyxXQURIO0FBRUEsT0FITSxNQUdBLElBQUksZ0NBQUtMLDZCQUFMLGtGQUFvQ0UsS0FBcEMsTUFBOEMsV0FBbEQsRUFBK0Q7QUFBQTs7QUFDckUsYUFBS0MsNkJBQUwsNkJBQXFDLEtBQUtI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QywyQkFBQyxLQUFLN0MsNkJBQU4scUZBQUMsdUJBQW9DSSxjQUFyQywyREFBQyx1QkFBb0QwQyxlQUFyRCwrQkFDQyxLQUFLckMsK0JBRE4sb0ZBQ0Msc0JBQXNDc0Msc0JBRHZDLDJEQUNDLHVCQUE4REQsZUFEL0QsQ0FERDtBQUlBLEsiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVR5cGUsIFByb3BlcnR5LCBFbnRpdHlTZXQsIE5hdmlnYXRpb25Qcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyXCI7XG5pbXBvcnQgeyBBbm5vdGF0aW9uVGVybSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMsIEN1c3RvbUFnZ3JlZ2F0ZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9kaXN0L2dlbmVyYXRlZC9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IHsgUHJvcGVydHlQYXRoIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL2Rpc3QvRWRtXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHtcblx0Q29sbGVjdGlvbkFubm90YXRpb25zX0FnZ3JlZ2F0aW9uLFxuXHRFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQWdncmVnYXRpb24sXG5cdEVudGl0eVNldEFubm90YXRpb25zX0FnZ3JlZ2F0aW9uLFxuXHRFbnRpdHlDb250YWluZXJBbm5vdGF0aW9uc19BZ2dyZWdhdGlvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9nZW5lcmF0ZWQvQWdncmVnYXRpb25fRWRtXCI7XG5cbi8qKlxuICogaGVscGVyIGNsYXNzIGZvciBBZ2dyZWdhdGlvbiBhbm5vdGF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0aW9uSGVscGVyIHtcblx0X2VudGl0eVR5cGU6IEVudGl0eVR5cGU7XG5cdF9jb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0O1xuXHRfYkFwcGx5U3VwcG9ydGVkOiBib29sZWFuO1xuXHRfYUdyb3VwYWJsZVByb3BlcnRpZXM/OiBQcm9wZXJ0eVBhdGhbXTtcblx0X2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzPztcblx0X29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ6IEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHk7XG5cdG9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPzpcblx0XHR8IENvbGxlY3Rpb25Bbm5vdGF0aW9uc19BZ2dyZWdhdGlvblxuXHRcdHwgRW50aXR5VHlwZUFubm90YXRpb25zX0FnZ3JlZ2F0aW9uXG5cdFx0fCBFbnRpdHlTZXRBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblxuXHRvQ29udGFpbmVyQWdncmVnYXRpb25Bbm5vdGF0aW9uPzogRW50aXR5Q29udGFpbmVyQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBoZWxwZXIgZm9yIGEgc3BlY2lmaWMgZW50aXR5IHR5cGUgYW5kIGEgY29udmVydGVyIGNvbnRleHQuXG5cdCAqXG5cdCAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBFbnRpdHlUeXBlXG5cdCAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBDb252ZXJ0ZXJDb250ZXh0XG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KSB7XG5cdFx0dGhpcy5fZW50aXR5VHlwZSA9IGVudGl0eVR5cGU7XG5cdFx0dGhpcy5fY29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQ7XG5cblx0XHR0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0ID0gdGhpcy5fZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk7XG5cdFx0aWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJFbnRpdHlUeXBlXCIpIHtcblx0XHRcdHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMgPSB0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5hbm5vdGF0aW9uc1xuXHRcdFx0XHQ/LkFnZ3JlZ2F0aW9uIGFzIEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIkVudGl0eVNldFwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9XG5cdFx0dGhpcy5fYkFwcGx5U3VwcG9ydGVkID0gdGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz8uQXBwbHlTdXBwb3J0ZWQgPyB0cnVlIDogZmFsc2U7XG5cblx0XHRpZiAodGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHR0aGlzLl9hR3JvdXBhYmxlUHJvcGVydGllcyA9IHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/LkFwcGx5U3VwcG9ydGVkPy5Hcm91cGFibGVQcm9wZXJ0aWVzIGFzIFByb3BlcnR5UGF0aFtdO1xuXHRcdFx0dGhpcy5fYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMgPSB0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uQWdncmVnYXRhYmxlUHJvcGVydGllcztcblxuXHRcdFx0dGhpcy5vQ29udGFpbmVyQWdncmVnYXRpb25Bbm5vdGF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlDb250YWluZXIoKS5hbm5vdGF0aW9uc1xuXHRcdFx0XHQuQWdncmVnYXRpb24gYXMgRW50aXR5Q29udGFpbmVyQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBEZXRlcm1pbmVzIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHRhcmdldCBmb3IgdGhlIGFnZ3JlZ2F0aW9uIGFubm90YXRpb25zLlxuXHQgKlxuXHQgKiBAcmV0dXJucyAgRW50aXR5VHlwZSwgRW50aXR5U2V0IG9yIE5hdmlnYXRpb25Qcm9wZXJ0eSB3aGVyZSBhZ2dyZWdhdGlvbiBhbm5vdGF0aW9ucyBzaG91bGQgYmUgcmVhZCBmcm9tLlxuXHQgKi9cblx0cHJpdmF0ZSBfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk6IEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRcdGNvbnN0IGJJc1BhcmFtZXRlcml6ZWQgPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKT8udGFyZ2V0RW50aXR5U2V0Py5lbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uQ29tbW9uXG5cdFx0XHQ/LlJlc3VsdENvbnRleHRcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0XHRsZXQgb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZTtcblxuXHRcdC8vIGZpbmQgQXBwbHlTdXBwb3J0ZWRcblx0XHRpZiAoYklzUGFyYW1ldGVyaXplZCkge1xuXHRcdFx0Ly8gaWYgdGhpcyBpcyBhIHBhcmFtZXRlcml6ZWQgdmlldyB0aGVuIGFwcGx5c3VwcG9ydGVkIGNhbiBiZSBmb3VuZCBhdCBlaXRoZXIgdGhlIG5hdlByb3AgcG9pbnRpbmcgdG8gdGhlIHJlc3VsdCBzZXQgb3IgZW50aXR5VHlwZS5cblx0XHRcdC8vIElmIGFwcGx5U3VwcG9ydGVkIGlzIHByZXNlbnQgYXQgYm90aCB0aGUgbmF2UHJvcCBhbmQgdGhlIGVudGl0eVR5cGUgdGhlbiBuYXZQcm9wIGlzIG1vcmUgc3BlY2lmaWMgc28gdGFrZSBhbm5vdGF0aW9ucyBmcm9tIHRoZXJlXG5cdFx0XHQvLyB0YXJnZXRPYmplY3QgaW4gdGhlIGNvbnZlcnRlciBjb250ZXh0IGZvciBhIHBhcmFtZXRlcml6ZWQgdmlldyBpcyB0aGUgbmF2aWdhdGlvbiBwcm9wZXJ0eSBwb2ludGluZyB0byB0aCByZXN1bHQgc2V0XG5cdFx0XHRjb25zdCBvRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRPYmplY3Q7XG5cdFx0XHRjb25zdCBvRW50aXR5VHlwZU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRFbnRpdHlUeXBlO1xuXHRcdFx0aWYgKG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q/LmFubm90YXRpb25zPy5BZ2dyZWdhdGlvbj8uQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q7XG5cdFx0XHR9IGVsc2UgaWYgKG9FbnRpdHlUeXBlT2JqZWN0Py5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRcdG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UgPSBvRW50aXR5VHlwZU9iamVjdDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRm9yIHRoZSB0aW1lIGJlaW5nLCB3ZSBpZ25vcmUgYW5ub3RhdGlvbnMgYXQgdGhlIGNvbnRhaW5lciBsZXZlbCwgdW50aWwgdGhlIHZvY2FidWxhcnkgaXMgc3RhYmlsaXplZFxuXHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZW50aXR5IHN1cHBvcnRzIGFuYWx5dGljYWwgcXVlcmllcy5cblx0ICpcblx0ICogQHJldHVybnMgYHRydWVgIGlmIGFuYWx5dGljYWwgcXVlcmllcyBhcmUgc3VwcG9ydGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgaXNBbmFseXRpY3NTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2JBcHBseVN1cHBvcnRlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBncm91cGFibGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcblx0ICogQHJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzLCB0cnVlIG9yIGZhbHNlIG90aGVyd2lzZVxuXHQgKi9cblx0cHVibGljIGlzUHJvcGVydHlHcm91cGFibGUocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCF0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMgfHwgdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvLyBObyBncm91cGFibGVQcm9wZXJ0aWVzIC0tPiBhbGwgcHJvcGVydGllcyBhcmUgZ3JvdXBhYmxlXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzLmZpbmRJbmRleChwYXRoID0+IHBhdGguJHRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUgPT09IHByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZSkgPj0gMDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllcywgdHJ1ZSBvciBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdHB1YmxpYyBpc1Byb3BlcnR5QWdncmVnYXRhYmxlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0XHRjb25zdCBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM6IEFubm90YXRpb25UZXJtPFxuXHRcdFx0XHRDdXN0b21BZ2dyZWdhdGVcblx0XHRcdD5bXSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJBZ2dyZWdhdGlvblwiLCBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcy5DdXN0b21BZ2dyZWdhdGUsIFtcblx0XHRcdFx0dGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldFxuXHRcdFx0XSk7XG5cblx0XHRcdC8vIENoZWNrIGlmIGEgY3VzdG9tIGFnZ3JlZ2F0ZSBoYXMgYSBxdWFsaWZpZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcGVydHkgbmFtZVxuXHRcdFx0cmV0dXJuIGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucy5zb21lKGFubm90YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gcHJvcGVydHkubmFtZSA9PT0gYW5ub3RhdGlvbi5xdWFsaWZpZXI7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0R3JvdXBhYmxlUHJvcGVydGllcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VHJhbnNBZ2dyZWdhdGlvbnMoKSB7XG5cdFx0Y29uc3QgYVRyYW5zQWdncmVnYXRpb25Bbm5vdGF0aW9ucyA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIkFuYWx5dGljc1wiLFxuXHRcdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5BbmFseXRpY3MudjEuQWdncmVnYXRlZFByb3BlcnRpZXNcIixcblx0XHRcdFt0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eUNvbnRhaW5lcigpLCB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKV1cblx0XHQpO1xuXHRcdHJldHVybiBhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGN1c3RvbSBhZ2dyZWdhdGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBlbnRpdHkgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgQSBtYXAgKHByb3BlcnR5TmFtZSAtLT4gYXJyYXkgb2YgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eSBuYW1lcykgZm9yIGVhY2ggY3VzdG9tIGFnZ3JlZ2F0ZSBjb3JyZXNwb25kaW5nIHRvIGEgcHJvcGVydHkuIFRoZSBhcnJheSBvZlxuXHQgKiBjb250ZXh0LWRlZmluaW5nIHByb3BlcnR5IG5hbWVzIGlzIGVtcHR5IGlmIHRoZSBjdXN0b20gYWdncmVnYXRlIGRvZXNuJ3QgaGF2ZSBhbnkgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eS5cblx0ICovXG5cdHB1YmxpYyBnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpIHtcblx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zOiBBbm5vdGF0aW9uVGVybTxDdXN0b21BZ2dyZWdhdGU+W10gPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEFubm90YXRpb25zQnlUZXJtKFxuXHRcdFx0XCJBZ2dyZWdhdGlvblwiLFxuXHRcdFx0QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuQ3VzdG9tQWdncmVnYXRlLFxuXHRcdFx0W3RoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXRdXG5cdFx0KTtcblxuXHRcdHJldHVybiBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbGlzdCBvZiBhbGxvd2VkIHRyYW5zZm9ybWF0aW9ucyBpbiB0aGUgJGFwcGx5LlxuXHQgKiBGaXJzdCBsb29rIGF0IHRoZSBjdXJyZW50IEVudGl0eVNldCwgdGhlbiBsb29rIGF0IHRoZSBkZWZhdWx0IHZhbHVlcyBwcm92aWRlZCBhdCB0aGUgY29udGFpbmVyIGxldmVsLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiB0cmFuc2Zvcm1hdGlvbnMsIG9yIHVuZGVmaW5lZCBpZiBubyBsaXN0IGlzIGZvdW5kXG5cdCAqL1xuXHRwdWJsaWMgZ2V0QWxsb3dlZFRyYW5zZm9ybWF0aW9ucygpOiBTdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdCh0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uVHJhbnNmb3JtYXRpb25zIGFzIFN0cmluZ1tdKSB8fFxuXHRcdFx0KHRoaXMub0NvbnRhaW5lckFnZ3JlZ2F0aW9uQW5ub3RhdGlvbj8uQXBwbHlTdXBwb3J0ZWREZWZhdWx0cz8uVHJhbnNmb3JtYXRpb25zIGFzIFN0cmluZ1tdKVxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -6,8 +6,9 @@ import ConverterContext from "../ConverterContext";
|
|
|
6
6
|
import {
|
|
7
7
|
CollectionAnnotations_Aggregation,
|
|
8
8
|
EntityTypeAnnotations_Aggregation,
|
|
9
|
-
EntitySetAnnotations_Aggregation
|
|
10
|
-
|
|
9
|
+
EntitySetAnnotations_Aggregation,
|
|
10
|
+
EntityContainerAnnotations_Aggregation
|
|
11
|
+
} from "@sap-ux/vocabularies-types/dist/generated/Aggregation_Edm";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* helper class for Aggregation annotations.
|
|
@@ -19,7 +20,13 @@ export class AggregationHelper {
|
|
|
19
20
|
_aGroupableProperties?: PropertyPath[];
|
|
20
21
|
_aAggregatableProperties?;
|
|
21
22
|
_oAggregationAnnotationTarget: EntityType | EntitySet | NavigationProperty;
|
|
22
|
-
oTargetAggregationAnnotations
|
|
23
|
+
oTargetAggregationAnnotations?:
|
|
24
|
+
| CollectionAnnotations_Aggregation
|
|
25
|
+
| EntityTypeAnnotations_Aggregation
|
|
26
|
+
| EntitySetAnnotations_Aggregation;
|
|
27
|
+
|
|
28
|
+
oContainerAggregationAnnotation?: EntityContainerAnnotations_Aggregation;
|
|
29
|
+
|
|
23
30
|
/**
|
|
24
31
|
* Creates a helper for a specific entity type and a converter context.
|
|
25
32
|
*
|
|
@@ -46,12 +53,15 @@ export class AggregationHelper {
|
|
|
46
53
|
if (this._bApplySupported) {
|
|
47
54
|
this._aGroupableProperties = this.oTargetAggregationAnnotations?.ApplySupported?.GroupableProperties as PropertyPath[];
|
|
48
55
|
this._aAggregatableProperties = this.oTargetAggregationAnnotations?.ApplySupported?.AggregatableProperties;
|
|
56
|
+
|
|
57
|
+
this.oContainerAggregationAnnotation = converterContext.getEntityContainer().annotations
|
|
58
|
+
.Aggregation as EntityContainerAnnotations_Aggregation;
|
|
49
59
|
}
|
|
50
60
|
}
|
|
51
61
|
/**
|
|
52
|
-
*
|
|
62
|
+
* Determines the most appropriate target for the aggregation annotations.
|
|
53
63
|
*
|
|
54
|
-
* @returns EntityType
|
|
64
|
+
* @returns EntityType, EntitySet or NavigationProperty where aggregation annotations should be read from.
|
|
55
65
|
*/
|
|
56
66
|
private _determineAggregationAnnotationTarget(): EntityType | EntitySet | NavigationProperty {
|
|
57
67
|
const bIsParameterized = this._converterContext.getDataModelObjectPath()?.targetEntitySet?.entityType?.annotations?.Common
|
|
@@ -162,4 +172,17 @@ export class AggregationHelper {
|
|
|
162
172
|
|
|
163
173
|
return aCustomAggregateAnnotations;
|
|
164
174
|
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Returns the list of allowed transformations in the $apply.
|
|
178
|
+
* First look at the current EntitySet, then look at the default values provided at the container level.
|
|
179
|
+
*
|
|
180
|
+
* @returns The list of transformations, or undefined if no list is found
|
|
181
|
+
*/
|
|
182
|
+
public getAllowedTransformations(): String[] | undefined {
|
|
183
|
+
return (
|
|
184
|
+
(this.oTargetAggregationAnnotations?.ApplySupported?.Transformations as String[]) ||
|
|
185
|
+
(this.oContainerAggregationAnnotation?.ApplySupportedDefaults?.Transformations as String[])
|
|
186
|
+
);
|
|
187
|
+
}
|
|
165
188
|
}
|
|
@@ -32,25 +32,39 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
32
32
|
IsNewObject: and(not(Entity.HasActive), not(Entity.IsActive)),
|
|
33
33
|
HasNoDraftForCurrentUser: or(not(Entity.HasDraft), and(Entity.HasDraft, not(bindingExpression("DraftAdministrativeData/DraftIsCreatedByMe"))))
|
|
34
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Gets a singleton based on the fully qualified name.
|
|
37
|
+
*
|
|
38
|
+
* @param convertedTypes The converted types
|
|
39
|
+
* @param {string} fullyQualifiedName The fully qualified name of the singleton
|
|
40
|
+
* @returns {Singleton | undefined} The singleton instance.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
_exports.Draft = Draft;
|
|
44
|
+
|
|
45
|
+
function getSingleton(convertedTypes, fullyQualifiedName) {
|
|
46
|
+
return convertedTypes.singletons.find(function (singleton) {
|
|
47
|
+
return singleton.fullyQualifiedName === fullyQualifiedName;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
35
50
|
/**
|
|
36
51
|
* Function to adjust singleton paths in the annotation.
|
|
37
52
|
* The absolute path via EntityContainer needs to be shortened to /SingletonName/PropertyName.
|
|
38
53
|
*
|
|
39
54
|
* @param {string} path The path configured in the annotation
|
|
40
|
-
* @param {
|
|
55
|
+
* @param {ConverterOutput} convertedTypes The instance of the converter context
|
|
41
56
|
* @param {string[]} visitedNavigationPaths The array of visited navigation paths
|
|
42
57
|
* @returns {string} The adjusted path for the reference of the singleton property, otherwise the input path itself.
|
|
43
58
|
*/
|
|
44
59
|
|
|
45
|
-
_exports.Draft = Draft;
|
|
46
60
|
|
|
47
|
-
var singletonPathVisitor = function (path,
|
|
61
|
+
var singletonPathVisitor = function (path, convertedTypes, visitedNavigationPaths) {
|
|
48
62
|
// Determine whether the path is absolute and whether it points to a singleton.
|
|
49
63
|
if (path.indexOf("/") === 0) {
|
|
50
64
|
var parts = path.split("/").filter(Boolean),
|
|
51
65
|
propertyName = parts.pop(),
|
|
52
66
|
entitySetName = parts.join("/"),
|
|
53
|
-
singleton =
|
|
67
|
+
singleton = getSingleton(convertedTypes, entitySetName);
|
|
54
68
|
|
|
55
69
|
if (singleton) {
|
|
56
70
|
// Set the absolute binding path to access the singleton property
|
|
@@ -88,10 +102,10 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
88
102
|
return path.substring(bindingParameterPrefix.length);
|
|
89
103
|
}
|
|
90
104
|
|
|
91
|
-
return singletonPathVisitor(path, converterContext, []);
|
|
105
|
+
return singletonPathVisitor(path, converterContext.getConvertedTypes(), []);
|
|
92
106
|
}
|
|
93
107
|
|
|
94
108
|
_exports.bindingContextPathVisitor = bindingContextPathVisitor;
|
|
95
109
|
return _exports;
|
|
96
110
|
}, false);
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJpbmRpbmdIZWxwZXIudHMiXSwibmFtZXMiOlsiVUkiLCJJc0NyZWF0ZU1vZGUiLCJiaW5kaW5nRXhwcmVzc2lvbiIsIklzQ3JlYXRlTW9kZVN0aWNreSIsIklzRWRpdGFibGUiLCJJc1RyYW5zaWVudEJpbmRpbmciLCJlcXVhbCIsIklzVG90YWwiLCJJc0V4cGFuZGVkIiwiTm9kZUxldmVsIiwiRW50aXR5IiwiSGFzRHJhZnQiLCJIYXNBY3RpdmUiLCJJc0FjdGl2ZSIsIkRyYWZ0IiwiSXNOZXdPYmplY3QiLCJhbmQiLCJub3QiLCJIYXNOb0RyYWZ0Rm9yQ3VycmVudFVzZXIiLCJvciIsImdldFNpbmdsZXRvbiIsImNvbnZlcnRlZFR5cGVzIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwic2luZ2xldG9ucyIsImZpbmQiLCJzaW5nbGV0b24iLCJzaW5nbGV0b25QYXRoVmlzaXRvciIsInBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwiaW5kZXhPZiIsInBhcnRzIiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwicHJvcGVydHlOYW1lIiwicG9wIiwiZW50aXR5U2V0TmFtZSIsImpvaW4iLCJuYW1lIiwibG9jYWxQYXRoIiwiY29uY2F0IiwicHVzaCIsImJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IiLCJjb252ZXJ0ZXJDb250ZXh0IiwiYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lIiwiYmluZGluZ1BhcmFtZXRlclByZWZpeCIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwic3RhcnRzV2l0aCIsImxlbmd0aCIsImdldENvbnZlcnRlZFR5cGVzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQUVPLE1BQU1BLEVBQUUsR0FBRztBQUNqQkMsSUFBQUEsWUFBWSxFQUFFQyxpQkFBaUIsQ0FBQyxZQUFELEVBQWUsSUFBZixDQURkO0FBRWpCQyxJQUFBQSxrQkFBa0IsRUFBRUQsaUJBQWlCLENBQUMsa0JBQUQsRUFBcUIsSUFB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QUFTZSx5QkFBVCxDQUFtQ2YsSUFBbkMsRUFBaURnQixnQkFBakQsRUFBcUZDLHdCQUFyRixFQUF1SDtBQUM3SCxRQUFNQyxzQkFBc0IsR0FBRyxDQUFBRCx3QkFBd0IsU0FBeEIsSUFBQUEsd0JBQXdCLFdBQXhCLFlBQUFBLHdCQUF3QixDQUFFRSxTQUExQixDQUFvQ0Ysd0JBQXdCLENBQUNHLFdBQXpCLENBQXFDLEdBQXJDLElBQTRDLENBQWhGLEtBQXFGLEdBQXBILENBRDZILENBRTdIO0FBQ0E7O0FBQ0EsUUFBSXBCLElBQUksQ0FBQ3FCLFVBQUwsQ0FBZ0JILHNCQUFoQixDQUFKLEVBQTZDO0FBQzVDLGFBQU9sQixJQUFJLENBQUNtQixTQUFMLENBQWVELHNCQUFzQixDQUFDSSxNQUF0QyxDQUFQO0FBQ0E7O0FBQ0QsV0FBT3ZCLG9CQUFvQixDQUFDQyxJQUFELEVBQU9nQixnQkFBZ0IsQ0FBQ08saUJBQWpCLEVBQVAsRUFBNkMsRUFBN0MsQ0FBM0I7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5kLCBiaW5kaW5nRXhwcmVzc2lvbiwgZXF1YWwsIEV4cHJlc3Npb24sIG5vdCwgb3IgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgQ29udmVydGVyT3V0cHV0LCBTaW5nbGV0b24gfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuXG5leHBvcnQgY29uc3QgVUkgPSB7XG5cdElzQ3JlYXRlTW9kZTogYmluZGluZ0V4cHJlc3Npb24oXCJjcmVhdGVNb2RlXCIsIFwidWlcIikgYXMgRXhwcmVzc2lvbjxib29sZWFuPixcblx0SXNDcmVhdGVNb2RlU3RpY2t5OiBiaW5kaW5nRXhwcmVzc2lvbihcImNyZWF0ZU1vZGVTdGlja3lcIiwgXCJ1aVwiKSBhcyBFeHByZXNzaW9uPGJvb2xlYW4+LFxuXHRJc0VkaXRhYmxlOiBiaW5kaW5nRXhwcmVzc2lvbihcIi9pc0VkaXRhYmxlXCIsIFwidWlcIikgYXMgRXhwcmVzc2lvbjxib29sZWFuPixcblx0SXNUcmFuc2llbnRCaW5kaW5nOiBlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIkAkdWk1LmNvbnRleHQuaXNUcmFuc2llbnRcIiksIHRydWUpLFxuXHRJc1RvdGFsOiBlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIkAkdWk1Lm5vZGUuaXNUb3RhbFwiKSwgdHJ1ZSksXG5cdElzRXhwYW5kZWQ6IGVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwiQCR1aTUubm9kZS5pc0V4cGFuZGVkXCIpLCB0cnVlKSxcblx0Tm9kZUxldmVsOiBiaW5kaW5nRXhwcmVzc2lvbihcIkAkdWk1Lm5vZGUubGV2ZWxcIilcbn07XG5cbmV4cG9ydCBjb25zdCBFbnRpdHkgPSB7XG5cdEhhc0RyYWZ0OiBiaW5kaW5nRXhwcmVzc2lvbihcIkhhc0RyYWZ0RW50aXR5XCIpLFxuXHRIYXNBY3RpdmU6IGJpbmRpbmdFeHByZXNzaW9uKFwiSGFzQWN0aXZlRW50aXR5XCIpLFxuXHRJc0FjdGl2ZTogYmluZGluZ0V4cHJlc3Npb24oXCJJc0FjdGl2ZUVudGl0eVwiKVxufTtcblxuZXhwb3J0IGNvbnN0IERyYWZ0ID0ge1xuXHRJc05ld09iamVjdDogYW5kKG5vdChFbnRpdHkuSGFzQWN0aXZlKSwgbm90KEVudGl0eS5Jc0FjdGl2ZSkpLFxuXHRIYXNOb0RyYWZ0Rm9yQ3VycmVudFVzZXI6IG9yKFxuXHRcdG5vdChFbnRpdHkuSGFzRHJhZnQpLFxuXHRcdGFuZChFbnRpdHkuSGFzRHJhZnQsIG5vdChiaW5kaW5nRXhwcmVzc2lvbihcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZVwiKSBhcyBFeHByZXNzaW9uPGJvb2xlYW4+KSlcblx0KVxufTtcblxuLyoqXG4gKiBHZXRzIGEgc2luZ2xldG9uIGJhc2VkIG9uIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZS5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVkVHlwZXMgVGhlIGNvbnZlcnRlZCB0eXBlc1xuICogQHBhcmFtIHtzdHJpbmd9IGZ1bGx5UXVhbGlmaWVkTmFtZSBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHNpbmdsZXRvblxuICogQHJldHVybnMge1NpbmdsZXRvbiB8IHVuZGVmaW5lZH0gVGhlIHNpbmdsZXRvbiBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gZ2V0U2luZ2xldG9uKGNvbnZlcnRlZFR5cGVzOiBDb252ZXJ0ZXJPdXRwdXQsIGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogU2luZ2xldG9uIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGNvbnZlcnRlZFR5cGVzLnNpbmdsZXRvbnMuZmluZChzaW5nbGV0b24gPT4gc2luZ2xldG9uLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB0byBhZGp1c3Qgc2luZ2xldG9uIHBhdGhzIGluIHRoZSBhbm5vdGF0aW9uLlxuICogVGhlIGFic29sdXRlIHBhdGggdmlhIEVudGl0eUNvbnRhaW5lciBuZWVkcyB0byBiZSBzaG9ydGVuZWQgdG8gL1NpbmdsZXRvbk5hbWUvUHJvcGVydHlOYW1lLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGNvbmZpZ3VyZWQgaW4gdGhlIGFubm90YXRpb25cbiAqIEBwYXJhbSB7Q29udmVydGVyT3V0cHV0fSBjb252ZXJ0ZWRUeXBlcyBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ1tdfSB2aXNpdGVkTmF2aWdhdGlvblBhdGhzIFRoZSBhcnJheSBvZiB2aXNpdGVkIG5hdmlnYXRpb24gcGF0aHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGp1c3RlZCBwYXRoIGZvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBzaW5nbGV0b24gcHJvcGVydHksIG90aGVyd2lzZSB0aGUgaW5wdXQgcGF0aCBpdHNlbGYuXG4gKi9cbmV4cG9ydCBjb25zdCBzaW5nbGV0b25QYXRoVmlzaXRvciA9IGZ1bmN0aW9uKHBhdGg6IHN0cmluZywgY29udmVydGVkVHlwZXM6IENvbnZlcnRlck91dHB1dCwgdmlzaXRlZE5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pOiBzdHJpbmcge1xuXHQvLyBEZXRlcm1pbmUgd2hldGhlciB0aGUgcGF0aCBpcyBhYnNvbHV0ZSBhbmQgd2hldGhlciBpdCBwb2ludHMgdG8gYSBzaW5nbGV0b24uXG5cdGlmIChwYXRoLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0Y29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiL1wiKS5maWx0ZXIoQm9vbGVhbiksXG5cdFx0XHRwcm9wZXJ0eU5hbWUgPSBwYXJ0cy5wb3AoKSxcblx0XHRcdGVudGl0eVNldE5hbWUgPSBwYXJ0cy5qb2luKFwiL1wiKSxcblx0XHRcdHNpbmdsZXRvbiA9IGdldFNpbmdsZXRvbihjb252ZXJ0ZWRUeXBlcywgZW50aXR5U2V0TmFtZSk7XG5cdFx0aWYgKHNpbmdsZXRvbikge1xuXHRcdFx0Ly8gU2V0IHRoZSBhYnNvbHV0ZSBiaW5kaW5nIHBhdGggdG8gYWNjZXNzIHRoZSBzaW5nbGV0b24gcHJvcGVydHlcblx0XHRcdHBhdGggPSBcIi9cIiArIHNpbmdsZXRvbi5uYW1lICsgXCIvXCIgKyBwcm9wZXJ0eU5hbWU7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIE5vdCBhIHNpbmdsZXRvbiByZWZlcmVuY2UuXG5cdFx0Ly8gUHJlZml4IHRoZSBuYXZpZ2F0aW9uIHBhdGggdG8gdGhlIHByb3BlcnR5IHBhdGhcblx0XHRjb25zdCBsb2NhbFBhdGggPSB2aXNpdGVkTmF2aWdhdGlvblBhdGhzLmNvbmNhdCgpO1xuXHRcdGxvY2FsUGF0aC5wdXNoKHBhdGgpO1xuXHRcdHBhdGggPSBsb2NhbFBhdGguam9pbihcIi9cIik7XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGFkanVzdCBwcm9wZXJ0eSBwYXRocyBkZWZpbmVkIGluIHRoZSBiaW5kaW5nIG9mIGFuIGFjdGlvbi5cbiAqXG4gKiBUaGUgYmluZGluZyBwYXJhbWV0ZXIgbmFtZSBuZWVkcyB0byBiZSByZW1vdmVkLiBTaW5nbGV0b24gcGF0aHMgbmVlZCB0byBiZSByZXNvbHZlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBjb25maWd1cmVkIGluIHRoZSBhbm5vdGF0aW9uXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGJpbmRpbmcgcGFyYW1ldGVyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYWRqdXN0ZWQgcHJvcGVydHkgcGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvcihwYXRoOiBzdHJpbmcsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZTogc3RyaW5nKSB7XG5cdGNvbnN0IGJpbmRpbmdQYXJhbWV0ZXJQcmVmaXggPSBiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWU/LnN1YnN0cmluZyhiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUubGFzdEluZGV4T2YoXCIvXCIpICsgMSkgKyBcIi9cIjtcblx0Ly8gU3RyaXAgdGhlIGJpbmRpbmcgcGFyYW1ldGVyIG5hbWUgZnJvbSBPcGVyYXRpb25BdmFpbGFibGUgcGF0aFxuXHQvLyBGb3IgZS5nLiBfaXQvcHJvcGVydHkxIC0tPiBwcm9wZXJ0eTFcblx0aWYgKHBhdGguc3RhcnRzV2l0aChiaW5kaW5nUGFyYW1ldGVyUHJlZml4KSkge1xuXHRcdHJldHVybiBwYXRoLnN1YnN0cmluZyhiaW5kaW5nUGFyYW1ldGVyUHJlZml4Lmxlbmd0aCk7XG5cdH1cblx0cmV0dXJuIHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgW10pO1xufVxuIl19
|