@sapui5/sap.fe.core 1.124.2 → 1.126.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 +1 -1
- package/src/sap/fe/core/.library +5 -1
- package/src/sap/fe/core/ActionRuntime.js +2 -2
- package/src/sap/fe/core/ActionRuntime.ts +4 -4
- package/src/sap/fe/core/AppComponent.js +2 -2
- package/src/sap/fe/core/AppComponent.ts +1 -1
- package/src/sap/fe/core/AppStateHandler.js +2 -2
- package/src/sap/fe/core/AppStateHandler.ts +1 -1
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/BaseController.ts +1 -1
- package/src/sap/fe/core/CommonUtils.js +3 -3
- package/src/sap/fe/core/CommonUtils.ts +12 -15
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/ExtensionAPI.ts +4 -3
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/PageController.ts +1 -1
- package/src/sap/fe/core/ResourceModel.js +2 -2
- package/src/sap/fe/core/ResourceModel.ts +1 -1
- package/src/sap/fe/core/ReuseComponent.js +172 -0
- package/src/sap/fe/core/ReuseComponent.ts +165 -0
- package/src/sap/fe/core/TemplateComponent.js +2 -2
- package/src/sap/fe/core/TemplateComponent.ts +5 -1
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +92 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +90 -10
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +30 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +28 -4
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +10 -16
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +19 -16
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +5 -5
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +2 -2
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +1 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +17 -5
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +14 -6
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +2 -2
- package/src/sap/fe/core/controllerextensions/ContextSharing.ts +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +57 -43
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +61 -46
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -11
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +8 -16
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +10 -7
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +5 -5
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +22 -18
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +28 -23
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +4 -4
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +4 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +21 -15
- package/src/sap/fe/core/controllerextensions/PageReady.ts +29 -20
- package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
- package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.js +12 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +15 -1
- package/src/sap/fe/core/controllerextensions/Recommendations.js +26 -8
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +29 -3
- package/src/sap/fe/core/controllerextensions/Routing.js +5 -7
- package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
- package/src/sap/fe/core/controllerextensions/Share.js +4 -4
- package/src/sap/fe/core/controllerextensions/Share.ts +10 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.js +20 -5
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -2
- package/src/sap/fe/core/controllerextensions/Telemetry.js +2 -2
- package/src/sap/fe/core/controllerextensions/Telemetry.ts +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js +79 -81
- package/src/sap/fe/core/controllerextensions/ViewState.ts +117 -105
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +3 -3
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +2 -2
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +17 -8
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +8 -2
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +10 -9
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +15 -10
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +130 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +240 -275
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +46 -28
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +60 -32
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +2 -2
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +2 -2
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +27 -3
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/CommandExecution.ts +2 -2
- package/src/sap/fe/core/controls/ComponentLoader.js +3 -3
- package/src/sap/fe/core/controls/ComponentLoader.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +2 -2
- package/src/sap/fe/core/controls/EventDelegateHook.js +2 -2
- package/src/sap/fe/core/controls/EventDelegateHook.ts +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +51 -6
- package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -2
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +3 -3
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +3 -3
- package/src/sap/fe/core/converters/ConverterContext.js +4 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +5 -2
- package/src/sap/fe/core/converters/ManifestSettings.js +8 -2
- package/src/sap/fe/core/converters/ManifestSettings.ts +25 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +12 -3
- package/src/sap/fe/core/converters/ManifestWrapper.ts +11 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +7 -6
- package/src/sap/fe/core/converters/MetaModelConverter.ts +6 -2
- package/src/sap/fe/core/converters/annotations/DataField.js +56 -16
- package/src/sap/fe/core/converters/annotations/DataField.ts +74 -25
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +19 -18
- package/src/sap/fe/core/converters/controls/Common/Action.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/Action.ts +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.js +40 -7
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +56 -20
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +8 -11
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +23 -27
- package/src/sap/fe/core/converters/controls/Common/Form.js +10 -3
- package/src/sap/fe/core/converters/controls/Common/Form.ts +13 -4
- package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +6 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +137 -48
- package/src/sap/fe/core/converters/controls/Common/Table.ts +174 -52
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +73 -21
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +91 -20
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -16
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +18 -17
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +2 -2
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +9 -9
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +12 -12
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -7
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +9 -73
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +4 -74
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +5 -10
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +3 -12
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +4 -7
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FiscalFormat.js +5 -3
- package/src/sap/fe/core/formatters/FiscalFormat.ts +4 -2
- package/src/sap/fe/core/formatters/StandardFormatter.js +2 -2
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
- package/src/sap/fe/core/fpm/Component.js +3 -3
- package/src/sap/fe/core/fpm/Component.ts +3 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +2 -2
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +1 -1
- package/src/sap/fe/core/helpers/BindingHelper.js +2 -2
- package/src/sap/fe/core/helpers/BindingHelper.ts +2 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +2 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +2 -2
- package/src/sap/fe/core/helpers/DeleteHelper.js +7 -4
- package/src/sap/fe/core/helpers/DeleteHelper.ts +9 -3
- package/src/sap/fe/core/helpers/MetaModelFunction.js +5 -5
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +2 -2
- package/src/sap/fe/core/helpers/MetaPath.js +9 -3
- package/src/sap/fe/core/helpers/MetaPath.ts +8 -2
- package/src/sap/fe/core/helpers/ModelHelper.js +149 -3
- package/src/sap/fe/core/helpers/ModelHelper.ts +202 -6
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +3 -3
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +2 -2
- package/src/sap/fe/core/helpers/TitleHelper.js +4 -4
- package/src/sap/fe/core/helpers/TitleHelper.ts +4 -4
- package/src/sap/fe/core/library.js +4 -4
- package/src/sap/fe/core/library.ts +2 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +11 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +10 -2
- package/src/sap/fe/core/messagebundle.properties +8 -57
- package/src/sap/fe/core/messagebundle_ar.properties +2 -0
- package/src/sap/fe/core/messagebundle_bg.properties +2 -0
- package/src/sap/fe/core/messagebundle_ca.properties +2 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +2 -0
- package/src/sap/fe/core/messagebundle_cs.properties +2 -0
- package/src/sap/fe/core/messagebundle_cy.properties +4 -2
- package/src/sap/fe/core/messagebundle_da.properties +2 -0
- package/src/sap/fe/core/messagebundle_de.properties +2 -0
- package/src/sap/fe/core/messagebundle_el.properties +2 -0
- package/src/sap/fe/core/messagebundle_en.properties +6 -57
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -36
- package/src/sap/fe/core/messagebundle_es.properties +2 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/core/messagebundle_et.properties +2 -0
- package/src/sap/fe/core/messagebundle_fi.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +2 -0
- package/src/sap/fe/core/messagebundle_hu.properties +3 -1
- package/src/sap/fe/core/messagebundle_id.properties +2 -0
- package/src/sap/fe/core/messagebundle_it.properties +2 -0
- package/src/sap/fe/core/messagebundle_iw.properties +3 -1
- package/src/sap/fe/core/messagebundle_ja.properties +2 -0
- package/src/sap/fe/core/messagebundle_kk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +2 -0
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_mk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +2 -0
- package/src/sap/fe/core/messagebundle_nl.properties +2 -0
- package/src/sap/fe/core/messagebundle_no.properties +2 -0
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/core/messagebundle_ro.properties +2 -0
- package/src/sap/fe/core/messagebundle_ru.properties +2 -0
- package/src/sap/fe/core/messagebundle_sh.properties +64 -62
- package/src/sap/fe/core/messagebundle_sk.properties +2 -0
- package/src/sap/fe/core/messagebundle_sl.properties +2 -0
- package/src/sap/fe/core/messagebundle_sr.properties +2 -0
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +2 -0
- package/src/sap/fe/core/messagebundle_tr.properties +2 -0
- package/src/sap/fe/core/messagebundle_uk.properties +3 -1
- package/src/sap/fe/core/messagebundle_vi.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/fe/core/operationsHelper.js +3 -3
- package/src/sap/fe/core/operationsHelper.ts +2 -2
- package/src/sap/fe/core/rootView/Fcl.controller.js +3 -3
- package/src/sap/fe/core/rootView/Fcl.controller.ts +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js +114 -92
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +120 -106
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +6 -4
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +12 -2
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -2
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +7 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +16 -9
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +22 -11
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +2 -2
- package/src/sap/fe/core/templating/ActionHelper.ts +2 -2
- package/src/sap/fe/core/templating/CommonFormatters.js +2 -2
- package/src/sap/fe/core/templating/CommonFormatters.ts +3 -3
- package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataFieldFormatters.js +4 -4
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +2 -2
- package/src/sap/fe/core/templating/EntityTypeHelper.js +2 -2
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +2 -2
- package/src/sap/fe/core/templating/FieldControlHelper.js +2 -2
- package/src/sap/fe/core/templating/FieldControlHelper.ts +2 -2
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +2 -2
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters.js +7 -7
- package/src/sap/fe/core/templating/UIFormatters.ts +6 -6
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +1 -1
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.ts +1 -1
- package/src/sap/fe/core/type/InputMask.js +124 -0
- package/src/sap/fe/core/type/InputMask.ts +131 -0
- package/ui5.yaml +19 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +0 -81
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +0 -117
- package/src/sap/fe/core/helpers/AnnotationEnum.js +0 -33
- package/src/sap/fe/core/helpers/AnnotationEnum.ts +0 -21
- package/src/sap/fe/core/helpers/BindingToolkit.js +0 -1813
- package/src/sap/fe/core/helpers/BindingToolkit.ts +0 -2450
- package/src/sap/fe/core/helpers/ClassSupport.js +0 -584
- package/src/sap/fe/core/helpers/ClassSupport.ts +0 -697
- package/src/sap/fe/core/jsx-runtime/Fragment.js +0 -14
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +0 -3
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +0 -93
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +0 -86
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +0 -177
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +0 -197
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +0 -237
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +0 -246
- package/src/sap/fe/core/jsx-runtime/jsx.js +0 -47
- package/src/sap/fe/core/jsx-runtime/jsx.ts +0 -71
- package/src/sap/fe/core/jsx-runtime/jsxs.js +0 -10
- package/src/sap/fe/core/jsx-runtime/jsxs.ts +0 -3
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +0 -172
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +0 -194
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/model/odata/type/DateTimeWithTimezone"], function (ClassSupport, _DateTimeWithTimezone) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _class;
|
|
@@ -32,4 +32,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/model/odata/type/Date
|
|
|
32
32
|
}(_DateTimeWithTimezone)) || _class);
|
|
33
33
|
return DateTimeWithTimezone;
|
|
34
34
|
}, false);
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRlVGltZVdpdGhUaW1lem9uZSIsImRlZmluZVVJNUNsYXNzIiwib0Zvcm1hdE9wdGlvbnMiLCJvQ29uc3RyYWludHMiLCJiU2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMiLCJzaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcyIsImZvcm1hdFZhbHVlIiwiYVZhbHVlcyIsInNUYXJnZXRUeXBlIiwib1RpbWVzdGFtcCIsInVuZGVmaW5lZCIsIl9EYXRlVGltZVdpdGhUaW1lem9uZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0ZVRpbWVXaXRoVGltZXpvbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgX0RhdGVUaW1lV2l0aFRpbWV6b25lIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlVGltZVdpdGhUaW1lem9uZVwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS50eXBlLkRhdGVUaW1lV2l0aFRpbWV6b25lXCIpXG5jbGFzcyBEYXRlVGltZVdpdGhUaW1lem9uZSBleHRlbmRzIF9EYXRlVGltZVdpdGhUaW1lem9uZSB7XG5cdHByaXZhdGUgYlNob3dUaW1lem9uZUZvckVtcHR5VmFsdWVzOiBib29sZWFuO1xuXG5cdGNvbnN0cnVjdG9yKG9Gb3JtYXRPcHRpb25zPzogb2JqZWN0ICYgeyBzaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcz86IGJvb2xlYW4gfSwgb0NvbnN0cmFpbnRzPzogb2JqZWN0KSB7XG5cdFx0c3VwZXIob0Zvcm1hdE9wdGlvbnMsIG9Db25zdHJhaW50cyk7XG5cdFx0dGhpcy5iU2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMgPSBvRm9ybWF0T3B0aW9ucz8uc2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMgPz8gdHJ1ZTtcblx0fVxuXG5cdGZvcm1hdFZhbHVlKGFWYWx1ZXM6IHVua25vd25bXSwgc1RhcmdldFR5cGU6IHN0cmluZyk6IHVua25vd24gfCBudWxsIHtcblx0XHRjb25zdCBvVGltZXN0YW1wID0gYVZhbHVlcyAmJiBhVmFsdWVzWzBdO1xuXHRcdGlmIChcblx0XHRcdG9UaW1lc3RhbXAgPT09IHVuZGVmaW5lZCB8fCAvLyBkYXRhIGlzIG5vdCB5ZXQgYXZhaWxhYmxlXG5cdFx0XHQvLyBpZiB0aW1lIHpvbmUgaXMgbm90IHNob3duIGZhbHN5IHRpbWVzdGFtcHMgY2Fubm90IGJlIGZvcm1hdHRlZCAtPiByZXR1cm4gbnVsbFxuXHRcdFx0KCFvVGltZXN0YW1wICYmICF0aGlzLmJTaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcylcblx0XHQpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gc3VwZXIuZm9ybWF0VmFsdWUoYVZhbHVlcywgc1RhcmdldFR5cGUpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZVdpdGhUaW1lem9uZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFJTUEsb0JBQW9CLFdBRHpCQyxjQUFjLENBQUMsdUNBQXVDLENBQUM7SUFBQTtJQUl2RCw4QkFBWUMsY0FBa0UsRUFBRUMsWUFBcUIsRUFBRTtNQUFBO01BQ3RHLDBDQUFNRCxjQUFjLEVBQUVDLFlBQVksQ0FBQztNQUNuQyxNQUFLQywyQkFBMkIsR0FBRyxDQUFBRixjQUFjLGFBQWRBLGNBQWMsdUJBQWRBLGNBQWMsQ0FBRUcsMEJBQTBCLEtBQUksSUFBSTtNQUFDO0lBQ3ZGO0lBQUM7SUFBQSxPQUVEQyxXQUFXLEdBQVgscUJBQVlDLE9BQWtCLEVBQUVDLFdBQW1CLEVBQWtCO01BQ3BFLE1BQU1DLFVBQVUsR0FBR0YsT0FBTyxJQUFJQSxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3hDLElBQ0NFLFVBQVUsS0FBS0MsU0FBUztNQUFJO01BQzVCO01BQ0MsQ0FBQ0QsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDTCwyQkFBNEIsRUFDakQ7UUFDRCxPQUFPLElBQUk7TUFDWjtNQUNBLHdDQUFhRSxXQUFXLFlBQUNDLE9BQU8sRUFBRUMsV0FBVztJQUM5QyxDQUFDO0lBQUE7RUFBQSxFQWxCaUNHLHFCQUFxQjtFQUFBLE9Bb0J6Q1gsb0JBQW9CO0FBQUEifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineUI5Class } from "sap/fe/
|
|
1
|
+
import { defineUI5Class } from "sap/fe/base/ClassSupport";
|
|
2
2
|
import _DateTimeWithTimezone from "sap/ui/model/odata/type/DateTimeWithTimezone";
|
|
3
3
|
|
|
4
4
|
@defineUI5Class("sap.fe.core.type.DateTimeWithTimezone")
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Lib", "sap/ui/model/odata/type/String", "sap/ui/model/ValidateException"], function (ClassSupport, Library, ODataStringType, ValidateException) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _class;
|
|
@@ -26,4 +26,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/core/Lib", "sap/ui/mo
|
|
|
26
26
|
}(ODataStringType)) || _class);
|
|
27
27
|
return EmailType;
|
|
28
28
|
}, false);
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbWFpbFczQ1JlZ2V4cCIsIkVtYWlsVHlwZSIsImRlZmluZVVJNUNsYXNzIiwidmFsaWRhdGVWYWx1ZSIsInNWYWx1ZSIsInRlc3QiLCJWYWxpZGF0ZUV4Y2VwdGlvbiIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJPRGF0YVN0cmluZ1R5cGUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVtYWlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IE9EYXRhU3RyaW5nVHlwZSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvU3RyaW5nXCI7XG5pbXBvcnQgVmFsaWRhdGVFeGNlcHRpb24gZnJvbSBcInNhcC91aS9tb2RlbC9WYWxpZGF0ZUV4Y2VwdGlvblwiO1xuXG5jb25zdCBlbWFpbFczQ1JlZ2V4cCA9IC9eW2EtekEtWjAtOS4hIyQlJuKAmSorLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05LV0rKD86LlthLXpBLVowLTktXSspKiQvO1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUudHlwZS5FbWFpbFwiKVxuY2xhc3MgRW1haWxUeXBlIGV4dGVuZHMgT0RhdGFTdHJpbmdUeXBlIHtcblx0dmFsaWRhdGVWYWx1ZShzVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmIChzVmFsdWUgJiYgIWVtYWlsVzNDUmVnZXhwLnRlc3Qoc1ZhbHVlKSkge1xuXHRcdFx0dGhyb3cgbmV3IFZhbGlkYXRlRXhjZXB0aW9uKExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIlRfRU1BSUxUWVBFX0lOVkFMSURfVkFMVUVcIikpO1xuXHRcdH1cblx0XHRzdXBlci52YWxpZGF0ZVZhbHVlKHNWYWx1ZSk7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IEVtYWlsVHlwZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7RUFLQSxNQUFNQSxjQUFjLEdBQUcscUVBQXFFO0VBQUMsSUFFdkZDLFNBQVMsV0FEZEMsY0FBYyxDQUFDLHdCQUF3QixDQUFDO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBLE9BRXhDQyxhQUFhLEdBQWIsdUJBQWNDLE1BQWMsRUFBUTtNQUNuQyxJQUFJQSxNQUFNLElBQUksQ0FBQ0osY0FBYyxDQUFDSyxJQUFJLENBQUNELE1BQU0sQ0FBQyxFQUFFO1FBQzNDLE1BQU0sSUFBSUUsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUVDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO01BQy9HO01BQ0EsMkJBQU1OLGFBQWEsWUFBQ0MsTUFBTTtJQUMzQixDQUFDO0lBQUE7RUFBQSxFQU5zQk0sZUFBZTtFQUFBLE9BUXhCVCxTQUFTO0FBQUEifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineUI5Class } from "sap/fe/
|
|
1
|
+
import { defineUI5Class } from "sap/fe/base/ClassSupport";
|
|
2
2
|
import Library from "sap/ui/core/Lib";
|
|
3
3
|
import ODataStringType from "sap/ui/model/odata/type/String";
|
|
4
4
|
import ValidateException from "sap/ui/model/ValidateException";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/fe/
|
|
5
|
+
sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/fe/base/ClassSupport", "sap/fe/core/formatters/FiscalFormat", "sap/ui/core/Lib", "sap/ui/model/ValidateException", "sap/ui/model/odata/type/String"], function (CalendarType, ClassSupport, FiscalFormat, Library, ValidateException, ODataStringType) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _class, _class2;
|
|
@@ -174,4 +174,4 @@ sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/fe/core/formatters/Fiscal
|
|
|
174
174
|
}, _class2)) || _class);
|
|
175
175
|
return FiscalDate;
|
|
176
176
|
}, false);
|
|
177
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaXNjYWxEYXRlIiwiZGVmaW5lVUk1Q2xhc3MiLCJmb3JtYXRPcHRpb25zIiwiY29uc3RyYWludHMiLCJmaXNjYWxUeXBlIiwibWF4TGVuZ3RoIiwiYW5ub3RhdGlvblR5cGUiLCJmb3JtYXQiLCJkYXRlRm9ybWF0cyIsImZvcm1hdHRlciIsIkZpc2NhbEZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImNhbGVuZGFyVHlwZSIsIkNhbGVuZGFyVHlwZSIsIkdyZWdvcmlhbiIsImdldFBhdHRlcm4iLCJmb3JtYXRWYWx1ZSIsInZhbHVlIiwidGFyZ2V0VHlwZSIsInBhcnNlVmFsdWUiLCJzb3VyY2VUeXBlIiwicGFyc2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZXJyb3IiLCJ2YWxpZGF0ZSIsIlZhbGlkYXRlRXhjZXB0aW9uIiwiZ2V0RXJyb3JNZXNzYWdlIiwic1ZhbHVlIiwiZnVsbFllYXIiLCJEYXRlIiwiZ2V0RnVsbFllYXIiLCJ0b1N0cmluZyIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJnZXROYW1lIiwiZ2V0Rm9ybWF0dGVyIiwiT0RhdGFTdHJpbmdUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaXNjYWxEYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgQ2FsZW5kYXJUeXBlIGZyb20gXCJzYXAvYmFzZS9pMThuL2RhdGUvQ2FsZW5kYXJUeXBlXCI7XG5pbXBvcnQgRmlzY2FsRm9ybWF0IGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0Zpc2NhbEZvcm1hdFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBMaWJyYXJ5IGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBWYWxpZGF0ZUV4Y2VwdGlvbiBmcm9tIFwic2FwL3VpL21vZGVsL1ZhbGlkYXRlRXhjZXB0aW9uXCI7XG5pbXBvcnQgT0RhdGFTdHJpbmdUeXBlIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9TdHJpbmdcIjtcblxuLyoqXG4gKiBEZWZpbmUgdGhlIFVJNSBjbGFzcyBmb3IgYSB0eXBlIG9mIGZpc2NhbCBkYXRlLlxuICpcbiAqIFRoZSBkYXRhIHR5cGUgRmlzY2FsIERhdGUgc3VwcG9ydHMgdGhlIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcgb2YgZmlzY2FsIGRhdGVzIHRoYXQgZm9sbG93IHRoZSBwYXR0ZXJuICd5TScuXG4gKlxuICogQHNpbmNlIDEuMTEwLjBcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUudHlwZS5GaXNjYWxEYXRlXCIpXG5jbGFzcyBGaXNjYWxEYXRlIGV4dGVuZHMgT0RhdGFTdHJpbmdUeXBlIHtcblx0cHJpdmF0ZSBhbm5vdGF0aW9uVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgZnVsbFllYXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIHN0YXRpYyBkYXRlRm9ybWF0cyA9IHtcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhcl06IFwiWVlZWVwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxQZXJpb2RdOiBcIlBQUFwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyUGVyaW9kXTogXCJZWVlZUFBQXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFF1YXJ0ZXJdOiBcIlFcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclF1YXJ0ZXJdOiBcIllZWVlRXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFdlZWtdOiBcIldXXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJXZWVrXTogXCJZWVlZV1dcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRGF5T2ZGaXNjYWxZZWFyXTogXCJkXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJWYXJpYW50XTogXCJcIlxuXHR9O1xuXG5cdHByaXZhdGUgZm9ybWF0dGVyOiBGaXNjYWxGb3JtYXQgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zIEZvcm1hdCBvcHRpb25zXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLmZpc2NhbFR5cGUgU3RyaW5nIHdpdGggYSBmaXNjYWwgYW5ub3RhdGlvbiB0eXBlXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLnBhcnNlS2VlcHNFbXB0eVN0cmluZyBXaGV0aGVyIGVtcHR5IHN0cmluZyBzaG91bGQgYmUga2VwdCBvciBub3Rcblx0ICogQHBhcmFtIGNvbnN0cmFpbnRzIENvbnN0cmFpbnRzXG5cdCAqIEBwYXJhbSBjb25zdHJhaW50cy5tYXhMZW5ndGggTWF4aW11bSBsZW5ndGggb2YgdGhlIGZpZWxkXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihmb3JtYXRPcHRpb25zOiB7IGZpc2NhbFR5cGU6IHN0cmluZzsgcGFyc2VLZWVwc0VtcHR5U3RyaW5nPzogYm9vbGVhbiB9LCBjb25zdHJhaW50cz86IHsgbWF4TGVuZ3RoPzogbnVtYmVyIH0pIHtcblx0XHRpZiAoXG5cdFx0XHQoZm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyUGVyaW9kIHx8XG5cdFx0XHRcdGZvcm1hdE9wdGlvbnMuZmlzY2FsVHlwZSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclF1YXJ0ZXIgfHxcblx0XHRcdFx0Zm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyV2VlaykgJiZcblx0XHRcdGNvbnN0cmFpbnRzPy5tYXhMZW5ndGhcblx0XHQpIHtcblx0XHRcdC8vIFdlIGluY3JlYXNlIG1heExlbmd0aCBmb3IgKzEgZm9yIGFueSBmaXNjYWwgdHlwZSB0aGF0IGhhdmUgZGVsaW1pdGVyIGluIGxvY2FsZSBmb3JtYXQuXG5cdFx0XHQvLyBJdCdzIG5lY2Vzc2FyeSBmb3IgdmFsaWRhdGlvbiB0byB3b3JrIGNvcnJlY3RseS5cblx0XHRcdC8vIEFsc28gZm9yIHZhbGlkYXRpb24gdG8gZnVuY3Rpb24gcHJvcGVybHkgdXNlciBhbHNvIHNob3VsZCBzcGVjaWZ5IGNvbnN0cmFpbnRzLmlzRGlnaXRTZXF1ZW5jZSA9IHRydWVcblx0XHRcdC8vIGlzRGlnaXRTZXF1ZW5jZSBhbmQgbWF4TGVuZ3RoIGNvbWJpbmF0aW9uIGVuc3VyZXMgdGhhdCBtaXNzaW5nIGNoYXJhY3RlcnMgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCBsZWFkaW5nIHplcm9zXG5cdFx0XHQvLyB0aGF0IHdpbGwgZW5zdXJlIHVzZXIgd2lsbCByZWNlaXZlIGNvcnJlY3QgdmFsaWRhdGlvbiByZXN1bHRzLlxuXHRcdFx0Y29uc3RyYWludHMubWF4TGVuZ3RoID0gY29uc3RyYWludHMubWF4TGVuZ3RoICsgMTtcblx0XHR9XG5cdFx0c3VwZXIoZm9ybWF0T3B0aW9ucywgY29uc3RyYWludHMpO1xuXHRcdHRoaXMuYW5ub3RhdGlvblR5cGUgPSBmb3JtYXRPcHRpb25zLmZpc2NhbFR5cGU7XG5cdFx0Y29uc3QgZm9ybWF0ID0gRmlzY2FsRGF0ZS5kYXRlRm9ybWF0c1t0aGlzLmFubm90YXRpb25UeXBlIGFzIGtleW9mIHR5cGVvZiBGaXNjYWxEYXRlLmRhdGVGb3JtYXRzXTtcblx0XHRpZiAoZm9ybWF0KSB7XG5cdFx0XHR0aGlzLmZvcm1hdHRlciA9IEZpc2NhbEZvcm1hdC5nZXREYXRlSW5zdGFuY2Uoe1xuXHRcdFx0XHRmb3JtYXQsXG5cdFx0XHRcdGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLkdyZWdvcmlhblxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybiBwYXR0ZXJuIGZvciBmaXNjYWwgZGF0ZSB0eXBlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgZmlzY2FsIGRhdGUgcGF0dGVyblxuXHQgKi9cblx0cHVibGljIGdldFBhdHRlcm4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JtYXR0ZXI/LmdldFBhdHRlcm4oKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGb3JtYXRzIHRoZSBnaXZlbiB2YWx1ZSB0byB0aGUgZ2l2ZW4gZmlzY2FsIHR5cGUuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkXG5cdCAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgb3V0cHV0IHZhbHVlOyA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGlzIGFsd2F5cyBmb3JtYXR0ZWQgdG8gPGNvZGU+bnVsbDwvY29kZT5cblx0ICogQG92ZXJyaWRlXG5cdCAqL1xuXHRwdWJsaWMgZm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZywgdGFyZ2V0VHlwZTogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0dGVyID8gdGhpcy5mb3JtYXR0ZXIuZm9ybWF0KHN1cGVyLmZvcm1hdFZhbHVlKHZhbHVlLCB0YXJnZXRUeXBlKSkgOiBzdXBlci5mb3JtYXRWYWx1ZSh2YWx1ZSwgdGFyZ2V0VHlwZSk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBnaXZlbiB2YWx1ZSwgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgb2YgdGhlIGZpc2NhbCB0eXBlLCB0byBhIHN0cmluZy5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBiZSBwYXJzZWRcblx0ICogQHJldHVybnMgVGhlIHBhcnNlZCB2YWx1ZVxuXHQgKiBAb3ZlcnJpZGVcblx0ICovXG5cdHB1YmxpYyBwYXJzZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuLCBzb3VyY2VUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmZvcm1hdHRlciA/IHRoaXMuZm9ybWF0dGVyLnBhcnNlKHN1cGVyLnBhcnNlVmFsdWUodmFsdWUsIHNvdXJjZVR5cGUpKSA6IHN1cGVyLnBhcnNlVmFsdWUodmFsdWUsIHNvdXJjZVR5cGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBpbmhlcml0RG9jXG5cdCAqL1xuXHRwdWJsaWMgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0dHJ5IHtcblx0XHRcdHN1cGVyLnZhbGlkYXRlVmFsdWUodmFsdWUpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRpZiAoIXRoaXMuZm9ybWF0dGVyKSB7XG5cdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGlzLmZvcm1hdHRlci52YWxpZGF0ZSh2YWx1ZSkpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFZhbGlkYXRlRXhjZXB0aW9uKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYW5ub3RhdGlvblR5cGUpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuZm9ybWF0dGVyIHx8IHZhbHVlID09PSBcIlwiIHx8IHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5mb3JtYXR0ZXIudmFsaWRhdGUodmFsdWUpKSB7XG5cdFx0XHR0aHJvdyBuZXcgVmFsaWRhdGVFeGNlcHRpb24odGhpcy5nZXRFcnJvck1lc3NhZ2UodGhpcy5hbm5vdGF0aW9uVHlwZSkpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBsb2NhbGUtZGVwZW5kZW50IGVycm9yIG1lc3NhZ2UgZm9yIHRoZSB0eXBlIGJhc2VkIG9uIHRoZSBmaXNjYWwgYW5ub3RhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGFubm90YXRpb25UeXBlIFRoZSBmaXNjYWwgYW5ub3RhdGlvbiB0eXBlXG5cdCAqIEByZXR1cm5zIFRoZSBsb2NhbGUtZGVwZW5kZW50IGVycm9yIG1lc3NhZ2Vcblx0ICovXG5cdHB1YmxpYyBnZXRFcnJvck1lc3NhZ2UoYW5ub3RhdGlvblR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG5cdFx0bGV0IHNWYWx1ZSA9IFwiXCI7XG5cdFx0dGhpcy5mdWxsWWVhciA9IHRoaXMuZnVsbFllYXIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG5cblx0XHRzd2l0Y2ggKGFubm90YXRpb25UeXBlKSB7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXI6XG5cdFx0XHRcdHNWYWx1ZSA9IHRoaXMuZnVsbFllYXI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxQZXJpb2Q6XG5cdFx0XHRcdHNWYWx1ZSA9IFwiMDAxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyUGVyaW9kOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyICsgXCIwMDFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFF1YXJ0ZXI6XG5cdFx0XHRcdHNWYWx1ZSA9IFwiMVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclF1YXJ0ZXI6XG5cdFx0XHRcdHNWYWx1ZSA9IHRoaXMuZnVsbFllYXIgKyBcIjFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFdlZWs6XG5cdFx0XHRcdHNWYWx1ZSA9IFwiMDFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJXZWVrOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyICsgXCIwMVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRGF5T2ZGaXNjYWxZZWFyOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJWYXJpYW50OlxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHNWYWx1ZSA9IHRoaXMuZnVsbFllYXI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIkZJU0NBTF9WQUxJREFUSU9OX0ZBSUxTXCIsIFt0aGlzLmZvcm1hdFZhbHVlKHNWYWx1ZSwgXCJzdHJpbmdcIildKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaW5oZXJpdERvY1xuXHQgKi9cblx0cHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gXCJzYXAuZmUuY29yZS50eXBlLkZpc2NhbERhdGVcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBmb3JtYXR0ZXIgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGlzIHBhcnRpY3VsYXIgRmlzY2FsRGF0ZSB0eXBlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgYXNzaWduZWQgaW5zdGFuY2Ugb2YgRmlzY2FsRm9ybWF0XG5cdCAqL1xuXHRwdWJsaWMgZ2V0Rm9ybWF0dGVyKCk6IEZpc2NhbEZvcm1hdCB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0dGVyO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBGaXNjYWxEYXRlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFQQSxJQVNNQSxVQUFVLFdBRGZDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQztJQUFBO0lBb0I3QztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDLG9CQUFZQyxhQUFzRSxFQUFFQyxXQUFvQyxFQUFFO01BQUE7TUFDekgsSUFDQyxDQUFDRCxhQUFhLENBQUNFLFVBQVUsd0RBQTZDLElBQ3JFRixhQUFhLENBQUNFLFVBQVUseURBQThDLElBQ3RFRixhQUFhLENBQUNFLFVBQVUsc0RBQTJDLEtBQ3BFRCxXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFFRSxTQUFTLEVBQ3JCO1FBQ0Q7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBRixXQUFXLENBQUNFLFNBQVMsR0FBR0YsV0FBVyxDQUFDRSxTQUFTLEdBQUcsQ0FBQztNQUNsRDtNQUNBLG9DQUFNSCxhQUFhLEVBQUVDLFdBQVcsQ0FBQztNQUNqQyxNQUFLRyxjQUFjLEdBQUdKLGFBQWEsQ0FBQ0UsVUFBVTtNQUM5QyxNQUFNRyxNQUFNLEdBQUdQLFVBQVUsQ0FBQ1EsV0FBVyxDQUFDLE1BQUtGLGNBQWMsQ0FBd0M7TUFDakcsSUFBSUMsTUFBTSxFQUFFO1FBQ1gsTUFBS0UsU0FBUyxHQUFHQyxZQUFZLENBQUNDLGVBQWUsQ0FBQztVQUM3Q0osTUFBTTtVQUNOSyxZQUFZLEVBQUVDLFlBQVksQ0FBQ0M7UUFDNUIsQ0FBQyxDQUFDO01BQ0g7TUFBQztJQUNGOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7SUFKQztJQUFBLE9BS09DLFVBQVUsR0FBakIsc0JBQXdDO01BQUE7TUFDdkMsMEJBQU8sSUFBSSxDQUFDTixTQUFTLG9EQUFkLGdCQUFnQk0sVUFBVSxFQUFFO0lBQ3BDOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTkM7SUFBQSxPQU9PQyxXQUFXLEdBQWxCLHFCQUFtQkMsS0FBYSxFQUFFQyxVQUFrQixFQUE2QjtNQUNoRixPQUFPLElBQUksQ0FBQ1QsU0FBUyxHQUFHLElBQUksQ0FBQ0EsU0FBUyxDQUFDRixNQUFNLDRCQUFPUyxXQUFXLFlBQUNDLEtBQUssRUFBRUMsVUFBVSxFQUFFLDhCQUFTRixXQUFXLFlBQUNDLEtBQUssRUFBRUMsVUFBVSxDQUFDO0lBQzNIOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTkM7SUFBQSxPQU9PQyxVQUFVLEdBQWpCLG9CQUFrQkYsS0FBZ0MsRUFBRUcsVUFBa0IsRUFBVTtNQUMvRSxPQUFPLElBQUksQ0FBQ1gsU0FBUyxHQUFHLElBQUksQ0FBQ0EsU0FBUyxDQUFDWSxLQUFLLDRCQUFPRixVQUFVLFlBQUNGLEtBQUssRUFBRUcsVUFBVSxFQUFFLDhCQUFTRCxVQUFVLFlBQUNGLEtBQUssRUFBRUcsVUFBVSxDQUFDO0lBQ3hIOztJQUVBO0FBQ0Q7QUFDQSxPQUZDO0lBQUEsT0FHT0UsYUFBYSxHQUFwQix1QkFBcUJMLEtBQWEsRUFBUTtNQUN6QyxJQUFJO1FBQ0gsMkJBQU1LLGFBQWEsWUFBQ0wsS0FBSztNQUMxQixDQUFDLENBQUMsT0FBT00sS0FBSyxFQUFFO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQ2QsU0FBUyxFQUFFO1VBQ3BCLE1BQU1jLEtBQUs7UUFDWjtRQUNBLElBQUksQ0FBQyxJQUFJLENBQUNkLFNBQVMsQ0FBQ2UsUUFBUSxDQUFDUCxLQUFLLENBQUMsRUFBRTtVQUNwQyxNQUFNLElBQUlRLGlCQUFpQixDQUFDLElBQUksQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQ3BCLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFO01BQ0Q7TUFFQSxJQUFJLENBQUMsSUFBSSxDQUFDRyxTQUFTLElBQUlRLEtBQUssS0FBSyxFQUFFLElBQUlBLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDdEQ7TUFDRDtNQUNBLElBQUksQ0FBQyxJQUFJLENBQUNSLFNBQVMsQ0FBQ2UsUUFBUSxDQUFDUCxLQUFLLENBQUMsRUFBRTtRQUNwQyxNQUFNLElBQUlRLGlCQUFpQixDQUFDLElBQUksQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQ3BCLGNBQWMsQ0FBQyxDQUFDO01BQ3ZFO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQSxPQU1Pb0IsZUFBZSxHQUF0Qix5QkFBdUJwQixjQUFrQyxFQUFVO01BQ2xFLElBQUlxQixNQUFNLEdBQUcsRUFBRTtNQUNmLElBQUksQ0FBQ0MsUUFBUSxHQUFHLElBQUksQ0FBQ0EsUUFBUSxJQUFJLElBQUlDLElBQUksRUFBRSxDQUFDQyxXQUFXLEVBQUUsQ0FBQ0MsUUFBUSxFQUFFO01BRXBFLFFBQVF6QixjQUFjO1FBQ3JCO1VBQ0NxQixNQUFNLEdBQUcsSUFBSSxDQUFDQyxRQUFRO1VBQ3RCO1FBQ0Q7VUFDQ0QsTUFBTSxHQUFHLEtBQUs7VUFDZDtRQUNEO1VBQ0NBLE1BQU0sR0FBRyxJQUFJLENBQUNDLFFBQVEsR0FBRyxLQUFLO1VBQzlCO1FBQ0Q7VUFDQ0QsTUFBTSxHQUFHLEdBQUc7VUFDWjtRQUNEO1VBQ0NBLE1BQU0sR0FBRyxJQUFJLENBQUNDLFFBQVEsR0FBRyxHQUFHO1VBQzVCO1FBQ0Q7VUFDQ0QsTUFBTSxHQUFHLElBQUk7VUFDYjtRQUNEO1VBQ0NBLE1BQU0sR0FBRyxJQUFJLENBQUNDLFFBQVEsR0FBRyxJQUFJO1VBQzdCO1FBQ0Q7VUFDQ0QsTUFBTSxHQUFHLEdBQUc7VUFDWjtRQUNEO1VBQ0M7UUFDRDtVQUNDQSxNQUFNLEdBQUcsSUFBSSxDQUFDQyxRQUFRO01BQUM7TUFHekIsT0FBT0ksT0FBTyxDQUFDQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBRUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLENBQUMsSUFBSSxDQUFDbEIsV0FBVyxDQUFDVyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3SDs7SUFFQTtBQUNEO0FBQ0EsT0FGQztJQUFBLE9BR09RLE9BQU8sR0FBZCxtQkFBeUI7TUFDeEIsT0FBTyw2QkFBNkI7SUFDckM7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEsT0FLT0MsWUFBWSxHQUFuQix3QkFBZ0Q7TUFDL0MsT0FBTyxJQUFJLENBQUMzQixTQUFTO0lBQ3RCLENBQUM7SUFBQTtFQUFBLEVBbkt1QjRCLGVBQWUsV0FLeEI3QixXQUFXLEdBQUc7SUFDNUIsaURBQXNDLE1BQU07SUFDNUMsbURBQXdDLEtBQUs7SUFDN0MsdURBQTRDLFNBQVM7SUFDckQsb0RBQXlDLEdBQUc7SUFDNUMsd0RBQTZDLE9BQU87SUFDcEQsaURBQXNDLElBQUk7SUFDMUMscURBQTBDLFFBQVE7SUFDbEQsc0RBQTJDLEdBQUc7SUFDOUMsd0RBQTZDO0VBQzlDLENBQUM7RUFBQSxPQXNKYVIsVUFBVTtBQUFBIn0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaXNjYWxEYXRlIiwiZGVmaW5lVUk1Q2xhc3MiLCJmb3JtYXRPcHRpb25zIiwiY29uc3RyYWludHMiLCJmaXNjYWxUeXBlIiwibWF4TGVuZ3RoIiwiYW5ub3RhdGlvblR5cGUiLCJmb3JtYXQiLCJkYXRlRm9ybWF0cyIsImZvcm1hdHRlciIsIkZpc2NhbEZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImNhbGVuZGFyVHlwZSIsIkNhbGVuZGFyVHlwZSIsIkdyZWdvcmlhbiIsImdldFBhdHRlcm4iLCJmb3JtYXRWYWx1ZSIsInZhbHVlIiwidGFyZ2V0VHlwZSIsInBhcnNlVmFsdWUiLCJzb3VyY2VUeXBlIiwicGFyc2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZXJyb3IiLCJ2YWxpZGF0ZSIsIlZhbGlkYXRlRXhjZXB0aW9uIiwiZ2V0RXJyb3JNZXNzYWdlIiwic1ZhbHVlIiwiZnVsbFllYXIiLCJEYXRlIiwiZ2V0RnVsbFllYXIiLCJ0b1N0cmluZyIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJnZXROYW1lIiwiZ2V0Rm9ybWF0dGVyIiwiT0RhdGFTdHJpbmdUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaXNjYWxEYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgQ2FsZW5kYXJUeXBlIGZyb20gXCJzYXAvYmFzZS9pMThuL2RhdGUvQ2FsZW5kYXJUeXBlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBGaXNjYWxGb3JtYXQgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvRmlzY2FsRm9ybWF0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgVmFsaWRhdGVFeGNlcHRpb24gZnJvbSBcInNhcC91aS9tb2RlbC9WYWxpZGF0ZUV4Y2VwdGlvblwiO1xuaW1wb3J0IE9EYXRhU3RyaW5nVHlwZSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvU3RyaW5nXCI7XG5cbi8qKlxuICogRGVmaW5lIHRoZSBVSTUgY2xhc3MgZm9yIGEgdHlwZSBvZiBmaXNjYWwgZGF0ZS5cbiAqXG4gKiBUaGUgZGF0YSB0eXBlIEZpc2NhbCBEYXRlIHN1cHBvcnRzIHRoZSBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIG9mIGZpc2NhbCBkYXRlcyB0aGF0IGZvbGxvdyB0aGUgcGF0dGVybiAneU0nLlxuICpcbiAqIEBzaW5jZSAxLjExMC4wXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLnR5cGUuRmlzY2FsRGF0ZVwiKVxuY2xhc3MgRmlzY2FsRGF0ZSBleHRlbmRzIE9EYXRhU3RyaW5nVHlwZSB7XG5cdHByaXZhdGUgYW5ub3RhdGlvblR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIGZ1bGxZZWFyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBzdGF0aWMgZGF0ZUZvcm1hdHMgPSB7XG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJdOiBcIllZWVlcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsUGVyaW9kXTogXCJQUFBcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclBlcmlvZF06IFwiWVlZWVBQUFwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxRdWFydGVyXTogXCJRXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJRdWFydGVyXTogXCJZWVlZUVwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxXZWVrXTogXCJXV1wiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyV2Vla106IFwiWVlZWVdXXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0RheU9mRmlzY2FsWWVhcl06IFwiZFwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyVmFyaWFudF06IFwiXCJcblx0fTtcblxuXHRwcml2YXRlIGZvcm1hdHRlcjogRmlzY2FsRm9ybWF0IHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucyBGb3JtYXQgb3B0aW9uc1xuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlIFN0cmluZyB3aXRoIGEgZmlzY2FsIGFubm90YXRpb24gdHlwZVxuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucy5wYXJzZUtlZXBzRW1wdHlTdHJpbmcgV2hldGhlciBlbXB0eSBzdHJpbmcgc2hvdWxkIGJlIGtlcHQgb3Igbm90XG5cdCAqIEBwYXJhbSBjb25zdHJhaW50cyBDb25zdHJhaW50c1xuXHQgKiBAcGFyYW0gY29uc3RyYWludHMubWF4TGVuZ3RoIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBmaWVsZFxuXHQgKi9cblx0Y29uc3RydWN0b3IoZm9ybWF0T3B0aW9uczogeyBmaXNjYWxUeXBlOiBzdHJpbmc7IHBhcnNlS2VlcHNFbXB0eVN0cmluZz86IGJvb2xlYW4gfSwgY29uc3RyYWludHM/OiB7IG1heExlbmd0aD86IG51bWJlciB9KSB7XG5cdFx0aWYgKFxuXHRcdFx0KGZvcm1hdE9wdGlvbnMuZmlzY2FsVHlwZSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclBlcmlvZCB8fFxuXHRcdFx0XHRmb3JtYXRPcHRpb25zLmZpc2NhbFR5cGUgPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJRdWFydGVyIHx8XG5cdFx0XHRcdGZvcm1hdE9wdGlvbnMuZmlzY2FsVHlwZSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhcldlZWspICYmXG5cdFx0XHRjb25zdHJhaW50cz8ubWF4TGVuZ3RoXG5cdFx0KSB7XG5cdFx0XHQvLyBXZSBpbmNyZWFzZSBtYXhMZW5ndGggZm9yICsxIGZvciBhbnkgZmlzY2FsIHR5cGUgdGhhdCBoYXZlIGRlbGltaXRlciBpbiBsb2NhbGUgZm9ybWF0LlxuXHRcdFx0Ly8gSXQncyBuZWNlc3NhcnkgZm9yIHZhbGlkYXRpb24gdG8gd29yayBjb3JyZWN0bHkuXG5cdFx0XHQvLyBBbHNvIGZvciB2YWxpZGF0aW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5IHVzZXIgYWxzbyBzaG91bGQgc3BlY2lmeSBjb25zdHJhaW50cy5pc0RpZ2l0U2VxdWVuY2UgPSB0cnVlXG5cdFx0XHQvLyBpc0RpZ2l0U2VxdWVuY2UgYW5kIG1heExlbmd0aCBjb21iaW5hdGlvbiBlbnN1cmVzIHRoYXQgbWlzc2luZyBjaGFyYWN0ZXJzIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggbGVhZGluZyB6ZXJvc1xuXHRcdFx0Ly8gdGhhdCB3aWxsIGVuc3VyZSB1c2VyIHdpbGwgcmVjZWl2ZSBjb3JyZWN0IHZhbGlkYXRpb24gcmVzdWx0cy5cblx0XHRcdGNvbnN0cmFpbnRzLm1heExlbmd0aCA9IGNvbnN0cmFpbnRzLm1heExlbmd0aCArIDE7XG5cdFx0fVxuXHRcdHN1cGVyKGZvcm1hdE9wdGlvbnMsIGNvbnN0cmFpbnRzKTtcblx0XHR0aGlzLmFubm90YXRpb25UeXBlID0gZm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlO1xuXHRcdGNvbnN0IGZvcm1hdCA9IEZpc2NhbERhdGUuZGF0ZUZvcm1hdHNbdGhpcy5hbm5vdGF0aW9uVHlwZSBhcyBrZXlvZiB0eXBlb2YgRmlzY2FsRGF0ZS5kYXRlRm9ybWF0c107XG5cdFx0aWYgKGZvcm1hdCkge1xuXHRcdFx0dGhpcy5mb3JtYXR0ZXIgPSBGaXNjYWxGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHtcblx0XHRcdFx0Zm9ybWF0LFxuXHRcdFx0XHRjYWxlbmRhclR5cGU6IENhbGVuZGFyVHlwZS5HcmVnb3JpYW5cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm4gcGF0dGVybiBmb3IgZmlzY2FsIGRhdGUgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGZpc2NhbCBkYXRlIHBhdHRlcm5cblx0ICovXG5cdHB1YmxpYyBnZXRQYXR0ZXJuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0dGVyPy5nZXRQYXR0ZXJuKCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9ybWF0cyB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIGdpdmVuIGZpc2NhbCB0eXBlLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIGZvcm1hdHRlZFxuXHQgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIG91dHB1dCB2YWx1ZTsgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpcyBhbHdheXMgZm9ybWF0dGVkIHRvIDxjb2RlPm51bGw8L2NvZGU+XG5cdCAqIEBvdmVycmlkZVxuXHQgKi9cblx0cHVibGljIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcsIHRhcmdldFR5cGU6IHN0cmluZyk6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmZvcm1hdHRlciA/IHRoaXMuZm9ybWF0dGVyLmZvcm1hdChzdXBlci5mb3JtYXRWYWx1ZSh2YWx1ZSwgdGFyZ2V0VHlwZSkpIDogc3VwZXIuZm9ybWF0VmFsdWUodmFsdWUsIHRhcmdldFR5cGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyB0aGUgZ2l2ZW4gdmFsdWUsIHdoaWNoIGlzIGV4cGVjdGVkIHRvIGJlIG9mIHRoZSBmaXNjYWwgdHlwZSwgdG8gYSBzdHJpbmcuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgcGFyc2VkXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdmFsdWVcblx0ICogQG92ZXJyaWRlXG5cdCAqL1xuXHRwdWJsaWMgcGFyc2VWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiwgc291cmNlVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JtYXR0ZXIgPyB0aGlzLmZvcm1hdHRlci5wYXJzZShzdXBlci5wYXJzZVZhbHVlKHZhbHVlLCBzb3VyY2VUeXBlKSkgOiBzdXBlci5wYXJzZVZhbHVlKHZhbHVlLCBzb3VyY2VUeXBlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaW5oZXJpdERvY1xuXHQgKi9cblx0cHVibGljIHZhbGlkYXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRyeSB7XG5cdFx0XHRzdXBlci52YWxpZGF0ZVZhbHVlKHZhbHVlKTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0aWYgKCF0aGlzLmZvcm1hdHRlcikge1xuXHRcdFx0XHR0aHJvdyBlcnJvcjtcblx0XHRcdH1cblx0XHRcdGlmICghdGhpcy5mb3JtYXR0ZXIudmFsaWRhdGUodmFsdWUpKSB7XG5cdFx0XHRcdHRocm93IG5ldyBWYWxpZGF0ZUV4Y2VwdGlvbih0aGlzLmdldEVycm9yTWVzc2FnZSh0aGlzLmFubm90YXRpb25UeXBlKSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmZvcm1hdHRlciB8fCB2YWx1ZSA9PT0gXCJcIiB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMuZm9ybWF0dGVyLnZhbGlkYXRlKHZhbHVlKSkge1xuXHRcdFx0dGhyb3cgbmV3IFZhbGlkYXRlRXhjZXB0aW9uKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYW5ub3RhdGlvblR5cGUpKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgbG9jYWxlLWRlcGVuZGVudCBlcnJvciBtZXNzYWdlIGZvciB0aGUgdHlwZSBiYXNlZCBvbiB0aGUgZmlzY2FsIGFubm90YXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uVHlwZSBUaGUgZmlzY2FsIGFubm90YXRpb24gdHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgbG9jYWxlLWRlcGVuZGVudCBlcnJvciBtZXNzYWdlXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RXJyb3JNZXNzYWdlKGFubm90YXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdGxldCBzVmFsdWUgPSBcIlwiO1xuXHRcdHRoaXMuZnVsbFllYXIgPSB0aGlzLmZ1bGxZZWFyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO1xuXG5cdFx0c3dpdGNoIChhbm5vdGF0aW9uVHlwZSkge1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsUGVyaW9kOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjAwMVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclBlcmlvZDpcblx0XHRcdFx0c1ZhbHVlID0gdGhpcy5mdWxsWWVhciArIFwiMDAxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxRdWFydGVyOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJRdWFydGVyOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyICsgXCIxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxXZWVrOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjAxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyV2Vlazpcblx0XHRcdFx0c1ZhbHVlID0gdGhpcy5mdWxsWWVhciArIFwiMDFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0RheU9mRmlzY2FsWWVhcjpcblx0XHRcdFx0c1ZhbHVlID0gXCIxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyVmFyaWFudDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyO1xuXHRcdH1cblxuXHRcdHJldHVybiBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmVcIikhLmdldFRleHQoXCJGSVNDQUxfVkFMSURBVElPTl9GQUlMU1wiLCBbdGhpcy5mb3JtYXRWYWx1ZShzVmFsdWUsIFwic3RyaW5nXCIpXSk7XG5cdH1cblxuXHQvKipcblx0ICogQGluaGVyaXREb2Ncblx0ICovXG5cdHB1YmxpYyBnZXROYW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIFwic2FwLmZlLmNvcmUudHlwZS5GaXNjYWxEYXRlXCI7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgZm9ybWF0dGVyIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhpcyBwYXJ0aWN1bGFyIEZpc2NhbERhdGUgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGFzc2lnbmVkIGluc3RhbmNlIG9mIEZpc2NhbEZvcm1hdFxuXHQgKi9cblx0cHVibGljIGdldEZvcm1hdHRlcigpOiBGaXNjYWxGb3JtYXQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmZvcm1hdHRlcjtcblx0fVxufVxuZXhw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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
2
2
|
import CalendarType from "sap/base/i18n/date/CalendarType";
|
|
3
|
+
import { defineUI5Class } from "sap/fe/base/ClassSupport";
|
|
3
4
|
import FiscalFormat from "sap/fe/core/formatters/FiscalFormat";
|
|
4
|
-
import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
5
5
|
import Library from "sap/ui/core/Lib";
|
|
6
6
|
import ValidateException from "sap/ui/model/ValidateException";
|
|
7
7
|
import ODataStringType from "sap/ui/model/odata/type/String";
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Lib", "sap/ui/model/ValidateException", "sap/ui/model/odata/type/String"], function (ClassSupport, Library, ValidateException, ODataStringType) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _class;
|
|
9
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
10
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
11
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
12
|
+
let InputMaskType = (_dec = defineUI5Class("sap.fe.core.type.InputMask"), _dec(_class = /*#__PURE__*/function (_ODataStringType) {
|
|
13
|
+
_inheritsLoose(InputMaskType, _ODataStringType);
|
|
14
|
+
function InputMaskType(oFormatOptions) {
|
|
15
|
+
return _ODataStringType.call(this, oFormatOptions) || this;
|
|
16
|
+
}
|
|
17
|
+
var _proto = InputMaskType.prototype;
|
|
18
|
+
/**
|
|
19
|
+
* Validates the value against the mask. If the value is not provided for any of the mask characters, it throws an error.
|
|
20
|
+
*
|
|
21
|
+
* @param value String value received from the parseValue method without the mask.
|
|
22
|
+
*/
|
|
23
|
+
_proto.validateValue = function validateValue(value) {
|
|
24
|
+
// Reuse the formatValue to validate if the value does not match the mask and throw an error in that case
|
|
25
|
+
const maskedValue = this.formatValue(value);
|
|
26
|
+
if (maskedValue.includes(this.oFormatOptions.placeholderSymbol)) {
|
|
27
|
+
let text = Library.getResourceBundleFor("sap.fe.core").getText("T_MASKEDINPUT_INVALID_VALUE");
|
|
28
|
+
if (!text) {
|
|
29
|
+
text = "";
|
|
30
|
+
}
|
|
31
|
+
throw new ValidateException(text);
|
|
32
|
+
}
|
|
33
|
+
_ODataStringType.prototype.validateValue.call(this, value);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse the value by removing the mask characters.
|
|
37
|
+
*
|
|
38
|
+
* @param value String value from the control with the mask
|
|
39
|
+
* @returns String value without the mask
|
|
40
|
+
*/;
|
|
41
|
+
_proto.parseValue = function parseValue(value) {
|
|
42
|
+
var _this$oFormatOptions;
|
|
43
|
+
// Remove the mask characters from the value
|
|
44
|
+
let parsedValue = "";
|
|
45
|
+
let parsedValueIndex = 0;
|
|
46
|
+
const mask = (_this$oFormatOptions = this.oFormatOptions) === null || _this$oFormatOptions === void 0 ? void 0 : _this$oFormatOptions.mask;
|
|
47
|
+
if (mask) {
|
|
48
|
+
for (let i = 0; i <= mask.length; i++) {
|
|
49
|
+
if (this.doesMakingRuleExists(this.oFormatOptions.maskRule, mask[i])) {
|
|
50
|
+
const maskRule = this.oFormatOptions.maskRule.find(rule => rule.symbol === mask[i]);
|
|
51
|
+
if (value[parsedValueIndex] && maskRule && value[parsedValueIndex].match(new RegExp(maskRule.regex))) {
|
|
52
|
+
parsedValue += value[parsedValueIndex++];
|
|
53
|
+
}
|
|
54
|
+
} else if (mask[i] === "^") {
|
|
55
|
+
// check if the character is ^, then skip the next character in value and increment the loop i++ as we don't want to add the escaped character to the parsed value
|
|
56
|
+
i++;
|
|
57
|
+
parsedValueIndex++;
|
|
58
|
+
} else {
|
|
59
|
+
parsedValueIndex++;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return parsedValue;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Checks if the mask rule exists for the given mask character.
|
|
67
|
+
*
|
|
68
|
+
* @param maskRule Array of mask rules
|
|
69
|
+
* @param maskCharacter Single mask character
|
|
70
|
+
* @returns True or False based on the result
|
|
71
|
+
*/;
|
|
72
|
+
_proto.doesMakingRuleExists = function doesMakingRuleExists(maskRule, maskCharacter) {
|
|
73
|
+
for (const rule of maskRule) {
|
|
74
|
+
if (rule.symbol === maskCharacter) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Format the value by applying the mask.
|
|
82
|
+
*
|
|
83
|
+
* @param value String value from the model without the mask
|
|
84
|
+
* @returns String value with the mask
|
|
85
|
+
*/;
|
|
86
|
+
_proto.formatValue = function formatValue(value) {
|
|
87
|
+
if (!value) return value;
|
|
88
|
+
const maskRulesPerCharacter = {};
|
|
89
|
+
let formatValue = "";
|
|
90
|
+
// Create a map of mask rules per character
|
|
91
|
+
if (this.oFormatOptions.maskRule) {
|
|
92
|
+
for (const rule of this.oFormatOptions.maskRule) {
|
|
93
|
+
maskRulesPerCharacter[rule.symbol] = rule.regex;
|
|
94
|
+
}
|
|
95
|
+
let valueIndex = 0;
|
|
96
|
+
let formattedValue = "";
|
|
97
|
+
const mask = this.oFormatOptions.mask;
|
|
98
|
+
for (let i = 0; i < mask.length; i++) {
|
|
99
|
+
// Process character by character, comparing with the mask rules
|
|
100
|
+
// If the character matches a mask rule, replace it with the character from the value and increment the value index;
|
|
101
|
+
// Otherwise replace it with the character from the mask
|
|
102
|
+
if (maskRulesPerCharacter[mask[i]]) {
|
|
103
|
+
if (value[valueIndex] && value[valueIndex].match(new RegExp(maskRulesPerCharacter[mask[i]]))) {
|
|
104
|
+
formattedValue += value[valueIndex++];
|
|
105
|
+
} else {
|
|
106
|
+
formattedValue += this.oFormatOptions.placeholderSymbol;
|
|
107
|
+
}
|
|
108
|
+
} else if (mask[i] === "^") {
|
|
109
|
+
// if the mask character is ^ then add the character after it to the formatted value and increment the value i++
|
|
110
|
+
formattedValue += mask[i + 1];
|
|
111
|
+
i++;
|
|
112
|
+
} else {
|
|
113
|
+
formattedValue += mask[i];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
formatValue = formattedValue;
|
|
117
|
+
}
|
|
118
|
+
return formatValue;
|
|
119
|
+
};
|
|
120
|
+
return InputMaskType;
|
|
121
|
+
}(ODataStringType)) || _class);
|
|
122
|
+
return InputMaskType;
|
|
123
|
+
}, false);
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnB1dE1hc2tUeXBlIiwiZGVmaW5lVUk1Q2xhc3MiLCJvRm9ybWF0T3B0aW9ucyIsInZhbGlkYXRlVmFsdWUiLCJ2YWx1ZSIsIm1hc2tlZFZhbHVlIiwiZm9ybWF0VmFsdWUiLCJpbmNsdWRlcyIsInBsYWNlaG9sZGVyU3ltYm9sIiwidGV4dCIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJWYWxpZGF0ZUV4Y2VwdGlvbiIsInBhcnNlVmFsdWUiLCJwYXJzZWRWYWx1ZSIsInBhcnNlZFZhbHVlSW5kZXgiLCJtYXNrIiwiaSIsImxlbmd0aCIsImRvZXNNYWtpbmdSdWxlRXhpc3RzIiwibWFza1J1bGUiLCJmaW5kIiwicnVsZSIsInN5bWJvbCIsIm1hdGNoIiwiUmVnRXhwIiwicmVnZXgiLCJtYXNrQ2hhcmFjdGVyIiwibWFza1J1bGVzUGVyQ2hhcmFjdGVyIiwidmFsdWVJbmRleCIsImZvcm1hdHRlZFZhbHVlIiwiT0RhdGFTdHJpbmdUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJJbnB1dE1hc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgVmFsaWRhdGVFeGNlcHRpb24gZnJvbSBcInNhcC91aS9tb2RlbC9WYWxpZGF0ZUV4Y2VwdGlvblwiO1xuaW1wb3J0IE9EYXRhU3RyaW5nVHlwZSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvU3RyaW5nXCI7XG5cbmV4cG9ydCB0eXBlIElucHV0TWFza1J1bGUgPSB7XG5cdHN5bWJvbDogc3RyaW5nO1xuXHRyZWdleDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIElucHV0TWFza0Zvcm1hdE9wdGlvbnMgPSB7XG5cdG1hc2s6IHN0cmluZztcblx0cGxhY2Vob2xkZXJTeW1ib2w6IHN0cmluZztcblx0bWFza1J1bGU6IElucHV0TWFza1J1bGVbXTtcbn07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLnR5cGUuSW5wdXRNYXNrXCIpXG5jbGFzcyBJbnB1dE1hc2tUeXBlIGV4dGVuZHMgT0RhdGFTdHJpbmdUeXBlIHtcblx0Y29uc3RydWN0b3Iob0Zvcm1hdE9wdGlvbnM6IElucHV0TWFza0Zvcm1hdE9wdGlvbnMgJiB7IHBhcnNlS2VlcHNFbXB0eVN0cmluZz86IGJvb2xlYW4gfSkge1xuXHRcdHN1cGVyKG9Gb3JtYXRPcHRpb25zKTtcblx0fVxuXG5cdG9Gb3JtYXRPcHRpb25zITogSW5wdXRNYXNrRm9ybWF0T3B0aW9ucztcblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHRoZSB2YWx1ZSBhZ2FpbnN0IHRoZSBtYXNrLiBJZiB0aGUgdmFsdWUgaXMgbm90IHByb3ZpZGVkIGZvciBhbnkgb2YgdGhlIG1hc2sgY2hhcmFjdGVycywgaXQgdGhyb3dzIGFuIGVycm9yLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIHJlY2VpdmVkIGZyb20gdGhlIHBhcnNlVmFsdWUgbWV0aG9kIHdpdGhvdXQgdGhlIG1hc2suXG5cdCAqL1xuXG5cdHZhbGlkYXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdC8vIFJldXNlIHRoZSBmb3JtYXRWYWx1ZSB0byB2YWxpZGF0ZSBpZiB0aGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlIG1hc2sgYW5kIHRocm93IGFuIGVycm9yIGluIHRoYXQgY2FzZVxuXHRcdGNvbnN0IG1hc2tlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSk7XG5cdFx0aWYgKG1hc2tlZFZhbHVlLmluY2x1ZGVzKHRoaXMub0Zvcm1hdE9wdGlvbnMucGxhY2Vob2xkZXJTeW1ib2wpKSB7XG5cdFx0XHRsZXQgdGV4dCA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIlRfTUFTS0VESU5QVVRfSU5WQUxJRF9WQUxVRVwiKTtcblx0XHRcdGlmICghdGV4dCkge1xuXHRcdFx0XHR0ZXh0ID0gXCJcIjtcblx0XHRcdH1cblx0XHRcdHRocm93IG5ldyBWYWxpZGF0ZUV4Y2VwdGlvbih0ZXh0KTtcblx0XHR9XG5cdFx0c3VwZXIudmFsaWRhdGVWYWx1ZSh2YWx1ZSk7XG5cdH1cblx0LyoqXG5cdCAqIFBhcnNlIHRoZSB2YWx1ZSBieSByZW1vdmluZyB0aGUgbWFzayBjaGFyYWN0ZXJzLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIGZyb20gdGhlIGNvbnRyb2wgd2l0aCB0aGUgbWFza1xuXHQgKiBAcmV0dXJucyBTdHJpbmcgdmFsdWUgd2l0aG91dCB0aGUgbWFza1xuXHQgKi9cblxuXHRwYXJzZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdC8vIFJlbW92ZSB0aGUgbWFzayBjaGFyYWN0ZXJzIGZyb20gdGhlIHZhbHVlXG5cdFx0bGV0IHBhcnNlZFZhbHVlID0gXCJcIjtcblx0XHRsZXQgcGFyc2VkVmFsdWVJbmRleCA9IDA7XG5cdFx0Y29uc3QgbWFzayA9IHRoaXMub0Zvcm1hdE9wdGlvbnM/Lm1hc2s7XG5cdFx0aWYgKG1hc2spIHtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDw9IG1hc2subGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHRoaXMuZG9lc01ha2luZ1J1bGVFeGlzdHModGhpcy5vRm9ybWF0T3B0aW9ucy5tYXNrUnVsZSwgbWFza1tpXSkpIHtcblx0XHRcdFx0XHRjb25zdCBtYXNrUnVsZSA9IHRoaXMub0Zvcm1hdE9wdGlvbnMubWFza1J1bGUuZmluZCgocnVsZSkgPT4gcnVsZS5zeW1ib2wgPT09IG1hc2tbaV0pO1xuXHRcdFx0XHRcdGlmICh2YWx1ZVtwYXJzZWRWYWx1ZUluZGV4XSAmJiBtYXNrUnVsZSAmJiB2YWx1ZVtwYXJzZWRWYWx1ZUluZGV4XS5tYXRjaChuZXcgUmVnRXhwKG1hc2tSdWxlLnJlZ2V4KSkpIHtcblx0XHRcdFx0XHRcdHBhcnNlZFZhbHVlICs9IHZhbHVlW3BhcnNlZFZhbHVlSW5kZXgrK107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKG1hc2tbaV0gPT09IFwiXlwiKSB7XG5cdFx0XHRcdFx0Ly8gY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyBeLCB0aGVuIHNraXAgdGhlIG5leHQgY2hhcmFjdGVyIGluIHZhbHVlIGFuZCBpbmNyZW1lbnQgdGhlIGxvb3AgaSsrIGFzIHdlIGRvbid0IHdhbnQgdG8gYWRkIHRoZSBlc2NhcGVkIGNoYXJhY3RlciB0byB0aGUgcGFyc2VkIHZhbHVlXG5cdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdHBhcnNlZFZhbHVlSW5kZXgrKztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwYXJzZWRWYWx1ZUluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHBhcnNlZFZhbHVlO1xuXHR9XG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIG1hc2sgcnVsZSBleGlzdHMgZm9yIHRoZSBnaXZlbiBtYXNrIGNoYXJhY3Rlci5cblx0ICpcblx0ICogQHBhcmFtIG1hc2tSdWxlIEFycmF5IG9mIG1hc2sgcnVsZXNcblx0ICogQHBhcmFtIG1hc2tDaGFyYWN0ZXIgU2luZ2xlIG1hc2sgY2hhcmFjdGVyXG5cdCAqIEByZXR1cm5zIFRydWUgb3IgRmFsc2UgYmFzZWQgb24gdGhlIHJlc3VsdFxuXHQgKi9cblxuXHRkb2VzTWFraW5nUnVsZUV4aXN0cyhtYXNrUnVsZTogSW5wdXRNYXNrUnVsZVtdLCBtYXNrQ2hhcmFjdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRmb3IgKGNvbnN0IHJ1bGUgb2YgbWFza1J1bGUpIHtcblx0XHRcdGlmIChydWxlLnN5bWJvbCA9PT0gbWFza0NoYXJhY3Rlcikge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdC8qKlxuXHQgKiBGb3JtYXQgdGhlIHZhbHVlIGJ5IGFwcGx5aW5nIHRoZSBtYXNrLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIGZyb20gdGhlIG1vZGVsIHdpdGhvdXQgdGhlIG1hc2tcblx0ICogQHJldHVybnMgU3RyaW5nIHZhbHVlIHdpdGggdGhlIG1hc2tcblx0ICovXG5cblx0Zm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlO1xuXG5cdFx0Y29uc3QgbWFza1J1bGVzUGVyQ2hhcmFjdGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cdFx0bGV0IGZvcm1hdFZhbHVlID0gXCJcIjtcblx0XHQvLyBDcmVhdGUgYSBtYXAgb2YgbWFzayBydWxlcyBwZXIgY2hhcmFjdGVyXG5cdFx0aWYgKHRoaXMub0Zvcm1hdE9wdGlvbnMubWFza1J1bGUpIHtcblx0XHRcdGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLm9Gb3JtYXRPcHRpb25zLm1hc2tSdWxlKSB7XG5cdFx0XHRcdG1hc2tSdWxlc1BlckNoYXJhY3RlcltydWxlLnN5bWJvbF0gPSBydWxlLnJlZ2V4O1xuXHRcdFx0fVxuXHRcdFx0bGV0IHZhbHVlSW5kZXggPSAwO1xuXHRcdFx0bGV0IGZvcm1hdHRlZFZhbHVlID0gXCJcIjtcblx0XHRcdGNvbnN0IG1hc2sgPSB0aGlzLm9Gb3JtYXRPcHRpb25zLm1hc2s7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Ly8gUHJvY2VzcyBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyLCBjb21wYXJpbmcgd2l0aCB0aGUgbWFzayBydWxlc1xuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIG1hdGNoZXMgYSBtYXNrIHJ1bGUsIHJlcGxhY2UgaXQgd2l0aCB0aGUgY2hhcmFjdGVyIGZyb20gdGhlIHZhbHVlIGFuZCBpbmNyZW1lbnQgdGhlIHZhbHVlIGluZGV4O1xuXHRcdFx0XHQvLyBPdGhlcndpc2UgcmVwbGFjZSBpdCB3aXRoIHRoZSBjaGFyYWN0ZXIgZnJvbSB0aGUgbWFza1xuXHRcdFx0XHRpZiAobWFza1J1bGVzUGVyQ2hhcmFjdGVyW21hc2tbaV1dKSB7XG5cdFx0XHRcdFx0aWYgKHZhbHVlW3ZhbHVlSW5kZXhdICYmIHZhbHVlW3ZhbHVlSW5kZXhdLm1hdGNoKG5ldyBSZWdFeHAobWFza1J1bGVzUGVyQ2hhcmFjdGVyW21hc2tbaV1dKSkpIHtcblx0XHRcdFx0XHRcdGZvcm1hdHRlZFZhbHVlICs9IHZhbHVlW3ZhbHVlSW5kZXgrK107XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGZvcm1hdHRlZFZhbHVlICs9IHRoaXMub0Zvcm1hdE9wdGlvbnMucGxhY2Vob2xkZXJTeW1ib2w7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKG1hc2tbaV0gPT09IFwiXlwiKSB7XG5cdFx0XHRcdFx0Ly8gaWYgdGhlIG1hc2sgY2hhcmFjdGVyIGlzIF4gdGhlbiBhZGQgdGhlIGNoYXJhY3RlciBhZnRlciBpdCB0byB0aGUgZm9ybWF0dGVkIHZhbHVlIGFuZCBpbmNyZW1lbnQgdGhlIHZhbHVlIGkrK1xuXHRcdFx0XHRcdGZvcm1hdHRlZFZhbHVlICs9IG1hc2tbaSArIDFdO1xuXHRcdFx0XHRcdGkrKztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRmb3JtYXR0ZWRWYWx1ZSArPSBtYXNrW2ldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRmb3JtYXRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZm9ybWF0VmFsdWU7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IElucHV0TWFza1R5cGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O01BZ0JNQSxhQUFhLFdBRGxCQyxjQUFjLENBQUMsNEJBQTRCLENBQUM7SUFBQTtJQUU1Qyx1QkFBWUMsY0FB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
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { defineUI5Class } from "sap/fe/base/ClassSupport";
|
|
2
|
+
import Library from "sap/ui/core/Lib";
|
|
3
|
+
import ValidateException from "sap/ui/model/ValidateException";
|
|
4
|
+
import ODataStringType from "sap/ui/model/odata/type/String";
|
|
5
|
+
|
|
6
|
+
export type InputMaskRule = {
|
|
7
|
+
symbol: string;
|
|
8
|
+
regex: string;
|
|
9
|
+
};
|
|
10
|
+
export type InputMaskFormatOptions = {
|
|
11
|
+
mask: string;
|
|
12
|
+
placeholderSymbol: string;
|
|
13
|
+
maskRule: InputMaskRule[];
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
@defineUI5Class("sap.fe.core.type.InputMask")
|
|
17
|
+
class InputMaskType extends ODataStringType {
|
|
18
|
+
constructor(oFormatOptions: InputMaskFormatOptions & { parseKeepsEmptyString?: boolean }) {
|
|
19
|
+
super(oFormatOptions);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
oFormatOptions!: InputMaskFormatOptions;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Validates the value against the mask. If the value is not provided for any of the mask characters, it throws an error.
|
|
26
|
+
*
|
|
27
|
+
* @param value String value received from the parseValue method without the mask.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
validateValue(value: string): void {
|
|
31
|
+
// Reuse the formatValue to validate if the value does not match the mask and throw an error in that case
|
|
32
|
+
const maskedValue = this.formatValue(value);
|
|
33
|
+
if (maskedValue.includes(this.oFormatOptions.placeholderSymbol)) {
|
|
34
|
+
let text = Library.getResourceBundleFor("sap.fe.core")!.getText("T_MASKEDINPUT_INVALID_VALUE");
|
|
35
|
+
if (!text) {
|
|
36
|
+
text = "";
|
|
37
|
+
}
|
|
38
|
+
throw new ValidateException(text);
|
|
39
|
+
}
|
|
40
|
+
super.validateValue(value);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse the value by removing the mask characters.
|
|
44
|
+
*
|
|
45
|
+
* @param value String value from the control with the mask
|
|
46
|
+
* @returns String value without the mask
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
parseValue(value: string): string {
|
|
50
|
+
// Remove the mask characters from the value
|
|
51
|
+
let parsedValue = "";
|
|
52
|
+
let parsedValueIndex = 0;
|
|
53
|
+
const mask = this.oFormatOptions?.mask;
|
|
54
|
+
if (mask) {
|
|
55
|
+
for (let i = 0; i <= mask.length; i++) {
|
|
56
|
+
if (this.doesMakingRuleExists(this.oFormatOptions.maskRule, mask[i])) {
|
|
57
|
+
const maskRule = this.oFormatOptions.maskRule.find((rule) => rule.symbol === mask[i]);
|
|
58
|
+
if (value[parsedValueIndex] && maskRule && value[parsedValueIndex].match(new RegExp(maskRule.regex))) {
|
|
59
|
+
parsedValue += value[parsedValueIndex++];
|
|
60
|
+
}
|
|
61
|
+
} else if (mask[i] === "^") {
|
|
62
|
+
// check if the character is ^, then skip the next character in value and increment the loop i++ as we don't want to add the escaped character to the parsed value
|
|
63
|
+
i++;
|
|
64
|
+
parsedValueIndex++;
|
|
65
|
+
} else {
|
|
66
|
+
parsedValueIndex++;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return parsedValue;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks if the mask rule exists for the given mask character.
|
|
74
|
+
*
|
|
75
|
+
* @param maskRule Array of mask rules
|
|
76
|
+
* @param maskCharacter Single mask character
|
|
77
|
+
* @returns True or False based on the result
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
doesMakingRuleExists(maskRule: InputMaskRule[], maskCharacter: string): boolean {
|
|
81
|
+
for (const rule of maskRule) {
|
|
82
|
+
if (rule.symbol === maskCharacter) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Format the value by applying the mask.
|
|
90
|
+
*
|
|
91
|
+
* @param value String value from the model without the mask
|
|
92
|
+
* @returns String value with the mask
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
formatValue(value: string): string {
|
|
96
|
+
if (!value) return value;
|
|
97
|
+
|
|
98
|
+
const maskRulesPerCharacter: Record<string, string> = {};
|
|
99
|
+
let formatValue = "";
|
|
100
|
+
// Create a map of mask rules per character
|
|
101
|
+
if (this.oFormatOptions.maskRule) {
|
|
102
|
+
for (const rule of this.oFormatOptions.maskRule) {
|
|
103
|
+
maskRulesPerCharacter[rule.symbol] = rule.regex;
|
|
104
|
+
}
|
|
105
|
+
let valueIndex = 0;
|
|
106
|
+
let formattedValue = "";
|
|
107
|
+
const mask = this.oFormatOptions.mask;
|
|
108
|
+
for (let i = 0; i < mask.length; i++) {
|
|
109
|
+
// Process character by character, comparing with the mask rules
|
|
110
|
+
// If the character matches a mask rule, replace it with the character from the value and increment the value index;
|
|
111
|
+
// Otherwise replace it with the character from the mask
|
|
112
|
+
if (maskRulesPerCharacter[mask[i]]) {
|
|
113
|
+
if (value[valueIndex] && value[valueIndex].match(new RegExp(maskRulesPerCharacter[mask[i]]))) {
|
|
114
|
+
formattedValue += value[valueIndex++];
|
|
115
|
+
} else {
|
|
116
|
+
formattedValue += this.oFormatOptions.placeholderSymbol;
|
|
117
|
+
}
|
|
118
|
+
} else if (mask[i] === "^") {
|
|
119
|
+
// if the mask character is ^ then add the character after it to the formatted value and increment the value i++
|
|
120
|
+
formattedValue += mask[i + 1];
|
|
121
|
+
i++;
|
|
122
|
+
} else {
|
|
123
|
+
formattedValue += mask[i];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
formatValue = formattedValue;
|
|
127
|
+
}
|
|
128
|
+
return formatValue;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export default InputMaskType;
|
package/ui5.yaml
CHANGED
|
@@ -6,6 +6,7 @@ framework:
|
|
|
6
6
|
name: SAPUI5
|
|
7
7
|
libraries:
|
|
8
8
|
- name: sap.f
|
|
9
|
+
- name: sap.fe.base
|
|
9
10
|
- name: sap.fe.navigation
|
|
10
11
|
- name: sap.fe.placeholder
|
|
11
12
|
- name: sap.m
|
|
@@ -13,3 +14,21 @@ framework:
|
|
|
13
14
|
- name: sap.ui.layout
|
|
14
15
|
- name: themelib_sap_fiori_3
|
|
15
16
|
optional: true
|
|
17
|
+
builder:
|
|
18
|
+
bundles:
|
|
19
|
+
- bundleDefinition:
|
|
20
|
+
name: sap/fe/core/library-preload.js
|
|
21
|
+
sections:
|
|
22
|
+
- mode: preload
|
|
23
|
+
name: sap/fe/core-lib-preload
|
|
24
|
+
filters:
|
|
25
|
+
- sap/fe/core/**/*
|
|
26
|
+
- sap/fe/base/**/*
|
|
27
|
+
- "!sap/fe/**/*.designtime.js"
|
|
28
|
+
- "!sap/fe/designtime/**/*"
|
|
29
|
+
resolve: false
|
|
30
|
+
renderer: true
|
|
31
|
+
sort: true
|
|
32
|
+
bundleOptions:
|
|
33
|
+
optimize: true
|
|
34
|
+
usePredefineCalls: true
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
|
-
*/
|
|
5
|
-
sap.ui.define(["sap/ui/core/library", "sap/ui/core/message/Message", "sap/ui/core/Messaging"], function (library, Message, Messaging) {
|
|
6
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
var _exports = {};
|
|
9
|
-
var MessageType = library.MessageType;
|
|
10
|
-
/**
|
|
11
|
-
* Adds error messages for an action parameter field to the message manager.
|
|
12
|
-
*
|
|
13
|
-
* @param messageParameters Information identifying an action parameter and messages refering to this parameter
|
|
14
|
-
*/
|
|
15
|
-
// in case of missing mandaotory parameter, message currently differs per parameter, as it superfluously contains the label as parameter. Possiblky this could be removed in future, in that case, interface could be simplified to ActionParameterInfo[], string
|
|
16
|
-
function _addMessageForActionParameter(messageParameters) {
|
|
17
|
-
Messaging.addMessages(messageParameters.map(messageParameter => {
|
|
18
|
-
const binding = messageParameter.actionParameterInfo.field.getBinding(messageParameter.actionParameterInfo.isMultiValue ? "items" : "value");
|
|
19
|
-
return new Message({
|
|
20
|
-
message: messageParameter.message,
|
|
21
|
-
type: MessageType.Error,
|
|
22
|
-
processor: binding === null || binding === void 0 ? void 0 : binding.getModel(),
|
|
23
|
-
persistent: true,
|
|
24
|
-
target: binding === null || binding === void 0 ? void 0 : binding.getResolvedPath()
|
|
25
|
-
});
|
|
26
|
-
}));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Checks if all required action parameters contain data and checks for all action parameters if the
|
|
31
|
-
* contained data is valid.
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* @param actionParameterInfos Information identifying an action parameter
|
|
35
|
-
* @param resourceModel The model to load text resources
|
|
36
|
-
* @returns A promise that indicate if the properties are valid or not
|
|
37
|
-
*/
|
|
38
|
-
_exports._addMessageForActionParameter = _addMessageForActionParameter;
|
|
39
|
-
async function _validateProperties(actionParameterInfos, resourceModel) {
|
|
40
|
-
await Promise.allSettled(actionParameterInfos.map(async actionParameterInfo => actionParameterInfo.validationPromise));
|
|
41
|
-
const requiredParameterInfos = actionParameterInfos.filter(actionParameterInfo => actionParameterInfo.field.getRequired());
|
|
42
|
-
|
|
43
|
-
/* Hint: The boolean false is a valid value */
|
|
44
|
-
const emptyRequiredFields = requiredParameterInfos.filter(requiredParameterInfo => {
|
|
45
|
-
if (requiredParameterInfo.isMultiValue) {
|
|
46
|
-
return requiredParameterInfo.value === undefined || !requiredParameterInfo.value.length;
|
|
47
|
-
} else {
|
|
48
|
-
const fieldValue = requiredParameterInfo.field.getValue();
|
|
49
|
-
return fieldValue === undefined || fieldValue === null || fieldValue === "";
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
// message contains label per field for historical reason (originally, it was shown in additional popup, now it's directly added to the field)
|
|
54
|
-
// if this was not the case (and hopefully, in future this might be subject to change), interface of _addMessageForActionParameter could be simplified to just pass emptyRequiredFields and a constant message here
|
|
55
|
-
_addMessageForActionParameter(emptyRequiredFields.map(actionParameterInfo => {
|
|
56
|
-
var _actionParameterInfo$;
|
|
57
|
-
return {
|
|
58
|
-
actionParameterInfo: actionParameterInfo,
|
|
59
|
-
message: resourceModel.getText("C_OPERATIONS_ACTION_PARAMETER_DIALOG_MISSING_MANDATORY_MSG", [((_actionParameterInfo$ = actionParameterInfo.field.getParent()) === null || _actionParameterInfo$ === void 0 ? void 0 : _actionParameterInfo$.getAggregation("label")).getText()])
|
|
60
|
-
};
|
|
61
|
-
}));
|
|
62
|
-
|
|
63
|
-
/* Check value state of all parameter */
|
|
64
|
-
const firstInvalidActionParameter = actionParameterInfos.find(
|
|
65
|
-
// unfortunately, _addMessageForActionParameter sets valueState only asynchroneously, thus checking emptyRequiredFields and hasError additionally:
|
|
66
|
-
// - checking hasError: user has changed field to invalid value, validation promise has been rejected, therefore we are adding message to message model
|
|
67
|
-
// which in turn sets value state to 'Error' but this last step might not have happened yet due to asynchronity in model.
|
|
68
|
-
// - also checking value state: also out parameter of another action parameter could change field and it's value state without sending change event.
|
|
69
|
-
|
|
70
|
-
actionParameterInfo => actionParameterInfo.hasError || actionParameterInfo.field.getValueState() === "Error" || emptyRequiredFields.includes(actionParameterInfo));
|
|
71
|
-
if (firstInvalidActionParameter) {
|
|
72
|
-
firstInvalidActionParameter.field.focus();
|
|
73
|
-
return false;
|
|
74
|
-
} else {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
_exports._validateProperties = _validateProperties;
|
|
79
|
-
return _exports;
|
|
80
|
-
}, false);
|
|
81
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWRkTWVzc2FnZUZvckFjdGlvblBhcmFtZXRlciIsIm1lc3NhZ2VQYXJhbWV0ZXJzIiwiTWVzc2FnaW5nIiwiYWRkTWVzc2FnZXMiLCJtYXAiLCJtZXNzYWdlUGFyYW1ldGVyIiwiYmluZGluZyIsImFjdGlvblBhcmFtZXRlckluZm8iLCJmaWVsZCIsImdldEJpbmRpbmciLCJpc011bHRpVmFsdWUiLCJNZXNzYWdlIiwibWVzc2FnZSIsInR5cGUiLCJNZXNzYWdlVHlwZSIsIkVycm9yIiwicHJvY2Vzc29yIiwiZ2V0TW9kZWwiLCJwZXJzaXN0ZW50IiwidGFyZ2V0IiwiZ2V0UmVzb2x2ZWRQYXRoIiwiX3ZhbGlkYXRlUHJvcGVydGllcyIsImFjdGlvblBhcmFtZXRlckluZm9zIiwicmVzb3VyY2VNb2RlbCIsIlByb21pc2UiLCJhbGxTZXR0bGVkIiwidmFsaWRhdGlvblByb21pc2UiLCJyZXF1aXJlZFBhcmFtZXRlckluZm9zIiwiZmlsdGVyIiwiZ2V0UmVxdWlyZWQiLCJlbXB0eVJlcXVpcmVkRmllbGRzIiwicmVxdWlyZWRQYXJhbWV0ZXJJbmZvIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJmaWVsZFZhbHVlIiwiZ2V0VmFsdWUiLCJnZXRUZXh0IiwiZ2V0UGFyZW50IiwiZ2V0QWdncmVnYXRpb24iLCJmaXJzdEludmFsaWRBY3Rpb25QYXJhbWV0ZXIiLCJmaW5kIiwiaGFzRXJyb3IiLCJnZXRWYWx1ZVN0YXRlIiwiaW5jbHVkZXMiLCJmb2N1cyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiX2ludGVybmFsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC9mZS9jb3JlL1Jlc291cmNlTW9kZWxcIjtcbmltcG9ydCB0eXBlIExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IE1lc3NhZ2luZyBmcm9tIFwic2FwL3VpL2NvcmUvTWVzc2FnaW5nXCI7XG5pbXBvcnQgdHlwZSBGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWVsZFwiO1xuaW1wb3J0IHR5cGUgTXVsdGlWYWx1ZUZpZWxkSXRlbSBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9NdWx0aVZhbHVlRmllbGRJdGVtXCI7XG5pbXBvcnQgdHlwZSBNdWx0aVZhbHVlRmllbGQgZnJvbSBcInNhcC91aS9tZGMvTXVsdGlWYWx1ZUZpZWxkXCI7XG5cbi8qKlxuICogTk9OIG9mIHRoZXNlIGV4cG9ydCBtdXN0IGJlIGltcG9ydGVkIGFueXdoZXJlIG91dHNpZGUgb2YgdGhlIC4vb3BlcmF0aW9ucyBtb2R1bGUuXG4gKiBUaGV5IGFyZSBvbmx5IGV4cG9zZWQgdG8gc2ltcGxpZnkgdGVzdGluZyB1bnRpbCB0aGUgb3BlcmF0aW9ucy50cyBmaWxlIGhhcyBiZWVuIHJlZmFjdG9yZWRcbiAqL1xuXG4vLyB0aGlzIHR5cGUgaXMgbWVhbnQgdG8gZGVzY3JpYmUgdGhlIG1ldGEgaW5mb3JtYXRpb24gZm9yIG9uZSBBY3Rpb25QYXJhbWV0ZXIgKGkuZS4gaXRzIG9iamVjdCBpbiBtZXRhTW9kZWwpXG5leHBvcnQgdHlwZSBBY3Rpb25QYXJhbWV0ZXIgPSB7XG5cdCROYW1lOiBzdHJpbmc7XG5cdCRUeXBlOiBzdHJpbmc7XG5cdCRpc0NvbGxlY3Rpb246IGJvb2xlYW47XG5cdC8vIGN1cnJlbnRseSBydW50aW1lIGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gaW50byB0aGUgbWV0YW1vZGVsOlxuXHQvLyAtIGluIHRoZSBwcmVzcyBoYW5kbGVyIG9mIHRoZSBhY3Rpb24gYnV0dG9uIG9uIHRoZSBwYXJhbWV0ZXIgZGlhbG9nLCB0aGUgdmFsdWUgb2YgZWFjaCBwYXJhbWV0ZXIgaXMgYWRkZWRcblx0Ly8gLSBpbiBzZXRBY3Rpb25QYXJhbWV0ZXJEZWZhdWx0VmFsdWUsIHRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZCBhbmQgdHJhbnNmZXJyZWQgdG8gdGhlIGNvbnRleHQgKGluIE9EYXRhTW9kZWwpIGNyZWF0ZWQgZm9yIHRoZSBhY3Rpb24gZXhlY3V0aW9uXG5cdC8vIHRoaXMgaXMgcXVpdGUgb2RkLCBhbmQgaXQgd291bGQgbWFrZSBtdWNoIG1vcmUgc2Vuc2UgdG8gdGFrZSB0aGUgdmFsdWUgZnJvbSBhY3Rpb25QYXJhbWV0ZXJJbmZvc1xuXHQvLyAtIGhvd2V2ZXIsIHNldEFjdGlvblBhcmFtZXRlckRlZmF1bHRWYWx1ZSAob3IgcmF0aGVyIHRoZSBzdXJyb3VuZGluZyBfZXhlY3V0ZUFjdGlvbikgaXMgYWxzbyBjYWxsZWQgZnJvbSBvdGhlciBwbGFjZXNcblx0Ly8gPT4gZm9yIHRoZSB0aW1lIGJlaW5nLCBhZGRpbmcgdmFsdWUgaGVyZSB0byBhdm9pZCB0cyBlcnJvcnMsIHN1YmplY3QgdG8gcmVmYWN0b3Jpbmdcblx0Ly8gaW4gY2FzZSBvZiBGaWVsZCwgdGhlIHZhbHVlIGlzIHN0cmluZywgaW4gY2FzZSBvZiBNdWx0aVZhbHVlRmllbGQsIGl0J3MgTXVsdGlWYWx1ZUZpZWxkSXRlbVtdXG5cdHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgTXVsdGlWYWx1ZUZpZWxkSXRlbVtdIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uUGFyYW1ldGVySW5mbyA9IHtcblx0cGFyYW1ldGVyOiBBY3Rpb25QYXJhbWV0ZXI7XG5cdGZpZWxkOiBGaWVsZCB8IE11bHRpVmFsdWVGaWVsZDtcblx0aXNNdWx0aVZhbHVlOiBib29sZWFuO1xuXHR2YWx1ZT86IHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXTtcblx0dmFsaWRhdGlvblByb21pc2U/OiBQcm9taXNlPHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXT47XG5cdGhhc0Vycm9yPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQWRkcyBlcnJvciBtZXNzYWdlcyBmb3IgYW4gYWN0aW9uIHBhcmFtZXRlciBmaWVsZCB0byB0aGUgbWVzc2FnZSBtYW5hZ2VyLlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlUGFyYW1ldGVycyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyIGFuZCBtZXNzYWdlcyByZWZlcmluZyB0byB0aGlzIHBhcmFtZXRlclxuICovXG4vLyBpbiBjYXNlIG9mIG1pc3NpbmcgbWFuZGFvdG9yeSBwYXJhbWV0ZXIsIG1lc3NhZ2UgY3VycmVudGx5IGRpZmZlcnMgcGVyIHBhcmFtZXRlciwgYXMgaXQgc3VwZXJmbHVvdXNseSBjb250YWlucyB0aGUgbGFiZWwgYXMgcGFyYW1ldGVyLiBQb3NzaWJsa3kgdGhpcyBjb3VsZCBiZSByZW1vdmVkIGluIGZ1dHVyZSwgaW4gdGhhdCBjYXNlLCBpbnRlcmZhY2UgY291bGQgYmUgc2ltcGxpZmllZCB0byBBY3Rpb25QYXJhbWV0ZXJJbmZvW10sIHN0cmluZ1xuZXhwb3J0IGZ1bmN0aW9uIF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyKG1lc3NhZ2VQYXJhbWV0ZXJzOiB7IGFjdGlvblBhcmFtZXRlckluZm86IEFjdGlvblBhcmFtZXRlckluZm87IG1lc3NhZ2U6IHN0cmluZyB9W10pOiB2b2lkIHtcblx0TWVzc2FnaW5nLmFkZE1lc3NhZ2VzKFxuXHRcdG1lc3NhZ2VQYXJhbWV0ZXJzLm1hcCgobWVzc2FnZVBhcmFtZXRlcikgPT4ge1xuXHRcdFx0Y29uc3QgYmluZGluZyA9IG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRCaW5kaW5nKFxuXHRcdFx0XHRtZXNzYWdlUGFyYW1ldGVyLmFjdGlvblBhcmFtZXRlckluZm8uaXNNdWx0aVZhbHVlID8gXCJpdGVtc1wiIDogXCJ2YWx1ZVwiXG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuIG5ldyBNZXNzYWdlKHtcblx0XHRcdFx0bWVzc2FnZTogbWVzc2FnZVBhcmFtZXRlci5tZXNzYWdlLFxuXHRcdFx0XHR0eXBlOiBNZXNzYWdlVHlwZS5FcnJvcixcblx0XHRcdFx0cHJvY2Vzc29yOiBiaW5kaW5nPy5nZXRNb2RlbCgpLFxuXHRcdFx0XHRwZXJzaXN0ZW50OiB0cnVlLFxuXHRcdFx0XHR0YXJnZXQ6IGJpbmRpbmc/LmdldFJlc29sdmVkUGF0aCgpXG5cdFx0XHR9KTtcblx0XHR9KVxuXHQpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbGwgcmVxdWlyZWQgYWN0aW9uIHBhcmFtZXRlcnMgY29udGFpbiBkYXRhIGFuZCBjaGVja3MgZm9yIGFsbCBhY3Rpb24gcGFyYW1ldGVycyBpZiB0aGVcbiAqIGNvbnRhaW5lZCBkYXRhIGlzIHZhbGlkLlxuICpcbiAqXG4gKiBAcGFyYW0gYWN0aW9uUGFyYW1ldGVySW5mb3MgSW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgYW4gYWN0aW9uIHBhcmFtZXRlclxuICogQHBhcmFtIHJlc291cmNlTW9kZWwgVGhlIG1vZGVsIHRvIGxvYWQgdGV4dCByZXNvdXJjZXNcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IGluZGljYXRlIGlmIHRoZSBwcm9wZXJ0aWVzIGFyZSB2YWxpZCBvciBub3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIF92YWxpZGF0ZVByb3BlcnRpZXMoYWN0aW9uUGFyYW1ldGVySW5mb3M6IEFjdGlvblBhcmFtZXRlckluZm9bXSwgcmVzb3VyY2VNb2RlbDogUmVzb3VyY2VNb2RlbCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG5cdFx0YWN0aW9uUGFyYW1ldGVySW5mb3MubWFwKGFzeW5jIChhY3Rpb25QYXJhbWV0ZXJJbmZvOiBBY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLnZhbGlkYXRpb25Qcm9taXNlKVxuXHQpO1xuXHRjb25zdCByZXF1aXJlZFBhcmFtZXRlckluZm9zID0gYWN0aW9uUGFyYW1ldGVySW5mb3MuZmlsdGVyKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFJlcXVpcmVkKCkpO1xuXG5cdC8qIEhpbnQ6IFRoZSBib29sZWFuIGZhbHNlIGlzIGEgdmFsaWQgdmFsdWUgKi9cblx0Y29uc3QgZW1wdHlSZXF1aXJlZEZpZWxkcyA9IHJlcXVpcmVkUGFyYW1ldGVySW5mb3MuZmlsdGVyKChyZXF1aXJlZFBhcmFtZXRlckluZm8pID0+IHtcblx0XHRpZiAocmVxdWlyZWRQYXJhbWV0ZXJJbmZvLmlzTXVsdGlWYWx1ZSkge1xuXHRcdFx0cmV0dXJuIHJlcXVpcmVkUGFyYW1ldGVySW5mby52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICFyZXF1aXJlZFBhcmFtZXRlckluZm8udmFsdWUubGVuZ3RoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBmaWVsZFZhbHVlID0gKHJlcXVpcmVkUGFyYW1ldGVySW5mby5maWVsZCBhcyBGaWVsZCkuZ2V0VmFsdWUoKTtcblx0XHRcdHJldHVybiBmaWVsZFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRWYWx1ZSA9PT0gbnVsbCB8fCBmaWVsZFZhbHVlID09PSBcIlwiO1xuXHRcdH1cblx0fSk7XG5cblx0Ly8gbWVzc2FnZSBjb250YWlucyBsYWJlbCBwZXIgZmllbGQgZm9yIGhpc3RvcmljYWwgcmVhc29uIChvcmlnaW5hbGx5LCBpdCB3YXMgc2hvd24gaW4gYWRkaXRpb25hbCBwb3B1cCwgbm93IGl0J3MgZGlyZWN0bHkgYWRkZWQgdG8gdGhlIGZpZWxkKVxuXHQvLyBpZiB0aGlzIHdhcyBub3QgdGhlIGNhc2UgKGFuZCBob3BlZnVsbHksIGluIGZ1dHVyZSB0aGlzIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlKSwgaW50ZXJmYWNlIG9mIF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyIGNvdWxkIGJlIHNpbXBsaWZpZWQgdG8ganVzdCBwYXNzIGVtcHR5UmVxdWlyZWRGaWVsZHMgYW5kIGEgY29uc3RhbnQgbWVzc2FnZSBoZXJlXG5cdF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyKFxuXHRcdGVtcHR5UmVxdWlyZWRGaWVsZHMubWFwKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiAoe1xuXHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mbzogYWN0aW9uUGFyYW1ldGVySW5mbyxcblx0XHRcdG1lc3NhZ2U6IHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfT1BFUkFUSU9OU19BQ1RJT05fUEFSQU1FVEVSX0RJQUxPR19NSVNTSU5HX01BTkRBVE9SWV9NU0dcIiwgW1xuXHRcdFx0XHQoYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRQYXJlbnQoKT8uZ2V0QWdncmVnYXRpb24oXCJsYWJlbFwiKSBhcyBMYWJlbCkuZ2V0VGV4dCgpXG5cdFx0XHRdKVxuXHRcdH0pKVxuXHQpO1xuXG5cdC8qIENoZWNrIHZhbHVlIHN0YXRlIG9mIGFsbCBwYXJhbWV0ZXIgKi9cblx0Y29uc3QgZmlyc3RJbnZhbGlkQWN0aW9uUGFyYW1ldGVyID0gYWN0aW9uUGFyYW1ldGVySW5mb3MuZmluZChcblx0XHQvLyB1bmZvcnR1bmF0ZWx5LCBfYWRkTWVzc2FnZUZvckFjdGlvblBhcmFtZXRlciBzZXRzIHZhbHVlU3RhdGUgb25seSBhc3luY2hyb25lb3VzbHksIHRodXMgY2hlY2tpbmcgZW1wdHlSZXF1aXJlZEZpZWxkcyBhbmQgaGFzRXJyb3IgYWRkaXRpb25hbGx5OlxuXHRcdC8vIC0gY2hlY2tpbmcgaGFzRXJyb3I6IHVzZXIgaGFzIGNoYW5nZWQgZmllbGQgdG8gaW52YWxpZCB2YWx1ZSwgdmFsaWRhdGlvbiBwcm9taXNlIGhhcyBiZWVuIHJlamVjdGVkLCB0aGVyZWZvcmUgd2UgYXJlIGFkZGluZyBtZXNzYWdlIHRvIG1lc3NhZ2UgbW9kZWxcblx0XHQvLyB3aGljaCBpbiB0dXJuIHNldHMgdmFsdWUgc3RhdGUgdG8gJ0Vycm9yJyBidXQgdGhpcyBsYXN0IHN0ZXAgbWlnaHQgbm90IGhhdmUgaGFwcGVuZWQgeWV0IGR1ZSB0byBhc3luY2hyb25pdHkgaW4gbW9kZWwuXG5cdFx0Ly8gLSBhbHNvIGNoZWNraW5nIHZhbHVlIHN0YXRlOiBhbHNvIG91dCBwYXJhbWV0ZXIgb2YgYW5vdGhlciBhY3Rpb24gcGFyYW1ldGVyIGNvdWxkIGNoYW5nZSBmaWVsZCBhbmQgaXQncyB2YWx1ZSBzdGF0ZSB3aXRob3V0IHNlbmRpbmcgY2hhbmdlIGV2ZW50LlxuXG5cdFx0KGFjdGlvblBhcmFtZXRlckluZm8pID0+XG5cdFx0XHRhY3Rpb25QYXJhbWV0ZXJJbmZvLmhhc0Vycm9yIHx8XG5cdFx0XHRhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFZhbHVlU3RhdGUoKSA9PT0gXCJFcnJvclwiIHx8XG5cdFx0XHRlbXB0eVJlcXVpcmVkRmllbGRzLmluY2x1ZGVzKGFjdGlvblBhcmFtZXRlckluZm8pXG5cdCk7XG5cblx0aWYgKGZpcnN0SW52YWxpZEFjdGlvblBhcmFtZXRlcikge1xuXHRcdGZpcnN0SW52YWxpZEFjdGlvblBhcmFtZXRlci5maWVsZC5mb2N1cygpO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ08sU0FBU0EsNkJBQTZCLENBQUNDLGlCQUFrRixFQUFRO0lBQ3ZJQyxTQUFTLENBQUNDLFdBQVcsQ0FDcEJGLGlCQUFpQixDQUFDRyxHQUFHLENBQUVDLGdCQUFnQixJQUFLO01BQzNDLE1BQU1DLE9BQU8sR0FBR0QsZ0JBQWdCLENBQUNFLG1CQUFtQixDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FDcEVKLGdCQUFnQixDQUFDRSxtQkFBbUIsQ0FBQ0csWUFBWSxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQ3JFO01BQ0QsT0FBTyxJQUFJQyxPQUFPLENBQUM7UUFDbEJDLE9BQU8sRUFBRVAsZ0JBQWdCLENBQUNPLE9BQU87UUFDakNDLElBQUksRUFBRUMsV0FBVyxDQUFD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
|