@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
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "sap/fe/macros/ResourceModel", "sap/m/BusyDialog", "./FieldWrapper"], function (CommonUtils, ClassSupport, ResourceModel, BusyDialog, FieldWrapper) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12;
|
|
9
|
+
|
|
10
|
+
var property = ClassSupport.property;
|
|
11
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
12
|
+
var aggregation = ClassSupport.aggregation;
|
|
13
|
+
|
|
14
|
+
function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
|
|
15
|
+
|
|
16
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
17
|
+
|
|
18
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
19
|
+
|
|
20
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
21
|
+
|
|
22
|
+
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
23
|
+
|
|
24
|
+
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
|
|
25
|
+
|
|
26
|
+
var FileWrapper = (_dec = defineUI5Class("sap.fe.core.controls.FileWrapper"), _dec2 = property({
|
|
27
|
+
type: "sap.ui.core.URI"
|
|
28
|
+
}), _dec3 = property({
|
|
29
|
+
type: "sap.ui.model.Context"
|
|
30
|
+
}), _dec4 = property({
|
|
31
|
+
type: "sap.ui.model.Context"
|
|
32
|
+
}), _dec5 = property({
|
|
33
|
+
type: "string"
|
|
34
|
+
}), _dec6 = property({
|
|
35
|
+
type: "string"
|
|
36
|
+
}), _dec7 = property({
|
|
37
|
+
type: "string"
|
|
38
|
+
}), _dec8 = aggregation({
|
|
39
|
+
type: "sap.m.Avatar",
|
|
40
|
+
multiple: false
|
|
41
|
+
}), _dec9 = aggregation({
|
|
42
|
+
type: "sap.ui.core.Icon",
|
|
43
|
+
multiple: false
|
|
44
|
+
}), _dec10 = aggregation({
|
|
45
|
+
type: "sap.m.Link",
|
|
46
|
+
multiple: false
|
|
47
|
+
}), _dec11 = aggregation({
|
|
48
|
+
type: "sap.m.Text",
|
|
49
|
+
multiple: false
|
|
50
|
+
}), _dec12 = aggregation({
|
|
51
|
+
type: "sap.ui.unified.FileUploader",
|
|
52
|
+
multiple: false
|
|
53
|
+
}), _dec13 = aggregation({
|
|
54
|
+
type: "sap.m.Button",
|
|
55
|
+
multiple: false
|
|
56
|
+
}), _dec(_class = (_class2 = /*#__PURE__*/function (_FieldWrapper) {
|
|
57
|
+
_inheritsLoose(FileWrapper, _FieldWrapper);
|
|
58
|
+
|
|
59
|
+
function FileWrapper() {
|
|
60
|
+
var _this;
|
|
61
|
+
|
|
62
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
63
|
+
args[_key] = arguments[_key];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
_this = _FieldWrapper.call.apply(_FieldWrapper, [this].concat(args)) || this;
|
|
67
|
+
|
|
68
|
+
_initializerDefineProperty(_this, "uploadUrl", _descriptor, _assertThisInitialized(_this));
|
|
69
|
+
|
|
70
|
+
_initializerDefineProperty(_this, "parentEntitySet", _descriptor2, _assertThisInitialized(_this));
|
|
71
|
+
|
|
72
|
+
_initializerDefineProperty(_this, "parentEntityType", _descriptor3, _assertThisInitialized(_this));
|
|
73
|
+
|
|
74
|
+
_initializerDefineProperty(_this, "propertyPath", _descriptor4, _assertThisInitialized(_this));
|
|
75
|
+
|
|
76
|
+
_initializerDefineProperty(_this, "filename", _descriptor5, _assertThisInitialized(_this));
|
|
77
|
+
|
|
78
|
+
_initializerDefineProperty(_this, "mediaType", _descriptor6, _assertThisInitialized(_this));
|
|
79
|
+
|
|
80
|
+
_initializerDefineProperty(_this, "avatar", _descriptor7, _assertThisInitialized(_this));
|
|
81
|
+
|
|
82
|
+
_initializerDefineProperty(_this, "icon", _descriptor8, _assertThisInitialized(_this));
|
|
83
|
+
|
|
84
|
+
_initializerDefineProperty(_this, "link", _descriptor9, _assertThisInitialized(_this));
|
|
85
|
+
|
|
86
|
+
_initializerDefineProperty(_this, "text", _descriptor10, _assertThisInitialized(_this));
|
|
87
|
+
|
|
88
|
+
_initializerDefineProperty(_this, "fileUploader", _descriptor11, _assertThisInitialized(_this));
|
|
89
|
+
|
|
90
|
+
_initializerDefineProperty(_this, "deleteButton", _descriptor12, _assertThisInitialized(_this));
|
|
91
|
+
|
|
92
|
+
_this._busy = false;
|
|
93
|
+
return _this;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var _proto = FileWrapper.prototype;
|
|
97
|
+
|
|
98
|
+
_proto.getAccessibilityInfo = function getAccessibilityInfo() {
|
|
99
|
+
var accInfo = [];
|
|
100
|
+
|
|
101
|
+
if (this.avatar) {
|
|
102
|
+
accInfo.push(this.avatar);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (this.icon) {
|
|
106
|
+
accInfo.push(this.icon);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (this.link) {
|
|
110
|
+
accInfo.push(this.link);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (this.text) {
|
|
114
|
+
accInfo.push(this.text);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (this.fileUploader) {
|
|
118
|
+
accInfo.push(this.fileUploader);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (this.deleteButton) {
|
|
122
|
+
accInfo.push(this.deleteButton);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return {
|
|
126
|
+
children: accInfo
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
_proto.onBeforeRendering = function onBeforeRendering() {
|
|
131
|
+
this._setAriaLabels();
|
|
132
|
+
|
|
133
|
+
this._addSideEffects();
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
_proto._setAriaLabels = function _setAriaLabels() {
|
|
137
|
+
this._setAriaLabelledBy(this.avatar);
|
|
138
|
+
|
|
139
|
+
this._setAriaLabelledBy(this.icon);
|
|
140
|
+
|
|
141
|
+
this._setAriaLabelledBy(this.link);
|
|
142
|
+
|
|
143
|
+
this._setAriaLabelledBy(this.text);
|
|
144
|
+
|
|
145
|
+
this._setAriaLabelledBy(this.fileUploader);
|
|
146
|
+
|
|
147
|
+
this._setAriaLabelledBy(this.deleteButton);
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
_proto._addSideEffects = function _addSideEffects() {
|
|
151
|
+
// add SideEffects for stream content, filename and mediatype
|
|
152
|
+
var sourceProperty = "",
|
|
153
|
+
sourcePath = "",
|
|
154
|
+
path = "",
|
|
155
|
+
parentEntitySetWithSlash = "";
|
|
156
|
+
var navigationProperties = [];
|
|
157
|
+
this.getCustomData().forEach(function (item) {
|
|
158
|
+
if (item.getProperty("key") === "sourcePath") {
|
|
159
|
+
sourcePath = item.getProperty("value");
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
parentEntitySetWithSlash = "/" + this.parentEntitySet + "/";
|
|
163
|
+
sourceProperty = sourcePath.substring(sourcePath.indexOf(parentEntitySetWithSlash) + parentEntitySetWithSlash.length, sourcePath.length);
|
|
164
|
+
path = sourceProperty.replace(this.propertyPath, "");
|
|
165
|
+
navigationProperties.push({
|
|
166
|
+
"$NavigationPropertyPath": sourceProperty
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
if (this.filename) {
|
|
170
|
+
navigationProperties.push({
|
|
171
|
+
"$NavigationPropertyPath": path + this.filename
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (this.mediaType) {
|
|
176
|
+
navigationProperties.push({
|
|
177
|
+
"$NavigationPropertyPath": path + this.mediaType
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
this._getSideEffectController().addControlSideEffects(this.parentEntityType, {
|
|
182
|
+
SourceProperties: sourceProperty,
|
|
183
|
+
TargetEntities: navigationProperties,
|
|
184
|
+
sourceControlId: this.getId()
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
_proto._getSideEffectController = function _getSideEffectController() {
|
|
189
|
+
var controller = this._getViewController();
|
|
190
|
+
|
|
191
|
+
return controller ? controller._sideEffects : undefined;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
_proto._getViewController = function _getViewController() {
|
|
195
|
+
var view = CommonUtils.getTargetView(this);
|
|
196
|
+
return view && view.getController();
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
_proto.getUploadUrl = function getUploadUrl() {
|
|
200
|
+
// set upload url as canonical url for NavigationProperties
|
|
201
|
+
// this is a workaround as some backends cannot resolve NavigationsProperties for stream types
|
|
202
|
+
var context = this.getBindingContext();
|
|
203
|
+
return context ? this.uploadUrl.replace(context.getPath(), context.getCanonicalPath()) : "";
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
_proto.setUIBusy = function setUIBusy(busy) {
|
|
207
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
208
|
+
var that = this;
|
|
209
|
+
this._busy = busy;
|
|
210
|
+
|
|
211
|
+
if (busy) {
|
|
212
|
+
if (!this.busyDialog) {
|
|
213
|
+
this.busyDialog = new BusyDialog({
|
|
214
|
+
text: ResourceModel.getText("M_FILEWRAPPER_BUSY_DIALOG_TITLE"),
|
|
215
|
+
showCancelButton: false
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
setTimeout(function () {
|
|
220
|
+
if (that._busy) {
|
|
221
|
+
var _that$busyDialog;
|
|
222
|
+
|
|
223
|
+
(_that$busyDialog = that.busyDialog) === null || _that$busyDialog === void 0 ? void 0 : _that$busyDialog.open();
|
|
224
|
+
}
|
|
225
|
+
}, 1000);
|
|
226
|
+
} else {
|
|
227
|
+
var _this$busyDialog;
|
|
228
|
+
|
|
229
|
+
(_this$busyDialog = this.busyDialog) === null || _this$busyDialog === void 0 ? void 0 : _this$busyDialog.close(false);
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
FileWrapper.render = function render(renderManager, fileWrapper) {
|
|
234
|
+
renderManager.openStart("div", fileWrapper); // FileWrapper control div
|
|
235
|
+
|
|
236
|
+
renderManager.style("width", fileWrapper.width);
|
|
237
|
+
renderManager.openEnd(); // Outer Box
|
|
238
|
+
|
|
239
|
+
renderManager.openStart("div"); // div for all controls
|
|
240
|
+
|
|
241
|
+
renderManager.style("display", "flex");
|
|
242
|
+
renderManager.style("box-sizing", "border-box");
|
|
243
|
+
renderManager.style("justify-content", "space-between");
|
|
244
|
+
renderManager.style("align-items", "center");
|
|
245
|
+
renderManager.style("flex-wrap", "wrap");
|
|
246
|
+
renderManager.style("align-content", "stretch");
|
|
247
|
+
renderManager.style("width", "100%");
|
|
248
|
+
renderManager.openEnd(); // Display Mode
|
|
249
|
+
|
|
250
|
+
renderManager.openStart("div"); // div for controls shown in Display mode
|
|
251
|
+
|
|
252
|
+
renderManager.style("display", "flex");
|
|
253
|
+
renderManager.style("align-items", "center");
|
|
254
|
+
renderManager.openEnd();
|
|
255
|
+
|
|
256
|
+
if (fileWrapper.avatar) {
|
|
257
|
+
renderManager.renderControl(fileWrapper.avatar); // render the Avatar Control
|
|
258
|
+
} else {
|
|
259
|
+
renderManager.renderControl(fileWrapper.icon); // render the Icon Control
|
|
260
|
+
|
|
261
|
+
renderManager.renderControl(fileWrapper.link); // render the Link Control
|
|
262
|
+
|
|
263
|
+
renderManager.renderControl(fileWrapper.text); // render the Text Control for empty file indication
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
renderManager.close("div"); // div for controls shown in Display mode
|
|
267
|
+
// Additional content for Edit Mode
|
|
268
|
+
|
|
269
|
+
renderManager.openStart("div"); // div for controls shown in Display + Edit mode
|
|
270
|
+
|
|
271
|
+
renderManager.style("display", "flex");
|
|
272
|
+
renderManager.style("align-items", "center");
|
|
273
|
+
renderManager.openEnd();
|
|
274
|
+
renderManager.renderControl(fileWrapper.fileUploader); // render the FileUploader Control
|
|
275
|
+
|
|
276
|
+
renderManager.renderControl(fileWrapper.deleteButton); // render the Delete Button Control
|
|
277
|
+
|
|
278
|
+
renderManager.close("div"); // div for controls shown in Display + Edit mode
|
|
279
|
+
|
|
280
|
+
renderManager.close("div"); // div for all controls
|
|
281
|
+
|
|
282
|
+
renderManager.close("div"); // end of the complete Control
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
_proto.destroy = function destroy(bSuppressInvalidate) {
|
|
286
|
+
var oSideEffects = this._getSideEffectController();
|
|
287
|
+
|
|
288
|
+
if (oSideEffects) {
|
|
289
|
+
oSideEffects.removeControlSideEffects(this);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
delete this.busyDialog;
|
|
293
|
+
FieldWrapper.prototype.destroy.apply(this, [bSuppressInvalidate]);
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
return FileWrapper;
|
|
297
|
+
}(FieldWrapper), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "uploadUrl", [_dec2], {
|
|
298
|
+
configurable: true,
|
|
299
|
+
enumerable: true,
|
|
300
|
+
writable: true,
|
|
301
|
+
initializer: null
|
|
302
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "parentEntitySet", [_dec3], {
|
|
303
|
+
configurable: true,
|
|
304
|
+
enumerable: true,
|
|
305
|
+
writable: true,
|
|
306
|
+
initializer: null
|
|
307
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "parentEntityType", [_dec4], {
|
|
308
|
+
configurable: true,
|
|
309
|
+
enumerable: true,
|
|
310
|
+
writable: true,
|
|
311
|
+
initializer: null
|
|
312
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "propertyPath", [_dec5], {
|
|
313
|
+
configurable: true,
|
|
314
|
+
enumerable: true,
|
|
315
|
+
writable: true,
|
|
316
|
+
initializer: null
|
|
317
|
+
}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "filename", [_dec6], {
|
|
318
|
+
configurable: true,
|
|
319
|
+
enumerable: true,
|
|
320
|
+
writable: true,
|
|
321
|
+
initializer: null
|
|
322
|
+
}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "mediaType", [_dec7], {
|
|
323
|
+
configurable: true,
|
|
324
|
+
enumerable: true,
|
|
325
|
+
writable: true,
|
|
326
|
+
initializer: null
|
|
327
|
+
}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "avatar", [_dec8], {
|
|
328
|
+
configurable: true,
|
|
329
|
+
enumerable: true,
|
|
330
|
+
writable: true,
|
|
331
|
+
initializer: null
|
|
332
|
+
}), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "icon", [_dec9], {
|
|
333
|
+
configurable: true,
|
|
334
|
+
enumerable: true,
|
|
335
|
+
writable: true,
|
|
336
|
+
initializer: null
|
|
337
|
+
}), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "link", [_dec10], {
|
|
338
|
+
configurable: true,
|
|
339
|
+
enumerable: true,
|
|
340
|
+
writable: true,
|
|
341
|
+
initializer: null
|
|
342
|
+
}), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "text", [_dec11], {
|
|
343
|
+
configurable: true,
|
|
344
|
+
enumerable: true,
|
|
345
|
+
writable: true,
|
|
346
|
+
initializer: null
|
|
347
|
+
}), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "fileUploader", [_dec12], {
|
|
348
|
+
configurable: true,
|
|
349
|
+
enumerable: true,
|
|
350
|
+
writable: true,
|
|
351
|
+
initializer: null
|
|
352
|
+
}), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "deleteButton", [_dec13], {
|
|
353
|
+
configurable: true,
|
|
354
|
+
enumerable: true,
|
|
355
|
+
writable: true,
|
|
356
|
+
initializer: null
|
|
357
|
+
})), _class2)) || _class);
|
|
358
|
+
return FileWrapper;
|
|
359
|
+
}, false);
|
|
360
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpbGVXcmFwcGVyLnRzIl0sIm5hbWVzIjpbIkZpbGVXcmFwcGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJwcm9wZXJ0eSIsInR5cGUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiX2J1c3kiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsImFjY0luZm8iLCJhdmF0YXIiLCJwdXNoIiwiaWNvbiIsImxpbmsiLCJ0ZXh0IiwiZmlsZVVwbG9hZGVyIiwiZGVsZXRlQnV0dG9uIiwiY2hpbGRyZW4iLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9zZXRBcmlhTGFiZWxzIiwiX2FkZFNpZGVFZmZlY3RzIiwiX3NldEFyaWFMYWJlbGxlZEJ5Iiwic291cmNlUHJvcGVydHkiLCJzb3VyY2VQYXRoIiwicGF0aCIsInBhcmVudEVudGl0eVNldFdpdGhTbGFzaCIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwiZ2V0Q3VzdG9tRGF0YSIsImZvckVhY2giLCJpdGVtIiwiZ2V0UHJvcGVydHkiLCJwYXJlbnRFbnRpdHlTZXQiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwibGVuZ3RoIiwicmVwbGFjZSIsInByb3BlcnR5UGF0aCIsImZpbGVuYW1lIiwibWVkaWFUeXBlIiwiX2dldFNpZGVFZmZlY3RDb250cm9sbGVyIiwiYWRkQ29udHJvbFNpZGVFZmZlY3RzIiwicGFyZW50RW50aXR5VHlwZSIsIlNvdXJjZVByb3BlcnRpZXMiLCJUYXJnZXRFbnRpdGllcyIsInNvdXJjZUNvbnRyb2xJZCIsImdldElkIiwiY29udHJvbGxlciIsIl9nZXRWaWV3Q29udHJvbGxlciIsIl9zaWRlRWZmZWN0cyIsInVuZGVmaW5lZCIsInZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwiZ2V0VXBsb2FkVXJsIiwiY29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwidXBsb2FkVXJsIiwiZ2V0UGF0aCIsImdldENhbm9uaWNhbFBhdGgiLCJzZXRVSUJ1c3kiLCJidXN5IiwidGhhdCIsImJ1c3lEaWFsb2ciLCJCdXN5RGlhbG9nIiwiUmVzb3VyY2VNb2RlbCIsImdldFRleHQiLCJzaG93Q2FuY2VsQnV0dG9uIiwic2V0VGltZW91dCIsIm9wZW4iLCJjbG9zZSIsInJlbmRlciIsInJlbmRlck1hbmFnZXIiLCJmaWxlV3JhcHBlciIsIm9wZW5TdGFydCIsInN0eWxlIiwid2lkdGgiLCJvcGVuRW5kIiwicmVuZGVyQ29udHJvbCIsImRlc3Ryb3kiLCJiU3VwcHJlc3NJbnZhbGlkYXRlIiwib1NpZGVFZmZlY3RzIiwicmVtb3ZlQ29udHJvbFNpZGVFZmZlY3RzIiwiRmllbGRXcmFwcGVyIiwicHJvdG90eXBlIiwiYXBwbHkiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFlTUEsVyxXQURMQyxjQUFjLENBQUMsa0NBQUQsQyxVQUViQyxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFO0FBQVIsR0FBRCxDLFVBRVJELFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUU7QUFBUixHQUFELEMsVUFFUkQsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRTtBQUFSLEdBQUQsQyxVQUVSRCxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFO0FBQVIsR0FBRCxDLFVBRVJELFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUU7QUFBUixHQUFELEMsVUFFUkQsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRTtBQUFSLEdBQUQsQyxVQUVSQyxXQUFXLENBQUM7QUFBRUQsSUFBQUEsSUFBSSxFQUFFLGNBQVI7QUFBd0JFLElBQUFBLFFBQVEsRUFBRTtBQUFsQyxHQUFELEMsVUFFWEQsV0FBVyxDQUFDO0FBQUVELElBQUFBLElBQUksRUFBRSxrQkFBUjtBQUE0QkUsSUFBQUEsUUFBUSxFQUFFO0FBQXRDLEdBQUQsQyxXQUVYRCxXQUFXLENBQUM7QUFBRUQsSUFBQUEsSUFBSSxFQUFFLFlBQVI7QUFBc0JF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LFNBQWQsQ0FBd0IsS0FBeEIsRUFoQ3FFLENBZ0NyQzs7QUFDaENGLE1BQUFBLGFBQWEsQ0FBQ0csS0FBZCxDQUFvQixTQUFwQixFQUErQixNQUEvQjtBQUNBSCxNQUFBQSxhQUFhLENBQUNHLEtBQWQsQ0FBb0IsYUFBcEIsRUFBbUMsUUFBbkM7QUFDQUgsTUFBQUEsYUFBYSxDQUFDSyxPQUFkO0FBQ0FMLE1BQUFBLGFBQWEsQ0FBQ00sYUFBZCxDQUE0QkwsV0FBVyxDQUFDMUQsWUFBeEMsRUFwQ3FFLENBb0NkOztBQUN2RHlELE1BQUFBLGFBQWEsQ0FBQ00sYUFBZCxDQUE0QkwsV0FBVyxDQUFDekQsWUFBeEMsRUFyQ3FFLENBcUNkOztBQUN2RHdELE1BQUFBLGFBQWEsQ0FBQ0YsS0FBZCxDQUFvQixLQUFwQixFQXRDcUUsQ0FzQ3pDOztBQUU1QkUsTUFBQUEsYUFBYSxDQUFDRixLQUFkLENBQW9CLEtBQXBCLEVBeENxRSxDQXdDekM7O0FBRTVCRSxNQUFBQSxhQUFhLENBQUNGLEtBQWQsQ0FBb0IsS0FBcEIsRUExQ3FFLENBMEN6QztBQUM1QixLOztXQUNEUyxPLEdBQUEsaUJBQVFDLG1CQUFSLEVBQXNDO0FBQ3JDLFVBQU1DLFlBQVksR0FBRyxLQUFLMUMsd0JBQUwsRUFBckI7O0FBQ0EsVUFBSTBDLFlBQUosRUFBa0I7QUFDakJBLFFBQUFBLFlBQVksQ0FBQ0Msd0JBQWIsQ0FBc0MsSUFBdEM7QUFDQTs7QUFDRCxhQUFPLEtBQUtuQixVQUFaO0FBQ0FvQixNQUFBQSxZQUFZLENBQUNDLFNBQWIsQ0FBdUJMLE9BQXZCLENBQStCTSxLQUEvQixDQUFxQyxJQUFyQyxFQUEyQyxDQUFDTCxtQkFBRCxDQUEzQztBQUNBLEs7OztJQXJMd0JHLFk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0F3TFhsRixXIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgQXZhdGFyIGZyb20gXCJzYXAvbS9BdmF0YXJcIjtcbmltcG9ydCBCdXN5RGlhbG9nIGZyb20gXCJzYXAvbS9CdXN5RGlhbG9nXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBMaW5rIGZyb20gXCJzYXAvbS9MaW5rXCI7XG5pbXBvcnQgVGV4dCBmcm9tIFwic2FwL20vVGV4dFwiO1xuaW1wb3J0IEljb24gZnJvbSBcInNhcC91aS9jb3JlL0ljb25cIjtcbmltcG9ydCB7IFVSSSB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgVjRDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IEZpbGVVcGxvYWRlciBmcm9tIFwic2FwL3VpL3VuaWZpZWQvRmlsZVVwbG9hZGVyXCI7XG5pbXBvcnQgRmllbGRXcmFwcGVyIGZyb20gXCIuL0ZpZWxkV3JhcHBlclwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWxlV3JhcHBlclwiKVxuY2xhc3MgRmlsZVdyYXBwZXIgZXh0ZW5kcyBGaWVsZFdyYXBwZXIge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInNhcC51aS5jb3JlLlVSSVwiIH0pXG5cdHVwbG9hZFVybCE6IFVSSTtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiIH0pXG5cdHBhcmVudEVudGl0eVNldCE6IENvbnRleHQ7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIiB9KVxuXHRwYXJlbnRFbnRpdHlUeXBlITogQ29udGV4dDtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRwcm9wZXJ0eVBhdGghOiBzdHJpbmc7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZmlsZW5hbWUhOiBzdHJpbmc7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0bWVkaWFUeXBlITogc3RyaW5nO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkF2YXRhclwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0YXZhdGFyITogQXZhdGFyO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkljb25cIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGljb24hOiBJY29uO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkxpbmtcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGxpbmshOiBMaW5rO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLlRleHRcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdHRleHQhOiBUZXh0O1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS51bmlmaWVkLkZpbGVVcGxvYWRlclwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0ZmlsZVVwbG9hZGVyITogRmlsZVVwbG9hZGVyO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkJ1dHRvblwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0ZGVsZXRlQnV0dG9uITogQnV0dG9uO1xuXHRwcml2YXRlIF9idXN5OiBib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgYnVzeURpYWxvZz86IEJ1c3lEaWFsb2c7XG5cblx0Z2V0QWNjZXNzaWJpbGl0eUluZm8oKSB7XG5cdFx0Y29uc3QgYWNjSW5mbyA9IFtdO1xuXHRcdGlmICh0aGlzLmF2YXRhcikge1xuXHRcdFx0YWNjSW5mby5wdXNoKHRoaXMuYXZhdGFyKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuaWNvbikge1xuXHRcdFx0YWNjSW5mby5wdXNoKHRoaXMuaWNvbik7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmxpbmspIHtcblx0XHRcdGFjY0luZm8ucHVzaCh0aGlzLmxpbmspO1xuXHRcdH1cblx0XHRpZiAodGhpcy50ZXh0KSB7XG5cdFx0XHRhY2NJbmZvLnB1c2godGhpcy50ZXh0KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuZmlsZVVwbG9hZGVyKSB7XG5cdFx0XHRhY2NJbmZvLnB1c2godGhpcy5maWxlVXBsb2FkZXIpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5kZWxldGVCdXR0b24pIHtcblx0XHRcdGFjY0luZm8ucHVzaCh0aGlzLmRlbGV0ZUJ1dHRvbik7XG5cdFx0fVxuXHRcdHJldHVybiB7IGNoaWxkcmVuOiBhY2NJbmZvIH07XG5cdH1cblxuXHRvbkJlZm9yZVJlbmRlcmluZygpIHtcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxzKCk7XG5cdFx0dGhpcy5fYWRkU2lkZUVmZmVjdHMoKTtcblx0fVxuXG5cdF9zZXRBcmlhTGFiZWxzKCkge1xuXHRcdHRoaXMuX3NldEFyaWFMYWJlbGxlZEJ5KHRoaXMuYXZhdGFyKTtcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmljb24pO1xuXHRcdHRoaXMuX3NldEFyaWFMYWJlbGxlZEJ5KHRoaXMubGluayk7XG5cdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkodGhpcy50ZXh0KTtcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmZpbGVVcGxvYWRlcik7XG5cdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkodGhpcy5kZWxldGVCdXR0b24pO1xuXHR9XG5cblx0X2FkZFNpZGVFZmZlY3RzKCkge1xuXHRcdC8vIGFkZCBTaWRlRWZmZWN0cyBmb3Igc3RyZWFtIGNvbnRlbnQsIGZpbGVuYW1lIGFuZCBtZWRpYXR5cGVcblx0XHRsZXQgc291cmNlUHJvcGVydHkgPSBcIlwiLFxuXHRcdFx0c291cmNlUGF0aCA9IFwiXCIsXG5cdFx0XHRwYXRoID0gXCJcIixcblx0XHRcdHBhcmVudEVudGl0eVNldFdpdGhTbGFzaCA9IFwiXCI7XG5cdFx0Y29uc3QgbmF2aWdhdGlvblByb3BlcnRpZXM6IG9iamVjdFtdID0gW107XG5cdFx0dGhpcy5nZXRDdXN0b21EYXRhKCkuZm9yRWFjaChmdW5jdGlvbiAoaXRlbTogYW55KSB7XG5cdFx0XHRpZiAoaXRlbS5nZXRQcm9wZXJ0eShcImtleVwiKSA9PT0gXCJzb3VyY2VQYXRoXCIpIHtcblx0XHRcdFx0c291cmNlUGF0aCA9IGl0ZW0uZ2V0UHJvcGVydHkoXCJ2YWx1ZVwiKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRwYXJlbnRFbnRpdHlTZXRXaXRoU2xhc2ggPSBcIi9cIiArIHRoaXMucGFyZW50RW50aXR5U2V0ICsgXCIvXCI7XG5cdFx0c291cmNlUHJvcGVydHkgPSBzb3VyY2VQYXRoLnN1YnN0cmluZyhcblx0XHRcdHNvdXJjZVBhdGguaW5kZXhPZihwYXJlbnRFbnRpdHlTZXRXaXRoU2xhc2gpICsgcGFyZW50RW50aXR5U2V0V2l0aFNsYXNoLmxlbmd0aCxcblx0XHRcdHNvdXJjZVBhdGgubGVuZ3RoXG5cdFx0KTtcblx0XHRwYXRoID0gc291cmNlUHJvcGVydHkucmVwbGFjZSh0aGlzLnByb3BlcnR5UGF0aCwgXCJcIik7XG5cdFx0bmF2aWdhdGlvblByb3BlcnRpZXMucHVzaCh7IFwiJE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIjogc291cmNlUHJvcGVydHkgfSk7XG5cdFx0aWYgKHRoaXMuZmlsZW5hbWUpIHtcblx0XHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLnB1c2goeyBcIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCI6IHBhdGggKyB0aGlzLmZpbGVuYW1lIH0pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5tZWRpYVR5cGUpIHtcblx0XHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLnB1c2goeyBcIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCI6IHBhdGggKyB0aGlzLm1lZGlhVHlwZSB9KTtcblx0XHR9XG5cdFx0dGhpcy5fZ2V0U2lkZUVmZmVjdENvbnRyb2xsZXIoKS5hZGRDb250cm9sU2lkZUVmZmVjdHModGhpcy5wYXJlbnRFbnRpdHlUeXBlLCB7XG5cdFx0XHRTb3VyY2VQcm9wZXJ0aWVzOiBzb3VyY2VQcm9wZXJ0eSxcblx0XHRcdFRhcmdldEVudGl0aWVzOiBuYXZpZ2F0aW9uUHJvcGVydGllcyxcblx0XHRcdHNvdXJjZUNvbnRyb2xJZDogdGhpcy5nZXRJZCgpXG5cdFx0fSk7XG5cdH1cblx0X2dldFNpZGVFZmZlY3RDb250cm9sbGVyKCkge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRWaWV3Q29udHJvbGxlcigpO1xuXHRcdHJldHVybiBjb250cm9sbGVyID8gY29udHJvbGxlci5fc2lkZUVmZmVjdHMgOiB1bmRlZmluZWQ7XG5cdH1cblx0X2dldFZpZXdDb250cm9sbGVyKCkge1xuXHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiB2aWV3ICYmIHZpZXcuZ2V0Q29udHJvbGxlcigpO1xuXHR9XG5cdGdldFVwbG9hZFVybCgpIHtcblx0XHQvLyBzZXQgdXBsb2FkIHVybCBhcyBjYW5vbmljYWwgdXJsIGZvciBOYXZpZ2F0aW9uUHJvcGVydGllc1xuXHRcdC8vIHRoaXMgaXMgYSB3b3JrYXJvdW5kIGFzIHNvbWUgYmFja2VuZHMgY2Fubm90IHJlc29sdmUgTmF2aWdhdGlvbnNQcm9wZXJ0aWVzIGZvciBzdHJlYW0gdHlwZXNcblx0XHRjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIFY0Q29udGV4dDtcblx0XHRyZXR1cm4gY29udGV4dCA/IHRoaXMudXBsb2FkVXJsLnJlcGxhY2UoY29udGV4dC5nZXRQYXRoKCksIGNvbnRleHQuZ2V0Q2Fub25pY2FsUGF0aCgpKSA6IFwiXCI7XG5cdH1cblx0c2V0VUlCdXN5KGJ1c3k6IGJvb2xlYW4pIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0XHRjb25zdCB0aGF0ID0gdGhpcztcblx0XHR0aGlzLl9idXN5ID0gYnVzeTtcblx0XHRpZiAoYnVzeSkge1xuXHRcdFx0aWYgKCF0aGlzLmJ1c3lEaWFsb2cpIHtcblx0XHRcdFx0dGhpcy5idXN5RGlhbG9nID0gbmV3IEJ1c3lEaWFsb2coe1xuXHRcdFx0XHRcdHRleHQ6IFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIk1fRklMRVdSQVBQRVJfQlVTWV9ESUFMT0dfVElUTEVcIiksXG5cdFx0XHRcdFx0c2hvd0NhbmNlbEJ1dHRvbjogZmFsc2Vcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0aWYgKHRoYXQuX2J1c3kpIHtcblx0XHRcdFx0XHR0aGF0LmJ1c3lEaWFsb2c/Lm9wZW4oKTtcblx0XHRcdFx0fVxuXHRcdFx0fSwgMTAwMCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuYnVzeURpYWxvZz8uY2xvc2UoZmFsc2UpO1xuXHRcdH1cblx0fVxuXHRzdGF0aWMgcmVuZGVyKHJlbmRlck1hbmFnZXI6IFJlbmRlck1hbmFnZXIsIGZpbGVXcmFwcGVyOiBGaWxlV3JhcHBlcikge1xuXHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KFwiZGl2XCIsIGZpbGVXcmFwcGVyKTsgLy8gRmlsZVdyYXBwZXIgY29udHJvbCBkaXZcblx0XHRyZW5kZXJNYW5hZ2VyLnN0eWxlKFwid2lkdGhcIiwgZmlsZVdyYXBwZXIud2lkdGgpO1xuXHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXG5cdFx0Ly8gT3V0ZXIgQm94XG5cdFx0cmVuZGVyTWFuYWdlci5vcGVuU3RhcnQoXCJkaXZcIik7IC8vIGRpdiBmb3IgYWxsIGNvbnRyb2xzXG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuXHRcdHJlbmRlck1hbmFnZXIuc3R5bGUoXCJib3gtc2l6aW5nXCIsIFwiYm9yZGVyLWJveFwiKTtcblx0XHRyZW5kZXJNYW5hZ2VyLnN0eWxlKFwianVzdGlmeS1jb250ZW50XCIsIFwic3BhY2UtYmV0d2VlblwiKTtcblx0XHRyZW5kZXJNYW5hZ2VyLnN0eWxlKFwiYWxpZ24taXRlbXNcIiwgXCJjZW50ZXJcIik7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcImZsZXgtd3JhcFwiLCBcIndyYXBcIik7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcImFsaWduLWNvbnRlbnRcIiwgXCJzdHJldGNoXCIpO1xuXHRcdHJlbmRlck1hbmFnZXIuc3R5bGUoXCJ3aWR0aFwiLCBcIjEwMCVcIik7XG5cdFx0cmVuZGVyTWFuYWdlci5vcGVuRW5kKCk7XG5cblx0XHQvLyBEaXNwbGF5IE1vZGVcblx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5TdGFydChcImRpdlwiKTsgLy8gZGl2IGZvciBjb250cm9scyBzaG93biBpbiBEaXNwbGF5IG1vZGVcblx0XHRyZW5kZXJNYW5hZ2VyLnN0eWxlKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcImFsaWduLWl0ZW1zXCIsIFwiY2VudGVyXCIpO1xuXHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXG5cdFx0aWYgKGZpbGVXcmFwcGVyLmF2YXRhcikge1xuXHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGZpbGVXcmFwcGVyLmF2YXRhcik7IC8vIHJlbmRlciB0aGUgQXZhdGFyIENvbnRyb2xcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGZpbGVXcmFwcGVyLmljb24pOyAvLyByZW5kZXIgdGhlIEljb24gQ29udHJvbFxuXHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGZpbGVXcmFwcGVyLmxpbmspOyAvLyByZW5kZXIgdGhlIExpbmsgQ29udHJvbFxuXHRcdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGZpbGVXcmFwcGVyLnRleHQpOyAvLyByZW5kZXIgdGhlIFRleHQgQ29udHJvbCBmb3IgZW1wdHkgZmlsZSBpbmRpY2F0aW9uXG5cdFx0fVxuXHRcdHJlbmRlck1hbmFnZXIuY2xvc2UoXCJkaXZcIik7IC8vIGRpdiBmb3IgY29udHJvbHMgc2hvd24gaW4gRGlzcGxheSBtb2RlXG5cblx0XHQvLyBBZGRpdGlvbmFsIGNvbnRlbnQgZm9yIEVkaXQgTW9kZVxuXHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KFwiZGl2XCIpOyAvLyBkaXYgZm9yIGNvbnRyb2xzIHNob3duIGluIERpc3BsYXkgKyBFZGl0IG1vZGVcblx0XHRyZW5kZXJNYW5hZ2VyLnN0eWxlKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcImFsaWduLWl0ZW1zXCIsIFwiY2VudGVyXCIpO1xuXHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChmaWxlV3JhcHBlci5maWxlVXBsb2FkZXIpOyAvLyByZW5kZXIgdGhlIEZpbGVVcGxvYWRlciBDb250cm9sXG5cdFx0cmVuZGVyTWFuYWdlci5yZW5kZXJDb250cm9sKGZpbGVXcmFwcGVyLmRlbGV0ZUJ1dHRvbik7IC8vIHJlbmRlciB0aGUgRGVsZXRlIEJ1dHRvbiBDb250cm9sXG5cdFx0cmVuZGVyTWFuYWdlci5jbG9zZShcImRpdlwiKTsgLy8gZGl2IGZvciBjb250cm9scyBzaG93biBpbiBEaXNwbGF5ICsgRWRpdCBtb2RlXG5cblx0XHRyZW5kZXJNYW5hZ2VyLmNsb3NlKFwiZGl2XCIpOyAvLyBkaXYgZm9yIGFsbCBjb250cm9sc1xuXG5cdFx0cmVuZGVyTWFuYWdlci5jbG9zZShcImRpdlwiKTsgLy8gZW5kIG9mIHRoZSBjb21wbGV0ZSBDb250cm9sXG5cdH1cblx0ZGVzdHJveShiU3VwcHJlc3NJbnZhbGlkYXRlOiBib29sZWFuKSB7XG5cdFx0Y29uc3Qgb1NpZGVFZmZlY3RzID0gdGhpcy5fZ2V0U2lkZUVmZmVjdENvbnRyb2xsZXIoKTtcblx0XHRpZiAob1NpZGVFZmZlY3RzKSB7XG5cdFx0XHRvU2lkZUVmZmVjdHMucmVtb3ZlQ29udHJvbFNpZGVFZmZlY3RzKHRoaXMpO1xuXHRcdH1cblx0XHRkZWxldGUgdGhpcy5idXN5RGlhbG9nO1xuXHRcdEZpZWxkV3JhcHBlci5wcm90b3R5cGUuZGVzdHJveS5hcHBseSh0aGlzLCBbYlN1cHByZXNzSW52YWxpZGF0ZV0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVXcmFwcGVyO1xuIl19
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
2
|
+
import { aggregation, defineUI5Class, property } from "sap/fe/core/helpers/ClassSupport";
|
|
3
|
+
import ResourceModel from "sap/fe/macros/ResourceModel";
|
|
4
|
+
import Avatar from "sap/m/Avatar";
|
|
5
|
+
import BusyDialog from "sap/m/BusyDialog";
|
|
6
|
+
import Button from "sap/m/Button";
|
|
7
|
+
import Link from "sap/m/Link";
|
|
8
|
+
import Text from "sap/m/Text";
|
|
9
|
+
import Icon from "sap/ui/core/Icon";
|
|
10
|
+
import { URI } from "sap/ui/core/library";
|
|
11
|
+
import RenderManager from "sap/ui/core/RenderManager";
|
|
12
|
+
import Context from "sap/ui/model/Context";
|
|
13
|
+
import V4Context from "sap/ui/model/odata/v4/Context";
|
|
14
|
+
import FileUploader from "sap/ui/unified/FileUploader";
|
|
15
|
+
import FieldWrapper from "./FieldWrapper";
|
|
16
|
+
|
|
17
|
+
@defineUI5Class("sap.fe.core.controls.FileWrapper")
|
|
18
|
+
class FileWrapper extends FieldWrapper {
|
|
19
|
+
@property({ type: "sap.ui.core.URI" })
|
|
20
|
+
uploadUrl!: URI;
|
|
21
|
+
@property({ type: "sap.ui.model.Context" })
|
|
22
|
+
parentEntitySet!: Context;
|
|
23
|
+
@property({ type: "sap.ui.model.Context" })
|
|
24
|
+
parentEntityType!: Context;
|
|
25
|
+
@property({ type: "string" })
|
|
26
|
+
propertyPath!: string;
|
|
27
|
+
@property({ type: "string" })
|
|
28
|
+
filename!: string;
|
|
29
|
+
@property({ type: "string" })
|
|
30
|
+
mediaType!: string;
|
|
31
|
+
@aggregation({ type: "sap.m.Avatar", multiple: false })
|
|
32
|
+
avatar!: Avatar;
|
|
33
|
+
@aggregation({ type: "sap.ui.core.Icon", multiple: false })
|
|
34
|
+
icon!: Icon;
|
|
35
|
+
@aggregation({ type: "sap.m.Link", multiple: false })
|
|
36
|
+
link!: Link;
|
|
37
|
+
@aggregation({ type: "sap.m.Text", multiple: false })
|
|
38
|
+
text!: Text;
|
|
39
|
+
@aggregation({ type: "sap.ui.unified.FileUploader", multiple: false })
|
|
40
|
+
fileUploader!: FileUploader;
|
|
41
|
+
@aggregation({ type: "sap.m.Button", multiple: false })
|
|
42
|
+
deleteButton!: Button;
|
|
43
|
+
private _busy: boolean = false;
|
|
44
|
+
private busyDialog?: BusyDialog;
|
|
45
|
+
|
|
46
|
+
getAccessibilityInfo() {
|
|
47
|
+
const accInfo = [];
|
|
48
|
+
if (this.avatar) {
|
|
49
|
+
accInfo.push(this.avatar);
|
|
50
|
+
}
|
|
51
|
+
if (this.icon) {
|
|
52
|
+
accInfo.push(this.icon);
|
|
53
|
+
}
|
|
54
|
+
if (this.link) {
|
|
55
|
+
accInfo.push(this.link);
|
|
56
|
+
}
|
|
57
|
+
if (this.text) {
|
|
58
|
+
accInfo.push(this.text);
|
|
59
|
+
}
|
|
60
|
+
if (this.fileUploader) {
|
|
61
|
+
accInfo.push(this.fileUploader);
|
|
62
|
+
}
|
|
63
|
+
if (this.deleteButton) {
|
|
64
|
+
accInfo.push(this.deleteButton);
|
|
65
|
+
}
|
|
66
|
+
return { children: accInfo };
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
onBeforeRendering() {
|
|
70
|
+
this._setAriaLabels();
|
|
71
|
+
this._addSideEffects();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
_setAriaLabels() {
|
|
75
|
+
this._setAriaLabelledBy(this.avatar);
|
|
76
|
+
this._setAriaLabelledBy(this.icon);
|
|
77
|
+
this._setAriaLabelledBy(this.link);
|
|
78
|
+
this._setAriaLabelledBy(this.text);
|
|
79
|
+
this._setAriaLabelledBy(this.fileUploader);
|
|
80
|
+
this._setAriaLabelledBy(this.deleteButton);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
_addSideEffects() {
|
|
84
|
+
// add SideEffects for stream content, filename and mediatype
|
|
85
|
+
let sourceProperty = "",
|
|
86
|
+
sourcePath = "",
|
|
87
|
+
path = "",
|
|
88
|
+
parentEntitySetWithSlash = "";
|
|
89
|
+
const navigationProperties: object[] = [];
|
|
90
|
+
this.getCustomData().forEach(function (item: any) {
|
|
91
|
+
if (item.getProperty("key") === "sourcePath") {
|
|
92
|
+
sourcePath = item.getProperty("value");
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
parentEntitySetWithSlash = "/" + this.parentEntitySet + "/";
|
|
96
|
+
sourceProperty = sourcePath.substring(
|
|
97
|
+
sourcePath.indexOf(parentEntitySetWithSlash) + parentEntitySetWithSlash.length,
|
|
98
|
+
sourcePath.length
|
|
99
|
+
);
|
|
100
|
+
path = sourceProperty.replace(this.propertyPath, "");
|
|
101
|
+
navigationProperties.push({ "$NavigationPropertyPath": sourceProperty });
|
|
102
|
+
if (this.filename) {
|
|
103
|
+
navigationProperties.push({ "$NavigationPropertyPath": path + this.filename });
|
|
104
|
+
}
|
|
105
|
+
if (this.mediaType) {
|
|
106
|
+
navigationProperties.push({ "$NavigationPropertyPath": path + this.mediaType });
|
|
107
|
+
}
|
|
108
|
+
this._getSideEffectController().addControlSideEffects(this.parentEntityType, {
|
|
109
|
+
SourceProperties: sourceProperty,
|
|
110
|
+
TargetEntities: navigationProperties,
|
|
111
|
+
sourceControlId: this.getId()
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
_getSideEffectController() {
|
|
115
|
+
const controller = this._getViewController();
|
|
116
|
+
return controller ? controller._sideEffects : undefined;
|
|
117
|
+
}
|
|
118
|
+
_getViewController() {
|
|
119
|
+
const view = CommonUtils.getTargetView(this);
|
|
120
|
+
return view && view.getController();
|
|
121
|
+
}
|
|
122
|
+
getUploadUrl() {
|
|
123
|
+
// set upload url as canonical url for NavigationProperties
|
|
124
|
+
// this is a workaround as some backends cannot resolve NavigationsProperties for stream types
|
|
125
|
+
const context = this.getBindingContext() as V4Context;
|
|
126
|
+
return context ? this.uploadUrl.replace(context.getPath(), context.getCanonicalPath()) : "";
|
|
127
|
+
}
|
|
128
|
+
setUIBusy(busy: boolean) {
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
130
|
+
const that = this;
|
|
131
|
+
this._busy = busy;
|
|
132
|
+
if (busy) {
|
|
133
|
+
if (!this.busyDialog) {
|
|
134
|
+
this.busyDialog = new BusyDialog({
|
|
135
|
+
text: ResourceModel.getText("M_FILEWRAPPER_BUSY_DIALOG_TITLE"),
|
|
136
|
+
showCancelButton: false
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
setTimeout(function () {
|
|
140
|
+
if (that._busy) {
|
|
141
|
+
that.busyDialog?.open();
|
|
142
|
+
}
|
|
143
|
+
}, 1000);
|
|
144
|
+
} else {
|
|
145
|
+
this.busyDialog?.close(false);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
static render(renderManager: RenderManager, fileWrapper: FileWrapper) {
|
|
149
|
+
renderManager.openStart("div", fileWrapper); // FileWrapper control div
|
|
150
|
+
renderManager.style("width", fileWrapper.width);
|
|
151
|
+
renderManager.openEnd();
|
|
152
|
+
|
|
153
|
+
// Outer Box
|
|
154
|
+
renderManager.openStart("div"); // div for all controls
|
|
155
|
+
renderManager.style("display", "flex");
|
|
156
|
+
renderManager.style("box-sizing", "border-box");
|
|
157
|
+
renderManager.style("justify-content", "space-between");
|
|
158
|
+
renderManager.style("align-items", "center");
|
|
159
|
+
renderManager.style("flex-wrap", "wrap");
|
|
160
|
+
renderManager.style("align-content", "stretch");
|
|
161
|
+
renderManager.style("width", "100%");
|
|
162
|
+
renderManager.openEnd();
|
|
163
|
+
|
|
164
|
+
// Display Mode
|
|
165
|
+
renderManager.openStart("div"); // div for controls shown in Display mode
|
|
166
|
+
renderManager.style("display", "flex");
|
|
167
|
+
renderManager.style("align-items", "center");
|
|
168
|
+
renderManager.openEnd();
|
|
169
|
+
|
|
170
|
+
if (fileWrapper.avatar) {
|
|
171
|
+
renderManager.renderControl(fileWrapper.avatar); // render the Avatar Control
|
|
172
|
+
} else {
|
|
173
|
+
renderManager.renderControl(fileWrapper.icon); // render the Icon Control
|
|
174
|
+
renderManager.renderControl(fileWrapper.link); // render the Link Control
|
|
175
|
+
renderManager.renderControl(fileWrapper.text); // render the Text Control for empty file indication
|
|
176
|
+
}
|
|
177
|
+
renderManager.close("div"); // div for controls shown in Display mode
|
|
178
|
+
|
|
179
|
+
// Additional content for Edit Mode
|
|
180
|
+
renderManager.openStart("div"); // div for controls shown in Display + Edit mode
|
|
181
|
+
renderManager.style("display", "flex");
|
|
182
|
+
renderManager.style("align-items", "center");
|
|
183
|
+
renderManager.openEnd();
|
|
184
|
+
renderManager.renderControl(fileWrapper.fileUploader); // render the FileUploader Control
|
|
185
|
+
renderManager.renderControl(fileWrapper.deleteButton); // render the Delete Button Control
|
|
186
|
+
renderManager.close("div"); // div for controls shown in Display + Edit mode
|
|
187
|
+
|
|
188
|
+
renderManager.close("div"); // div for all controls
|
|
189
|
+
|
|
190
|
+
renderManager.close("div"); // end of the complete Control
|
|
191
|
+
}
|
|
192
|
+
destroy(bSuppressInvalidate: boolean) {
|
|
193
|
+
const oSideEffects = this._getSideEffectController();
|
|
194
|
+
if (oSideEffects) {
|
|
195
|
+
oSideEffects.removeControlSideEffects(this);
|
|
196
|
+
}
|
|
197
|
+
delete this.busyDialog;
|
|
198
|
+
FieldWrapper.prototype.destroy.apply(this, [bSuppressInvalidate]);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export default FileWrapper;
|