@sapui5/sap.fe.core 1.103.0 → 1.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +121 -0
- package/src/sap/fe/core/ActionRuntime.ts +122 -0
- package/src/sap/fe/core/AppComponent.js +24 -11
- package/src/sap/fe/core/AppComponent.ts +17 -5
- package/src/sap/fe/core/AppStateHandler.js +74 -62
- package/src/sap/fe/core/AppStateHandler.ts +24 -29
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/CommonUtils.js +147 -180
- package/src/sap/fe/core/CommonUtils.ts +166 -193
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/TemplateComponent.js +21 -10
- package/src/sap/fe/core/TemplateComponent.ts +3 -0
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +7 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +194 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +162 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -227
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +268 -119
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +111 -76
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +96 -76
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +723 -637
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +361 -398
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +83 -55
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +42 -44
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +29 -27
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -30
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +171 -74
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +167 -76
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -21
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -17
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -3
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
- package/src/sap/fe/core/controllerextensions/Paginator.ts +11 -11
- package/src/sap/fe/core/controllerextensions/Placeholder.js +2 -2
- package/src/sap/fe/core/controllerextensions/Routing.js +2 -2
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +154 -123
- package/src/sap/fe/core/controllerextensions/Share.ts +93 -95
- package/src/sap/fe/core/controllerextensions/SideEffects.js +157 -97
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +151 -95
- package/src/sap/fe/core/controllerextensions/ViewState.js +151 -80
- package/src/sap/fe/core/controllerextensions/ViewState.ts +95 -93
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +9 -9
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +6 -7
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +26 -11
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +30 -11
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -40
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +55 -47
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +31 -32
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1376 -914
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +654 -714
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +372 -326
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +210 -276
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +670 -521
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +537 -535
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +85 -65
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +16 -21
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +25 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +53 -43
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +18 -27
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +9 -15
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +19 -3
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +26 -16
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +5 -5
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -3
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.js +8 -3
- package/src/sap/fe/core/controls/FileWrapper.ts +5 -1
- package/src/sap/fe/core/controls/FilterBar.js +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +48 -17
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js +23 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +34 -9
- package/src/sap/fe/core/converters/ManifestSettings.js +19 -18
- package/src/sap/fe/core/converters/ManifestSettings.ts +53 -47
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +32 -10
- package/src/sap/fe/core/converters/MetaModelConverter.ts +42 -19
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +5 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +69 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +98 -51
- package/src/sap/fe/core/converters/controls/Common/Action.ts +121 -44
- package/src/sap/fe/core/converters/controls/Common/Chart.js +31 -34
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -34
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +43 -7
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -33
- package/src/sap/fe/core/converters/controls/Common/Form.js +8 -6
- package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -14
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +16 -15
- package/src/sap/fe/core/converters/controls/Common/Table.js +188 -157
- package/src/sap/fe/core/converters/controls/Common/Table.ts +279 -230
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +57 -21
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +71 -18
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +30 -8
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +43 -34
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +37 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +85 -49
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +74 -50
- package/src/sap/fe/core/converters/helpers/Aggregation.js +54 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +56 -8
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +6 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +10 -2
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +182 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +167 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -3
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +8 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +6 -9
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +31 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +54 -47
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +44 -15
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +64 -30
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/StandardFormatter.js +13 -6
- package/src/sap/fe/core/formatters/StandardFormatter.ts +20 -14
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/fpm/Component.js +33 -7
- package/src/sap/fe/core/fpm/Component.ts +14 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +5 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +4 -3
- package/src/sap/fe/core/helpers/BindingToolkit.js +56 -24
- package/src/sap/fe/core/helpers/BindingToolkit.ts +67 -21
- package/src/sap/fe/core/helpers/ClassSupport.js +31 -3
- package/src/sap/fe/core/helpers/ClassSupport.ts +24 -1
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +39 -0
- package/src/sap/fe/core/helpers/LoaderUtils.ts +14 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +475 -99
- package/src/sap/fe/core/helpers/MassEditHelper.ts +468 -155
- package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
- package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +82 -36
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +52 -36
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +146 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +128 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
- package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +119 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +98 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
- package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
- package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
- package/src/sap/fe/core/library.js +2 -2
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +4 -41
- package/src/sap/fe/core/messagebundle_ar.properties +22 -45
- package/src/sap/fe/core/messagebundle_bg.properties +22 -45
- package/src/sap/fe/core/messagebundle_ca.properties +22 -45
- package/src/sap/fe/core/messagebundle_cs.properties +22 -45
- package/src/sap/fe/core/messagebundle_cy.properties +21 -44
- package/src/sap/fe/core/messagebundle_da.properties +22 -45
- package/src/sap/fe/core/messagebundle_de.properties +22 -45
- package/src/sap/fe/core/messagebundle_el.properties +22 -45
- package/src/sap/fe/core/messagebundle_en.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_GB.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +21 -42
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -40
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -42
- package/src/sap/fe/core/messagebundle_es.properties +22 -45
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -45
- package/src/sap/fe/core/messagebundle_et.properties +22 -45
- package/src/sap/fe/core/messagebundle_fi.properties +22 -45
- package/src/sap/fe/core/messagebundle_fr.properties +21 -44
- package/src/sap/fe/core/messagebundle_fr_CA.properties +20 -43
- package/src/sap/fe/core/messagebundle_hi.properties +22 -45
- package/src/sap/fe/core/messagebundle_hr.properties +22 -45
- package/src/sap/fe/core/messagebundle_hu.properties +22 -45
- package/src/sap/fe/core/messagebundle_id.properties +22 -45
- package/src/sap/fe/core/messagebundle_it.properties +22 -45
- package/src/sap/fe/core/messagebundle_iw.properties +22 -45
- package/src/sap/fe/core/messagebundle_ja.properties +22 -45
- package/src/sap/fe/core/messagebundle_kk.properties +22 -45
- package/src/sap/fe/core/messagebundle_ko.properties +27 -50
- package/src/sap/fe/core/messagebundle_lt.properties +22 -45
- package/src/sap/fe/core/messagebundle_lv.properties +22 -45
- package/src/sap/fe/core/messagebundle_ms.properties +22 -45
- package/src/sap/fe/core/messagebundle_nl.properties +24 -47
- package/src/sap/fe/core/messagebundle_no.properties +22 -45
- package/src/sap/fe/core/messagebundle_pl.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -45
- package/src/sap/fe/core/messagebundle_ro.properties +22 -45
- package/src/sap/fe/core/messagebundle_ru.properties +22 -45
- package/src/sap/fe/core/messagebundle_sh.properties +22 -45
- package/src/sap/fe/core/messagebundle_sk.properties +22 -45
- package/src/sap/fe/core/messagebundle_sl.properties +22 -45
- package/src/sap/fe/core/messagebundle_sv.properties +22 -45
- package/src/sap/fe/core/messagebundle_th.properties +20 -43
- package/src/sap/fe/core/messagebundle_tr.properties +22 -45
- package/src/sap/fe/core/messagebundle_uk.properties +22 -45
- package/src/sap/fe/core/messagebundle_vi.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -45
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +102 -74
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +62 -63
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -8
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -7
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ShellServicesFactory.js +22 -2
- package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +251 -200
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +160 -144
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +5 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +5 -2
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +4 -5
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -3
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +34 -15
- package/src/sap/fe/core/templating/FilterHelper.ts +28 -12
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +5 -3
- package/src/sap/fe/core/templating/UIFormatters.ts +7 -5
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/Email.js +2 -2
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { defineUI5Class, property } from "sap/fe/core/helpers/ClassSupport";
|
|
2
|
+
import Page from "sap/m/Page";
|
|
3
|
+
import ManagedObject from "sap/ui/base/ManagedObject";
|
|
4
|
+
|
|
5
|
+
import Control from "sap/ui/core/Control";
|
|
6
|
+
|
|
7
|
+
import View from "sap/ui/core/mvc/View";
|
|
8
|
+
import { ManagedObjectEx } from "types/extension_types";
|
|
9
|
+
|
|
10
|
+
@defineUI5Class("sap.fe.core.jsx-runtime.MDXViewLoader")
|
|
11
|
+
export default class ViewLoader extends View {
|
|
12
|
+
static preprocessorData: any;
|
|
13
|
+
static controller: any;
|
|
14
|
+
@property({ type: "string" })
|
|
15
|
+
viewName!: string;
|
|
16
|
+
|
|
17
|
+
loadDependency(name: string): Promise<any> {
|
|
18
|
+
return new Promise((resolve) => {
|
|
19
|
+
sap.ui.require([name], async (MDXContent: Function) => {
|
|
20
|
+
resolve(MDXContent);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
getControllerName() {
|
|
25
|
+
const viewData = this.getViewData() as any;
|
|
26
|
+
return viewData.controllerName;
|
|
27
|
+
}
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
29
|
+
// @ts-ignore
|
|
30
|
+
async createContent(oController: any): Promise<Control> {
|
|
31
|
+
const viewData = this.getViewData() as any;
|
|
32
|
+
const MDXContent = viewData.viewContent || (await this.loadDependency(viewData._mdxViewName));
|
|
33
|
+
ViewLoader.preprocessorData = (this as any).mPreprocessors.xml;
|
|
34
|
+
ViewLoader.controller = oController;
|
|
35
|
+
const mdxContent = (ManagedObject as unknown as ManagedObjectEx).runWithPreprocessors(
|
|
36
|
+
() => {
|
|
37
|
+
return MDXContent();
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: (sId: string) => {
|
|
41
|
+
return this.createId(sId);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
return <Page class={"sapUiContentPadding"}>{{ content: mdxContent }}</Page>;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
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/helpers/BindingToolkit", "sap/m/Text"], function (BindingToolkit, Text) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var isConstant = BindingToolkit.isConstant;
|
|
9
|
+
var compileExpression = BindingToolkit.compileExpression;
|
|
10
|
+
var compileConstant = BindingToolkit.compileConstant;
|
|
11
|
+
|
|
12
|
+
var addChildAggregation = function (aggregationChildren, aggregationName, child) {
|
|
13
|
+
if (child === undefined || typeof child === "string") {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (!aggregationChildren[aggregationName]) {
|
|
18
|
+
aggregationChildren[aggregationName] = [];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (isChildAnElement(child)) {
|
|
22
|
+
aggregationChildren[aggregationName].push(child);
|
|
23
|
+
} else if (Array.isArray(child)) {
|
|
24
|
+
child.forEach(function (subChild) {
|
|
25
|
+
addChildAggregation(aggregationChildren, aggregationName, subChild);
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
Object.keys(child).forEach(function (childKey) {
|
|
29
|
+
addChildAggregation(aggregationChildren, childKey, child[childKey]);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var isChildAnElement = function (children) {
|
|
35
|
+
var _isA, _ref;
|
|
36
|
+
|
|
37
|
+
return children === null || children === void 0 ? void 0 : (_isA = (_ref = children).isA) === null || _isA === void 0 ? void 0 : _isA.call(_ref, "sap.ui.core.Element");
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var isAControl = function (children) {
|
|
41
|
+
return !!(children !== null && children !== void 0 && children.getMetadata);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
function processAggregations(metadata, mSettings) {
|
|
45
|
+
var metadataAggregations = metadata.getAllAggregations();
|
|
46
|
+
var defaultAggregationName = metadata.getDefaultAggregationName();
|
|
47
|
+
var aggregationChildren = {};
|
|
48
|
+
addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
|
|
49
|
+
delete mSettings.children; // find out which aggregation are bound (both in children and directly under it)
|
|
50
|
+
|
|
51
|
+
Object.keys(metadataAggregations).forEach(function (aggregationName) {
|
|
52
|
+
if (mSettings.hasOwnProperty(aggregationName)) {
|
|
53
|
+
// always use the first item as template according to UI5 logic
|
|
54
|
+
mSettings[aggregationName].template = aggregationChildren[aggregationName][0];
|
|
55
|
+
} else {
|
|
56
|
+
mSettings[aggregationName] = aggregationChildren[aggregationName];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var jsxControl = function (ControlType, mSettings, key) {
|
|
62
|
+
if (ControlType.isFragment) {
|
|
63
|
+
return mSettings.children;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var targetControl;
|
|
67
|
+
|
|
68
|
+
if (isAControl(ControlType)) {
|
|
69
|
+
var metadata = ControlType.getMetadata();
|
|
70
|
+
|
|
71
|
+
if (key !== undefined) {
|
|
72
|
+
mSettings["key"] = key;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
processAggregations(metadata, mSettings);
|
|
76
|
+
var classDef = mSettings.class;
|
|
77
|
+
var refDef = mSettings.ref;
|
|
78
|
+
delete mSettings.ref;
|
|
79
|
+
delete mSettings.class;
|
|
80
|
+
var settingsKey;
|
|
81
|
+
|
|
82
|
+
for (settingsKey in mSettings) {
|
|
83
|
+
var _mSettings$settingsKe;
|
|
84
|
+
|
|
85
|
+
if ((_mSettings$settingsKe = mSettings[settingsKey]) !== null && _mSettings$settingsKe !== void 0 && _mSettings$settingsKe._type) {
|
|
86
|
+
var bindingToolkitExpression = mSettings[settingsKey];
|
|
87
|
+
|
|
88
|
+
if (isConstant(bindingToolkitExpression)) {
|
|
89
|
+
mSettings[settingsKey] = compileConstant(mSettings[settingsKey], false, true, true);
|
|
90
|
+
} else {
|
|
91
|
+
mSettings[settingsKey] = compileExpression(bindingToolkitExpression);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
targetControl = new ControlType(mSettings);
|
|
97
|
+
|
|
98
|
+
if (classDef) {
|
|
99
|
+
targetControl.addStyleClass(classDef);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (refDef) {
|
|
103
|
+
refDef.setCurrent(targetControl);
|
|
104
|
+
}
|
|
105
|
+
} else if (typeof ControlType === "function") {
|
|
106
|
+
var controlTypeFn = ControlType;
|
|
107
|
+
targetControl = controlTypeFn(mSettings);
|
|
108
|
+
} else {
|
|
109
|
+
targetControl = new Text({
|
|
110
|
+
text: "Missing component " + ControlType
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return targetControl;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
return jsxControl;
|
|
118
|
+
}, false);
|
|
119
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhZGRDaGlsZEFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25DaGlsZHJlbiIsImFnZ3JlZ2F0aW9uTmFtZSIsImNoaWxkIiwidW5kZWZpbmVkIiwiaXNDaGlsZEFuRWxlbWVudCIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwic3ViQ2hpbGQiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRLZXkiLCJjaGlsZHJlbiIsImlzQSIsImlzQUNvbnRyb2wiLCJnZXRNZXRhZGF0YSIsInByb2Nlc3NBZ2dyZWdhdGlvbnMiLCJtZXRhZGF0YSIsIm1TZXR0aW5ncyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsInRlbXBsYXRlIiwianN4Q29udHJvbCIsIkNvbnRyb2xUeXBlIiwia2V5IiwiaXNGcmFnbWVudCIsInRhcmdldENvbnRyb2wiLCJjbGFzc0RlZiIsImNsYXNzIiwicmVmRGVmIiwicmVmIiwic2V0dGluZ3NLZXkiLCJfdHlwZSIsImJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiIsImlzQ29uc3RhbnQiLCJjb21waWxlQ29uc3RhbnQiLCJjb21waWxlRXhwcmVzc2lvbiIsImFkZFN0eWxlQ2xhc3MiLCJzZXRDdXJyZW50IiwiY29udHJvbFR5cGVGbiIsIlRleHQiLCJ0ZXh0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gtY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIGNvbXBpbGVDb25zdGFudCwgY29tcGlsZUV4cHJlc3Npb24sIGlzQ29uc3RhbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sUHJvcGVydGllcywgTm9uQ29udHJvbFByb3BlcnRpZXMsIFJlZiB9IGZyb20gXCJzYXAvZmUvY29yZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0TWV0YWRhdGEgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RNZXRhZGF0YVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmNvbnN0IGFkZENoaWxkQWdncmVnYXRpb24gPSBmdW5jdGlvbiAoYWdncmVnYXRpb25DaGlsZHJlbjogYW55LCBhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZywgY2hpbGQ6IGFueSkge1xuXHRpZiAoY2hpbGQgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKCFhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0pIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0gPSBbXTtcblx0fVxuXHRpZiAoaXNDaGlsZEFuRWxlbWVudChjaGlsZCkpIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ucHVzaChjaGlsZCk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcblx0XHRjaGlsZC5mb3JFYWNoKChzdWJDaGlsZCkgPT4ge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBhZ2dyZWdhdGlvbk5hbWUsIHN1YkNoaWxkKTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRPYmplY3Qua2V5cyhjaGlsZCkuZm9yRWFjaCgoY2hpbGRLZXkpID0+IHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgY2hpbGRLZXksIGNoaWxkW2NoaWxkS2V5XSk7XG5cdFx0fSk7XG5cdH1cbn07XG5jb25zdCBpc0NoaWxkQW5FbGVtZW50ID0gZnVuY3Rpb24gPFQ+KGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+KTogY2hpbGRyZW4gaXMgRWxlbWVudCB7XG5cdHJldHVybiAoY2hpbGRyZW4gYXMgRWxlbWVudCk/LmlzQT8uKFwic2FwLnVpLmNvcmUuRWxlbWVudFwiKTtcbn07XG5jb25zdCBpc0FDb250cm9sID0gZnVuY3Rpb24gKGNoaWxkcmVuPzogdHlwZW9mIENvbnRyb2wgfCBGdW5jdGlvbik6IGNoaWxkcmVuIGlzIHR5cGVvZiBDb250cm9sIHtcblx0cmV0dXJuICEhKGNoaWxkcmVuIGFzIHR5cGVvZiBDb250cm9sKT8uZ2V0TWV0YWRhdGE7XG59O1xuXG5mdW5jdGlvbiBwcm9jZXNzQWdncmVnYXRpb25zKG1ldGFkYXRhOiBNYW5hZ2VkT2JqZWN0TWV0YWRhdGEsIG1TZXR0aW5nczogUmVjb3JkPHN0cmluZywgYW55Pikge1xuXHRjb25zdCBtZXRhZGF0YUFnZ3JlZ2F0aW9ucyA9IG1ldGFkYXRhLmdldEFsbEFnZ3JlZ2F0aW9ucygpIGFzIGFueTtcblx0Y29uc3QgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSA9IG1ldGFkYXRhLmdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUoKTtcblx0Y29uc3QgYWdncmVnYXRpb25DaGlsZHJlbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSwgbVNldHRpbmdzLmNoaWxkcmVuKTtcblx0ZGVsZXRlIG1TZXR0aW5ncy5jaGlsZHJlbjtcblx0Ly8gZmluZCBvdXQgd2hpY2ggYWdncmVnYXRpb24gYXJlIGJvdW5kIChib3RoIGluIGNoaWxkcmVuIGFuZCBkaXJlY3RseSB1bmRlciBpdClcblx0T2JqZWN0LmtleXMobWV0YWRhdGFBZ2dyZWdhdGlvbnMpLmZvckVhY2goKGFnZ3JlZ2F0aW9uTmFtZSkgPT4ge1xuXHRcdGlmIChtU2V0dGluZ3MuaGFzT3duUHJvcGVydHkoYWdncmVnYXRpb25OYW1lKSkge1xuXHRcdFx0Ly8gYWx3YXlzIHVzZSB0aGUgZmlyc3QgaXRlbSBhcyB0ZW1wbGF0ZSBhY2NvcmRpbmcgdG8gVUk1IGxvZ2ljXG5cdFx0XHQobVNldHRpbmdzIGFzIGFueSlbYWdncmVnYXRpb25OYW1lXS50ZW1wbGF0ZSA9IGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXVswXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0KG1TZXR0aW5ncyBhcyBhbnkpW2FnZ3JlZ2F0aW9uTmFtZV0gPSBhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV07XG5cdFx0fVxuXHR9KTtcbn1cblxuY29uc3QganN4Q29udHJvbCA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgRWxlbWVudD4oXG5cdENvbnRyb2xUeXBlOiB0eXBlb2YgQ29udHJvbCB8IEZ1bmN0aW9uLFxuXHRtU2V0dGluZ3M6IE5vbkNvbnRyb2xQcm9wZXJ0aWVzPFQ+ICYgeyBrZXk6IHN0cmluZzsgY2hpbGRyZW4/OiBFbGVtZW50IHwgQ29udHJvbFByb3BlcnRpZXM8VD47IHJlZj86IFJlZjxUPjsgY2xhc3M/OiBzdHJpbmcgfSxcblx0a2V5OiBzdHJpbmdcbik6IENvbnRyb2wgfCBDb250cm9sW10ge1xuXHRpZiAoKENvbnRyb2xUeXBlIGFzIGFueSkuaXNGcmFnbWVudCkge1xuXHRcdHJldHVybiBtU2V0dGluZ3MuY2hpbGRyZW4gYXMgYW55O1xuXHR9XG5cdGxldCB0YXJnZXRDb250cm9sO1xuXHRpZiAoaXNBQ29udHJvbChDb250cm9sVHlwZSkpIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9IENvbnRyb2xUeXBlLmdldE1ldGFkYXRhKCk7XG5cdFx0aWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRtU2V0dGluZ3NbXCJrZXlcIl0gPSBrZXk7XG5cdFx0fVxuXHRcdHByb2Nlc3NBZ2dyZWdhdGlvbnMobWV0YWRhdGEsIG1TZXR0aW5ncyk7XG5cdFx0Y29uc3QgY2xhc3NEZWYgPSBtU2V0dGluZ3MuY2xhc3M7XG5cdFx0Y29uc3QgcmVmRGVmID0gbVNldHRpbmdzLnJlZjtcblx0XHRkZWxldGUgbVNldHRpbmdzLnJlZjtcblx0XHRkZWxldGUgbVNldHRpbmdzLmNsYXNzO1xuXHRcdGxldCBzZXR0aW5nc0tleToga2V5b2YgdHlwZW9mIG1TZXR0aW5ncztcblx0XHRmb3IgKHNldHRpbmdzS2V5IGluIG1TZXR0aW5ncykge1xuXHRcdFx0aWYgKChtU2V0dGluZ3Nbc2V0dGluZ3NLZXldIGFzIGFueSk/Ll90eXBlKSB7XG5cdFx0XHRcdGNvbnN0IGJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGFueT4gPSBtU2V0dGluZ3Nbc2V0dGluZ3NLZXldIGFzIGFueTtcblx0XHRcdFx0aWYgKGlzQ29uc3RhbnQoYmluZGluZ1Rvb2xraXRFeHByZXNzaW9uKSkge1xuXHRcdFx0XHRcdG1TZXR0aW5nc1tzZXR0aW5nc0tleV0gPSBjb21waWxlQ29uc3RhbnQobVNldHRpbmdzW3NldHRpbmdzS2V5XSBhcyBhbnksIGZhbHNlLCB0cnVlLCB0cnVlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRtU2V0dGluZ3Nbc2V0dGluZ3NLZXldID0gY29tcGlsZUV4cHJlc3Npb24oYmluZGluZ1Rvb2xraXRFeHByZXNzaW9uKSBhcyBhbnk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0dGFyZ2V0Q29udHJvbCA9IG5ldyBDb250cm9sVHlwZShtU2V0dGluZ3MgYXMgJENvbnRyb2xTZXR0aW5ncyk7XG5cdFx0aWYgKGNsYXNzRGVmKSB7XG5cdFx0XHR0YXJnZXRDb250cm9sLmFkZFN0eWxlQ2xhc3MoY2xhc3NEZWYpO1xuXHRcdH1cblx0XHRpZiAocmVmRGVmKSB7XG5cdFx0XHRyZWZEZWYuc2V0Q3VycmVudCh0YXJnZXRDb250cm9sIGFzIGFueSk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHR5cGVvZiBDb250cm9sVHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0Y29uc3QgY29udHJvbFR5cGVGbiA9IENvbnRyb2xUeXBlO1xuXHRcdHRhcmdldENvbnRyb2wgPSBjb250cm9sVHlwZUZuKG1TZXR0aW5ncyBhcyAkQ29udHJvbFNldHRpbmdzKTtcblx0fSBlbHNlIHtcblx0XHR0YXJnZXRDb250cm9sID0gbmV3IFRleHQoeyB0ZXh0OiBcIk1pc3NpbmcgY29tcG9uZW50IFwiICsgKENvbnRyb2xUeXBlIGFzIGFueSkgfSk7XG5cdH1cblxuXHRyZXR1cm4gdGFyZ2V0Q29udHJvbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGpzeENvbnRyb2w7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O0VBT0EsSUFBTUEsbUJBQW1CLEdBQUcsVUFBVUMsbUJBQVYsRUFBb0NDLGVBQXBDLEVBQTZEQyxLQUE3RCxFQUF5RTtJQUNwRyxJQUFJQSxLQUFLLEtBQUtDLFNBQVYsSUFBdUIsT0FBT0QsS0FBUCxLQUFpQixRQUE1QyxFQUFzRDtNQUNyRDtJQUNBOztJQUNELElBQUksQ0FBQ0YsbUJBQW1CLENBQUNDLGVBQUQsQ0FBeEIsRUFBMkM7TUFDMUNELG1CQUFtQixDQUFDQyxlQUFELENBQW5CLEdBQXVDLEVBQXZDO0lBQ0E7O0lBQ0QsSUFBSUcsZ0JBQWdCLENBQUNGLEtBQUQsQ0FBcEIsRUFBNkI7TUFDNUJGLG1CQUFtQixDQUFDQyxlQUFELENBQW5CLENBQXFDSSxJQUFyQyxDQUEwQ0gsS0FBMUM7SUFDQSxDQUZELE1BRU8sSUFBSUksS0FBSyxDQUFDQyxPQUFOLENBQWNMLEtBQWQsQ0FBSixFQUEwQjtNQUNoQ0EsS0FBSyxDQUFDTSxPQUFOLENBQWMs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
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { BindingToolkitExpression, compileConstant, compileExpression, isConstant } from "sap/fe/core/helpers/BindingToolkit";
|
|
2
|
+
import type { ControlProperties, NonControlProperties, Ref } from "sap/fe/core/jsx-runtime/jsx";
|
|
3
|
+
import Text from "sap/m/Text";
|
|
4
|
+
import type ManagedObjectMetadata from "sap/ui/base/ManagedObjectMetadata";
|
|
5
|
+
import type Control from "sap/ui/core/Control";
|
|
6
|
+
import type { $ControlSettings } from "sap/ui/core/Control";
|
|
7
|
+
import type Element from "sap/ui/core/Element";
|
|
8
|
+
const addChildAggregation = function (aggregationChildren: any, aggregationName: string, child: any) {
|
|
9
|
+
if (child === undefined || typeof child === "string") {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (!aggregationChildren[aggregationName]) {
|
|
13
|
+
aggregationChildren[aggregationName] = [];
|
|
14
|
+
}
|
|
15
|
+
if (isChildAnElement(child)) {
|
|
16
|
+
aggregationChildren[aggregationName].push(child);
|
|
17
|
+
} else if (Array.isArray(child)) {
|
|
18
|
+
child.forEach((subChild) => {
|
|
19
|
+
addChildAggregation(aggregationChildren, aggregationName, subChild);
|
|
20
|
+
});
|
|
21
|
+
} else {
|
|
22
|
+
Object.keys(child).forEach((childKey) => {
|
|
23
|
+
addChildAggregation(aggregationChildren, childKey, child[childKey]);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const isChildAnElement = function <T>(children?: Element | ControlProperties<T>): children is Element {
|
|
28
|
+
return (children as Element)?.isA?.("sap.ui.core.Element");
|
|
29
|
+
};
|
|
30
|
+
const isAControl = function (children?: typeof Control | Function): children is typeof Control {
|
|
31
|
+
return !!(children as typeof Control)?.getMetadata;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
function processAggregations(metadata: ManagedObjectMetadata, mSettings: Record<string, any>) {
|
|
35
|
+
const metadataAggregations = metadata.getAllAggregations() as any;
|
|
36
|
+
const defaultAggregationName = metadata.getDefaultAggregationName();
|
|
37
|
+
const aggregationChildren: Record<string, string[]> = {};
|
|
38
|
+
addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
|
|
39
|
+
delete mSettings.children;
|
|
40
|
+
// find out which aggregation are bound (both in children and directly under it)
|
|
41
|
+
Object.keys(metadataAggregations).forEach((aggregationName) => {
|
|
42
|
+
if (mSettings.hasOwnProperty(aggregationName)) {
|
|
43
|
+
// always use the first item as template according to UI5 logic
|
|
44
|
+
(mSettings as any)[aggregationName].template = aggregationChildren[aggregationName][0];
|
|
45
|
+
} else {
|
|
46
|
+
(mSettings as any)[aggregationName] = aggregationChildren[aggregationName];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const jsxControl = function <T extends Element>(
|
|
52
|
+
ControlType: typeof Control | Function,
|
|
53
|
+
mSettings: NonControlProperties<T> & { key: string; children?: Element | ControlProperties<T>; ref?: Ref<T>; class?: string },
|
|
54
|
+
key: string
|
|
55
|
+
): Control | Control[] {
|
|
56
|
+
if ((ControlType as any).isFragment) {
|
|
57
|
+
return mSettings.children as any;
|
|
58
|
+
}
|
|
59
|
+
let targetControl;
|
|
60
|
+
if (isAControl(ControlType)) {
|
|
61
|
+
const metadata = ControlType.getMetadata();
|
|
62
|
+
if (key !== undefined) {
|
|
63
|
+
mSettings["key"] = key;
|
|
64
|
+
}
|
|
65
|
+
processAggregations(metadata, mSettings);
|
|
66
|
+
const classDef = mSettings.class;
|
|
67
|
+
const refDef = mSettings.ref;
|
|
68
|
+
delete mSettings.ref;
|
|
69
|
+
delete mSettings.class;
|
|
70
|
+
let settingsKey: keyof typeof mSettings;
|
|
71
|
+
for (settingsKey in mSettings) {
|
|
72
|
+
if ((mSettings[settingsKey] as any)?._type) {
|
|
73
|
+
const bindingToolkitExpression: BindingToolkitExpression<any> = mSettings[settingsKey] as any;
|
|
74
|
+
if (isConstant(bindingToolkitExpression)) {
|
|
75
|
+
mSettings[settingsKey] = compileConstant(mSettings[settingsKey] as any, false, true, true);
|
|
76
|
+
} else {
|
|
77
|
+
mSettings[settingsKey] = compileExpression(bindingToolkitExpression) as any;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
targetControl = new ControlType(mSettings as $ControlSettings);
|
|
82
|
+
if (classDef) {
|
|
83
|
+
targetControl.addStyleClass(classDef);
|
|
84
|
+
}
|
|
85
|
+
if (refDef) {
|
|
86
|
+
refDef.setCurrent(targetControl as any);
|
|
87
|
+
}
|
|
88
|
+
} else if (typeof ControlType === "function") {
|
|
89
|
+
const controlTypeFn = ControlType;
|
|
90
|
+
targetControl = controlTypeFn(mSettings as $ControlSettings);
|
|
91
|
+
} else {
|
|
92
|
+
targetControl = new Text({ text: "Missing component " + (ControlType as any) });
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return targetControl;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export default jsxControl;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define([], function () {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
|
|
10
|
+
var writeChildren = function (val) {
|
|
11
|
+
if (Array.isArray(val)) {
|
|
12
|
+
return val.join("");
|
|
13
|
+
} else {
|
|
14
|
+
return val;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var addChildAggregation = function (aggregationChildren, aggregationName, child) {
|
|
19
|
+
if (child === undefined) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (!aggregationChildren[aggregationName]) {
|
|
24
|
+
aggregationChildren[aggregationName] = [];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (typeof child === "string" && child.trim().length > 0) {
|
|
28
|
+
aggregationChildren[aggregationName].push(child);
|
|
29
|
+
} else if (Array.isArray(child)) {
|
|
30
|
+
child.forEach(function (subChild) {
|
|
31
|
+
addChildAggregation(aggregationChildren, aggregationName, subChild);
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
Object.keys(child).forEach(function (childKey) {
|
|
35
|
+
addChildAggregation(aggregationChildren, childKey, child[childKey]);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var FL_DELEGATE = "fl:delegate";
|
|
41
|
+
|
|
42
|
+
var jsxXml = function (type, mSettings, key) {
|
|
43
|
+
var metadata = type.getMetadata();
|
|
44
|
+
var namesSplit = metadata.getName().split(".");
|
|
45
|
+
|
|
46
|
+
if (key !== undefined) {
|
|
47
|
+
mSettings["key"] = key;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var metadataProperties = metadata.getAllProperties();
|
|
51
|
+
var metadataAggregations = metadata.getAllAggregations();
|
|
52
|
+
metadataProperties["class"] = {
|
|
53
|
+
name: "class"
|
|
54
|
+
};
|
|
55
|
+
metadataProperties["id"] = {
|
|
56
|
+
name: "id"
|
|
57
|
+
};
|
|
58
|
+
metadataProperties[FL_DELEGATE] = {
|
|
59
|
+
name: FL_DELEGATE
|
|
60
|
+
};
|
|
61
|
+
metadataProperties["xmlns:fl"] = {
|
|
62
|
+
name: FL_DELEGATE
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
if (metadata.getName() === "sap.ui.core.Fragment") {
|
|
66
|
+
metadataProperties["fragmentName"] = {
|
|
67
|
+
name: "fragmentName"
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var namespace = namesSplit.slice(0, -1);
|
|
72
|
+
var name = namesSplit[namesSplit.length - 1];
|
|
73
|
+
var namespaceAlias = namespace[namespace.length - 1];
|
|
74
|
+
var tagName = "".concat(namespaceAlias, ":").concat(name);
|
|
75
|
+
var propertiesString = [];
|
|
76
|
+
var aggregationString = [];
|
|
77
|
+
var defaultAggregationName = metadata.getDefaultAggregationName();
|
|
78
|
+
Object.keys(metadataProperties).forEach(function (propertyName) {
|
|
79
|
+
if (mSettings.hasOwnProperty(propertyName) && mSettings[propertyName] !== undefined) {
|
|
80
|
+
if (typeof mSettings[propertyName] === "object") {
|
|
81
|
+
propertiesString.push("".concat(propertyName, "='").concat(JSON.stringify(mSettings[propertyName]), "'"));
|
|
82
|
+
} else {
|
|
83
|
+
propertiesString.push("".concat(propertyName, "='").concat(mSettings[propertyName], "'"));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
var aggregationChildren = _defineProperty({}, defaultAggregationName, []);
|
|
89
|
+
|
|
90
|
+
addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
|
|
91
|
+
Object.keys(metadataAggregations).forEach(function (aggregationName) {
|
|
92
|
+
if (aggregationChildren !== null && aggregationChildren !== void 0 && aggregationChildren.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
|
|
93
|
+
aggregationString.push("<".concat(namespaceAlias, ":").concat(aggregationName, ">\n\t\t\t\t\t\t").concat(writeChildren(aggregationChildren[aggregationName]), "\n\t\t\t\t\t</").concat(namespaceAlias, ":").concat(aggregationName, ">"));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (mSettings.hasOwnProperty(aggregationName) && mSettings[aggregationName] !== undefined) {
|
|
97
|
+
propertiesString.push("".concat(aggregationName, "='").concat(JSON.stringify(mSettings[aggregationName]), "'"));
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
return "<".concat(tagName, " xmlns:").concat(namespaceAlias, "=\"").concat(namespace.join("."), "\" ").concat(propertiesString.join(" "), ">").concat(aggregationString.join(""), "</").concat(tagName, ">");
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
return jsxXml;
|
|
104
|
+
}, false);
|
|
105
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3cml0ZUNoaWxkcmVuIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImFkZENoaWxkQWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbkNoaWxkcmVuIiwiYWdncmVnYXRpb25OYW1lIiwiY2hpbGQiLCJ1bmRlZmluZWQiLCJ0cmltIiwibGVuZ3RoIiwicHVzaCIsImZvckVhY2giLCJzdWJDaGlsZCIsIk9iamVjdCIsImtleXMiLCJjaGlsZEtleSIsIkZMX0RFTEVHQVRFIiwianN4WG1sIiwidHlwZSIsIm1TZXR0aW5ncyIsImtleSIsIm1ldGFkYXRhIiwiZ2V0TWV0YWRhdGEiLCJuYW1lc1NwbGl0IiwiZ2V0TmFtZSIsInNwbGl0IiwibWV0YWRhdGFQcm9wZXJ0aWVzIiwiZ2V0QWxsUHJvcGVydGllcyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwibmFtZSIsIm5hbWVzcGFjZSIsInNsaWNlIiwibmFtZXNwYWNlQWxpYXMiLCJ0YWdOYW1lIiwicHJvcGVydGllc1N0cmluZyIsImFnZ3JlZ2F0aW9uU3RyaW5nIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJwcm9wZXJ0eU5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjaGlsZHJlbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LXhtbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnRyb2xQcm9wZXJ0aWVzLCBOb25Db250cm9sUHJvcGVydGllcyB9IGZyb20gXCJzYXAvZmUvY29yZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5cbmNvbnN0IHdyaXRlQ2hpbGRyZW4gPSBmdW5jdGlvbiAodmFsOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG5cdFx0cmV0dXJuIHZhbC5qb2luKFwiXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB2YWw7XG5cdH1cbn07XG5cbmNvbnN0IGFkZENoaWxkQWdncmVnYXRpb24gPSBmdW5jdGlvbiAoYWdncmVnYXRpb25DaGlsZHJlbjogYW55LCBhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZywgY2hpbGQ6IGFueSkge1xuXHRpZiAoY2hpbGQgPT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybjtcblx0fVxuXHRpZiAoIWFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSkge1xuXHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSA9IFtdO1xuXHR9XG5cdGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIgJiYgY2hpbGQudHJpbSgpLmxlbmd0aCA+IDApIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ucHVzaChjaGlsZCk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcblx0XHRjaGlsZC5mb3JFYWNoKChzdWJDaGlsZCkgPT4ge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBhZ2dyZWdhdGlvbk5hbWUsIHN1YkNoaWxkKTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRPYmplY3Qua2V5cyhjaGlsZCkuZm9yRWFjaCgoY2hpbGRLZXkpID0+IHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgY2hpbGRLZXksIGNoaWxkW2NoaWxkS2V5XSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IEZMX0RFTEVHQVRFID0gXCJmbDpkZWxlZ2F0ZVwiO1xuY29uc3QganN4WG1sID0gZnVuY3Rpb24gPFQ+KFxuXHR0eXBlOiB0eXBlb2YgQ29udHJvbCxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0sXG5cdGtleTogc3RyaW5nXG4pOiBzdHJpbmcge1xuXHRjb25zdCBtZXRhZGF0YSA9IHR5cGUuZ2V0TWV0YWRhdGEoKTtcblx0Y29uc3QgbmFtZXNTcGxpdCA9IG1ldGFkYXRhLmdldE5hbWUoKS5zcGxpdChcIi5cIik7XG5cdGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuXHRcdG1TZXR0aW5nc1tcImtleVwiXSA9IGtleTtcblx0fVxuXHRjb25zdCBtZXRhZGF0YVByb3BlcnRpZXMgPSBtZXRhZGF0YS5nZXRBbGxQcm9wZXJ0aWVzKCk7XG5cdGNvbnN0IG1ldGFkYXRhQWdncmVnYXRpb25zID0gbWV0YWRhdGEuZ2V0QWxsQWdncmVnYXRpb25zKCk7XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcImNsYXNzXCJdID0geyBuYW1lOiBcImNsYXNzXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiaWRcIl0gPSB7IG5hbWU6IFwiaWRcIiB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbRkxfREVMRUdBVEVdID0geyBuYW1lOiBGTF9ERUxFR0FURSB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJ4bWxuczpmbFwiXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0aWYgKG1ldGFkYXRhLmdldE5hbWUoKSA9PT0gXCJzYXAudWkuY29yZS5GcmFnbWVudFwiKSB7XG5cdFx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiZnJhZ21lbnROYW1lXCJdID0geyBuYW1lOiBcImZyYWdtZW50TmFtZVwiIH07XG5cdH1cblx0Y29uc3QgbmFtZXNwYWNlID0gbmFtZXNTcGxpdC5zbGljZSgwLCAtMSk7XG5cdGNvbnN0IG5hbWUgPSBuYW1lc1NwbGl0W25hbWVzU3BsaXQubGVuZ3RoIC0gMV07XG5cdGNvbnN0IG5hbWVzcGFjZUFsaWFzID0gbmFtZXNwYWNlW25hbWVzcGFjZS5sZW5ndGggLSAxXTtcblx0Y29uc3QgdGFnTmFtZSA9IGAke25hbWVzcGFjZUFsaWFzfToke25hbWV9YDtcblx0Y29uc3QgcHJvcGVydGllc1N0cmluZzogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgYWdncmVnYXRpb25TdHJpbmc6IHN0cmluZ1tdID0gW107XG5cdGNvbnN0IGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUgPSBtZXRhZGF0YS5nZXREZWZhdWx0QWdncmVnYXRpb25OYW1lKCk7XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhUHJvcGVydGllcykuZm9yRWFjaCgocHJvcGVydHlOYW1lKSA9PiB7XG5cdFx0aWYgKG1TZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpICYmIChtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2YgKG1TZXR0aW5ncyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7SlNPTi5zdHJpbmdpZnkoKG1TZXR0aW5ncyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0pfSdgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PSckeyhtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdfSdgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkcmVuOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XG5cdFx0W2RlZmF1bHRBZ2dyZWdhdGlvbk5hbWVdOiBbXVxuXHR9O1xuXHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUsIG1TZXR0aW5ncy5jaGlsZHJlbik7XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhQWdncmVnYXRpb25zKS5mb3JFYWNoKChhZ2dyZWdhdGlvbk5hbWUpID0+IHtcblx0XHRpZiAoYWdncmVnYXRpb25DaGlsZHJlbj8uaGFzT3duUHJvcGVydHkoYWdncmVnYXRpb25OYW1lKSAmJiBhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ubGVuZ3RoID4gMCkge1xuXHRcdFx0YWdncmVnYXRpb25TdHJpbmcucHVzaChcblx0XHRcdFx0YDwke25hbWVzcGFjZUFsaWFzfToke2FnZ3JlZ2F0aW9uTmFtZX0+XG5cdFx0XHRcdFx0XHQke3dyaXRlQ2hpbGRyZW4oYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdKX1cblx0XHRcdFx0XHQ8LyR7bmFtZXNwYWNlQWxpYXN9OiR7YWdncmVnYXRpb25OYW1lfT5gXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAobVNldHRpbmdzLmhhc093blByb3BlcnR5KGFnZ3JlZ2F0aW9uTmFtZSkgJiYgKG1TZXR0aW5ncyBhcyBhbnkpW2FnZ3JlZ2F0aW9uTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke2FnZ3JlZ2F0aW9uTmFtZX09JyR7SlNPTi5zdHJpbmdpZnkoKG1TZXR0aW5ncyBhcyBhbnkpW2FnZ3JlZ2F0aW9uTmFtZV0pfSdgKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gYDwke3RhZ05hbWV9IHhtbG5zOiR7bmFtZXNwYWNlQWxpYXN9PVwiJHtuYW1lc3BhY2Uuam9pbihcIi5cIil9XCIgJHtwcm9wZXJ0aWVzU3RyaW5nLmpvaW4oXCIgXCIpfT4ke2FnZ3JlZ2F0aW9uU3RyaW5nLmpvaW4oXG5cdFx0XCJcIlxuXHQpfTwvJHt0YWdOYW1lfT5gO1xufTtcbmV4cG9ydCBkZWZhdWx0IGpzeFhtbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7O0VBSUEsSUFBTUEsYUFBYSxHQUFHLFVBQVVDLEdBQVYsRUFBa0M7SUFDdkQs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
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { ControlProperties, NonControlProperties } from "sap/fe/core/jsx-runtime/jsx";
|
|
2
|
+
import type Control from "sap/ui/core/Control";
|
|
3
|
+
import Element from "sap/ui/core/Element";
|
|
4
|
+
|
|
5
|
+
const writeChildren = function (val: string | string[]) {
|
|
6
|
+
if (Array.isArray(val)) {
|
|
7
|
+
return val.join("");
|
|
8
|
+
} else {
|
|
9
|
+
return val;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const addChildAggregation = function (aggregationChildren: any, aggregationName: string, child: any) {
|
|
14
|
+
if (child === undefined) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (!aggregationChildren[aggregationName]) {
|
|
18
|
+
aggregationChildren[aggregationName] = [];
|
|
19
|
+
}
|
|
20
|
+
if (typeof child === "string" && child.trim().length > 0) {
|
|
21
|
+
aggregationChildren[aggregationName].push(child);
|
|
22
|
+
} else if (Array.isArray(child)) {
|
|
23
|
+
child.forEach((subChild) => {
|
|
24
|
+
addChildAggregation(aggregationChildren, aggregationName, subChild);
|
|
25
|
+
});
|
|
26
|
+
} else {
|
|
27
|
+
Object.keys(child).forEach((childKey) => {
|
|
28
|
+
addChildAggregation(aggregationChildren, childKey, child[childKey]);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const FL_DELEGATE = "fl:delegate";
|
|
34
|
+
const jsxXml = function <T>(
|
|
35
|
+
type: typeof Control,
|
|
36
|
+
mSettings: NonControlProperties<T> & { key: string; children?: Element | ControlProperties<T> },
|
|
37
|
+
key: string
|
|
38
|
+
): string {
|
|
39
|
+
const metadata = type.getMetadata();
|
|
40
|
+
const namesSplit = metadata.getName().split(".");
|
|
41
|
+
if (key !== undefined) {
|
|
42
|
+
mSettings["key"] = key;
|
|
43
|
+
}
|
|
44
|
+
const metadataProperties = metadata.getAllProperties();
|
|
45
|
+
const metadataAggregations = metadata.getAllAggregations();
|
|
46
|
+
metadataProperties["class"] = { name: "class" };
|
|
47
|
+
metadataProperties["id"] = { name: "id" };
|
|
48
|
+
metadataProperties[FL_DELEGATE] = { name: FL_DELEGATE };
|
|
49
|
+
metadataProperties["xmlns:fl"] = { name: FL_DELEGATE };
|
|
50
|
+
if (metadata.getName() === "sap.ui.core.Fragment") {
|
|
51
|
+
metadataProperties["fragmentName"] = { name: "fragmentName" };
|
|
52
|
+
}
|
|
53
|
+
const namespace = namesSplit.slice(0, -1);
|
|
54
|
+
const name = namesSplit[namesSplit.length - 1];
|
|
55
|
+
const namespaceAlias = namespace[namespace.length - 1];
|
|
56
|
+
const tagName = `${namespaceAlias}:${name}`;
|
|
57
|
+
const propertiesString: string[] = [];
|
|
58
|
+
const aggregationString: string[] = [];
|
|
59
|
+
const defaultAggregationName = metadata.getDefaultAggregationName();
|
|
60
|
+
Object.keys(metadataProperties).forEach((propertyName) => {
|
|
61
|
+
if (mSettings.hasOwnProperty(propertyName) && (mSettings as any)[propertyName] !== undefined) {
|
|
62
|
+
if (typeof (mSettings as any)[propertyName] === "object") {
|
|
63
|
+
propertiesString.push(`${propertyName}='${JSON.stringify((mSettings as any)[propertyName])}'`);
|
|
64
|
+
} else {
|
|
65
|
+
propertiesString.push(`${propertyName}='${(mSettings as any)[propertyName]}'`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const aggregationChildren: Record<string, string[]> = {
|
|
70
|
+
[defaultAggregationName]: []
|
|
71
|
+
};
|
|
72
|
+
addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
|
|
73
|
+
Object.keys(metadataAggregations).forEach((aggregationName) => {
|
|
74
|
+
if (aggregationChildren?.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
|
|
75
|
+
aggregationString.push(
|
|
76
|
+
`<${namespaceAlias}:${aggregationName}>
|
|
77
|
+
${writeChildren(aggregationChildren[aggregationName])}
|
|
78
|
+
</${namespaceAlias}:${aggregationName}>`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
if (mSettings.hasOwnProperty(aggregationName) && (mSettings as any)[aggregationName] !== undefined) {
|
|
82
|
+
propertiesString.push(`${aggregationName}='${JSON.stringify((mSettings as any)[aggregationName])}'`);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return `<${tagName} xmlns:${namespaceAlias}="${namespace.join(".")}" ${propertiesString.join(" ")}>${aggregationString.join(
|
|
86
|
+
""
|
|
87
|
+
)}</${tagName}>`;
|
|
88
|
+
};
|
|
89
|
+
export default jsxXml;
|
|
@@ -2,104 +2,26 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define([], function () {
|
|
5
|
+
sap.ui.define(["sap/fe/core/jsx-runtime/jsx-control", "sap/fe/core/jsx-runtime/jsx-xml"], function (jsxControl, jsxXml) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
var renderNextAsXML = false;
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
if (
|
|
12
|
-
return
|
|
10
|
+
var jsx = function (ControlType, mSettings, key) {
|
|
11
|
+
if (!renderNextAsXML) {
|
|
12
|
+
return jsxControl(ControlType, mSettings, key);
|
|
13
13
|
} else {
|
|
14
|
-
return
|
|
14
|
+
return jsxXml(ControlType, mSettings, key);
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!aggregationChildren[aggregationName]) {
|
|
24
|
-
aggregationChildren[aggregationName] = [];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (typeof child === "string" && child.trim().length > 0) {
|
|
28
|
-
aggregationChildren[aggregationName].push(child);
|
|
29
|
-
} else if (Array.isArray(child)) {
|
|
30
|
-
child.forEach(function (subChild) {
|
|
31
|
-
addChildAggregation(aggregationChildren, aggregationName, subChild);
|
|
32
|
-
});
|
|
33
|
-
} else {
|
|
34
|
-
Object.keys(child).forEach(function (childKey) {
|
|
35
|
-
addChildAggregation(aggregationChildren, childKey, child[childKey]);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
var FL_DELEGATE = "fl:delegate";
|
|
41
|
-
|
|
42
|
-
var jsx = function (type, mSettings, key) {
|
|
43
|
-
var metadata = type.getMetadata();
|
|
44
|
-
var namesSplit = metadata.getName().split(".");
|
|
45
|
-
|
|
46
|
-
if (key !== undefined) {
|
|
47
|
-
mSettings["key"] = key;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
var metadataProperties = metadata.getAllProperties();
|
|
51
|
-
var metadataAggregations = metadata.getAllAggregations();
|
|
52
|
-
metadataProperties["class"] = {
|
|
53
|
-
name: "class"
|
|
54
|
-
};
|
|
55
|
-
metadataProperties["id"] = {
|
|
56
|
-
name: "id"
|
|
57
|
-
};
|
|
58
|
-
metadataProperties[FL_DELEGATE] = {
|
|
59
|
-
name: FL_DELEGATE
|
|
60
|
-
};
|
|
61
|
-
metadataProperties["xmlns:fl"] = {
|
|
62
|
-
name: FL_DELEGATE
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
if (metadata.getName() === "sap.ui.core.Fragment") {
|
|
66
|
-
metadataProperties["fragmentName"] = {
|
|
67
|
-
name: "fragmentName"
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
var namespace = namesSplit.slice(0, -1);
|
|
72
|
-
var name = namesSplit[namesSplit.length - 1];
|
|
73
|
-
var namespaceAlias = namespace[namespace.length - 1];
|
|
74
|
-
var tagName = "".concat(namespaceAlias, ":").concat(name);
|
|
75
|
-
var propertiesString = [];
|
|
76
|
-
var aggregationString = [];
|
|
77
|
-
var defaultAggregationName = metadata.getDefaultAggregationName();
|
|
78
|
-
Object.keys(metadataProperties).forEach(function (propertyName) {
|
|
79
|
-
if (mSettings.hasOwnProperty(propertyName) && mSettings[propertyName] !== undefined) {
|
|
80
|
-
if (typeof mSettings[propertyName] === "object") {
|
|
81
|
-
propertiesString.push("".concat(propertyName, "='").concat(JSON.stringify(mSettings[propertyName]), "'"));
|
|
82
|
-
} else {
|
|
83
|
-
propertiesString.push("".concat(propertyName, "='").concat(mSettings[propertyName], "'"));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
var aggregationChildren = _defineProperty({}, defaultAggregationName, []);
|
|
89
|
-
|
|
90
|
-
addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
|
|
91
|
-
Object.keys(metadataAggregations).forEach(function (aggregationName) {
|
|
92
|
-
if (aggregationChildren !== null && aggregationChildren !== void 0 && aggregationChildren.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
|
|
93
|
-
aggregationString.push("<".concat(namespaceAlias, ":").concat(aggregationName, ">\n\t\t\t\t\t\t").concat(writeChildren(aggregationChildren[aggregationName]), "\n\t\t\t\t\t</").concat(namespaceAlias, ":").concat(aggregationName, ">"));
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (mSettings.hasOwnProperty(aggregationName) && mSettings[aggregationName] !== undefined) {
|
|
97
|
-
propertiesString.push("".concat(aggregationName, "='").concat(JSON.stringify(mSettings[aggregationName]), "'"));
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
return "<".concat(tagName, " xmlns:").concat(namespaceAlias, "=\"").concat(namespace.join("."), "\" ").concat(propertiesString.join(" "), ">").concat(aggregationString.join(""), "</").concat(tagName, ">");
|
|
18
|
+
jsx.renderAsXML = function (renderMethod) {
|
|
19
|
+
renderNextAsXML = true;
|
|
20
|
+
var returnValue = renderMethod();
|
|
21
|
+
renderNextAsXML = false;
|
|
22
|
+
return returnValue;
|
|
101
23
|
};
|
|
102
24
|
|
|
103
25
|
return jsx;
|
|
104
26
|
}, false);
|
|
105
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpzeC50cyJdLCJuYW1lcyI6WyJ3cml0ZUNoaWxkcmVuIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImFkZENoaWxkQWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbkNoaWxkcmVuIiwiYWdncmVnYXRpb25OYW1lIiwiY2hpbGQiLCJ1bmRlZmluZWQiLCJ0cmltIiwibGVuZ3RoIiwicHVzaCIsImZvckVhY2giLCJzdWJDaGlsZCIsIk9iamVjdCIsImtleXMiLCJjaGlsZEtleSIsIkZMX0RFTEVHQVRFIiwianN4IiwidHlwZSIsIm1TZXR0aW5ncyIsImtleSIsIm1ldGFkYXRhIiwiZ2V0TWV0YWRhdGEiLCJuYW1lc1NwbGl0IiwiZ2V0TmFtZSIsInNwbGl0IiwibWV0YWRhdGFQcm9wZXJ0aWVzIiwiZ2V0QWxsUHJvcGVydGllcyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwibmFtZSIsIm5hbWVzcGFjZSIsInNsaWNlIiwibmFtZXNwYWNlQWxpYXMiLCJ0YWdOYW1lIiwicHJvcGVydGllc1N0cmluZyIsImFnZ3JlZ2F0aW9uU3RyaW5nIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJwcm9wZXJ0eU5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjaGlsZHJlbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBVUEsTUFBTUEsYUFBYSxHQUFHLFVBQVVDLEdBQVYsRUFBa0M7QUFDdkQsUUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNGLEdBQWQsQ0FBSixFQUF3QjtBQUN2QixhQUFPQSxHQUFHLENBQUNHLElBQUosQ0FBUyxFQUFULENBQVA7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPSCxHQUFQO0FBQ0E7QUFDRCxHQU5EOztBQVFBLE1BQU1JLG1CQUFtQixHQUFHLFVBQVVDLG1CQUFWLEVBQW9DQyxlQUFwQyxFQUE2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WUFDS3VCLGNBREwsY0FDdUI1QixlQUR2Qiw0QkFFS1AsYUFBYSxDQUFDTSxtQkFBbUIsQ0FBQ0MsZUFBRCxDQUFwQixDQUZsQiwyQkFHTTRCLGNBSE4sY0FHd0I1QixlQUh4QjtBQUtBOztBQUNELFVBQUljLFNBQVMsQ0FBQ3FCLGNBQVYsQ0FBeUJuQyxlQUF6QixLQUE4Q2MsU0FBRCxDQUFtQmQsZUFBbkIsTUFBd0NFLFNBQXpGLEVBQW9HO0FBQ25HNEIsUUFBQUEsZ0JBQWdCLENBQUN6QixJQUFqQixXQUF5QkwsZUFBekIsZUFBNkNvQyxJQUFJLENBQUNDLFNBQUwsQ0FBZ0J2QixTQUFELENBQW1CZCxlQUFuQixDQUFmLENBQTdDO0FBQ0E7QUFDRCxLQVhEO0FBWUEsc0JBQVc2QixPQUFYLG9CQUE0QkQsY0FBNUIsZ0JBQStDRixTQUFTLENBQUM3QixJQUFWLENBQWUsR0FBZixDQUEvQyxnQkFBdUVpQyxnQkFBZ0IsQ0FBQ2pDLElBQWpCLENBQXNCLEdBQXRCLENBQXZFLGNBQXFHa0MsaUJBQWlCLENBQUNsQyxJQUFsQixDQUNwRyxFQURvRyxDQUFyRyxlQUVNZ0MsT0FGTjtBQUdBLEdBdEREOztTQXVEZWpCLEciLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3RNZXRhZGF0YSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdE1ldGFkYXRhXCI7XG5cbnR5cGUgQ29udHJvbFByb3BlcnR5TmFtZXM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgc3RyaW5nIHwgYm9vbGVhbiB8IEZ1bmN0aW9uIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgc3RyaW5nW10gPyBuZXZlciA6IEs7XG59W2tleW9mIFRdO1xudHlwZSBDb250cm9sUHJvcGVydGllczxUPiA9IFBhcnRpYWw8UmVjb3JkPENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+LCBKU1guRWxlbWVudD4+O1xudHlwZSBOb25Db250cm9sUHJvcGVydGllczxUPiA9IFBhcnRpYWw8T21pdDxULCBDb250cm9sUHJvcGVydHlOYW1lczxUPj4+O1xudHlwZSBDb250cm9sV2l0aE1ldGFkYXRhID0ge1xuXHRnZXRNZXRhZGF0YSgpOiBNYW5hZ2VkT2JqZWN0TWV0YWRhdGE7XG59O1xuZXhwb3J0IHR5cGUgV3JhcHBlZENvbnRyb2w8VD4gPSAobVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsgY2hpbGRyZW4/OiBKU1guRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0pID0+IEpTWC5FbGVtZW50O1xuXG5jb25zdCB3cml0ZUNoaWxkcmVuID0gZnVuY3Rpb24gKHZhbDogc3RyaW5nIHwgc3RyaW5nW10pIHtcblx0aWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuXHRcdHJldHVybiB2YWwuam9pbihcIlwiKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdmFsO1xuXHR9XG59O1xuXG5jb25zdCBhZGRDaGlsZEFnZ3JlZ2F0aW9uID0gZnVuY3Rpb24gKGFnZ3JlZ2F0aW9uQ2hpbGRyZW46IGFueSwgYWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIGNoaWxkOiBhbnkpIHtcblx0aWYgKGNoaWxkID09PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKCFhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0pIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0gPSBbXTtcblx0fVxuXHRpZiAodHlwZW9mIGNoaWxkID09PSBcInN0cmluZ1wiICYmIGNoaWxkLnRyaW0oKS5sZW5ndGggPiAwKSB7XG5cdFx0YWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdLnB1c2goY2hpbGQpO1xuXHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG5cdFx0Y2hpbGQuZm9yRWFjaCgoc3ViQ2hpbGQpID0+IHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgYWdncmVnYXRpb25OYW1lLCBzdWJDaGlsZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0T2JqZWN0LmtleXMoY2hpbGQpLmZvckVhY2goKGNoaWxkS2V5KSA9PiB7XG5cdFx0XHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGNoaWxkS2V5LCBjaGlsZFtjaGlsZEtleV0pO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5jb25zdCBGTF9ERUxFR0FURSA9IFwiZmw6ZGVsZWdhdGVcIjtcbmNvbnN0IGpzeCA9IGZ1bmN0aW9uIDxUPihcblx0dHlwZTogQ29udHJvbFdpdGhNZXRhZGF0YSxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogSlNYLkVsZW1lbnQgfCBDb250cm9sUHJvcGVydGllczxUPiB9LFxuXHRrZXk6IHN0cmluZ1xuKTogc3RyaW5nIHtcblx0Y29uc3QgbWV0YWRhdGEgPSB0eXBlLmdldE1ldGFkYXRhKCk7XG5cdGNvbnN0IG5hbWVzU3BsaXQgPSBtZXRhZGF0YS5nZXROYW1lKCkuc3BsaXQoXCIuXCIpO1xuXHRpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHtcblx0XHRtU2V0dGluZ3NbXCJrZXlcIl0gPSBrZXk7XG5cdH1cblx0Y29uc3QgbWV0YWRhdGFQcm9wZXJ0aWVzID0gbWV0YWRhdGEuZ2V0QWxsUHJvcGVydGllcygpO1xuXHRjb25zdCBtZXRhZGF0YUFnZ3JlZ2F0aW9ucyA9IG1ldGFkYXRhLmdldEFsbEFnZ3JlZ2F0aW9ucygpO1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJjbGFzc1wiXSA9IHsgbmFtZTogXCJjbGFzc1wiIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcImlkXCJdID0geyBuYW1lOiBcImlkXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW0ZMX0RFTEVHQVRFXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wieG1sbnM6ZmxcIl0gPSB7IG5hbWU6IEZMX0RFTEVHQVRFIH07XG5cdGlmIChtZXRhZGF0YS5nZXROYW1lKCkgPT09IFwic2FwLnVpLmNvcmUuRnJhZ21lbnRcIikge1xuXHRcdG1ldGFkYXRhUHJvcGVydGllc1tcImZyYWdtZW50TmFtZVwiXSA9IHsgbmFtZTogXCJmcmFnbWVudE5hbWVcIiB9O1xuXHR9XG5cdGNvbnN0IG5hbWVzcGFjZSA9IG5hbWVzU3BsaXQuc2xpY2UoMCwgLTEpO1xuXHRjb25zdCBuYW1lID0gbmFtZXNTcGxpdFtuYW1lc1NwbGl0Lmxlbmd0aCAtIDFdO1xuXHRjb25zdCBuYW1lc3BhY2VBbGlhcyA9IG5hbWVzcGFjZVtuYW1lc3BhY2UubGVuZ3RoIC0gMV07XG5cdGNvbnN0IHRhZ05hbWUgPSBgJHtuYW1lc3BhY2VBbGlhc306JHtuYW1lfWA7XG5cdGNvbnN0IHByb3BlcnRpZXNTdHJpbmc6IHN0cmluZ1tdID0gW107XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uU3RyaW5nOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBkZWZhdWx0QWdncmVnYXRpb25OYW1lID0gbWV0YWRhdGEuZ2V0RGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSgpO1xuXHRPYmplY3Qua2V5cyhtZXRhZGF0YVByb3BlcnRpZXMpLmZvckVhY2goKHByb3BlcnR5TmFtZSkgPT4ge1xuXHRcdGlmIChtU2V0dGluZ3MuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSAmJiAobVNldHRpbmdzIGFzIGFueSlbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIChtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PScke0pTT04uc3RyaW5naWZ5KChtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdKX0nYCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwcm9wZXJ0aWVzU3RyaW5nLnB1c2goYCR7cHJvcGVydHlOYW1lfT0nJHsobVNldHRpbmdzIGFzIGFueSlbcHJvcGVydHlOYW1lXX0nYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgYWdncmVnYXRpb25DaGlsZHJlbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge1xuXHRcdFtkZWZhdWx0QWdncmVnYXRpb25OYW1lXTogW11cblx0fTtcblx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBkZWZhdWx0QWdncmVnYXRpb25OYW1lLCBtU2V0dGluZ3MuY2hpbGRyZW4pO1xuXHRPYmplY3Qua2V5cyhtZXRhZGF0YUFnZ3JlZ2F0aW9ucykuZm9yRWFjaCgoYWdncmVnYXRpb25OYW1lKSA9PiB7XG5cdFx0aWYgKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4/Lmhhc093blByb3BlcnR5KGFnZ3JlZ2F0aW9uTmFtZSkgJiYgYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdLmxlbmd0aCA+IDApIHtcblx0XHRcdGFnZ3JlZ2F0aW9uU3RyaW5nLnB1c2goXG5cdFx0XHRcdGA8JHtuYW1lc3BhY2VBbGlhc306JHthZ2dyZWdhdGlvbk5hbWV9PlxuXHRcdFx0XHRcdFx0JHt3cml0ZUNoaWxkcmVuKGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSl9XG5cdFx0XHRcdFx0PC8ke25hbWVzcGFjZUFsaWFzfToke2FnZ3JlZ2F0aW9uTmFtZX0+YFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKG1TZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShhZ2dyZWdhdGlvbk5hbWUpICYmIChtU2V0dGluZ3MgYXMgYW55KVthZ2dyZWdhdGlvbk5hbWVdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHthZ2dyZWdhdGlvbk5hbWV9PScke0pTT04uc3RyaW5naWZ5KChtU2V0dGluZ3MgYXMgYW55KVthZ2dyZWdhdGlvbk5hbWVdKX0nYCk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGA8JHt0YWdOYW1lfSB4bWxuczoke25hbWVzcGFjZUFsaWFzfT1cIiR7bmFtZXNwYWNlLmpvaW4oXCIuXCIpfVwiICR7cHJvcGVydGllc1N0cmluZy5qb2luKFwiIFwiKX0+JHthZ2dyZWdhdGlvblN0cmluZy5qb2luKFxuXHRcdFwiXCJcblx0KX08LyR7dGFnTmFtZX0+YDtcbn07XG5leHBvcnQgZGVmYXVsdCBqc3g7XG4iXX0=
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJOZXh0QXNYTUwiLCJqc3giLCJDb250cm9sVHlwZSIsIm1TZXR0aW5ncyIsImtleSIsImpzeENvbnRyb2wiLCJqc3hYbWwiLCJyZW5kZXJBc1hNTCIsInJlbmRlck1ldGhvZCIsInJldHVyblZhbHVlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzeENvbnRyb2wgZnJvbSBcInNhcC9mZS9jb3JlL2pzeC1ydW50aW1lL2pzeC1jb250cm9sXCI7XG5pbXBvcnQganN4WG1sIGZyb20gXCJzYXAvZmUvY29yZS9qc3gtcnVudGltZS9qc3gteG1sXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcblxudHlwZSBDb250cm9sUHJvcGVydHlOYW1lczxUPiA9IHtcblx0W0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgfCBib29sZWFuIHwgRnVuY3Rpb24gfCBudW1iZXIgfCB1bmRlZmluZWQgfCBzdHJpbmdbXSA/IG5ldmVyIDogSztcbn1ba2V5b2YgVF07XG5leHBvcnQgdHlwZSBDb250cm9sUHJvcGVydGllczxUPiA9IFBhcnRpYWw8UmVjb3JkPENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+LCBFbGVtZW50Pj47XG5leHBvcnQgdHlwZSBOb25Db250cm9sUHJvcGVydGllczxUPiA9IFBhcnRpYWw8T21pdDxULCBDb250cm9sUHJvcGVydHlOYW1lczxUPj4+O1xuXG5sZXQgcmVuZGVyTmV4dEFzWE1MID0gZmFsc2U7XG5jb25zdCBqc3ggPSBmdW5jdGlvbiA8VD4oXG5cdENvbnRyb2xUeXBlOiB0eXBlb2YgQ29udHJvbCxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0sXG5cdGtleTogc3RyaW5nXG4pOiBzdHJpbmcgfCBDb250cm9sIHwgQ29udHJvbFtdIHtcblx0aWYgKCFyZW5kZXJOZXh0QXNYTUwpIHtcblx0XHRyZXR1cm4ganN4Q29udHJvbChDb250cm9sVHlwZSwgbVNldHRpbmdzLCBrZXkpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBqc3hYbWwoQ29udHJvbFR5cGUsIG1TZXR0aW5ncywga2V5KTtcblx0fVxufTtcbmpzeC5yZW5kZXJBc1hNTCA9IGZ1bmN0aW9uIChyZW5kZXJNZXRob2Q6IEZ1bmN0aW9uKSB7XG5cdHJlbmRlck5leHRBc1hNTCA9IHRydWU7XG5cdGNvbnN0IHJldHVyblZhbHVlID0gcmVuZGVyTWV0aG9kKCk7XG5cdHJlbmRlck5leHRBc1hNTCA9IGZhbHNlO1xuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG5leHBvcnQgdHlwZSBSZWY8VCBleHRlbmRzIEVsZW1lbnQ+ID0ge1xuXHRjdXJyZW50PzogVDtcblx0c2V0Q3VycmVudChvQ29udHJvbEluc3RhbmNlOiBUKTogdm9pZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGpzeDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQVdBLElBQUlBLGVBQWUsR0FBRyxLQUF0Qjs7RUFDQSxJQUFNQyxHQUFHLEdBQUcsVUFDWEMsV0FEVyxFQUVYQyxTQUZXLEVBR1hDLEdBSFcsRUFJb0I7SUFDL0IsSUFBSSxDQUFDSixlQUFMLEVBQXNCO01BQ3JCLE9BQU9LLFVBQVUsQ0FBQ0gsV0FBRCxFQUFjQyxTQUFkLEVBQXlCQyxHQUF6QixDQUFqQjtJQUNBLENBRkQsTUFFTztNQUNOLE9BQU9FLE1BQU0sQ0FBQ0osV0FBRCxFQUFjQyxTQUFkLEVBQXlCQyxHQUF6QixDQUFiO0lBQ0E7RUFDRCxDQVZEOztFQVdBSCxHQUFHLENBQUNNLFdBQUosR0FBa0IsVUFBVUMsWUFBVixFQUFrQztJQUNuRFIsZUFBZSxHQUFHLElBQWxCO0lBQ0EsSUFBTVMsV0FBVyxHQUFHRCxZQUFZLEVBQWhDO0lBQ0FSLGVBQWUsR0FBRyxLQUFsQjtJQUNBLE9BQU9TLFdBQVA7RUFDQSxDQUxEOztTQVllUixHIn0=
|