diff --git a/src/ReactiveUI.Validation.AndroidX/Extensions/ViewForExtensions.cs b/src/ReactiveUI.Validation.AndroidX/Extensions/ViewForExtensions.cs index de9c5536..259496b4 100644 --- a/src/ReactiveUI.Validation.AndroidX/Extensions/ViewForExtensions.cs +++ b/src/ReactiveUI.Validation.AndroidX/Extensions/ViewForExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation.AndroidX/ReactiveUI.Validation.AndroidX.csproj b/src/ReactiveUI.Validation.AndroidX/ReactiveUI.Validation.AndroidX.csproj index 3f5a4146..c19d6ed3 100644 --- a/src/ReactiveUI.Validation.AndroidX/ReactiveUI.Validation.AndroidX.csproj +++ b/src/ReactiveUI.Validation.AndroidX/ReactiveUI.Validation.AndroidX.csproj @@ -1,7 +1,7 @@  - net8.0-android + net8.0-android;net9.0-android Provides ReactiveUI.Validation extensions for the AndroidX Library ReactiveUI.Validation.AndroidX $(NoWarn);CS1591 @@ -9,7 +9,7 @@ - + diff --git a/src/ReactiveUI.Validation.Tests/API/ApiApprovalTests.ValidationProject.DotNet9_0.verified.txt b/src/ReactiveUI.Validation.Tests/API/ApiApprovalTests.ValidationProject.DotNet9_0.verified.txt new file mode 100644 index 00000000..1bd00054 --- /dev/null +++ b/src/ReactiveUI.Validation.Tests/API/ApiApprovalTests.ValidationProject.DotNet9_0.verified.txt @@ -0,0 +1,272 @@ +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] +namespace ReactiveUI.Validation.Abstractions +{ + public interface IValidatableViewModel + { + ReactiveUI.Validation.Contexts.IValidationContext ValidationContext { get; } + } +} +namespace ReactiveUI.Validation.Collections +{ + public interface IValidationText : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable + { + string ToSingleLine(string? separator = ","); + } + public static class ValidationText + { + public static readonly ReactiveUI.Validation.Collections.IValidationText Empty; + public static readonly ReactiveUI.Validation.Collections.IValidationText None; + public static ReactiveUI.Validation.Collections.IValidationText Create(System.Collections.Generic.IEnumerable? validationTexts) { } + public static ReactiveUI.Validation.Collections.IValidationText Create(System.Collections.Generic.IEnumerable? validationTexts) { } + public static ReactiveUI.Validation.Collections.IValidationText Create(string? validationText) { } + public static ReactiveUI.Validation.Collections.IValidationText Create(params string?[]? validationTexts) { } + } +} +namespace ReactiveUI.Validation.Comparators +{ + public class ValidationStateComparer : System.Collections.Generic.EqualityComparer + { + public ValidationStateComparer() { } + public override bool Equals(ReactiveUI.Validation.States.IValidationState? x, ReactiveUI.Validation.States.IValidationState? y) { } + public override int GetHashCode(ReactiveUI.Validation.States.IValidationState obj) { } + } +} +namespace ReactiveUI.Validation.Components.Abstractions +{ + public interface IPropertyValidationComponent : ReactiveUI.Validation.Components.Abstractions.IValidatesProperties, ReactiveUI.Validation.Components.Abstractions.IValidationComponent { } + public interface IValidatesProperties + { + System.Collections.Generic.IEnumerable Properties { get; } + int PropertyCount { get; } + bool ContainsPropertyName(string propertyName, bool exclusively = false); + } + public interface IValidationComponent + { + bool IsValid { get; } + ReactiveUI.Validation.Collections.IValidationText? Text { get; } + System.IObservable ValidationStatusChange { get; } + } +} +namespace ReactiveUI.Validation.Components +{ + public abstract class BasePropertyValidation : ReactiveUI.ReactiveObject, ReactiveUI.Validation.Components.Abstractions.IPropertyValidationComponent, ReactiveUI.Validation.Components.Abstractions.IValidatesProperties, ReactiveUI.Validation.Components.Abstractions.IValidationComponent, System.IDisposable + { + protected BasePropertyValidation() { } + public bool IsValid { get; } + public System.Collections.Generic.IEnumerable Properties { get; } + public int PropertyCount { get; } + public ReactiveUI.Validation.Collections.IValidationText? Text { get; } + public System.IObservable ValidationStatusChange { get; } + protected void AddProperty(System.Linq.Expressions.Expression> property) { } + public bool ContainsPropertyName(string propertyName, bool exclusively = false) { } + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + protected abstract System.IObservable GetValidationChangeObservable(); + } + public sealed class BasePropertyValidation : ReactiveUI.Validation.Components.BasePropertyValidation + { + public BasePropertyValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Func isValidFunc, System.Func message) { } + public BasePropertyValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Func isValidFunc, System.Func messageFunc) { } + public BasePropertyValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Func isValidFunc, string message) { } + protected override void Dispose(bool disposing) { } + protected override System.IObservable GetValidationChangeObservable() { } + } + public abstract class ObservableValidationBase : ReactiveUI.ReactiveObject, ReactiveUI.Validation.Components.Abstractions.IPropertyValidationComponent, ReactiveUI.Validation.Components.Abstractions.IValidatesProperties, ReactiveUI.Validation.Components.Abstractions.IValidationComponent, System.IDisposable + { + protected ObservableValidationBase(System.IObservable observable) { } + protected ObservableValidationBase(TViewModel viewModel, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public bool IsValid { get; } + public System.Collections.Generic.IEnumerable Properties { get; } + public int PropertyCount { get; } + public ReactiveUI.Validation.Collections.IValidationText? Text { get; } + public System.IObservable ValidationStatusChange { get; } + protected void AddProperty(System.Linq.Expressions.Expression> property) { } + public bool ContainsPropertyName(string propertyName, bool exclusively = false) { } + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + } + public sealed class ObservableValidation : ReactiveUI.Validation.Components.ObservableValidationBase + { + public ObservableValidation(System.IObservable observable) { } + public ObservableValidation(TViewModel viewModel, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public ObservableValidation(TViewModel viewModel, System.IObservable observable, System.Func isValidFunc, string message) { } + public ObservableValidation(TViewModel viewModel, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public ObservableValidation(TViewModel viewModel, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public ObservableValidation(TViewModel viewModel, System.IObservable observable, System.Func isValidFunc, string message) { } + } + public sealed class ObservableValidation : ReactiveUI.Validation.Components.ObservableValidationBase + { + public ObservableValidation(System.Linq.Expressions.Expression> viewModelProperty, System.IObservable observable) { } + public ObservableValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public ObservableValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable observable, System.Func isValidFunc, string message) { } + public ObservableValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public ObservableValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable observable, System.Func isValidFunc, System.Func messageFunc) { } + public ObservableValidation(TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable observable, System.Func isValidFunc, string message) { } + } +} +namespace ReactiveUI.Validation.Contexts +{ + public interface IValidationContext : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Components.Abstractions.IValidationComponent, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IDisposable, System.Reactive.Disposables.ICancelable + { + System.IObservable Valid { get; } + DynamicData.IObservableList Validations { get; } + void Add(ReactiveUI.Validation.Components.Abstractions.IValidationComponent validation); + bool GetIsValid(); + void Remove(ReactiveUI.Validation.Components.Abstractions.IValidationComponent validation); + void RemoveMany(System.Collections.Generic.IEnumerable validations); + } + public class ValidationContext : ReactiveUI.ReactiveObject, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Components.Abstractions.IValidationComponent, ReactiveUI.Validation.Contexts.IValidationContext, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IDisposable, System.Reactive.Disposables.ICancelable + { + public ValidationContext(System.Reactive.Concurrency.IScheduler? scheduler = null) { } + public bool IsDisposed { get; } + public bool IsValid { get; } + public ReactiveUI.Validation.Collections.IValidationText Text { get; } + public System.IObservable Valid { get; } + public System.IObservable ValidationStatusChange { get; } + public DynamicData.IObservableList Validations { get; } + public void Add(ReactiveUI.Validation.Components.Abstractions.IValidationComponent validation) { } + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + public bool GetIsValid() { } + public void Remove(ReactiveUI.Validation.Components.Abstractions.IValidationComponent validation) { } + public void RemoveMany(System.Collections.Generic.IEnumerable validations) { } + } +} +namespace ReactiveUI.Validation.Extensions +{ + public static class ValidatableViewModelExtensions + { + public static void ClearValidationRules(this TViewModel viewModel) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static void ClearValidationRules(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static System.IObservable IsValid(this TViewModel viewModel) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.IObservable validationObservable) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.IObservable validationObservable, string message) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.IObservable validationObservable) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel + where TValue : ReactiveUI.Validation.States.IValidationState { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable validationObservable) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.IObservable validationObservable, System.Func isValidFunc, System.Func messageFunc) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable viewModelObservable, string message) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Func isPropertyValid, System.Func message) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Func isPropertyValid, string message) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable validationObservable) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel + where TValue : ReactiveUI.Validation.States.IValidationState { } + public static ReactiveUI.Validation.Helpers.ValidationHelper ValidationRule(this TViewModel viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.IObservable viewModelObservable, System.Func isValidFunc, System.Func messageFunc) + where TViewModel : ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + } + public static class ValidatesPropertiesExtensions + { + public static bool ContainsProperty(this ReactiveUI.Validation.Components.Abstractions.IValidatesProperties validatesProperties, System.Linq.Expressions.Expression> propertyExpression, bool exclusively = false) { } + } + public static class ValidationContextExtensions + { + public static System.IObservable> ObserveFor(this ReactiveUI.Validation.Contexts.IValidationContext context, System.Linq.Expressions.Expression> viewModelProperty, bool strict = true) { } + } + public static class ViewForExtensions + { + public static System.IDisposable BindValidation(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static System.IDisposable BindValidation(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelHelperProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static System.IDisposable BindValidation(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + } +} +namespace ReactiveUI.Validation.Formatters.Abstractions +{ + public interface IValidationTextFormatter + { + TOut Format(ReactiveUI.Validation.Collections.IValidationText validationText); + } +} +namespace ReactiveUI.Validation.Formatters +{ + public class SingleLineFormatter : ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter + { + public SingleLineFormatter(string? separator = null) { } + public static ReactiveUI.Validation.Formatters.SingleLineFormatter Default { get; } + public string Format(ReactiveUI.Validation.Collections.IValidationText? validationText) { } + } +} +namespace ReactiveUI.Validation.Helpers +{ + public abstract class ReactiveValidationObject : ReactiveUI.ReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel, System.ComponentModel.INotifyDataErrorInfo, System.IDisposable + { + protected ReactiveValidationObject(System.Reactive.Concurrency.IScheduler? scheduler = null, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null) { } + public bool HasErrors { get; } + public ReactiveUI.Validation.Contexts.IValidationContext ValidationContext { get; } + public event System.EventHandler? ErrorsChanged; + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + public virtual System.Collections.IEnumerable GetErrors(string? propertyName) { } + protected void RaiseErrorsChanged(string propertyName = "") { } + } + public class ValidationHelper : ReactiveUI.ReactiveObject, System.IDisposable + { + public ValidationHelper(ReactiveUI.Validation.Components.Abstractions.IValidationComponent validation, System.IDisposable? cleanup = null) { } + public bool IsValid { get; } + public ReactiveUI.Validation.Collections.IValidationText Message { get; } + public System.IObservable ValidationChanged { get; } + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + } +} +namespace ReactiveUI.Validation.States +{ + public interface IValidationState + { + bool IsValid { get; } + ReactiveUI.Validation.Collections.IValidationText Text { get; } + } + public class ValidationState : ReactiveUI.Validation.States.IValidationState + { + public static readonly ReactiveUI.Validation.States.IValidationState Valid; + public ValidationState(bool isValid, ReactiveUI.Validation.Collections.IValidationText text) { } + public ValidationState(bool isValid, string text) { } + public bool IsValid { get; } + public ReactiveUI.Validation.Collections.IValidationText Text { get; } + } +} +namespace ReactiveUI.Validation.ValidationBindings.Abstractions +{ + public interface IValidationBinding : System.IDisposable { } +} +namespace ReactiveUI.Validation.ValidationBindings +{ + public sealed class ValidationBinding : ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding, System.IDisposable + { + public void Dispose() { } + public static ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding ForProperty(TView view, System.Linq.Expressions.Expression> viewModelProperty, System.Action, System.Collections.Generic.IList> action, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter formatter, bool strict = true) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding ForProperty(TView view, System.Linq.Expressions.Expression> viewModelProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null, bool strict = true) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding ForValidationHelperProperty(TView view, System.Linq.Expressions.Expression> viewModelHelperProperty, System.Action action, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter formatter) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding ForValidationHelperProperty(TView view, System.Linq.Expressions.Expression> viewModelHelperProperty, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding ForViewModel(TView view, System.Action action, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter formatter) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + public static ReactiveUI.Validation.ValidationBindings.Abstractions.IValidationBinding ForViewModel(TView view, System.Linq.Expressions.Expression> viewProperty, ReactiveUI.Validation.Formatters.Abstractions.IValidationTextFormatter? formatter = null) + where TView : ReactiveUI.IViewFor + where TViewModel : class, ReactiveUI.IReactiveObject, ReactiveUI.Validation.Abstractions.IValidatableViewModel { } + } +} \ No newline at end of file diff --git a/src/ReactiveUI.Validation.Tests/ReactiveUI.Validation.Tests.csproj b/src/ReactiveUI.Validation.Tests/ReactiveUI.Validation.Tests.csproj index edf72726..b3f2fa81 100644 --- a/src/ReactiveUI.Validation.Tests/ReactiveUI.Validation.Tests.csproj +++ b/src/ReactiveUI.Validation.Tests/ReactiveUI.Validation.Tests.csproj @@ -1,7 +1,7 @@  - net6.0;net8.0 + net8.0;net9.0 $(NoWarn);1591;CA1707;SA1633 @@ -10,13 +10,13 @@ - + - + - + all diff --git a/src/ReactiveUI.Validation.sln b/src/ReactiveUI.Validation.sln index 936a87b4..c5f76378 100644 --- a/src/ReactiveUI.Validation.sln +++ b/src/ReactiveUI.Validation.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# 17 +# Visual Studio Version 17 VisualStudioVersion = 17.9.34728.123 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUI.Validation", "ReactiveUI.Validation\ReactiveUI.Validation.csproj", "{B62AABD0-22A4-470D-B6EB-F6B3EAE668DE}" @@ -14,6 +14,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Directory.build.props = Directory.build.props Directory.build.targets = Directory.build.targets global.json = global.json + ..\README.md = ..\README.md stylecop.json = stylecop.json ..\version.json = ..\version.json EndProjectSection diff --git a/src/ReactiveUI.Validation/Abstractions/IValidatableViewModel.cs b/src/ReactiveUI.Validation/Abstractions/IValidatableViewModel.cs index 54178511..a40d5e06 100755 --- a/src/ReactiveUI.Validation/Abstractions/IValidatableViewModel.cs +++ b/src/ReactiveUI.Validation/Abstractions/IValidatableViewModel.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Collections/ArrayValidationText.cs b/src/ReactiveUI.Validation/Collections/ArrayValidationText.cs index 6b1db7a9..ae8db21c 100644 --- a/src/ReactiveUI.Validation/Collections/ArrayValidationText.cs +++ b/src/ReactiveUI.Validation/Collections/ArrayValidationText.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Collections/IValidationText.cs b/src/ReactiveUI.Validation/Collections/IValidationText.cs index 7f33a015..d6641112 100644 --- a/src/ReactiveUI.Validation/Collections/IValidationText.cs +++ b/src/ReactiveUI.Validation/Collections/IValidationText.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Collections/ReadOnlyDisposableCollection{T}.cs b/src/ReactiveUI.Validation/Collections/ReadOnlyDisposableCollection{T}.cs index 1a532a12..4530dcec 100644 --- a/src/ReactiveUI.Validation/Collections/ReadOnlyDisposableCollection{T}.cs +++ b/src/ReactiveUI.Validation/Collections/ReadOnlyDisposableCollection{T}.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Collections/SingleValidationText.cs b/src/ReactiveUI.Validation/Collections/SingleValidationText.cs index 7d19655a..a3d2ca3d 100644 --- a/src/ReactiveUI.Validation/Collections/SingleValidationText.cs +++ b/src/ReactiveUI.Validation/Collections/SingleValidationText.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Collections/ValidationText.cs b/src/ReactiveUI.Validation/Collections/ValidationText.cs index 0c26bbfa..9c288bde 100755 --- a/src/ReactiveUI.Validation/Collections/ValidationText.cs +++ b/src/ReactiveUI.Validation/Collections/ValidationText.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Comparators/ValidationStateComparer.cs b/src/ReactiveUI.Validation/Comparators/ValidationStateComparer.cs index f1374a10..4bf6b36c 100755 --- a/src/ReactiveUI.Validation/Comparators/ValidationStateComparer.cs +++ b/src/ReactiveUI.Validation/Comparators/ValidationStateComparer.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/Abstractions/IPropertyValidationComponent.cs b/src/ReactiveUI.Validation/Components/Abstractions/IPropertyValidationComponent.cs index 12dcbf88..e57ef325 100644 --- a/src/ReactiveUI.Validation/Components/Abstractions/IPropertyValidationComponent.cs +++ b/src/ReactiveUI.Validation/Components/Abstractions/IPropertyValidationComponent.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/Abstractions/IValidatesProperties.cs b/src/ReactiveUI.Validation/Components/Abstractions/IValidatesProperties.cs index 7cadabe8..286d7e10 100644 --- a/src/ReactiveUI.Validation/Components/Abstractions/IValidatesProperties.cs +++ b/src/ReactiveUI.Validation/Components/Abstractions/IValidatesProperties.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/Abstractions/IValidationComponent.cs b/src/ReactiveUI.Validation/Components/Abstractions/IValidationComponent.cs index 9ade5615..9747dd65 100755 --- a/src/ReactiveUI.Validation/Components/Abstractions/IValidationComponent.cs +++ b/src/ReactiveUI.Validation/Components/Abstractions/IValidationComponent.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/BasePropertyValidation.cs b/src/ReactiveUI.Validation/Components/BasePropertyValidation.cs index 3d0edc59..5f8d990c 100755 --- a/src/ReactiveUI.Validation/Components/BasePropertyValidation.cs +++ b/src/ReactiveUI.Validation/Components/BasePropertyValidation.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/ObservableValidationBase{TViewModel,TValue}.cs b/src/ReactiveUI.Validation/Components/ObservableValidationBase{TViewModel,TValue}.cs index 3da5c887..6c07713c 100644 --- a/src/ReactiveUI.Validation/Components/ObservableValidationBase{TViewModel,TValue}.cs +++ b/src/ReactiveUI.Validation/Components/ObservableValidationBase{TViewModel,TValue}.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue,TProp}.cs b/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue,TProp}.cs index 20800907..ed6c01b7 100644 --- a/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue,TProp}.cs +++ b/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue,TProp}.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue}.cs b/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue}.cs index 91151add..a5f70555 100644 --- a/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue}.cs +++ b/src/ReactiveUI.Validation/Components/ObservableValidation{TViewModel,TValue}.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Contexts/IValidationContext.cs b/src/ReactiveUI.Validation/Contexts/IValidationContext.cs index 8fd1efc6..740d5c6d 100644 --- a/src/ReactiveUI.Validation/Contexts/IValidationContext.cs +++ b/src/ReactiveUI.Validation/Contexts/IValidationContext.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Contexts/ValidationContext.cs b/src/ReactiveUI.Validation/Contexts/ValidationContext.cs index ed2f8820..effeefd8 100755 --- a/src/ReactiveUI.Validation/Contexts/ValidationContext.cs +++ b/src/ReactiveUI.Validation/Contexts/ValidationContext.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Extensions/ArrayPoolExtensions.cs b/src/ReactiveUI.Validation/Extensions/ArrayPoolExtensions.cs index 5c6c3553..4f3e2b9b 100644 --- a/src/ReactiveUI.Validation/Extensions/ArrayPoolExtensions.cs +++ b/src/ReactiveUI.Validation/Extensions/ArrayPoolExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Extensions/ExpressionExtensions.cs b/src/ReactiveUI.Validation/Extensions/ExpressionExtensions.cs index 669f4977..e39cdfa0 100644 --- a/src/ReactiveUI.Validation/Extensions/ExpressionExtensions.cs +++ b/src/ReactiveUI.Validation/Extensions/ExpressionExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Extensions/ValidatableViewModelExtensions.cs b/src/ReactiveUI.Validation/Extensions/ValidatableViewModelExtensions.cs index 086741df..a6005d75 100644 --- a/src/ReactiveUI.Validation/Extensions/ValidatableViewModelExtensions.cs +++ b/src/ReactiveUI.Validation/Extensions/ValidatableViewModelExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Extensions/ValidatesPropertiesExtensions.cs b/src/ReactiveUI.Validation/Extensions/ValidatesPropertiesExtensions.cs index 0e6cf6f5..c3f5bc81 100644 --- a/src/ReactiveUI.Validation/Extensions/ValidatesPropertiesExtensions.cs +++ b/src/ReactiveUI.Validation/Extensions/ValidatesPropertiesExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Extensions/ValidationContextExtensions.cs b/src/ReactiveUI.Validation/Extensions/ValidationContextExtensions.cs index 46d3c813..ce768b64 100755 --- a/src/ReactiveUI.Validation/Extensions/ValidationContextExtensions.cs +++ b/src/ReactiveUI.Validation/Extensions/ValidationContextExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Extensions/ViewForExtensions.cs b/src/ReactiveUI.Validation/Extensions/ViewForExtensions.cs index 4874ad02..de16b085 100755 --- a/src/ReactiveUI.Validation/Extensions/ViewForExtensions.cs +++ b/src/ReactiveUI.Validation/Extensions/ViewForExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Formatters/Abstractions/IValidationTextFormatter.cs b/src/ReactiveUI.Validation/Formatters/Abstractions/IValidationTextFormatter.cs index 37e00fdb..2b6c4cf0 100755 --- a/src/ReactiveUI.Validation/Formatters/Abstractions/IValidationTextFormatter.cs +++ b/src/ReactiveUI.Validation/Formatters/Abstractions/IValidationTextFormatter.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Formatters/SingleLineFormatter.cs b/src/ReactiveUI.Validation/Formatters/SingleLineFormatter.cs index 67660078..7521ae5c 100755 --- a/src/ReactiveUI.Validation/Formatters/SingleLineFormatter.cs +++ b/src/ReactiveUI.Validation/Formatters/SingleLineFormatter.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Helpers/ReactiveValidationObject.cs b/src/ReactiveUI.Validation/Helpers/ReactiveValidationObject.cs index a40be4d0..06450361 100644 --- a/src/ReactiveUI.Validation/Helpers/ReactiveValidationObject.cs +++ b/src/ReactiveUI.Validation/Helpers/ReactiveValidationObject.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/Helpers/ValidationHelper.cs b/src/ReactiveUI.Validation/Helpers/ValidationHelper.cs index 947cd610..be6055d7 100755 --- a/src/ReactiveUI.Validation/Helpers/ValidationHelper.cs +++ b/src/ReactiveUI.Validation/Helpers/ValidationHelper.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/ReactiveUI.Validation.csproj b/src/ReactiveUI.Validation/ReactiveUI.Validation.csproj index 9d4c9c0f..a75c1396 100644 --- a/src/ReactiveUI.Validation/ReactiveUI.Validation.csproj +++ b/src/ReactiveUI.Validation/ReactiveUI.Validation.csproj @@ -1,14 +1,14 @@  - netstandard2.0;net6.0;net8.0;net8.0-android;net8.0-ios;net8.0-tvos;net8.0-macos;net8.0-maccatalyst - $(TargetFrameworks);net462;net472;net6.0-windows10.0.17763.0;net8.0-windows10.0.17763.0 + netstandard2.0;net8.0;net8.0-android;net8.0-ios;net8.0-tvos;net8.0-macos;net8.0-maccatalyst;net9.0;net9.0-android;net9.0-ios;net9.0-tvos;net9.0-macos;net9.0-maccatalyst + $(TargetFrameworks);net462;net472;net8.0-windows10.0.17763.0;net9.0-windows10.0.17763.0 $(NoWarn);CS1591 enable - + diff --git a/src/ReactiveUI.Validation/States/IValidationState.cs b/src/ReactiveUI.Validation/States/IValidationState.cs index 7359581a..998ea331 100644 --- a/src/ReactiveUI.Validation/States/IValidationState.cs +++ b/src/ReactiveUI.Validation/States/IValidationState.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/States/ValidationState.cs b/src/ReactiveUI.Validation/States/ValidationState.cs index 88a47317..446f7d43 100755 --- a/src/ReactiveUI.Validation/States/ValidationState.cs +++ b/src/ReactiveUI.Validation/States/ValidationState.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/ValidationBindings/Abstractions/IValidationBinding.cs b/src/ReactiveUI.Validation/ValidationBindings/Abstractions/IValidationBinding.cs index 1bb6b5d2..08035e1d 100755 --- a/src/ReactiveUI.Validation/ValidationBindings/Abstractions/IValidationBinding.cs +++ b/src/ReactiveUI.Validation/ValidationBindings/Abstractions/IValidationBinding.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/ReactiveUI.Validation/ValidationBindings/ValidationBinding.cs b/src/ReactiveUI.Validation/ValidationBindings/ValidationBinding.cs index 587141ac..6e408f4c 100755 --- a/src/ReactiveUI.Validation/ValidationBindings/ValidationBinding.cs +++ b/src/ReactiveUI.Validation/ValidationBindings/ValidationBinding.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2024 .NET Foundation and Contributors. All rights reserved. +// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for full license information. diff --git a/src/stylecop.json b/src/stylecop.json index d312166b..4d017362 100644 --- a/src/stylecop.json +++ b/src/stylecop.json @@ -13,7 +13,7 @@ "documentPrivateFields": false, "documentationCulture": "en-US", "companyName": ".NET Foundation and Contributors", - "copyrightText": "Copyright (c) 2024 {companyName}. All rights reserved.\nLicensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the {licenseName} license.\nSee the {licenseFile} file in the project root for full license information.", + "copyrightText": "Copyright (c) 2025 {companyName}. All rights reserved.\nLicensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the {licenseName} license.\nSee the {licenseFile} file in the project root for full license information.", "variables": { "licenseName": "MIT", "licenseFile": "LICENSE" diff --git a/version.json b/version.json index 021207b4..7532ada5 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "version": "4.1", + "version": "5.0", "publicReleaseRefSpec": [ "^refs/heads/main$", "^refs/heads/latest$",