@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
|
@@ -1,97 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import jsxControl from "sap/fe/core/jsx-runtime/jsx-control";
|
|
2
|
+
import jsxXml from "sap/fe/core/jsx-runtime/jsx-xml";
|
|
3
|
+
import Control from "sap/ui/core/Control";
|
|
4
|
+
import Element from "sap/ui/core/Element";
|
|
2
5
|
|
|
3
6
|
type ControlPropertyNames<T> = {
|
|
4
7
|
[K in keyof T]: T[K] extends string | boolean | Function | number | undefined | string[] ? never : K;
|
|
5
8
|
}[keyof T];
|
|
6
|
-
type ControlProperties<T> = Partial<Record<ControlPropertyNames<T>,
|
|
7
|
-
type NonControlProperties<T> = Partial<Omit<T, ControlPropertyNames<T>>>;
|
|
8
|
-
type ControlWithMetadata = {
|
|
9
|
-
getMetadata(): ManagedObjectMetadata;
|
|
10
|
-
};
|
|
11
|
-
export type WrappedControl<T> = (mSettings: NonControlProperties<T> & { children?: JSX.Element | ControlProperties<T> }) => JSX.Element;
|
|
9
|
+
export type ControlProperties<T> = Partial<Record<ControlPropertyNames<T>, Element>>;
|
|
10
|
+
export type NonControlProperties<T> = Partial<Omit<T, ControlPropertyNames<T>>>;
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
let renderNextAsXML = false;
|
|
13
|
+
const jsx = function <T>(
|
|
14
|
+
ControlType: typeof Control,
|
|
15
|
+
mSettings: NonControlProperties<T> & { key: string; children?: Element | ControlProperties<T> },
|
|
16
|
+
key: string
|
|
17
|
+
): string | Control | Control[] {
|
|
18
|
+
if (!renderNextAsXML) {
|
|
19
|
+
return jsxControl(ControlType, mSettings, key);
|
|
16
20
|
} else {
|
|
17
|
-
return
|
|
21
|
+
return jsxXml(ControlType, mSettings, key);
|
|
18
22
|
}
|
|
19
23
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (!aggregationChildren[aggregationName]) {
|
|
26
|
-
aggregationChildren[aggregationName] = [];
|
|
27
|
-
}
|
|
28
|
-
if (typeof child === "string" && child.trim().length > 0) {
|
|
29
|
-
aggregationChildren[aggregationName].push(child);
|
|
30
|
-
} else if (Array.isArray(child)) {
|
|
31
|
-
child.forEach((subChild) => {
|
|
32
|
-
addChildAggregation(aggregationChildren, aggregationName, subChild);
|
|
33
|
-
});
|
|
34
|
-
} else {
|
|
35
|
-
Object.keys(child).forEach((childKey) => {
|
|
36
|
-
addChildAggregation(aggregationChildren, childKey, child[childKey]);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
24
|
+
jsx.renderAsXML = function (renderMethod: Function) {
|
|
25
|
+
renderNextAsXML = true;
|
|
26
|
+
const returnValue = renderMethod();
|
|
27
|
+
renderNextAsXML = false;
|
|
28
|
+
return returnValue;
|
|
39
29
|
};
|
|
40
30
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
mSettings: NonControlProperties<T> & { key: string; children?: JSX.Element | ControlProperties<T> },
|
|
45
|
-
key: string
|
|
46
|
-
): string {
|
|
47
|
-
const metadata = type.getMetadata();
|
|
48
|
-
const namesSplit = metadata.getName().split(".");
|
|
49
|
-
if (key !== undefined) {
|
|
50
|
-
mSettings["key"] = key;
|
|
51
|
-
}
|
|
52
|
-
const metadataProperties = metadata.getAllProperties();
|
|
53
|
-
const metadataAggregations = metadata.getAllAggregations();
|
|
54
|
-
metadataProperties["class"] = { name: "class" };
|
|
55
|
-
metadataProperties["id"] = { name: "id" };
|
|
56
|
-
metadataProperties[FL_DELEGATE] = { name: FL_DELEGATE };
|
|
57
|
-
metadataProperties["xmlns:fl"] = { name: FL_DELEGATE };
|
|
58
|
-
if (metadata.getName() === "sap.ui.core.Fragment") {
|
|
59
|
-
metadataProperties["fragmentName"] = { name: "fragmentName" };
|
|
60
|
-
}
|
|
61
|
-
const namespace = namesSplit.slice(0, -1);
|
|
62
|
-
const name = namesSplit[namesSplit.length - 1];
|
|
63
|
-
const namespaceAlias = namespace[namespace.length - 1];
|
|
64
|
-
const tagName = `${namespaceAlias}:${name}`;
|
|
65
|
-
const propertiesString: string[] = [];
|
|
66
|
-
const aggregationString: string[] = [];
|
|
67
|
-
const defaultAggregationName = metadata.getDefaultAggregationName();
|
|
68
|
-
Object.keys(metadataProperties).forEach((propertyName) => {
|
|
69
|
-
if (mSettings.hasOwnProperty(propertyName) && (mSettings as any)[propertyName] !== undefined) {
|
|
70
|
-
if (typeof (mSettings as any)[propertyName] === "object") {
|
|
71
|
-
propertiesString.push(`${propertyName}='${JSON.stringify((mSettings as any)[propertyName])}'`);
|
|
72
|
-
} else {
|
|
73
|
-
propertiesString.push(`${propertyName}='${(mSettings as any)[propertyName]}'`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
const aggregationChildren: Record<string, string[]> = {
|
|
78
|
-
[defaultAggregationName]: []
|
|
79
|
-
};
|
|
80
|
-
addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
|
|
81
|
-
Object.keys(metadataAggregations).forEach((aggregationName) => {
|
|
82
|
-
if (aggregationChildren?.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
|
|
83
|
-
aggregationString.push(
|
|
84
|
-
`<${namespaceAlias}:${aggregationName}>
|
|
85
|
-
${writeChildren(aggregationChildren[aggregationName])}
|
|
86
|
-
</${namespaceAlias}:${aggregationName}>`
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
if (mSettings.hasOwnProperty(aggregationName) && (mSettings as any)[aggregationName] !== undefined) {
|
|
90
|
-
propertiesString.push(`${aggregationName}='${JSON.stringify((mSettings as any)[aggregationName])}'`);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
return `<${tagName} xmlns:${namespaceAlias}="${namespace.join(".")}" ${propertiesString.join(" ")}>${aggregationString.join(
|
|
94
|
-
""
|
|
95
|
-
)}</${tagName}>`;
|
|
31
|
+
export type Ref<T extends Element> = {
|
|
32
|
+
current?: T;
|
|
33
|
+
setCurrent(oControlInstance: T): void;
|
|
96
34
|
};
|
|
35
|
+
|
|
97
36
|
export default jsx;
|
|
@@ -7,4 +7,4 @@ sap.ui.define(["sap/fe/core/jsx-runtime/jsx"], function (jsx) {
|
|
|
7
7
|
|
|
8
8
|
return jsx;
|
|
9
9
|
}, false);
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3giXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImpzeHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGpzeDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztTQUVlQSxHIn0=
|
|
@@ -0,0 +1,179 @@
|
|
|
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/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockRuntime", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/jsx-runtime/ViewLoader", "sap/fe/macros/macroLibrary", "sap/m/FormattedText", "sap/m/HBox", "sap/m/Panel", "sap/m/Title", "sap/ui/codeeditor/CodeEditor", "sap/ui/core/Fragment", "sap/ui/core/library", "sap/ui/core/util/XMLPreprocessor", "sap/fe/core/jsx-runtime/jsx"], function (Log, BuildingBlockRuntime, ClassSupport, MDXViewLoader, macroLibrary, FormattedText, HBox, Panel, Title, CodeEditor, Fragment, library, XMLPreprocessor, _jsx) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var TitleLevel = library.TitleLevel;
|
|
9
|
+
var createReference = ClassSupport.createReference;
|
|
10
|
+
var parseXMLString = BuildingBlockRuntime.parseXMLString;
|
|
11
|
+
|
|
12
|
+
function p(strValue) {
|
|
13
|
+
var content = Array.isArray(strValue.children) ? strValue.children.map(function (child) {
|
|
14
|
+
var output;
|
|
15
|
+
|
|
16
|
+
if (typeof child === "string") {
|
|
17
|
+
output = child;
|
|
18
|
+
} else {
|
|
19
|
+
switch (child.getMetadata().getName()) {
|
|
20
|
+
case "sap.m.Link":
|
|
21
|
+
output = "<a href=\"".concat(child.getHref(), "\">").concat(child.getText(), "</a>");
|
|
22
|
+
break;
|
|
23
|
+
|
|
24
|
+
case "sap.ui.codeeditor.CodeEditor":
|
|
25
|
+
output = "<code>".concat(child.getValue(), "</code>");
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return output;
|
|
31
|
+
}).join("") : strValue.children;
|
|
32
|
+
return _jsx(FormattedText, {
|
|
33
|
+
htmlText: content,
|
|
34
|
+
class: "sapUiTinyMarginBottom"
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function h1(strValue) {
|
|
39
|
+
return _jsx(Title, {
|
|
40
|
+
text: strValue.children,
|
|
41
|
+
level: TitleLevel.H1,
|
|
42
|
+
class: "sapUiTinyMarginBottom"
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function a(strValue) {
|
|
47
|
+
return "<a href={strValue.href}>".concat(strValue.children, "</a>");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function ul(strValue) {
|
|
51
|
+
var ulContent = "<ul>".concat(Array.isArray(strValue.children) ? strValue.children.join("") : strValue.children, "</ul>");
|
|
52
|
+
return _jsx(FormattedText, {
|
|
53
|
+
htmlText: ulContent
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function li(strValue) {
|
|
58
|
+
return "<li>".concat(Array.isArray(strValue.children) ? strValue.children.join("") : strValue.children, "</li>");
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function h2(strValue) {
|
|
62
|
+
return _jsx(Title, {
|
|
63
|
+
text: strValue.children,
|
|
64
|
+
level: TitleLevel.H2,
|
|
65
|
+
class: "sapUiSmallMarginTop sapUiTinyMarginBottom"
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function pre(content) {
|
|
70
|
+
return content.children;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function BuildingBlockPlayground(inValue) {
|
|
74
|
+
var sourceHBox = createReference();
|
|
75
|
+
var binding = inValue.binding ? {
|
|
76
|
+
path: inValue.binding
|
|
77
|
+
} : undefined;
|
|
78
|
+
|
|
79
|
+
var target = _jsx(Panel, {
|
|
80
|
+
headerText: inValue.headerText || "",
|
|
81
|
+
class: "sapUiSmallMarginTop",
|
|
82
|
+
children: _jsx(HBox, {
|
|
83
|
+
ref: sourceHBox
|
|
84
|
+
})
|
|
85
|
+
}); // <TabContainer>
|
|
86
|
+
// {{
|
|
87
|
+
// items: [
|
|
88
|
+
// <TabContainerItem name={"Sample"}>{{ content: }},</TabContainerItem>,
|
|
89
|
+
// <TabContainerItem name={"Source"}>
|
|
90
|
+
// {{
|
|
91
|
+
// content: (
|
|
92
|
+
// <CodeBlock editable={false} lineNumbers={true} type={"xml"} lineCount={10}>
|
|
93
|
+
// {inValue.children}
|
|
94
|
+
// </CodeBlock>
|
|
95
|
+
// )
|
|
96
|
+
// }}
|
|
97
|
+
// </TabContainerItem>
|
|
98
|
+
// ]
|
|
99
|
+
// }}
|
|
100
|
+
// </TabContainer>
|
|
101
|
+
// );
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
if (binding) {
|
|
105
|
+
target.bindElement(binding);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
macroLibrary.register();
|
|
109
|
+
var fragmentOrPromise = XMLPreprocessor.process(parseXMLString("<root>".concat(inValue.children, "</root>"), true), {
|
|
110
|
+
name: "myBuildingBlockFragment"
|
|
111
|
+
}, MDXViewLoader.preprocessorData);
|
|
112
|
+
Promise.resolve(fragmentOrPromise).then(function (fragment) {
|
|
113
|
+
return Fragment.load({
|
|
114
|
+
definition: fragment.firstElementChild,
|
|
115
|
+
controller: MDXViewLoader.controller
|
|
116
|
+
});
|
|
117
|
+
}).then(function (fragmentContent) {
|
|
118
|
+
sourceHBox.current.removeAllItems();
|
|
119
|
+
sourceHBox.current.addItem(fragmentContent);
|
|
120
|
+
}).catch(function (err) {
|
|
121
|
+
Log.error(err);
|
|
122
|
+
});
|
|
123
|
+
return target;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function CodeBlock(inValue) {
|
|
127
|
+
var _inValue$children, _snippet$split, _inValue$className;
|
|
128
|
+
|
|
129
|
+
var snippet = ((_inValue$children = inValue.children) === null || _inValue$children === void 0 ? void 0 : _inValue$children.trim()) || "";
|
|
130
|
+
var lineCount = inValue.lineCount || Math.max((_snippet$split = snippet.split("\n")) === null || _snippet$split === void 0 ? void 0 : _snippet$split.length, 3);
|
|
131
|
+
var type = inValue.type || (inValue === null || inValue === void 0 ? void 0 : (_inValue$className = inValue.className) === null || _inValue$className === void 0 ? void 0 : _inValue$className.split("-")[1]) || "js";
|
|
132
|
+
|
|
133
|
+
var myCodeEditor = _jsx(CodeEditor, {
|
|
134
|
+
class: "sapUiTinyMargin",
|
|
135
|
+
lineNumbers: inValue.lineNumbers || false,
|
|
136
|
+
type: type,
|
|
137
|
+
editable: inValue.editable || false,
|
|
138
|
+
maxLines: lineCount,
|
|
139
|
+
height: "auto",
|
|
140
|
+
width: "98%"
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
myCodeEditor.setValue(snippet);
|
|
144
|
+
|
|
145
|
+
if (inValue.source) {
|
|
146
|
+
fetch(inValue.source).then(function (res) {
|
|
147
|
+
return res.text();
|
|
148
|
+
}).then(function (text) {
|
|
149
|
+
var _text$split;
|
|
150
|
+
|
|
151
|
+
var newLineCount = Math.max((_text$split = text.split("\n")) === null || _text$split === void 0 ? void 0 : _text$split.length, 3);
|
|
152
|
+
myCodeEditor.setMaxLines(newLineCount);
|
|
153
|
+
myCodeEditor.setValue(text);
|
|
154
|
+
}).catch(function (e) {
|
|
155
|
+
myCodeEditor.setValue(e.message);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return myCodeEditor;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
var provideComponenents = function () {
|
|
163
|
+
return {
|
|
164
|
+
p: p,
|
|
165
|
+
a: a,
|
|
166
|
+
h1: h1,
|
|
167
|
+
h2: h2,
|
|
168
|
+
ul: ul,
|
|
169
|
+
li: li,
|
|
170
|
+
pre: pre,
|
|
171
|
+
code: CodeBlock,
|
|
172
|
+
CodeBlock: CodeBlock,
|
|
173
|
+
BuildingBlockPlayground: BuildingBlockPlayground
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
return provideComponenents;
|
|
178
|
+
}, false);
|
|
179
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwIiwic3RyVmFsdWUiLCJjb250ZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsIm91dHB1dCIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsImdldEhyZWYiLCJnZXRUZXh0IiwiZ2V0VmFsdWUiLCJqb2luIiwiaDEiLCJUaXRsZUxldmVsIiwiSDEiLCJhIiwidWwiLCJ1bENvbnRlbnQiLCJsaSIsImgyIiwiSDIiLCJwcmUiLCJCdWlsZGluZ0Jsb2NrUGxheWdyb3VuZCIsImluVmFsdWUiLCJzb3VyY2VIQm94IiwiY3JlYXRlUmVmZXJlbmNlIiwiYmluZGluZyIsInBhdGgiLCJ1bmRlZmluZWQiLCJ0YXJnZXQiLCJoZWFkZXJUZXh0IiwiYmluZEVsZW1lbnQiLCJtYWNyb0xpYnJhcnkiLCJyZWdpc3RlciIsImZyYWdtZW50T3JQcm9taXNlIiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsInBhcnNlWE1MU3RyaW5nIiwibmFtZSIsIk1EWFZpZXdMb2FkZXIiLCJwcmVwcm9jZXNzb3JEYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZnJhZ21lbnQiLCJGcmFnbWVudCIsImxvYWQiLCJkZWZpbml0aW9uIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJjb250cm9sbGVyIiwiZnJhZ21lbnRDb250ZW50IiwiY3VycmVudCIsInJlbW92ZUFsbEl0ZW1zIiwiYWRkSXRlbSIsImNhdGNoIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJDb2RlQmxvY2siLCJzbmlwcGV0IiwidHJpbSIsImxpbmVDb3VudCIsIk1hdGgiLCJtYXgiLCJzcGxpdCIsImxlbmd0aCIsInR5cGUiLCJjbGFzc05hbWUiLCJteUNvZGVFZGl0b3IiLCJsaW5lTnVtYmVycyIsImVkaXRhYmxlIiwic2V0VmFsdWUiLCJzb3VyY2UiLCJmZXRjaCIsInJlcyIsInRleHQiLCJuZXdMaW5lQ291bnQiLCJzZXRNYXhMaW5lcyIsImUiLCJtZXNzYWdlIiwicHJvdmlkZUNvbXBvbmVuZW50cyIsImNvZGUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbInVzZU1EWENvbXBvbmVudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgcGFyc2VYTUxTdHJpbmcgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1J1bnRpbWVcIjtcbmltcG9ydCB7IGNyZWF0ZVJlZmVyZW5jZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IE1EWFZpZXdMb2FkZXIgZnJvbSBcInNhcC9mZS9jb3JlL2pzeC1ydW50aW1lL1ZpZXdMb2FkZXJcIjtcbmltcG9ydCBtYWNyb0xpYnJhcnkgZnJvbSBcInNhcC9mZS9tYWNyb3MvbWFjcm9MaWJyYXJ5XCI7XG5pbXBvcnQgRm9ybWF0dGVkVGV4dCBmcm9tIFwic2FwL20vRm9ybWF0dGVkVGV4dFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBQYW5lbCBmcm9tIFwic2FwL20vUGFuZWxcIjtcbmltcG9ydCBUaXRsZSBmcm9tIFwic2FwL20vVGl0bGVcIjtcbmltcG9ydCBDb2RlRWRpdG9yIGZyb20gXCJzYXAvdWkvY29kZWVkaXRvci9Db2RlRWRpdG9yXCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgeyBUaXRsZUxldmVsIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBYTUxQcmVwcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5mdW5jdGlvbiBwKHN0clZhbHVlOiBhbnkpIHtcblx0Y29uc3QgY29udGVudCA9IEFycmF5LmlzQXJyYXkoc3RyVmFsdWUuY2hpbGRyZW4pXG5cdFx0PyBzdHJWYWx1ZS5jaGlsZHJlblxuXHRcdFx0XHQubWFwKChjaGlsZDogYW55KSA9PiB7XG5cdFx0XHRcdFx0bGV0IG91dHB1dDtcblx0XHRcdFx0XHRpZiAodHlwZW9mIGNoaWxkID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0XHRvdXRwdXQgPSBjaGlsZDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c3dpdGNoIChjaGlsZC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSkge1xuXHRcdFx0XHRcdFx0XHRjYXNlIFwic2FwLm0uTGlua1wiOlxuXHRcdFx0XHRcdFx0XHRcdG91dHB1dCA9IGA8YSBocmVmPVwiJHtjaGlsZC5nZXRIcmVmKCl9XCI+JHtjaGlsZC5nZXRUZXh0KCl9PC9hPmA7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCJzYXAudWkuY29kZWVkaXRvci5Db2RlRWRpdG9yXCI6XG5cdFx0XHRcdFx0XHRcdFx0b3V0cHV0ID0gYDxjb2RlPiR7Y2hpbGQuZ2V0VmFsdWUoKX08L2NvZGU+YDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIG91dHB1dDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmpvaW4oXCJcIilcblx0XHQ6IHN0clZhbHVlLmNoaWxkcmVuO1xuXHRyZXR1cm4gPEZvcm1hdHRlZFRleHQgaHRtbFRleHQ9e2NvbnRlbnR9IGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifSAvPjtcbn1cblxuZnVuY3Rpb24gaDEoc3RyVmFsdWU6IGFueSkge1xuXHRyZXR1cm4gPFRpdGxlIHRleHQ9e3N0clZhbHVlLmNoaWxkcmVufSBsZXZlbD17VGl0bGVMZXZlbC5IMX0gY2xhc3M9e1wic2FwVWlUaW55TWFyZ2luQm90dG9tXCJ9IC8+O1xufVxuZnVuY3Rpb24gYShzdHJWYWx1ZTogYW55KSB7XG5cdHJldHVybiBgPGEgaHJlZj17c3RyVmFsdWUuaHJlZn0+JHtzdHJWYWx1ZS5jaGlsZHJlbn08L2E+YDtcbn1cbmZ1bmN0aW9uIHVsKHN0clZhbHVlOiBhbnkpIHtcblx0Y29uc3QgdWxDb250ZW50ID0gYDx1bD4ke0FycmF5LmlzQXJyYXkoc3RyVmFsdWUuY2hpbGRyZW4pID8gc3RyVmFsdWUuY2hpbGRyZW4uam9pbihcIlwiKSA6IHN0clZhbHVlLmNoaWxkcmVufTwvdWw+YDtcblx0cmV0dXJuIDxGb3JtYXR0ZWRUZXh0IGh0bWxUZXh0PXt1bENvbnRlbnR9IC8+O1xufVxuZnVuY3Rpb24gbGkoc3RyVmFsdWU6IGFueSkge1xuXHRyZXR1cm4gYDxsaT4ke0FycmF5LmlzQXJyYXkoc3RyVmFsdWUuY2hpbGRyZW4pID8gc3RyVmFsdWUuY2hpbGRyZW4uam9pbihcIlwiKSA6IHN0clZhbHVlLmNoaWxkcmVufTwvbGk+YDtcbn1cbmZ1bmN0aW9uIGgyKHN0clZhbHVlOiBhbnkpIHtcblx0cmV0dXJuIDxUaXRsZSB0ZXh0PXtzdHJWYWx1ZS5jaGlsZHJlbn0gbGV2ZWw9e1RpdGxlTGV2ZWwuSDJ9IGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3Agc2FwVWlUaW55TWFyZ2luQm90dG9tXCJ9IC8+O1xufVxuZnVuY3Rpb24gcHJlKGNvbnRlbnQ6IGFueSkge1xuXHRyZXR1cm4gY29udGVudC5jaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gQnVpbGRpbmdCbG9ja1BsYXlncm91bmQoaW5WYWx1ZTogYW55KSB7XG5cdGNvbnN0IHNvdXJjZUhCb3ggPSBjcmVhdGVSZWZlcmVuY2U8SEJveD4oKTtcblx0Y29uc3QgYmluZGluZyA9IGluVmFsdWUuYmluZGluZyA/IHsgcGF0aDogaW5WYWx1ZS5iaW5kaW5nIH0gOiB1bmRlZmluZWQ7XG5cdGNvbnN0IHRhcmdldCA9IChcblx0XHQ8UGFuZWwgaGVhZGVyVGV4dD17aW5WYWx1ZS5oZWFkZXJUZXh0IHx8IFwiXCJ9IGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BcIn0+XG5cdFx0XHQ8SEJveCByZWY9e3NvdXJjZUhCb3h9PjwvSEJveD5cblx0XHQ8L1BhbmVsPlxuXHQpO1xuXHQvLyBcdDxUYWJDb250YWluZXI+XG5cdC8vIFx0XHR7e1xuXHQvLyBcdFx0XHRpdGVtczogW1xuXHQvLyBcdFx0XHRcdDxUYWJDb250YWluZXJJdGVtIG5hbWU9e1wiU2FtcGxlXCJ9Pnt7IGNvbnRlbnQ6ICB9fSw8L1RhYkNvbnRhaW5lckl0ZW0+LFxuXHQvLyBcdFx0XHRcdDxUYWJDb250YWluZXJJdGVtIG5hbWU9e1wiU291cmNlXCJ9PlxuXHQvLyBcdFx0XHRcdFx0e3tcblx0Ly8gXHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHQvLyBcdFx0XHRcdFx0XHRcdDxDb2RlQmxvY2sgZWRpdGFibGU9e2ZhbHNlfSBsaW5lTnVtYmVycz17dHJ1ZX0gdHlwZT17XCJ4bWxcIn0gbGluZUNvdW50PXsxMH0+XG5cdC8vIFx0XHRcdFx0XHRcdFx0XHR7aW5WYWx1ZS5jaGlsZHJlbn1cblx0Ly8gXHRcdFx0XHRcdFx0XHQ8L0NvZGVCbG9jaz5cblx0Ly8gXHRcdFx0XHRcdFx0KVxuXHQvLyBcdFx0XHRcdFx0fX1cblx0Ly8gXHRcdFx0XHQ8L1RhYkNvbnRhaW5lckl0ZW0+XG5cdC8vIFx0XHRcdF1cblx0Ly8gXHRcdH19XG5cdC8vIFx0PC9UYWJDb250YWluZXI+XG5cdC8vICk7XG5cdGlmIChiaW5kaW5nKSB7XG5cdFx0dGFyZ2V0LmJpbmRFbGVtZW50KGJpbmRpbmcpO1xuXHR9XG5cdG1hY3JvTGlicmFyeS5yZWdpc3RlcigpO1xuXHRjb25zdCBmcmFnbWVudE9yUHJvbWlzZSA9IFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKFxuXHRcdHBhcnNlWE1MU3RyaW5nKGA8cm9vdD4ke2luVmFsdWUuY2hpbGRyZW59PC9yb290PmAsIHRydWUpLFxuXHRcdHsgbmFtZTogXCJteUJ1aWxkaW5nQmxvY2tGcmFnbWVudFwiIH0sXG5cdFx0TURYVmlld0xvYWRlci5wcmVwcm9jZXNzb3JEYXRhXG5cdCk7XG5cdFByb21pc2UucmVzb2x2ZShmcmFnbWVudE9yUHJvbWlzZSlcblx0XHQudGhlbigoZnJhZ21lbnQ6IEVsZW1lbnQpID0+IHtcblx0XHRcdHJldHVybiBGcmFnbWVudC5sb2FkKHsgZGVmaW5pdGlvbjogZnJhZ21lbnQuZmlyc3RFbGVtZW50Q2hpbGQgYXMgYW55LCBjb250cm9sbGVyOiBNRFhWaWV3TG9hZGVyLmNvbnRyb2xsZXIgfSk7XG5cdFx0fSlcblx0XHQudGhlbigoZnJhZ21lbnRDb250ZW50OiBhbnkpID0+IHtcblx0XHRcdHNvdXJjZUhCb3guY3VycmVudC5yZW1vdmVBbGxJdGVtcygpO1xuXHRcdFx0c291cmNlSEJveC5jdXJyZW50LmFkZEl0ZW0oZnJhZ21lbnRDb250ZW50KTtcblx0XHR9KVxuXHRcdC5jYXRjaCgoZXJyOiBhbnkpID0+IHtcblx0XHRcdExvZy5lcnJvcihlcnIpO1xuXHRcdH0pO1xuXHRyZXR1cm4gdGFyZ2V0O1xufVxuZnVuY3Rpb24gQ29kZUJsb2NrKGluVmFsdWU6IGFueSkge1xuXHRjb25zdCBzbmlwcGV0ID0gaW5WYWx1ZS5jaGlsZHJlbj8udHJpbSgpIHx8IFwiXCI7XG5cdGNvbnN0IGxpbmVDb3VudCA9IGluVmFsdWUubGluZUNvdW50IHx8IE1hdGgubWF4KHNuaXBwZXQuc3BsaXQoXCJcXG5cIik/Lmxlbmd0aCwgMyk7XG5cdGNvbnN0IHR5cGUgPSBpblZhbHVlLnR5cGUgfHwgaW5WYWx1ZT8uY2xhc3NOYW1lPy5zcGxpdChcIi1cIilbMV0gfHwgXCJqc1wiO1xuXHRjb25zdCBteUNvZGVFZGl0b3IgPSAoXG5cdFx0PENvZGVFZGl0b3Jcblx0XHRcdGNsYXNzPVwic2FwVWlUaW55TWFyZ2luXCJcblx0XHRcdGxpbmVOdW1iZXJzPXtpblZhbHVlLmxpbmVOdW1iZXJzIHx8IGZhbHNlfVxuXHRcdFx0dHlwZT17dHlwZX1cblx0XHRcdGVkaXRhYmxlPXtpblZhbHVlLmVkaXRhYmxlIHx8IGZhbHNlfVxuXHRcdFx0bWF4TGluZXM9e2xpbmVDb3VudH1cblx0XHRcdGhlaWdodD17XCJhdXRvXCJ9XG5cdFx0XHR3aWR0aD17XCI5OCVcIn1cblx0XHQ+PC9Db2RlRWRpdG9yPlxuXHQpO1xuXHRteUNvZGVFZGl0b3Iuc2V0VmFsdWUoc25pcHBldCk7XG5cdGlmIChpblZhbHVlLnNvdXJjZSkge1xuXHRcdGZldGNoKGluVmFsdWUuc291cmNlKVxuXHRcdFx0LnRoZW4oKHJlcykgPT4gcmVzLnRleHQoKSlcblx0XHRcdC50aGVuKCh0ZXh0KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG5ld0xpbmVDb3VudCA9IE1hdGgubWF4KHRleHQuc3BsaXQoXCJcXG5cIik/Lmxlbmd0aCwgMyk7XG5cdFx0XHRcdG15Q29kZUVkaXRvci5zZXRNYXhMaW5lcyhuZXdMaW5lQ291bnQpO1xuXHRcdFx0XHRteUNvZGVFZGl0b3Iuc2V0VmFsdWUodGV4dCk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKChlKSA9PiB7XG5cdFx0XHRcdG15Q29kZUVkaXRvci5zZXRWYWx1ZShlLm1lc3NhZ2UpO1xuXHRcdFx0fSk7XG5cdH1cblx0cmV0dXJuIG15Q29kZUVkaXRvcjtcbn1cblxuY29uc3QgcHJvdmlkZUNvbXBvbmVuZW50cyA9IGZ1bmN0aW9uICgpIHtcblx0cmV0dXJuIHtcblx0XHRwOiBwLFxuXHRcdGE6IGEsXG5cdFx0aDE6IGgxLFxuXHRcdGgyOiBoMixcblx0XHR1bDogdWwsXG5cdFx0bGk6IGxpLFxuXHRcdHByZTogcHJlLFxuXHRcdGNvZGU6IENvZGVCbG9jayxcblx0XHRDb2RlQmxvY2s6IENvZGVCbG9jayxcblx0XHRCdWlsZGluZ0Jsb2NrUGxheWdyb3VuZDogQnVpbGRpbmdCbG9ja1BsYXlncm91bmRcblx0fTtcbn07XG5leHBvcnQgZGVmYXVsdCBwcm92aWRlQ29tcG9uZW5lbnRzO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQWFBLFNBQVNBLENBQVQsQ0FBV0MsUUFBWCxFQUEwQjtJQUN6QixJQUFNQyxPQUFPLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSCxRQUFRLENBQUNJLFFBQXZCLElBQ2JKLFFBQVEsQ0FBQ0ksUUFBVCxDQUNDQyxH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
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import Log from "sap/base/Log";
|
|
2
|
+
import { parseXMLString } from "sap/fe/core/buildingBlocks/BuildingBlockRuntime";
|
|
3
|
+
import { createReference } from "sap/fe/core/helpers/ClassSupport";
|
|
4
|
+
import MDXViewLoader from "sap/fe/core/jsx-runtime/ViewLoader";
|
|
5
|
+
import macroLibrary from "sap/fe/macros/macroLibrary";
|
|
6
|
+
import FormattedText from "sap/m/FormattedText";
|
|
7
|
+
import HBox from "sap/m/HBox";
|
|
8
|
+
import Panel from "sap/m/Panel";
|
|
9
|
+
import Title from "sap/m/Title";
|
|
10
|
+
import CodeEditor from "sap/ui/codeeditor/CodeEditor";
|
|
11
|
+
import Fragment from "sap/ui/core/Fragment";
|
|
12
|
+
import { TitleLevel } from "sap/ui/core/library";
|
|
13
|
+
import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
|
|
14
|
+
function p(strValue: any) {
|
|
15
|
+
const content = Array.isArray(strValue.children)
|
|
16
|
+
? strValue.children
|
|
17
|
+
.map((child: any) => {
|
|
18
|
+
let output;
|
|
19
|
+
if (typeof child === "string") {
|
|
20
|
+
output = child;
|
|
21
|
+
} else {
|
|
22
|
+
switch (child.getMetadata().getName()) {
|
|
23
|
+
case "sap.m.Link":
|
|
24
|
+
output = `<a href="${child.getHref()}">${child.getText()}</a>`;
|
|
25
|
+
break;
|
|
26
|
+
case "sap.ui.codeeditor.CodeEditor":
|
|
27
|
+
output = `<code>${child.getValue()}</code>`;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return output;
|
|
32
|
+
})
|
|
33
|
+
.join("")
|
|
34
|
+
: strValue.children;
|
|
35
|
+
return <FormattedText htmlText={content} class={"sapUiTinyMarginBottom"} />;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function h1(strValue: any) {
|
|
39
|
+
return <Title text={strValue.children} level={TitleLevel.H1} class={"sapUiTinyMarginBottom"} />;
|
|
40
|
+
}
|
|
41
|
+
function a(strValue: any) {
|
|
42
|
+
return `<a href={strValue.href}>${strValue.children}</a>`;
|
|
43
|
+
}
|
|
44
|
+
function ul(strValue: any) {
|
|
45
|
+
const ulContent = `<ul>${Array.isArray(strValue.children) ? strValue.children.join("") : strValue.children}</ul>`;
|
|
46
|
+
return <FormattedText htmlText={ulContent} />;
|
|
47
|
+
}
|
|
48
|
+
function li(strValue: any) {
|
|
49
|
+
return `<li>${Array.isArray(strValue.children) ? strValue.children.join("") : strValue.children}</li>`;
|
|
50
|
+
}
|
|
51
|
+
function h2(strValue: any) {
|
|
52
|
+
return <Title text={strValue.children} level={TitleLevel.H2} class={"sapUiSmallMarginTop sapUiTinyMarginBottom"} />;
|
|
53
|
+
}
|
|
54
|
+
function pre(content: any) {
|
|
55
|
+
return content.children;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function BuildingBlockPlayground(inValue: any) {
|
|
59
|
+
const sourceHBox = createReference<HBox>();
|
|
60
|
+
const binding = inValue.binding ? { path: inValue.binding } : undefined;
|
|
61
|
+
const target = (
|
|
62
|
+
<Panel headerText={inValue.headerText || ""} class={"sapUiSmallMarginTop"}>
|
|
63
|
+
<HBox ref={sourceHBox}></HBox>
|
|
64
|
+
</Panel>
|
|
65
|
+
);
|
|
66
|
+
// <TabContainer>
|
|
67
|
+
// {{
|
|
68
|
+
// items: [
|
|
69
|
+
// <TabContainerItem name={"Sample"}>{{ content: }},</TabContainerItem>,
|
|
70
|
+
// <TabContainerItem name={"Source"}>
|
|
71
|
+
// {{
|
|
72
|
+
// content: (
|
|
73
|
+
// <CodeBlock editable={false} lineNumbers={true} type={"xml"} lineCount={10}>
|
|
74
|
+
// {inValue.children}
|
|
75
|
+
// </CodeBlock>
|
|
76
|
+
// )
|
|
77
|
+
// }}
|
|
78
|
+
// </TabContainerItem>
|
|
79
|
+
// ]
|
|
80
|
+
// }}
|
|
81
|
+
// </TabContainer>
|
|
82
|
+
// );
|
|
83
|
+
if (binding) {
|
|
84
|
+
target.bindElement(binding);
|
|
85
|
+
}
|
|
86
|
+
macroLibrary.register();
|
|
87
|
+
const fragmentOrPromise = XMLPreprocessor.process(
|
|
88
|
+
parseXMLString(`<root>${inValue.children}</root>`, true),
|
|
89
|
+
{ name: "myBuildingBlockFragment" },
|
|
90
|
+
MDXViewLoader.preprocessorData
|
|
91
|
+
);
|
|
92
|
+
Promise.resolve(fragmentOrPromise)
|
|
93
|
+
.then((fragment: Element) => {
|
|
94
|
+
return Fragment.load({ definition: fragment.firstElementChild as any, controller: MDXViewLoader.controller });
|
|
95
|
+
})
|
|
96
|
+
.then((fragmentContent: any) => {
|
|
97
|
+
sourceHBox.current.removeAllItems();
|
|
98
|
+
sourceHBox.current.addItem(fragmentContent);
|
|
99
|
+
})
|
|
100
|
+
.catch((err: any) => {
|
|
101
|
+
Log.error(err);
|
|
102
|
+
});
|
|
103
|
+
return target;
|
|
104
|
+
}
|
|
105
|
+
function CodeBlock(inValue: any) {
|
|
106
|
+
const snippet = inValue.children?.trim() || "";
|
|
107
|
+
const lineCount = inValue.lineCount || Math.max(snippet.split("\n")?.length, 3);
|
|
108
|
+
const type = inValue.type || inValue?.className?.split("-")[1] || "js";
|
|
109
|
+
const myCodeEditor = (
|
|
110
|
+
<CodeEditor
|
|
111
|
+
class="sapUiTinyMargin"
|
|
112
|
+
lineNumbers={inValue.lineNumbers || false}
|
|
113
|
+
type={type}
|
|
114
|
+
editable={inValue.editable || false}
|
|
115
|
+
maxLines={lineCount}
|
|
116
|
+
height={"auto"}
|
|
117
|
+
width={"98%"}
|
|
118
|
+
></CodeEditor>
|
|
119
|
+
);
|
|
120
|
+
myCodeEditor.setValue(snippet);
|
|
121
|
+
if (inValue.source) {
|
|
122
|
+
fetch(inValue.source)
|
|
123
|
+
.then((res) => res.text())
|
|
124
|
+
.then((text) => {
|
|
125
|
+
const newLineCount = Math.max(text.split("\n")?.length, 3);
|
|
126
|
+
myCodeEditor.setMaxLines(newLineCount);
|
|
127
|
+
myCodeEditor.setValue(text);
|
|
128
|
+
})
|
|
129
|
+
.catch((e) => {
|
|
130
|
+
myCodeEditor.setValue(e.message);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return myCodeEditor;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const provideComponenents = function () {
|
|
137
|
+
return {
|
|
138
|
+
p: p,
|
|
139
|
+
a: a,
|
|
140
|
+
h1: h1,
|
|
141
|
+
h2: h2,
|
|
142
|
+
ul: ul,
|
|
143
|
+
li: li,
|
|
144
|
+
pre: pre,
|
|
145
|
+
code: CodeBlock,
|
|
146
|
+
CodeBlock: CodeBlock,
|
|
147
|
+
BuildingBlockPlayground: BuildingBlockPlayground
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
export default provideComponenents;
|
|
@@ -68,7 +68,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/formatters/FPMFormatter", "sap/fe/co
|
|
|
68
68
|
controls: [],
|
|
69
69
|
elements: [],
|
|
70
70
|
// eslint-disable-next-line no-template-curly-in-string
|
|
71
|
-
version: "1.
|
|
71
|
+
version: "1.106.0",
|
|
72
72
|
noLibraryCSS: true,
|
|
73
73
|
extensions: {
|
|
74
74
|
//Configuration used for rule loading of Support Assistant
|
|
@@ -474,4 +474,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/formatters/FPMFormatter", "sap/fe/co
|
|
|
474
474
|
ServiceFactoryRegistry.register("sap.fe.core.services.AsyncComponentService", new AsyncComponentServiceFactory());
|
|
475
475
|
return thisLib;
|
|
476
476
|
}, false);
|
|
477
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYnJhcnkudHMiXSwibmFtZXMiOlsidGhpc0xpYiIsIkNvcmUiLCJpbml0TGlicmFyeSIsIm5hbWUiLCJkZXBlbmRlbmNpZXMiLCJ0eXBlcyIsImludGVyZmFjZXMiLCJjb250cm9scyIsImVsZW1lbnRzIiwidmVyc2lvbiIsIm5vTGlicmFyeUNTUyIsImV4dGVuc2lvbnMiLCJwdWJsaWNSdWxlcyIsImludGVybmFsUnVsZXMiLCJmbENoYW5nZUhhbmRsZXJzIiwiSW52b2NhdGlvbkdyb3VwaW5nIiwiSXNvbGF0ZWQiLCJDaGFuZ2VTZXQiLCJDcmVhdGlvbk1vZGUiLCJOZXdQYWdlIiwiU3luYyIsIkFzeW5jIiwiRGVmZXJyZWQiLCJJbmxpbmUiLCJDcmVhdGlvblJvdyIsIklubGluZUNyZWF0aW9uUm93cyIsIkV4dGVybmFsIiwiVmFyaWFudE1hbmFnZW1lbnQiLCJOb25lIiwiUGFnZSIsIkNvbnRyb2wiLCJDb25zdGFudHMiLCJDYW5jZWxBY3Rpb25EaWFsb2ciLCJQcm9ncmFtbWluZ01vZGVsIiwiRHJhZnQiLCJTdGlja3kiLCJOb25EcmFmdCIsIkRyYWZ0U3RhdHVzIiwiU2F2aW5nIiwiU2F2ZWQiLCJDbGVhciIsIkVkaXRNb2RlIiwiRGlzcGxheSIsIkVkaXRhYmxlIiwiVGVtcGxhdGVDb250ZW50VmlldyIsIkh5YnJpZCIsIkNoYXJ0IiwiVGFibGUiLCJJbml0aWFsTG9hZE1vZGUiLCJFbmFibGVkIiwiRGlzYWJsZWQiLCJBdXRvIiwiU3RhcnR1cE1vZGUiLCJOb3JtYWwiLCJEZWVwbGluayIsIkNyZWF0ZSIsIkluaXRpYWxMb2FkVHlwZSIsIkRhdGFUeXBlIiwiY3JlYXRlVHlwZSIsImRlZmF1bHRWYWx1ZSIsImlzVmFsaWQiLCJ2VmFsdWUiLCJMb2ciLCJ3YXJuaW5nIiwidW5kZWZpbmVkIiwiaGFzT3duUHJvcGVydHkiLCJzZXROb3JtYWxpemVyIiwiU2VydmljZUZhY3RvcnlSZWdpc3RyeSIsInJlZ2lzdGVyIiwiVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5IiwiUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5IiwiQ2FjaGVIYW5kbGVyU2VydmljZUZhY3RvcnkiLCJOYXZpZ2F0aW9uU2VydmljZSIsIlJvdXRpbmdTZXJ2aWNlRmFjdG9yeSIsIlNpZGVFZmZlY3RzU2VydmljZUZhY3RvcnkiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsIkVudmlyb25tZW50U2VydmljZUZhY3RvcnkiLCJBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBcUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxPQUFPLEdBQUdDLElBQUksQ0FBQ0MsV0FBTCxDQUFpQjtBQUNoQ0MsSUFBQUEsSUFBSSxFQUFFLGFBRDBCO0FBRWhDQyxJQUFBQSxZQUFZLEVBQUUsQ0FBQyxhQUFELEVBQWdCLG1CQUFoQixFQUFxQyxvQkFBckMsRUFBMkQsV0FBM0QsRUFBd0UsWUFBeEUsQ0FGa0I7QUFHaENDLElBQUFBLEtBQUssRUFBRSxDQUFDLDBCQUFELEVBQTZCLCtCQUE3QixDQUh5QjtBQUloQ0MsSUFBQUEsVUFBVSxFQUFFLEVBSm9CO0FBS2hDQyxJQUFBQSxRQUFRLEVBQUUsRUFMc0I7QUFNaENDLElBQUFBLFFBQVEsRUFBRSxFQU5zQjtBQU9oQztBQUNBQyxJQUFBQSxPQUFPLEVBQUUsWUFSdUI7QUFTaENDLElBQUFBLFlBQVksRUFBRSxJQVRrQjtBQVVoQ0MsSUFBQUEsVUFBVSxFQUFFO0FBQ1g7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SUFBSUMsMkJBQUosRUFBN0U7QUFDQUYsRUFBQUEsc0JBQXNCLENBQUNDLFFBQXZCLENBQWdDLDJDQUFoQyxFQUE2RSxJQUFJRSwyQkFBSixFQUE3RTtBQUNBSCxFQUFBQSxzQkFBc0IsQ0FBQ0MsUUFBdkIsQ0FBZ0MsMENBQWhDLEVBQTRFLElBQUlHLDBCQUFKLEVBQTVFO0FBQ0FKLEVBQUFBLHNCQUFzQixDQUFDQyxRQUF2QixDQUFnQyx3Q0FBaEMsRUFBMEUsSUFBSUksaUJBQUosRUFBMUU7QUFDQUwsRUFBQUEsc0JBQXNCLENBQUNDLFFBQXZCLENBQWdDLHFDQUFoQyxFQUF1RSxJQUFJSyxxQkFBSixFQUF2RTtBQUNBTixFQUFBQSxzQkFBc0IsQ0FBQ0MsUUFBdkIsQ0FBZ0MseUNBQWhDLEVBQTJFLElBQUlNLHlCQUFKLEVBQTNFO0FBQ0FQLEVBQUFBLHNCQUFzQixDQUFDQyxRQUF2QixDQUFnQyxvQ0FBaEMsRUFBc0UsSUFBSU8sb0JBQUosRUFBdEU7QUFDQVIsRUFBQUEsc0JBQXNCLENBQUNDLFFBQXZCLENBQWdDLHlDQUFoQyxFQUEyRSxJQUFJUSx5QkFBSixFQUEzRTtBQUNBVCxFQUFBQSxzQkFBc0IsQ0FBQ0MsUUFBdkIsQ0FBZ0MsNENBQWhDLEVBQThFLElBQUlTLDRCQUFKLEVBQTlFO1NBRWU3RSxPIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvRlBNRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1N0YW5kYXJkRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1ZhbHVlRm9ybWF0dGVyXCI7XG5pbXBvcnQgQXN5bmNDb21wb25lbnRTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvQXN5bmNDb21wb25lbnRTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENhY2hlSGFuZGxlclNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9DYWNoZUhhbmRsZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IEVudmlyb25tZW50U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0Vudmlyb25tZW50U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBOYXZpZ2F0aW9uU2VydmljZSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9SZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBSb3V0aW5nU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1JvdXRpbmdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFNoZWxsU2VydmljZXNGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaGVsbFNlcnZpY2VzRmFjdG9yeVwiO1xuaW1wb3J0IFNpZGVFZmZlY3RzU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1NpZGVFZmZlY3RzU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvdHlwZS9EYXRlVGltZVdpdGhUaW1lem9uZVwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvdHlwZS9FbWFpbFwiO1xuaW1wb3J0IFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IFwic2FwL2ZlL3BsYWNlaG9sZGVyL2xpYnJhcnlcIjtcbmltcG9ydCBEYXRhVHlwZSBmcm9tIFwic2FwL3VpL2Jhc2UvRGF0YVR5cGVcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgU2VydmljZUZhY3RvcnlSZWdpc3RyeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5XCI7XG5pbXBvcnQgXCJzYXAvdWkvZmwvbGlicmFyeVwiO1xuaW1wb3J0IFwic2FwL3VpL21kYy9saWJyYXJ5XCI7XG4vKipcbiAqIFJvb3QgbmFtZXNwYWNlIGZvciBhbGwgdGhlIGxpYnJhcmllcyByZWxhdGVkIHRvIFNBUCBGaW9yaSBlbGVtZW50cy5cbiAqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmVcbiAqIEBwdWJsaWNcbiAqL1xuXG4vKipcbiAqIExpYnJhcnkgcHJvdmlkaW5nIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHJ1bnRpbWUgZm9yIFNBUCBGaW9yaSBlbGVtZW50cyBmb3IgT0RhdGEgVjQuXG4gKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlLmNvcmVcbiAqIEBwdWJsaWNcbiAqL1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgY29udHJvbGxlciBleHRlbnNpb25zIHVzZWQgaW50ZXJuYWxseSBpbiBTQVAgRmlvcmkgZWxlbWVudHMgZXhwb3NpbmcgYSBtZXRob2QgdGhhdCB5b3UgY2FuIG92ZXJyaWRlIHRvIGFsbG93IG1vcmUgZmxleGliaWxpdHkuXG4gKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnNcbiAqIEBwdWJsaWNcbiAqL1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgY2xhc3NlcyBwcm92aWRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIHRoZSBGbGV4aWJsZSBQcm9ncmFtbWluZyBNb2RlbFxuICpcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLmZwbVxuICogQHB1YmxpY1xuICovXG5cbi8qKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlLmNvcmUuYWN0aW9uc1xuICogQHByaXZhdGVcbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS5jb21tb25cbiAqIEBwcml2YXRlXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5tb2RlbFxuICogQHByaXZhdGVcbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLm5hdmlnYXRpb25cbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IHRoaXNMaWIgPSBDb3JlLmluaXRMaWJyYXJ5KHtcblx0bmFtZTogXCJzYXAuZmUuY29yZVwiLFxuXHRkZXBlbmRlbmNpZXM6IFtcInNhcC51aS5jb3JlXCIsIFwic2FwLmZlLm5hdmlnYXRpb25cIiwgXCJzYXAuZmUucGxhY2Vob2xkZXJcIiwgXCJzYXAudWkuZmxcIiwgXCJzYXAudWkubWRjXCJdLFxuXHR0eXBlczogW1wic2FwLmZlLmNvcmUuQ3JlYXRpb25Nb2RlXCIsIFwic2FwLmZlLmNvcmUuVmFyaWFudE1hbmFnZW1lbnRcIl0sXG5cdGludGVyZmFjZXM6IFtdLFxuXHRjb250cm9sczogW10sXG5cdGVsZW1lbnRzOiBbXSxcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZ1xuXHR2ZXJzaW9uOiBcIiR7dmVyc2lvbn1cIixcblx0bm9MaWJyYXJ5Q1NTOiB0cnVlLFxuXHRleHRlbnNpb25zOiB7XG5cdFx0Ly9Db25maWd1cmF0aW9uIHVzZWQgZm9yIHJ1bGUgbG9hZGluZyBvZiBTdXBwb3J0IEFzc2lzdGFudFxuXHRcdFwic2FwLnVpLnN1cHBvcnRcIjoge1xuXHRcdFx0cHVibGljUnVsZXM6IHRydWUsXG5cdFx0XHRpbnRlcm5hbFJ1bGVzOiB0cnVlXG5cdFx0fSxcblx0XHRmbENoYW5nZUhhbmRsZXJzOiB7XG5cdFx0XHRcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiOiBcInNhcC91aS9tZGMvZmxleGliaWxpdHkvRmlsdGVyQmFyXCJcblx0XHR9XG5cdH1cbn0pIGFzIGFueTtcblxuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBpbnZvY2F0aW9uIGdyb3VwaW5nLlxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuSW52b2NhdGlvbkdyb3VwaW5nID0ge1xuXHQvKipcblx0ICogSXNvbGF0ZWQuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJc29sYXRlZDogXCJJc29sYXRlZFwiLFxuXHQvKipcblx0ICogQ2hhbmdlU2V0LlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2hhbmdlU2V0OiBcIkNoYW5nZVNldFwiXG59O1xuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBjcmVhdGlvbiBtb2RlLlxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuQ3JlYXRpb25Nb2RlID0ge1xuXHQvKipcblx0ICogTmV3IFBhZ2UuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHROZXdQYWdlOiBcIk5ld1BhZ2VcIixcblx0LyoqXG5cdCAqIFN5bmMuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRTeW5jOiBcIlN5bmNcIixcblx0LyoqXG5cdCAqIEFzeW5jLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QXN5bmM6IFwiQXN5bmNcIixcblx0LyoqXG5cdCAqIERlZmVycmVkLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RGVmZXJyZWQ6IFwiRGVmZXJyZWRcIixcblx0LyoqXG5cdCAqIElubGluZS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdElubGluZTogXCJJbmxpbmVcIixcblx0LyoqXG5cdCAqIENyZWF0aW9uIHJvdy5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENyZWF0aW9uUm93OiBcIkNyZWF0aW9uUm93XCIsXG5cdC8qKlxuXHQgKiBJbmxpbmUgY3JlYXRpb24gcm93cy5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdElubGluZUNyZWF0aW9uUm93czogXCJJbmxpbmVDcmVhdGlvblJvd3NcIixcblx0LyoqXG5cdCAqIEV4dGVybmFsIChieSBvdXRib3VuZCBuYXZpZ2F0aW9uKS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEV4dGVybmFsOiBcIkV4dGVybmFsXCJcbn07XG4vKipcbiAqIEF2YWlsYWJsZSB2YWx1ZXMgZm9yIFZhcmlhbnQgTWFuYWdlbWVudC5cbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLlZhcmlhbnRNYW5hZ2VtZW50ID0ge1xuXHQvKipcblx0ICogTm8gdmFyaWFudCBtYW5hZ2VtZW50IGF0IGFsbC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE5vbmU6IFwiTm9uZVwiLFxuXG5cdC8qKlxuXHQgKiBPbmUgdmFyaWFudCBjb25maWd1cmF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFBhZ2U6IFwiUGFnZVwiLFxuXG5cdC8qKlxuXHQgKiBWYXJpYW50IG1hbmFnZW1lbnQgb24gY29udHJvbCBsZXZlbC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENvbnRyb2w6IFwiQ29udHJvbFwiXG59O1xuLyoqXG4gKiBBdmFpbGFibGUgY29uc3RhbnRzLlxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuQ29uc3RhbnRzID0ge1xuXHQvKipcblx0ICogSW5kaWNhdGVzIGNhbmNlbGxpbmcgb2YgYW4gYWN0aW9uIGRpYWxvZy5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENhbmNlbEFjdGlvbkRpYWxvZzogXCJjYW5jZWxcIlxufTtcbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgcHJvZ3JhbW1pbmcgbW9kZWwuXG4gKlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHByaXZhdGVcbiAqL1xudGhpc0xpYi5Qcm9ncmFtbWluZ01vZGVsID0ge1xuXHQvKipcblx0ICogRHJhZnQuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHREcmFmdDogXCJEcmFmdFwiLFxuXHQvKipcblx0ICogU3RpY2t5LlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U3RpY2t5OiBcIlN0aWNreVwiLFxuXHQvKipcblx0ICogTm9uRHJhZnQuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHROb25EcmFmdDogXCJOb25EcmFmdFwiXG59O1xuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBkcmFmdCBzdGF0dXMuXG4gKlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHByaXZhdGVcbiAqL1xudGhpc0xpYi5EcmFmdFN0YXR1cyA9IHtcblx0LyoqXG5cdCAqIFNhdmluZy5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFNhdmluZzogXCJTYXZpbmdcIixcblx0LyoqXG5cdCAqIFNhdmVkLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U2F2ZWQ6IFwiU2F2ZWRcIixcblx0LyoqXG5cdCAqIENsZWFyLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2xlYXI6IFwiQ2xlYXJcIlxufTtcbi8qKlxuICogRWRpdCBtb2RlIHZhbHVlcy5cbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLkVkaXRNb2RlID0ge1xuXHQvKipcblx0ICogVmlldyBpcyBjdXJyZW50bHkgZGlzcGxheWluZyBvbmx5LlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RGlzcGxheTogXCJEaXNwbGF5XCIsXG5cdC8qKlxuXHQgKiBWaWV3IGlzIGN1cnJlbnRseSBlZGl0YWJsZS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEVkaXRhYmxlOiBcIkVkaXRhYmxlXCJcbn07XG4vKipcbiAqIFRlbXBsYXRlIHZpZXdzLlxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuVGVtcGxhdGVDb250ZW50VmlldyA9IHtcblx0LyoqXG5cdCAqIEh5YnJpZC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRIeWJyaWQ6IFwiSHlicmlkXCIsXG5cdC8qKlxuXHQgKiBDaGFydC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRDaGFydDogXCJDaGFydFwiLFxuXHQvKipcblx0ICogVGFibGUuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0VGFibGU6IFwiVGFibGVcIlxufTtcbi8qKlxuICogUG9zc2libGUgaW5pdGlhbCBsb2FkIChmaXJzdCBhcHAgc3RhcnR1cCkgbW9kZXMgZm9yIGEgTGlzdFJlcG9ydC5cbiAqXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQG5hbWUgc2FwLmZlLmNvcmUuSW5pdGlhbExvYWRNb2RlXG4gKiBAcmVhZG9ubHlcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg2LjBcbiAqL1xudGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUgPSB7XG5cdC8qKlxuXHQgKiBEYXRhIHdpbGwgYmUgbG9hZGVkIGluaXRpYWxseS5cblx0ICpcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuSW5pdGlhbExvYWRNb2RlLkVuYWJsZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RW5hYmxlZDogXCJFbmFibGVkXCIsXG5cblx0LyoqXG5cdCAqIERhdGEgd2lsbCBub3QgYmUgbG9hZGVkIGluaXRpYWxseS5cblx0ICpcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuSW5pdGlhbExvYWRNb2RlLkRpc2FibGVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG5cblx0LyoqXG5cdCAqIERhdGEgd2lsbCBiZSBsb2FkZWQgaW5pdGlhbGx5IGlmIGZpbHRlcnMgYXJlIHNldC5cblx0ICpcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuSW5pdGlhbExvYWRNb2RlLkF1dG9cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QXV0bzogXCJBdXRvXCJcbn07XG5cbi8qKlxuICogVmFsdWUgb2YgdGhlIHN0YXJ0dXAgbW9kZVxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuU3RhcnR1cE1vZGUgPSB7XG5cdC8qKlxuXHQgKiBBcHAgaGFzIGJlZW4gc3RhcnRlZCBub3JtYWxseS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHROb3JtYWw6IFwiTm9ybWFsXCIsXG5cdC8qKlxuXHQgKiBBcHAgaGFzIGJlZW4gc3RhcnRlZCB3aXRoIHN0YXJ0dXAga2V5cyAoZGVlcGxpbmspLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdERlZXBsaW5rOiBcIkRlZXBsaW5rXCIsXG5cdC8qKlxuXHQgKiBBcHAgaGFzIGJlZW4gc3RhcnRlZCBpbiAnY3JlYXRlJyBtb2RlLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdENyZWF0ZTogXCJDcmVhdGVcIlxufTtcbi8vIGV4cGxpY2l0IHR5cGUgdG8gaGFuZGxlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBib29sZWFuIHZhbHVlc1xuY29uc3QgSW5pdGlhbExvYWRUeXBlID0gRGF0YVR5cGUuY3JlYXRlVHlwZShcInNhcC5mZS5jb3JlLkluaXRpYWxMb2FkTW9kZVwiLCB7XG5cdGRlZmF1bHRWYWx1ZTogdGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUuQXV0byxcblx0aXNWYWxpZDogZnVuY3Rpb24gKHZWYWx1ZTogYW55KSB7XG5cdFx0aWYgKHR5cGVvZiB2VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XCJERVBSRUNBVEVEOiBib29sZWFuIHZhbHVlIG5vdCBhbGxvd2VkIGZvciAnaW5pdGlhbExvYWQnIG1hbmlmZXN0IHNldHRpbmcgLSBzdXBwb3J0ZWQgdmFsdWVzIGFyZTogRGlzYWJsZWR8RW5hYmxlZHxBdXRvXCJcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB2VmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2VmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZWYWx1ZSA9PT0gXCJib29sZWFuXCIgfHwgdGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUuaGFzT3duUHJvcGVydHkodlZhbHVlKTtcblx0fVxufSk7XG4vLyBub3JtYWxpemUgYSB2YWx1ZSwgdGFraW5nIGNhcmUgb2YgYm9vbGVhbiB0eXBlXG5Jbml0aWFsTG9hZFR5cGUuc2V0Tm9ybWFsaXplcihmdW5jdGlvbiAodlZhbHVlOiBhbnkpIHtcblx0aWYgKCF2VmFsdWUpIHtcblx0XHQvLyB1bmRlZmluZWQsIG51bGwgb3IgZmFsc2Vcblx0XHRyZXR1cm4gdGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUuRGlzYWJsZWQ7XG5cdH1cblx0cmV0dXJuIHZWYWx1ZSA9PT0gdHJ1ZSA/IHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLkVuYWJsZWQgOiB2VmFsdWU7XG59KTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5UZW1wbGF0ZWRWaWV3U2VydmljZVwiLCBuZXcgVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlJlc291cmNlTW9kZWxTZXJ2aWNlXCIsIG5ldyBSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQ2FjaGVIYW5kbGVyU2VydmljZVwiLCBuZXcgQ2FjaGVIYW5kbGVyU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VcIiwgbmV3IE5hdmlnYXRpb25TZXJ2aWNlKCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlJvdXRpbmdTZXJ2aWNlXCIsIG5ldyBSb3V0aW5nU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2lkZUVmZmVjdHNTZXJ2aWNlXCIsIG5ldyBTaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNcIiwgbmV3IFNoZWxsU2VydmljZXNGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkVudmlyb25tZW50U2VydmljZVwiLCBuZXcgRW52aXJvbm1lbnRTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Bc3luY0NvbXBvbmVudFNlcnZpY2VcIiwgbmV3IEFzeW5jQ29tcG9uZW50U2VydmljZUZhY3RvcnkoKSk7XG5cbmV4cG9ydCBkZWZhdWx0IHRoaXNMaWI7XG4iXX0=
|
|
477
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0aGlzTGliIiwiQ29yZSIsImluaXRMaWJyYXJ5IiwibmFtZSIsImRlcGVuZGVuY2llcyIsInR5cGVzIiwiaW50ZXJmYWNlcyIsImNvbnRyb2xzIiwiZWxlbWVudHMiLCJ2ZXJzaW9uIiwibm9MaWJyYXJ5Q1NTIiwiZXh0ZW5zaW9ucyIsInB1YmxpY1J1bGVzIiwiaW50ZXJuYWxSdWxlcyIsImZsQ2hhbmdlSGFuZGxlcnMiLCJJbnZvY2F0aW9uR3JvdXBpbmciLCJJc29sYXRlZCIsIkNoYW5nZVNldCIsIkNyZWF0aW9uTW9kZSIsIk5ld1BhZ2UiLCJTeW5jIiwiQXN5bmMiLCJEZWZlcnJlZCIsIklubGluZSIsIkNyZWF0aW9uUm93IiwiSW5saW5lQ3JlYXRpb25Sb3dzIiwiRXh0ZXJuYWwiLCJWYXJpYW50TWFuYWdlbWVudCIsIk5vbmUiLCJQYWdlIiwiQ29udHJvbCIsIkNvbnN0YW50cyIsIkNhbmNlbEFjdGlvbkRpYWxvZyIsIlByb2dyYW1taW5nTW9kZWwiLCJEcmFmdCIsIlN0aWNreSIsIk5vbkRyYWZ0IiwiRHJhZnRTdGF0dXMiLCJTYXZpbmciLCJTYXZlZCIsIkNsZWFyIiwiRWRpdE1vZGUiLCJEaXNwbGF5IiwiRWRpdGFibGUiLCJUZW1wbGF0ZUNvbnRlbnRWaWV3IiwiSHlicmlkIiwiQ2hhcnQiLCJUYWJsZSIsIkluaXRpYWxMb2FkTW9kZSIsIkVuYWJsZWQiLCJEaXNhYmxlZCIsIkF1dG8iLCJTdGFydHVwTW9kZSIsIk5vcm1hbCIsIkRlZXBsaW5rIiwiQ3JlYXRlIiwiSW5pdGlhbExvYWRUeXBlIiwiRGF0YVR5cGUiLCJjcmVhdGVUeXBlIiwiZGVmYXVsdFZhbHVlIiwiaXNWYWxpZCIsInZWYWx1ZSIsIkxvZyIsIndhcm5pbmciLCJ1bmRlZmluZWQiLCJoYXNPd25Qcm9wZXJ0eSIsInNldE5vcm1hbGl6ZXIiLCJTZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5IiwicmVnaXN0ZXIiLCJUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkiLCJSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkiLCJDYWNoZUhhbmRsZXJTZXJ2aWNlRmFjdG9yeSIsIk5hdmlnYXRpb25TZXJ2aWNlIiwiUm91dGluZ1NlcnZpY2VGYWN0b3J5IiwiU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeSIsIlNoZWxsU2VydmljZXNGYWN0b3J5IiwiRW52aXJvbm1lbnRTZXJ2aWNlRmFjdG9yeSIsIkFzeW5jQ29tcG9uZW50U2VydmljZUZhY3RvcnkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImxpYnJhcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0ZQTUZvcm1hdHRlclwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9TdGFuZGFyZEZvcm1hdHRlclwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9WYWx1ZUZvcm1hdHRlclwiO1xuaW1wb3J0IEFzeW5jQ29tcG9uZW50U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0FzeW5jQ29tcG9uZW50U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBDYWNoZUhhbmRsZXJTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvQ2FjaGVIYW5kbGVyU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBFbnZpcm9ubWVudFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9FbnZpcm9ubWVudFNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgTmF2aWdhdGlvblNlcnZpY2UgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL05hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFJlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgUm91dGluZ1NlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9Sb3V0aW5nU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBTaGVsbFNlcnZpY2VzRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2hlbGxTZXJ2aWNlc0ZhY3RvcnlcIjtcbmltcG9ydCBTaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9UZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL3R5cGUvRGF0ZVRpbWVXaXRoVGltZXpvbmVcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL3R5cGUvRW1haWxcIjtcbmltcG9ydCBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCBcInNhcC9mZS9wbGFjZWhvbGRlci9saWJyYXJ5XCI7XG5pbXBvcnQgRGF0YVR5cGUgZnJvbSBcInNhcC91aS9iYXNlL0RhdGFUeXBlXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5UmVnaXN0cnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlSZWdpc3RyeVwiO1xuaW1wb3J0IFwic2FwL3VpL2ZsL2xpYnJhcnlcIjtcbmltcG9ydCBcInNhcC91aS9tZGMvbGlicmFyeVwiO1xuLyoqXG4gKiBSb290IG5hbWVzcGFjZSBmb3IgYWxsIHRoZSBsaWJyYXJpZXMgcmVsYXRlZCB0byBTQVAgRmlvcmkgZWxlbWVudHMuXG4gKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlXG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBMaWJyYXJ5IHByb3ZpZGluZyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBydW50aW1lIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICpcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS5jb3JlXG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGNvbnRyb2xsZXIgZXh0ZW5zaW9ucyB1c2VkIGludGVybmFsbHkgaW4gU0FQIEZpb3JpIGVsZW1lbnRzIGV4cG9zaW5nIGEgbWV0aG9kIHRoYXQgeW91IGNhbiBvdmVycmlkZSB0byBhbGxvdyBtb3JlIGZsZXhpYmlsaXR5LlxuICpcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zXG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGNsYXNzZXMgcHJvdmlkZWQgYnkgU0FQIEZpb3JpIGVsZW1lbnRzIGZvciB0aGUgRmxleGlibGUgUHJvZ3JhbW1pbmcgTW9kZWxcbiAqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5mcG1cbiAqIEBwdWJsaWNcbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2VcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLmFjdGlvbnNcbiAqIEBwcml2YXRlXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUuY29tbW9uXG4gKiBAcHJpdmF0ZVxuICovXG5cbi8qKlxuICogQG5hbWVzcGFjZVxuICogQG5hbWUgc2FwLmZlLmNvcmUubW9kZWxcbiAqIEBwcml2YXRlXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5uYXZpZ2F0aW9uXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCB0aGlzTGliID0gQ29yZS5pbml0TGlicmFyeSh7XG5cdG5hbWU6IFwic2FwLmZlLmNvcmVcIixcblx0ZGVwZW5kZW5jaWVzOiBbXCJzYXAudWkuY29yZVwiLCBcInNhcC5mZS5uYXZpZ2F0aW9uXCIsIFwic2FwLmZlLnBsYWNlaG9sZGVyXCIsIFwic2FwLnVpLmZsXCIsIFwic2FwLnVpLm1kY1wiXSxcblx0dHlwZXM6IFtcInNhcC5mZS5jb3JlLkNyZWF0aW9uTW9kZVwiLCBcInNhcC5mZS5jb3JlLlZhcmlhbnRNYW5hZ2VtZW50XCJdLFxuXHRpbnRlcmZhY2VzOiBbXSxcblx0Y29udHJvbHM6IFtdLFxuXHRlbGVtZW50czogW10sXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblx0dmVyc2lvbjogXCIke3ZlcnNpb259XCIsXG5cdG5vTGlicmFyeUNTUzogdHJ1ZSxcblx0ZXh0ZW5zaW9uczoge1xuXHRcdC8vQ29uZmlndXJhdGlvbiB1c2VkIGZvciBydWxlIGxvYWRpbmcgb2YgU3VwcG9ydCBBc3Npc3RhbnRcblx0XHRcInNhcC51aS5zdXBwb3J0XCI6IHtcblx0XHRcdHB1YmxpY1J1bGVzOiB0cnVlLFxuXHRcdFx0aW50ZXJuYWxSdWxlczogdHJ1ZVxuXHRcdH0sXG5cdFx0ZmxDaGFuZ2VIYW5kbGVyczoge1xuXHRcdFx0XCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIjogXCJzYXAvdWkvbWRjL2ZsZXhpYmlsaXR5L0ZpbHRlckJhclwiXG5cdFx0fVxuXHR9XG59KSBhcyBhbnk7XG5cbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgaW52b2NhdGlvbiBncm91cGluZy5cbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLkludm9jYXRpb25Hcm91cGluZyA9IHtcblx0LyoqXG5cdCAqIElzb2xhdGVkLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0SXNvbGF0ZWQ6IFwiSXNvbGF0ZWRcIixcblx0LyoqXG5cdCAqIENoYW5nZVNldC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENoYW5nZVNldDogXCJDaGFuZ2VTZXRcIlxufTtcbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgY3JlYXRpb24gbW9kZS5cbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLkNyZWF0aW9uTW9kZSA9IHtcblx0LyoqXG5cdCAqIE5ldyBQYWdlLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0TmV3UGFnZTogXCJOZXdQYWdlXCIsXG5cdC8qKlxuXHQgKiBTeW5jLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U3luYzogXCJTeW5jXCIsXG5cdC8qKlxuXHQgKiBBc3luYy5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEFzeW5jOiBcIkFzeW5jXCIsXG5cdC8qKlxuXHQgKiBEZWZlcnJlZC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERlZmVycmVkOiBcIkRlZmVycmVkXCIsXG5cdC8qKlxuXHQgKiBJbmxpbmUuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJbmxpbmU6IFwiSW5saW5lXCIsXG5cdC8qKlxuXHQgKiBDcmVhdGlvbiByb3cuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDcmVhdGlvblJvdzogXCJDcmVhdGlvblJvd1wiLFxuXHQvKipcblx0ICogSW5saW5lIGNyZWF0aW9uIHJvd3MuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJbmxpbmVDcmVhdGlvblJvd3M6IFwiSW5saW5lQ3JlYXRpb25Sb3dzXCIsXG5cdC8qKlxuXHQgKiBFeHRlcm5hbCAoYnkgb3V0Ym91bmQgbmF2aWdhdGlvbikuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRFeHRlcm5hbDogXCJFeHRlcm5hbFwiXG59O1xuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBWYXJpYW50IE1hbmFnZW1lbnQuXG4gKlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHByaXZhdGVcbiAqL1xudGhpc0xpYi5WYXJpYW50TWFuYWdlbWVudCA9IHtcblx0LyoqXG5cdCAqIE5vIHZhcmlhbnQgbWFuYWdlbWVudCBhdCBhbGwuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHROb25lOiBcIk5vbmVcIixcblxuXHQvKipcblx0ICogT25lIHZhcmlhbnQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRQYWdlOiBcIlBhZ2VcIixcblxuXHQvKipcblx0ICogVmFyaWFudCBtYW5hZ2VtZW50IG9uIGNvbnRyb2wgbGV2ZWwuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDb250cm9sOiBcIkNvbnRyb2xcIlxufTtcbi8qKlxuICogQXZhaWxhYmxlIGNvbnN0YW50cy5cbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLkNvbnN0YW50cyA9IHtcblx0LyoqXG5cdCAqIEluZGljYXRlcyBjYW5jZWxsaW5nIG9mIGFuIGFjdGlvbiBkaWFsb2cuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDYW5jZWxBY3Rpb25EaWFsb2c6IFwiY2FuY2VsXCJcbn07XG4vKipcbiAqIEF2YWlsYWJsZSB2YWx1ZXMgZm9yIHByb2dyYW1taW5nIG1vZGVsLlxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuUHJvZ3JhbW1pbmdNb2RlbCA9IHtcblx0LyoqXG5cdCAqIERyYWZ0LlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RHJhZnQ6IFwiRHJhZnRcIixcblx0LyoqXG5cdCAqIFN0aWNreS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFN0aWNreTogXCJTdGlja3lcIixcblx0LyoqXG5cdCAqIE5vbkRyYWZ0LlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Tm9uRHJhZnQ6IFwiTm9uRHJhZnRcIlxufTtcbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgZHJhZnQgc3RhdHVzLlxuICpcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqIEBwcml2YXRlXG4gKi9cbnRoaXNMaWIuRHJhZnRTdGF0dXMgPSB7XG5cdC8qKlxuXHQgKiBTYXZpbmcuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRTYXZpbmc6IFwiU2F2aW5nXCIsXG5cdC8qKlxuXHQgKiBTYXZlZC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFNhdmVkOiBcIlNhdmVkXCIsXG5cdC8qKlxuXHQgKiBDbGVhci5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENsZWFyOiBcIkNsZWFyXCJcbn07XG4vKipcbiAqIEVkaXQgbW9kZSB2YWx1ZXMuXG4gKlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHByaXZhdGVcbiAqL1xudGhpc0xpYi5FZGl0TW9kZSA9IHtcblx0LyoqXG5cdCAqIFZpZXcgaXMgY3VycmVudGx5IGRpc3BsYXlpbmcgb25seS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERpc3BsYXk6IFwiRGlzcGxheVwiLFxuXHQvKipcblx0ICogVmlldyBpcyBjdXJyZW50bHkgZWRpdGFibGUuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRFZGl0YWJsZTogXCJFZGl0YWJsZVwiXG59O1xuLyoqXG4gKiBUZW1wbGF0ZSB2aWV3cy5cbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLlRlbXBsYXRlQ29udGVudFZpZXcgPSB7XG5cdC8qKlxuXHQgKiBIeWJyaWQuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0SHlicmlkOiBcIkh5YnJpZFwiLFxuXHQvKipcblx0ICogQ2hhcnQuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0Q2hhcnQ6IFwiQ2hhcnRcIixcblx0LyoqXG5cdCAqIFRhYmxlLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdFRhYmxlOiBcIlRhYmxlXCJcbn07XG4vKipcbiAqIFBvc3NpYmxlIGluaXRpYWwgbG9hZCAoZmlyc3QgYXBwIHN0YXJ0dXApIG1vZGVzIGZvciBhIExpc3RSZXBvcnQuXG4gKlxuICogQGVudW0ge3N0cmluZ31cbiAqIEBuYW1lIHNhcC5mZS5jb3JlLkluaXRpYWxMb2FkTW9kZVxuICogQHJlYWRvbmx5XG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS44Ni4wXG4gKi9cbnRoaXNMaWIuSW5pdGlhbExvYWRNb2RlID0ge1xuXHQvKipcblx0ICogRGF0YSB3aWxsIGJlIGxvYWRlZCBpbml0aWFsbHkuXG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkluaXRpYWxMb2FkTW9kZS5FbmFibGVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEVuYWJsZWQ6IFwiRW5hYmxlZFwiLFxuXG5cdC8qKlxuXHQgKiBEYXRhIHdpbGwgbm90IGJlIGxvYWRlZCBpbml0aWFsbHkuXG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkluaXRpYWxMb2FkTW9kZS5EaXNhYmxlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHREaXNhYmxlZDogXCJEaXNhYmxlZFwiLFxuXG5cdC8qKlxuXHQgKiBEYXRhIHdpbGwgYmUgbG9hZGVkIGluaXRpYWxseSBpZiBmaWx0ZXJzIGFyZSBzZXQuXG5cdCAqXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkluaXRpYWxMb2FkTW9kZS5BdXRvXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEF1dG86IFwiQXV0b1wiXG59O1xuXG4vKipcbiAqIFZhbHVlIG9mIHRoZSBzdGFydHVwIG1vZGVcbiAqXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG50aGlzTGliLlN0YXJ0dXBNb2RlID0ge1xuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgbm9ybWFsbHkuXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0Tm9ybWFsOiBcIk5vcm1hbFwiLFxuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgd2l0aCBzdGFydHVwIGtleXMgKGRlZXBsaW5rKS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHREZWVwbGluazogXCJEZWVwbGlua1wiLFxuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgaW4gJ2NyZWF0ZScgbW9kZS5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRDcmVhdGU6IFwiQ3JlYXRlXCJcbn07XG4vLyBleHBsaWNpdCB0eXBlIHRvIGhhbmRsZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggYm9vbGVhbiB2YWx1ZXNcbmNvbnN0IEluaXRpYWxMb2FkVHlwZSA9IERhdGFUeXBlLmNyZWF0ZVR5cGUoXCJzYXAuZmUuY29yZS5Jbml0aWFsTG9hZE1vZGVcIiwge1xuXHRkZWZhdWx0VmFsdWU6IHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLkF1dG8sXG5cdGlzVmFsaWQ6IGZ1bmN0aW9uICh2VmFsdWU6IGFueSkge1xuXHRcdGlmICh0eXBlb2YgdlZhbHVlID09PSBcImJvb2xlYW5cIikge1xuXHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFwiREVQUkVDQVRFRDogYm9vbGVhbiB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgJ2luaXRpYWxMb2FkJyBtYW5pZmVzdCBzZXR0aW5nIC0gc3VwcG9ydGVkIHZhbHVlcyBhcmU6IERpc2FibGVkfEVuYWJsZWR8QXV0b1wiXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdlZhbHVlID09PSB1bmRlZmluZWQgfHwgdlZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2VmFsdWUgPT09IFwiYm9vbGVhblwiIHx8IHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLmhhc093blByb3BlcnR5KHZWYWx1ZSk7XG5cdH1cbn0pO1xuLy8gbm9ybWFsaXplIGEgdmFsdWUsIHRha2luZyBjYXJlIG9mIGJvb2xlYW4gdHlwZVxuSW5pdGlhbExvYWRUeXBlLnNldE5vcm1hbGl6ZXIoZnVuY3Rpb24gKHZWYWx1ZTogYW55KSB7XG5cdGlmICghdlZhbHVlKSB7XG5cdFx0Ly8gdW5kZWZpbmVkLCBudWxsIG9yIGZhbHNlXG5cdFx0cmV0dXJuIHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLkRpc2FibGVkO1xuXHR9XG5cdHJldHVybiB2VmFsdWUgPT09IHRydWUgPyB0aGlzTGliLkluaXRpYWxMb2FkTW9kZS5FbmFibGVkIDogdlZhbHVlO1xufSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuVGVtcGxhdGVkVmlld1NlcnZpY2VcIiwgbmV3IFRlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5SZXNvdXJjZU1vZGVsU2VydmljZVwiLCBuZXcgUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkNhY2hlSGFuZGxlclNlcnZpY2VcIiwgbmV3IENhY2hlSGFuZGxlclNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlXCIsIG5ldyBOYXZpZ2F0aW9uU2VydmljZSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Sb3V0aW5nU2VydmljZVwiLCBuZXcgUm91dGluZ1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlNpZGVFZmZlY3RzU2VydmljZVwiLCBuZXcgU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzXCIsIG5ldyBTaGVsbFNlcnZpY2VzRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5FbnZpcm9ubWVudFNlcnZpY2VcIiwgbmV3IEVudmlyb25tZW50U2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQXN5bmNDb21wb25lbnRTZXJ2aWNlXCIsIG5ldyBBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5KCkpO1xuXG5leHBvcnQgZGVmYXVsdCB0aGlzTGliO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxJQUFNQSxPQUFPLEdBQUdDLElBQUksQ0FBQ0MsV0FBTCxDQUFpQjtJQUNoQ0MsSUFBSSxFQUFFLGFBRDBCO0lBRWhDQyxZQUFZLEVBQUUsQ0FBQyxhQUFELEVBQWdCLG1CQUFoQixFQUFxQyxvQkFBckMsRUFBMkQsV0FBM0Qs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
|
|
@@ -24,4 +24,4 @@ sap.ui.define(["./support/AnnotationIssue.support", "./support/CollectionFacetMi
|
|
|
24
24
|
ruleset: [AnnotationIssue.getRules(), CollectionFacetMissingID.getRules(), CollectionFacetUnsupportedLevel.getRules(), InvalidAnnotationColumnKey.getRules()]
|
|
25
25
|
};
|
|
26
26
|
}, false);
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzYXAiLCJ1aSIsInN1cHBvcnQiLCJTeXN0ZW1QcmVzZXRzIiwiRmVWNCIsImlkIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInNlbGVjdGlvbnMiLCJydWxlSWQiLCJsaWJOYW1lIiwibmFtZSIsIm5pY2VOYW1lIiwicnVsZXNldCIsIkFubm90YXRpb25Jc3N1ZSIsImdldFJ1bGVzIiwiQ29sbGVjdGlvbkZhY2V0TWlzc2luZ0lEIiwiQ29sbGVjdGlvbkZhY2V0VW5zdXBwb3J0ZWRMZXZlbCIsIkludmFsaWRBbm5vdGF0aW9uQ29sdW1uS2V5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJsaWJyYXJ5LnN1cHBvcnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQW5ub3RhdGlvbklzc3VlIGZyb20gXCIuL3N1cHBvcnQvQW5ub3RhdGlvbklzc3VlLnN1cHBvcnRcIjtcbmltcG9ydCAqIGFzIENvbGxlY3Rpb25GYWNldE1pc3NpbmdJRCBmcm9tIFwiLi9zdXBwb3J0L0NvbGxlY3Rpb25GYWNldE1pc3NpbmdJRC5zdXBwb3J0XCI7XG5pbXBvcnQgKiBhcyBDb2xsZWN0aW9uRmFjZXRVbnN1cHBvcnRlZExldmVsIGZyb20gXCIuL3N1cHBvcnQvQ29sbGVjdGlvbkZhY2V0VW5zdXBwb3J0ZWRMZXZlbC5zdXBwb3J0XCI7XG5pbXBvcnQgKiBhcyBJbnZhbGlkQW5ub3RhdGlvbkNvbHVtbktleSBmcm9tIFwiLi9zdXBwb3J0L0ludmFsaWRBbm5vdGF0aW9uQ29sdW1uS2V5LnN1cHBvcnRcIjtcbihzYXAudWkuc3VwcG9ydCBhcyBhbnkpLlN5c3RlbVByZXNldHMuRmVWNCA9IHtcblx0aWQ6IFwiRmlvcmlFbGVtZW50c1Y0XCIsXG5cdHRpdGxlOiBcIkZpb3JpIEVsZW1lbnRzIFY0XCIsXG5cdGRlc2NyaXB0aW9uOiBcIkZpb3JpIEVsZW1lbnRzIFY0IHJ1bGVzXCIsXG5cdHNlbGVjdGlvbnM6IFt7IHJ1bGVJZDogXCJhbm5vdGF0aW9uSXNzdWVcIiwgbGliTmFtZTogXCJzYXAuZmUuY29yZVwiIH1dXG59O1xuLyoqXG4gKiBBZGRzIHN1cHBvcnQgcnVsZXMgb2YgdGhlIHNhcC5mZS5jb3JlIGxpYnJhcnkgdG8gdGhlIHN1cHBvcnQgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogXCJzYXAuZmUuY29yZVwiLFxuXHRuaWNlTmFtZTogXCJTQVAuRkUgVjQgLSBDb3JlIGxpYnJhcnlcIixcblx0cnVsZXNldDogW1xuXHRcdEFubm90YXRpb25Jc3N1ZS5nZXRSdWxlcygpLFxuXHRcdENvbGxlY3Rpb25GYWNldE1pc3NpbmdJRC5nZXRSdWxlcygpLFxuXHRcdENvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWwuZ2V0UnVsZXMoKSxcblx0XHRJbnZhbGlkQW5ub3RhdGlvbkNvbHVtbktleS5nZXRSdWxlcygpXG5cdF1cbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFJQ0EsR0FBRyxDQUFDQyxFQUFKLENBQU9DLE9BQVIsQ0FBd0JDLGFBQXhCLENBQXNDQyxJQUF0QyxHQUE2QztJQUM1Q0MsRUFBRSxFQUFFLGlCQUR3QztJQUU1Q0MsS0FBSyxFQUFFLG1CQUZxQztJQUc1Q0MsV0FBVyxFQUFFLHlCQUgrQjtJQUk1Q0MsVUFBVSxFQUFFLENBQUM7TUFBRUMsTUFBTSxFQUFFLGlCQUFWO01BQTZCQyxPQUFPLEVBQUU7SUFBdEMsQ0FBRDtFQUpnQyxDQUE3QztFQU1BO0FBQ0E7QUFDQTs7U0FDZTtJQUNkQyxJQUFJLEVBQUUsYUFEUTtJQUVkQyxRQUFRLEVBQUUsMEJBRkk7SUFHZEMsT0FBTyxFQUFFLENBQ1JDLGVBQWUsQ0FBQ0MsUUFBaEIsRUFEUSxFQUVSQyx3QkFBd0IsQ0FBQ0QsUUFBekIsRUFGUSxFQUdSRSwrQkFBK0IsQ0FBQ0YsUUFBaEMsRUFIUSxFQUlSRywwQkFBMEIsQ0FBQ0gsUUFBM0IsRUFKUTtFQUhLLEMifQ==
|
|
@@ -61,4 +61,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath"], function (Log, Objec
|
|
|
61
61
|
_exports.applyChange = applyChange;
|
|
62
62
|
return _exports;
|
|
63
63
|
}, false);
|
|
64
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBseUNoYW5nZSIsIm1hbmlmZXN0IiwiY2hhbmdlIiwiY2hhbmdlQ29udGVudCIsImdldENvbnRlbnQiLCJwYWdlSUQiLCJwYWdlIiwidGFyZ2V0cyIsInJvdXRpbmciLCJwYWdlU2V0dGluZ3MiLCJwcm9wZXJ0eUNoYW5nZSIsImVudGl0eVByb3BlcnR5Q2hhbmdlIiwib3BlcmF0aW9uIiwicHJvcGVydHlQYXRoIiwicHJvcGVydHlWYWx1ZSIsInVuZGVmaW5lZCIsInN0YXJ0c1dpdGgiLCJMb2ciLCJlcnJvciIsInAiLCJpZCIsIm5hbWUiLCJvcHRpb25zIiwic2V0dGluZ3MiLCJzcGxpdCIsImFubm90YXRpb25QYXRoIiwiaSIsImxlbmd0aCIsImluZGV4T2YiLCJjb25jYXQiLCJzbGljZSIsIk9iamVjdFBhdGgiLCJzZXQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNoYW5nZVBhZ2VDb25maWd1cmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IE9iamVjdFBhdGggZnJvbSBcInNhcC9iYXNlL3V0aWwvT2JqZWN0UGF0aFwiO1xuXG5leHBvcnQgdHlwZSBDaGFuZ2UgPSB7XG5cdGdldENvbnRlbnQoKTogQ2hhbmdlQ29udGVudDtcbn07XG5cbnR5cGUgQ2hhbmdlQ29udGVudCA9IHtcblx0cGFnZTogc3RyaW5nOyAvLyBJRCBvZiB0aGUgcGFnZSB0byBiZSBjaGFuZ2VkXG5cdGVudGl0eVByb3BlcnR5Q2hhbmdlOiBFbnRpdHlQcm9wZXJ0eUNoYW5nZTtcbn07XG5cbnR5cGUgRW50aXR5UHJvcGVydHlDaGFuZ2UgPSB7XG5cdHByb3BlcnR5UGF0aDogc3RyaW5nOyAvLyBwYXRoIHRvIHRoZSBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkXG5cdG9wZXJhdGlvbjogc3RyaW5nOyAvLyBvbmx5IFVQU0VSVCBzdXBwb3J0ZWRcblx0cHJvcGVydHlWYWx1ZTogc3RyaW5nIHwgT2JqZWN0OyAvL3doYXQgdG8gYmUgY2hhbmdlZFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5Q2hhbmdlKG1hbmlmZXN0OiBhbnksIGNoYW5nZTogQ2hhbmdlKTogYW55IHtcblx0Y29uc3QgY2hhbmdlQ29udGVudCA9IGNoYW5nZS5nZXRDb250ZW50KCk7XG5cdGNvbnN0IHBhZ2VJRCA9IGNoYW5nZUNvbnRlbnQ/LnBhZ2U7XG5cdGNvbnN0IHRhcmdldHMgPSBtYW5pZmVzdFtcInNhcC51aTVcIl0/LnJvdXRpbmc/LnRhcmdldHMgfHwge307XG5cdGxldCBwYWdlU2V0dGluZ3M7XG5cdGNvbnN0IHByb3BlcnR5Q2hhbmdlID0gY2hhbmdlQ29udGVudD8uZW50aXR5UHJvcGVydHlDaGFuZ2U7XG5cblx0Ly8gcmV0dXJuIHVubW9kaWZpZWQgbWFuaWZlc3QgaW4gY2FzZSBjaGFuZ2Ugbm90IHZhbGlkXG5cdGlmIChcblx0XHRwcm9wZXJ0eUNoYW5nZT8ub3BlcmF0aW9uICE9PSBcIlVQU0VSVFwiIHx8XG5cdFx0IXByb3BlcnR5Q2hhbmdlPy5wcm9wZXJ0eVBhdGggfHxcblx0XHRwcm9wZXJ0eUNoYW5nZT8ucHJvcGVydHlWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG5cdFx0cHJvcGVydHlDaGFuZ2U/LnByb3BlcnR5UGF0aC5zdGFydHNXaXRoKFwiL1wiKVxuXHQpIHtcblx0XHRMb2cuZXJyb3IoXCJDaGFuZ2UgY29udGVudCBpcyBub3QgYSB2YWxpZFwiKTtcblx0XHRyZXR1cm4gbWFuaWZlc3Q7XG5cdH1cblxuXHRmb3IgKGNvbnN0IHAgaW4gdGFyZ2V0cykge1xuXHRcdGlmICh0YXJnZXRzW3BdLmlkID09PSBwYWdlSUQpIHtcblx0XHRcdGlmICh0YXJnZXRzW3BdLm5hbWU/LnN0YXJ0c1dpdGgoXCJzYXAuZmUudGVtcGxhdGVzLlwiKSkge1xuXHRcdFx0XHRwYWdlU2V0dGluZ3MgPSB0YXJnZXRzW3BdPy5vcHRpb25zPy5zZXR0aW5ncyB8fCB7fTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFwYWdlU2V0dGluZ3MpIHtcblx0XHRMb2cuZXJyb3IoYE5vIEZpb3JpIGVsZW1lbnRzIHBhZ2Ugd2l0aCBJRCAke3BhZ2VJRH0gZm91bmQgaW4gcm91dGluZyB0YXJnZXRzLmApO1xuXHRcdHJldHVybiBtYW5pZmVzdDtcblx0fVxuXG5cdGxldCBwcm9wZXJ0eVBhdGggPSBwcm9wZXJ0eUNoYW5nZS5wcm9wZXJ0eVBhdGguc3BsaXQoXCIvXCIpO1xuXHRpZiAocHJvcGVydHlQYXRoWzBdID09PSBcImNvbnRyb2xDb25maWd1cmF0aW9uXCIpIHtcblx0XHRsZXQgYW5ub3RhdGlvblBhdGggPSBcIlwiO1xuXHRcdC8vIHRoZSBhbm5vdGF0aW9uIHBhdGggaW4gdGhlIGNvbnRyb2wgY29uZmlndXJhdGlvbiBoYXMgdG8gc3RheSB0b2dldGhlci4gRm9yIG5vdyByZWx5IG9uIHRoZSBmYWN0IHRoZSBAIGlzIGluIHRoZSBsYXN0IHBhcnRcblx0XHRmb3IgKGxldCBpID0gMTsgaSA8IHByb3BlcnR5UGF0aC5sZW5ndGg7IGkrKykge1xuXHRcdFx0YW5ub3RhdGlvblBhdGggKz0gKGkgPiAxID8gXCIvXCIgOiBcIlwiKSArIHByb3BlcnR5UGF0aFtpXTtcblx0XHRcdGlmIChhbm5vdGF0aW9uUGF0aC5pbmRleE9mKFwiQFwiKSA+IC0xKSB7XG5cdFx0XHRcdHByb3BlcnR5UGF0aCA9IFtcImNvbnRyb2xDb25maWd1cmF0aW9uXCIsIGFubm90YXRpb25QYXRoXS5jb25jYXQocHJvcGVydHlQYXRoLnNsaWNlKGkgKyAxKSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRPYmplY3RQYXRoLnNldChwcm9wZXJ0eVBhdGgsIHByb3BlcnR5Q2hhbmdlLnByb3BlcnR5VmFsdWUsIHBhZ2VTZXR0aW5ncyk7XG5cblx0cmV0dXJuIG1hbmlmZXN0O1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFrQk8sU0FBU0EsV0FB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
|